StallingsOS6e-Chap01.ppt [호환 모드]

22
1장. 컴퓨터 시스템 개요 1. 강의 목표 컴퓨터 시스템 개요 2 컴퓨터 시스템 구성요소를 이해한다. 처리기 레지스터의 종류와 역할을 이해한다. 명령 수행 사이클을 통하여, 프로그램이 실행되는 방식을 이해한다. 인터럽트의 정의, 필요성, 처리 방법에 대해서 이해한다. 메모리 계층 구조에 대해서 이해한다. 캐시 메모리 구조와 참조 지역성의 원리를 이해한다. 입출력 통신 기술들에 대해서 이해한다.

Transcript of StallingsOS6e-Chap01.ppt [호환 모드]

Page 1: StallingsOS6e-Chap01.ppt [호환 모드]

1장. 컴퓨터 시스템 개요

1장. 강의 목표

컴퓨터 시스템 개요 2

• 컴퓨터 시스템 구성요소를 이해한다.

• 처리기 레지스터의 종류와 역할을 이해한다.

• 명령 수행 사이클을 통하여, 프로그램이 실행되는 방식을이해한다.

• 인터럽트의 정의, 필요성, 처리 방법에 대해서 이해한다.

• 메모리 계층 구조에 대해서 이해한다.

• 캐시 메모리 구조와 참조 지역성의 원리를 이해한다.

• 입출력 통신 기술들에 대해서 이해한다.

Page 2: StallingsOS6e-Chap01.ppt [호환 모드]

컴퓨터 시스템 개요 3

목 차

1.1 컴퓨터 구성 요소

1.2 처리기 레지스터

1.3 명령어 수행

1.4 인터럽트

1.5 메모리 계층 구조

1.6 캐시 메모리

1.7 입출력 통신 기술

1.1 기본 하드웨어 구성 요소

컴퓨터 시스템 개요 4

• 처리기(중앙 처리 장치: central processing unit)

– 컴퓨터의 두뇌 : 데이터 연산, 논리 연산 (ALU), 제어(control Unit)

– 레지스터 (register)

– x86, ARM, PPC, Sparc, Alpha, MIPS, SH4, XScale, …

• 주기억장치 (main memory) : 휘발성(volatile)

– 메모리 셀 : 메모리 내의 개별적인 저장 공간

– 데이터와 프로그램 저장 (실 메모리라고도 불림)

• 저장 장치 (storage device) : 비휘발성(non-volatile)

– 디스크, CD-ROM, 플로피, Flash Memory(NOR, NAND 등)

• 입출력 장치

– 입력 장치 (input device) : 키보드, 마우스, Key Pad, Touch Screen

– 출력 장치 (output device) : 모니터, 프린터, LCD

• 통신 장치

– 모뎀(modem), 이더넷(Ethernet), IrDA, CDMA, Bluetooth

Page 3: StallingsOS6e-Chap01.ppt [호환 모드]

컴퓨터 구성 요소(최상위 수준 관점)

컴퓨터 시스템 개요 5

1.1 기본 구성 요소

컴퓨터 시스템 개요 6

1.2 처리기 레지스터

• 레지스터(register)

– 메모리 주소 레지스터 (Memory address register (MAR))

• 다음 번에 읽거나 쓸 주소를 명시

– 메모리 버퍼 레지스터 (Memory buffer register (MBR))

• 메모리에 쓸 데이터를 포함하거나 메모리로부터 수신된 데이터를 포함

– I/O 주소 레지스터(I/O AR)

– I/O 버퍼 레지스터(I/O BR)

Page 4: StallingsOS6e-Chap01.ppt [호환 모드]

사용자가 볼 수 있는 레지스터

컴퓨터 시스템 개요 7

– 레지스터 사용을 최적화하여 프로그래머가 주 메모리를 참조하는것을 줄여줌

– 모든 프로그램에서 사용

• 응용 프로그램과 시스템 프로그램

