• 검색 결과가 없습니다.

1. 입출력 시스템

N/A
N/A
Protected

Academic year: 2022

Share "1. 입출력 시스템 "

Copied!
24
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(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) + 회전지연시간(Rotation al 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 생성

참조

관련 문서

setf와 unsetf 멤버 함수를 이용한 입출력 형식 지정 setf 이외의 멤버 함수를 이용한 입출력 형식 지정 입출력 조작자를 이용한 입출력 형식 지정.. 사용자

특정 네임스페이스에 포함되어 있는 식별자를 전역 네임스페이스(또 는 다른 네임스페이스)에 있는 것처럼 사용하는 방법.

입출력 인터페이스, 입출력 채널(channel), 입출력 프로세서, 입출력 제어기 (controller), 장치 제어기(device controller) 등의 여러 가지

• 다중 스레드 방식은 하나의 프로세스 안에 여러 개의 스레드가 있으므로 지금 실행되는 스레드에서 입출력 명령이 발생해서 더 이상 스레드가 실행되지 못하는

• 주기억장치의 일정 영역을 버퍼로 지정하고 입출력 데이터를 버퍼 에 둔 상태에서 입출력 기능만 별도로 수행하는 입출력 채널이 입출

 PC에 저장된 명령어 주소가 시스템 주소 버스로 출력되기 전에 일시적으로 저장되는 주소 레지 스터.  기억장치 버퍼

이 학생들의 숙제1, 숙제2, 숙제3의 성적을 가상으로 만들어서 exam.txt 파일에 아래와

• 모든 자바 입출력 클래스는 궁극적으로 바이트단위 입출력 을