운영체제 강의노트 -...

24
소프트웨어학과 원성현 교수 1 운영체제 강의노트 교재 : 운영체제(개정판) 출판사 : 한빛미디어(201011발행) 저자 : 구현회

Upload: others

Post on 01-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

소프트웨어학과 원성현 교수 1

운영체제 강의노트

교재 : 운영체제(개정판) 출판사 : 한빛미디어(2010년 11월 발행) 저자 : 구현회

소프트웨어학과 원성현 교수 2

9장 입출력시스템과 디스크 관리

소프트웨어학과 원성현 교수 3

1. 입출력 시스템

입출력 모듈

• 입출력 모듈 • 입출력 채널(I/O channel) 또는 입출력 프로세서

• 프로세서를 대신하여 입출력 모듈이 입출력과 관련된 복잡한 일을 처리

• 입출력 제어기(I/O Controller) 또는 장치 제어기(Device Controller)

• 입출력 모듈이 단순히 프로세서의 입출력과 관련된 일을 담당

• 입출력 모듈의 필요성 • 프로세서와 입출력 장치는 실행 속도가 다름

• 실행 속도가 다른 여러 장치에 대한 조정을 하지 못하면 데이터 손실이 발생함

• 입출력 장치들은 시스템 버스에 연결되지 않고 입출력 모듈을 통해 연결됨

• 입출력 장치에 따라 제어 방식과 운영 방식이 다르기 때문

소프트웨어학과 원성현 교수 4

1. 입출력 시스템

시스템 버스 – 입출력 버스

캐시

프로세서

메인메모리

입출력제어기 입출력제어기 입출력제어기 입출력제어기

인터럽트

네트워크

입출력 모듈 구성

소프트웨어학과 원성현 교수 5

1. 입출력 시스템

• 입출력 모듈의 기능 • 입출력 장치의 제어

• 입출력 모듈이 외부장치의 타이밍과 데이터 형식, 기계적인 세부사항을 처리해주기 때문에 프로세서는 단순히 파일 열기, 파일 닫기 명령만을 이용하여 장치 제어 가능

• 프로세서와의 통신 • 프로세서로부터 수행해야 할 명령어를 전달받고, 관련된 메시지를 인식하기 위한 기능 제공

• 명령어 해독 – 데이터 교환 – 상태 보고 – 주소 인식 • 데이터 버퍼링

• 주기억장치 또는 프로세서와 입출력장치의 속도 차를 해결하기 위해 입출력 데이터를 위해 주기억장치의 일부를 제공

• 오류 검출 • 종이 걸림, 불량 디스크 트랙 등과 같은 기계적인 결함, 전송 중에 발생하는 전송 결함 등을 해결

• 전송 결함 해결을 위해 가장 일반적으로 사용하는 방법은 패러티 비트

소프트웨어학과 원성현 교수 6

1. 입출력 시스템

프로세서와 입출력장치의 속도 조절 방식

• 프로그램 제어 입출력 • 폴링(polling) 방식이라고도 함 • 프로세서 내부에 있는 입출력 데이터와 주소 레지스터를 입출력 모듈과 연결한 형태로 주소 레지스터와 버스 사이에서 데이터를 직접 전송할 수 있는 가장 간단한 형태 • 프로세서보다 상대적으로 느린 입출력장치의 입출력 동작 상태를 확인하기 위해 상태 비트를 주기적으로 검사

포트 상태 레지스터 확인

데이터 전송

플래그 조사

입출력장치 준비

입출력장치 미준비

소프트웨어학과 원성현 교수 7

1. 입출력 시스템

• 인터럽트 기반 입출력 • 입출력장치가 작업을 완료한 다음에 작업과 관련된 상태와 결과를 메모리에 저장하고, 인터럽트를 발생시켜 프로세서에 통보 • 프로그램 제어 입출력 방식보다 빠름

장치드라이버 입출력 초기화(입출력 시작)

인터럽트 수신(인터럽트 처리기에게 제어 전환)

프로세서 실행 중 명령어 수행 후 인터럽트 조사

인터럽트 처리기가 자료처리(인터럽트로부터 복귀)

