CS/OS

3. 프로세스 관리(2)

🥭맹2 2021. 5. 9. 21:09

프로세스 관리 

  1. 프로세스의 개념 -> (1)
  2. PCB(프로세스 관리 블록) -> (1)
  3. 프로세스 상태 변화 -> (1)
  4. 인터럽트 -> (2)
  5. 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) 인터럽트 처리 과정

  1. 인터럽트 발생
  2. 프로세스 중단
  3. 인터럽트 처리
    1. Interrupt handling
      1. 인터럽트 발생 장소, 원인 파악
        • 어디서 인터럽트가 발생했는지 확인, 왜인지 확인
      2. 인터럽트 서비스 할 것인지 결정
        • 결정하는 것
    2. Interrupt service
      1. 인터럽트 서비스 루틴 (interrupt service routine) 호출
        • 행동하는 것

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