본문 바로가기
IT지식/운영체제

[운영체제] 입출력 관리

by five-sun 2022. 12. 4.
728x90

출처: https://velog.io/@yonii/OS-입출력-관리

 

OS - 입출력 관리

운영체제 입출력 관리

velog.io

컴퓨터에서 주요한 작업에는 연산과 입출력 작업 2가지이다.

 

입출력 관리의 핵심?

컴퓨터와 하드웨어 장치 사이의 공통된 인터페이스 역할을 수행하는 것이다.

 

입출력 ㅈ아치들이 컴퓨터와 동작하는 원리를 알기 위해서는 입출력 장치들이 어떻게 구성되어 있는지를 알아야 한다.

하드웨어 장치는 케이블 또는 무선으로 신호를 보냄으로써 컴퓨터와 통신한다. 이때 포트를 통해 컴퓨터에 접속하는데, 하드웨어 장치의 또다른 구성요소는 제어기이다.

제어기는 포트나 입출력 장치를 제어하는 전자회로의 집합체이며 많은 입출력 장치는 제어기를 내장하고 있다. 모든 제어기에는 레지스터를 가지고 있어서 컴퓨터의 프로세서가 제어기 레지스터에 bit pattern을 쓰거나 읽음으로써 입출력을 실행한다.

 

입출력 하드웨어의 동작들?

1. 폴링 : 장치 제어기 레지스터에는 busy bit이라는 것이 존재하는데 제어기가 바쁠 경우 -> 1, 준비중인 경우 -> 0 을 나타낸다. 컴퓨터는 장치가 사용중인지 알기 위해서 주기적으로 busy bit을 검사해야하는데 이 과정을 폴링이라고 한다.

 

폴링 자체는 컴퓨터 자원이 많이 소요되지 않지만 장치가 준비하는 시간이 길어질 경우 매우 비효율적이라는 단점이 있다. 이런 경우에 제어기가 자신의 상태가 바뀔 때 컴퓨터에 통보해주는 방식으로 비효율을 막을 수 있다. 이때 발생시키는 신호를 인터럽트라고 한다.

 

2.인터럽트 : CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외 상황이 발생하여 처리가 필요한 경우에 CPU에게 알려 처리할 수 있도록 하는 것.

CPU는인터럽트 요청 라인을 갖고 매번 명령어를 끝내고 이 라인을 검사한다. 만약 입출력 장치가 준비 완료되서어서 인터럽트를 보낸다면 CPU는 인터럽트를 확인하고 인터럽트 핸들러를 실행한다.

CPU는 인터럽트 발생시 직전 작업 상태를 저장하고 인터럽트를 우선 처리한다. 그 이후에는 인터럽트 발생 전 상태를 복구시켜 중단되었던 작업을 재개한다.

 

입출력 하드웨어와 컴퓨터가 데이터를 주고 받는 방식은?

만약 CPU를 사용하여 대용량 입출력 장치의 데이터를 읽으면 CPU 사용량이 매우 높아져 컴퓨터의 성늠이 심각하게 저하될 것이다. 따라서 많은 컴퓨터들의 CPU의 낭비를 막기 위해서 PIO를 DMA 제어기라고 불리는 특수 프로세서에게 위임하여 CPU의 일을 줄여준다.

PIO :  CPU가 1바이트씩 옮기는 입출력 방식

 

직접 메모리 접근(DMA : Direct Memory Access) :

DMA 동작

 

DMA 입출력 방식의 작동 과정:

  1. CPU가 입출력 요청을 보낸다.
  2. DMA제어기의 레지스터에 주소와 전송 길이가 저장된다.
  3. DMA제어기는 한 블록의 입출력 동작을 수행하고 그동안 CPU는 다른 작업을 한다.
  4. 입출력 동작이 완료되면 DMA제어기는 CPU에게 완료했다는 인터럽트를 보낸다.
728x90

'IT지식 > 운영체제' 카테고리의 다른 글

[운영체제] POSIX  (0) 2022.12.04
[운영체제] IPC란?  (0) 2022.12.04
[운영체제] 프로세스와 쓰레드  (0) 2022.12.04
[운영체제] 운영체제의 구조와 동작원리 + @  (0) 2022.12.04
[운영체제] 운영체제란?  (0) 2022.12.03