1. 인터럽트의 정의

 

프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황을 우선 처리한 후 실행 중이던 작업으로 복귀하여 계속 처리하는 것이다. 일명 "끼어들기"라고도 한다.
- 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU의 하드웨어에서의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생한다.

 

 

2. 인터럽트의 종류 및 발생원인

 

외부 인터럽트
- 전원 이상 인터럽트 (Power Fail Interrupt) : 정전이 되거나 전원 이상이 있는 경우이다.
- 기계 착오 인터럽트 (Machine Check Interrupt) : CPU의 기능적인 오류동작이 발생한 경우이다.
- 외부 신호 인터럽트 (External Interrupt): 타이머에 의해 규정된 시간(Time Slice)을 알리는 경우, 키보드로 인터럽트 키를 누른 경우, 외부장치로부터 인터럽트 요청이 있는 경우이다.
- 입/출력 인터럽트 (Input-Output Interrupt) : 입/출력 Data의 오류나 이상 현상이 발생한 경우, 입/출력장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우이다.

 

내부 인터럽트
- 잘못된 명령이나 데이터를 사용할 때 발생하며, 트랩 (Trap)이라고도 부른다.
- 명령어 잘못에 의한 인터럽트 : 프로그램에서 명령어를 잘못 사용한 경우이다.
- 프로그램 인터럽트 (Program Interrupt) : 0으로 나누거나, Over flow 또는 Underflow가 발생한 경우이다.


소프트웨어 인터럽트
- 프로그램 처리 중 명령의 요청에 의해 발생하는 것으로, 가장 대표적인 형태는 감시 프로그램을 호출하는 SVC(SuperVisor Call) 인터럽트가 있다.
- SVC (Supervisor Call) 인터럽트 : 사용자가 SVC 명령을 써서 의도적으로 호출한 경우이다.

 

3. 인터럽트 발생시 CPU가 확인할 사항

-프로그램 카운터의 내용
-사용한 모든 레지스터의 내용
-상태 조건의 내용(PSW)

 

4. 인터럽트의 동작원리
① 인터럽트 요청 신호 발생
② 프로그램 실행을 중단함 : 현재 실행 중이던 명령어(Micro Instruction)는 끝까지 실행한다.
③ 현재의 프로그램 상태를 보존함 : 프로그램 상태는 다음에 실행할 명령의 번지로서 PC가 가지고 있다.
④ 인터럽트 처리 루틴을 실행함 : 인터럽트를 요청한 장치를 식별한다.
⑤ 인터럽트 서비스 루틴을 실행함 : 실질적인 인터럽트를 처리한다.
⑥ 상태복구: 인터럽트 요청신호가 발생했을 때 보관한 PC의 값을 다시 PC에 저장한다.
⑦ 중단된 프로그램 실행 재개 : PC의 값을 이용하여 인터럽트 발생 이전에 수행 중이던 프로그램을 계속 실행한다.

 

5. 인터럽트 우선순위
- 목적 : 여러 장치에서 동시에 인터럽트가 발생하였을 때 먼저 서비스할 장치를 결정하기 위해서이다.
- 우선 순위(높음>낮음) : 전원 이상(Power Fail) > 기계착오(MachineCheck) > 외부신호(External) > 입출력(I/O) > 명령어 잘못 > 프로그램(Program Check) > SVC(Supervisor Call)

 

6. 인터럽트 우선순위 판별 방법

 

소프트웨어적인 인터럽트 우선순위 판별방법 : Polling
- Interrupt 발생시 가장 높은 우선순위의 인터럽트 자원(Source)부터 차례로 검사해서, 우선순위가 가장 높은 Interrupt 자원(Source)를 찾아내어 이에 해당하는 인터럽트 서비스 루틴을 수행하는 방식이다.
․ 소프트웨어적인 방식을 폴링이라고 한다.
․ 많은 인터럽트가 있을 때 그들을 모두 조사하는 데 많은 시간이 걸려 반응시간이 느리다는 단점이 있다.
․ 회로가 간단하고 융통성이 있으며 별도의 하드웨어가 필요 없으므로 경제적이다.

 

