작업(Job)/ 프로그램
- 실행 할 프로그램+ 데이터
- 디스크에 보관 상태
프로세스
- 실행 중인 프로그램
- 커널에 등록되고 커널의 관리 하에 있는 작업
- 프로세스 관리(PCB)를 할당 받은 개체
- 능독적인 개체. 실행 중, 자원을 요구, 할당, 반납하여 진행
Process Control Block(PCB)
- 커널 공간(kernel space) 내에 존재
- 각 프로세스의 정보를 관리
자원(Resource)
- 커널의 관리 아래에 프로세스에 할당/반납 되는 수동적 개체(passive entity)
- 할당/반납은? 커널
프로세스의 상태
-프로세스와 자원의 상호작용에 의해 결정
1. created state
- 프로세스= 작업을 커널에 등록
- PCB 할당, 프로세스 생성
- 상태 전이: ready or suspended ready
- 상태 전이 조건: 가용 메모리 공간
- 가용 메모리 있니? ready, 가용 메모리 없니? suspended ready
2. ready state
- 프로세서(CPU)를 대기 상태= 프로세서 할당 받으면 실행 가능한 상태
- 즉시 실행 가능한 상태
- dispatch(schedule): CPU를 할당 받음. ready-> running
- preemption: CPU 반납
3. running state
- 실제 작업 실행. 프로세서와 필요한 자원을 모두 할당 받은 상태
4. asleep state
- 프로세서 외 다른 자원 할당 요청 상태(ex) I/O). 자원에 따라 각각 관리
- 바로 running 상태로 갈 수 있을까? No. alseep 상태 동안 다른 프로세스의 running을 고려해야 한다.
- 그래서 asleep 상태가 끝나면 ready 상태로 간다(=wakeup)
5. suspended state
- 메모리를 할당 받지 못한(빼앗긴) 상태
- asleep(blocked)상태에서 메모리도 빼앗김= suspended blocked
5.1 suspended blocked
- 메모리도 빼앗기면 진행 중이었던 작업 정보는 어디에 보관을 할까?
- memory image 찍어서 swap-deivce에 저장
-swap-device: 작업 정보 저장을 위한 파일 시스템. HW. 하던 일을 저장
-swap-out(= suspended) : swap-device에 이미지 저장
-swap-in(= resume): swap-device에 이미지 정보로 메모리 할당 받아서 작업 복구
6. terminated/zombie state
- 프로세스 수행이 끝난 상태
- 모든 자원을 반납. But 커널 내 일부 PCB 정보만 남아 있는 상태
- 커널이 PCB 정보를 수집한다. 수집이 완료되면 소멸한다.
- PCB 수집 이유: 프로세스 관리 효율.
어떤 자원을 주로 요청하는지? 일은 얼마나 해야하는지? 다음에 비슷한 작업 수행 시, 수집한 정보를 통해 관리 효율을 높일 수 있다.
'OS' 카테고리의 다른 글
CPU, Main Memory(Primary Memory), Disk(Secondary Memory) (0) | 2022.02.02 |
---|---|
[OS] Lecture 3. OS Process Management (2/2) (0) | 2022.01.31 |
[OS] Lecture 2. OS Overview (2/2) (0) | 2022.01.26 |
[OS] Lecture 2. OS Overview (1/2) (0) | 2022.01.26 |
운영체제_6 (0) | 2021.07.15 |