[CS : 네트워크] Blocking I/O & Non-Blocking I/O, Synchronous & Asynchronous
2021. 5. 20. 19:04ㆍCS 스터디
1) Blocking / Non–Blocking과 Synchronous / Asynchronous
A. Blocking
: 직접 제어할 수 없는 대상의 작업이 끝날 때까지 제어권을 넘겨주지 않는 것이다. 예를 들어 호출하는 함수가 IO를 요청했을 때 IO처리가 완료될 때까지 아무 일도 하지 못한 채 기다리는 것을 말한다.
B. Non-Blocking
: 직접 제어할 수 없는 대상의 작업 처리 여부와 상관이 없다. 예를 들어 호출하는 함수가 IO를 요청한 후 IO처리 완료 여부와 상관없이 바로 자신의 작업을 할 수 있다.
C. Synchronous
: A와 B가 시작 시간 또는 종료 시간이 일치하면 동기이다. 예를 들어 A, B Thread가 동시에 작업을 시작하는 경우(예를 들면, 자바에서 CyclicBarrier) Method Return 시간(A)과 결과를 전달받는 시간(B)이 일치하는 경우

즉, A가 끝나는 시간과 B가 시작하는 시간이 같으면 동기이다.
D. Asynchronous
: 비동기는 동기와 반대로 대상이 서로 시간을 맞추지 않는 것을 말한다. 예를 들어 호출하는 함수가 호출되는 함수에게 작업을 맡겨놓고 신경을 쓰지 않는 것을 말한다.




'CS 스터디' 카테고리의 다른 글
| [CS : OS] 인터럽트 & System call & PCB / Context Switching (0) | 2021.05.21 |
|---|---|
| [CS : OS] 프로세스 & 스레드 (0) | 2021.05.21 |
| [CS : 네트워크] Load Balancing (0) | 2021.05.20 |
| [CS : 네크워크] HTTP & HTTPS (0) | 2021.05.10 |
| [CS : 네트워크] UDP (0) | 2021.05.10 |