본문 바로가기
교육, 학습/CS스터디_반효경 운영체제

운영체제 - 동기식 입출력, 비동기식 입출력의 차이점, 공통점

by 개발하는 경제학도 2022. 1. 3.

강의 소개

현재 수강하고 있는 KOCW 내 이화여자대학교 운영체제(2017, 반효경) 강의의 내용을 정리하였습니다.

개발자 관점에서 운영체제 기초를 학습하는 무료 강의로 자세한 강의 내용은 수강을 추천드립니다.


 

동기식 입출력,  비동기식 입출력

동기식 입출력(synchronous I/O)

CPU가 I/O 요청 후 I/O 장치에서 일어나는 작업과 CPU 작업이 싱크가 맞아야 하는 경우이다. 일반적인 경우에 해당된다.

I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어가는 것이다.

 

- 순서

사용자 프로그램이 I/O 요청을 하는데, 직접 하지 못한다 -> 운영체제의 커널을 통해서(EX. device driver) device contoller에게 I/O 요청(EX. 파일을 읽어달라) -> device controller에게 입출력을 요청한 동안 요청한 requesting process는 기다린다. -> 작업이 끝나면 device controller가 CPU에게 인터럽트를 걸어 작업이 완료되었음을 알리며 파일을 읽어온다 -> 그다음 작업을 수행한다.

**어떤 특정 행위를 할 때 시간적으로 잘 맞아떨어지게 하는 것을 synchronous라 한다.

 

- 구현 방법

I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗는다. -> 그 후 I/O 처리를 기다리는 줄에 그 프로그램을 줄 세운다. -> 다른 프로그램에게 CPU를 준다.

** CPU도 기다리게 하면 CPU의 낭비, 매순간 1개의 I/O 작업만 일어나는 비효율이 발생한다.

 

비동기식 입출력(asynchronous I/O)

CPU가 I/O 요청 후 I/O 장치에서 일어나는 작업을 고려하지 않고(I/O의 결과물을 확인하기 전에) CPU가 다음 작업을 실행하는 경우이다.

일반적인 경우는 동기식 입출력을 하지만, 결과를 확인하기 전에 수행할 수 있는 작업이 있는 경우 비동기식 입출력을 사용한다.

(보통은 읽기 작업은 동기식, 쓰기 작업은 비동기식이 가능하기도 하다)

 

-순서

사용자 프로그램이 I/O 요청을 하는데, 직접 하지 못한다 -> 운영체제의 커널을 통해서(EX. device driver) device contoller에게 I/O 요청(EX. 파일을 읽어달라) -> device controller에게 입출력을 요청하고 곧바로 요청한 requesting process에게 CPU를 줘서 다른 작업을 수행하게 한다. 

 

동기식 입출력과 비동기식 입출력의 차이점

'device controller가 I/O 작업이 끝나기를 requesting process이 기다리는 것과 기다리지 않는 차이'인 것이다.

 

동기식 입출력과 비동기식 입출력의 공통점

둘 모두 I/O의 완료를 인터럽트로 알려준다.

 

 

출처: 운영체제와 정보기술의 원리(반효경 )

댓글