보글보글 개발일지
article thumbnail
Published 2023. 3. 8. 22:37
[OS] 인터럽트 코딩기록/CS
반응형

인터럽트란?

  • CPU가 프로그램 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외사항이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말함
  • 예외 발생 → CPU의 정상적인 동작 방해한 상태
  • 인터럽트 방식은 하드웨어 지원을 받아야 하는 제약이 있지만, 폴링에 비해 신속하게 대응하는 것이 가능
  • 실시간 대응이 필요할때 필수적 기능
  • 발생시기를 예측하기 힘든 경우에 컨트롤러가 가장 빠르게 대응할 수 있는 방법

인터럽트 수행 과정

  • process A를 실행하는 중 디스크에서 어떤 데이터를 읽어오라는 명령을 받았을 경우
  • process A는 system call 을 통해 인터럽트를 발생시킴
  • CPU 는 현재 진행 중인 기계어 코드를 완료함
  • 현재까지 수행중이었던 상태를 해당 Process의 PCB(Process Control Block)에 저장
  • 인터럽트 벡터를 읽고 ISR 주소값을 얻어 ISR(Interrupt Service Rountine)로 점프하여 루틴을 실행
  • 해당 코드를 실행한다
  • 해당 일을 다 처리하면, 대피시킨 레지스터를 복원한다
  • ISR의 끝에 IRET명령어에 의해 인터럽트가 해제된다.
  • IRET명령어가 실행되면 ,대피시킨 PC값을 복원하여 이전 실행 위치로 복원

컨트롤러가 입력받는 2가지 방법

폴링방식

사용자가 명령어를 입력하여 입력핀의 값을 계속 읽어 변화를 알아내는 방식

폴링 방식이 갖는 장점?

인터럽트방식이 폴링 방식에 비해 신속, 컨트롤러는 주기적으로 핀의 값을 읽지 않아도 되므로 원래 일에 집중 가능

폴링 방식이 입력을 받아드릴 때 느린 이유?

특정한 일을 할 시기를 알기 위해 계속 체크해야함.

→폴링을 하는 시간에 컨트롤러는 원래 하던 일에 집중 x

→인터럽트가 없으면 폴링작업이 주도되므로 컨트롤러는 많은 기능을 제대로 수행하지 못하게 됨

인터럽트 방식

MCU 자체가 하드웨어 적으로 그 변화를 체크하여 변화 시에만 일정한 동작

MCU: 마이크로컨트롤러 유닛. 마이크로프로세서와 입출력 모듈을 하나의 칩으로 만들어 정해진 기능 수행

인터럽트 우선순위

  • 일반적으로 하드웨어 인터럽트가 소프트웨어 인터럽트보다 우선 순위가 높음
  • 우선순위
    1. 전원 이상
    2. 기계착오
    3. 외부 신호
    4. 입출력
    5. 명령어 잘못
    6. 프로그램 검사
    7. SVC(SuperVisor Call)

인터럽트와 특권명령

  • 명령어의 종류
    • 일반 명령
      • 메모리에서 자료를 읽어오고, CPU에서 계산을 하는 등의 명령
      • 모든 프로그램이 수행할 수 있는 명령
    • 특권 명령
      • 보안이 필요한 명령으로 입출력 장치,타이머 등의 장치를 접근하는 명령
      • 특권 명령은 항상 운영체제만이 수행할 수 있음
반응형

'코딩기록 > CS' 카테고리의 다른 글

[OS] 단기, 중기, 장기 스케줄러  (0) 2023.03.09
[OS] 프로세스 메모리 구조  (0) 2023.03.09
[OS] 프로세스  (0) 2023.03.08
[OS] 시스템 콜  (0) 2023.03.08
[OS] 운영체제  (0) 2023.03.08
profile

보글보글 개발일지

@보글

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!