Process는 실행중인 프로그램을 의미한다. 그렇기에, Process를 알기 위해서는 프로그램이 무엇인지 이해를 해야한다. 프로그램의 사전적 의미는 실행가능한 명령어의 집합을 의미하는 정적인 개념이다. 즉, 프로그램은 executable binary file 일수도
process에 대해 공부하다 보면 아래와 같은 그림이 많이 보인다. 이를 Process의 Memory Layout이라고 하는데, 각각의 영역을 한번 알아보자.Memory Layout of ProcessProcess의 Memory Layout은 크게 2가지로 나뉠 수
PCB(Process Control Block) PCB는 OS가 Process를 제어하기 위한 자료구조이다. PCB는 Context Switching을 위해 필요하다고 한다. 그러면 여기서, 4가지 궁금증이 생긴다. > Context Switching은 무엇이며, 왜
수많은 Process/Thread 가 있고, 이를 수행할 CPU core/thread는 한정되어 있기 때문에, 우리는 Process/Thread를 어떻게 처리를 할지 Scheduling을 해야한다.이러한 프로세스는 여러 State의 상태에 들어가게 될테고, 이에따라 다
Interrupt Interrupt 이전에 Polling Polling는 대상을 주기적으로 감시하여 상황이 발생하면 해당처리 루틴을 실행해 처리한다. 사용자가 명령어를 사용해 pin의 값을 계속 읽어나가 변화를 알아내는 방식으로 overhead가 생기게 된다. 이러한
서론 이전에 Process Scheduling(Long-term, Medium-term, Short-term Scheduling)에 대해 간단히 살펴보았다. 현대의 컴퓨터는 시분할 시스템을 활용을 하여 Long-term Scheduling의 필요성이 사라져 더 이상 사
서론 Synchronous 순차적이고 직렬적으로 task를 수행 구현이 쉬움 data 요청이 끝날 때 까지 기다림 Asymchronous 병렬적으로 task를 수행, 그 작업이 끝나는 것을 기다리지 않고 다른 작업을 시작한다.
데드락, 경쟁상태
Semaphore Semaphore
1. 서론 이전 글에서 가상 메모리의 발달로 Long-term Scheduler, Medium-term Scheduler가 더이상 쓰이지 않는다고 했었다.
서론
1. 서론 앞에서 다룬 Paging의 기법으로는 Virtual Memory를 같은 크기로 분할하여 Internal Fragmentation을 극복하지 못하였다. Segmentation은 같은 크기로 분할을 하였기에 문제가 생기므로, Virtual Memory를 다른 크
Processor의 발달로 속도가 빨라지면서, Main Memory에 접근하는 시간도 병목현상으로 작용하기 시작하였다. 이러한 병목현상을 줄이기 위해 CPU 안에 Memory를 추가적으로 만든 것이 Cache 이다.Processor는 자주 사용하는 데이터를 Cache에
Unix 운영체제에서는 모든 것을 file 이라고 한다. Process가 실행될 때 file을 열게 되면 fd값을 받고, 이를 통해서 해당 file에 접근하게 된다. 이러한 fd는 unsigned 값을 갖고, list를 통해서 관리가 된다. 흔히 사용하는 fd의 값은