운영체제

하드디스크 스케줄링

소재훈 2021. 12. 6. 02:27

HDD moving-head disk mechanism.

하드디스크의 중간에는 LP판처럼 생긴 것이 있고, 판 중간의 암이 움직이면서 헤드가 데이터를 읽는다. 판을 track이라고 하고, 각 공간을 sector라고 한다. 하드디스크의 치명적인 약점은 읽고자 하는 섹터를 읽기위해서 헤드가 먼저 그 트랙까지 움직이고 트랙을 찾은 다음 섹터를 찾기 위해서 판이 돌아야 되는 이 seek time이 길다는 것이다. flat을 돌리는 시간을 rotational latency라고 하고, 이 두개의 시간을 더한 것을 positioning time이라고 한다.

 

패드를 원하는 위치에 위치하기까지 걸리는 시간 = seek time + retational time

 

물리적으로 움직여 데이터를 찾기 때문에 ms단위의 시간이 걸린다. 나노시간 단위로 동작하는 CPU와는 굉장히 큰 시간차이가 난다는 단점이 있다.


HDD Scheduling

OS와 디스크 간의 통신의 빠르기도 중요하지만, 더 많은 시간을 차지하는 access time을 줄이는 것이 중요하다. 작업이 많아지면 대기열이 생기고, 대기열에 있는 작업을 어떤 순서로 디스크에 요청할지 결정하는 것이 디스크 스케줄링이다. 헤드의 움직임을 최소화하는 것이 제일 좋다.

1. FCFS: 먼저 들어온 것을 먼저 처리하는 방법이다.

FCFS disk scheduling.

2. Scan Scheduling: 헤드가 바깥쪽으로 가면서 걸리는 것을 서비스하고, 또 안쪽으로 가면서 걸리는 것을 처리하는 방법이다. elevator algorithm이라고 하기도 한다.

SCAN disk scheduling.

3. C-Scan: 한번 스캔을 한 후, 원위치 하고 다시 스캔하는 방법이다. SCAN 방법보다 공평한 방법이다.

C-SCAN disk scheduling.

 

작업량이 많지 않을 때는 FCFS 방법을 쓰는 것도 좋다. 작업량이 많을 때는 Scan이나, C-Scan방법이 좋다.

 

 

 

 

이미지 출처: Operating System Concept

'운영체제' 카테고리의 다른 글

02. Introduction To Operating System  (0) 2022.03.19
Page Replacement  (0) 2021.12.06
운영체제별 메모리 할당법  (0) 2021.12.06
Allocating Kernel Memory(커널 메모리 할당)  (0) 2021.12.06
Thrashing 과 frame 할당  (0) 2021.12.06