티스토리 뷰

인터럽트(Interrupt)

  • 예상치 못한, 외부에서 발생한 이벤트 (Unexpected, external events )
  • 인터럽트의 종류
  • I/O interrupt
    -> 마우스를 클릭, 키보드를 입력 등등
  • Clock interrupt
    -> CPU가 동작할 때 Clock발생 할 때 
  • Console interrupt
    -> 콘솔창에 입력할 때 발생
  • Program check interrupt
    -> 프로그램에 문제 발생 시 
  • Machine check interrupt
    -> 하드웨어에 문제 발생 시
  • Inter-process interrupt
    -> 다른 프로세스에 의한 인터럽트
  • System call interrupt

 

인터럽트 처리 과정

  1. 인터럽트 발생 시 커널이 프로세스를 중단
  2. 발생한 인터럽트를 처리
  3. 인터럽트 발생 장소 및 원인 파악 후 처리할지 결정
  4. 인터럽트 처리

인터럽트 발생 -> 프로세스 중단, Context saving : 현재 상태 (흐름) 저장 -> Interrupt handling -> Interrupt service(이것도 프로세스이다) -> 이 후 ready queue에 있는 작업 실행

 

Context Switching (문맥 교환)

Context

  • 프로세스와 관련된 정보들의 집합
  • CPU register context => in CPU (CPU안의 register에 저장된 정보)
  • Code & data, Stack, PCB => in memory

Context saving

  • 현재 프로세스의 Register context를 저장하는 작업
  • 메모리 안의 PCB에 저장

Context restoring

  • Register context를 프로세스로 복구하는 작업  

Context switching ≅ Process switching

  • 실행 중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구 하는 일
    즉, Context가 변하는 것
  • 커널의 개입으로 이루어짐

 

Context Switch Overhead

  • Context switching에 소요되는 비용
    • OS마다 다름
    • Context switching은 자주 발생하기 때문에 OS의 성능에 큰 영향을 줌
  • 불필요한 Context switching을 줄이는 것이 중요
    • 예, 스레드(thread) 사용 등

 

 

 

 

참조 강의

www.youtube.com/watch?v=MJTr37lgaMA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=6

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함