– 레지스터의 종류

• 데이터 레지스터

• 주소 레지스터

– 인덱스 레지스터: 유효 주소를 얻기 위해 베이스 값에 인덱스 값을더해 줌

– 세그먼트 포인터: 메모리가 세그먼트로 나뉘어질 때, 메모리는 세그먼트와 오프셋에 의해 참조됨

– 스택 포인터: 스택의 top을 가리킴

1.2 처리기 레지스터

컴퓨터 시스템 개요 8

제어 및 상태 레지스터

• Control and status registers

– 처리기의 작동을 제어하기 위해 사용

– 프로그램의 실행을 제어하기 위한 특권 모드의 운영체제 루틴에의해 사용됨

– 프로그램 계수기 (Program Counter (PC))

• 반입할 명령어의 주소 포함

– 명령어 레지스터 (Instruction Register (IR))

• 최근에 반입된 명령어 포함

– 프로그램 상태 워드 (Program Status Word (PSW))

• 인터럽트 가능화(enable)/불능화(disable)

• 수퍼바이저/사용자 모드

• 조건 코드(condition codes) 또는 플래그

– Positive result, Negative result, , Zero, Overflow

1.2 처리기 레지스터

Page 5: StallingsOS6e-Chap01.ppt [호환 모드]

명령어 수행

• 명령어 실행(instruction cycle) 2 단계

– 처리기가 메모리로부터 명령어 읽음(반입, fetch)

– 처리기가 각 명령어 실행

컴퓨터 시스템 개요 9

명령어 반입과 실행

• 처리기는 메모리로부터 명령어 반입

• 프로그램 계수기(PC)가 다음에 반입할 명령어의 주소를저장함

• PC는 매 명령어 반입 후 증가됨

컴퓨터 시스템 개요 10

1.3 명령어 수행

Page 6: StallingsOS6e-Chap01.ppt [호환 모드]

명령어 레지스터

컴퓨터 시스템 개요 11

• 반입된 명령어는 명령어 레지스터(IR)에 적재

• CPU 명령어의 범주

– 처리기-메모리

• 처리기와 메모리간 데이터 전달

– 처리기-I/O

• 주변장치로 (또는 주변장치로부터) 데이터 전달

– 데이터 처리

• 데이터에 산술 또는 논리 연산

– 제어

• 실행 순서의 변경

1.3 명령어 수행

Machine Instruction의 특징

컴퓨터 시스템 개요 12

1.3 명령어 수행

Page 7: StallingsOS6e-Chap01.ppt [호환 모드]

프로그램 실행 예

컴퓨터 시스템 개요 13

1.3 명령어 수행

1.4 인터럽트(interrupt)

• “처리기의 정상적인 흐름을 방해”한다는 의미의 인터럽트 이지만…

– 획기적인 컴퓨터 시스템 성능향상 역할을 함.

• 대부분의 I/O 장치는 CPU보다 느림

– CPU는 디바이스가 작업을 완료 할 때까지 기다려야 함

– Blocking I/O의 문제점

컴퓨터 시스템 개요 14

Page 8: StallingsOS6e-Chap01.ppt [호환 모드]

컴퓨터 시스템 개요 15

Computer System들의 전형적인 수행시간

항목 시간 사람의 시간으로 환산

Processor Cycle 0.5 ns(2GHz) 1초

Cache Access 1ns(1GHz) 2초

Memory Access 15ns 30초

Context Switch 5,000ns(5us) 167분

Disk Access 7,000,000ns(7ms) 162일

Time Quantum 100,000,000ns(100ms) 6.3년

주) 1ns = 10-9초, 1us = 10-6초, 1ms = 10-3초

1.4 인터럽트

인터럽트의 분류

컴퓨터 시스템 개요 16

• 대부분의 I/O 디바이스는 CPU보다 느림

– 처리기가 디바이스의 작업 완료를 위해 기다린다면

• 처리기의 성능 저하 유발

