• LF몰 이벤트
  • 캠퍼스북
  • 파일시티 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

[semaphore를 이용한 producer-consumer ] semaphore를 이용한 producer-consumer 프로그램

*훈
최초 등록일
2004.06.19
최종 저작일
2004.06
8페이지/한글파일 한컴오피스
가격 1,000원 할인쿠폰받기
다운로드
장바구니

소개글

프로그램이 실행되면 두 thread가 실행되며, producer thread가 먼저 sem_wait(&b_mutex)를 호출하게 되고, 이 부분에서 b_empty 세마포 값을 1감소 시킨다. 그 결과 세마포 갯수는 총 buffer_size에서 -1이 된다.

목차

semaphore를 이용한 producer-consumer 프로그램
3가지 프로그램의 장단점 분석.
결론/느낀점

본문내용

함수 설명
메인 함수 : 2개의 thread를 선언/생성/job을 할당해주면 이들 thread가 종료될때까지 main의 프로그램 종료를 기다린다.
producer함수 : for문을 이용하여 11번 실행하도록 하였으며, 우선 임의초(s)만큼 sleep한후 버퍼에 데이터를 저장한다.
consumer함수 : for문을 이용하여 11번 실행하도록 하였으며, 우선 임의초(s)만큼 sleep한후 버퍼로 부터 데이터를 불러온다.
프로그램이 실행되면 두 thread가 실행되며, producer thread가 먼저 sem_wait(&b_mutex)를 호출하게 되고, 이 부분에서 b_empty 세마포 값을 1감소 시킨다. 그 결과 세마포 갯수는 총 buffer_size에서 -1이 된다. 그리고 바로 pthread_mutex_lock(&mutex_lock)을 실행시켜 임계영역 부분인(mutex_lock)을 시작하게 된다. lock이 된면 다른 producer가 실행되는 동안 consumer는 접근하지 못하게 통제된다. 버퍼에 값을 실제 집어넣는 작업은 buffer[in]=i 이부분에서 일어나는데, 우선 i를 버퍼 in번째에 입력시키고, 버퍼의 위치를 다음으로 이동시켜준다. 그리고 마지막으로 카운트 값을 증가시켜 버퍼에 데이터를 저장하였으므로 데이터 갯수를 증가시켜 준다. 이때 만약 버퍼에 가득 찬다면 화면에 "Buffer is Full"을 출력하고, pthread_mutex_unlock(&mutex_lock)을 사용해 임계영역(mutex_lock)의 lock를 해제시켜주며, 마지막으로 sem_post(&b_full)에서 b_empty 세마포값을 1증가 시킴으로 해서 다음 producer동작이 일어날 수 있도록 했다.

참고 자료

- 프로그래머를 위한 JAVA2(Second Edition)
- UNIX Systems Programming(David A. Curry)
- 응용 운영 체제 개념(Silberschats, Galvin, Gagne)
- 교수님이 제공해주신 자료(pthread)
- http://www.javanuri.com
- http://www.joinc.co.kr
- http://www.serpentine.com/~bos/threads-faq/
- http://www.bell-labs.com/topic/books/os-book/slide-dir/index.html
- http://www.ezdoum.com/upload/thread/pthread.pdf
- http://www.math.arizona.edu/swig/pthreads/threads.html
- http://users.actcom.co.il/~choo/lupg/tutorials/multi-thread/multi-thread.html
- http://kldp.org/KoreanDoc/Thread_Programming-KLDP
- http://www.joinc.co.kr/modules.php?name=Search&query=thread

자료후기(3)

*훈
판매자 유형Bronze개인

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

이런 노하우도 있어요!더보기

찾던 자료가 아닌가요?아래 자료들 중 찾던 자료가 있는지 확인해보세요

더보기
최근 본 자료더보기
탑툰 이벤트
[semaphore를 이용한 producer-consumer ] semaphore를 이용한 producer-consumer 프로그램
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업