인터럽트는 프로세서의 정상적인 순차적 실행흐름을 중단시킨다. 컴퓨터에서 인터럽트는 외부 또는 내부적인 이벤트로 인해 CPU의 실행 흐름을 일시적으로 중단하고, 다른 작업을 수행하는 기능을 한다.
인터럽트는 CPU가 실행 중인 프로긂을 일시적으로 중단하고, 인터럽트 서비스 루틴이라는 특수한 프로그램을 실행하여 해당 이벤트를 처리한다. 예를 들어, 외부에서 들어오는 인터럽트는 키보드 입력, 마우스 클릭, 네트워크 패킷 수신 등의이벤트로 인해 발생할 수도 있다. 내부적으로 발생하는 인터럽트는 잘못된 메모리 참조,디비전 오류 등의 이벤트로 인해 발생할 수 있다.
인터럽트는 PCU의 정상적인 실행흐름을 방해하고, 중요한 작업을 수행할 수 있도록 하느 중요한 기능으로 인터럽트 발생시 CPU는 현재 실행중인 작업을 저장하고 인터럽트 처리를 위한 작업을 수행한다. 인터럽트 서비스 루틴이 완료된면, CPU는 이전의 작업을 다시 재개하고 실행을 계속한다.
크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 분류된다.
1. 하드웨어 인터럽트
하드웨어 인터럽트는 외부에서 발생하는 이벤트로 인해 발생한다. 주로 입출력 장치나 타이머 등의 하드웨어가 발생시키며, CPU에게 해당 이벤트가 발생했음을 알리는 신호를 보낸다. 대표적인 하드웨어 인터럽트로는 입출력 인터럽트, 타이머 인터럽트, 예외 인터럽트가 있다.
Timer 인터럽트
하드웨어 인터럽트의 한 종류로, 시스템 내부의 타이머가 만료되어 발생하는 인터럽트 이다.
타이머 인터럽트는 운영체제가 프로그램을 실행하는 동안 일정한 시간 간격으로 발생하며, 이를 이용해 운영체제는 다양한 작업을 수행한다. 예를 들어, 운영체제는 타이머 인터럽트를 이용해 스케줄링, 프로세스 전환, 입출력 처리 등을 수행한다.
타이머 인터럽트가 발생하면 CPU는 현재 실행중인 작업을 중단하고, 타이머 인터럽트를 처리하는 루틴을 실행한다. 이 루틴은 운영체제 내부에서 구현되며 , 필요한 작업을 수행한 후 , 이전의 작업을 다시 재개하고 실행을 계속한다.
타이머 인터럽트는 일반적으로 운영체제가 타이머를 설정하고, 인터럽트를 처리하기 위한루틴을 등록하는 방식으로 구현된다. 이 떄, 타이머 인터럽트의 주기는 운영체제가 지정하는 값에 따라 결정되며, 주기가 짧을 수록 더 자주 발생한다.
I/O 인터럽트
하드웨어 인터럽트의 한 종류로, 입추력 장치에서 데이터 전송이 완료되거나 오류가 발생했을때 발생하는 인터럽트이다.
입출력 인터럽트는 운영체제가 입출력 작업을 수행하는 동안 발생하며, 이를 이용해 운영체제는 입출력 작업을 비동기적으로 처리할 수 있다. 예를 들어, 운영체제는 파일을 읽거나 쓸 때, 데이터 전송이 완료될때까지 기다리지 않고 다른 작업을 수행할 수 있다.
입출력 인터럽트가 발생하면 CPU는 현재 실행중인 작업을 중단하고, 해당 인터럽트를 처리하는 루틴을 실행한다. 이 루틴은 입출력 작업이 완료될때까지 대기하거나 , 오류 발생시 조치를 취한다. 처리가 완료되면 CPU는 이전의 작업을 다시 재개하고 실행을 계속한다.
하드웨어 장애 인터럽트(Hardware Failure Interrupt)
하드웨어 장치에서 오류가 발생하며 처리할 수 없는 상황이 되었을 때 발생하는 인터럽트이다.
하드웨어 장애 인터럽트는 주로 시스템 또는 하드웨어에서 발생하는 묹로 인해 발생된다. 이러한 문제는 예측할 수 없고, 시스템이 정상적으로 작동하지 않는 상황을 초래할 수 있다.
하드웨어 장애 인터럽트 발생시, 시스템은 해당 장치를 사용할 수 없게 된다. 이떄 운영체제는 장애를 처리하고, 문제를 해결하기 위해 적절한 조치를 취해야한다. 예를 들어, 장애가 발생한 하드웨어를 교체하거나, 장애가 있는 부분을 수정할 수 있다.
하드웨어장애 인터럽트는 예측할 수 없는 상황으로 인핸 발생하기 때문에, 운영체제에서는 이를 처리하기 위한 루틴을 사전에 구현하고, 대처바안을 마련해야 한다. 이를 통해 시스템이 장애 발생시에도 안정적으로 작동할 수 있도록 할 수 있다.
2. 소프트웨어 인터럽트
소프트웨어 인터럽트는 프로그램 내부에서 명령어에 의해 발생하는 이벤트로 인해 발생한다. 소프트웨어 인터럽트는 시스템 콜(System Call)이나 예외 상황 등에서 발생 할 수 있다. 예를 들어 시스템 콜은 운영체제의 기능을 호출하는데 , 이떄 CPU는 해당 기능을 실행하기 위해 소프트웨어 인터럽트를 발생시킨다.
프로그램 인터럽트
소프트웨어 인터럽트의 한 종류로, CPU가 현재 실행 중인 프로그램 내부에서 명령어에 의해 발생하는 인터럽트이다.
주로 시스템 콜이나 예외상황에서 발생한다. 시스템 콜은 운영체제의 기능을 호출하는데, 이 때 CPU는 해당 기능을 실행하기 위해 인터럽트를 발생시킨다. 예외 상황은 잘못된 명령어 실행, 메모리 오류 등의 상황에서 발생할 수 있다.
프로그램 인터럽트가 발생하면 CPU는 현재 실행 중인 프로그램을 일시적으로 중단하고, 해당 인터럽트를 처리하는 루틴을 실행한다. 인터럽트 루틴이 실행되면서, 시스템콜이나 예외 상황에 대한 처리가 이루어지며, 처리가 완료 되면 cpu는 이전의 작업을 다시 재개하고 실행을 계속한다.
입출력 인터럽트는 대부분 하드웨어에서 자동으로 처리되지만, 운영체제에서는 이를 처리하기 위한 루틴을 제공해야 합니다. 이 때, 운영체제는 입출력 장치와의 통신을 담당하는 드라이버(Driver)를 이용해 입출력 작업을 수행하고, 인터럽트를 처리합니다
3. 외부 인터럽트와 내부 인터럽트
인터럽트는 발생한 위치에 따라 외부 인터럽트와 내부 인터럽트로 구분된다. 외부 인터럽트는 주로 하드웨어나 다른 장치로부터 발생하는 인터럽트를 의미한다. 내부 인터럽트는 주로 프로그램 내부에서 발생하는 인터럽트르 의미한다. 대표적인 내부 인터럽트로는 예외상황(잘못된 명령어 실행, 메모리 오류 등)이나 피지컬트랩 등이 있다.
인터럽트를 사용할 경우, 입출력 연산이 진행되는 동안 처리기는 다른 명령어를 수행할 수 있다.
하드웨어
1. 장치 제어기나 다른 시스템 하드웨어가 인터럽트를 발생시킴
2. 처리기가 현재 명령어의 실행을 완료
3. 처리기가 인터럽트 확인 신호를 보냄
4. 처리기가 PSW와 PC를 제어 스택에 저장함
5. 처리기는 인터럽트에 해당하는 새로운 PC값을 적재함
psw란 "Program Status Word"의 약자로 CPU의 상태를 나타내는 레지스터이다.프로세서의 현재 상태를 나타내는 플래그와 함께, 현재 실행 중인 명령어의 실행 결과, 오류 및 예외 처리 상태, 인터럽트 처리 상태 등의 정보를 포함한다.
소프트웨어
6. 프로세서의 나머지 상태 정보를 저장
7. 인터럽트 처리
8. 프로세스의 상태 정보를 복구
9. 이전 PSW와 PC를 복구
(암만봐도 다중 인터럽트 같은데..왜 중첩이라 번역했을까..)
인터럽트가 처리되는 동안 하나 이상의 인터럽트가 발생하는 것이 Multiple Interrups이다.
처리방법
1. 하나의 인터럽트를 처리하는 동안 다른 인터럽트를 금지시키는 것
2. 인터럽트간의 우선순위를 정하고 높은 우선순위 인터럽트가 낮은 우선순위 이너럽트를 인터럽트할 수 있도록 허용하는 것
메모리 관련 세가지 주요 특성
용량, 접근 속도 그리고 비용
접근 시간이 짧을 수록 비트당 비용이 높아짐
용량이 클수록 비트당 비용이 낮아짐
용량이 클수록 접근 시간이 길어짐
위와 같은 구조의 경우 아래 쪽으로 내려 갈 수록 다음이 성립한다.
ㄱ. 비트당 비용 감소
ㄴ. 용량 증가
ㄷ. 접근시간 증가
ㄹ. 처리기에 의한 메모리 접근 속도 감소 <일반적으로 항상 성립>
Performace of a simple Tow-Level Memory
Hit Rtatio
캐시 적중률이라고도 하는 적중률로 요청된 항목이 캐시에서 발견된 횟수의 비율을 결정하여 캐싱 시스템의 성능을 측정하는 데 사용되는 메트릭이다.
캐시 히트 횟수를 총 요청 횟수로 나누어 계산합니다.
적중률이 높으면 캐싱 시스템이 효과적이며 캐시에서 많은 요청을 처리할 수 있어 응답 시간이 빨라지고 백엔드 시스템의 부하가 줄어든다는 것을 의미합니다.
<처리기가 두 단계의 메모리에 접근할 수 있다는 가정>
T1: 단계 1에 접근하는 시간
T2: 단계 2에 접근하는 시간
위 그림과 같이, 단계 1에 접근비율이 높아질수록 평균 총 접근시간은 단계 2보다 단계 1의 접근시간에 훨씬 가까워진다.
Two-level Memory를 사용한 전락이 ㄱ~ㄹ조건이 성립할 떄만 원칙적으로 효과를 발휘
Locality of reference(참조 지역성)
ㄹ이 항상 성립하는 근거로 참조 지역성의 원리이다.
프로그램이 수행되는 동안,프로세서의 메모리 참조가 인근 지역으로 몰리는 경향이 있다. 하위 단계에 대한 접근 비율이 바로 윗 단계보다 낮아지도 하기 위해 데이터가 구성된다.
위 원리는 레지스터,캐시, 주기억장치와 같은 메모리들은 보통 휘발성 이며 반도체 기술을 이용한 것들이다. 세 단계를 사용한 것은 반도체 메모리를 속도와 가격에 따라 다양한형태로 만들 수 있다는 사실을 기반으로 한것이다.
보조기억장치
비휘발성 외부 메모리로는 보조기억장치(secondary memory or auxiliary memory)라고도 불린다.
특징
외부에 있고, 비휘발성이며, 프로그램과 데이터 파일을 저장하기 위해 사용된다.