Blocking, Non-Blocking
1. Blocking : 자신의 작업을 진행하다가, 다른 주체의 작업이 시작되면 다른 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작하는 것
Ex. 담당자 曰 : 서류 다 읽을 때까지 앞에서 기다리세요.
2. Non-Blocking : 다른 주체의 작업에 관련없이 자신의 작업을 하는 것
Ex. 담당자 曰 : 서류 다 읽을 테니까 가세요.
Blocking, Non-Blocking 차이
다른 주체가 작업할 때 자신의 제어권이 있는지 없는 지로 구분한다.
Synchronous, Asynchronous
1. Synchronous(동기) : 작업을 동시에 수행하거나, 동시에 끝나거나, 끝나는 동시에 시작함. 커널에서 처리된 결과 값을 가지고 새로운 작업을 시작한다.
Ex. 일반사원 曰 : 기다리든 가서 내 일 하든 내 마음. 담당자도 신경 안 씀. 담당자가 읽은 후 결과 피드백을 주면, (그 결과에 관심을 가지고) 바로 그 일을 처리하기 시작한다.
2. Asynchronous(비동기) : 시작, 종료가 일치하지 않으며, 끝나는 동시에 시작을 하지 않음
돌아온 결과 데이터를 가지고 처리를 할 수도, 안 할 수도 있다.
Ex. 일반사원 曰 : 기다리든 가서 내 일 하든 내 마음. 담당자는 이 일을 바로 처리하지 않아도 된다. 담당자가 읽은 후 결과 피드백을 주면, 바로 그 일을 언젠가 처리한다.
Synchronous, Asynchronous 차이
둘 다 결과에 관심이 많고, 결과를 돌려주었을 때 순서에 관심이 있는지 판단할 수 있다.
응용
1. 블로킹 싱크 : 담당자는 서류를 모두 읽을 때까지 기다리라고 하며, 모두 읽으면 사원은 바로 관심을 가지며 바로 일을 처리한다. 자바에서 입력 요청이 있을 때 사용된다.
2. 논블로킹 싱크 : 담당자는 다른 업무를 보라고 한다. 중간중간 계속 물어본다. 끝나셨나요? 만약 끝났다면, 결과를 전달하고 그 결과를 가지고 바로 처리한다.
3. 블로킹 어싱크 : 담당자는 기다리라고하고, 사원은 결과에 관심은 없지만 기다린다. 담당자는 메일로 결과를 보내주고 사원은 돌아가서 시간이 될 때 일을 처리한다.
4. 논블로킹 어싱크 : 양쪽에서 서로 작업을 하게 된다. 담당자는 사원에게 돌아가서 자신의 일을 하라고 한다. 결과를 메일로 전달한다. 사원은 나중에 메일을 확인하고 일을 한다. 자바스크립트에서 api 요청을 하고 다른 작업을 하다가 콜백으로 추가적인 작업을 한다.
정리
블로킹 논블로킹은 제어의 관점이고, 싱크 어싱크는 순서와 결과의 관점이다.
'Dev > 운영체제' 카테고리의 다른 글
쉽게 배우는 운영체제 5장 연습문제 풀이 (0) | 2021.04.15 |
---|---|
스케줄링 알고리즘 적용 연습문제 (2) | 2021.04.15 |
쉽게 배우는 운영체제 4장 연습문제 풀이 (0) | 2021.04.15 |
쉽게 배우는 운영체제 3장 연습문제 풀이 (0) | 2021.04.15 |
시스템 소프트웨어 용어 정리 (0) | 2020.04.11 |