인터럽트된 작업의 처리 및 다시 시작

프로세서

입출력 초기화 (입출력 시작)

입출력 준비, 출력 완료 또는 오류

입출력 제어기 ①

소프트웨어학과 원성현 교수 8

1. 입출력 시스템

• DMA(Direct Memory Access) 입출력 • 프로그램 제어 입출력과 인터럽트 기반 입출력 방식은 데이터 전송과 관리를 프로세서가 담당

• 프로세서 부담 가중 • DMA 방식은 프로세서가 읽기 및 쓰기 정보, 입출력 주소 및 메모리 주소, 길이 등을 DMA 제어기에 주면 DMA 제어기가 직접 처리

Address

Count

Control

프로세서 DMA제어기 디스크 제어기 메인메모리

버스

인터럽트 종료시

버퍼

② ③

소프트웨어학과 원성현 교수 9

1. 입출력 시스템

• 입출력 채널 • 프로그램 제어 입출력과 DMA 비교

• 프로그램 제어 입출력 방식은 최소한의 하드웨어만으로 구현 가능하고, 저속 장치에 적용하기 용이 • DMA는 데이터 전송을 담당하는 외부 제어기가 필요하고, 고속 장치에 적용하기 용이

• 현대 컴퓨터 시스템에서는 입출력 채널 방식을 사용 • 다른 프로세서의 도움 없이 독자적으로 입출력 동작 수행

프로세서 메인 메모리

제어장치 (다중장치)

제어장치 제어장치

서브시스템

장치 장치 장치

채널 경로 채널 경로

소프트웨어학과 원성현 교수 10

2. 자기 디스크

디스크 외형 디스크 팩

자기 디스크의 물리적 구조

소프트웨어학과 원성현 교수 11

2. 자기 디스크

하드디스크 구조 플래터

소프트웨어학과 원성현 교수 12

2. 자기 디스크

디스크 접근 시간

• 디스크 접근 시간(Disk Access Time) • 디스크 상의 원하는 위치로 접근하는데 소요되는 시간 • Access Time = 탐색 시간(Seek Time) + 회전지연시간(Rotational Latency) + 전송 시간(Transfer Time)

• 탐색 시간은 원하는 데이터가 있는 실린더(또는 트랙)를 찾는데 소요되는 시간 • 회전지연시간은 해당 실린더에서 원하는 섹터를 찾는데 소요되는 시간 • 전송 시간은 실제 데이터를 전송하는데 소요되는 시간

• 디스크 접근 시간을 줄이는 방법 • 탐색 시간을 줄이는 방법 • 회전지연시간을 줄이는 방법 • 일반적으로는 탐색 시간의 비중이 크기 때문에 디스크 스케줄링 알고리즘은 헤드의 이동 거리를 줄이는 쪽으로 발전해왔음

• 최근 회전지연시간을 줄이려는 노력이 생김

소프트웨어학과 원성현 교수 13

3. 디스크 스케줄링

디스크 스케줄링 전략

• 선입 선처리 스케줄링(FCFS : First Come First Served) • 도착한 순서대로 서비스 • 단순하게 적용할 수 있는 장점은 있으나 디스크 헤드의 이동이 많아서 효율적이지 못함

Sequence : 98 183 37 122 14 124 65 67

0 14 37 53 65 67 98 122 124 183 199

총 헤드 이동 : 640

Head Position

소프트웨어학과 원성현 교수 14

3. 디스크 스케줄링

• 최소 탐색 시간 우선 스케줄링(SSTF : Shortest Seek Time First) • 현재의 헤드 위치에서 가장 가까운 위치로 이동하여 서비스 • 효율적인 장점은 있지만 현재 헤드의 위치에서 먼 트랙에 있는 작업은 기아(starvation)에 빠질 수 있음 • 현재 위치에서 가장 가까운 트랙으로 이동하는 것이 가장 효율적이라는 보장은 없음

Sequence : 98 183 37 122 14 124 65 67

0 14 37 53 65 67 98 122 124 183 199

총 헤드 이동 : 236

Head Position

