본문 바로가기
카테고리 없음

운영체제와 인터럽트

by winter_sunshine 2023. 7. 6.

 

안녕하세여~ 저번 시간에는 커널과 시스템 호출에 대하여 알아보는 시간을 가졌습니다!

다들 어떠신가여? 따라 오실만 한가여? 어려운 개념들이 계속 나오고 있어서 최대한 여러분이 이해할 수 있게 설명할 수 있도록 노력하겠습니다!! 오늘은 운영체제에서 빼놓을 수 없는 개념인 '인터럽트'에 대해 자세히 알아보는 시간을 가져보겠습니다~ ^ ▽ ^

 

1.  인터럽트 (Interrupt)

  • CPU가 현재 하던 일을 중단하고, 미리 정의된 다른 일을 하도록 처리하는 비동기적 방법
    1.  소프트웨어 인터럽트
      • CPU 명령어에 의해 하드웨어 인터럽트를 수신한 것 처럼 처리  ex)  '시스템 호출'
    2.  하드웨어 인터럽트
      • 각 장치가 어떤 비동기적 상황 발생을 CPU에게 알리는 신호
        • 인터럽트 발생  =>  CPU는 'ISR(Interrupt Service Routine)' 를 실행
        • 일반적으로 '인터럽트' 라고 하면, '하드웨어 인터럽트'를 지칭
  • 예시
    • 사용자의 입력 장치 조작, 디스크 처리 종료
    • 시스템 클럭으로부터 시간 만료 알림
    • USB 메모리 부착 혹은 해제

 

2.  인터럽트를 고려한 명령어 사이클

 

인터럽트를 고려한 명령어 사이클

 

3.  인터럽트 발생 및 처리 과정

 

인터럽트 발생 및 처리 과정

 

4.  인터럽트 서비스 루틴(ISR)과 운영체제

  • ISR(Interrupt Service Routine)
    • 인터럽트 핸들러
    • 디바이스 드라이버커널 코드, 임베디드 컴퓨터의 ROM 상에 위치

응용 프로그램과 운영체제의 동작 과정

 

5.  인터럽트는 다중 프로그래밍의 핵심

  • '인터럽트'는 다중 프로그래밍 환경에서 입출력 처리가 완료되었다는 것을 통보 받는 방법
    • CPU 폴링(Polling)에 비해 효율적
  • 인터럽트의 효과
    • 입출력 장치와 CPU가 동시에 각자의 작업 실행 가능
    • 컴퓨터 시스템의 효율적 동작  =>  CPU 이용률(활용률)시스템의 처리율 향상

 

 

 

 

지금까지 인터럽트에 대해 자세히 알아보는 시간을 가져봤습니다~!

'인터럽트' 개념은 CS에서 빼놓을 수 없는 중요한 개념이기 때문에 꼭 여러분들의 것으로 만드시길 바랍니다.

중간 중간에 '프로세스'라는 키워드를 언급한 적이 많았었는데, 다음 시간에는 '프로세스, 프로세스 테이블, PCB, 프로세스 주소공간'에 대해 알아보는 시간을 가질 예정입니다. 감사합니다. 좋은 하루 되세여!!