250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- slideChange
- centerSlides
- jquery
- swiperOption
- slidePerGroup
- loop:true
- classlist
- querySelector
- vue2
- realIndex
- error
- swiper
- index
- Vue
- eslint
- activeIndex
- javascirpt
- CORS
- eslint prettier
- display
- archiver
- JavaScript
- vscode
- slidePerView
- v-bind
- watchOverflow
- js
- 인덱스
- prettier
- css
Archives
- Today
- Total
코딩하는 둥둥
[ 쉽게 배우는 운영체제 ] 6-2. 교착 상태 필요 조건 본문
728x90
교착 상태 필요 조건
교착 상태는 상호 배제(mutual exclusion), 비선점(non-preemption), 점유와 대기(hold and wait), 원형 대기(circular wait)를 모두 충족해야 발생한다. 이 중 단 하나라도 충족하지 않으면 교착 상태가 발생하지 않는다.
- 상호 배제 : 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 한다. 배타적인 자원은 임계구역으로 보호되기 때문에 다른 프로세스가 동시에 사용할 수 없다. 따라서 배타적인 자원을 사용하면 교착 상태가 발생한다.
- 비선점 : 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 한다. 어떤 자원을 빼앗을 수 있다면 시간 간격을 두고 자원을 공유할 수 있다. 하지만 자원을 빼앗을 수 없으면 공유할 수도 없으므로 교착 상태가 발생한다.
- 점유와 대기 : 프로세스가 어떤 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 한다. 다른 프로세스의 작업 진행을 방해하는 교착 상태가 발생하려면 다른 프로세스가 필요로 하는 자원을 점유하고 있으면서 또 다른 자원을 기다리는 상태가 되어야 한다.
- 원형 대기 : 점유와 대기를 하는 프로세스 간의 관계가 원을 이루어야 한다. 점유와 대기를 하는 프로세스들이 서로 방해하는 방향이 원을 이루면 서로 양보하지 않기 때문에 교착 상태에 빠진다.
교착 상태와 아사 현상의 차이
- 아사 현상 : 정책상 잘못이나 오류로 인해 특정 프로세스의 작업이 이루어지지 않는 것을 말하며 에이징으로 해결할 수 있다.
- 교착 상태 : 아사 현상과 달리 정책상 잘못이나 오류가 없어도 자연적으로 발생한다. 따라서 교착 상태는 에이징으로 해결할 수 없고 정책을 바꾸는 것으로 막을 수도 없다. 교착 상태는 아사 현상보다 처리가 복잡하다.
728x90
'Computer Science > 쉽게 배우는 운영체제' 카테고리의 다른 글
[ 쉽게 배우는 운영체제 ] 6-4. 다중 자원과 교착 상태 검출 (0) | 2022.08.19 |
---|---|
[ 쉽게 배우는 운영체제 ] 6-3. 교착 상태 해결 방법 (0) | 2022.08.18 |
[ 쉽게 배우는 운영체제 ] 6-1. 교착 상태의 개요 (0) | 2022.08.07 |
[ 쉽게 배우는 운영체제 ] 5-4. 파일, 파이프, 소켓 프로그래밍 (0) | 2022.08.07 |
[ 쉽게 배우는 운영체제 ] 5-3. 임계 구역 해결 방법 (0) | 2022.08.03 |