프로세스 관리
- 프로세스의 개념 -> (1)
- PCB(프로세스 관리 블록) -> (1)
- 프로세스 상태 변화 -> (1)
- 인터럽트 -> (2)
- Context switching -> (2)
4. 인터럽트
예상치 못한, 외부에서 발생한 이벤트
1) 인터럽트의 종류
- I/O interrupt
- 키보드 or 마우스 사용으로 인한 인터럽트 (ex. 배그할 때 마우스 클릭한 경우)
- Clock interrupt
- CPU가 일을 할 때 clock발생할 때
- Console interrupt
- 콘솔 창에 입력할 때
- Program check interrupt
- 프로그램에 문제 발생할 때
- Machine check interrupt
- 하드웨어에 문제 발생할 때
- Inter-process interrupt
- 다른 프로세스에 의한 인터럽트
- System call interrupt
- system call에 의한 인터럽트
- 그럼 system call 은 무엇일까 ???
- 만약 CPU가 사용자 프로세스에 포함된 특권 명령을 실행하고자 한다면, 반드시 사용자 모드에서 커널 모드로 전환해야 한다. 프로세스가 특권 명령을 실행하기 위해 커널 모드로의 전환을 요청하는 인터페이스를 시스템 콜
- 출처: https://velog.io/@chowisely/Operating-Systems-Interrupt-System-Call
2) 인터럽트 처리 과정
- 인터럽트 발생
- 프로세스 중단
- 인터럽트 처리
- Interrupt handling
- 인터럽트 발생 장소, 원인 파악
- 어디서 인터럽트가 발생했는지 확인, 왜인지 확인
- 인터럽트 서비스 할 것인지 결정
- 결정하는 것
- 인터럽트 발생 장소, 원인 파악
- Interrupt service
- 인터럽트 서비스 루틴 (interrupt service routine) 호출
- 행동하는 것
- 인터럽트 서비스 루틴 (interrupt service routine) 호출
- Interrupt handling
5. Context Switching(문맥 교환)
1) Context란?
- 프로세스와 관련된 정보들의 집합
- CPU register context : CPU에 존재
- Code & data, Stack, PCB : 메모리에 존재
2) Context Switching이란?
Context saving + Context restoring
(1) Context saving
현재 프로세스의 Register context를 저장하는 작업 (메모리에 저장)
(2) Context restoring
Register context를 프로세스로 복구하는 작업
(3) Context Switching
context가 바뀌는 것
process가 바뀌어서 process switching이라고도 함
- 실행 중인 프로세스의 context를 저장하고(context saving), 앞으로 실행할 프로세스의 context를 복구(context restoring)하는 일
- 커널의 개입으로 이루어짐
3) Context Switch Overhead
컨텍스트 스위칭에 걸린 시간과 메모리 == context switching에 소요되는 비용
(1) Overhead(오버헤드)란?
- 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간, 메모리 등..
- ex. A라는 처리를 단순하게 실행했다면 10초 걸리는데, 안전성을 고려하고 부가적인 B라는 처리를 추가한 결과 처리시간이 15초 걸렸다면 오버헤드는 5초, 또한 이 처리 B를 개선하여 B라는 처리를 한 결과 처리 시간이 12초 걸렸다면 이 경우에는 오버헤드가 3초 단축되었다고 표현할 수 있음
(2) 특징
- OS마다 다르다
- context switching은 자주일어나기 때문에 OS의 성능에 큰 영향을 준다
- OS 성능에 큰 영향을 미치므로 불필요한 context switching을 줄이는 것이 중요하다
- (Ex. 스레드(thread) 사용 등 ..)
'CS > OS' 카테고리의 다른 글
5. 프로세스 스케줄링 (1) (0) | 2021.05.10 |
---|---|
4. 스레드 관리 (0) | 2021.05.09 |
3. 프로세스 관리(1) (0) | 2021.03.14 |
2. 운영체제 개요(3) - 운영체제의 구조, 기능 (0) | 2021.03.14 |
2. 운영체제 개요(2) - 운영체제의 구분 (0) | 2021.03.11 |