[OS] 인터럽트 처리

귀찮Lee·2023년 4월 16일
0

Operating System

목록 보기
14/14

◎ 인터럽트

  • 폴링 : 입풀력을 요청하면 운영체제가 주기적으로 입출력 장치를 직접 확인하여 처리하는 방식
  • 인터업트 : 입출력을 요청하고 입출력이 완료되면 이벤트를 발생시켜 알림

◎ 동기적 인터럽트, 비동기적 인터럽트

  • 동기적 인터럽트

    • 프로세스가 실행중인 명령어로 인해 발생
    • 예시
      • 프로그램상의 문제 (다른 사용자의 메모리 영역 접근, 오버플로우나 언더플로우)
      • 컴퓨터 작업자가 의도적으로 프로세스 중단 ([Ctrl] + [C])
      • 입출력장치 같은 주변장치 조작에 의한 인터럽트
      • 산술 연산 중 발생하는 인터럽트 ( 0으로 나누기)
  • 비동기적 인터럽트

    • 하드웨어적인 오류로 발생함
    • 하드디스크 읽기 오류, 메모리 불량, 키보드 인터럽트, 마우스 인터럽트

◎ 인터업트 처리 과정

  1. 인터럽트가 발생하면 현재 실행 중인 프로세스는 일시 정시상태가 됨
    재시작하기 위해 현재 프로세스 관련 정보를 임시 저장
  2. 인터럽트 컨트롤러가 실행되어 인터럽트의 처리 순서를 결정
  3. 인터럽트 벡터에 등록된 인터럽트 핸들러가 실행
  4. 인터럽트 처리를 마치면 일시정지된 프로세스가 다시 실행되거나 종료함

◎ 인터럽트와 이중 모드

  • 커널 모드 : 운영체제와 관련된 커널 프로세스가 실행되는 상태
  • 사용자 모드 : 사용자 프로세스가 실행되는 상태
  • 이중 모드
    • 운영 체제가 커널 모드와 사용자 모드를 전환하며 일 처리를 하는 것
    • 궁극적인 목적은 자원 보호에 있음
  • 시스템 호출
    • 사용자 프로세스가 자원에 접근하려면 시스템 호출을 이용해야 함
    • 사용자 프로세스는 API가 준비해놓은 다양한 함수를 이용하여 시스템 자원에 접근

profile
장비를 정지합니다.

0개의 댓글