하나. 생산자, 고전적인 동기화 문제–소비자 문제(생산자-소비자 문제)에 관한 다음 질문에 답하십시오..
ㅏ) 제조사–소비자 문제란??
: 완충기(=저장)의 크기가 유한하고 버퍼가 가득 차거나 비어 있어 아무것도 추가하거나 제거할 수 없기 때문에 생산과 소비를 중지해야 하는 제약.
비) 이 문제를 해결하기 위해 3개의 세마포어(신호기)사용. 사용된 각 세마포어의 목적을 설명하십시오..
① 가는 린넨 뮤텍스. 생산자와 소비자는 공통 변수를 업데이트합니다.
, 이 시점에서 세마포어는 상호 배타적입니다.
.
② 세마포어 비어 있는. 버퍼의 여유 공간 수를 나타내는 세마포어입니다.
.
③ 세마포어 가득한. 버퍼의 공백 수를 나타내는 세마포어.
씨) 각 세마포어의 초기 값은 무엇입니까?? 이유를 설명해라.
-뮤텍스: 1, 이는 상호 배제 조건으로 기껏해야 하나의 쓰레드만 크리티컬 섹션에 진입해야 하기 때문이다.
. 그래서 습득하다에서 주문하면 0다음 프로세스를 차단하고 현재 임계 영역의 프로세스를 종료합니다.
풀어 주다다시 명령 하나중요 영역에서 단 하나의 프로세스만 실행되도록 증가되었습니다.
.
-비어 있음: 크기, 왜냐하면 비어 있는세마포어는 버퍼의 공백 수를 나타냅니다.
, 제조사 크기버퍼에 저장할 수 있기 때문에.
– 전체: 0; 왜냐하면 가득한세마포어는 버퍼의 공간 수를 나타냅니다.
, 이는 초기에 버퍼에 아무 것도 저장되지 않기 때문입니다.
.
5. 다음 용어의 의미를 간단히 설명하십시오..
a) 제한된 버퍼 문제
: 버퍼의 크기가 유한하기 때문에 생산자와 소비자가 생산과 소비를 중단하는 제약
b) 바쁜 대기
: CPU의미 있는 일을 하지 못한 채 반복적인 확인으로 기다림
c) 식사하는 철학자 문제
: 여러 명의 철학자가 원탁에 둘러앉아 생각을 하고 배가 고프면 좌우 2개의 젓가락으로 식사를 하고 원래 위치로 되돌려 통제하는 문제.
d) 첫 번째 독자/작성자의 문제
: 데이터베이스를 사용하기 위한 독자 프로세스의 우선 순위 지정.
e) 리더/라이터 문제
: 작성 프로세스의 우선 순위를 지정하는 코드