3장 - 컴퓨터 시스템의 동작 원리 : 입출력 구조

2023. 11. 17. 16:252023/운영체제와 정보기술의 원리

입출력 구조
  • 입출력 방식
    • 동기식 입출력(Synchronous I/O) : 입출력 요청이 있을 때, 입출력 작업이 완료된 후에 그 프로그램의 후속 작업 수행 가능한 방식 

CPU 제어권이 입출력 하는 동안에는 인터럽트에 있기 때문에 입출력 연산이 끝날 때 까지 CPU는 인터럽트를 기다리면서 자원을 낭비하게 된다. 또한 CPU의 명령속도는 빠르지만 입출력 장치에서 데이터를 읽어오는 등의 입출력 연산은 상대적으로 느리다. 

 

이러한 이유로 일반적으로 프로그램이 입출력을 수행 중인 경우에는 CPU를 다른 프로그램에 이양해 CPU가 계속 쉬지 않고 계속 일 할 수 있도록 관리한다.

 

입출력이 완료될 때 까지 해당 프로그램에는 CPU를 할당하지 않는다. 따라서 이를 관리하기 위해 운영체제는 프로그램을 몇가지 상태로 나누고 입출력 중인 프로그램의 경우 봉쇄 상태(Blocked state)로 전환

 

그러나 CPU의 효율적인 사용을 위해 입출력이 수행되는 동안 다른 프로그램에게 CPU를 양도하면 동시에 다수의 입출력 연산이 일어날 수 있다. 이처럼 다수의 프로그램이 동시에 입출력 연산을 요청하는 경우 동기성(synchronization)을 보장하기 위해 장치마다 큐(Queue)를 두어 요청된 순서대로 처리할 수 있도록 함