본문 바로가기
  • 실행력이 모든걸 결정한다
OS 개념 정리

[OS] I/O System

by 김코더 김주역 2021. 6. 30.
반응형

1. I/O란?

Input과 Output

즉, 입출력을 의미함.

 

 

 

2. I/O Mechanisms

1) CPU 제어

CPU가 I/O 장치와 메모리 사이의 모든 데이터 전송을 처리하는 기법

 

(1) Polling

<1> 특징

- CPU가 모든 I/O 장치의 상태를 주기적으로 조사

<2> 장점

- 간단함

- I/O 장치가 빠르고, 데이터 전송이 잦은 경우에 효율적임

<3> 단점

- CPU의 부담이 큼

 

(2) Interrupt

<1> 특징

- I/O 장치가 작업을 완료한 후, 자신의 상태를 CPU에게 전달

- Interrupt가 발생하면 CPU는 데이터를 주거나 받는 일을 수행함

<2> 장점

- Pooling 방식보다 overhead가 적음

- 불규칙적인 요청 처리에 적합함

<3> 단점

- Interrupt handling overhead

 

 

2) 직접 제어

DMA(Direct Memory Access)라고 하며, CPU의 개입 없이 I/O 장치와 메모리 사이의 데이터 전송을 수행하는 기법

 

Processor(CPU)는 데이터 전송의 시작과 종료에만 관여함

 

 

 

3. OS가 제공하는 I/O Service

1) I/O Scheduling

2) 입출력 중 발생하는 오류 처리

3) I/O 장치 정보 관리

4) 버퍼링(Buffering)

- I/O 장치와 Program 사이에 전송되는 데이터를 Buffer에 임시 저장하는 것

- 전송 속도나 처리 단위의 차이에 의한 문제를 해결할 수 있음

(5) 캐싱(Caching)

- 자주 사용하는 데이터를 미리 복사해두는 것

- Cache hit가 발생하면 I/O를 생략할 수 있음

(6) Spooling

- 다수 프로세스들이 한 I/O 장치로 요청을 보냈을 때, 각 프로세스의 요청이 독립적으로 수행될 수 있도록 하는 기법

- 요청을 Disk file (spool)에 기록해두고, spool을 한번에 하나씩 I/O로 전송함

 

 

 

4. Disk Scheduling

1) 의미

- Disk access 요청들의 처리 순서를 결정하는 것

- Seek timeRotational delay time을 줄이기 위한 것

 

 

2) 평가 기준

- Throughput : 단위 시간당 처리량

- Mean response time : 평균 응답 시간

- Predictability : 응답 시간의 예측성

 

 

3) Seek time 최적화 기법

디스크는 여러 개의 Cylinder로 구성되어 있다. 각 Disk access 요청에 대한 Cylinder 위치(번호)가 주어 졌을 때, Head가 모든 요청을 처리하기 위한 총 이동 거리를 줄여나가는 기법들을 소개한다.

 

(1) FCFS

<1> 특징

- 요청이 도착한 순서에 따라 처리

<2> 장점

- Disk access 부하가 적은 경우에 적합

- 공평하고 무한 대기 방지 현상이 없음

- 간단하고 overhead가 작음

<3> 단점

- 최적 성능 달성에 대한 고려가 없음

 

(2) SSTF(Shortest Seek Time First)

<1> 특징

- 현재 head 위치에서 가장 가까운 요청 먼저 처리

<2> 장점

- 처리량 증가

- 평균 응답 시간 감소

- 일괄 처리 시스템에 적합

<3> 단점

- 기아 현상 발생 가능

- 응답 시간의 예측이 어려움

 

(3) Scan Scheduling

<1> 특징

- 현재 head의 진행 방향에서, head와 가장 가까운 요청 먼저 처리

- 끝 cylinder에 도착하면, 반대 방향으로 진행

<2> 장점

- 기아 현상 문제가 해결된 SSTF

- 처리량 증가

- 평균 응답 시간 감소

<3> 단점

- 진행 반대 방향 끝에 있는 요청의 응답시간 증가

 

(4) C-Scan Scheduling

<1> Scan Scheduling과의 차이

- Head가 미리 정해진 한 방향으로만 이동

- 끝 cylinder에 도착하면, 반대쪽 끝 cylinder로 이동 후 재시작

<2> 장점

- Scan Scheduling보다 공평함

<3> 단점 

- 반대쪽 끝 cylinder로 이동할 때 많은 지연 시간 발생

 

(5) Look Scheduling

<1> Scan Scheduling과의 차이

