프로그램과 프로세스
- 프로그램(작업) : 실행할 프로그램 + 데이터로 컴퓨터 시스템에 실행 요청 전의 상태
- 프로세스 : 실행을 위해 시스템(커널)에 등록된 프로그램(작업)
자원
- 커널의 관리 하에 프로세스에게 할당/반납되는 수동적 개체
PCB(Process Control Block)
- OS가 프로세스 관리를 위한 정보를 저장한 블록
- 관리하는 정보 : PID, 스케줄링 정보, 프로세스 상태, 메모리 관리 정보, 입출력 상태 정보 등
프로세스 상태
- Admitted State : 작업을 커널에 등록, PCB 할당 및 프로세스 생성
- New -> Ready : 메모리 할당 받는 상황
- Ready State : 프로세서 외에 다른 모든 자원을 할당 받은 상태, 프로세서 할당 대기, 즉시 실행 가능
- Ready -> Running : 프로세서를 할당 받는 상황
- Running State : 프로세서와 필요한 자원을 모두 할당 받은 상태
- Running -> Ready : 프로세서를 뺏기는 상황
- Running -> Waiting : I/O 또는 자원 할당을 기다리는 상황
- Waiting State : 프로세서 외에 다른 자원을 기다리는 상태
- Waiting - > Ready : 자원을 얻고 다음 프로세서를 기다리는 상황
- Terminated State : 프로세서 수행이 끝난 상태, 모든 자원을 반납했지만 커널 내에 일부 PCB 정보만 남은 상태
Interrupt
- 예상치 못한 event, 외부에서 발생한 event
- 종류 : I/O interrupt, Clock interrupt, Console interrupt, etc
Interrupt 처리 과정
① Interrupt 발생
② Kernel이 프로세스1을 중단하고 프로세스1이 하던 내용을 PCB1에 저장 (문맥 저장)
③ Interrupt 원인 파악
④ 원인을 해결할 수 있는 프로그램을 투여 (서비스)
⑤ 원인이 해결되었으니 Ready 상태에 있는 프로세스를 가져온다. 프로세스1이 들어올 수 있지만, Ready Queue에 상황에 따라 프로세스2가 들어올 수 있다.
문맥 교환(Context Switching)
- Context : 프로세스와 관련된 정보들의 집합
- Context Saving : 현재 프로세스의 Register Context를 저장하는 작업
- Context Restoring : Register Context를 프로세서로 복구하는 작업
- Context Switching : Saving과 Restoring으로 프로세스를 바꾸는 일. P1을 저장하고 P2를 복구
Context Switch Overhead
- 빈번하게 일어나는 현상
- 해결 : 불필요한 Context Switching을 줄이기 위해서 Thread를 사용하기도 한다.
본 내용은 한국기술교육대학교 김덕수 교수님의 유튜브 강의를 듣고 정리한 내용입니다.
'Software Courses > Operating System' 카테고리의 다른 글
Process Synchronization and Mutual Exclusion (0) | 2020.12.02 |
---|---|
Process Scheduling (0) | 2020.12.01 |
Thread 관리 (0) | 2020.11.30 |
OS Overview 2 (0) | 2020.11.29 |
OS Overview 1 (0) | 2020.11.29 |