728x90
⬛ Process
- 프로그램이 메모리를 할당받으면 프로세스가 된다. → 프로세스는 실행 중인 프로그램을 의미
⬛ Process Control Block(PCB)
- 프로세스가 생성되는 동시에 생성되며 각 프로세스들에 대한 정보를 저장하여 프로세스들을 관리하는 자료 구조
- 각 프로세스에 대한 PCB는 커널 공간에 존재한다.
- PCB가 관리하는 정보들
- PID(Process Identification Number) : 프로세스 고유 식별 번호
- 스케줄링 정보 : 프로세스 우선 순위 등
- 프로세스 상태 : 생성, 준비, 실행, 대기, 완료 상태
- 메모리 관리 정보 : 프로세스의 주소 공간 등
- 입출력 상태 정보 : 프로세스에 할당된 입출력 장치, 파일 등에 대한 정보 등
- 문맥 저장 영역(context save area) : 프로세스의 레지스터 상태를 저장하는 공간 등
- 계정 정보
⬛ 프로세스 상태
◼ Created State
- 사용자가 요청한 작업이 커널에 등록되고 프로세스와 PCB가 생성되는 단계
◼ Ready State
- 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
- 프로세스가 메모리에 적재되고 프로세서 외에 다른 모든 필요한 자원을 할당 받은 상태
- 프로세서를 할당받는다면 바로 실행이 가능한 상태
- 프로세서를 할당받으면 Running 상태로 전이된다. 이러한 경우를 Dispatch(Ready → Running)라고 한다.
◼ Running State
- 프로세서와 이외에 다른 모든 필요한 자원을 할당 받아 실행되는 상태
- 프로세스 수행이 완료되기 전에 프로세서 할당 시간이 끝나면(Time run-out) 프로세스는 Ready 상태로 전이된다. 이러한 경우를 Preemption(Running → Ready)이라고 한다.
- 실행중인 프로세스에 I/O등의 자원 할당이 필요할 때 자원을 기다리게 되는 Asleep 상태로 전이된다. 이러한 경우를 Block(Running → Asleep)이라고 한다.
◼ Asleep State
- I/O등의 자원을 할당받을 때까지 대기하고 있는 상태
- I/O등의 자원 요청이 완료되어 할당받으면 Ready상태로 전이된다. 이러한 경우를 Wakeup(Asleep → Ready)이라고 한다.
◼ Suspended ready State
- 프로세스가 메모리에 적재되지 못하고 프로세서 외에 다른 모든 필요한 자원을 할당 받은 상태
◼ Suspended block State
- 프로세스가 메모리에 적재되지 못하고 프로세서 외의 다른 자원들도 할당받지 못한 상태
◼ Terminate State
- 프로세스가 모든 자원을 반납하고 완전히 종료된 상태
⬛ 프로세스 상태 전이
◼ Dispatch(Schedule) : Ready → Running
- 프로세스가 프로세서를 할당받아 Ready 상태에서 Running 상태가 되는 것
◼ Time run-out(Preemption) : Running → Ready
- 프로세스가 프로세서를 빼앗겨 Running 상태에서 Ready 상태가 되는 것
◼ Block : Running → Asleep
- 프로세스가 I/O와 같은 자원을 빼앗겨 자원을 기다리는 상태
◼ Wakeup : Asleep → Ready
- 프로세스가 프로세서 외의 필요한 자원을 할당받아 Asleep 상태에서 Ready 상태가 되는 것
◼ Swap-out
- 메모리에 적재되었던 프로세스의 적재가 해제되어 지연 상태(Suspended)가 되는 것
◼ Swap-in
- 프로세스가 메모리에 적재되어 활동 상태(Active)가 되는 것
728x90
'공부의 기록 > Operating System' 카테고리의 다른 글
[운영 체제] Deadlock (0) | 2022.03.19 |
---|---|
[운영 체제] 프로세스와 관련된 System Call (0) | 2022.03.19 |
[운영 체제] 운영체제 개요 (0) | 2022.03.18 |
[운영 체제] 문맥 교환(Context Switching) (0) | 2022.03.17 |
[운영 체제] 메모리란? (0) | 2022.03.16 |