본문 바로가기
Operation System

Sync & Async

by orioncsy 2023. 2. 20.

Sync & Async

Sync

개념

  • 한 자원에 대한 동시 접근을 제한하는 방식
  • 직렬적으로 업무를 순차적으로 처리
  • 어떤 작업이 수행 중이면 다른 작업은 대기

장점

  • 설계가 단순하고 직관적

단점

  • 작업이 끝날 때까지 대기

Async

개념

  • 한 자원에 대한 동시 접근을 허용하는 방식
  • 병렬적으로 업무를 처리
  • 업무가 끝나지 않더라도 다른 작업을 실행

장점

  • 업무가 끝나지 않더라도 다른 작업을 하기 때문에 처리 속도가 효율적이다.

단점

  • 설계가 복잡하다.

Sync & Async vs Blocking & non-blocking

특징

  • 특정 작업이 return하여 작업을 완료하는 지를 확인하는 방식
  • Sync의 경우 작업을 완료하면 다른 작업을 진행
  • Async의 경우 완료 여부와 상관없이 다른 작업 진행

Blocking & non-blocking

  • 다른 작업을 호출할 때 제어권의 처리 여부에 따라 나뉜다.
  • blocking의 경우에는 다른 작업에 제어권을 넘겨준다.
  • non-blocking은 다른 작업에 제어권을 넘겨주지 않는다.

Sync & blocking

  • 하나의 작업에서 다른 작업을 호출하면 제어권을 넘겨주고 완료되면 다른 작업 진행

Sync & non-blocking

  • 하나의 작업에서 다른 작업을 호출하면 제어권을 넘겨 주지 않고 다른 작업이 완료되는지 계속 확인

Async & blocking

  • 하나의 작업에서 다른 작업을 호출하면 제어권을 넘겨 주고 다른 작업이 완료되는지 확인하지 않는다.
  • 다른 작업이 완료되는지 확인하지 않지만 제어권을 넘겨줘서 Sync & blocking과 같은 효과이다.

Async & non-blocking

  • 하나의 작업에서 다른 작업을 호출하면 제어권을 넘주지 않고 작업이 완료되는지 확인하지 않는다.
  • 결국 하나의 작업을 하다 다른 작업을 동시에 진행 가능

Reference

[데이터 처리] 동기식 비동기식 Synchronous Asynchronous

블로킹 Vs. 논블로킹, 동기 Vs. 비동기

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

Cache  (0) 2023.02.24
Virtual memory  (0) 2023.02.23
Semaphore & Mutex  (0) 2023.02.22
Deadlock & Starvation  (0) 2023.02.21
Process and Thread  (0) 2023.02.19