-
Process Concept전공 지식/OS 2018. 8. 9. 20:34
Process : 실행되고 있는 프로그램, 메모리에 올라와있는 Program
∴ Process != Program
Process in memory
data & text = Program 에 존재
Process is more than program code
Stack + Heap + PCB => Processor register
PCB (Process Control Block) - 구조체 타입 // 프로세스에 대한 모든 정보를 담고 있음
- Process state
- Process counter ==> 컨텍스트 스위치, System Call을 호출했을 때, 레지스터를 저장하는 곳
- CPU regusters ( Stack Pointer) ==> ""
Process scheduling
- Process scheduling queue (Job queue, Ready queue, Device queue)
( 프로세스는 다양한 큐를 이동함)
- I/O-bound process => 높은 우선순위를 가짐
- CPU-bound process => CPU를 너무 많이 사용하기 때문에 우선순위가 낮음
Context Switch
- CPU가 다른 프로세스로 교체할 때,
Old Process의 상태를 저장 (PCB에 저장)
& 새로운 프로세스의 상태를 로드해야함
Process creation - FORK
Process termination - EXIT
fork system call
- fork 함수를 호출한 process => parent process
- 생성된 process => child process
Resource sharing - Parent / Children 은 파일을 공유함
Execution - PCB가 별도로 있음, 별도로 실행됨
Address space - 주소 공간은 나눠져있지만 중복으로 있음
Call once, return twice - Parent 와 Child는 각각 리턴값을 가짐
RETURN VALUE
pid < 0 : error
pid == 0 : Child Process
pid > 0 : Parent Process
Producer-consumer Problem
- 여러개의 프로세스를 어떻게 동기화 시킬 것 인가에 대한 문제
한정 버퍼 문제라고 한다.
Producer Consumer
2. Producing a data 1. Spin lock - waiting
3. Consuming data
'전공 지식 > OS' 카테고리의 다른 글
Deadlocks (0) 2018.08.16 Process synchronization (0) 2018.08.09 Process scheduling (0) 2018.08.09 Multithreaded Programming (0) 2018.08.09 System structure (0) 2018.08.09 댓글