본문 바로가기

Student/모여서 각자 코딩

19년도 여름방학 모각코 6일차 회고 0712

동기(synchronous : 동시에 일어나는)

 - 동기는 말 그대로 동시에 일어난다는 뜻입니다. 요청과 그 결과가 동시에 일어난다는 약속인데요. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 합니다.

-> 요청과 결과가 한 자리에서 동시에 일어남

-> A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다.

 

비동기(Asynchronous : 동시에 일어나지 않는)

 - 비동기는 동시에 일어나지 않는다를 의미합니다. 요청과 결과가 동시에 일어나지 않을거라는 약속입니다. 

-> 요청한 그 자리에서 결과가 주어지지 않음

-> 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.


어떤 루틴을 완전히 끝내고 제어를 반납하면 동기식
동작이 안 끝났어도 일단 제어권을 반납한 후 지 할일 계속하면 비동기식

 

Blocking Vs Non-Blocking 차이점

  • 가장 큰 차이점은 프로그램이 바로 실행할 수 있는 유무가 다르다.

Synchronous Vs Asynchronous 차이점

  • 가장 큰 차이점은 결과물을 가저오는 시점이 다르다.

Non-Blocking Vs ASynchronous 차이점

System Call이 즉시 Return될 때 데이터의 포함 유무

  • Asynchronous은 요청에 처리 완료와 관계없이 응답한다. 이후 운영체제에서 응답할 준비가 되면 응답한다.

  • Non-Blocking은 요청에 처리할 수 있으면 바로 응답하고 아니면 Error를 반환한다.

Blocking Vs Synchronous 차이점

Wait Queue 유무

  • Blocking은 System Call의 Return을 기다리는 동안 필수로 Wait Queue에 머문다.

  • Synchronous은 System Call의 Return을 기다리는 동안 Wait Queue에 머물 수도 아닐 수도 있다.