모니터(2)
-
운영체제(7), Synchronization Examples
Synchronization Examples 어플리케이션 프로세스나 쓰레드가 사용하는 모델로는 세마포, 모니터, 뮤텍스 럭이 있다. 세마포는 카운팅, 바이너리가 있다. 바이너리 세마포는 뮤텍스 락과 동일하다. 운영체제에서는 스핀락과 인터럽트 enable, disable 방법을 사용한다. 1. Classical problem of Synchronization 1) Bounded-Buffer Problem 프로듀서는 데이터를 큐에 삽입하고, 컨슈머는 큐에서 데이터를 뽑아 사용한다. 큐를 공용으로 사용하기에 동기화 문제가 발생할 수 있다. 이는 두 가지 문제점이 있다. 우선 count, data, out은 모두 shared data이다. 어셈블리어로 이를 살펴보면 세개의 인스트럭션으로 쪼개지고, 그 사이에 인..
2022.12.18 -
운영체제(6), Synchronization Tools
Synchronization Tools CPU sheduling을 할 때에는 Fair하면서 response time을 최소화 하는 것이 중요했다. 이번 챕터에서는 프로세스 동기화에 대해 배울 예정이다. 프로세스 생성, 종료, 협력(Inter process communication) 등에 대해 얘기했고, 이는 쓰레드도 마찬가지이다. 예를 들어 크롬 브라우저는 플러그인 프로세스, 탭 별로 렌더링 프로세스, 브라우저 프로세스 등등이 있었다. 사용자의 입력이나 디스크를 읽거나 리모트 웹을 읽는 역할의 브라우저 프로세스이 수행되고, 어떤 시점에서 렌더링 프로세스와 동기화가 되어야지 데이터를 주고 받을 수 있다. 어떤 시스템 콜을 사용해서 동기화를 이뤄낼 것인가, 혹은 동기화를 커널이 알아서 하거나, 어플리케이션 ..
2022.12.18