본문 바로가기

Computer Science/os

임계구역 문제

임계구역 문제란?

프로세스들이 협력할 때 사용할 수 있는 프로토콜을 설계하는 것이다.

 

해결안(세가지 요구조건)

1. 상호배제 (Mutual exclusion) : 어떠한 프로세스가 자기의 임계구역에서 실행된다면 다른 프로세스들은 그 구역에서 실행될 수 없다.

2. 진행 (Progress) : 자기의 임계구역에서 실행되는 프로세스가 업으면, 나머지 구역에서 실행중이지 않은 프로세스들만 진입할 수 있는지 결정할 수 있고, 무한정 연기될 수 없다.

3. 한정된 대기 (Bounded waiting) : 프로세스가 자기의 임계구역에 집입하려는 요청을 한 후 허용될 때까지 다른 프로세스들이 자신의 임계구역에 진입하도록 허용되는 횟수에 제한이 있어야 한다.

 

경쟁 조건이 발생하기 쉬운 커널 자료 구조

-메모리 할당을 관리하는 자료 구조

-프로세스 리스트를 유지하는 자료 구조

-인터럽트 처리를 위한 자료구조

 

OS 내에서 임계구역을 다루기 위한 두가지 접근법

-선점형 커널 : 프로세스가 커널 모드에서 수행되는 동안 선점되는 것을 허용

-비선점형 커널 : 커널을 빠져나가거나, 봉쇄되거나, 자발적으로 CPU의 제어를 양보하기 전까지 수행

 

선점형 커널이 대세

-Windows XP, Windows 2000 까지는 비선점형 커널이었다.

'Computer Science > os' 카테고리의 다른 글

The Dining Philosophers  (0) 2014.01.24
교착상태 (deadlock)  (0) 2014.01.24
Thread의 Def 와 Coding  (0) 2014.01.24
Atomic Operation 이란?  (1) 2014.01.24
대칭형 다중 처리 (SMP)  (0) 2014.01.24