동기 VS 비동기

Maru·2022년 6월 29일
0

CS

목록 보기
2/7
post-thumbnail
post-custom-banner

동기와 비동기

이 개념은 OS에서 뿐만 아니라 여러가지 분야에서도 쓰인다.

동기(Synchronous)란?

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

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

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

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

  • 요청과 결과가 한 자리에서 동시에 일어남
  • A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다

비동기(Asynchronous)란?

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

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

'동기'가 아닌 것.

  • 요청한 그 자리에서 결과가 주어지지 않음
  • 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.

동기식, 동기적이다.

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

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

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

동기와 비동기는 상황에 따라서 각각의 장단점

  • 동기
    - 동기방식은 설계가 매우 간단하고 직관적이다
    - 결과가 주어질 때까지 아무것도 못하고 대기해야 한다.
  • 비동기
    - 비동기방식은 동기보다 복잡하다
    - 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있습니다.

References

오토봇팩토리:티스토리

post-custom-banner

0개의 댓글