하드웨어적인 인터럽트 우선순위 판별방법

  • CPU와 Interrupt를 요청할 수 있는 장치 사이에 장치 번호에 해당하는 버스를 병렬이나 직렬로 연결하여 요청장치의
    번호를 CPU에 알리는 방식이다.
  •  장치 판별 과정이 간단해서 응답속도가 빠르다.
  •  회로가 복잡하고 융통성이 없으며, 추가적인 하드웨어가 필요하므로 비경제적이다.
  •  직렬(Serial) 우선순위 부여방식 : 데이지 체인(Daisy-Chain)

- 인터럽트가 발생하는 모든 장치를 1개의 회선에 직렬로 연결한다.
- 우선순위가 높은 장치를 선두에 위치시키고 나머지를 우선순위에 따라 차례로 연결한다.
- 직렬 우선순위 부여방식을 데이지 체인 방식이라고 한다.

  • 병렬(Parallel) 우선순위 부여방식
    - 인터럽트가 발생하는 각 장치를 개별적인 회선으로 연결한다.
    - 각 장치의 인터럽트 요청에 따라 각 Bit가 개별적으로 Set될 수 있는 Mask Register를 사용한다.
    - 우선순위는 Mask Register의 Bit위치에 의해서 결정된다.
    - 우선순위가 높은 Interrupt는 낮은 Interrupt가 처리되는 중에도 우선 처리된다.

 

7. 기억장치의 특성을 결정하는 요소

 

- 기억용량 :기억장치는 무조건 기억용량이 큰 것을 사용한다고 해서 좋은 것이 아니라, 사용목적에 따라 성능당 경비 비율이 적은것을 사용하는 것이 바람직하다.
- Access Time : 기억장치에 읽기요청이 발생한 시간부터 요구한 정보를 꺼내서 사용 가능할 때까지의 시간이다. 한 Word단위의 정보를 읽거나 기록하는데 걸리는 시간이고  공식은  Access time = Seek Time + Latency Time(또는 SerachTime) + Transmission Time 이다.

- Cycle Time : 기억장치에 읽기신호를 보낸 후 다시 읽기 신호를 보낼 수 있을 때까지의 시간 간격이다. Cycle Time ≥ Access Time

- Bandwidth(대역폭, 전송률) : 메모리로부터 또는 메모리까지 1초 동안 전송되는 최대한의 정보량으로 기억장치의 자료처리 속도를 나타내는 단위이고 메모리 워드의 길이가 작을수록 대역폭이 좋다.

 

8.기억장치의 구분

 

내용의 보존 여부 
- 파괴성 메모리(Destructive Memory) : 판독 후 저장된 내용이 파괴되는 메모리로, 파괴된 내용을 재생시키기 위한 재저장 시간(Restoration Time)이 필요함 (예)자기 코어
- 비파괴성 메모리 : 판독 후에도 저장된 내용이 그대로 유지됨 (예) 자기코어를 제외한 모든 기억장치이다.

 

전원단절시 내용 소멸 여부
- 휘발성 메모리(Volatile Memory) : 전원이 단절되면 모든 정보가 지워지는 메모리 (예) RAM
- 비휘발성 메모리 : 전원이 단절되더라도 기억된 정보가 보존되는 메모리 (예) ROM, 자기코어, 보조기억장치

 

재충전 (Ref resh) 여부
- 정적메모리(SRAM) : 전원이 공급되는 한 기억된 내용이 계속 유지되는 메모리이다.
- 동적메모리(DRAM) : 전원이 공급되어도 일정시간이 지나면 내용이 지워지므로 재충전을 해야 하는 메모리이다.

접근 방식
- 직접접근방식(SASD, Sequential Access Storage Device) :자료가 저장된 위치에 접근할 때, 처음부터 순서대로 접근하여 원하는 위치를 검색하는 메모리 (예) 자기테이프
- 직접접근방식(DASD, Direct Access Storage Device) : 순서를 거치지 않고 자료가 저장된 위치를 직접 접근할 수 있는 메모리 (예)자기 테이프를 제외한 모든 기억장치

 

