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

[충남대 최훈]운영체제 생산자 소비자 문제 구현 및 커널 알고리즘 분석

*승*
최초 등록일
2012.10.13
최종 저작일
2011.04
22페이지/한글파일 한컴오피스
가격 7,000원 할인쿠폰받기
다운로드
장바구니

소개글

과제의 목표
◯ 내용
□ 생산자- 소비자 문제 구현
□ 커널 알고리즘 분석
◯ 도출해야 할 결과
□ 생산자-소비자 알고리즘을 Unix/Linux에서 구현한다.
․ Three processes with shared memory
․ Three threads
․ 생산자가 버퍼에 저장한 시각과 소비자가 버퍼에서 읽어갈 때의 시각 및 그 차이 및 20개 시간차의 평균값을 출력한다.
․ 두 방법 모두 item을 생산하고 소비하는데 random한 시간이 걸리게 한다.
□ The Design of the UNIX OS책의 알고리즘을 분석하여 커널이 어떻게 동작하는지 설명한다

2. 생산자 -소비자 문제 주요 모듈 설명
◯ Multi Process
□ fork()함수를 통해 같은 코드를 실행하는 또 다른 process를 가질 수 있다. 이러한 프로세스들이 서로 통신하기 위해서는 IPC(Semaphore, Queue, shared memory, message passing)방법을 사용해야 한다. 이번 과제에서 사용한 shared memory생성을 위해 사용된 함수들을 살펴보자.

목차

1. 과제의 목표
2. 생산자 -소비자 문제 주요 모듈 설명
2. 커널 알고리즘 분석

본문내용

1. 과제의 목표
내용
□ 생산자- 소비자 문제 구현
□ 커널 알고리즘 분석
도출해야 할 결과
□ 생산자-소비자 알고리즘을 Unix/Linux에서 구현한다.
Three processes with shared memory
Three threads
생산자가 버퍼에 저장한 시각과 소비자가 버퍼에서 읽어갈 때의 시각 및 그 차이 및 20개 시간차의 평균값을 출력한다.
두 방법 모두 item을 생산하고 소비하는데 random한 시간이 걸리게 한다.
□ The Design of the UNIX OS책의 알고리즘을 분석하여 커널이 어떻게 동작하는지 설명한다

2. 생산자 -소비자 문제 주요 모듈 설명
Multi Process
□ fork()함수를 통해 같은 코드를 실행하는 또 다른 process를 가질 수 있다. 이러한 프로세스들이 서로 통신하기 위해서는 IPC(Semaphore, Queue, shared memory, message passing)방법을 사용해야 한다. 이번 과제에서 사용한 shared memory생성을 위해 사용된 함수들을 살펴보자.
SYSTEM CALL : int shmget( key_t key, int size, int shmflg );
- 새로운 메시지 큐를 만들거나 존재하는 큐에 접근하기 위해 shmget()시스템 콜이 사용된다.
- shmget()의 첫번째 아규먼트는 키값이다(ftok()호출에 의해 반환된). 이 키값은 커널안에 존재하는 다른 공유 메모리 세그먼트의 키값과 비교되어진다. 이때, 열기 나 접근 동작은 shmflg 아규먼트의 내용에 달려있다.
- IPC_CREAT : 커널안에 이미 존재하지 않는다면 세그먼트를 만든다.
SYSTEM CALL : int shmat( int shmid, char * shmaddr, int shmflg)
- addr 아규먼트가 제로(0)이면, 커널은 매핑되지 않은 지역을 찾으려고 한다.
- 세그먼트를 위한 유효한 IPC 확인자가 넘겨지고 세그먼트가 붙여진 주소를 반환한다.
SYSTEM CALL : int shmctl( int shmqid, int cmd, struct shmid_ds *buf);
- IPC_RMID : 제거하기 위해 세그먼트에 표시하는데 실제로 커널로부터 세그먼트를 제거 하는 것이 아니라, 제거하기 위해 세그먼트에 표시를 해둔다. 실제적인 제거 자체는 현재 세그먼트에 붙어있는 마지막 프로세스가 적절해 detached됐을 때 일어난다. 현재 세그먼트에 붙어있는 프로세스가 없으면, 제거는 즉시 이루어진다. 공유메모리 세그먼트에서 detach되기 위해 프로세스는 shmdt시스템 호출을 호출한다.
SYSTEM CALL : int shmdt( char *shmaddr)
- 위의 shmctl에서 설명한 것과 같이 공유 메모리 세그먼트가 프로세스에 의해 더 이상 필요가 없어진 후에, 이 시스템 콜을 호출하여 detach되어져야 한다.

참고 자료

없음
*승*
판매자 유형Bronze개인

주의사항

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

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

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

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

최근 본 자료더보기
탑툰 이벤트
[충남대 최훈]운영체제 생산자 소비자 문제 구현 및 커널 알고리즘 분석 무료자료보기
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
AI 챗봇
2024년 06월 11일 화요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
3:28 오전
New

24시간 응대가능한
AI 챗봇이 런칭되었습니다. 닫기