이중 버퍼 시스템
리포트 > 공학/기술
이중 버퍼 시스템
한글
2011.03.11
5페이지
1. 이중 버퍼 시스템.hwp
2. 이중 버퍼 시스템.pdf
이중 버퍼 시스템
이중 버퍼 시스템(double buffer system)

Key Idea - 소비자(consumer)가 두 버퍼 중 어느 하나를 비우고 있는 동안 생산자(producer)가 다른 버퍼를 애울 수 있도록 하는 것.

첫 번째 버퍼가 공백이 되었을 때 두 번째 버퍼는 이미 가득 차 있어야 한다.(그렇지 않을 경우 Idle time이 생긴다.) 소비자는 이 두 번째 버퍼를 다시 비울 수 있고, 반면에 생산자는 첫 번째 것을 다시 채울 수 있는데 이중 버퍼링은 이 과정의 반복이다.

※ flag - 버퍼의 체워짐 상태.
버퍼가 체워지고 있거나 비어 있다면 0,
버퍼가 비워지고 있거나 체워져 있다면 1의 값을 가진다.
※ rec_ctr - 버퍼 레코드 카운트, 버퍼에 있는 레코드를 카운트 하는 변수
※ pfill - 체워지고 있거나 체워질 버퍼를 가리키는 포인터
※ pempty - 비워지고 있거나 빌 버퍼를 가리키는 포인터

생산자(producer)

code
1 loop:if (pfill->flag == 1) goto loop;
2 issue start-I/O command to control unit;
3 wait while pfill->buffer is being filled;
4 pfill->rec_ctr = 1;
5 pfill->flag = 1;
6 pfill = pfill->next;
7 goto loop;
해석
1 현재 버퍼의 flag가 0이 될 때(버퍼가 다 빌때)까지 루프를
돌면서 기다린다. flag가 1이 아니면 다음문장 수행.
2 제어장치에 input/output의 시작 명령을 내린다.
3 버퍼가 다 찰때까지 기다린다.
4 현재 버퍼의 rec_ctr를 1로 세팅 한다.
5 현재 버퍼의 flag를 1로 세팅 한다.
6 현재 버퍼를 가리키고 있는 pfill포인터를 다음 버퍼를
가리키게 해 준다.
7 다음 버퍼를 가리키고 있는 pfill포인터를 갖고 다시 맨
처음 문장으로 돌아 간다.

소비자(consumer)

....
공학, 기술
생성 시스템과 추론 [파일처리론] C 언어 파일 관련 함수 조사 정리
임베디드 리눅스 안내문(이중결제에따른환불)
초 고층 구조 시스템 영화 예매 시스템에 대해서
기구설계학 설계과제[자동차 와이퍼 - 용차 윈.. 관리혁신과 인적자원혁신을 통한 조직설계
LG-OTIS_프로젝트매니저_신입_자기소개서_샘플 인적자원의 속성, 인사관리와 인적자원관리
제네시스(Genesis)STP전략 스웨덴의 협력적 노사관계
에너지절약형 건물 해킹과 악성코드 예방
 
수준측량 보고서
기본측량학실습 - 수준측량
공조설비설계 물량산출-덕트
물리학 실험 - 당구의 역학[충..
공학윤리 - 공학에서의 책임
공학윤리 사례 분석