https://www.slipp.net/questions/367
Non-blocking vs blocking
Non-blocking algorithm(Non-blocking synchronization)
어떤 쓰레드에서 오류가 발생하거나 멈추었을 때 다른 쓰레드에 영향을 끼치지 않도록 만드는 방법
Non-blocking I/O(Asynchronous I/O 또는 Non-sequential I/O)
입출력 처리는 시작만 해두고 완료되지 않은 상태에서 다른 작업을 계속 진행할 수 있도록 하는 방법
cf) non-blocking vs asynchronous
system call이 반환될 때 실행된 결과와 함께 반환될 경우 non-blocking, 결과와 함께 반환되지 않는 경우 asynchronous
async는 처리 완료 여부와 관계 없이 바로 응답하고 non-blocking은 바로 응답할 수 있는 경우에는 응답하고 그러기 힘든 경우 에러반환
cf) synchronous vs blocking
시스템의 반환을 기다리는 동안 대기 큐에 머무르는 것이 필수가 아니면 sync, 필수라면 blocking
blocking
애플리케이션 실행 시 운영체제 대기 큐에 들어가면서 요청에 대한 system call이 완료된 후에 응답을 보낼 경우
Concurrency vs Parallelism
concurrency
각 프로그램 조각들이 실행순서와 무관하게 동작할 수 있도록 만들어 한 번에 여러 개의 작업을 처리할 수 있도록 만든 구조. 즉, 여러 개의 작업을 번갈아가며 수행할 수 있도록 만드는 것.
Parallelism
'이론 > CS' 카테고리의 다른 글
[OS] Process vs Thread (feat. Thread in Spring F/W) (0) | 2018.09.26 |
---|---|
[네트워크] 포트포워딩 (0) | 2018.07.18 |