Deadlock 데드락
데드락은 프로세스2개 자원2개만 기억하면 된다.
데드락에는 프로세스2개 자원2개가 필요하니
데드락 케이스를 만들어 낼 때, 프로세스2개 자원2개만 기억하면 만들어 낼 수 있다.
교착 상태 조건 4가지
다음 4가지 조건을 모두 만족하면 데드락이 발생한다.
- Mutual Exclusion : 상호 배제. 프로세스가 타겟 자원을 요구 시 타 프로세스를 배제하고 배타적으로 요구한다. (자원을 혼자 쓰겠다.)
- Hold & Wait : 자원 하나 홀드 한 상태에서, 다른 자원이 반환되기를 기다린다.
- No Preemption : 비선점. 다른 프로세스가 가지고 있는 자원을 선점할 수 없다.[=뺏어올 수 없다] (반대 케이스는 내가 우선순위가 높으면 선점 가능한 경우.)
- Circular Wait : 대기가 환형으로 발생하는 경우.
Lock Free는 CAS instruction 지원이 필요하다.
'OS > Kernel' 카테고리의 다른 글
파이프라이닝과 해저드 (0) | 2018.06.20 |
---|---|
Meltdown 정리 (0) | 2018.05.26 |
CVE-2017-1000112 : Exploitable memory corruption due to UFO to non-UFO path switch (0) | 2017.11.08 |
[kernel] current 구조체 / cred 수정 (0) | 2017.10.22 |
[kernel] hook sys_call_table (0) | 2017.10.20 |