학습목표
1. 세마포어를 이용하여 생산자/소비자 문제를 해결할 수 있다.
2. 세마포어를 이용하여 판독기/기록기 문제를 해결할 수 있다.
3. 프로세스 사이의 통신을 위한 논리적 구조에 대해 설명할 수 있다.
4.3 프로세스의 상호협력
: 병행 프로세스들의 상호협력
- 공통작업을 수행하기 위해 서로 협동하는 경우
- 예 : 생산자/ 소비자문제, 판독기/기록기 문제
4.3.1 생산자/ 소비자 producers and consumers 문제
- 유한 버퍼 문제라고도 함
- 고정된 크기를 가진 버퍼를 생산자와 소비자 사이에 둠
- 버퍼가 비어 있다면 소비자가 기다리게 되고
버퍼가 가득차면 생산자가 기다리게 됨
- 상호배제와 동기화가 필요
* 세마 포어 이용 - mutex, empty, full
- 세마포어 : 정수형 공용 변수
4.3.2 판독기/기록기 문제
데이터 객체 data object (파일이나 레코드 같은 것)는 여러 병행 프로세스 간에 공유될 수 있다.
이런 프로세스 중에 일부는 다른 것이 공유객체의 내용을 읽기를 원할 때,
공유객체의 갱신(읽거나 쓰기)을 원할 수 있다. 읽고자 하는 프로세스는 판독기 reader,
쓰고자 하는 프로세스는 기록기 writer라고 구분한다.
> 우선순위에 따른 문제의 변형
(1) 판독기/ 기록기 문제
- 여러 개의 판독기가 동시에 공유 데이터 객체에 접근하는 것은 문제가 없음
- 기록기가 판독기나 다른 기록기와 동시에 공유 데이터 객체에 접근하는 경우 배타적 접근을 해야 함
(2) 제1 판독기/ 기록기 문제 (판독기 우선)
- 기록기가 이미 공유객체의 사용을 허가되지 않았다면 판독기는 대기 하지 안흠
- 기록기의 기아상태 유발 가능
(3) 제 2 판독기/ 기록기 문제 (기록기 우선)
- 일단 기록기가 준비되었다면 기록을 가능한 한 빨리 수행할 수 있도록 함
- 판독기의 기아상태 유발 가능
4.4 프로세스 간의 통신
프로세스 간의 통신 (IPC, Interprocess Communication)
> 병행 프로세스 사이의 통신을 위한 방법
- 공유기억장치 shared memory 기법
- 메시지 시스템 message system 기법
> 두 방법은 상호 배타적이 아님
- 단일 운영체제 내에서 동시에 사용 가능
4.4.1 공유기억장치 기법
- 프로세스 간에 공유변수를 두어 프로세스가 이를 이용하여 정보 교환
- 고속의 통신을 할 수 있음
- 통신기능 제공의 책은은 응용 프로그래머에게 있음
- 운영체제는 공유 기억장소만을 제공
- 예 : 유한버퍼
'방송통신대학 > 운영체제' 카테고리의 다른 글
교착상태 deadlock, 자원할당 (2) | 2020.06.30 |
---|---|
프로세스 간의 통신IPC, Interprocess Communication (0) | 2020.06.23 |
기말 ] 벨 라파듈라 ,비바 모델의 공통점과 차이점 (0) | 2020.06.06 |
4강 4강 병행프로세스 1 (0) | 2020.04.28 |
3강 제 3강 스케줄링 알고리즘 (0) | 2020.04.27 |