운영체제 운영체제는 하드웨어를 관리하고, program 실행을 제어하는 프로그램을 뜻한다. C, assembly 등 low level 언어를 사용하고, 운영체제 없이는 program 실행이 불가하다. 운영체제의 역할 하드웨어 관리 access to I/O devices access to files accounting: 하드웨어 사용의 통계 정보 관리를 뜻한...
Operating System Services 운영체제는 사용자 편의와 process 실행의 효율성을 위해 여러가지 서비스를 제공한다. For Users User Interface Command Line Interface (CLI) : GUI와 상반되는 개념으로, windows의 명령 프롬프트, MAC OS의 terminal과 같은 것 들이다. 이들을 sh...
Process Concept process는 OS로부터 CPU 자원을 할당받아 실행중인 프로그램을 뜻한다. dynamic entity인 process는 static entity인 program은 가지지 않는 다음의 특징들을 보인다. Process Address Space 모든 process는 address space라는 주소 공간이 반드시 필요하다. 이는 ...
Motivation thread 는 process 내의 단위 실행 객체다. process 보다 더 작은 단위인 thread 의 도입 계기는 한 프로그램이 다수의 task 들을 병렬적으로 실행해야 하는 경우가 발생하기 때문이다. thread 가 없다면, 각 task 에 대해 각각을 수행하는 process 들을 일일히 생성해야 하는데, fork() 는 expe...
process scheduling 은 한정된 CPU 의 자원을 여러 개의 process 에게 분배하는 방법이다. 프로세서의 갯수는 한정적이기 때문에, 언제 어느 프로세스를 실행할 지 정하는 것이다. scheduling 이 일어나는 기준을 scheduling criteria, 이를 실행하는 방법을 scheduling algorithm 이라고 한다. sched...
여러 개의 프로세스가 공통된 데이터에 접근할 때, 서로 간의 동기화가 없다면 문제가 생길 수 있다. too much milk problem 으로 불리는 예시다. 두 사람이 서로 다른 시점에서 우유가 없는 것을 확인하고, 우유를 사러 떠난다. 서로 간의 소통이 없다면, 필요했던 양보다 과도하게 우유를 사게 된다. Process Synchronization ...
Monitors 이전 글에서 semaphore 를 이용한 synchronization 기법에 대해 살펴봤다. 이 기법은 wait(), signal() 이라는 다소 생소한 함수를 사용하고, 코딩이 복잡하다는 단점이 있다. semaphore 의 미숙한 사용은 deadlock 으로 이어질 수 있다. 이러한 이유로, semaphore 보다 직관적이고, 사용하기 쉬...
The Deadlock Problem 코드 상으로 해결이 불가능한, indefinite blocking 을 deadlock 이라고 한다. Bridge Crossing Example 다리를 건너는 자동차를 프로세스, 다리의 특정 구역을 자원이라고 하자. P1 은 R1 을 소유하고 R2 를 요청한다. P2 는 R2 를 소유하고 R1 을 요청한다. semap...
Overview virtual address space 를 이용하면 프로세스의 실제 address space 가 physical memory size 를 초과해 사용할 수 있다. virtual address 를 실제 주소로 변환하는 과정을 address translation 이라고 한다. address translation 은 mapping table 을...
virtual memory 공간의 관리에 대해 다룬다. Demand Paging page 가 프로세스 수행에 필요해 access 돼야 하는 시점에 메모리 에 load 하는 것이다. demand 가 없으면 page 가 메모리에 load 되지 않는다. => 일부 page 는 memory 에 없을 수 있다. demand paging 을 사용하는 pager 를 l...