동캄의 코딩도장

운영체제 [동기화 - SW solution] 본문

CS/운영체제

운영체제 [동기화 - SW solution]

동 캄 2022. 1. 17. 16:39

동기화 (Synchronization)

- 프로세스들이 서로 동작을 맞추는 것
- 프로세스들이 서로 정보를 공유하는 것


임계영역(Critical section)

- 공유 데이터를 접근하는 코드 영역


상호배제(Mutual exclusion)

- 둘 이상의 프로세스가 동시에 critical section에 진입하는 것을 막는 것


동기화 구현 조건


상호배제 (Mutual exclusion)

- Critical section (CS)에 프로세스가 있으면, 다른 프로세스의 진입을 금지

 

진행 (Progress)

- CS 안에 있는 프로세스 외에는, 다른 프로세스가 CS에 진입하는 것을 방해 하면 안됨.

 

한정대기 (Bounded waiting)

- 프로세스의 CS진입은 유한시간 내에 허용되어야 함


Mutual Exclusion Solutions -SW solution

 

Dekker's Algorithm & Pertersion's Algorithm

- Two process ME를 보장하는 최초의 알고리즘
- flag와 turn을 이용하여 동기화 구현 조건을 만족

Dijkstra's Algorithm

- flag의 값 idle, want-in, in-CS
- in-CS에서 Mutual Exclusion을 확인한 뒤, critical section에 진입

 

단점

-속도가 느림
-구현이 복잡함
- ME primtive 중 preemption 발생 가능
- busy waiting 발생가능