분류 전체보기

운영체제

Process Scheduling

Process Scheduling scheduler라는 것은 main memory 안에 존재하는 여러 process들 사이에서 다음 CPU를 할당받을 process를 선택하는 OS code를 말한다. process scheduler는 다음 CPU에서의 실행을 위해 사용 가능한 process를 선택한다. 이때 여러 개의 process queue가 존재하는데 대표적으로 다음과 같은 queue가 존재한다. job queue: system에서의 모든 process의 set이 존재한다. Ready queue: CPU를 할당받고자 기다리는 process들이 있다. Device queue: I/O device를 위해 기다리는 process들이 있다. process들은 다양한 queue에서의 이주가 가능하도록 설계된다..

운영체제

Semaphores

Semaphores semaphore는 mutex와 유사하게 동작하는 동기화 문제를 해결하기 위한 방법. 여러 process가 공유 resource에 접근할 때, 한 process가 critical section에서 수행중이라면 다른 process는 자신의 ciritical section에 들어가지 못하게 해야한다. semaphore는 critical section에 들어가기 전 semaphore를 통해 resource에 접근 가능한 지 확인을 하며 동기화 문제를 해결한다. mutex보다 process들이 자신들의 행동을 더 정교하게 동기화할 수 있는 방법을 제공한다. P연산과 V연산 Semaphore S는 정수 변수로서, 초기화를 제외하고는 단지 두 개의 표준 atomic operation인 wait(..

운영체제

Mutex Locks

Mutex Locks hardware적이기만 한 solution을 통한 동기화 문제 해결은 빠르지만 application, programmer 입장에서 사용하기 어렵고, busy waiting과 같은 문제가 나타날 수 있는 단점이 존재했다. 그렇기에 software적인 부분과 hardware적인 부분이 섞인 다른 software tool이 필요하게 되었는데, 그 중 하나가 Mutex Lock이다. mutex는 이진 semaphore의 일종으로 resource에 lock을 걸면서 동기화 문제를 해결한다. 상호 배제(mutual exclusion: 한 번에 한 process만 critical section에 들어갈 수 있도록 하는 것) 개념을 이용하여 critical section을 가진 thread들이 각..

운영체제

동기화 문제

한 번에 한 process가 접근할 수 있도록 만들어주는 scheme이다. 공유 data를 구성하기 위해서 동기화가 필요하다. 그 동기화는 어떤 기법이 있는가? hardware적인 solution과 software적인 solution Pterson의 solution program에 의해 locking을 하게 되면(동기화하면) overhead가 클 수도 있고, 동기화 program 자체에서도 또 동기화를 시켜주어야 한다. 실질적으로 사용하기에 쉽지 않다. hardware instruction으로 동기화가 가능 'test and set'과 'compare and swap'과 같은 instruction은 속도는 빠르지만 user 입장에서는 사용하기에 어렵다는 단점이 있다. busy waiting과 같은 문제가..

bmsk_kun
'분류 전체보기' 카테고리의 글 목록 (4 Page)