Download presentation
Presentation is loading. Please wait.
Published byMarylou Matthews Modified 5년 전
1
1장 컴퓨터 시스템의 개요 - 컴퓨터의 기본 시스템(프로세서)을 이해한다. - 명령어 실행 주기를 알아본다.
- 컴퓨터의 기본 시스템(프로세서)을 이해한다. - 명령어 실행 주기를 알아본다. - 인터럽트 개념과 처리 과정을 이해한다. - 메모리 역할과 계층 구조를 알아본다.
2
컴퓨터 동작 입력 장치를 통해 정보(프로그램과 데이터)를 받아 메모리로 전달하고 저장
컴퓨터 동작 입력 장치를 통해 정보(프로그램과 데이터)를 받아 메모리로 전달하고 저장 메모리에 저장된 정보는 프로그램의 제어에 따라 인출 되어 산술 및 논리 기능 장치에서 처리 처리된 정보는 출력 장치를 통해 표시되거나 또는 디스크(보조기억장치)에 저장 컴퓨터 내부의 모든 동작들은 제어 장치에 의해 제어 P 01 Operating System
3
하드웨어 시스템 2019-01-18 프로세서 디스크 메모리 메모리 제어기 제어기 프린터 테이프 드라이브 테이프 드라이브
시스템 버스 [그림1-1] 하드웨어 시스템의 기본 구성 02 Operating System
4
하드웨어 시스템-계속 프로세서 - 컴퓨터의 각 부분의 동작을 제어하고 연산을 수행하는 핵심 부분 2019-01-18
[그림 1-2] 중앙처리장치(프로세서) 블록도 03 Operating System
5
레지스터 메모리 주소 없이 제어장치에 의해 직접 다루어지는 빠른 메모리 - 모든 장치(회로)들을 연결하는 역할 - 목적을 갖는 하나의 값 저장 - 연산처리 중 중간 값 저장 AC : Accumulator Register DR : General-Purpose Register MQ : Multiplier-Quotient Register(곱셈) MM : Main Memory [그림 1-3] 프로세서의 레지스터 구조 04 Operating System
6
레지스터-계속 사용자-가시(Visible) 레지스터 - 시스템(운영체제)과 사용자 프로그램에 의해 액세스
레지스터-계속 사용자-가시(Visible) 레지스터 - 시스템(운영체제)과 사용자 프로그램에 의해 액세스 데이터 레지스터 - 함수 연산에 필요한 데이터 기억 주소 레지스터 - 주소, 유효 주소 계산에 필요한 주소 부분 기억 기준(Base) 주소 레지스터 페이지 레지스터와 세그먼트 레지스터 인덱스(Index) 레지스터 스택 포인터 조건 코드 레지스터 제로, 자리 넘침, 자리올림, 양수(positive) 비트 등 05 Operating System
7
레지스터-계속 사용자-불가시(Invisible) 레지스터 제어와 상태 관리
레지스터-계속 사용자-불가시(Invisible) 레지스터 제어와 상태 관리 프로그램 카운터(PC; Program Counter) - 프로그램 수행 제어(명령어의 실행 순서 보관) 명령 레지스터(IR; Instruction Register) - 현재 수행하고 있는 명령어 저장 프로그램 상태 레지스터 - 플래그를 포함한 상태 정보 기억 메모리 주소 레지스터(MAR; Memory Address Register) 메모리 액세스하려는 장소의 주소 저장 메모리 버퍼 레지스터(MBR; Memory Buffer Register) 메모리에서 정보를 읽을 때(기억시킬 때) 사용 06 Operating System
8
명령어 연산과 피연산자(operand), 처리되는 순서를 프로세서에게 지시하는 명령문(statement) 노이만 컴퓨터
명령어 연산과 피연산자(operand), 처리되는 순서를 프로세서에게 지시하는 명령문(statement) 노이만 컴퓨터 성능향상 – 저장 위치, 명령어 구조 명령어 – 메모리에 보관 한 개씩 프로세서로 전송 해석되고 실행 [그림 1-4] 메모리에 저장된 명령어의 예 P 07 Operating System
9
명령어 구성 Y = x + b 명령어 – 2진 코드 구성 – 연산코드(실행한 연산), 연산대상(피연산자 저장된 메모리 번지)
명령어 구성 명령어 – 2진 코드 구성 – 연산코드(실행한 연산), 연산대상(피연산자 저장된 메모리 번지) 연산대상 1 연산 코드 연산대상 2 [그림 1-5] 명령어 구성 Y = x + b 원시 피연산자 목적 피연산자 연산 종류 누산기(accumulator) 피연산자와 데이터 연산 [그림 1-6] 피연산자의 구분 P 08 Operating System
10
명령어 구성 –계속 연산코드 피연산자 연산 정의 - 가감승제, 쉬프트, 보수 등
명령어 구성 –계속 연산코드 연산 정의 - 가감승제, 쉬프트, 보수 등 명령어의 구성, 연산 데이터의 종류, 명령어 비트 할당 상황 등 n비트 구성 최대 2n개의 연산 실행 가능 피연산자 처리될 데이터, 데이터가 기억되어 있는 메모리 위치 또는 저장된 레지스터 표시 연산결과 저장될 장소 나타냄 메모리 위치 : 번지에 의해서 지정 레지스터 : 2k개의 레지스터 중에 하나를 나타냄 k 비트의 2진 코드를 사용 지정 함 P 09 Operating System
11
명령어 구성 -계속 4096 워드를 가진 메모리에 대한 주소 할당을 위하여 최소 12비트(212 = 4096) 번지 필요
명령어 구성 -계속 4비트 12비트 피연산자 4096 워드를 가진 메모리에 대한 주소 할당을 위하여 최소 12비트(212 = 4096) 번지 필요 [그림 1-7] 명령코드의 구성 P 10 Operating System
12
명령어 실행주기(machine cycle)
명령어 실행주기(machine cycle) 명령어 실행 과정 1단계 : 메모리에서 명령레지스터에 이동 저장된 다음 명령어 인출 2단계: 인출한 명령어 해석, 다음 명령 지정하기 위하여 프로그램 카운터 변경 3단계: 명령이 메모리에 1개의 워드 사용 사용장소 결정 피연산자 인출, 필요하면 CPU 레지스터로 보냄 4단계: 명령 실행 5단계: 결과 저장 6단계: 다음 명령을 실행하기위해 1단계로 이동 P 11 Operating System
13
명령어 실행주기(machine cycle)-계속
명령어 실행주기(machine cycle)-계속 명령어 실행 - 프로세서의 제어장치에 의해 수행 1. 명령 인출 4. 명령 실행 3. 데이터 획득 2. 명령 해석 [그림 1-8] 명령어 실행 과정 P 12 Operating System
14
명령어 실행주기(machine cycle) -계속
명령어 실행주기(machine cycle) -계속 인출 – 해석 - 실행 사이클 (인출(fetch) - 실행(execution) 사이클) ⇒ 명령을 인출하여 연산이 완료되는 시기까지의 간격 [그림 1-8] 명령어 실행 주기 P 13 Operating System
15
인출 사이클 - 메인 메모리에서 명령을 읽어 명령 레지스터에 저장하기까지의 단계 2019-01-18
인출 사이클 - 메인 메모리에서 명령을 읽어 명령 레지스터에 저장하기까지의 단계 [그림1-9] 인출 사이클 과정 P 14 Operating System
16
간접 사이클 명령어에 포함되어 있는 주소 이용, 실제 명령어 실행에 필요한 데이터 인출하는 사이클 2019-01-18
간접 사이클 명령어에 포함되어 있는 주소 이용, 실제 명령어 실행에 필요한 데이터 인출하는 사이클 [그림1-10] 간접 사이클 과정 P 15 Operating System
17
인터럽트 사이클 - 프로세서의 정상적인 순차 제어에서 벗어나는 경우 [인터럽트 생성 과정]
인터럽트 사이클 - 프로세서의 정상적인 순차 제어에서 벗어나는 경우 [인터럽트 생성 과정] 프로그램 : 명령실행의 결과로서 발생하는 조건에 의해 생성 [예] - 산술 오버플로우 - 제로에 의한 나누기 잘못된 범주의 명령어에 의한 실행시도 등 타이머(Timer) : 프로세서의 타이머에 의해 생성 - 운영체제가 어떤 함수(기능) 수행토록 함 입출력(I/O) : 입출력 제어에 의해 생성 - 1개 연산의 정상적인 종료신호 또는 다양한 오류조건의 신호 보냄 하드웨어 잘못 : 전기정전이나 메모리 패리티 오류로 인한 문제로 생성 P 16 Operating System
18
인터럽트 사이클-계속 [그림 1-12] 인터럽트 사이클 과정 P 17 Operating System
19
인터럽트의 종류 인터럽트(Interrupt)란 컴퓨터 시스템에서 예측하지 못했던 사건이 발생하는 상황을 말한다.
인터럽트(Interrupt)란 컴퓨터 시스템에서 예측하지 못했던 사건이 발생하는 상황을 말한다. 인터럽트의 종류 SVC(Supervisor Call) 인터럽트 : 기억장치 할당, 오퍼레이터와 대화 등 입출렵 인터럽트 : 입출력시 에러, 입출력 완료시 클럭(Clock) 인터럽트 : 프로세서 시간 할당량을 모두 사용할 시 콘솔(Console) 인터럽트 : 키보드에서 인터럽트 키를 누를 때 프로세스간 통신인터럽트 : 통신 메시지를 받을 때 발생 프로그램 검사인터럽트 : 정의 되지 않은 명령어 사용시 발생 하드웨어 검사인터럽트 : 하드웨어 자체 에러 시 발생 P 18 Operating System
20
인터럽트 처리 과정 P 19 Operating System
21
인터럽트 - 하드웨어 신호 단일 프로세서 컴퓨터 인터럽트 사용 인터럽트 활용 - 시스템의 효율적인 처리 능력 향상
인터럽트 - 하드웨어 신호 장치(입출력 장치나 컴퓨터 내의 프로그램) ⇒ 프로세서 컴퓨터 : 실행중인 일을 멈추고 다른 프로그램 실행 시작 단일 프로세서 컴퓨터 인터럽트 신호 - 다른 프로그램이나 명령문 수행 가능 인터럽트 사용 시스템이 예측하지 못한 사용자 입력의 발생 갑작스런 정전 컴퓨터 시스템으로부터의 긴급처리 요청 잘못된 명령 수행 입출력 작업의 완료 등 여러 종류의 긴급 상황에 대한 적절한 처리 인터럽트 활용 - 시스템의 효율적인 처리 능력 향상 P 20 Operating System
22
인터럽트 개요 인터럽트 실행중인 프로그램 수행을 연기하고 다른 프로그램의 수행을 요구하는 사건
인터럽트 개요 인터럽트 실행중인 프로그램 수행을 연기하고 다른 프로그램의 수행을 요구하는 사건 프로그램 2 프로그램 1 인터럽트 서비스 루틴 인터럽트 발생지점 M 2 1 i+1 i [그림1-13] 인터럽트를 이용한 제어 이동 인터럽트 발생 명령어 i+1의 주소(프로그램 카운터의 내용)를 임시 기억 장소에 보관 복귀 주소 : 스택에 저장 P 21 Operating System
23
인터럽트 개요-계속 프로세서- 연결된 각 입출력 장치의 현재 상태 파악 사용자 프로그램 관점의 인터럽트
인터럽트 개요-계속 사용자 프로그램 관점의 인터럽트 프로그램 실행을 일시 정지 , 다시 재개 연속적으로 실행 사용자 프로그램은 인터럽트를 위한 별도의 조치 필요 없음 처리 과정 : 프로세서와 운영체제의 책임 인터럽트 처리를 위한 처리 루틴 : 명령어 사이클에 추가 [예] 다중사용자 시스템 환경 - 각각의 키보드에서 입력되어지는 문자 구분 - 동시에 입력되는 같은 문자의 데이터 손실방지 프로세서- 연결된 각 입출력 장치의 현재 상태 파악 키보드로부터 문자를 입력받을 때(문자가 입력되었는지 파악) 출력할 때(프린터가 문자를 출력할 준비 확인) 상태 비트 필요 - 1 비트 이상의 정보로 표현된 준비 비트 P 22 Operating System
24
인터럽트 개요-계속 [예] ⇒ 프로세서 - 장치의 상태 비트 검사 과정 필요 데이터 전송 전 폴링(polling) 통해
인터럽트 개요-계속 상태 비트(준비 비트)필요 : 입출력 장치 파악 [예] 입출력 장치가 새로운 입출력 연산 수행 할 수 있을 때(1로 설정) ⇒ 프로세서 - 장치의 상태 비트 검사 과정 필요 데이터 전송 전 폴링(polling) 통해 ⇒ 프로그램 - 장치 상태 점검 과정(wait loop) 필요 프로세서는 다른 연산을 수행할 수 없음 결과 : 수행시간의 낭비 해결 : 인터럽트 사용(프로세서가 다른 작업 수행할 수 있음) 인터럽트 사용 이점 키보드에서 입력이 발생하였을 때만 프로세서에 통보, 처리 프로세서가 이벤트 발생여부를 감시(조사) 불필요 프로세서가 직접 외부 장치의 상태 점검 불필요 다른 연산을 수행하여 프로세서의 효율 높일 수 있음 P 23 Operating System
25
인터럽트 처리 인터럽트 체제 : 인터럽트 요청과 인터럽트 서비스 루틴 인터럽트 : 서브루틴 호출과 유사
인터럽트 처리 인터럽트 체제 : 인터럽트 요청과 인터럽트 서비스 루틴 인터럽트 처리 프로그램 : interrupt service routine 인터럽트 요청 신호에 의해 수행되는 루틴 인터럽트 발생원인에 따라 적절한 처리 루틴 수행 인터럽트 : 서브루틴 호출과 유사 인터럽트 요청 신호 발생 실행중인 프로그램 메모리에 저장 ⇒ 인터럽트 서비스 프로그램으로 분기 인터럽트 루틴 수행 완료 인터럽트를 발생한 프로그램으로 제어 되돌려 줌 P 24 Operating System
26
인터럽트 처리-계속 : 인터럽트 신호가 도달하기 전에 프로그램 A 실행
인터럽트 처리-계속 [그림1-14] 인터럽트 프로시저 스택 영역 A B PC 레지스터 메모리 : 인터럽트 신호가 도달하기 전에 프로그램 A 실행 : 인터럽트 신호가 프로세서에 도달하면 현재 명령어는 종료 레지스터 내용 ⇒ 스택 영역 또는 PCB(Process Control Block)로 프로그램카운터 ← 프로그램 B(인터럽트 처리 프로그램)의 시작위치 적재 ⇒ 프로그램 B로 점프하고 실행 프로그램이 됨 (c) : 인터럽트 루틴 종료 레지스터 다시 저장 프로그램 카운터, 원래의 프로그램 중단되었던 지점에서 다시 시작 P 25 Operating System
27
인터럽트 처리-계속 ⇒ 원래의 프로그램은 인터럽트 영향 받지 않고 수행 재개
인터럽트 처리-계속 서브루틴 - 자신을 호출한 프로그램이 요구한 기능 수행 인터럽트 서비스 루틴 인터럽트 발생 : 수행중인 프로그램과는 관련 없음 인터럽트 서비스 루틴 수행 시작 전 프로세서 - 프로그램의 복귀 후 수행에 영향을 미칠 수 있는 정보 저장 - 인터럽트 발생시의 상태 코드(상태 워드)를 저장 복귀 후 프로세서 임시 기억 장소에 저장했던 상태 워드를 재적재해야 함 ⇒ 원래의 프로그램은 인터럽트 영향 받지 않고 수행 재개 P 26 Operating System
28
메모리 역할과 계층 프로그램 수행 : 프로그램과 데이터는 메모리에 적재
메모리 역할과 계층 프로그램 수행 : 프로그램과 데이터는 메모리에 적재 명령어의 수행 속도 : 메모리와의 데이터 전송 속도와 연관 있음 메모리 : 컴퓨터의 성능과 밀접 특성 각각 자신의 주소를 가지는 워드(바이트)로 구성된 배열 주소를 읽거나 기록함으로써 상호 작용이 이루어짐 명령어 수행 메모리에서 한 명령어를 가져온 다음 명령어 해독 메모리에서 피연산자를 가져와 피연산자에 대해 명령어를 수행 계산 결과를 메모리에 다시 저장하는 과정 반복 사용자(제조자) -크고 빠르고 비용이 저렴한 메모리 요구 프로세서 메모리 입출력 [그림1-15] 메모리 역할 P 27 Operating System
29
메모리 역할과 계층-계속 ● 메모리 계층 구조 - 여러 수준의 메모리 연결 : 비용, 속도, 용량, 액세스시간 등 상호 보완
메모리 역할과 계층-계속 ● 메모리 계층 구조 - 여러 수준의 메모리 연결 : 비용, 속도, 용량, 액세스시간 등 상호 보완 [그림1-16] 메모리 계층 구조 P 28 Operating System
30
메모리 역할과 계층-계속 비용, 속도와 크기(용량)에 따라 컴퓨터의 메모리 활용성이 다름
메모리 역할과 계층-계속 비용, 속도와 크기(용량)에 따라 컴퓨터의 메모리 활용성이 다름 효과적인 메모리 계층의 운영 시스템의 성능 향상 목적 캐시 디스크 메인 메모리 제어장치 레지스터 “CPU-DRAM 차이” 프로세서 “입출력 병목현상” 보조 기억장치 원격 메모리 [그림1-17] 메인메모리 역할 P 29 Operating System
31
메모리 참조 메모리 계층구조 이용 이유 메모리 참조 경향이 임의(random)가 아니라 지역성(국부성)을 가짐
메모리 참조 메모리 계층구조 이용 이유 메모리 참조 경향이 임의(random)가 아니라 지역성(국부성)을 가짐 지역성 - 실행중인 프로세서에 의해 나타나는 특성(8장 참고) 메모리내의 정보를 균일하게 액세스 하지 않고 블록 중 일부 선호하여 지역적인 부분만 집중적으로 참조하는 현상 시간(temporal) 구역성 (같은 장소) : 먼저 참조된 어떤 기억장소의 부분이 이후에도 계속 참조될 가능성 이 높다. 예) 순환(looping), 부 프로그램, 스택, 계산에 사용되는 변수들. - 공간(spatial) 구역성 (다른 장소) : 어느 기억장소가 참조되면 그 부근의 장소가 이후에도 계속 참조될 가능성이 높다. 예) 배열, 순차적 실행, 관련 변수들의 근처 선언 P 30 Operating System
32
캐시 메모리 프로세서와 상대적으로 느린 속도로 처리되는 메인 메모리 사이에서 자료나 정보를 저장하는 고속 버퍼
캐시 메모리 프로세서와 상대적으로 느린 속도로 처리되는 메인 메모리 사이에서 자료나 정보를 저장하는 고속 버퍼 High bandwidth 저속 ; 고속 ; low bandwidth words blocks 캐시 메모리 활용 이유 컴퓨터 프로그램의 수행시에 나타나는 참조 지역성 이용 [그림 1-18] 캐시 메모리 P 31 Operating System
33
캐시의 기본 동작 주소태그(tag)와 물리적 주소 비교 ⇒ 블록 찾음 캐시적중(cache hit)
캐시의 기본 동작 주소태그(tag)와 물리적 주소 비교 ⇒ 블록 찾음 캐시적중(cache hit) 캐시가 자료를 보관하고 있으면 캐시는 요청된 데이터를 고속의 RAM에서 읽어 프로세서로 전송 캐시실패(cache miss) 주소의 블록이 캐시에 없다면 메인 메모리에서 그 주소를 포함 하는 블록을 읽어 캐시에 넣고 프로세서로 전송 [그림 1-19] 캐시의 기본동작 P 32 Operating System
34
가상 메모리 - 메인 메모리의 유효 크기를 증가시키기 위하여 사용되는 기법(8장 참고)
가상 메모리 - 메인 메모리의 유효 크기를 증가시키기 위하여 사용되는 기법(8장 참고) 논리적 프로그램은 연속된 가상주소를 보여주고 있으며(왼쪽) 4 페이지(A,B,C,D)로 구성 [그림 1-20] 가상메모리를 물리적 메모리로 사상 P 33 Operating System
35
가상 메모리-계속 가상주소(논리적 주소, 프로그램 주소) - 현재 진행중인 프로세스가 참조하는 자신의 주소
가상 메모리-계속 가상주소(논리적 주소, 프로그램 주소) - 현재 진행중인 프로세스가 참조하는 자신의 주소 사상(mapping) 또는 메모리 맵(memory map) - 가상주소를 실제의 물리적 주소로 변환하는 과정 [그림 1-21] 메모리 맵 [문제점] - 메모리와 디스크 공간사이의 이동량 증가에 따른 교체 공간 확보 - 시기에 따른 페이지 적재, 다시 복귀시킬 것인가에 대한 페이징 알고리즘 - 요구된 프로세스의 페이지가 없을 때 (페이지 폴트)에 대한 처리 방안 P 34 Operating System
36
가상 메모리-계속 2019-01-18 [그림 1-22] 가상 메모리 시스템 P 35 Operating System 주소 지정
주소 지정 표준주소 생성기법은 가상주소 번역 없이 사용 (인덱스 기준 레지스터 등) 가상 주소 메모리 사상 또는 번역 버퍼 물리적 주소 OP 명령어 물리적 메모리 논리 메모리 선택 워드 사상된 예외 (만약 주어지지 않으면) [그림 1-22] 가상 메모리 시스템 P 35 Operating System
Similar presentations