[Operating System] 동기(Synchronous) vs 비동기(Asynchronous)

동기와 비동기

  • 프로세스Process간 통신IPC을 위해 프로세스들은 서로 메시지를 주고받으며 메시지 전달 과정에서 일련의 작업operation들이 수행됨
    1. 송신send 작업
    2. 수신recieve 작업
    3. 응답reply 작업
  • 동기적Synchronous: 다음 작업을 하기 위해 현재 작업이 완료될 때까지 기다리는 상태 또는 그 성질
    • 동기적 작업은 현재 작업이 끝날 때까지 프로세스를 블락block
    • 선작업이 완료되어야 후작업이 시작 및 진행 가능하므로 후작업은 선작업에 의존적임
  • 비동기적Asynchronous: 현재 작업이 완료되기 전에 다음 작업을 동시에 할 수 있는 상태 또는 성질
    • 비동기적 작업은 현재 프로세스를 논블락non-block
    • 비동기적 작업은 다른 작업을 시작시킬 수 있음
    • 선작업이 완료되지 않더라도 후작업이 시작 및 진행 가능하므로 후작업과 선작업은 서로 의존 관계 없이 독립적임
  • 동기적 작업은 프로세스에 대한 블락킹blocking 과정을 포함하고 비동기적 작업은 논블락킹non-blocking 과정을 포함함

동기적 작업

  • 한 프로세스가 다른 프로세스에 단순히 메시지를 전달하는 목적의 통신(remote assignment)에서 송신이 일어난 후 수신이 일어나야 메시지 전달 작업이 완료됨
  • 한 프로세스가 다른 프로세스에 메시지를 전달하고 메시지를 받은 프로세스는 어떤 프로시저procedure를 실행하는 목적의 통신(remote procedure call)에서는 다음과 같이 메시지 전달 작업이 완료됨
    • 수신자의 프로시저가 값을 반환하는 경우: 프로시저가 정상적으로 완료되고 반환된 값을 송신자가 전달받아야 메시지 전달 작업이 완료됨
    • 수신자의 프로시저가 값을 반환하지 않는 경우: 프로시저의 실행이 정상적으로 완료되면 메시지 전달 작업이 완료됨
  • 동기적인 메시지 전달은 프로세스를 블락하는 특성으로 인해 송신 프로세스는 메시지를 수신 프로세스에 전달하는 동안 다른 연산을 수행할 수 없음
  • 동기적 작업에서는 별도의 프로세스들의 병렬성으로 동시성을 달성할 수 있지만 이는 프로세스들의 관리를 위한 리소스 소모를 유발함

비동기적 작업

  • 한 프로세스가 다른 프로세스에 메세지를 전달하기만 함
  • 비동기적인 메시지 전달은 프로세스를 블락하지 않는 특성으로 인해 송신 프로세스는 수신 프로세스에 메시지를 전달하는 동안 다른 연산을 수행할 수 있으며 이는 동시성을 가능하게 함

참고

Comments