본문 바로가기
Computer Science

입출력 처리 유형

by PROGRAMMER_황금돼지코 2023. 3. 26.
반응형

1. 프로그램 방법

입출력을 처리하는 프로그램 방법은 CPU만을 이용합니다. 이 방법은 폴링을 사용합니다. 폴링(polling)이란 CPU가 입출력장치의 상태를 지속적으로 확인하여 CPU가 원하는 상태가 될 때까지 기다리는 것입니다. 예를 들어, 인쇄를 하려면 CPU는 프린터가 사용 가능한 상태인지 확인해야 합니다. 하지만 프린터가 다른 인쇄 작업을 처리 중일 경우, 사용 중 상태로 확인됩니다.

그러면 CPU는 다시 프린터의 상태를 확인하고 사용 중 상태이면 또 다시 상태 확인을 반복해야 합니다. 이렇게 상태를 확인하다가 프린터가 사용 가능한 상태로 확인되면 인쇄할 내용을 프린터로 보내게 됩니다. 예를 들어, 인쇄할 내용이 10줄이고 프린터가 한 번에 한 줄씩 인쇄할 수 있다면, CPU가 첫 줄을 보낸 후 프린터는 다시 사용 중 상태가 될 것입니다. 따라서 CPU는 다시 프린터의 상태를 반복적으로 확인하며 기다리다 사용 가능한 상태가 되면 그 다음 줄을 보내고 또 다시 상태를 확인하며 기다려야 합니다.

이렇게 프로그램 방법으로 입출력을 처리하는 것은 CPU의 낭비가 심해서 비효율적입니다.

 

2. 인터럽트 방법

인터럽트 방법은 입출력 처리에 인터럽트를 활용하는 방법입니다. 인터럽트(interrupt)란, 어떤 장치가 다른 장치의 작업을 잠시 중단시키고 자신의 상태를 알리는 기능입니다. 따라서 CPU가 장치의 상태를 측정하여 확인하는 프로그램 방법과는 달리, 장치가 특정 상태가 되었을 때 CPU에게 자신의 상태를 알려주면 됩니다. CPU는 이 때 다른 작업을 수행하다가 인터럽트가 발생하면 원래 하려던 작업을 중단하고 인터럽트에 응답합니다.

인터럽트 처리 과정을 자세히 살펴보면, 입출력 장치가 가용한 상태가 되면 인터럽트를 담당하는 인터럽트 제어기에 신호를 보냅니다. 인터럽트 제어기는 CPU에 인터럽트 신호를 보내고, CPU는 현재 실행 중이던 명령을 마치고 즉시 인터럽트에 응답합니다. 인터럽트 제어기는 이벤트 대상에 대한 정보를 CPU에게 보내주며, CPU는 현재 상태를 보관하고 필요한 입출력 처리를 한 후 원래 프로세스 실행 상태로 복귀합니다.

앞서 본 인쇄 예시를 생각해보면, 인쇄를 하려는 프로세스는 대기 상태로 보내고 CPU는 다른 프로세스를 처리합니다. 이때 프린터가 가용한 상태가 되면 인터럽트가 발생하고, CPU는 인쇄 프로세스를 복귀시켜 한 줄을 보낸 후 다시 다른 프로세스를 처리합니다. 이러한 과정을 반복하여 프린터가 한 줄을 인쇄하고 다시 가용 상태라는 인터럽트를 보내면 CPU는 다시 인쇄 프로세스를 복귀시켜 그 다음 줄을 보내는 방식으로 입출력을 처리합니다.

 

3. DMA 방법

DMA(Direct Memory Access)는 DMA 제어기를 통해 CPU를 우회하여 직접 주기억장치에 접근하여 데이터를 전송하는 방법이다. DMA를 이용한 입출력 처리 과정은 다음과 같다. CPU는 입출력에 필요한 정보, 소스의 위치와 양, 그리고 목적지에 대한 정보를 DMA 제어기에 전달한다. 이때 소스와 목적지 중 하나는 메모리가 된다. DMA 제어기는 소스에서 목적지로 데이터를 보내도록 장치 제어기에 요청하고, 이 과정을 CPU가 처음 지시한 양이 될 때까지 반복한다. 원하는 입출력 양이 끝나면 DMA 제어기는 인터럽트 제어기에 신호를 보내어 CPU에게 입출력 작업이 끝났음을 알린다. 앞서 언급한 예시에서는 인쇄할 내용이 저장된 메모리 위치와 10줄이라는 정보, 그리고 프린터에 대한 정보를 DMA 제어기에 전달하고, 프로세스는 대기 상태로 들어가며 CPU는 다른 프로세스를 처리한다. 이때 DMA 제어기는 프린터의 상태를 확인하고 가용 상태가 되면 메모리에서 한 줄을 읽어 프린터로 보내는 작업을 총 10번까지 반복한다. 마지막 인쇄가 끝나면 DMA 제어기는 인터럽트를 통해 CPU에게 인쇄가 끝났음을 알리고, CPU는 대기 상태에서 프로세스를 깨우게 된다. DMA 방법은 입출력 양이 많은 경우 인터럽트 발생 횟수를 줄여 CPU의 효율을 높여준다.

반응형

'Computer Science' 카테고리의 다른 글

파일 관리  (0) 2023.03.26
순차접근 저장장치  (0) 2023.03.26
데이터베이스 관리 시스템(DBMS)의 개요 및 목적  (0) 2023.03.26
가상 메모리  (0) 2023.03.26
데몬  (0) 2023.03.26

댓글