Skip to main content Link Search Menu Expand Document (external link)

동기와 비동기

  • 동기(synchronous : 동시에 일어나는)
    • 요청과 결과가 한 자리에서 동시에 일어남
    • A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 수행
  • 비동기(Asynchronous : 동시에 일어나지 않는)
    • 요청한 그 자리에서 결과가 주어지지 않음
    • 노드 사이의 작업 처리 단위를 동시에 수행하지 않아도 됨
  • 동기와 비동기는 어떤 작업 혹은 그와 연관된 작업을 처리하고자 하는 시각의 차이
    • 동기는 추구하는 같은 행위(목적)가 동시에 수행
    • 비동기는 추구하는 행위(목적)가 다를 수도 있고, 동시에 수행되지 않음

블록과 논블록

  • 블록 상태
    • 요청한 결과를 기다리는 동안 어떤 작업도 수행하지 못함
    • A 함수가 실행되고 A함수가 끝날 때까지 다른 함수가 실행되지 못함
  • 논블록 상태
    • 요청한 작업과 연관되지 않은 작업을 수행할 수 있음
    • A 함수가 실행되자 마자 return하여 A함수를 호출한 코드에 제어권을 넘겨 다른 일을 할 수 있도록 함

os를 공부하면서 열심히 배웠던 동시성 문제는 블럭/논블럭과는 연관이 없고 동기/비동기와 연관이 있습니다.

https://private.tistory.com/24 https://dkswnkk.tistory.com/488


업무에 적용

매우 기본적인 내용이지만 업무를 예로 들면 기억하기 좋을 것 같다.

RSARTE

  • 업무에 사용하는 RSARTE에는 각 software capsule마다 logical thread가 존재
  • 각 thread는 state와 transition으로 구성(이외에 더 있지만 큰 부분에서..)
  • state는 tigger event가 발생하지 않으면 다음 state로 transit되지 않는다.
    • 블럭 상태
  • 하지만 다른 logical thread가 수행되지 않는 것은 아니다. → 다른 thread가 동시에 수행 가능
    • 비동기

Module test

  • test하고자 하는 target과 가상의 sim node들이 존재
  • test하고자 하는 target에서 sim node로 메세지를 전송
  • 다른 코드들이 수행되지 않는다.
    • 비동기, 블럭 상태