Chapter3 프로세스 관리
1. 프로세스의 개념
1.1 작업(Job)
- 실행 할 프로그램 + 데이터
- 시스템에 실행 요청 전의 상태
1.2 프로세스(Process)
- 실행을 위해 시스템(커널)에 등록된 작업
- 각종 자원들을 요청하고 할당 받을 수 있는 개체
- 프로세스 관리 블록(PCB)을 할당 받은 개체
- 능동적인 객체
- 종류
- 역할
- 시스템(커널) 프로세스 : 시스템 메모리와 프로세서의 명령에 액세스
- 사용자 프로세스 : 사용자 코드를 수행
- 병행 수행 방법
- 독립 프로세스
- 협력 프로세스
- 역할
1.3 자원(Resource)
- 커널의 관리 하에 프로레스에게 할당/반납 되는 수동적 개체
- 분류
- H/W resources : Processer, memory, disk, Etc.
- S/W resources : files, installed Sws, Etc.
2. PCB(프로세스 관리 블록)
- 커널 공간에 존재
- OS가 프로세스 관리에 필요한 정보 저장
- 프로세스 생성 시, 생성 됨
- 관리하는 정보
- PID(Process Identification Number) : 프로세스 고유 식별 번호
- 스케줄링 정보
- 프로세스 상태
- 메모리 관리 정보
- 입출력 상태 정보
- Context save area
- 계정 정보
- PCB 정보는 OS별로 서로 다르며, PCB 참조 및 갱신 속도는 OS의 성능을 결정하는 중요한 요소
3. 프로세스 상태 변화
- 프로세스와 자원 간의 상호작용에 의해 결정
3.1 Created State
- 작업을 커널에 등록
- PCB 할당 및 프로세스 생성
- 메모리 할당 유무에 따라 다음 상태로 이동
- 메모리O →
Ready State
- 메모리X →
Suspended Ready State
- 메모리O →
3.2 Ready State
- 프로세서 외에 다른 모든 자원을 할당 받았기 때문에 프로세서만 할당 되면 즉시 실행 가능
- 프로세서가 할당 →
Running State
로 이동(dispatch / schedule 과정)
3.3 Running State
- 프로세서와 자원들을 모두 할당 받음
- 프로세서 스케줄링에 따라 변화 →
Ready State
로 이동(preemption 과정) - I/O 등 자원 할당 요청 →
Asleep State
로 이동(sleep / block 과정)
3.4 Blocked/Asleep State
- 프로세서 외에 다른 자원을 기다리는 상태
- 자원 할당은 System Call에 의해서 이루어짐
- 자원이 할당 됨 →
Ready State
로 이동(wakeup 과정)- 바로
Running State
로 이동 X
- 바로
3.5 Suspended State
- 메모리를 할당 받지 못한(빼앗긴) 상태
- Memory image를 swap device(memory)에 보관 하여 프로세스를 이어서 실행 가능하게 함
- 커널 혹은 사용자에 의해 발생
3.6 Terminated/Zombie State
- 프로세스 수행이 끝난 상태
- 모든 자원 반납 후 커널 내에 일부 PCB 정보만 남아 있음 → 프로세스 관리를 위해 정보 수집 → 종료
4. 인터럽트
- 예상치 못한, 외부에서 발생한 이벤트(Unexpected, external events)
-
- Pi(프로세스1)를 실행하는 도중 interrupt 발생
- Context saving 동작
- 커널에서 Interrupt handling을 통해 인터럽트 발생 장소, 원인 파악
- Interrupt service 실행(일종의 process)
- Pi(프로세스1)이나 Pj(새로운 프로세스)를 실행(Context restoring)
5. Context switching
- Context
- 프로세스와 관련된 정보들의 집합
- CPU register context는 CPU에 존재
- Code & data, Stack, PCB 는 memory에 존재
- 프로세스와 관련된 정보들의 집합
- Context saving
- 현재 프로세스의 Register Context를 저장하는 작업 → memory에 저장
- Context restoring
- Register Context를 프로세스로 복구
- Context switching = Process switching
- 실행 중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복원 하는 일
- 커널이 개입
'CS > [OS]' 카테고리의 다른 글
Chapter6 프로세스 동기화 & 상호배제 (0) | 2021.12.16 |
---|---|
Chapter5 프로세스 스케줄링 (0) | 2021.12.14 |
Chapter4. 스레드(Thread) (0) | 2021.12.09 |
Chapter2 운영체제 개요 (0) | 2021.12.02 |
Chapter1 컴퓨터 시스템 개요 (0) | 2021.11.30 |