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포인터를 갖고 다시 맨
처음 문장으로 돌아 간다.
생성 시스템과 추론 1. 생성 시스템의 구조
1.1 생성 시스템의 구성
(1) 생성 메모리 (production memory) : 생성 규칙들의 모임.
(2) 작업 메모리 (working memory) : 현재의 상태를 나타내는 버퍼(buffer)와 비슷한
데이터 ..
[파일처리론] C 언어 파일 관련 함수 조사 정리 파일처리론
제목 : C 언어 파일 관련 함수 조사 정리
1. 고수준, 저수준 I/O Function의 종류와 특징 비교
저수준과 고수준의 분류방법은 Computer Language와 마찬가지로 기계와 사람중 어디에 더 가까운지, 즉..
임베디드 리눅스 과제나 수업자료 준비 시 도움이 될 것입니다.
목차
1. 임베디드 리눅스 정의
2. 임베디드 리눅스가 갖춰야 할 요구사항
3. 임베디드 시스템에 리눅스를 채택하는 이유
4. 임베디드 시스템에 리눅스를 채택하기 어..
안내문(이중결제에따른환불) 개요
지은이
○○○
서명
○○○
작성일자
20 년월일
분류/분량
환불 / 1page
제목
이중 결제에 따른 환불 안내
요약
시스템 상의 오류로 일어난 이중 결제에 양해를 구하고 ○○월○○일○○시를 기해 전체 환불..
초 고층 구조 시스템 Landmark Tower
Nishi-ku, Yokohama, Japan
설계자 stbbins associates
구조설계 LeMessurier Consultans
지상높이 342m
층수 타워동: 옥탑3층, 지상70층, 지하3층
플라자동: 지상5층일부(7층), 지하4층
..
영화 예매 시스템에 대해서 Ⅰ. Project Identification and Selection
1. 자기소개
학과 :
학번 :
이름 :
2. 프로젝트의 주된 목적
●영화관 예매 시스템 이라는 프로젝트 수행을 통해서 프로젝트의 절차를 알고,
프로젝트 관리를 익..