본문 바로가기
반도체 그 다음 학문/운영체제 (OS)

운영체제 Monitors & Liveness

by 전컴반 2022. 5. 12.
반응형
Monitors

 

동기화 문제를 상위 수준에서 해결하기 위해 나온 것이 Monitors이다. 클래스와 같은 구조로 지원해준다.

즉, 직접 접근이 어렵고 monitors를 통해서만 접근할 수 있다는 의미로, 공유자원을 보호할 수 있다.

 

 

각 언어마다 다 다르지만, 공통적인 부분은 여러 프로세스들에 의해 공유될 수 있다. 

Monitors는 한순간에 하나의 프로세스만 사용 가능하고 모니터를 누군가 사용하고 있다면 다른 프로세스들은 대기해야 하며, 공유 자원은 Monitors가 지원하는 동작으로만 접근할 수 있다.

 

 

Liveness

 

Progress와 bounded-waitiing이 모두 만족하는 상황을 Livenss라고 부른다. 이 liveness를 저해하는 요소가 3가지 있다.

 

1. Deadlock

- 두 개 이상의 프로세스가 이러지도 저러지도 못하는 상황을 의미한다. 꼬이는 상황이다.

 

2. Starvation

- 특정 프로세스가 semaphore를 얻지 못하게 계속 기다리게 되는 상황이다.

 

3. Priority-inversion

- 낮은 우선순위를 가진 프로세스가 lock을 가지고 있을 때, 더 높은 우선순위임에도 불구하고 lock이 없기 때문에 기다려야 하는 상황이다.

반응형

댓글