고급 운영체제 생산자 소비자 모델을 기반으로 동기화와 성능에 대한 리포트
- 최초 등록일
- 2009.08.21
- 최종 저작일
- 2005.10
- 21페이지/ MS 파워포인트
- 가격 1,000원
소개글
생산자 소비자 스레드를 이용하여
동기화에 따른 성능리포트를 상세하게 기록하였습니다.
목차
Mutex 생산자 2 / 소비자 2 일 때 소스 및 성능 측정 방법
Mutex 생산자, 소비자가 2:2 일 때
작전과 각각의 성능
Mutex 생산자 2 / 소비자 1 일 때 소스 및 성능 측정 방법
Mutex 생산자, 소비자가 2:1 일 때
작전과 각각의 성능
Semaphore 생산자 2 / 소비자 2 일 때 소스 및 성능 측정 방법
Semaphore 생산자, 소비자가 2:2 일 때
작전과 각각의 성능
Semaphore 생산자 2 / 소비자 1 일 때 소스 및 성능 측정 방법
Semaphore 생산자, 소비자가 2:1 일 때
작전과 각각의 성능
결 론
본문내용
생산자 2 / 소비자 2
작전 1
void *producer(void *arg)
{
int loop = loop_count;
while (loop--) {
check_again: pthread_mutex_lock(&mutex);
if (((head + 1) % MAX_BUF_ENTRY) == tail) { /* Buffer Full */
pthread_mutex_unlock(&mutex);
goto check_again;
}
buffer[head] = in_value++;
head = (head + 1) % MAX_BUF_ENTRY;
pthread_mutex_unlock(&mutex);
}
}
void *consumer(void *arg)
{
int loop = loop_count;
while (loop--) {
check_again: pthread_mutex_lock(&mutex);
if (head == tail) { /* Buffer Empty */
pthread_mutex_unlock(&mutex);
goto check_again;
}
if (buffer[tail] != out_value) {
//printf("error exprected:%d, read:%d\n", out_value, buffer[tail]);
error_count++;
}
out_value = buffer[tail] + 1;
tail = (tail + 1) % MAX_BUF_ENTRY;
pthread_mutex_unlock(&mutex);
}
}
참고 자료
없음