9. ROM(Read Only Memory)
- 기억된 내용을 읽을 수만 있는 기억장치로서 일반적으로 쓰기는 불가능하다.
- 전원이 꺼져도 기억된 내용이 지워지지 않는 비휘발성 메모리이다.
- 실제로 ROM은 주기억장치로 사용하기 보다는 주로 기본 입.출력시스템(BIOS), 자가 진단 프로그램(POST) 같은 변경가능성이 희박한 시스템 소프트웨어를 기억시키는데 이용한다.

 

ROM의 종류와 특징

 

Mask ROM
제조공장에서 프로그램화하여 생산한 ROM으로, 사용자가 내용을 변경시킬 수 없다.


PROM(Programmable ROM)
PROM 프로그램장치라는 특수장치를 이용하여 비어있는 ROM에 사용자가 한번만 내용을 기입할 수 있으며, 이후엔 읽기만 가능하다.


EPROM(Erasable PROM)
- 자외선을 쏘여서 기입한 내용을 지울 수도 있고, PROM프로그램장치로 기입할 수도 있다.
- 사용자가 여러 번 반복해서 지우거나 기입할 수 있다.

EAROM (Erasable Alterable ROM)
전기적 특성을 이용하여 기록된 정보의 일부를 바꿀 수 있는 ROM이다.


EEPROM(Electronic EPROM)
전기적인 방법을 이용하여 기록된 내용을 여러 번 수정하거나 새로운 내용을 기록할 수 있는 ROM이다.

 

9. RAM(Random Access Memory)
- 자유롭게 읽고 쓸 수 있는 기억장치로, RWM(Read Write Memory)라고도 한다.
- RAM에는 현재 사용 중인 프로그램이나 데이터가 저장되어 있다.
- 전원이 꺼지면 기억된 내용이 모두 사라지는 휘발성 메모리이다.
- 일반적으로 ‘주기억장치’ 또는 메모리라고 하면 램을 의미한다.
- 정보가 저장된 위치는 주소로 구분한다.
- SRAM/DRAM의 특징 : 동적 램(DRAM)은 구성소자가 콘덴서이고, 전원공급이 되어도 일정시간이 지나면 전하가 방전되므로 주기적인 재충전(refresh)가 필요하다. 그리고 전력소모가 적으며 접근속도가 느리고, 밀도가 높고 가격이 저렴하다. DRAM은 일반적인 주기억장치로 사용된다. 정적 램(SRAM)은 플립플롭으로 구성되며 전원이 공급되는 동안에는 기억내용이 유지된다. 전력소모가 많으며 접근 속도가 빠르며 밀도가 낮고 가격이 비싸다. SRAM은 캐시메모리로 사용된다.

 

10.자기코어
- 전류 일치 기술(coincident-current technique)에 의하여 기억장소를 선별한다.
- 데이터를 읽으면 읽은 내용이 지워지는 파괴메모리(destructive memory) 이므로 내용을 읽은 후 지워진 내용을 기록하기 위한 재저장(restoration time)시간이 필요하다.
- 자기 코어는 중심을 통과하는 전선에 흐르는 전류의 방향에 따라 1혹은 0의 값을 갖는다.
- 자기 코어는 부피에 비해 용량이 작고 가격이 비싸 현재는 거의 사용하지 않는다.
- 자기코어에는 4개의 선이 있다.
- 구동선(X, Y) 2개 : 번지 선택선
- 센스선 1개 : 자기코어의 상태 검출한다.
- 금지선 1개 : 불필요하게 자화되었을 때 -1/2 금지 전류를 흘려 자화를 소거시키는 선이다.

 

11. 보조기억장치
자기 테이프
- 순차처리(SASD)만 할 수 있는 대용량 저장매체이다.
- 가격이 저렴하고 용량이 커서 자료의 백업용으로 많이 사용한다.
- 자성 물질이 코팅된 얇은 플라스틱 테이프를 동그란 릴에감아 놓은 형태이다
- 테이프의 시작과 끝부분을 알리는 은박지 사이의 정보 저장부분을 7~9 트랙으로 구성한다.


