본문 바로가기
Computer Science/운영체제

[OS] 동기와 비동기

by JYHAN 2020. 10. 25.

비유를 통한 쉬운 설명

해야할 일(task)가 빨래, 설거지, 청소 세 가지가 있다고 가정한다.

이 일들을 동기적으로 처리한다면 빨래를 하고 설거지를 하고 청소를 한다.

비동기적으로 일을 처리한다면 빨래 업체에 빨래를 시킨다. 설거지 업체에 설거지를 시킨다. 청소 업체에 청소를 시킨다.

셋 중 어떤 것이 먼저 완료될지는 알 수 없다. 일을 모두 마친 업체는 나에게 알려주기로 했으니 나는 다른 작업을 할 수 있다.

이 때는 백그라운드 스레드에서 해당 작업을 처리하는 경우의 비동기를 의미한다.

Sync vs Async

일반적으로 동기와 비동기의 차이는 메소드를 실행시킴과 동시에 반환 값이 기대되는 경우를 동기 라고 표현하고 그렇지 않은 경우에 대해서 비동기 라고 표현한다. 동시에라는 말은 실행되었을 때 값이 반환되기 전까지는 blocking되어 있다는 것을 의미한다. 비동기의 경우, blocking되지 않고 이벤트 큐에 넣거나 백그라운드 스레드에게 해당 task 를 위임하고 바로 다음 코드를 실행하기 때문에 기대되는 값이 바로 반환되지 않는다.

 


github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/OS#%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

JaeYeopHan/Interview_Question_for_Beginner

:boy: :girl: Technical-Interview guidelines written for those who started studying programming. I wish you all the best. :space_invader: - JaeYeopHan/Interview_Question_for_Beginner

github.com

 

blocking, non-blocking and Async

blocking, non-blocking and Async Blocking I/O Model 일단 I/O작업은 User Level(application)에서 직접 수행할 수 없다. 실제 I/O작업은 Kernel Level(OS)에서 일어나는 과정이다. 따라서 유저 프로세스(app..

asfirstalways.tistory.com

 

'Computer Science > 운영체제' 카테고리의 다른 글

[OS] 프로세스 동기화  (0) 2020.10.27
[OS] CPU 스케줄러  (0) 2020.10.23
[OS] 스케줄러  (0) 2020.04.30
[OS] 멀티 스레드(Multi Thread)  (0) 2020.04.15
[OS] 프로세스와 스레드의 차이  (0) 2020.04.05

댓글