1. 프로세스란?
- kernel에 등록된 실행 단위
- 실행중인 프로그램
- PCB를 할당 받은 개체
2. PCB
1) PCB란?
프로세스 관리에 필요한 정보를 저장하는 곳
2) PCB가 관리하는 정보
- PID : 프로세스 고유 식별 번호
- 스케쥴링 정보
- 레지스터 정보
- 프로세스 상태 정보
- 메모리 관리 정보
- 입출력 상태 정보
- 문맥 저장 영역
- 계정 정보 : 자원 사용 시간 등
3. 프로세스의 상태
※ 자원(Resource) : kernel의 관리 하에 프로세스에게 할당 또는 반납 되는 개체
1) Created State
: 프로세스가 생성된 상태
전이 가능한 상태
- ready(메모리 할당 공간이 존재할 경우)
- suspended ready(메모리 할당 공간이 존재하지 않을 경우)
2) Ready State
: 자원은 준비 되었고 CPU가 할당 해주기만을 기다리고 있는 상태, 실행 가능 상태
전이 가능한 상태
- running(dispatch/schedule)
- suspended(swap-out)
3) Running State
: 프로세서와 자원을 모두 할당 받은 상태
전이 가능한 상태
- ready(preemption=선점) : 프로세서(CPU)를 뺏겼을 때
- asleep(block/sleep) : I/O 등 자원 할당 요청
- terminate(exit)
4) Asleep State
: 프로세서 외에 다른 자원을 기다리는 상태
전이 가능한 상태
- ready(wake-up)
- suspended(swap-out)
5) Suspended State
: 메모리 부족으로 일시 중단된 상태
전이 가능한 상태
- ready(swap-in)
- asleep(swap-in)
※ swap device : 메모리 상태 이미지를 보관하는 공간
6) Terminated State
: 프로세스 수행이 끝난 상태, 모든 자원 반납.
이후의 프로세스 관리를 위한 정보를 수집하기 위해 일부 PCB 정보는 남겨놓는데, 수집이 끝나면
프로세스는 삭제됨.
4. 인터럽트(Interrupt)
1) 인터럽트란?
프로세스가 예상하지 못한 외부에서 발생한 이벤트
인터럽트가 발생하면 프로세스가 잠시 중단외며 인터럽트가 먼저 처리된다.
진행중이었던 프로세스 정보(context)는 PCB에 저장되며, 인터럽트 서비스와 핸들링도 커널에서 제공한다.
2) Context Switching
Context Saving : 현재 프로세스의 Register context를 저장
Context Restoring : Register context를 프로세스로 복구
Context Switching : Context Saving + Context Restoring
Context Switching은 OS의 성능에 큰 영향을 주며, 불필요한 Context Switching을 최대한 줄이기 위해 스레드(thread)를 이용할 수 있음.
3) 인터럽트의 종류
- I/O interrupt
- Clock interrupt : 하드웨어적으로 일정 시간마다 발생하는 인터럽트
- Console interrupt
- Program check interrupt : 프로그램에 문제가 있을 경우 발생
- Machine check interrupt : 하드웨어에 문제가 있을 경우 발생
- Inter-process interrupt
- System call interrupt
이미지 출처 : 한빛 미디어 운영체제
참고 자료 : 김덕수 교수님 - www.youtube.com/playlist?list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN
'OS 개념 정리' 카테고리의 다른 글
[OS] 동기화(2) - OS Solutions (0) | 2021.05.28 |
---|---|
[OS] 동기화(1) - 동기화 기초, SW/HW Solutions (0) | 2021.05.24 |
[OS] Scheduling (0) | 2021.05.19 |
[OS] Thread (0) | 2021.05.13 |
[OS] 운영체제와 하드웨어 기본 (0) | 2021.05.07 |
댓글