티스토리 뷰
반응형
교착상태의 원인
교착상태는 4가지의 조건들이 '모두' 갖춰질 때 발생한다.
1. 자원의 배타적인 사용
자원이 한정적이더라도 모두가 공유할 수 있는 자원이라면 교착 상태는 발생할 수 없다. 배타적인 사용이 요구되는 자원들이 교착 상태의 원인이 된다. ( = 상호배제 조건, Mutual Exclusion Condition)
2. 자원의 부분 할당 (Partial Allocation)
각각의 프로세스는 자원이 필요할 때마다 조금씩 확보하고, 실행해 나가다가 어느 시점에 이미 누군가가 소유한 자원 때문에 이미 확보한 자원들을 소유한 채 대기 상태가 되고 교착 상태에 빠지게 된다. ( = 보유와 대기 조건, Hold & Wait)
3. 자원의 선점 불가능성
선점 가능한 자원이란 다른 프로세스가 사용 중이더라도 뺏어올 수 있는 자원을 말한다. 즉, 프로세스가 대기할 필요가 없으므로 교착 상태에 빠지지 않게 된다. 그러므로 자원의 선점 불가능성을 고수하면 교착 상태의 원인이 된다. ( = 비선점 조건, No Preemption)
4. 자원에 대한 환형 대기 (Circular-Wait)
프로세스들이 자신의 자원은 보유한 채로 서로 상대방의 자원을 요청하고 결과적으로 대기 상태가 되어버리는 일련의 과정에서 교착 상태가 발생할 수 있다. R은 자원(Resource), P는 프로세스(Process)이며 실선으로 된 화살표는 할당(allocation)을, 점선 화살표는 blocked를 의미한다.
반응형
'OS' 카테고리의 다른 글
[OS] 주기억장치 vs 보조기억장치, 메모리에 관하여 (0) | 2022.04.10 |
---|---|
[OS] 교착 상태 : 교착 상태 해결 방법! (0) | 2022.04.07 |
[OS] 교착상태 : 교착상태란?, 프로세스와 자원 (0) | 2022.04.03 |
[OS] CPU 스케줄링 : 다중 큐 스케줄링, PR 스케줄링 (0) | 2022.03.27 |
[OS] 프로세스 생성과 종료, 쓰레드(Thread) (0) | 2022.03.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 리눅스
- 쇼미더코드
- Baekjoon27219
- Baekjoon27211
- SELECT #SELECTFROM #WHERE #ORDERBY #GROUPBY #HAVING #EXISTS #NOTEXISTS #UNION #MINUS #INTERSECTION #SQL #SQLPLUS
- 버추억박스에러
- E_FAIL
- 코테
- 백준27219
- virtualbox
- cron시스템
- linuxgedit
- linuxawk
- awk프로그램
- 버추억박스오류
- 백준
- baekjoon
- atq
- GithubAPI
- whatis
- Linux
- linux파일
- OnActivityForResult
- linuxtouch
- 백준27211
- GitHubAPIforJava
- api문서
- 리눅스cron
- 사용자ID
- cat
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함