비동기 와 논블로킹
동기(Sync) 비동기(Async)
처리해야할 작업들에 대한 처리과정
두가지 이상의 작업과 이를 처리하는 시간으로 구분한다
동기화 Synchronous
호출된 작업의 리턴하는 시간과 결과를 반환하는 시간이 일치하는 경우를 말한다
a작업의 종료시간과 b작업시작시간이 같으면 동기적 이라고 한다
비동기화 Asynchronous
호출된 작업의 리턴하는 시간과 결과를 반환하는 시간이 일치하지 않는 경우를 말한다
동기와 반대로 대상이 작업시간이 같지 않을 때 비 동기적이라고 본다
블로킹 / 논블로킹
Non-Blocking 이란 이전 작업이 완료될 때 까지 기다리지 않고,
다음작업이 바로 진행될 수 있도록 동작하는 패러다임이다
처리해야할 작업의 과정을 막는가? 막지 않는가
1. Blocking
직접 제어할 수 없는 작업이 끝날 때 까지 기다려야하는 경우를 말한다
호출된 함수에서 I/O작업등을 요청했을 경우 I/O작업이 처리되기 전까지 아무일도 하지 못한다
2. Non-Blocking
직접제어할 수 없는 작업이 완료되기 전에 제어권을 넘겨주는 경우를 말한다
호출된 함수에서 I/O 작업등을 요청했을 경우 I/O작업의 처리여부와 관계없이 바로 다음 작업을 할 수 있다
4가지 경우의 수
동기 - 블로킹
동기 - 논블로킹
비동기 - 논블로킹
비동기 - 블로킹
노드 익스 리엑트
리엑트
전기적인 신호를 증폭시켜 LAN의 전송거리를 연장시키고,
여러대의 장비를 LAN에 접속할 수 있도록 한다.
특히 허브는 10 Base-T나 100 Base-T처럼 UTP 케이블을 사용하는 환경에서
장비들을 상호 연결시키는 콘센트 레이터 역할도 함께 제공한다.
만약 허브가 없다면 크로스 케이블을 사용하여 두 대를 연결할 수 있다.
UTP를 사용하는 장비들은 두대만 연결 가능하다.
허브를 사용하면 한꺼번에 많은 장비를 연결할 수 있다
LAN에서 주로 사용되는 UPT 케이블은 최대 전송거리가 100m이다.
그러나 허브를 사용하면 전송거리가 연장된다.
허브는 한 장비에서 전송된 데이터 프레임을 허브로 연결된 모든 장비에게 다 전송하며,
이를 플러딩(flooding)이라고 한다.
아래 그림에서 pc4가 pc3에게 프레임을 전송하면 목적지인 pc3뿐만 아니라 pc1, pc2에게도 전송된다.
결과적으로 충돌이 많이 발생하여 하나의 허브에 많은 장비를 연결할 수 없다.
같은 이유 때문에 보안성도 떨어진다.
또 하프 두플렉스(half duplex)로만 동작하기 때문에 이더넷 프레임의 충돌이 발생할 가능성이 높고,
네트워크의 성능도 떨어진다.
한 장비가 프레임을 전송하면 모든 장비와 충돌이 발생할 수 있으므로 허브에 접속된 모든 장비들은 하나의 충돌 영
역에 있다고 한다.
가정이나 소규모 기업에서 pc를 연결하는 경우를 제외하고는 거의 허브를 사용하지 않는다.
스위치