posted by changhozz 2015. 4. 10. 16:40

-인터럽트란?

작동 중인 컴퓨터에 예기치 않은 문제가 발생한 경우 CPU(중앙처리장치:central processing unit) 자체가 하드웨어적으로 상태를 체크하여 변화에 대응하는 것을 말한다. 인터럽트가 발생하면 그 순간 운영체계 내의 제어프로그램에 있는 인터럽트 처리 루틴(routine)이 작동하여 응급사태를 해결하고 인터럽트가 생기기 이전의 상태로 복귀시킨다. 인터럽트 처리 루틴이 작동하지 않는다면, 인터럽트가 완료 될 때 까지 사용자 프로그램은 멈춰있어야 한다.

 

간단한 인터럽트 처리 순서.

1. 장치 제어기나 다른 시스템 하드웨어가 인터럽트를 발생시킴

2. 인터럽트가 발생 되었다고 처리기에 시그널을 보냄.

3. 처리기는 우선 시그널을 무시하고 현재 명령어의 실행을 완료.

4. 하던일을 마친 후 인터럽트에게 확인 신호를 보냄

5. 처리기가 PSW(Program Status Word)와  PC를 제어 스택에 저장함.

6. 처리기는 인터럽트에 해당하는 새로운 PC값을 적재함.

이때 소프트웨어에서는 원래 수행중이던 프로세스의 나머지 상태 정보를 저장.

7. 인터럽트 처리

8. 프로세스의 상태 정보를 복구

9. 이전 PSW와 PC를 복구.

 

인터럽트 처리 방법

1.순차적 인터럽트 처리

-하나의 인터럽트가 처리중에는 다른 인터럽트를 불능화 (우선순위 고려하지 않음.)

2.중첩 인터럽트 처리방법

- 인터럽트 간의 우선순위를 정하고 높은 우선순위 인터럽트가 낮은 우선순위 인터럽트를 인터럽트할 수 있도록 허용

 

 

 

 

 

 

1장 용어.

*레지스터 - CPU에 들어 있는 소규모 데이터 기억장치(누산기도 여기에 포함.)

 

*누산기 - CPU에서 더하기,빼기,곱하기,나누기 등의 연산을 한 결과 등을 일시적으로 저장하는

              레지스터.
*PSW - 명령의 실행순서를 제어하여 실행되고 있는 프로그램에 관계하는 시스템의 상태를 유지하는데 사용되는 레지스터를 말한다

*PC - Program Counter로 다음 번에 수행될 명령어의 주소를 가지고 있는 레지스터.
범용 레지스터 - 중앙 처리 장치(CPU) 내에 있는 레지스터들 중에는 특정 기능을 맡고 있는 레지스터들과 계산 결과의 임시 저장, 산술 및 논리 연산, 주소 색인 등의 여러 가지 목적으로 사용될 수 있는 범용 레지스터가 있다.


*다중 프로그래밍
- 처리기는 실행 가능한 하나 이상의 프로그램을 보유하고 프로그램들이 수행 순서를 바꿔가면서

처리되는 개념을 말함
- 프로그램이 실행되는 순서는 프로그램의 상대적인 우선 순위와 입출력 대기 여부에 따라 달라짐
- 인터럽트 처리 루틴이 실행을 마치면, 인터럽트가 발생한 당시에 수행 중이던 프로그램으로 제어가

돌아가지 않을 수 있음  그 대신 보다 높은 우선순위를 가지고 대기 중인 다른 프로그램으로 제어가 전달


*캐시 메모리 -
주기억 장치에 읽어들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억 장치.
주기억 장치와 중앙 처리 장치(central processing unit)와의 사이에 설치되어 있는 고속 버퍼메모리다.
캐시 메모리(cache memory) 또는 로컬 메모리(local memory)라고도 한다.
기억 용량(memory capacity)은 적지만 주기억 장치에 비해 고속이며 액세스할 수 있는 장점이 있다.
따라서 중앙 처리 장치가 명령이 필요하게 되면, 맨 먼저 액세스하는 것은 주기억 장치가 아니라

캐시 메모리인 셈이다.  자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도

즉각 사용할 수 있도록 저장해두는 영역이다.

 

*참조지역성 - 프로세스들은 기억장치내의 정보를 균일하게 엑세스 하는것이 아니라 시공간적으로

참조를 많이 했었던 것을 또 참조 하는 경향이 있다.
공간(spatial) 지역성 : 특성 클러스터의 기억 장소들에 대해 참조가 집중적으로 이루어지는 경향
시간(temporal) 지역성 : 최근 사용되었던 기억 장소들이 집중적으로 액세스되는 경향