디스크 스케줄링

OS 2015. 7. 31. 14:55

"디스크에 대한 입출력은 굉장히 느리다."

왜 느린가?

Access Time = SeekTime + LatencyTime + Transmission Time

- Seek time

디스크 암(Disk Arm)의 헤드가 실린더가 포함하는 원하는 트랙으로 이동하는 시간을 의미한다. 

- Rotational latency (회전지연시간)

디스크 암의 헤드가 특정 트랙까지 이동한 후 디스크가 회전하여 트랙에 포함되어 있는 특정 섹터가 디스크암의 헤드까지 도달하는데 걸리는 시간

- Transmission Time(전송시간)

디스크 암의 헤드가 Access한 Sector와 주기억장치 간의 자료 전송에 걸리는 시간


* 트랙(Track) : 디스크 표면에서 회전축(스핀들 모터)을 중심으로 데이터가 기록되는 동심원

* 섹터(Sector) : 트랙들을 일정한 크기로 구분한 부분이며, 정보 기록의 기본 단위임

* 실린더(Cylinder) : 서로 다른 면들에 있는 동일 위치의 트랙들의 모임으로, 실린더의 수는 한 면의 트랙 수와 동일함


이러한 디스크에 대한 효율적인 시간 사용을 위하여 디스크 스케쥴링이 필요하다.


디스크 스케쥴링 기법

1) FCFS(First Come First Served)

들어오는 순서대로 이동하는 것이다. 


2) SSTF(Shortes Seek Time First)

현재의 헤드 포지션으로부터 최소한의 Seek-Time이 가능한 곳을 먼저 요청한다.

정리해보자면

 - 들어온 순서대로가 아닌 가까운 순서대로 접근한다.

 - 양 끝은 starvation에 고통 받을 수 있다. 

 - SSTF는 Minimum Avg SeekTime으로써 퍼포먼스는 좋다.

 - Small Disk Load System에는 좋다. 하지만, Heavy Disk Load System에는 좋지 않다.(startvation때문이다.)


3) SCAN(Elevator Algorithm)

디스크 암(Disk Arm)이 한 쪽 끝에서 시작해서 한 쪽 끝으로 움직인다

다른 쪽 끝에 도달하면 다시 거꾸로 끝까지 서비스를 계속한다. (왔다갔다 한다는 말이다)

이 것을 엘레베이터 알고리즘이라고도 부른다.


4) C-SCAN

SCAN방식과 유사하다.

한쪽 끝에서 시작해서 반대편 끝으로 이동하면서 SEEK한다. 

차이점은 반대편 끝에 도달해서는 다시 처음으로 돌아와서 시작한다.


디스크 스케쥴링 알고리즘의 퍼포먼스(성능)에 대해서 이야기 해보자.

누가 더 빠른가?(Avg Seek Time)

FCFS < C-SCAN < SCAN < SSTF


누가 더 공정한가?

FCFS > C-SCAN > SCAN > SSTF


SSTF에서 등장한 문제점인 STARVATION이란 무엇인가?

우선순위가 낮아 할당받지 못하는 상태를 무한 연기라고 하며,

무한 연기되어 결국에는 디스크 IO를 완료하지 못하는 것을 startvation이라고 합니다.




'OS' 카테고리의 다른 글

프로세스와 스레드 차이  (0) 2015.07.31
데드락 교착상태  (0) 2015.07.31
CPU 스케줄링  (0) 2015.07.31
페이지 교체 알고리즘  (0) 2015.07.31
가상 메모리 시스템과 페이지 폴트  (1) 2015.07.31
Posted by slender ankles
,