기록을 남기자

세마포 2

카테고리 설명
  • Semaphore semWait : Process 를 Block 시킬 수 있는 명령어이다. semSignal : 내가 아니라 Queue에 있는 프로세스를 Ready로 옮겨 실행할 수 있게 해준다. Semaphore는 Critical Section뿐 아니라, 많은 동기화 문제에 사용된다. ↳ 특히 Critical Section을 다룰 때는 무조건 초기 세마포 변수 값을 1로 설정해야 한다! Race Condition : 실행 순서에 따라 결과가 어떻게 될지 모르는 상황 → 여러 프로세스가 Critical Section 을 동시 접근할 때 발생한다. 어느 위치에 semWait과 semSignal를 사용할지 잘 선택해야 한다. Mutual Exclusion Using Semaphore 하늘색 네모 부분은 해당..

  • Requirements for Mutual Exclusion Mutual Exclusion Mutual Exclusion : 전체 코드가 아닌, Critical Section code 가 한 번에 하나의 프로세스만 실행할 수 있도록 하는 것. Mutual Exclusion 은 어떠한 경우에도 지켜져야 한다. 오직 하나의 프로세스만 Critical Section 의 자원에 접근할 수 있다. → Critical Section Code 가 아닌 코드는 막 섞여서(interleaving, overlapping) 실행되어도 상관 없다. Critical Section Code 와 Non-Critical Section Code 가 섞여 실행되는 것도 상관 없다. ⇒ Non-Critical Section Code 와 ..