CH12~13

<기본미션 | p.304 1번 >

semaphore의 wait 함수는 사용할 수 있는 resource가 없으면 process를 대기 상태로 만든다. (busy waiting X)

semaphore의 wait 함수는 사용할 수 있는 resource가 없으면 process를 대기 상태로 만든다. (busy waiting X)

<추가미션 >

*critical section : 둘 이상의 thread가 동시에 shared resource에 접근X, 독점을 보장하는 영역

*mutual exclusion : 둘 이상의 process가 critical section에 진입하는 것을 방지. race condition을 막아줌.

Untitled

★ 프로세스 동기화

💟 process synchronization

process들 사이의 수행 시기를 맞추는 것

✔ 실행 순서 제어를 위한 synchronization

✔ mutual exclusion - Shared resource, critical section, race condition, Producer & consumer problem

*mutual exclusion을 위한 3가지 원칙: mutual exclusion, progress, bounded waiting

💟 mutex lock

lock, acquire, release

💟 semaphore

shared resource가 n개, wait, signal

💟 monitor

shared resource를 다루는 interface에 접근하기 위한 queue를 만들고, monitor 안에 하나의 process만 들어오도록 mutual exclusion을 위한 synchronization 제공

★ Deadlock

💟 Dining philosphers problem

💟 Deadlock 발생 조건

  1. mutual exclusion
  2. hold & wait
  3. non-preemptive
  4. circular wait

💟 Deadlock 해결방법

  1. 예방
    1. mutual exclusion → 모든 resource를 공유 가능하게?
    2. hold & wait → 자원의 활용률 down
    3. non-preemptive → 모든 resource를 preemptive하게?
    4. circular wait → 모든 resource에 번호를 붙이고 오름차순으로 resource 할당
  2. 회피
    1. safe state
    2. unsafe state
  3. 회복
    1. preemptive
    2. 강제 종료(ostrich algorithm)