Software Courses/Operating System

I/O system

김 정 환 2020. 12. 14. 18:09
반응형

1. I/O mechanisms

    - 프로세서와 I/O 장치 사이에 데이터를 보내는 방법

 

 

1) processor controlled memory access

    - 프로세서가 모든 데이터 전송을 처리

(1) Pooling

    - 프로세서가 주기적으로 순환하면서 I/O 장치의 상태(전송준비, 전송상태 등)를 확인

 

    - 장점

        * I/O 장치가 빠르면서 데이터 전송이 잦은 경우 효율적

  

    - 단점

        * 프로세서에게 큰 부담

 

 

(2) Interrupt

    - I/O 장치가 작업을 완료 후, 자신의 상태를 프로세서에게 전달

    - Interrupt 발생 시, 프로세서는 데이터 전송 수행

 

    - 장점

        * Pooling 대비 overhead가 적음

        * 불규칙적인 요청 처리에 적합

 

    - 단점

        * Interrupt handling overhead

 

    - 사용

장치 관리자 -> 보기 -> 연결 리소스 -> 인터럽트 요청

 

 

2) Direct Memory Access (DMA)

    - Processor controlled memory access 방법은 프로세서가 모든 데이터 전송을 처리하기 때문에 overhead가 큼

    - DMA 제어기를 통해 I/O 장치와 memory 사이의 데이터 전송을 프로세서의 개입 없이 수행

 

프로세서를 거치지 않고 I/O 모듈은 메모리와 연결

    - 동작

        * 프로세서는 데이터 전송의 시작/종료만 관여

        ① 프로세서가 전송 방향, 전송 바이트 수, 데이터 블록의 메모리 주소 등을 DMA 제어기로 보낸다.

        ② DMA 제어기는 디스크 제어기에 데이터를 메인 메모리로 전송하라고 요청한다.

        ③ 디스크 제어기가 메인 메모리에게 데이터를 전송한다.

        ④ 데이터 전송을 완료하면 디스크 제어기는 DMA 제어기에게 완료 메시지를 전달한다.

        ⑤ DMA 제어기가 프로세서에 인터럽트 신호를 보낸다.

 

 

 

2. I/O services of OS

    - I/O 성능 향상을 위한 OS 지원

 

 

1) I/O scheduling

    - 입출력 요청에 대한 처리 순서 결정

        * 시스템의 전반적 성능 향상

        * 프로세스의 요구에 대한 공평한 처리

 

    - Error handling

        * 입출력 중 발생하는 오류 처리

 

 

2) Buffering

    - I/O 장치와 프로그램 사이에 전송되는 데이터를 buffer에 임시 저장

    - 전송 속도 차이 문제 해결

 

 

3) Cashing

    - 자주 사용하는 데이터를 미리 복사

    - Cashe hit시 I/O를 생략할 수 있음, 왜냐하면 미리 데이터를 복사했기 때문에

 

 

4) Spooling

    - 한 I/O 장치에 여러 프로그램이 요청을 보낼 시, 출력이 섞이지 않도록 하는 기법

    - 각 프로그램이 요청한 내용을 개별로 기록한 뒤에(Spooling), 내용이 기록된 묶음을 하나씩 전송

 

    - 예시 : A, B, C 요청이 동시에 오면, A 내용이 모두 모일 때까지, B 내용이 모두 모일 때까지, C 내용이 모두 모일 때까지 대기하다가 모두 모인 A/B/C를 묶음으로 보냄

 

 

 

본 내용은 한국기술교육대학교 김덕수 교수님의 유튜브 강의를 듣고 정리한 내용입니다.
반응형

'Software Courses > Operating System' 카테고리의 다른 글

File system implementation  (0) 2020.12.14
File protection  (0) 2020.12.14
Directory structure  (0) 2020.12.13
File System  (0) 2020.12.13
Disk System  (0) 2020.12.13