검색어 입력폼

[운영체제]이중 버퍼시스템구현

저작시기 2003.09 |등록일 2005.06.04 | 최종수정일 2014.11.26 한글파일한컴오피스 (hwp) | 12페이지 | 가격 1,800원

소개글

이중버퍼시스템을 Visual C++6.0으로 구현했습니다.
감사합니다.

목차

(1) 이론적 배경
1. 버퍼
2. 이중 버퍼 시스템의 원리

(2) 이중 버퍼 시스템 개발 환경
1. 사용된 공통 컨트롤(Common Control)
2. 사용된 변수
3. 주안점

(3) 실행 화면 캡쳐

(4) 고찰

(5) 이중 버퍼 시스템 소스 파일
1. DoubleBufferDlg.cpp
2. DoubleBufferDlg.h (헤더 파일)

본문내용

(1) 이론적 배경
1. 버퍼
1) 버퍼(buffer) : 화일로부터 데이타를 읽어들이는 주기억 장치 내의 일정 구역을 말한다.

2) 버퍼관리 : 제한된 주기억 장치의 버퍼 공간을 사용자에게 최적으로 분배하기 위해서 버퍼 관리자는 사용자의 요구에 따라 버퍼 공간을 할당한다. 주기억 장치 가운데 현재 사용하지 않는 부분은 버퍼 관리자의 관리하에 들어가게 되고, 버퍼 요구량이 할당 가능 공간을 초과하면 버퍼 관리자는 그 사용자 프로세스를 지연시켜거나 우선 순위가 낮은 프로세스에 할당된 버퍼 공간을 회수하게 된다. 회수는 사용도가 낮은 것부터 할 수도 있다. 만일, 시스템 전체를 페이지들로 만들어 놓고, 프로그램 속에서 버퍼관리가 수행되어지게 하면 별개의 버퍼 관리 프로그램은 없어도 된다. 그러나, 어떤 관리에서든지 주기억 장치의 단편(fragmentation)으로 인한 낭비를 최소화하기 위해서는 파일 시스템이 사용하는 버퍼의 크기와 한계를 운영체제가 사용하는 페이지와 연관시켜 고려하는 것이 좋다.

3) 프로세스가 블록을 요구하면 버퍼관리자는 다음과 같은 과정으로 처리한다.
① 테이블을 대조해서 그 블록이 이미 주기억 장치의 버퍼 내에 있는지 조사한다.
② 만일 있으면 그 블록을 포함하고 있는 버퍼에 대한 포인터를 프로세스에 넘긴다.
③ 만일 없으면 버퍼를 할당하여 그 블록을 버퍼로 읽어들이고 프로세스는 운영체제의 큐에 넣어 대기하도록 한다.

4) 버퍼를 채우는 채널 프로그램의 기본 구성
① 프로그램의 READ 명령이 있을 때까지 기다림
② 제어 장치에 I/O 시작 명령을 내림
③ 버퍼가 차기를 기다림
④ OS에 인터럽트를 발생시켜서 프로그램이 버퍼로부터 데이타를 읽도록함
-> 사용자 프로그램은 버퍼가 찰때까지 유휴 상태(idle)

5) 예상 버퍼링 (anticipatory buffering)
① 프로그램이 대기 상태에 있을 가능성을 어느 정도 제거
② I/O 제어 시스템은 프로그램이 필요로 할 데이타를 미리 예측하기 때문에 항상 버퍼를 가득 채워 놓음

참고 자료

없음
다운로드 맨위로