소프트웨어학과 원성현 교수 15

3. 디스크 스케줄링

• 스캔 스케줄링(SCAN) • 현재 디스크 헤드의 진행 방향으로만 이동하고 끝에 다다랐을 때 방향을 바꾸어 서비스 • 엘리베이터 알고리즘이라고도 함

Sequence : 98 183 37 122 14 124 65 67

0 14 37 53 65 67 98 122 124 183 199

총 헤드 이동 : 252

Head Position

소프트웨어학과 원성현 교수 16

3. 디스크 스케줄링

• 순환 스캔 스케줄링(C-SCAN) • 현재 디스크 헤드의 진행 방향으로만 이동하고 끝에 다다랐을 때 다시 반대쪽 끝으로 와서 동일한 방향으로 서비스

Sequence : 98 183 37 122 14 124 65 67 Head

Position

0 14 37 53 65 67 98 122 124 183 199

총 헤드 이동 : 183 + α

소프트웨어학과 원성현 교수 17

3. 디스크 스케줄링 • 룩 스케줄링(LOOK, C-LOOK)

• 현재 디스크 헤드의 진행 방향으로만 이동하고 더 이상의 요청이 없을 때 이동 방향을 바꾸어 서비스 • 룩(Look)이란 진행 방향으로 이동하기 전 요청이 있는지 없는지를 확인하는 작업

Sequence : 98 183 37 122 14 124 65 67 Head

Position

0 14 37 53 65 67 98 122 124 183 199

총 헤드 이동 : 153 + α

소프트웨어학과 원성현 교수 18

3. 디스크 스케줄링

• 회전 최적화 • SSTF나 스캔 등 전통적인 디스크 스케줄링 알고리즘은 디스크 헤드의 이동을 최소화함으로써 대기시간과 총 처리시간을 단축시키려고 함 • 현재의 디스크 시스템은 탐색시간(디스크 헤드 이동 시간)이 매우 빨라져서 회전지연시간과 엇비슷하게 되었으므으로 회전지연시간을 단축시켜서 시간을 단축시킬 수 있음 • 최소 지연시간 우선 스케줄링(SLTF : Shortest Latency Time First)

• 동일한 실린더 내에서는 가장 인접한 섹터를 서비스하여 회전지연시간 단축 • 교재 451쪽 [그림 9-20] 참조

• 최소 위치결정시간 우선 스케줄링(SPTF : Shortest Positioning Time First)

• 탐색시간과 회전지연시간을 모두 합해서 시간이 가장 짧은 요청에 대해 먼저 서비스 • 교재 453쪽 [그림 9-22] 참조

소프트웨어학과 원성현 교수 19

3. 디스크 스케줄링

• 일반적으로는 SSTF 알고리즘이 가장 효율적으로 알려져 있음 • 스캔 또는 C-스캔은 디스크를 많이 사용하는, 입출력 작업이 빈번한 시스템에 적합

• 어느 알고리즘이든 알고리즘의 성능은 요청되는 서비스의 형태와 요청 수에 의존

• 디스크 사용 빈도가 적은 경우는 알고리즘 간의 성능 차이가 거의 발생하지 않음

• 이런 경우는 FCFS가 가장 효율적임 • 디스크 서비스의 요청은 파일 할당 방식과도 밀접함

• 연속적인 파일 할당 방식은 디스크의 인접한 공간에서 자주 입출력이 발생하기 때문에 디스크 헤드의 이동은 적으나 공간 활용도가 낮음 • 링크 파일이나 색인 파일의 경우에는 디스크 전체에 걸쳐 파일이 수록되기 때문에 디스크 헤드 이동 거리는 길지만 디스크 공간 활용도는 효율적임

디스크 스케줄링 알고리즘의 선택

소프트웨어학과 원성현 교수 20

4. RAID

• RAID(Redundant Array of Independent 또는 Inexpensive Disk) • 1987년 UC 버클리의 Patterson, Gibson, Katz에 의해 발표되어 논문 ‘A Case for Redundant Arrays of Inexpensive Disks’에서 등장한 기술로 여러 개의 물리적 디스크를 하나의 논리적 디스크로 인식하는 기술

