본문 바로가기
운영체제

Blocking vs Non-Blocking I / O

by kcj3054 2022. 6. 22.

blockcingIO

  • 시스템 콜 요청 후 커널 IO 작업 완료 시 까지 응답 대기
  • ex : 카카오톡으로 메시지를 전송했는데 답장이 올 때까지 대기
  • 제어권이 io작업에 있다가, -> 커널 소유 -> 응답(response)까지 대기한다, 응답이 오기전에는 다른작업을 수행 할 수 없다. (카카오톡 답장이 올때까지 다른 작업을 할 수 없다)

Non - Blocking IO

  • 시스템 콜 요청시 -> 커널 io 작업 완료 여부 상관없이 즉시 응답...
  • 카카오톡 보내 놓고 답장 오기전에 운동하거나, 아무거나 해도된다.
  • 제어권(io작업) -> 유저프로세스 에 있다가 다른 작업 수행 가면서 주기적으로 시스템 콜을 통해 io작업 완료 여부를 확인하다
  • ex : 빨래방에 빨래를 맡겼다면, 아주머니에게 빨래 다 되었는지 주기적으로 체크...

Async

  • io 작업 완료 여부에 대한 알림은 커널(호출 되는 함수)가 -> 유저프로세스에게 한다..
  • 빨래방 아주머니가 알아서 우리에게 알려준다..

Sync

  • IO 작업 완료 여부에 대한 알림은 유저프로세스가 커널(호출되는 함수)에게로 한다.

 

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

뇌를자극하는윈도우즈시스템프로그래밍  (0) 2022.06.22
Multiprocessing vs Threading vs AsyncIO  (0) 2022.06.22
What Is Concurrency(동시성 vs 병렬성)  (0) 2022.06.22
paging, memory  (0) 2022.06.11
자네 thread safe 한가?  (0) 2021.12.02