– 이를 위하여 디바이스가 작업이 완료되면 처리기에게 인터럽트를 걸 수 있도록 허용

1.4 인터럽트

Page 9: StallingsOS6e-Chap01.ppt [호환 모드]

인터럽트와 프로그램 제어 흐름

컴퓨터 시스템 개요 17

1.4 인터럽트

인터럽트 단계

• 처리기가 인터럽트를 검사

• 인터럽트가 발생한 경우

– 프로그램의 실행을 보류한다

– 인터럽트-처리 루틴을 실행한다

• 인터럽트 처리 루틴(Interrupt Service Routine)

– 특정 I/O 디바이스를 서비스하기 위한 프로그램

– 일반적으로 운영체제 커널 코드에 포함됨

– 인터럽트 처리를 위한 오버헤드가 존재하나, 입출력 연산이 완료되기를 기다리며 낭비하는 시간에 비해 상대적으로 짧다.

컴퓨터 시스템 개요 18

1.4 인터럽트

Page 10: StallingsOS6e-Chap01.ppt [호환 모드]

인터럽트를 통한 제어 분기

컴퓨터 시스템 개요 19

• 일반적인 실행흐름의 연기

1.4 인터럽트

인터럽트가 포함된 명령어 사이클

컴퓨터 시스템 개요 20

• 처리기는 인터럽트 발생 여부 검사

• 인터럽트가 발생하지 않았으면 지금 수행 중인 프로그램의 다음 명령어반입

• 인터럽트가 있으면, 현재 프로그램의 실행을 멈추고, 인터럽트 처리 루틴을 실행시킴

Page 11: StallingsOS6e-Chap01.ppt [호환 모드]

짧은 I/O 대기에 기반한 프로그램 실행 시간 다이어그램

컴퓨터 시스템 개요 21

1.4 인터럽트

긴 I/O 대기에 기반한 프로그램 실행 시간 다이어그램

컴퓨터 시스템 개요 22

1.4 인터럽트

Page 12: StallingsOS6e-Chap01.ppt [호환 모드]

간단한 인터럽트 처리

컴퓨터 시스템 개요 23

1.4 인터럽트

인터럽트 처리를 위한 메모리와 레지스터의 상태 변화

컴퓨터 시스템 개요 24

1.4 인터럽트

Page 13: StallingsOS6e-Chap01.ppt [호환 모드]

순차적 인터럽트 처리

컴퓨터 시스템 개요 25

• 하나의 인터럽트가 처리 중에는 다른 인터럽트를 불능화

– 상대적인 우선 순위나 시간 긴급도(time-critical)를 고려하지 않음

1.4 인터럽트

다중 인터럽트

컴퓨터 시스템 개요 26

• 인터럽트 간의 우선 순위 지정

1.4 인터럽트

Page 14: StallingsOS6e-Chap01.ppt [호환 모드]

다중 인터럽트

컴퓨터 시스템 개요 27

1.4 인터럽트

• 중첩 인터럽트의 시간적인 순서 예

다중 프로그래밍

• 처리기는 실행 가능한 하나 이상의 프로그램을 보유

• 프로그램이 실행되는 순서는 프로그램의 상대적인 우선순위와 입출력 대기 여부에 따라 달라짐

• 인터럽트 처리 루틴이 실행을 마치면, 인터럽트가 발생한 당시에 수행 중이던 프로그램으로 제어가 돌아가지않을 수 있음

• 여러 프로그램이 수행 순서를 바꿔가면서 처리되는 개념(multiprogramming)

컴퓨터 시스템 개요 28

1.4 인터럽트

Page 15: StallingsOS6e-Chap01.ppt [호환 모드]

1.5 메모리 계층 구조

• 접근 시간이 빠르면 비트 당 가격 증가

• 용량이 크면 비트 당 저장 비용이 작음

• 용량이 크면, 접근 속도는 느림

컴퓨터 시스템 개요 29

