240 likes | 596 Views
Chap 2. 입출력 관리. 김은정 eunjeong@kunsan.ac.kr 군산대학교 정보통계학과 정보과학기술 연구실 2012.01.03. 목차. 2. 입출력 관리 입출력 기능 입출력 방식 입출력 버퍼링 입출력 인터럽트. 입출력 방식 (2/6). 간접 입출력 방식 1 다중 프로그래밍을 구현하기 위해 이용하는 방식 CPU 가 직접 입출력 명령을 담당하지 않고 전용 입출력 프로세서 인 DMA 나 채널을 사용하는 방식 수행방식. 입출력 기능 (1/3). 운영체제의 기능 중 하나
E N D
Chap 2. 입출력 관리 김은정 eunjeong@kunsan.ac.kr 군산대학교 정보통계학과 정보과학기술 연구실 2012.01.03
목차 • 2. 입출력 관리 • 입출력 기능 • 입출력 방식 • 입출력 버퍼링 • 입출력 인터럽트 IST (Information Sciences & Technology) Laboratory
입출력 방식(2/6) • 간접 입출력 방식 1 • 다중 프로그래밍을 구현하기 위해 이용하는 방식 • CPU가 직접 입출력 명령을 담당하지 않고 전용 입출력 프로세서인 DMA나 채널을 사용하는 방식 • 수행방식 IST (Information Sciences & Technology) Laboratory
입출력 기능(1/3) • 운영체제의 기능 중 하나 • 데이터를 입출력 하려는 모든 컴퓨터의 입출력장치를 제어 • 장치관리자 (= 입출력관리) • 장치관리자의 기능 • 주변장치와 기억장치간의 블록단위 전송기능 • 주변장치와 인터페이스를 통한 논리적, 물리적 특성의 일치 기능 • 자원의 공유기능 IST (Information Sciences & Technology) Laboratory
입출력 기능(2/3) • 블록단위 전송기능 • 에러의 발견 및 교정기능 • 컴퓨터 본체와 주변장치간의 인터페이스 담당기능 • 일반 사용자나 프로그래머가 하드웨어적인 부분을 신경 쓰지 않고 입출력 할 수 있는 기능 • 논리적, 물리적 특성의 일치 기능 • 장치간 서로 다른 코드 일치 • 저속 장치와 고속 장치간 속도 일치 • 물리적 블록크기와 논리적 블록 크기의 블록 크기 일치 • 운영체제 수준에서 취급 : 물리적 블록크기 • 사용자 수준에서 취급 : 논리적 블록크기 • 일반 사용자의 입, 출력 명령을 실제로 명령어로 번역하는 명령어의 일치 • 스풀링, 버퍼링 개념을 통한 가상 입, 출력 장치 구현 IST (Information Sciences & Technology) Laboratory
입출력 기능(3/3) • 자원의 공유 기능 • CPU나 주기억 장치 등은 여러 프로세스에 의해서 공유함으로써 다중 프로그래밍이 가능해짐 • 입출력 명령을 수행하는 동안 CPU는 다른 프로그램 실행가능 • 컴퓨터의 입출력 방식 • 직접 입출력 • 간접 입출력 • 직접 기억 장치 액세스(DMA) • 입출력 채널(I/O channel) IST (Information Sciences & Technology) Laboratory
입출력 방식(1/6) • 데이터 출력 시 • 장치 플래그 0 → 주기억 장치의 데이터를 입출력 장치에 보냄→ 장치플래그를 1로 설정 → 입출력장치 초기화 • 직접 입출력 방식 • CPU가 직접 입출력을 담당하는 방식 • 초기의 컴퓨터 시스템에서 사용 • CPU가 프로그램을 수행 중 입출력 명령을 만나면 직접 CPU가 나서서입출력을 수행하는 방식 • 수행방식 • CPU가 장치 플래그의 상태를 검사 • 장치 플래그가 0일 때 입출력명령을 수행 • 데이터 입력 시 • 장치 플래그 0 → 입출력 장치의 데이터를 주기억장치에 넣음 → 장치플래그를 1로 설정 → 입출력장치 초기화 IST (Information Sciences & Technology) Laboratory
입출력 방식(3/6) • 간접 입출력 방식 2 - 직접 기억 장치 액세스(DMA) • CPU를 자유롭게 하기 위해 고안된 방법 • CPU 레지스터를 이용하지 않고, CPU의 사이클을 훔쳐입출력을 수행 • 이 때,CPU는 멈추거나 다른 작업을 수행함 • CPU가 직접 입출력 명령을 담당하지 않고 전용 입출력 프로세서인 DMA나 채널을 사용하는 방식 IST (Information Sciences & Technology) Laboratory
입출력 방식(4/6) • 수행 방법 • CPU가 프로그램 수행중 Read 문을 만남 • CPU는 DMA에게 Read명령을 수행하도록 지시 • 기억장치 내의 데이터 위치, 개수, I/O 명령의 종류 등이 전달 • CPU와 독립적으로DMA는 기억장치의 데이터를 직접 입·출력 • CPU는 DMA에게 Read 명령을 수행하도록 한 후 다른 프로그램을 수행 • DMA는 주변장치와 실제 데이터를 전송함. IST (Information Sciences & Technology) Laboratory
입출력 방식(5/6) • 간접 입출력 방식 3 – 입출력 채널 • 가장 완벽한 입출력 방식 • 입출력은 독립된 입출력 프로세서인 채널이 대신하고, 입출력을 수행하는 동안 CPU는 다른 프로그램을 실행 • CPU의 효율을 향상시킬 수 있고, 다중 프로그래밍이 가능해 짐 • PPU(Peripheral Processing Unit) 또는 채널 • 입출력 프로세서로써 CPU와 유사한 성능을 갖는 프로세서 • 입출력 채널의 종류 • 선택 채널(selector channel) • 멀티플렉서 채널(multiplexor channel) • 블록 멀티플렉서 채널(block multiplexor channel) IST (Information Sciences & Technology) Laboratory
입출력 방식(6/6) • 선택 (selector ) 채널 • 한 순간에 하나의 주변 장치만을 선택하여 연결 • Ex] 디스크와 같이 고속 장치들을 연결 • 멀티플렉서 (multiplexor) 채널 • 일시에 여러장치들을 연결 • Ex] 터미널, 프린터 같은 저속 장치들을 연결 • 블록 멀티플렉서 (block multiplexor)채널 • 블록단위로 입출력 하는 장치와 연결 • 다수의 주변 장치들이 멀티플렉싱되어 동시에 처리됨 • 멀티플렉싱: 하나의 전송로를 여러 사용자가 동시에 사용해서, 효율성을극대화 하는 것 IST (Information Sciences & Technology) Laboratory
입출력 버퍼링(1/4) • 버퍼 • 일정 data를 일시 저장할 수 있는 메모리 • CPU가 한개의 data를 읽을 때마다 채널에게 SIO(Start I/O) 명령을 행한다면, 많은 CPU 부하가 생성되기 때문에 입출력 장치에서는 이를 이용 • Ex] 프린터 • 버퍼의 종류 • 단일 버퍼링(single buffering) • 이중 버퍼링(dual buffering) • 환형 버퍼링(circular buffering) IST (Information Sciences & Technology) Laboratory
입출력 버퍼링(2/4) • 단일 버퍼링(single buffering) • 한 개의 버퍼를 사용하는 경우 • CPU는 채널이 버퍼를 비울 동안 기다리거나 혹은 다른 프로그램을 실행 • 버퍼를 CPU와 채널이 동시에 사용할 수 없으며, 상호간에 통신이 필요함 • CPU : 버퍼가 비어 있을 때만 버퍼에 데이터를 채울 수 있음 • 채널 : 버퍼가 채워져 있을 때만 버퍼의 데이터를 비울 수 있음 • 수행 방법 IST (Information Sciences & Technology) Laboratory
입출력 버퍼링(3/4) • 이중 버퍼링(dual buffering) • 두 개의 버퍼를 사용하는 경우 • 단일 버퍼링의 단점을 보완하고 CPU간의 처리 성능을 향상시키는 방법 • 두 개의 버퍼를 사용하므로 입출력 작업과 처리 작업이 동시에 진행될 수 있으나 기억장치의 낭비가 있을 수 있음 • 수행 방법 IST (Information Sciences & Technology) Laboratory
입출력 버퍼링(4/4) • 환형 버퍼링(circular buffering) • 여러 개의 버퍼를 원형으로 구성하여 입출력을 수행하는 방법 • CPU와 채널이 동시에 버퍼를 채우거나 비우는 각자의 작업을 독립적으로 수행 • 버퍼의 수가 성능을 좌우하는 중요한 요소 • 버퍼의 수가 많아지면 : 기억장치의 낭비 • 버퍼의 수가 적으면 : 버퍼를 기다리는 프로세스의 수가 많아짐 • 수행방법 IST (Information Sciences & Technology) Laboratory
스풀링 • 스풀링(SPOOLing) 이란? • 버퍼링은 주기억장치를 버퍼로 사용하는 반면, 스풀링은디스크를 매우 큰버퍼처럼 사용하는 것 • 방식 • 미리 입력 장치로부터 디스크로 레코드나 블록을 읽어 들임 • 디스크 상에 출력 파일로 저장하여 나중에 출력할 수 있도록 하는 것 IST (Information Sciences & Technology) Laboratory
입출력 인터럽트(1/4) • 개념 • 시스템의 각종 응급 상황에 대한 통제 수단을 제공해 주는 처리 방법 • 자원의 할당과 회수 정책 및 각종 스케쥴링 기법에서 사용되는 필수적인 방법 • 폴링과 인터럽트 • 폴링 • CPU가 각각의 주변장치들을 연속적으로 순환하며 인터럽트 요구가 있는가, 없는가를 수시로 체크하는 방법(감시) • CPU의 시간이 낭비되고 CPU의 처리 효율이 낮아짐 • ex] 직접 입출력 방식 IST (Information Sciences & Technology) Laboratory
입출력 인터럽트(2/4) • 폴링과 인터럽트 • 인터럽트 • CPU가 각 주변장치 상태를 일일이 파악하지 않고 입출력 요구가 있을 때만CPU가 개입 • 수행방법 • CPU가 프로그램을실행하는 도중 인터럽트발생 • 현재까지의 프로그램 상태 정보를 일정 구역에저장(운영체제 커널) • 인터럽트벡터에서 서비스 루틴의 주소를 찾아 인터럽트 해결 • ②에서 저장해 놓았던 상태정보를 복구 • 중단된 시점부터 나머지 프로그램을 계속 수행 • 프로그램종료 IST (Information Sciences & Technology) Laboratory
입출력 인터럽트(3/4) • 인터럽트의 종류 • 입출력(I/O) 인터럽트 • 해당 입출력 하드웨어가 주어진 입출력 동작을 완료하였거나, 입출력 도중 에러 등이 발생하였을 경우 CPU에 대하여 요청하는 인터럽트 • 외부(external) 인터럽트 • CPU의 하드웨어 신호에 의해서 발생하고 프로그램의 외적인 상황에서 일어나는 인터럽트 • Ex] 정전이나 전원 이상이 있는 경우, 타이머에 의해 규정된 시간을 알리는 경우 • 슈퍼바이저 호출(SVC :supervi- sor call) 인터럽트(=소프트웨어 인터럽트) • 명령어의 수행에 의해 발생하는 인터럽트 • 프로그래머에 의해 프로그램상의 원하는 위치에서 인터럽트 발생 • Ex] 기억장치 할당 등 IST (Information Sciences & Technology) Laboratory
입출력 인터럽트(4/4) • 인터럽트의 종류 • 프로그램 검사(program check) 인터럽트(=내부 인터럽트) • CPU의 하드웨어 신호에 의해 발생하고 프로그램 자체 내에서 발생하는 문제들에의해 발생하는 인터럽트 • ex] 0으로 나누기가 발생, Overflow 또는 Underflow가 발생 • 기계 검사(machine check) 인터럽트 • 컴퓨터 자체내의 기계적인 장애나 에러로 인하여 발생하는 인터럽트 • 재 시작(restart) 인터럽트 • 재 시작 버튼이나 키를 누른 경우 발생하는 인터럽트 IST (Information Sciences & Technology) Laboratory
김은정 eunjeong@kunsan.ac.kr 군산대학교 정보통계학과 정보과학기술 연구실 2012.01.03