본문 바로가기

프로그래밍/이론정리

운영체제 #3 - 교착상태


프로세스 집합에 있는 각 프로세스가, 모두 같은 집합에 있는 다른 프로세스만이 일으킬 수 있는 이벤트를 기다리고 있다면 이 집합 안에 있는 프로세스들은 교착상태에 있다.

간단히, 컵과 스푼이 모두 있어야 커피를 마실수 있는데, 각각 하나 밖에 없을 때,
A가 컵을 갖고 스푼을 기다리고 있고, B가 스푼을 갖고 컵을 기다리고 있다.
자원획득에는 양보란 개념이 없기에 모두 커피를 마실 수 없는 상황이 온다.



교착상태의 조건
1. 상호배제 (mutual exclusion)
2. 보유와 대기 (hold and wait)
3. 비선점 (non-preemption)
4. 환형대기 (circular wait)

교착상태의 해법은
1. 무시
2. 발견과 회복
3. 동적회피
4. 예방

1. 무시
   타조 알고리즘: 머리를 파묻고 모른척한다.
   교착상태를 해결하기 위한 시스템의 제약보다는 편리성을 위해 무시

2. 발견과 회복
   교착상태의 사이클을 발견하여 해결(선점(preemtion), 복구(rollback), 제거(killing))

3. 동적회피
    자원할당시 불안정한 상태일 경우, 안전한 상태가 될 때까지 처리 지연

4. 예방
   상호배제 부정: 자원을 꼭 필요한 시점에만 할당하도록, 스풀링 방식 사용
   보유와 대기의 부정: 모든 자원을 한번에 요청하도록 (사용자원 모름, 최적화X)
   비선점 부정: 불가능하다. (ex. 프린터 출력 중 정지하는 것)
   환형대기: 자원서 순서를 정해 차례대로만 쓰도록 하는 것. 모두 만족하기 어렵다.







Tip.
No.1 슈퍼컴퓨터 (2010/06): (http://www.top500.org/list/2010/06/100)
곧 새로운 순위를 발표할 때가 되었다. 6월, 11월에 발표한다.

Jaguar
2009, 미국 오크리지 연구소(OLNL)에 위치. Cray 社.
AMD x86_64 Opteron Six Core 2600 MHz (10.4 GFlops)

Tachyon II
우리나라는 15위에 있다. Jaguar에 비해 단순 수치비교로 1/10 정도의 성능.
말도 참 많았던, 그 슈퍼 컴인 듯하다. 썬 시스템.




'프로그래밍 > 이론정리' 카테고리의 다른 글

정렬알고리즘 정리  (0) 2011.03.01
네트워크 이론정리  (0) 2011.02.07
운영체제 #4 - 메모리 관리  (0) 2010.11.15
운영체제 #2 - 스케줄링  (0) 2010.11.01
운영체제 #1  (0) 2010.10.30