본문 바로가기

세마포4

운영체제 13장 - 프로세스 관리(10) : 모니터 - 운영체제 13장 - 프로세스 관리(10) : 모니터 - 동기화 문제를 해결하기 위해서 우리는 세마포라는 도구를 사용하였다. 하지만 동기화 문제를 해결하는데 세마포만이 사용되지는 않는다. 사실 세마포의 경우 오래된 동기화 도구라고 할 수 있다. 현재 사용되는 도구 중 하나가 모니터이다. 특히 자바 프로그램에서는 모니터에 대한 활용이 높다. 세마포가 어셈블리 언어에 적합한 도구라면 모니터는 그보다 고수준인 언어의 도구라고 할 수 있다. 공유자원과 공유자원에 대한 접근함수가 존재한다. 이러한 구역을 임계구역이라고 한다. 모니터의 경우 두 개의 queue가 있는데 각각 배타동기와 조건동기의 역할을 한다. 배타동기의 queue는 하나의 쓰레드만 공유자원에 접근할 수 있게 하는 작용을 하는 공간이다. 특정 쓰레드가.. 2017. 4. 24.
운영체제 10장 - 프로세스 관리(7) : 읽기-쓰기 문제, 식사하는 철학자 문제 - 운영체제 10장- 프로세스 관리(7) : 읽기-쓰기 문제, 식사하는 철학자 문제 - 읽기 쓰기 문제는 공통 데이터베이스에 접근하는 문제를 다룬다. 서버에 데이터베이스가 존재하는데 다른 로컬 컴퓨터들이 데이터에 접근을 할 수 있다. 접근하는 사용자 중에는 Reader와 Writer가 존재한다. Reader는 데이터를 읽기만 하는 사용자이고 Writer는 데이터를 읽고 수정할 수 있는 사용자를 의미한다. 데이터베이스를 사용자들이 모두 공통 사용하므로 임계구역이라고 생각할 수 있다. 우리는 앞의 임계구역 문제를 해결하기 위해 동기화를 사용하였는데 상호배타를 만족시키기 만들어 한 번에 한 개의 프로세스만 접근이 가능하게 만들었다. 임계구역에 데이터를 접근하는 사용자에 접근 권한을 두어 동시에 접근을 할 수 없게.. 2017. 4. 22.
운영체제 9장 - 프로세스 관리(6) : 생산자-소비자 문제 - 운영체제 9장- 프로세스 관리(6) : 생산자-소비자 문제 - 프로세스 동기화는 프로세스 관리 분야에서 중요한 분야이다. 앞의 장들은 동기화를 공부하기 위해 은행계좌 문제를 예시로 들어서 설명하였다. 이번 장은 대표적인 프로세스 동기화에 대한 문제인 생산자-소비자 문제를 설명 할 것이다. 생산자-소비자 문제는 생산자가 데이터를 생상하면 소비자는 그것을 소비하는 형태에서 발생하는 문제를 말한다. 컴퓨터 세계에서 예를 들면 웹 서버와 웹 클라이언트로 들 수 있다. 웹 서버가 데이터를 생산하여 웹에 관련되어 보여주는 작업들을 수행하고 웹 클라이언트는 웹 주소로 접속해 화면을 통해 보게 되는 형태의 소비 작용을 한다. 일반적으로 생산하는 속도와 소비하는 속도에 차이가 존재한다. 실제로 생산되는 속도가 소비하는 .. 2017. 4. 20.
운영체제 8장 - 프로세스 관리(5) : 세마포(semaphore) - 운영체제 8장- 프로세스 관리(5) : 세마포(semaphore) - 프로세스/쓰레드 동기화는 여러 개의 프로세스/쓰레드가 공통으로 데이터에 접근하려고 할 때 발생하는 문제를 해결하는 방법이다. 동기화 부분은 스케줄링과 더불어 프로세스 관리에서 매우 중요한 부분을 차지한다. 세마포는 프로세스/쓰레드 동기화를 위한 도구 중 하나이다. 앞장에서 세마포의 원리에 대해서 알아보았는데 이번 장에서는 더욱 자세히 세마포에 대해 다루어보도록 하겠다. 쓰레드가 동작하는 공간에는 공통 데이터를 수정할 수 있는 임계구역이 존재한다. 쓰레드가 동작을 하면서 임계구역에 들어가게 되면 데이터를 수정할 수 있다. 쓰레드가 코드를 동작하는 도중에 acquire() 명령어가 실행되면 임계구역에 들어가라는 명령이므로 쓰레드가 임계구역.. 2017. 4. 19.