Producer-Consumer 프로세스를 이용한 bounded buffer 문제 solution 설계 레포트
- 최초 등록일
- 2017.12.09
- 최종 저작일
- 2017.04
- 7페이지/ 한컴오피스
- 가격 1,000원
소개글
Producer-Consumer 프로세스를 이용한 bounded buffer 문제 solution 설계 레포트입니다.
경북대학교 운영체제 강의에서 A+ 학점을 받은 레포트입니다.
목차
1. Producer-Consumer Problemsolution 설계 목표
1.2. Buffer
1.3. Producer-Consumer Threads
1.4. Windows Mutex Locks
1.5. Windows Semaphores
2. Buffer.c 분석
본문내용
1. Producer-Consumer Problem
이 프로젝트에서는 Producer-Consumer 프로세스를 사용하여 bounded buffer 문제에 대한 programming solution을 설계합니다. 앞서 제시된 해결책은 3개의 semaphore를 사용합니다. 빈 슬롯과 전체 슬롯의 빈 슬롯 수와 전체 슬롯 수를 계산합니다. mutex는 항목의 실제 삽입 또는 제거를 보호하는 binary (or mutual exclusion) semaphore입니다. buffer에 저장합니다. 이 프로젝트에서는 mutex를 나타내기 위해 binary semaphore 대신 mutex 잠금 및 빈 전체에 대해 표준 계산 semaphore를 사용합니다. 별도의 thread로 실행되는 Producer-Consumer는 비어있는, 전체 및 mutex 구조와 동기화 된 buffer간에 항목을 이동합니다. Pthreads 또는 Windows API를 사용하여 이 문제점을 해결할 수 있습니다.
* Buffer
내부적으로, buffer는 고정 된 크기의 타입의 버퍼 항목 배열 (typedef를 사용하여 정의)로 구성됩니다. buffer 항목 객체의 배열은 순환 대기열로 조작됩니다. buffer 항목의 정의는 버퍼의 크기와 함께 buffer.h 헤더 파일에 저장 될 수 있습니다.
buffer는 producer thread와 consumer thread에서 각각 호출되는 item() 및 remove() 함수의 두 가지 함수로 조작됩니다. insert_item()과 remove_item() 함수는 고유의 알고리즘을 사용하여 producer와 consumer를 동기화합니다. buffer는 빈 및 전체 semaphore와 함께 mutual exclusion object mutex를 초기화하는 초기화 함수를 요구합니다. main() 함수는 buffer를 초기화하고 별도의 buffer를 생성합니다.
producer thread와 consumer thread를 생성하면 main() 함수는 일정 시간 동안 sleep 상태가 되고, sleep에서 깨어나면 응용 프로그램이 종료됩니다. main() 함수는 command line에서 3개의 매개 변수를 전달합니다.
참고 자료
없음