• Interrupt / Exception : 예외적인 상황
    • Interrupt : 
      • 외부적인 이벤트, 현재 CPU에서 실행되는 프로세스와 상관 없음
      • keyboard interrupt, Direct Memory Access 완료를 CPU에게 알리는 상황
      • asynchronous(언제 발생할지 모름), external events
      • 인테럽트가 발생하면 현재 프로세스의 상태를 저장, 인테럽트 핸들러 실행 복구
      • 프로세서의 인테럽트 핀이 설정됨
        • #INT
        • #NMI (Non-maskable interrupt) : 우선순위가 #INT 보다 높음 (interrupt disable도 무시)
      • examples
        • I/O interrupt
          • 키보드 ctrl + c 입력, 키보드 입력
          • 네트워크 패킷 수신
          • DMA(Direct Memory Accessing) 완료
        • Hard reset interrupt : reset 버튼 누르기
        • Soft reset interrupt : ctrl + alt + delete
      • 정리
        • 1. 명령어 실행
        • 2. interrupt 핀 확인
        • 3. system bus의 interrupt vector 확인
        • 4. interrupt vector code 실행 (control transfer)
        • 5. handler returns to next instruction

 

    • Exception : 특정 실행중인 프로세스의 CPU 핸들링할 없는 특정 명령어가 발생한 상황(e.g. pagefault) 
      • synchronous(항상 같은 위치에서 동일 조건에서 발생), internal events
      • 종류
        • Traps
          • 의도적인 상황 (명령어 실행을 마치고 의도적으로 멈추는 상황)
          • 명령어 실행을 마치자 마자 발생하게 하는
          • ex) debugging, breakpoints, system calls
        • Faults
          • 의도적이지 않은 상황
          • 현재 특정 명령어의 실행을 마치지 못함, 명령어 실행이 중단됨
          • NaN, divide by zero 
          • Recover 가능할 경우 해당 명령어를 다시 실행
        • Aborts
          • 심각한 하드웨어 에러
          • 현재 프로세스를 종료 또는 전체 시스템이 종료될 있음
          • MCA(Machine Check Abort), Parity error

'Study > OS' 카테고리의 다른 글

4. 쓰레드  (0) 2020.02.28
2. 프로세스  (0) 2020.02.28
1. 운영체제  (0) 2020.02.28

+ Recent posts