
하드디스크의 중간에는 LP판처럼 생긴 것이 있고, 판 중간의 암이 움직이면서 헤드가 데이터를 읽는다. 판을 track이라고 하고, 각 공간을 sector라고 한다. 하드디스크의 치명적인 약점은 읽고자 하는 섹터를 읽기위해서 헤드가 먼저 그 트랙까지 움직이고 트랙을 찾은 다음 섹터를 찾기 위해서 판이 돌아야 되는 이 seek time이 길다는 것이다. flat을 돌리는 시간을 rotational latency라고 하고, 이 두개의 시간을 더한 것을 positioning time이라고 한다.
패드를 원하는 위치에 위치하기까지 걸리는 시간 = seek time + retational time
물리적으로 움직여 데이터를 찾기 때문에 ms단위의 시간이 걸린다. 나노시간 단위로 동작하는 CPU와는 굉장히 큰 시간차이가 난다는 단점이 있다.
HDD Scheduling
OS와 디스크 간의 통신의 빠르기도 중요하지만, 더 많은 시간을 차지하는 access time을 줄이는 것이 중요하다. 작업이 많아지면 대기열이 생기고, 대기열에 있는 작업을 어떤 순서로 디스크에 요청할지 결정하는 것이 디스크 스케줄링이다. 헤드의 움직임을 최소화하는 것이 제일 좋다.
1. FCFS: 먼저 들어온 것을 먼저 처리하는 방법이다.

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

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

작업량이 많지 않을 때는 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 |