- 현재 진행 방향에 요청이 없으면 방향 전환 (엘리베이터 알고리즘)

<2> 장점

- Scan Scheduling에서 불필요한 head 이동이 제거됨

 

 

4) Rotational Delay time 최적화 기법 : SLTF(Shortest Latency Time First)

- Disk queue에 있는 요청들을 sector 위치를 기준으로 정렬하고, 가장 가까운 sector에 있는 요청부터 처리

- Sector Queuing 이라고도 함

 

 

5) SPTF(Shortest Positioning Time First)

(1) 특징

- Seek time, Rotational delay time을 모두 고려하는 알고리즘

- 대표적으로 에센바흐(Eschenbach) 알고리즘이 있음

(2) 장점

- 처리량 증가

- 평균 응답 시간 감소

(3) 단점

- 기아 현상 발생 가능

※ Positioning time = Seek time + Rotational delay time

※ 에센바흐 알고리즘 : 헤드는 C-Scan처럼 움직이면서, Disk가 1회전 하는 동안 요청을 최대한 많이 처리할 수 있도록 요청을 정렬해두는 알고리즘

 

 

 

5. RAID

Redundant Array of Inexpensive Disks

 

1) 특징

- 여러 디스크들을 하나의 저장 장치로 묶어서 사용하는 방식

- 디스크 시스템의 성능 향상을 위해 사용됨

 

 

2) RAID 아키텍쳐

(1) RAID-0

<1> 특징

- 모든 디스크에 입출력 부하를 균등하게 분배

- 성능만 고려한 기법

- Block striping 사용

※ Block striping : block을 일정한 크기로 나누어 각 디스크에 나누어 저장하는 기법

<2> 장점 : 병렬이기 때문에 데이터 접근이 빠름

<3> 단점 : 한 디스크에서 장애가 발생하면 그 디스크에 있는 파일들은 사용할 수 없음

<4> 사용 예시 : 영상처럼 데이터를 빠르게 읽어내야 하는 곳에 사용함

 

(2) RAID-1

<1> 특징

- 최소 2개의 디스크로 구성되며, 동일한 데이터를 미러링 디스크에 중복으로 저장

- 신뢰성만 고려한 기법

<2> 장점 : 한 디스크에 장애가 생겨도 데이터 손실이 없음

<3> 단점 : 용량을 많이 차지함

 

(3) RAID-2

https://www.thegeekstuff.com/2011/11/raid2-raid3-raid4-raid6/

<1> 특징

- ECC 디스크를 추가로 사용하여 데이터의 일관성을 확인하고, 필요한 경우 즉시 보정함

- Bit level striping

※ ECC : Error Correcting Code

<2> 장점 : 성능과 신뢰성을 모두 가짐

<3> 단점 : 구현이 복잡하고 비싸서 잘 사용되지 않음

 

(4) RAID-3

<1> 특징

- Parity 디스크를 추가로 사용하여 한 디스크에 장애가 발생하면 parity 정보를 이용하여 복구함

- Byte level striping

- 하나의 디스크 오류까지는 허용함

<2> 장점

- 성능과 신뢰성을 모두 가짐

<3> 단점

- 중첩 입출력이 불가능함

- Parity 디스크에 접근이 많이 몰리면 병목 현상이 발생하여 성능이 저하될 수 있음

 

(5) RAID-4

https://www.thegeekstuff.com/2011/11/raid2-raid3-raid4-raid6/

<1> 특징

- Parity 디스크를 추가로 사용한다는 점에서 RAID3과 유사하지만, Block level striping을 이용한다는 차이점이 있음

- RAID2, RAID3에서는 데이터를 읽거나 쓰기 위해서 모든 데이터 디스크에 동시에 접근 했지만, RAID4는 Block 단위로 한 디스크에 저장되기 때문에 독립적으로 접근됨

<2> 장점

- RAID3과 유사

- 데이터를 읽을 때 중첩 입출력이 가능함

<3> 단점

- RAID3과 유사

- 데이터를 쓸 때는 중첩 입출력이 불가능함

 

(6) RAID-5

Parity 디스크에 접근을 집중시키지 않고, Parity를 모든 디스크에 분산함

 

(7) RAID-6

https://www.thegeekstuff.com/2011/11/raid2-raid3-raid4-raid6/

각 데이터 블록에 대해 2개의 Parity를 사용하여 2개의 디스크 오류에도 데이터를 읽을 수 있음

 

 

 

이미지 출처 : 한빛 미디어 운영체제

참고 자료 : 김덕수 교수님 - www.youtube.com/playlist?list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN

반응형

댓글