방송통신대학교 운영체제 강의 정리 자료입니다.
1. 생산자-소비자 문제
정의
: 두 협력 프로세스 사이에 버퍼(데이터를 임시로 저장해주는 곳)를 두고 생산자(데이터를 넣는 프로세스)와 소비자(데이터를 꺼내는 프로세스)의 상황을 다루는 문제

조건
: 버퍼에 여러 프로세스가 동시에 접근할 수 없으며(버퍼에 데이터를 넣거나 꺼내는 동안에는 데이터를 꺼내거나 넣을 수 없음 → 상호배제가 필요함.), 버퍼의 크기는 유한함(유한 버퍼 문제: 버퍼가 가득 찬 경우(빈 경우) 생산자(소비자)는 대기해야함 → 동기화 필요).
세마포어를 이용한 해결






2. 판독기-기록기 문제
정의
: 여러 협력 프로세스 사이에 공유자원을 두고 판독기(데이터를 읽는 프로세스)와 기록기(데이터를 쓰는 프로세스)의 상황을 다루는 문제

조건
: 하나의 기록기가 공유자원에 데이터를 쓰는 중에는 다른 기록기나 판독기는 공유자원에 접근할 수 없고(공유자원에 데이터를 쓰는 동안에는 누구도 접근할 수 없고, 공유자원에서 데이터를 읽는 동안에는 데이터를 쓸 수 없음. → 상호배제 필요), 여러 판독기는 동시에 공유자원에서 데이터를 읽을 수 있음.(단, 판독기가 읽는 중에는 기록기 대기)
제1 판독기-기록기 문제
: 판독기가 공유자원에 접근 중이라면 기록기보다 판독기에 우선순위를 줌. 즉, 새로운 판독기는 즉시 공유자원에 접근 가능함. 이 경우 기록기의 기아상태(오랜 상태 대기하게 되는 상태) 유발이 가능함.
세마포어를 통한 해결




제2 판독기-기록기 문제
: 판독기가 공유자원에 접근 중이라면 판독기보다 기록기에 우선순위를 줌. 즉, 대기중인 기록기가 있다면 새로운 판독기는 공유자원에 접근이 불가능함. 이 경우 판독기의 병행성이 떨어질 수 있고, 판독기의 기아상태 유발이 가능함.
세마포어를 통한 해결

3. 프로세스 간 통신(IPC: InterProcess Communication)
병형 프로세스가 데이터를 서로 공유하는 방법으로 하나의 운영체제에서 두 방법을 함께 사용하는 것도 가능함.
- 공유 메모리 방법
: 협력 프로세스가 동일한 변수(공유자원인 메모리 공간을 사용)를 사용하는 방법으로 생산자-소비자 문제의 유한버퍼, 판독기-기록기 문제의 공유자원이 대표적인 예시임. 대량 데이터 교환이 가능하기에 고속 통신이 가능하다는 장점이 있지만 응용 프로그래머가 통신상 발생 가능한 문제를 해결해줘야한다는 한계가 있음.

- 메시지 전달방법
: 협력 프로세스가 send(), receive()와 같은 시스템 호출 메시지를 주고 받는 방법으로 소량 데이터 교환에 적합하며 운영체제가 알아서 통신상 발생 가능한 문제들을 해결해줌.

메시지 전달방법의 논리적 구조
- 통신링크(메시지가 지나다니는 통로)

- 통신 링크의 구현 형태
: 연결 대상이 2개 인지 3개 이상인지, 두 프로세스 사이의 링크 개수가 하나인지 2개 이상인지, 방향성은 단방향인지 양방향인지, 용량(큐 크기가)은 무한인지 유한인지 0인지에 따라 구현 형태가 달라질 수 있음.



직접 통신
: 두 프로세스가 직접 서로를 지정하여 메시지를 전달하는 방식으로 오직 하나의 통신 링크가 자동으로 설정되며, 하나의 통신링크는 오직 두 프로세스 사이에만 연관됨. 양방향의 통신링크를 가질 수도 있음.



- 대칭형 주소지정

- 비대칭형 주소지정

간접통신
: 프로세스 사이에 둔 우편함을 통해 메시지를 전달하는 방식. 같은 우편함을 이용하는 경우 통신 링크가 설정되고, 여러 우편함을 이용하면 여러 개의 통신 링크가 존재함. 하나의 통신 링크가 여러 프로세스와 연관이 가능함. 통신링크는 단방향일 수도 있고 양방향일 수도 있음.

'방송통신대학교 > 3학년 1학기' 카테고리의 다른 글
[알고리즘] 1강. 알고리즘 소개 (1) (0) | 2025.03.31 |
---|---|
[데이터베이스 시스템] 5강. SQL (2) (0) | 2025.03.25 |
[운영체제] 4강. 병행 프로세스 I (0) | 2025.03.19 |
[운영체제] 3강. 프로세스 스케줄링 (0) | 2025.03.13 |
운영체제] 2강. 프로세스와 쓰레드 (0) | 2025.03.13 |
댓글