2023. 3. 20. 16:33ㆍ운영체제
1. 고전적 동기화 문제인 생산자-소비자 문제(producer-consumer problem)에 대한 다음 물음에 답하라.
a) 생산자-소비자 문제란 무엇인가?
: 버퍼(=창고)의 크기가 유한하여 버퍼가 가득차거나 비어서 더 넣을 수거나 빼낼 수 없어 생산과 소비를 중단해야 하는 제약사항
b) 이 문제의 해결을 위해 세 개의 세마포(semaphore)가 사용된다. 사용되는 세마포의 용도를 각각 설명하여라.
① 세마포 mutex. 생산자와 소비자가 공통변수를 업데이트하는데, 이 때 상호배타적으로 일어나도록 하는 세마포.
② 세마포 empty. 버퍼 내에 비어있는 공간의 개수를 나타내는 세마포.
③ 세마포 full. 버퍼 내에 차 있는 공간의 개수를 나타내는 세마포.
c) 각 세마포의 초기 값은 각각 얼마인가? 그 이유도 설명하라.
-mutex : 1, 왜냐하면 상호배타의 조건으로 임계구역에 최대 한 개의 쓰레드가 들어가야하기 때문이다. 그래서 acquire의 명령이 떨어진다면 0으로 가서 다음 프로세스가 블록되도록 하고 현재 임계구역에 있는 프로세스의 동작이 끝나 release의 명령이 떨어져 다시 1로 증가하여 오직 한 개의 프로세스만 임계구역에서 동작되도록 한다.
-empty : size, 왜냐하면 empty세마포는 버퍼 내에 비어있는 공간의 개수를 나타내므로, 생산자가 size만큼 버퍼에 저장할 수 있기 때문이다.
-full : 0, 왜냐하면 full세마포는 버퍼 내에 차 있는 공간의 개수를 나타내므로, 처음에는 버퍼에 아무것도 저장안되어 있기 때문이다.
5. 다음 용어의 의미를 간략히 설명하라.
a) bounded buffer problem
: 버퍼의 크기가 유한하여 생산자와 소비자가 생산과 소비를 중단하게 되는 제약사항
b) busy wait
: CPU가 의미 있는 일을 하지 못하고 반복 확인만 하며 기다리는 것
c) dining philosopher problem
: 여러 철학자들이 원탁식탁에 둘러 앉아 생각하다가 배가 고프면 좌우의 두 개 젓가락으로 식사를 하고 다시 원위치 시켜 제어하는 문제
d) first readers/writers problem
: 독자 프로세스에게 데이터베이스 사용 우선권을 주는 것
e) readers/writers problem
: 저자 프로세스에게 우선권을 주는 코드
'운영체제' 카테고리의 다른 글
3-5 교착상태의 처리 (0) | 2023.03.21 |
---|---|
quiz7 (0) | 2023.03.20 |
3-4 교착상태 (0) | 2023.03.20 |
3-3 고전적 동기화 문제 (0) | 2023.03.20 |
quiz4 (0) | 2023.03.20 |