Download presentation
Presentation is loading. Please wait.
1
1 컴퓨터 시스템 소개
2
학습목표 내용 컴퓨터의 기본 시스템을 이해한다. 컴퓨터 프로그램의 기본 단위인 명령어의 구성과 실행주기를 이해한다.
인터럽트의 개념과 처리 과정을 이해한다. 메모리의 역할과 계층 구조를 이해한다. 내용 컴퓨터 시스템 구성요소 컴퓨터 시스템의 동작
3
1. 컴퓨터 시스템 구성요소 컴퓨터 시스템 하드웨어(Hardware)와 소프트웨어(Software)로 구성.
- 데이터를 처리하는 물리적인 기계 장치. - 프로세서(중앙처리장치), 버스, 메모리 등 다양한 주변장치로 구성됨. 소프트웨어(Software) : 특별한 작업 지시를 위해 명령어로 작성한 프로그램. 운영체제 - 컴퓨터 하드웨어와 사용자 사이에 위치하며 하드웨어와 소프트웨어 자원을 관리하는 프로그램. [그림1-1] 컴퓨터 하드웨어의 구성요소
4
1. 컴퓨터 시스템 구성요소 프로세서(Processor)
운영체제와 가장 밀접한 하드웨어로 각 부분의 동작 제어 및 연산 수행. 중앙처리장치(CPU: Central Processing Unit)라 하며 레지스터, 산술 논리 연산장치, 제 어장치 등으로 구성. 마이크로프로세서(Microprocessor) 주기억장치를 제외한 레지스터, 산술 논리 연산장치, 제어장치를 칩 하나로 구성. 개인용 컴퓨터(PC: Personal Computer)에서 주로 이용. [그림1-2] 프로세서 구성요소
5
1. 컴퓨터 시스템 구성요소 버스(Bus) 프로세서를 포함한 각 장치 간 또는 서브시스템을 서로 연결하여 정보(데이터)를 주고받을 수 있게 해주는 통로. 컴퓨터 내부 각 요소의 다양한 신호(예: 데이터 입출력 신호, 프로세서 상태신호, 인터럽트 요구와 허가 신호, Clock 신호 등)는 공동 통신 채널, 즉 버스를 통해 전달된다. 버스의 위치에 따라 내부 버스와 외부 버스로 분류. 내부 버스 - 프로세서 내부에서 레지스터, 연산장치, 메모리와의 인터페이스 등을 연결. - 시스템 버스 인터페이스 회로를 통해 외부 버스와 연결. 외부 버스 - 프로세서와 메모리, 프로세서와 입출력장치, 입출력장치와 입출력장치를 연결. - 시스템 버스라 부르며 각 시스템 버스는 버스 제어기라 불리는 제어 회로를 가짐. 1. 메모리 버스 : 프로세서와 메모리 또는 캐시 메모리를 연결하여 데이터 교환하며, 프로세스 입출력 버스 정도의 속도로 실행, Backside Bus와 Frontside Bus로 구분. - Backside Bus : 프로세서와 캐시 메모리간의 전용 채널로 프로세서와 동일한 속도로 데이터 전송. - Frontside Bus : 프로세서와 메모리 간의 데이터를 전송하며 속도가 느림. 2. 주변 버스 : 입출력 버스, 프로세서와 주변 장치를 연결하여 데이터 전송.
6
1. 컴퓨터 시스템 구성요소 버스(Bus) 버스의 기능에 따라 데이터 버스, 주소 버스, 제어 버스로 분류. 데이터 버스
- 컴퓨터 시스템에서 데이터(자료), 명령어 등의 정보를 교환하는 전송로. - 프로세서에서 메모리나 입출력 장치로 데이터 출력 또는 반대로 데이터를 입력 받을 때 사용하는 양방향 버스. - 데이터 버스 신호선의 수가 해당 프로세서의 워드 길이와 같으므로 프로세서 성능을 결정. 주소 버스 - 하나의 시스템 장치에서 다른 장치로 주소 정보를 전송하기 위해 사용. - 신호(주소)선의 수에 따라 최대 사용 가능한 메모리 용량이나 입출력장치 수를 결정. 제어 버스 - 프로세서가 저장장치와 입출력장치에 데이터를 전송할 때, 현재 수행중인 작업 종류나 상태를 다른 장치에 알릴 때 이용하는 단방향 버스. [그림1-3] 기능에 따른 버스 분류
7
1. 컴퓨터 시스템 구성요소 레지스터(Register)
프로세서에 위치한 고속 메모리로 프로세서가 바로 사용할 수 있는 데이터 저장. 특수한 값 하나를 저장하는 기억 공간으로 사용. 컴퓨터의 구조에 따라 크기 및 종류가 다양함. 용도에 따라 전용 레지스터와 범용 레지스터, 저장되는 정보의 종류에 따라 데이터 레지스터, 주소 레지스터, 상태 레지스터로 나뉨. 사용자가 저장한 정보의 변경 여부에 따라 사용자 가시 레지스터(User-Visible Register)와 사용자 불가시 레지스터(User-Invisible Register)로 분류됨. 사용자 가시 레지스터(User-Visible Register) : 운영체제(시스템)와 사용자 프로그램을 통해 접근 가능한 데이터와 주소, 일부 조건 코드를 보관. - 조건 코드 예 : 관련된 연산 결과로 발생하며, 프로그램적으로 접근하는 제로(0), 자리넘침, 자리올림, 양수 (Positive) 비트 등. 데이터 레지스터 - 함수 연산에 필요한 데이터 저장. - 수치, 문자 등을 저장하므로 산술이나 논리 연산에 이용되며, 연산 결과로 플래그 값을 저장.
8
1. 컴퓨터 시스템 구성요소 레지스터(Register) 주소 레지스터
- 주소나 유효 주소를 계산하는 데 필요한 주소의 일부분을 저장. - 주소 레지스터에 저장된 값(수치 데이터)을 이용해 산술 연산 가능. [표1-1] 주소 레지스터의 종류
9
1. 컴퓨터 시스템 구성요소 레지스터(Register) 사용자 불가시 레지스터(User-Invisible Register)
: 프로세스의 제어와 상태 관리. - 프로그램 카운터, 명령어 레지스터, 프로그램 상태 레지스터, 메모리 주소 레지스터, 메모리 버퍼 레지스터 등이 속함. 프로그램 카운터(PC: Program Counter) - 프로그램 수행을 제어하는 명령어 실행 순서를 보관. 즉, 다음에 실행할 명령어의 주소 저장. - 계수기로 되어 있어 실행할 명령어를 메모리에서 읽으면 프로그램 카운터가 증가한다. 명령어 레지스터(IR: Instruction Register) - 현재 수행하는 명령어를 저장, 명령어의 연산자 부분만 보관하여 다른 레지스터만큼 비트를 가질 필요는 없다. - 명령어 연산자는 메모리 내에서만 전달되므로, 메모리 버퍼 레지스터와 명령어 레지스터 사이에 직접 정보 전달 경로를 통해 명령어 연산자를 빠르게 전달 가능. 프로그램 상태 레지스터(PSR: Program Status Register) - 상태 정보(플래그, 프로그램 카운터에 저장된 주소 정보 등)를 저장. - 프로그램이 수행되는 순간마다 프로그램의 수행 상태와 프로세서 상태를 나타낸다. 메모리 주소 레지스터(MAR: Memory Address Register) - 접근하려는 메모리의 주소 저장. - 주소 레지스터, 프로그램 카운터 등으로부터 주소 정보를 전달받는다. ※ 유효 주소 : 주소 연산 끝에 최종적으로 피연산자가 있는 곳을 가리키는 주소. 거리로 주소를 나타낼 시 기준 주소에 거리값을 더하여 나온 주소.
10
1. 컴퓨터 시스템 구성요소 레지스터(Register) 그 외.
메모리 버퍼 레지스터(MBR: Memory Buffer Register) - 메모리에서 정보를 읽거나 정보를 저장할 때 사용. - 연산장치를 통해 메모리 주소 레지스터, 인덱스 레지스터, 프로그램 카운터 등의 주소 레지스터와 데이터 레지스터에 정보를 전달하는데 사용한다. 그 외. 프로세서에는 다양한 레지스터가 존재한다. [그림1-4] 프로세서의 기본 레지스터
11
1. 컴퓨터 시스템 구성요소 메모리(Memory) 메모리 계층 구조.
메모리 계층 구조는 1950년~1960년대 메인 메모리의 높은 가격으로 인해 제안된 방법으로, 다양한 레벨의 메모리를 연결하여 비용, 속도, 용량, 접근 시간 등을 상호 보완한 것이다. 메인 메모리를 중심으로 아래는 자기 디스크, 광학 디스크, 자기 테이프가 있으며, 위로는 캐시와 레지스터가 있다. - 자기 디스크 : 대용량 - 광학 디스크 : 이동이 편리함. - 자기 테이프 : 파일을 저장하기 위해 속도가 느림. - 캐시 : 메인 메모리와 프로세서의 속도 차를 보완. - 레지스터 : 프로세서가 사용할 자료를 보관하며 가장 빠름. 다양한 메모리를 효과적으로 이용해 시스템의 성능 향상을 위해 사용함. [그림1-5] 메모리 계층 구조
12
1. 컴퓨터 시스템 구성요소 메모리(Memory)
메모리 참조가 지역성(국부성)이라는 특징을 가지는 것을 가지는 것을 활용하여 메모리 계층 구조를 이용한다. 지역성 - 실행 중인 프로세서가 실행기간 동안 메모리 정보를 균일하게 접근하지 않고 블록 중 일부만 집중적으로 참조하는 현상. - 발생 이유 프로그램은 명령어를 순차적으로 실행하는 경향이 있으므로 명령어는 특정 지역 메모리에 인접해 있다. 프로그램은 순환(단일 순환, 중첩된 순환 등)의 반복이지만 메모리 참조 영역은 일부 영역에 국한된다. 대부분의 컴파일러는 메모리에 인접한 블록, 즉 배열로 저장하므로 프로그램은 배열 원소를 순차적으로 자주 접근하게 되어 지역적인 배열 접근 경향을 보인다.
13
1. 컴퓨터 시스템 구성요소 메모리(Memory) 메인 메모리
고유 주소를 가진 워드나 바이트로 구성된 대규모의 배열로, 주소를 읽거나 기록함으로써 상호 작 용한다는 특성을 가짐. ex: 메인 메모리 역할 1. 프로세서 : 메인 메모리로부터 처리할 데이터를 가져오거나 처리한 결과를 메인 메모리에 저장 2. 입출력장치 : 메인 메모리에서 데이터를 받거나 저장. [그림1-6] 메인 메모리의 역할 예
14
1. 컴퓨터 시스템 구성요소 메모리(Memory) 다수의 셀(Cells)로 구성되며 각 셀들은 비트들로 구성.
메인 메모리에 데이터 저장 시 셀 하나 또는 여러 셀에 나뉘어 저장되며, 셀은 주소에 의해 참조됨. - 셀이 K비트 일 경우 2K값을 저장. - n비트일 경우 참조 주소 범위는 0~2n-1. [그림1-7] 메인 메모리의 주소 지정 물리적 주소 공간 - 컴퓨터에 주어진 주소 공간을 말하며, 프로그래머는 직접 사용하지 않고 수식, 변수를 이용한다. 논리적 주소 공간 - 컴파일러에 의해 기계어로 변환된 변수와 명령어에 할당되는 주소. - 별도의 주소 공간에 나타남. 컴파일 - 원시 프로그램을 기계 명령어로 변환하는 처리 과정으로 이때 컴파일러가 논리적 주소를 물리적 주소로 변환.
15
1. 컴퓨터 시스템 구성요소 메모리(Memory)
메모리 속도는 어떤 동작의 시작과 종료 사이의 경과 시간으로 메모리 접근 시간과 메모리 사이클 시간으로 표현. - 메모리 접근 시간 : 명령 발생 후 목표 번지를 검색하여 데이터 쓰기(읽기)를 시작할 때까지의 시간. - 메모리 사이클 시간 : 두 번의 연속적인 메모리 동작 사이에 필요한 최소 지연 시간. - 일반적으로 사이클 시간이 접근 시간보다 약간 크며 메모리의 세부 구현 방법에 따라 달라진다. [그림1-8] 메모리 접근 시간과 메모리 사이클 시간 프로세서와 메모리 사이의 접근 속도 차가 커짐에 따라 메인 메모리의 부담을 줄이기 위해 프로세서 칩 안이나 외부에 별도의 캐시를 구현하기도 한다. [그림1-9] 프로세서, 메인 메모리, 보조기억장치의 관계
16
1. 컴퓨터 시스템 구성요소 메모리(Memory) 가상 메모리(Virtual Memory)
메인 메모리의 유효 크기를 늘리는 기법. 보조기억장치에 프로그램이나 데이터를 저장했다 필요 시 다시 메인 메모리로 이동시키는 기술. - 메인 메모리의 공간 부족으로 현재 실행 중인 프로그램이나 데이터를 저장 할 수 없을 때 가상 메모리를 이용하여 프로그램과 데이터를 보조기억장치에 일부 저장한 후 필요 시 다시 메인 메모리로 옮겨 실행. 가상 메모리의 특징을 활용하기 위해 실행 중인 프로세스가 참조하는 주소와 메인 메모리에서 사용하는 주소를 분리해야 한다. - 매핑(사상, Mapping), 메모리 맵(Memory Map) : 논리적 주소를 물리적 주소로 변환하는 과정. [그림1-10] 메모리 매핑
17
1. 컴퓨터 시스템 구성요소 메모리(Memory)
메인 메모리보다 큰 저장 용량의 주소를 지정 가능하므로 프로그램을 부분 적재하여 실행할 수 있다. - 실제 수행 중인 부분만 실제 메인 메모리로 매핑하고 나머지는 보조기억장치로 매핑한다. [그림1-11] 가상 메모리의 물리적 메모리로의 매핑
18
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시(Cache)
처리 속도가 빠른 프로세서와 상대적으로 느린 메인 메모리 사이에서 데이터나 정보를 저장하는 고속 버퍼. 메인 메모리에서 일정 블록의 데이터를 가져와 워드 단위로 프로세서에 전달하여 정보를 빠르게 제공하고, 데이터가 이동할 수 있는 통로(대역폭)을 확대하여 프로세서와 메인 메모리의 속도 차를 줄임. 보통 크기가 8~64바이트 정도인 블록 여러 개로 구성, 각 블록의 크기는 메인 메모리의 블록 크기와 같다. - 메모리에 캐시를 결합한 캐시 메모리 시스템은 메모리 가격과 성능을 절충하고 메모리 때문에 발생하는 성능 저하를 줄여준다. [그림1-12] 캐시 메모리
19
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시의 동작
- 일반적으로 메인 메모리의 주소는 태그(Tag) 영역과 주소 영역 등을 나타내는 연속된 값으로 구성. - 캐시는 메인 메모리 주소 영역을 한 번 읽어 들일 수 있는 라인 크기로 나눈 후 각 블록에 번호를 부여한 후 태그로 번호를 저장. - 프로세서가 메인 메모리 접근이 필요할 때 먼저 캐시를 조사하여 캐시 태그와 메모리 주소의 태그 영역을 비교, 원하는 블록을 찾는다. ex: 읽기 연산일 경우 1. 캐시 적중(Cache Hit) 시 캐시는 데이터 라인에서 요청한 데이터를 읽어 프로세서로 전송. 2. 캐시 실패(Cache Miss) 시 캐시 제어기는 메인 메모리에서 해당 블록을 읽어 캐시에 넣고 프로세서로 전송. [그림1-13] 캐시의 기본 동작
20
1. 컴퓨터 시스템 구성요소 주변장치 컴퓨터의 기능을 향상시키기 위한 추가 장비.
입력 장치, 출력 장치, 보조기억장치, 스캐너, 모뎀 등 보조기억장치 : 플로피 디스크, 하드 디스크, CD/DVD, 테이프 드라이브 등
21
2. 컴퓨터 시스템의 동작 컴퓨터 시스템의 동작 과정
디지털 형태의 정보를 입력 받아 메모리(기억장치)에 저장된 명령어 목록(프로그램)에 따라 처리, 결과를 출력하는 일종의 고속 전자계산기. 아래와 같은 순서로 동작하며, 제어장치가 모든 동작을 제어한다. 입력 장치를 통해 정보를 입력 받아 메모리에 저장한다. 메모리에 저장한 정보를 프로그램의 제어에 따라 인출, 산술 장치나 논리 장치에서 처리한다. 처리한 정보를 출력 장치에 표시하거나 디스크(보조기억장치)에 저장한다. ※ 정보 : 명령어와 데이터로 구분 - 명령어 : 실행할 산술, 논리 연산 동작을 명시하는 문장. - 프로그램 : 작업 하나를 수행하기 위한 명령어 집합.
22
2. 컴퓨터 시스템의 동작 명령어 구성 연산 코드(Operation Code)와 오퍼랜드(Operand)로 구성.
0과 1의 이진 코드화 되어 있으며 프로세서에 따라 길이가 달라짐. 고정 길이 또는 기능에 따른 가변적 구성 가능. 실행 전 메인 메모리에 저장, 한번에 하나씩 프로세서에 전송되어 해석 및 실행. [그림1-15] 메인 메모리에 저장된 명령어 예 [그림1-14] 명령어 구조
23
2. 컴퓨터 시스템의 동작 명령어 구성 연산 코드 오퍼랜드 명령어의 가장 기본 부분, 프로세서가 실행할 연산(동작)을 지정.
명령어 구성, 연산 데이터 종류, 명령어 비트의 할당 상황 등을 나타냄. 오퍼랜드 명령어가 처리할 데이터나 데이터가 저장된 주소에 관한 정보(레지스터, 메모리)를 표시. 연산자 또는 오퍼레이터(Operator) : 연산 내용을 나타내는 기호. 원시 오퍼랜드(Source Operand)와 목적 오퍼랜드(Destination Operand)로 구분. [그림1-16] 오퍼랜드의 구분 ※ 누산기 : 메모리에서 읽은 오퍼랜드를 레지스터에 저장된 데이터와 연산 시 사용하는 프로세서 레지스터 프로그램의 명령어 수행 중에 산술 및 논리 연산의 결과를 일시적으로 저장.
24
2. 컴퓨터 시스템의 동작 명령어 구성 연산 종류와 기능에 따라 오퍼랜드 부분을 다양하게 활용 가능.
직접 주소(Direct Address) : 기억 장소를 주소부에 직접 지정할 수 있게 되어 있는 것. 간접 주소(Indirect Address) : 원하는 실제 피연산자가 들어있는 주소를 가지고 있는 것. [그림1-17] 직접 주소와 간접 주소를 이용한 명령 예
25
2. 컴퓨터 시스템의 동작 명령어 실행 다음과 같은 과정으로 실행된다. (그림1-18) 명령어 실행 사이클(명령어 실행 주기)
메모리에서 명령어 레지스터로 이동하여 저장된 다음 명령 어를 인출한다. 인출한 명령어를 해석, 다음 명령어를 지정하기 위해 프로 그램 카운터를 변경한다. 명령어가 메모리에 있는 워드 한 개 사용하려면, 사용 장소 를 결정하여 오퍼랜드를 인출, 필요 시 프로세서 레지스터 로 보낸다. 명령어를 실행한다. 명령어 실행 결과를 저장한다. 다음 명령어를 실행하기 위해 ① 단계로 간다. 명령어 실행 사이클(명령어 실행 주기) [그림1-18] 명령어 실행 과정 명령어를 인출하여 연산 완료 시점 까지. 인출 사이클, 간접 사이클, 실행 사 이클, 인터럽트 사이클로 구성. [그림1-19] 명령어 실행 사이클
26
2. 컴퓨터 시스템의 동작 인출 사이클 명령어 실행 사이클의 첫 번째 단계로, 메인 메모리에서 명령어를 읽어 명령어 레지스터에 저장하 기까지의 단계. 소비되는 시간은 명령어 인출 시간이라 하며, 시간에 따른 프로세스 레지스터의 동작은 아래와 같다. [그림1-20] 명령어 인출 사이클 [표1-2] 인출 사이클에서 동작 과정
27
2. 컴퓨터 시스템의 동작 간접 사이클 인출 사이클과 실행 사이클 사이에 위치하며, 명령어에 포함된 주소를 이용하여 실제 명령어 실행 에 필요한 데이터를 인출한다. 인출한 명령어의 주소 필드 내용을 이용해 메모리에서 데이터의 실제 주소를 인출, 명령어 레지스 터의 주소 필드에 저장하며, 간접 주소 지정방식에서 사용된다. [그림1-21] 간접 사이클 과정 [표1-3] 간접 사이클에서 레지스터 동작 과정
28
2. 컴퓨터 시스템의 동작 실행 사이클 인터럽트 사이클
명령어 레지스터의 명령어를 해석하고 필요한 신호를 발생시켜 실제로 명령어를 처리한다. 이 단계에서 소비되는 시간을 실행 시간이라 한다. 인터럽트 사이클 프로세스가 정상적인 순차 제어에서 벗어나면 아래와 같은 인터럽트 사이클이 발생한다. - 프로그램 : 명령어를 실행한 결과로 발생하는 조건에 의해 생성. - 타이머(Timer) : 프로세서의 타이머에 의해 발생. - 입출력(I/O) : 입출력 제어가 발생시킴. - 하드웨어 오류 : 정전이나 메모리 패리티 오류로 인해 발생. [그림1-22] 인터럽트 사이클 과정 [표1-4] 인터럽트 사이클 발생 시 레지스터 동작 과정
29
2. 컴퓨터 시스템의 동작 인터럽트 컴퓨터에 설정된 장치에서 프로세서로 보내는 하드웨어 신호로, 현재 실행 중인 프로그 램의 수행을 미루고 다른 프로그램의 수행을 요구하는 명령. 인터럽트를 이용하여 단일 프로세서 컴퓨터에서 다른 프로그램이나 명령어를 수행할 수 있다. 시스템이 예측하지 못한 사용자 입력, 갑작스런 정전, 컴퓨터 시스템으로부터의 긴급 요청, 잘못 된 명령어 수행, 입출력 작업 완료 같은 긴급 상황을 적절히 처리하기 위해 필요하다. 외부 장치의 동작과 자신의 동작을 조정할 수 있는 수단으로 인터럽트를 사용. 입력 장치가 새로운 입출력 연산 수행 시, 프로세서는 먼저 폴링(Polling)을 통해 각 장치의 상태 비트를 검사한다. 인터럽트의 개념이 없으면 장치의 상태를 계속 점검하는 과정(Wait Loop)이 필요해 프로세서가 다른 연산을 수행할 수 없으므로 오버헤드가 증가하여 수행 시간이 낭비된다. 인터럽트 요청 회선(IRQ, Interrupt Request Line) : 버스 제어선 중 하나로 인터럽트 신호를 전달 하는 목적으로 사용. 인터럽트는 크게 인터럽트 요청과 인터럽트 서비스 루틴으로 구성된다. 인터럽트를 수행하기 위해 컴퓨터는 인터럽트 제어선을 제공하여 인터럽트 발생과 더불어 적절 한 처리를 수행한다. 인터럽트 요청 신호에 의해 수행되는 루틴을 인터럽트 처리 프로그램, 인터럽트 서비스 루틴 (Interrupt Service Routine)이라 한다. 인터럽트 발생 원인에 따라 적절한 처리 루틴을 수행한다.
30
2. 컴퓨터 시스템의 동작 인터럽트 요청 회선 연결 방법은 단일 회선과 다중 회선이 있다. 인터럽트 처리 과정
단일 회선 : 인터럽트 요청이 가능한 모든 장치를 공통으로 프로세서에 연결. - 회선 하나에 다수의 장치 인터페이스가 연결되어 있으므로 어느 장치에서 인터럽트 요청을 하였는지 판별하는 기능이 필요하다. 다중 회선 : 모든 장치가 서로 다른 고유 회선으로 프로세서와 연결. - 인터럽트 요청 시 어느 장치에서 요청하였는지 바로 판별 가능하다. [그림1-23] 인터럽트 요청 회선 연결 방법 인터럽트 처리 과정 인터럽트 요청 신호 발생 시 실행 중인 프로그램을 메모리에 저장하고 인터럽트 서비스 프로그램으로 분기한다. 인터럽트 루틴의 수행 완료 후 인터럽트를 발생시킨 프로그램에 제어를 돌려준다.
31
2. 컴퓨터 시스템의 동작 인터럽트 처리 과정 (그림 1-24)
인터럽트 신호 도달하기 전 (a)처럼 프로그램 A가 실행되고 있으며, 프로그램 카운터는 현재 명령어를 가리킨다. (b)에서 프로세서에 인터럽트 신호가 도달하여 현재 명령어를 종료하고, 모든 레지스터 내용을 스 택 영역(또는 PCB, Process Control Block)으로 보낸다. 프로그램 카운터(PC)에는 프로그램 B, 인터럽트 처리 프로그램의 시작 위치를 저장하고 프로그램 B로 제어를 넘겨 프로그램 B를 실행한다. (C)에서 인터럽트 루틴 종료 후 스택 영역에 있던 내용을 레지스터에 다시 저장한 뒤 프로그램 카운터를 비롯하여 중단했던 프로그램(A)에서 다시 시작한다. [그림1-24] 인터럽트 처리 과정
32
2. 컴퓨터 시스템의 동작 인터럽트는 서브 루틴 호출과 매우 유사하지만 차이점이 있다.
서브 루틴은 자신을 호출한 프로그램이 요구한 기능을 수행하지만, 인터럽트 서비스 루틴은 인터럽트 발생 시 수행 중인 프로그램과 관련이 없을 수도 있다. 기존의 수행 중이던 프로그램은 인터럽트의 영향을 받지 않고 수행을 재개하기 위해 아래의 내용을 저장해야 한다. - 프로세서는 중단된 프로그램으로 복귀한 후 수행에 영향을 미치는 정보(프로그램 카운터의 내용 포함)를 저장해야 한다. - 인터럽트가 발생할 때의 상태 코드(상태 워드)를 저장해야 한다. - 프로세서는 인터럽트 서비스 루틴에서 복귀했을 때 임시 기억 장소에 저장한 상태 워드를 다시 적재해야 한다.
Similar presentations