운영체제-5
생산자-소비자 문제 두 협력 프로세스 사이에 버퍼를 두고 생산자와 소비자의 상황을 다루는 문제 생산자 : 데이터를 넣는 프로세스 소비자 : 데이터를 꺼내는 프로세스 버퍼 : 데이터를 임시로 저장 하는 곳 버퍼에 여러 프로세스가 동시에 접근할 수 없다 버퍼에 데이터를 넣는 동안 데이터를 꺼내지 못함 데이터를 꺼내는 동안 데이터를 넣지 못함 *상호배제 필요 버퍼의 크기가 유한하다. 버퍼가 풀인 경우 생산자는 대기해야한다 버퍼가 널인 경우 소비자는 대기해야한다. *동기화 필요 세마포어를 이용한 해결 생산자의코드 while(true){ 데이터 생산 p(empty); p(mutex); 데이터 insert v(mutex); p(full); //버퍼에 데이터 증가 } 소비자의코드 while(true){ p(full)..
2023.04.28