계층 구조를 따라 내려가면서

• 비트 당 비용이 감소

• 용량이 증가

• 접근 속도 느려짐

• 처리기가 접근하는 빈도가 줄어듦

컴퓨터 시스템 개요 30

1.5 메모리 계층 구조

Page 16: StallingsOS6e-Chap01.ppt [호환 모드]

Secondary Memory

• 보조 메모리

• 외부 저장 장치

• 비휘발성 (non-volatile)

• 프로그램과 데이터 파일을 저장하기 위해 사용

컴퓨터 시스템 개요 31

1.5 메모리 계층 구조

1.6 캐시 메모리(Cache Memory)

컴퓨터 시스템 개요 32

• cache [kæʃ] n.

① 숨겨두는 장소, (특히 식량·탄약 등을 숨겨두기 위한) 땅굴.

② 저장물, 은닉물.

③ 시렁(a wall shelf)

• 캐싱(Caching)

– 빠른 저장장치에 최근에 접근한 데이터를 저장하는 기법

– 캐시 관리 정책이 필요함.

– 캐시 메모리의 목적은 이용 가능한 가장 빠른 메모리의 속도에 근접한 메모리를 제공하는 동시에, 비용이 저렴한 대용량의 메모리를 제공하는 것이다.

– 캐시메모리와 주기억장치에 동시에 데이터의 복사본이 존재 함으로서 발생되는 데이터 불일치성(data inconsistency) 문제를 해결해야 한다.

Page 17: StallingsOS6e-Chap01.ppt [호환 모드]

캐시 원칙 1

• 주 메모리의 한 영역의 복사본을 가지고 있음

• 처리기는 먼저 캐시를 참조

• 캐시에 없으면, 필요한 정보가 저장된 메모리 블록이 캐시로 읽혀짐

• 참조 지역성 때문에 향후 참조될 데이터는 캐시에 존재할 가능성이 높음

컴퓨터 시스템 개요 33

1.6 캐시 메모리

캐시/주 메모리 구조

컴퓨터 시스템 개요 34

1.6 캐시 메모리

• 캐시 메모리 구성 원리

– 교재: pp. 58 ~ 59.

Page 18: StallingsOS6e-Chap01.ppt [호환 모드]

참조 지역성 원리

컴퓨터 시스템 개요 35

• 참조 지역성(Locality of Reference)

– 프로그램이 수행되는 동안, 명령어와 데이터 둘 다에 대한 처리기의 메모리 참조는 인근 지역으로 몰리는 경향이 있다. 이러한 원리를 참조 지역성의 원리라고 한다.

– 장기간으로 보면 이들 집단들은 변하게 되나, 단기적으로는 처리기가 고정된 메모리 참조 집단들을 주로 이용하여 일을 처리한다

– 시간 참조지역성 (temporal locality of reference)

• 명령문: 반복문, 서브루틴

– 공간 참조지역성 (spatial locality of reference))

• 데이터: 테이블, 배열

1.6 캐시 메모리

컴퓨터 시스템 개요 36

참조 지역성 원리 (cont’d)

• 적중률(Hit ratio)

– 적중률(H)은 보다 빠른 메모리(예를 들어, 캐시)에서 메모리 접근이 성공할 확률로 정의된다.

• Example

– T1: 단계 1 메모리(예: 캐시 메모리)에 접근하는 시간

• T1 = 0.1us

– T2: 단계 2 메모리(예: 주 메모리)에 접근하는 시간

• T2 = 1us

– 메모리 접근 중 95%가 캐시 메모리에서 발견된다고 가정하면,

• Hit ratio H = 0.95

– 하나의 바이트를 접근하는데 걸리는 평균 메모리 접근 시간은

• (0.95)(0.1us) + (0.05)(0.1us + 1us) = 0.095 + 0.055 = 0.15us

1.6 캐시 메모리

Page 19: StallingsOS6e-Chap01.ppt [호환 모드]

