Home [OS] 운영체제 - 병행제어 5
Post
Cancel

[OS] 운영체제 - 병행제어 5

운영체제 - 병행제어 5

Monitor

Semaphore의 문제점

  • 코딩하기 힘들다.
  • 정확성(correctness)의 검증이 힘들다.
  • 자발적 협력(voluntary cooperation)이 필요하다.
  • 한번의 실수가 모든 시스템에 치명적인 영향을 미친다.

Monitor란?

  • 동시 수행중인 프로세스 사이에서 abstract data type의 안전한 공유를 보장하기 위한 high-level synchronization construct

Monitor의 특징

  • 모니터 내에서는 한번에 하나의 프로세스만이 활동 가능하다.
  • 프로그래머가 동기화 제약 조건을 명시적으로 코딩할 필요가 없다.
  • 프로세스가 모니터 안에서 기다릴 수 있도록 하기 위해 condition variable을 사용한다.

Condition Variable

  • wait와 signal 연산에 의해서만 접근 가능하다.
  • x.wait()
    • x.wait()을 invoke한 프로세스는 다른 프로세스가 x.signal()을 invoke하기 전까지 suspend 된다.
  • x.signal()
    • x.signal()은 정확하게 하나의 suspend된 프로세스를 resume 한다.
    • (resume할 suspend된 프로세스가 없으면 아무런 일도 발생하지 않음)
This post is licensed under younghwani by the author.

[OS] 운영체제 - 병행제어 4

[Git] Git-flow 정리

Comments powered by Disqus.