동기와 비동기

2021. 7. 26. 22:20Operating System

동기화

  •  시스템을 동시에 작동 시키기 위해 여러 사건들을 조화 시키는 것을 의미한다. (출처: 위키백과)
  •  논리 주소 공간을 공유하는 협력적 프로세스의 질서있는 실행 보장
  •  데이터의 일관성 유지
  • 어떤 작업을 요청했을 때 그 작업이 종료될 때까지 기다린 후 다음 작업을 수행한다.
    • 데이터를 주고받는 '순서'가 중요할때 사용된다.
    • 요청한 작업만 처리하면 되기 때문에 전체적인 수행 속도는 빠를 수 있다. (일만 하면 된다)
    • 한 작업에 대한 시간이 길어질 경우, 전체 응답이 지연될 수 있다.
  • 즉, 순서가 있기 때문에 질서 정연하여 속도가 빠르기도 하지만, 한 작업이 지연되면 뒤에 작업들이 오래 지연되는 경우가 발생 

비동기화

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

 


 

출처

https://github.com/WeareSoft/tech-interview/blob/master/contents/os.md#%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0 

 

'Operating System' 카테고리의 다른 글

System Calls  (0) 2021.12.02
Operating System Service  (0) 2021.12.02
프로세스(Process) & 스레드(Thread)  (0) 2021.11.22
메모리 관리  (0) 2021.07.29
프로세스 동기화(ProcessSynchornization)  (0) 2021.07.28