자기디스크(Magnetic Disk)
- 자성 물질을 입힌 금속 원판을 여러 장 겹쳐서 만든 기억매체로 용량이 크고 접근 속도가 빠르다.
- 순차, 비순차(직접) 처리가 모두 가능한 DASD(Direct Access Storage Device) 방식으로 데이터를 처리한다.
- 트랙(Track) : 디스크 표면에서 회전축(스핀들 모터)을 중심으로 데이터가 기록되는 동심원
- 섹터(Sector) : Track들을 일정한 크기로 구분한 부분이며, 정보 기록의 기본 단위이다.
- 실린더(Cylinder) : 서로 다른 면들에 있는 동일 위치의 Track들의 모임으로 실린더의 수는 한 면의 트랙 수와 동일하다.

 

자기드럼(Magnetic Drum)
- 원통 표면에 Track과 Sector를 구성하고, 각 Track마다 고정된 R/W Head를 두고 있어 자기디스크에 비해 속도가 빠르다.
- 순차, 비순차(직접) 처리가 모두 가능한 DASD(Direct Access Storage Device) 방식으로 데이터를 처리한다.
- 크기에 비해 용량이 적어 현재는 거의 사용하지 않는다.

 

12. 특수 기억장치

 

연관기억장치(Associative Memory)
- 기억장치에서 자료를 찾을 때 주소에 의해 접근하지 않고, 기억된 내용의 일부를 이용하여 Access할 수 있는 기억장치로 CAM(Content Addressable Memory)이라고도 한다.
- 주소에 의해서만 접근이 가능한 기억장치보다 정보검색이 신속하다.
- 캐시메모리나 가상메모리관리 기법에서 사용하는 Mapping Table에 사용된다.
- 외부의 인자와 내용을 비교하기 위한 병렬 판독 논리회로를 갖고 있기 때문에 하드웨어 비용이 증가한다.

 

복수 모듈 기억장치(Memory Interleaving)
- 독자적으로 데이터를 저장할 수 있는 기억장치 모듈을 여러 개 가진 기억장치이다.
- 주기억장치와 CPU의 속도차의 문제점을 개선한다.

- 기억장치 버스를 시분할하여 사용한다.
- 기억장소의 접근을 보다 빠르게 한다.
- 복수 모듈 기억장치에 사용되는 각각의 기억장치는 자체의 어드레스 레지스터와 버퍼 레지스터를 가지고 독자적으로 데이터를 저장할 수 있다.
- 인터리빙 기법에 의해 기억장치를 구성하는 모듈 수만큼의 단어(Word)들에 동시 접근이 가능한다.

캐시메모리(CacheMemory)
- CPU의 속도와 메모리의 속도 차이를 줄이기 위해 사용하는 고속 Buffer Memory이다.
- 캐시는 주기억장치와 CPU 사이에 위치한다.
- 캐시 메모리는 메모리 계층 구조에서 가장 빠른 소자이며, 처리속도가 거의 CPU의 속도와 비슷할 정도이다.
- 캐시를 사용하면 기억장치의 접근(access) 시간이 줄어듦으로 컴퓨터의 처리속도가 향상된다.
- 캐시는 수십 Kbyte~수백 Kbyte의 용량을 사용한다.

가상기억장치(Virtual Memory)
- 기억용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용할 수 있도록 하는 운영체제의 메모리 운영 기법이다.
- 가상기억장치의 목적은 주기억장치의 용량 확보이다.
- 가상 기억장치는 하드웨어적으로 실제로 존재하는 것이 아니고 소프트웨어적인 방법으로 보조기억 장치를 주 기억장치처럼 사용하는 것이다.
- 사용자 프로그램을 여러 개의 작은 블록으로 나누어서 보조기억장치 상에 보관해놓고 프로그램 실행시 필요한 부분들만 주기억장치에 적재한다.
- 주 기억장치의 이용률과 다중프로그래밍의 효율을 높일 수 있다.
- 가상기억장치 기법에서 사용하는 보조기억장치는 디스크 같은 DASD 장치이어야 한다.

 

 

+ Recent posts