[OS] 동기와 비동기

GonnabeAlright·2021년 11월 24일
0
post-thumbnail

동기와 비동기

동기(Synchronous)란 ?

'동기'라고 하면 다수의 개체들이 동일(일정)한 무언가를 가지는 것. 또는 무언가가 동일(일정)하게 되는 것.

  • 그 무언가는 상태가 될 수 있고 행위가 될 수 있고 시간, 속도, 주가, 출현 등이 될 수 있다.
  • 여기서 말하는 '동기'는 두개의 프로세스가 데이터를 주고 받을 때, 주고 받는 순서(또는 사건)가 일정하다는 것을 뜻한다. (너한번, 나 한번)

비동기(Asynchronous)란 ?

'동기'가 아닌 것.

동기식, 동기적이다.

  • 어떤 작업을 요청했을 때, 그 작업이 종료될 때까지 기다린 후 다음 작업을 수행한다.
    • 데이터를 주고받는 '순서'가 중요할때 사용된다.
    • 요청한 작업만 처리하면 되기 때문에 전체적인 수행 속도는 빠를 수 있다.(일만 하면 된다.)
    • 한 작업에 대한 시간이 길어질 경우, 전체 응답이 지연될 수 있다.

비동기식, 비동기적이다.

  • 어떤 작업을 요청했을 때 그 작업이 종료될 때까지 기다리지 않고(작업을 위임하고), 다음 작업을 수행한다. 요청했던 작업이 끝나면 결과를 받고, 그에 따른 추가 작업이 있다면 수행한다.
    • 요청 순서에 상관없이, 동시에 다수의 작업을 처리할 수 있다.
    • 작업이 끝날 때 따로 이벤트를 감지하고 결과를 받아 그에 따른 추가 작업을 해줘야하기 때문에, 비교적 느릴 수 있다.
    • I/O 작업이 잦고, 빠른 응답속도를 요구하는 프로그램에 적합하다.

0개의 댓글