blocking

· Server
동기와 비동기 ? Blocking Non-Blocking? 개발을 공부하면 동기와 비동기라는 단어를 자주 접하게 됩니다. 또한 이 둘과 혼동될 수 있는 Blocking , Non-Blocking 개념도 종종 들을 수 있습니다. 비슷한 개념 같아 보이지만 미묘하게 다른 두 개념을 함께 살펴보겠습니다. Blocking OS관점의 블로킹은 프로세스가 어떤 작업을 위해 OS에 기능을 요청했는데 ( System Call ) OS가 해당 태스크를 바로 처리할 수 없을 경우, thread 를 “sleep” 혹은 “blocked” 상태로 변경합니다. 즉, CPU 큐에서 내려오고, 작업이 완료될 때 까지 대기합니다. 요청된 작업이 완료된 후에 OS는 thread를 깨웁니다. 이렇게 스레드를 sleep 상태로 만들 수 있..
개요 보통 자주 사용하는 네트워크 프로토콜 이라고 한다면, UDP/TCP ,SSL, HTTP 등, 다양한 프로토콜이 존재합니다. 하지만 4계층인 Transport Layer 에서 주로 사용하는 프로토콜은 UDP와 TCP가 존재합니다. 이 둘은 확연한 장/단점이 있기에, 사용 용도에 따라 취사 선택하여 사용하곤 합니다. 지난 포스팅에서 보았듯이, UDP는 stateless 하기 때문에, 상대방과 연결을 맺지 않는 반면 TCP는 stateful하기 때문에, 상대방과의 연결을 맺고 ( 터널을 뚫고 ) 직접 통신을 진행합니다. 이를 3-way-handshaking 이라고 합니다. 흐름도 소켓 프로그래밍의 절차도 동일합니다. 단지 네트워크 프로토콜을 프로그래밍 언어로 구현한 라이브러리인데, 다르다면 그게 더 이상..
hyunw9
'blocking' 태그의 글 목록