세마포어를 이용한 데이터 공유
본 자료는 1페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
해당 자료는 1페이지 까지만 미리보기를 제공합니다.
1페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

세마포어를 이용한 데이터 공유에 대한 보고서 자료입니다.

본문내용

t sembuf p_buf; // 세마포어의 변수부분(미리 만들어져있음)
if(flag==1) { // 누가 접근했는지를 'flag'를 통해서 알수있다.
printf("Product.. Wait for Critical Section Entering\n");
}
else {
printf("Customer.. Wait for Critical Section Entering\n");
}
p_buf.sem_num = 0; // 값을 초기화
p_buf.sem_op = -1; // 'p()'는 값을 '1'씩 감소하기에
p_buf.sem_flg = SEM_UNDO; // 수행도중 프로그램에 에러가 생길때
// 이를 복구해서 예전상태로 만들어줌
if(semop(semid, &p_buf, 1)==-1) { // 세마포어 연산
perror("p(semid)");
return -1;
}
return -1;
}
int v(int semid, int flag) { // 'p()'와 동일
struct sembuf v_buf;
if(flag==1) {
printf("Product.. Critical Section Leaved\n");
}
else {
printf("Customer.. Critical Section Leaved\n");
}
v_buf.sem_num = 0;
v_buf.sem_op = 1; // 'v()'는 값을 '1'씩 증가시키기에
v_buf.sem_flg = SEM_UNDO;
if(semop(semid, &v_buf, 1)==-1) {
perror("v(semid)");
return -1;
}
return 0;
}

키워드

  • 가격2,300
  • 페이지수5페이지
  • 등록일2013.07.30
  • 저작시기2013.7
  • 파일형식한글(hwp)
  • 자료번호#867649
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니