RealMenRoad
cs지식 컴퓨터 시스템의 동작 원리 -- 인터럽트의 일반적 기능. 본문
인터럽트의 일반적 기능.
프로그램이 요청한 데이터를 컨트롤러가 인터럽트를 발생시키면
CPU는 인터럽트가 들어온 것을 인지하고 하던일을 멈추고
인터럽트가 발생했을 때 수행하도록 정의된 코드를 찾아 수행한다.
이때 수행하는일은 디스크의 로컬버퍼에 있는 내용을 사용자 프로그그램에 전달하고
다음 수행할 명령을 표시함.
운영체제가 해야할 일 들을 개발자가 미리 프로그래밍해서 커널 내에 포함시켜두었다 .
그중 한가지가 인터럽트 처리루틴이다.
위에 말한 인터럽트가 들어왔을 때 CPU가 인지하고 인터럽트 관련업무를 수행하게끔 프로그래밍이 되어있다.
다양한 인터럽트에 대해 각각 처리해야될 업무들을 정의해놓음.
운영 체제는 할 일을 쉽게 찾아가기 위해 인터럽트 벡터(interrupt vector)를 가지고 있다.
인터럽트 벡터란 인터럽트 종류마다 번호를 정해서, 번호에 따라 처리해야 할 코드가 위치한 부분을 포인터로 가리키고 있는 자료구조를 말한다.
실제 처리해야 할 내용은 인터럽츠 서비스 루틴(interrupt service routine)이라는 다른 곳에 정의된다.
하드웨어 인터럽트와 소프트웨어 인터럽트 차이는
cpu 옆에 인터럽트 라인에 인터럽트 발생을 알리는 방식은 동일하지만
하드웨어 인터럽트는 해당 컨트롤러가 인터럽트 라인 세팅.,
소프트웨어 인터럽트는 운영체제가 그 일을 수행한다.
일반적인 인터럽트는 하드웨어 인터럽트라고 생각합니다.
소프트웨어 입터럽트는 예외상황과 시스템콜이 있습니다.
예외상황은 오류 , 권한 없는 처리를 시도할 때 이를 발생시키는 것을 말합니다.
시스템콜은
운영체제에서 제공하는 서비스는 다양합니다. 이러한 서비스를 사용하기 위해서는 사용자 프로그램이 운영체제의 서비스를 받기 위해 시스템 콜을 호출해야 합니다. 시스템 콜은 사용자 프로그램이 커널 함수를 호출하는 것으로, 사용자 프로그램이 커널에게 요청하여 커널이 해당 서비스를 수행합니다.
파일 시스템: 파일 생성, 읽기, 쓰기, 삭제 등의 파일 관리 서비스를 제공합니다.
프로세스 관리: 프로세스 생성, 제거, 스케줄링, 동기화 등의 프로세스 관리 서비스를 제공합니다.
입출력 관리: 입출력 장치의 제어와 관련된 서비스를 제공합니다.
메모리 관리: 메모리 할당, 해제, 보호 등의 메모리 관리 서비스를 제공합니다.
보안 관리: 시스템의 보안을 유지하기 위한 서비스를 제공합니다.
인터럽트를 발생시키는 주체는 사용자 프로그램이 아닙니다.
인터럽트는 하드웨어나 운영체제가 발생시키는 이벤트로, 예를 들어 하드웨어 장치의 오류, 타이머 인터럽트, 입출력 완료 인터럽트 등 다양한 이유로 발생할 수 있습니다. [1] 인터럽트는 운영체제에 의해 처리되며, 운영체제는 인터럽트 발생 시 현재 실행 중인 프로세스를 중단하고 인터럽트 처리 루틴을 실행합니다. [2]
사용자 프로그램은 인터럽트를 발생시키는 주체가 아니지만, 사용자 프로그램은 인터럽트를 처리하는 방법에 대해 알아야 합니다. 예를 들어, 입출력 작업을 수행하는 경우, 입출력 완료 인터럽트가 발생하면 해당 작업이 완료될 때까지 기다리는 대신, 인터럽트 처리 루틴에서 결과를 확인하고 다음 작업을 수행할 수 있도록 프로그래밍해야 합니다. [3]
따라서, 인터럽트를 발생시키는 주체는 하드웨어나 운영체제이며, 사용자 프로그램은 인터럽트를 처리하는 방법에 대해 알고 있어야 합니다.