1 / 21

김은정 eunjeong@kunsan.ac.kr 군산대학교 정보통계학과 정보과학기술 연구실 2012.01.03

Chap 2. 입출력 관리. 김은정 eunjeong@kunsan.ac.kr 군산대학교 정보통계학과 정보과학기술 연구실 2012.01.03. 목차. 2. 입출력 관리 입출력 기능 입출력 방식 입출력 버퍼링 입출력 인터럽트. 입출력 방식 (2/6). 간접 입출력 방식 1 다중 프로그래밍을 구현하기 위해 이용하는 방식 CPU 가 직접 입출력 명령을 담당하지 않고 전용 입출력 프로세서 인 DMA 나 채널을 사용하는 방식 수행방식. 입출력 기능 (1/3). 운영체제의 기능 중 하나

cili
Download Presentation

김은정 eunjeong@kunsan.ac.kr 군산대학교 정보통계학과 정보과학기술 연구실 2012.01.03

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chap 2. 입출력 관리 김은정 eunjeong@kunsan.ac.kr 군산대학교 정보통계학과 정보과학기술 연구실 2012.01.03

  2. 목차 • 2. 입출력 관리 • 입출력 기능 • 입출력 방식 • 입출력 버퍼링 • 입출력 인터럽트 IST (Information Sciences & Technology) Laboratory

  3. 입출력 방식(2/6) • 간접 입출력 방식 1 • 다중 프로그래밍을 구현하기 위해 이용하는 방식 • CPU가 직접 입출력 명령을 담당하지 않고 전용 입출력 프로세서인 DMA나 채널을 사용하는 방식 • 수행방식 IST (Information Sciences & Technology) Laboratory

  4. 입출력 기능(1/3) • 운영체제의 기능 중 하나 • 데이터를 입출력 하려는 모든 컴퓨터의 입출력장치를 제어 • 장치관리자 (= 입출력관리) • 장치관리자의 기능 • 주변장치와 기억장치간의 블록단위 전송기능 • 주변장치와 인터페이스를 통한 논리적, 물리적 특성의 일치 기능 • 자원의 공유기능 IST (Information Sciences & Technology) Laboratory

  5. 입출력 기능(2/3) • 블록단위 전송기능 • 에러의 발견 및 교정기능 • 컴퓨터 본체와 주변장치간의 인터페이스 담당기능 • 일반 사용자나 프로그래머가 하드웨어적인 부분을 신경 쓰지 않고 입출력 할 수 있는 기능 • 논리적, 물리적 특성의 일치 기능 • 장치간 서로 다른 코드 일치 • 저속 장치와 고속 장치간 속도 일치 • 물리적 블록크기와 논리적 블록 크기의 블록 크기 일치 • 운영체제 수준에서 취급 : 물리적 블록크기 • 사용자 수준에서 취급 : 논리적 블록크기 • 일반 사용자의 입, 출력 명령을 실제로 명령어로 번역하는 명령어의 일치 • 스풀링, 버퍼링 개념을 통한 가상 입, 출력 장치 구현 IST (Information Sciences & Technology) Laboratory

  6. 입출력 기능(3/3) • 자원의 공유 기능 • CPU나 주기억 장치 등은 여러 프로세스에 의해서 공유함으로써 다중 프로그래밍이 가능해짐 • 입출력 명령을 수행하는 동안 CPU는 다른 프로그램 실행가능 • 컴퓨터의 입출력 방식 • 직접 입출력 • 간접 입출력 • 직접 기억 장치 액세스(DMA) • 입출력 채널(I/O channel) IST (Information Sciences & Technology) Laboratory

  7. 입출력 방식(1/6) • 데이터 출력 시 • 장치 플래그 0 → 주기억 장치의 데이터를 입출력 장치에 보냄→ 장치플래그를 1로 설정 → 입출력장치 초기화 • 직접 입출력 방식 • CPU가 직접 입출력을 담당하는 방식 • 초기의 컴퓨터 시스템에서 사용 • CPU가 프로그램을 수행 중 입출력 명령을 만나면 직접 CPU가 나서서입출력을 수행하는 방식 • 수행방식 • CPU가 장치 플래그의 상태를 검사 • 장치 플래그가 0일 때 입출력명령을 수행 • 데이터 입력 시 • 장치 플래그 0 → 입출력 장치의 데이터를 주기억장치에 넣음 → 장치플래그를 1로 설정 → 입출력장치 초기화 IST (Information Sciences & Technology) Laboratory

  8. 입출력 방식(3/6) • 간접 입출력 방식 2 - 직접 기억 장치 액세스(DMA) • CPU를 자유롭게 하기 위해 고안된 방법 • CPU 레지스터를 이용하지 않고, CPU의 사이클을 훔쳐입출력을 수행 • 이 때,CPU는 멈추거나 다른 작업을 수행함 • CPU가 직접 입출력 명령을 담당하지 않고 전용 입출력 프로세서인 DMA나 채널을 사용하는 방식 IST (Information Sciences & Technology) Laboratory

  9. 입출력 방식(4/6) • 수행 방법 • CPU가 프로그램 수행중 Read 문을 만남 • CPU는 DMA에게 Read명령을 수행하도록 지시 • 기억장치 내의 데이터 위치, 개수, I/O 명령의 종류 등이 전달 • CPU와 독립적으로DMA는 기억장치의 데이터를 직접 입·출력 • CPU는 DMA에게 Read 명령을 수행하도록 한 후 다른 프로그램을 수행 • DMA는 주변장치와 실제 데이터를 전송함. IST (Information Sciences & Technology) Laboratory

  10. 입출력 방식(5/6) • 간접 입출력 방식 3 – 입출력 채널 • 가장 완벽한 입출력 방식 • 입출력은 독립된 입출력 프로세서인 채널이 대신하고, 입출력을 수행하는 동안 CPU는 다른 프로그램을 실행 • CPU의 효율을 향상시킬 수 있고, 다중 프로그래밍이 가능해 짐 • PPU(Peripheral Processing Unit) 또는 채널 • 입출력 프로세서로써 CPU와 유사한 성능을 갖는 프로세서 • 입출력 채널의 종류 • 선택 채널(selector channel) • 멀티플렉서 채널(multiplexor channel) • 블록 멀티플렉서 채널(block multiplexor channel) IST (Information Sciences & Technology) Laboratory

  11. 입출력 방식(6/6) • 선택 (selector ) 채널 • 한 순간에 하나의 주변 장치만을 선택하여 연결 • Ex] 디스크와 같이 고속 장치들을 연결 • 멀티플렉서 (multiplexor) 채널 • 일시에 여러장치들을 연결 • Ex] 터미널, 프린터 같은 저속 장치들을 연결 • 블록 멀티플렉서 (block multiplexor)채널 • 블록단위로 입출력 하는 장치와 연결 • 다수의 주변 장치들이 멀티플렉싱되어 동시에 처리됨 • 멀티플렉싱: 하나의 전송로를 여러 사용자가 동시에 사용해서, 효율성을극대화 하는 것 IST (Information Sciences & Technology) Laboratory

  12. 입출력 버퍼링(1/4) • 버퍼 • 일정 data를 일시 저장할 수 있는 메모리 • CPU가 한개의 data를 읽을 때마다 채널에게 SIO(Start I/O) 명령을 행한다면, 많은 CPU 부하가 생성되기 때문에 입출력 장치에서는 이를 이용 • Ex] 프린터 • 버퍼의 종류 • 단일 버퍼링(single buffering) • 이중 버퍼링(dual buffering) • 환형 버퍼링(circular buffering) IST (Information Sciences & Technology) Laboratory

  13. 입출력 버퍼링(2/4) • 단일 버퍼링(single buffering) • 한 개의 버퍼를 사용하는 경우 • CPU는 채널이 버퍼를 비울 동안 기다리거나 혹은 다른 프로그램을 실행 • 버퍼를 CPU와 채널이 동시에 사용할 수 없으며, 상호간에 통신이 필요함 • CPU : 버퍼가 비어 있을 때만 버퍼에 데이터를 채울 수 있음 • 채널 : 버퍼가 채워져 있을 때만 버퍼의 데이터를 비울 수 있음 • 수행 방법 IST (Information Sciences & Technology) Laboratory

  14. 입출력 버퍼링(3/4) • 이중 버퍼링(dual buffering) • 두 개의 버퍼를 사용하는 경우 • 단일 버퍼링의 단점을 보완하고 CPU간의 처리 성능을 향상시키는 방법 • 두 개의 버퍼를 사용하므로 입출력 작업과 처리 작업이 동시에 진행될 수 있으나 기억장치의 낭비가 있을 수 있음 • 수행 방법 IST (Information Sciences & Technology) Laboratory

  15. 입출력 버퍼링(4/4) • 환형 버퍼링(circular buffering) • 여러 개의 버퍼를 원형으로 구성하여 입출력을 수행하는 방법 • CPU와 채널이 동시에 버퍼를 채우거나 비우는 각자의 작업을 독립적으로 수행 • 버퍼의 수가 성능을 좌우하는 중요한 요소 • 버퍼의 수가 많아지면 : 기억장치의 낭비 • 버퍼의 수가 적으면 : 버퍼를 기다리는 프로세스의 수가 많아짐 • 수행방법 IST (Information Sciences & Technology) Laboratory

  16. 스풀링 • 스풀링(SPOOLing) 이란? • 버퍼링은 주기억장치를 버퍼로 사용하는 반면, 스풀링은디스크를 매우 큰버퍼처럼 사용하는 것 • 방식 • 미리 입력 장치로부터 디스크로 레코드나 블록을 읽어 들임 • 디스크 상에 출력 파일로 저장하여 나중에 출력할 수 있도록 하는 것 IST (Information Sciences & Technology) Laboratory

  17. 입출력 인터럽트(1/4) • 개념 • 시스템의 각종 응급 상황에 대한 통제 수단을 제공해 주는 처리 방법 • 자원의 할당과 회수 정책 및 각종 스케쥴링 기법에서 사용되는 필수적인 방법 • 폴링과 인터럽트 • 폴링 • CPU가 각각의 주변장치들을 연속적으로 순환하며 인터럽트 요구가 있는가, 없는가를 수시로 체크하는 방법(감시) • CPU의 시간이 낭비되고 CPU의 처리 효율이 낮아짐 • ex] 직접 입출력 방식 IST (Information Sciences & Technology) Laboratory

  18. 입출력 인터럽트(2/4) • 폴링과 인터럽트 • 인터럽트 • CPU가 각 주변장치 상태를 일일이 파악하지 않고 입출력 요구가 있을 때만CPU가 개입 • 수행방법 • CPU가 프로그램을실행하는 도중 인터럽트발생 • 현재까지의 프로그램 상태 정보를 일정 구역에저장(운영체제 커널) • 인터럽트벡터에서 서비스 루틴의 주소를 찾아 인터럽트 해결 • ②에서 저장해 놓았던 상태정보를 복구 • 중단된 시점부터 나머지 프로그램을 계속 수행 • 프로그램종료 IST (Information Sciences & Technology) Laboratory

  19. 입출력 인터럽트(3/4) • 인터럽트의 종류 • 입출력(I/O) 인터럽트 • 해당 입출력 하드웨어가 주어진 입출력 동작을 완료하였거나, 입출력 도중 에러 등이 발생하였을 경우 CPU에 대하여 요청하는 인터럽트 • 외부(external) 인터럽트 • CPU의 하드웨어 신호에 의해서 발생하고 프로그램의 외적인 상황에서 일어나는 인터럽트 • Ex] 정전이나 전원 이상이 있는 경우, 타이머에 의해 규정된 시간을 알리는 경우 • 슈퍼바이저 호출(SVC :supervi- sor call) 인터럽트(=소프트웨어 인터럽트) • 명령어의 수행에 의해 발생하는 인터럽트 • 프로그래머에 의해 프로그램상의 원하는 위치에서 인터럽트 발생 • Ex] 기억장치 할당 등 IST (Information Sciences & Technology) Laboratory

  20. 입출력 인터럽트(4/4) • 인터럽트의 종류 • 프로그램 검사(program check) 인터럽트(=내부 인터럽트) • CPU의 하드웨어 신호에 의해 발생하고 프로그램 자체 내에서 발생하는 문제들에의해 발생하는 인터럽트 • ex] 0으로 나누기가 발생, Overflow 또는 Underflow가 발생 • 기계 검사(machine check) 인터럽트 • 컴퓨터 자체내의 기계적인 장애나 에러로 인하여 발생하는 인터럽트 • 재 시작(restart) 인터럽트 • 재 시작 버튼이나 키를 누른 경우 발생하는 인터럽트 IST (Information Sciences & Technology) Laboratory

  21. 김은정 eunjeong@kunsan.ac.kr 군산대학교 정보통계학과 정보과학기술 연구실 2012.01.03

More Related