컴퓨터 시스템 개요 37

캐시 읽기 연산1.6 캐시 메모리

캐시 원칙 2

• 캐시 메모리의 크기

– 작은 크기의 캐시도 성능에 큰 영향을 미침

• 캐시 블록의 크기

– 캐시와 메인 메모리 사이에 교환되는 데이터의 단위

– 블록의 크기가 클수록 높은 적중률을 보임

• 단, 새로 반입된 데이터를 참조할 확률이 캐시에서 방출된 데이터를참조할 확률보다 적어질 때까지

• 매핑 함수

– 블록이 캐시의 어느 위치에 저장될 지를 결정

• 교체 알고리즘(Replacement Algorithm)

– 교체될 블록을 선정

– Least-recently-used (LRU) 알고리즘

컴퓨터 시스템 개요 38

1.6 캐시 메모리

Page 20: StallingsOS6e-Chap01.ppt [호환 모드]

캐시 원칙 3

• 쓰기 정책

– 어느 시점에 메모리로 쓸 것인가를 결정

– 블록이 갱신될 때마다 씀

– 블록이 교체될 때마다 씀

• 쓰기 연산을 최소로 함

• 메인 메모리의 데이터가 최신이 아닐 수 있음

컴퓨터 시스템 개요 39

1.6 캐시 메모리

1.7 입출력 통신 기술

컴퓨터 시스템 개요 40

• Programmed I/O

– 입출력 연산 시작 및 중간 과정에 CPU가 개입

– 입출력 연산 종료 여부도 처리기가 매번 직접 검사

– 따라서 종료할 때까지 처리기는 다른 일을 할 수 없음

• Interrupt-driven I/O

– I/O 장치에서 사건이 발생하면 CPU로 인터럽트를 보내 마무리 하게 함

– 입출력 준비됨 / 입출력 완료됨 / 입출력 장치 상태 보고 / …

• DMA(Direct Memory Access)

– 장치 제어기가 자신의 buffer storage에서 주 메모리로 직접 데이터를 보내고 받는다.

Page 21: StallingsOS6e-Chap01.ppt [호환 모드]

Programmed I/O

• 처리기가 아니라 입출력 모듈이 수행

• 입출력 상태 레지스터에 적절한 비트를 세트

• 인터럽트가 없음

• 처리기는 연산이 완료될 때까지 상태를 반복적으로 검사해야 함.

컴퓨터 시스템 개요 41

1.7 입출력 통신 기술

인터럽트 기반의 I/O

• I/O 모듈이 데이터를 전달할 준비가 될때 처리기를 인터럽트

• 처리기는 프로그램의 실행 문맥을 저장하고 인터럽트 처리 루틴을 실행 시킴

• CPU가 입출력이 끝나기를 기다릴 필요가 없어 CPU 낭비가 줄어듦

• 읽거나 쓸 데이터가 처리기를 통해서 이동되기 때문에 처리기 시간을 낭비함

컴퓨터 시스템 개요 42

1.7 입출력 통신 기술

Page 22: StallingsOS6e-Chap01.ppt [호환 모드]

Direct Memory Access

• 데이터 블록을 메모리로(또는로부터) 직접 전송

• 전송이 완료되면 인터럽트가 보내짐

• 훨씬 효율적임

컴퓨터 시스템 개요 43

1.7 입출력 통신 기술

컴퓨터 시스템 개요 44

요 약

• 컴퓨터 시스템 구성요소

– 사용자가 볼 수 있는 레지스터, 제어 및 상태 레지스터

• 명령어 실행 사이클

• 인터럽트

– 인터럽트와 명령어 사이클, 인터럽트 처리, 중첩 인터럽트

• 메모리 계층 구조

• 캐시 메모리

– 참조지역성의 원리, 캐시 설계, 사상함수, 교체알고리즘

• 입출력 통신 기술

– 프로그램된 입출력, 인터럽트 구동 입출력, DMA