deadlock
-
[OS] 뮤텍스(Mutex) vs 세마포어(Semaphore)OS 2021. 11. 19. 18:36
뮤텍스(Mutex)와 세마포어(Semaphore) 안녕하세요? 장장스입니다. 오늘은 기술면접에서 물어본다고 하는(?) 뮤텍스와 세마포어에 대해 정리하겠습니다. 언제 등장해? 교착상태(deadlock)에 대해 들어보셨다면 이 글을 읽을 준비가 되신겁니다. 교착상태는 제한된 자원을 두고 프로세스나 스레드가 작업을 하지 않고 무한 대기에 빠지게 되는 것을 말합니다. 교착상태가 발생하기 위해서 다음과 같은 4가지 조건이 필요합니다. 상호 배제 점유 대기 비선점 순환 대기 이 중 상호 배제 조건을 해결하기 위한 방법이 뮤텍스(Mutex)와 세마포어(Semaphore)입니다. 뮤텍스(Mutex) 뮤텍스는 mutual과 exclusion의 합성어로, 여러 스레드를 실행하는 환경에서 자원에 대한 접근에 제한을 강제하기..
-
[OS] 데드락 (Deadlock) - 교착상태OS 2021. 8. 16. 15:59
데드락 (Deadlock) Deadlock (교착상태) 란? 프로세스나 스레드가 결코 일어날 수 없는 특정 이벤트를 무한정 기다리는 상태를 말한다. 👌 데드락의 발생조건 4가지 데드락에 걸리기 위해서는 4가지 요건이 필요합니다. 1. 상호 배제 조건 (Mutual exclusion condition) 프로세스는 한번에 하나의 자원만 사용 할 수 있다. 사용 중인자원을 다른 프로세스가 사용하기 위해서는 사용중인 자원이 해제될 때까지 기다려야 한다. 2. 점유와 대기 조건 (hold-and-wait condition) 자원을 최소한 하나 보유하고 다른 프로세스에 할당되어 사용중인 자원을점유하기 위해 기다려야 한다. 3. 비선점 조건(nopreemption condition) 이미 할당되어 사용중인 자원을..