2. 프로세스
in CS on OS
프로세스?
- 실행중인 프로그램의 한 인스턴스
- 프로그램은 디스크에 저장된 실행 파일, 이게 실행이 되면 프로세스
- Provides two key abstractions
- Logical Control Flow
- Private Address Space
- Life & Scope
- Life : 변수가 메모리에 있으면 살아있는 것
- Scope : access가 가능한 영역
- Context Switching
- Context?
- PC, General Purpose Register, Floating Pointer Register, Status Registers, and Various kernel data structures (page table, file table)
- 이걸 PCB라고 함, 그 중에서 register block을 context라고 함
- Switching?
- 현재 실행하는 프로세스의 Context를 저장하고, 다음에 실행할 프로세스의 state를 복구
- 어떤 프로세스를 실행할지? - Scheduler 또는 Dispatcher
- PCB (Process Control Block)
- Process Identifier
- Process State Information
- User-Visible Registers
- General Purpose Register라고도 함
- ex) Integer register
- Control and Status Registers
- Program counter
- Condition codes : 산술연산의 결과 (sign, zero, carry, equal, overflow)
- Status information : (interrupt enable/disable flag, execution mode)
- Stack Pointers
- Process Control Information
- Scheduling and State information : 스케줄링과 관련된 정보를 보관
- process state
- priority
- scheduling-related information
- event
- Data structuring
- Interproces communication (signal)
- Process privileges
- Memory management
- Resource ownership and utilization
- PSW (Program Status Word)
- 프로세스의 실행 상태(status)를 관리하는 레지스터
- 현재 실행중인 프로세스의 condition code와 상태 정보를 저장함
- ex) x86의 EEFLAGS 레지스터
- Process Creation and Termination
- Process spawning
- OS가 새로운 프로세스를 만듬
- 새로운 프로세스는 부모 프로세스에서 만들어짐(fork)
- Process termination
- EXIT 시스템콜 호출로 스스로 종료 가능
- 과거 batch 시스템에서는 HALT라는 명령어 사용
- 프로세스가 할당되지 않은 영역을 참조하거나, 메모리 초과, 오버플로우, 언더플로우, 부모 프로세스가 죽을 때 같이 종료될 수 있음
- Suspended processes
- Swapping
- 메모리 상의 모든 프로세스가 IO를 기다릴 수 있음
- 이런 상황에서 메모리 상의 일부 프로세스를 디스크로 옮기고, 디스크 상의 다른 프로세스를 메모리로 가져옴
- Suspended Process