병행 프로세스

 - 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미




임계영역(Critical Section)

 - 다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여

어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원(영역)을 의미


상호배제(Mutual Exclusion, Mutex)

 - 특정 프로세스가 공유 자원을 사용하고 있을 경우 다른 프로세스가 

해당 공유 자원을 사용하지 못하게 제어하는 기법


동기화 기법

 - 두 개 이상의 프로세스를 한 시점에서는 동시에 처리할 수 없으므로 

각 프로세스에 대한 처리 순서를 결정하는 것으로, 상호 배제의 한 형태이다.

 - 세마포어, 모니터









상호배제 구현 기법


소프트웨어적 구현 기법

 - 2개의 프로세스 기준 : 데커(Dekker) 알고리즘, 피터슨(Peterson) 알고리즘

 - 여러 개의 프로세스 기준 : Lamport의 빵집 알고리즘


하드웨어적 구현 방법

 - Test & Set 기법

 - Swap 명령어 기법








세마포어(Semaphore)

- 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법이다.

 - P연산 : 자원을 사용하려는 프로세스들의 진입 여부를 자원의 개수(S)를 통해 결정하는 것으로 자원의 개수를 감소시켜(S--) 자원이 점유 되었음을 알림(Wait 동작)

 - V연산 : 대기중인 프로세스를 깨우는 신호(Wake Up)로서, 자원의 개수를 증가시켜(S++) 자원이 반납되었음을 알림(Siginal 동작)


 P(S) {
     S--;
     if S < 0
         // 이 프로세스를 재움 큐에 추가 (잠 듦)
 }

 V(S) {
     S++;
     if S <= 0
         // 재움 큐로부터 프로세스를 제거 (깨어남)
 }








모니터(Monitor)

 - 동기화를 구형하기 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 

할당하는 데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성된다.

 - 자료 추상화와 정보 은폐 개념을 기초로 하며 공유 자원을 할당하기 위한 병행성 구조로 이루어져 있다.

 - 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출해야 한다.

 - 외부의 프로시저는 직접 액세스할 수 없으며, 모니터의 경계에서 상호 배제가 시행된다.





'ComputerScience > OperatingSystem' 카테고리의 다른 글

주기억장치 할당 기법 - 연속 할당 기법  (0) 2017.10.16
교착상태  (0) 2017.10.16
프로세서 스케줄  (0) 2017.10.10
프로세스  (0) 2017.10.10
링커와 로더  (0) 2017.10.10

+ Recent posts