•1~5 단계로 제안된 자기기억장치의 새로운 기술과 SLED(Single Large Expensive Disk)를 비교하여 설명 • 그 후로 여러 업체에서 제안한 0, 6, 10수준 등이 있는데 여러 디스크를 병렬로 연결하여 사용하는 기법으로서 접근(access) 속도와 데이터 보존 신뢰가 우수할 수록 높은 등급을 받는 5단계로 구분

• 데이터를 여러 개의 하드 디스크에 분할 저장하여 전송 속도를 향상시키고 시스템 가동 중 생길 수 있는 디스크의 오류를 시스템 정지하지 않고 교체 가능

RAID 계층

소프트웨어학과 원성현 교수 21

4. RAID

• RAID 0 • 일명 stripping이라고도 불리는데 strip이라고 하는 일정한 크기의 섹터 또는 물리적 블록 단위로 나누어 연속적인 배열 첨자와 대응되도록 순환 할당

• 논리적으로 연속된 strip들의 집합을 stripe라고 함 • 데이터를 중복 저장하지는 않으므로 특정 디스크에서 장애가 발생하면 데이터는 손실됨 • 데이터 손실이 다소 발생해도 시스템 효율에 크게 지장을 주지 않는 동영상 시스템과 같은 응용에 적합

M

I

E

A

N

J

F

B

O

K

G

C

etc

L

H

D

소프트웨어학과 원성현 교수 22

4. RAID

• RAID 1 • 일명 mirroring이라고도 불리는데 RAID0과 같이 기본적으로 stripping을 사용하면서 미러 디스크(mirror disk)를 가짐

• 미러 디스크란 복사본을 말함 • 읽기 동작은 동일한 내용을 가진 2개의 디스크에서 병렬 처리되므로 성능 향상 • 한쪽 디스크에서 장애가 발생해도 다른 한쪽 디스크를 사용할 수 있으므로 시스템 안정성이 향상되지만 디스크 공간이 두배 이상 필요함 • 시스템 드라이브와 같은 중요한 파일을 운영할 때 적합

M

I

E

A

N

J

F

B

O

K

G

C

etc

L

H

D

M

I

E

A

N

J

F

B

O

K

G

C

etc

L

H

D

멀티미디어공학과 원성현 교수

N

J

F

B

소프트웨어학과 원성현 교수 23

4. RAID

• RAID 2 • 해밍 코드를 이용해서 패리티 비트(parity bit)를 별도로 저장해서 오류 검증 • 기본적으로는 파일을 분할해서 분산 저장하고, 패리티 비트만 저장하고 있는 디스크의 정보를 통해 오류가 있는지를 확인 • 최근에는 SCSI 드라이브에도 자체적인 오류 검출 능력을 갖고 있기 때문에 RAID2는 보편적으로 사용되는 계층은 아님

D0

C0

B0

A0

멀티미디어공학과 원성현 교수

D1

C1

B1

A1

D2

C2

B2

A2

D3

C3

B3

A3

ECC/DX

ECC/CX

ECC/BX

ECC/AX

ECC/DY

ECC/CY

ECC/BY

ECC/AY

ECC/DZ

ECC/CZ

ECC/BZ

ECC/AZ

소프트웨어학과 원성현 교수 24

4. RAID

• RAID 3 • 오류 검출과 수정을 위해 별도의 드라이브 한 개를 패리티 드라이브로 사용 • 내장된 오류 정정 코드 정보는 오류를 감지하는데 사용하며, 데이터 복구는 다른 드라이브에 기록된 정보의 XOR을 계산하여 수행 • 대형 레코드가 많이 사용되는 단일 사용자 시스템과 다량의 데이터 전송이 요구되는 CAD나 이미지 작업에 적절한 계층

D0

C0

B0

A0

멀티미디어공학과 원성현 교수

D1

C1

B1

A1

D2

C2

B2

A2

D3

C3

B3

A3

D Parity

C Parity

B Parity

A Parity

스트립 0 스트립 1 스트립 2 스트립 3

Parity 생성