본문 바로가기

운영체제/프로세스(process)

운영체제 - 멀티 쓰레드(Multi-Thread) 운영체제 - 멀티 쓰레드(Multi-Thread) Reactive System은Iterative Server와 concurrent Server로 나뉜다.1. Iterative Server는 실행 흐름이 한개 이므로 1개의 작업을 처리하는 도중 요청된 다른 작업을 처리할 수 없다.2. concurrent Server는 여러개의 실행흐름을 가지므로 다른 작업을 처리하던 도중에도 요청된 다른 작업을 처리할 수 있다.그러나, concurrent Server는 여러개의 process를 관리해야 하므로 그로인한 오버헤드(overhead)가 매우 컸다.이 문제점을 해결하기 위해 concurrency는 높이면서 execution unit을 생성·소멸에 드는 비용을 줄이기 위해 multi-threading 개념이 도입되..
운영체제 - 프로세스(process)의 생성과 종료 운영체제 - 프로세스(process)의 생성과 종료 # 프로세스의 생성- 파일 시스템에 존재하는 .exe 파일을 실행.- 운영체제는 해당 .exe파일의 path정보를 획득함. 프로세스는 memory context로써 Code segment, Data Segment, Stack Segment, Heap Segment를 운영체제에 의해 할당받는다.또한, Stack영역에는 context-switching을 위한 fake stack이 생성된다.생성된 프로세스에 해당하는 PCB(Process Control Block)을 생성하고 Ready Queue에 push한다. 프로세스를 생성할땐 위 절차를 handcraft할 수 도 있지만 UNIX계열 운영체제에서는 초기 프로세스(pid : 0)을 제외한 프로세스들은 han..
운영체제 - Context-switching 운영체제 - Context-switching # Context switching?- 현재 수행 중인 프로세스의 state를 저장하고 다음에 수행될 프로세스의 state를 불러오는 작업 # process의 state?1. memory contest- code, RW data, stack, heap2. hardware context- CPU registers3. kernel context- PCB(process control block) Q. context-switching이 일어날 때 process의 state를 대피 시키는 이유가 무엇일까?- process의 state정보가 손실되지 않도록 보호하기 위함이다. 예를 들어 hardware context인 cpu registers값을 대피하지 않으면 cont..
운영체제 - 프로세스 스케쥴링(process scheduling) 운영체제 - 프로세스 스케쥴링(process scheduling) 프로세스 스케쥴링(process scheduling)이란?- 여러가지 프로세스가 CPU를 공평하게 공유하도록 하는 운영체제의 역할. Running 상태인 프로세스가 종료되거나 interrupt에 의해 Ready상태로 전이하거나 I/O operation을 호출하여 Waiting 상태로 전이하게되어 Ready Queue에 존재하는 process들에서 Running 상태로 전이시킬 한 개의 process를 선택하는 것. 프로세스 스케쥴링은 크게 1) Policy, 2) Mechanism 으로 나눌 수 있다.1. Policy : 다음에 수행될 프로세서를 선택하는 기준(=scheduling policy)2. Mechanism : CPU를 한 프로세..
운영체제 - 프로세스 상태 전이(Process State Transition), PCB(process control block) 운영체제 - 프로세스 상태 전이(Process State Transition), PCB(process control block) Process = Data Structure + Algorithm 으로 정의할 수 있다.운영체제는 process를 정의하고 그에 맞는 data structure와 algorithm을 구현해야 한다.process의 data structure를 구현한 것이 PCB(process control block)이다. 각각의 프로세스는 그에 맞는 PCB를 가지며PCB는 1) memory context, 2) hardware context, 3) kernel context를 갖는다. 운영체제가 multi-program을 지원하면 여러개의 PCB를 관리해야 한다. 이를 위해 array of P..
운영체제 - 프로세스(process)란? 운영체제 - 프로세스(process) -1 - 프로세스(process)는 운영체제(operating system)에서 프로그램(program)을 수행시키는 주체이다.- 또한, 운영체제의 복잡성을 해결하는 무기이다. 운영체제는 매우 복잡한 개념이기 때문에 1) abstraction, 2) decomposition을 통해 문제를 해결한다.* decomposition? 복잡한 문제를 단순한 여러개의 문제로 만드는 방법론- 운영체제라는 큰 개념의 부분을 프로세스(process)라고 정의하여 문제를 단순화시켰다. 프로세스(process)의 정의 program in execution. An execution stream in the context of a particular process state.* execut..