middlefitting

[I/O] 동기식 입출력과 비동기식 입출력 본문

OS

[I/O] 동기식 입출력과 비동기식 입출력

middlefitting 2023. 1. 24. 21:52

입출력(I/O)이란 CPU 를 점유한 운영체제가 디바이스 컨트롤러에게 I/O 요청을 보내는 것을 말합니다.

 

입출력는 동기 방식과 비동기 방식이 존재합니다.

 

동기와 비동기

동기와 비동기는 싱크를 맞추는 것의 따라 구분됩니다.

 

싱크를 맞춘다는 것은 시간적으로 맞추는 것을 뜻하며,

 

동기는 싱크를 맞추는 경우, 비동기는 싱크를 맞추지 않는 경우인 것입니다.

 

 

 

동기식 입출력

시스템 콜을 통해 I/O 를 요청한 사용자 프로그램이 I/O 작업이 끝난 이후에 다른 일을 할 수 있는 경우를 말합니다.

 

I/O 요청의 결과를 통해 일련의 과정을 수행할 수 있는 경우가 해당될 것입니다.

 

현대적인 방식은 CPU 낭비를 방지하기 위해 시스템 콜을 통해 I/O 를 요청한 사용자 프로그램은 운영체제에 CPU 를 넘겨주게 되고,

 

운영체제는 다른 프로세스에 CPU 를 넘겨주게 됩니다.

 

 

 

비동기식 입출력

비동기식 입출력은 I/O 요청 이후 다시 운영체제로부터 CPU 받아서 다른 일을 수행합니다.

 

I/O 요청 결과를 보지 않고 그냥 해도 되는 작업이 존재할 경우에 적절한 방식입니다.

 

예시로는 node.js 와 같은 단일 스레드(이벤트 루프) 어플리케이션이 Non-blocking I/O 를 통해 자원 접근에 대한 동기화를 신경쓰지

 

않고 작업을 진행할 수 있는 것이 있습니다.

 

 

 

참고문헌

KOWS 운영체제 - 반효경 교수님 - System Structure & Program Execution 2

http://www.kocw.net/home/search/kemView.do?kemId=1046323

'OS' 카테고리의 다른 글

프로세스 관리에 관하여  (0) 2023.01.27
[Process] 프로세스란 무엇인가  (0) 2023.01.26
[OS] Context Switch란 무엇인가  (0) 2023.01.25
I/O 디바이스 입출력에 관하여  (0) 2023.01.23
운영체제란 무엇인가  (0) 2023.01.22