-
[OS] - System call / PCBCS/면접준비 2022. 9. 29. 16:37
System call
fork()
- Process create시 생성되며, Parent Process가 Child Process를 생성한다.
exec()
- Process Create 이후에 사용 가능하며, Process를 실행할 수 있다.
wait()
- Child Process가 실행될 때 까지 대기하는 상태로 Parent는 동작이 불가하다.
Process Management
프로세스가 여러개일 때, CPU 스케줄링을 통해 관리하는 것을 말함
이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능함
프로세스들의 특징을 갖고있는 것이 바로 Process Metadata
- Process Metadata
- Process ID
- Process State
- Process Priority
- CPU Registers
- Owner
- CPU Usage
- Memeory Usage
PCB(Process Control Block)
process metadata를 저장해둔 곳으로 하나의 Process 정보가 들어있다.
- Program이 Process로 실행되는 경우 생성된다.
- Process는 PCB, Heap,Data,Stack,Code로 구성된다.
- Program 실행 -> Process Create(Fork) -> Process address space(heap,data,stack,code) create -> PCB 저장
PCB 필요성
- CPU는 Process state에 따라 교체 작업이 이루어진다.
- Interrupt 발생 -> Waiting -> 다른 Process Running 되기 때문에, 이 때 다시 수행할 Process 정보를 저장해야 한다.
PCB 관리
- Linked-list 형태로 관리한다.
- PCB list-head에 PCB들이 붙게 되며, 주소 값으로 연결 되어 있는 연결리스트로 삽입 삭제 용이
- Process 생성 시 PCB가 생성되며 완료 시 제거 된다.
Context-Swithcing
CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에 읽어 레지스터에 적재하는 과정
- 보통 인터럽트가 발생하거나, 실행 중인 CPU 사용 허가시간을 모두 소모하거나, 입출력을 위해 대기해야 하는 경우에 Context Switching이 발생
- 즉, 프로세스가 Ready → Running, Running → Ready, Running → Waiting처럼 상태 변경 시 발생
'CS > 면접준비' 카테고리의 다른 글
[OS] - CPU Scheduling (0) 2022.09.29 [OS] - IPC (0) 2022.09.29 [OS] - Interrupt (0) 2022.09.29 [OS] - Process vs Thread (1) 2022.09.29 [Database] - Join (1) 2022.09.21