Blocking/Non-Blocking
블로킹과 논 블로킹은 처리되어야 하는 작업이 전체적인 작업 흐름을 막는지에 대한 관점이다.
Blocking
블로킹(Blocking)은 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 자신의 작업을 멈추고
해당 작업을 기다렸다가 다시 자신의 작업을 시작한다.
위 과정을 정리하면 아래와 같다.
- 유저가 커널에게 read 작업을 요청
- 커널은 데이터가 입력될 때까지 무한정 대기한다(Blocking) -> 리소스가 일을 하지 않고 낭비된다.
- 데이터가 입력되면 커널이 유저에게 결과를 전달한다.
Non-Blocking
논 블로킹(Non-Blocking)은 다른 주체의 작업에 관련 없이 자신의 작업을 하는 것을 의미한다.
위 과정을 정리하면 아래와 같다.
- 유저가 커널에게 read 작업을 요청
- 커널은 데이터 입력 여부와 관계 없이 결과를 반환
- 이후 커널은 유저로부터 입력 데이터가 올때까지 수차례 확인
- 입력 데이터가 있으면 커널이 유저에게 결과를 전달한다.
'CS(Computer Science)' 카테고리의 다른 글
CS Study 5주차 : Primary Index vs Secondary Index / Composite Index (0) | 2022.11.30 |
---|---|
CS Study 5주차 : Index(인덱스) (0) | 2022.11.30 |
CS Study 3주차 : 로드 밸런싱 (0) | 2022.11.16 |
CS Study 3주차 : TLS/SSL HandShake (1) | 2022.11.16 |
CS Study 2주차 : HTTPS method GET vs POST (0) | 2022.11.09 |