|
세마포어를 실제적인 unix상에서 구현을 해봄으로써 단순히 이론에만 충실했던 것에서 실질적으로 세마포어가 운영체제안에서 어떤식으로 구현이 되는가를 알 수 있던 좋은 기회였던 것 같다. 또한 문제를 통해서 세마포어 관련 시스템 호출
|
- 페이지 9페이지
- 가격 2,000원
- 등록일 2015.07.21
- 파일종류 한글(hwp)
- 참고문헌 있음
- 최근 2주 판매 이력 없음
|
|
운영체제 생산자 소비자 문제
mutex locks, semaphore를 이용해서 해결하기
적당한 크기의 배열을 하나 만들어, 생산자는 이 배열에 값을 넣는 쓰레드이고, 소비자는 배열에서 값을 빼는 쓰레드일 때, 각각의 쓰레드가 공유하는 하나의 배열에
|
- 페이지 10페이지
- 가격 1,500원
- 등록일 2009.12.14
- 파일종류 압축파일
- 참고문헌 없음
- 최근 2주 판매 이력 없음
|
|
다르며, 1~1000 microsecond 정도이다.
유닉스의 경우, 커널은 마음대로 context switch를 하지 못하게 해서 내부 데이타와 구조의 일관성을 유지한다. 커널은 exit 시스템 콜이 끝난 후, 프로세스가 휴면 상태에 들어갈 때 등에는 반드시 context switch를해
|
- 페이지 3페이지
- 가격 1,000원
- 등록일 2006.05.31
- 파일종류 한글(hwp)
- 참고문헌 없음
- 최근 2주 판매 이력 없음
|
|
s sleep(2);
printf("process v(semid);
printf("process exit(0);
}
void main() {
if(fork() == 0) handlesem(SEMKEY);
if(fork() == 0) handlesem(SEMKEY);
if(fork() == 0) handlesem(SEMKEY);
}
위의 소스에서 initsem 은 세마포어를 초기화 하고, p 와 v 함수는 세마포어 연산을 수행한다. 이
|
- 페이지 11페이지
- 가격 2,000원
- 등록일 2004.08.11
- 파일종류 한글(hwp)
- 참고문헌 없음
- 최근 2주 판매 이력 없음
|
|
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <semaphore.h>
/* thread 이름 */
char threadID1[] = "사람 1";
char threadID2[] = "사람 2";
char threadID3[] = "사람 3";
/* semaphore 변수 */
sem_t Hole1;
sem_t Hole2;
|
- 페이지 6페이지
- 가격 1,000원
- 등록일 2005.02.18
- 파일종류 기타
- 참고문헌 없음
- 최근 2주 판매 이력 없음
|