Deadlock 2

[Interview Question] 교착상태에 대해서 설명하고, 각 교착상태를 해결하는 방법에 대해서 설명해보세요.

교착상태, 즉 DeadLock은 두 개 이상의 프로세스가 서로 가진 자원을 기다리며 무한 대기에 빠지는 현상을 말합니다. 교착상태가 발생하려면 4가지 조건이 모두 충족되어야 하는데1. 상호배제, 2. 점유대기, 3. 비선점, 4. 원형대기 입니다.1. 상호배제는 자원을 동시에 하나의 프로세스만 사용할 수 있다.2. 점유대기는 프로세스가 이미 자원을 점유한 상태이기 때문에, 다른 자원을 기다리고 있다.3. 비선점은 상대방이 점유중인 자원을 강제로 회수 할 수 없다.4. 원형대기는 프로세스들이 원 형태로 서로 자원을 기다리는 상태이다. 이 4가지 조건을 동시에 만족했을 때만 deadlock상태가 발생합니다. 교착상태 해결방법으로는1. 자원을 공유가능하도록 설정합니다. 하지만 현실적으로 동기화 문제에 의해 어..

Interview Question 2025.08.29

[운영체제] 멀티스레딩 환경에서 발생하는 문제와 Deadlock을 피하는 방법

멀티스레딩은 CPU 자원을 효율적으로 활용하고 작업 성능을 높이는 데 유용한 기술이다. 하지만 여러 스레드가 동시에 자원에 접근할 수 있는 환경에서는 데이터 충돌, 교착 상태(Deadlock) 등 여러 문제가 발생할 수 있습니다.교착 상태의 조건과 이를 예방하기 위한 전략들을 정리해보자.멀티스레딩멀티스레딩은 프로세스 내 작업을 여러 개의 스레드, 멀티스레드로 처리하는 기법이며 스레드끼리 서로 자원을 공유하기 때문에 효율성이 높다. 예를 들어 웹 요청을 처리할 때 새 프로세스를 생성하는 대신 스레드를 사용하는 웹 서버의 경우 훨씬 적은 리소스를 소비하며, 한 스레드가 중단되어도 다른 스레드는 실행 상태일 수 있기 때문에 중단되지 않은 빠른 처리가 가능하다.멀티스레딩 환경에서 발생할 수 있는 문제1. 동기화..

OS 2025.06.08