[운영체제] O/S chapter3 정리
Updated:
chapter 3
시험 대비 겸 퀴즈 대비 챕터 정리를 해보도록 하겠다. chapter 3은 프로세스를 관리하는 방법에 대해 배운다.
- 프로세스 state
- New : 프로세스가 Ready로 올라가기 직전 상태
- Ready : 프로세스가 메모리에 올라와 실행 될 준비가 되어있는 상태
- Blocked : I/O 작업을 수행하기 위해 프로세스가 멈춰있는 상태
- Exit : 프로세스가 종료 된 상태
- Ready / Suspend : I/O 작업이 끝났지만 메모리에 올라가지 못하고 여전히 HDD에 있는 상태
- Blocked / Suspend : 메모리에 올라와 있는 모든 프로세스가 Blocked 상태여서 새로운 프로세스를 받기 위해 HDD의 swapped area 로 옮겨진 상태
- Suspension이 일어나는 경우
-
스와핑 : 메모리에 올라와 있는 프로세스들이 전부 I/O 작업으로 인해 Blocked 상태인 경우 새로운 프로세스와 스왑한다.
Blocked → Blocked / Suspend
-
다른 O/S의 문제 : 실행 중인 프로세스에서 문제가 발생하거나 백그라운드 프로세스를 HDD로 옮긴다.
Running → Ready / Suspend
-
부모 프로세스의 요구 : 부모 프로세스가 자식 프로세스를 관리 하기 위해 HDD로 옮긴다.
Ready → Ready / Suspend
-
타이밍 : 일정한 주기 마다 실행 되는 프로세스인 경우 다음 주기가 올 때 까지 HDD로 옮긴다.
Running → Ready / Suspend
-
대화식 사용자의 요구 : 대표적으로 디버깅 하는 경우 프로세스를 HDD로 옮겨 멈춘다.
Running → Ready / Suspend
- Process Image
-
Process Control Block (P.C.B)
PCB 안에는 Process ID, Processor State Information (PSI), Process Control Information (PCI)를 가지고 있다.
-
Program code
-
Data
이 공간에는 전역변수, static 변수를 저장한다.
-
Stack
이 공간에는 지역변수를 저장한다.
- Process Switching
- Interrupt : 여러가지 원인으로 인해 Interrput가 발생한 경우
- Trap : 프로그램에 오류가 발생한 경우
- System Call : O/S가 제공하는 서비스를 이용하기 위해 호출하는 경우
- O/S가 실행되는 세 가지 방식
- Non-Process Kernel : 프로세스 외부에서 O/S를 실행하는 방식
- O/S Execution within process : O/S를 프로세스 안에서 실행하는 방식
- Process-Based Operation System : O/S를 프로세스의 집합으로 구현하는 방식
- O/S Execution within process 방식의 프로세스 이미지의 차이
일반 프로세스 이미지는 P.C.B, program code, data, stack으로 이루어져 있지만 위 방식을 사용하는 프로세스의 프로세스 이미지는 P.C.B, program code, data, user stack, kernel stack, shared address space로 이루어져 있다. 가장 큰 차이점으로는 O/S를 실행하는데 필요한 Kernel Stack이 생긴 것 이다.
Leave a comment