CS

교착상태란?

juhwan 2023. 7. 12. 17:17

 

여러 프로세스나 스레드가 서로의 자원을 기다리며 무한히 대기하는 상태를 말합니다.

 

교착상태가 되면 

교착상태 발생 조건 4가지

 

상호 배제(Mutual Exclusion)

자원은 동시에 하나의 프로세스만이 사용할 수 있다.

이는 동일한 자원에 대한 동시 접근을 제한하여 데이터 일관성과 안전성을 유지하기 위한 목적으로 사용됩니다.

 

점유와 대기(Hold and Wait)

적어도 하나의 자원을 점유한 상태에서 다른 자원을 기다리고 있어야한다

 이로 인해 다른 프로세스들은 필요한 자원을 사용할 수 없고, 대기하는 프로세스 역시 다른 자원을 기다리며 무한히 대기하게 됩니다.

 

비선점(No Preemption)

다른 프로세스나 스레드에 의한 점유된 자원을 강제로 빼앗을 수 없어야한다

자원은 점유한 프로세스가 명시적으로 해당 자원을 해제하기 전까지 그 프로세스에 의해서만 사용될 수 있습니다.

 

순환 대기(Circular Wait)

자원을 기다리는 프로세스들이 원형으로 연결되어 있어야 합니다.

로 인해 프로세스들은 순환적인 대기 상태에 빠져 교착상태가 발생할 수 있습니다.

 

상호배제  1사람은 1개의 공간을 가질 수 있다.

점유와 대기 다음 공간을 가

비선점 1공간을 가진 사람을 끌어낼 수 없다

순환대기