병행 프로세스
- 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미
임계영역(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 |