∞. 기술 면접/3. 운영체제

04. 기술면접 - 운영체제 - 동기와 비동기

THE HEYDAZE 2021. 10. 6. 09:52
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다

 

읽기 전

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

 

동기(Synchronous) 란

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

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

 

비동기(Asynchronous) 란

- 동기가 아닌 것

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