dongdorodongdong
병행 프로세스 본문
정의
- 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것
문제점
- 동시에 두 개 이상의 프로세스를 병행 처리하면 한정된 자원(CPU, Memory, Disk, I/O 장치 등)에 대한 사용 순서 등 여러 가지 문제가 발생
해결책
- Critical Section (임계구역)
- Mutual Exclusion (상호 배제)
- 동기화 기법
- Semaphore (세마포어)
- Monitor (모니터)
Critical Section (임계 구역)
- 정의
- 한 순간에는 반드시 하나의 프로세스에 의해서만 자원 또는 데이터가 사용되도록 하고, 이러한 자원이 프로세스에 의하여 반납된 후 비로소 다른 프로세스에서 자원을 이용하거나 데이터를 접근할 수 있도록 지정된 영역
즉, 하나의 프로세스만 자원을 이용할 수 있도록 보호된 영역 - 특징
- 특정 프로세스가 독점할 수 없다.
- 프로세스가 임계 구역에 대한 진입을 요청하면 일정 시간 내에 진입을 허락해야 한다.
Mutual Exclusion (상호 배제)
- 정의
- 한 프로세스가 공유 메모리, 파일을 사용하고 있을 때 다른 프로세스들이 사용하지 못하도록 배제 시키는 제어 기법
- 임계 구역을 유지하는 기법 - 요구조건
- 두 개 이상의 프로세스들이 동시에 임계영역에 있어서는 안된다.
- 어떤 프로세스도 임계영역에 들어가는 것이 무한연기 되어서는 안된다.
- 임계영역 밖에 있는 프로세스가 다른 프로세스의 임계영역 진입을 막아서는 안된다.
- 임계구역 내에서 인터럽트, 교착상태, 무한반복이 발생되지 않도록 해야 함 - 구현기법
- S/W 구현 방법
"데커 알고리즘, 피터슨 알고리즘"
- H/W 구현 방법
"Test&Set 기법, Swap 명령어 기법" - Dekker (데커) 알고리즘
- 교착상태가 발생하지 않음을 보장
- 공유 데이터에 대한 처리에 있어서 상호 배제를 보장
- 별도 특수 명령어 없이 순수하게 S/W로 해결
Semaphore (세마 포어)
- 정의
- 신호기, 깃발이라는 뜻
- 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법
- 특징
- Dijkstra (다익스트라)가 제안
- P와 V라는 연산에 의해서 동기화유지 및 상호 배제 보장
- 여러개의 프로세스가 동시에 값을 수정하지 못함
- S는 P와 V연산으로만 접근 가능한 세마포어 변수, 공유 자원의 개수.(0, 사용중 / 1, 사용가능)
- S가 2이면 임계구역에 2개의 프로세서가 들어갈 수 있음 - 연산
- P
"임계 영역을 사용하려는 프로세스들의 진입여부를 결정하는 조작으로 자원이 점유되었음을 알림 (Wait 동작, S = S - 1)"
- V
"대기 중인 프로세스를 깨우는 신호로 자원이 반납되었음을 알림 (Signal 동작, S = S + 1)"
Monitor (모니터)
- 정의
- 임계구역과 유사한 개념
- 동기화를 구현하기 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 할당하는데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성
- 특징
- 자료 추상화, 정보 은폐 개념을 기초로 함
- 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출
- 외부의 프로세스는 직접 액세스할 수 없으며, 모니터의 경계에서 상호배제가 시행
- 한 순간에 하나의 프로세스만 진입하여 자원을 사용
- 모니터에 사용되는 연산은 Wait, Signal
'Operating System' 카테고리의 다른 글
Operating System (0) | 2019.04.12 |
---|---|
DeadLock (0) | 2019.04.11 |
Linux/Unix 기본 명령어 (0) | 2019.04.11 |
CPU Scheduling (0) | 2019.03.26 |
가상기억장치의 성능(Working Set/Thrashing/Locality) (0) | 2019.03.26 |