1. 디스크 스케줄링(Disk Scheduling)
- 디스크 시스템의 성능은 처리율(Throughput), 평균 응답시간(Average Response Time) 등을 기준으로 평가
- disk access 요청의 처리 순서를 적절히 결정하는 것으로 header의 이동과 platter의 회전을 최소화할 수 있음
=> 최적의 성능
2. Seek Time 최소화
- FCFS(First Come First Served)
- 먼저 들어온 요청을 먼저 처리
- 구현이 간단하고 오버헤드가 적으며 starvation 문제가 없음
- 최적의 성능을 얻는데는 도움이 되지 않음
- disk access 횟수자체가 많지 않은 시스템에 적합
- SSTF(Shortest Seek Time First)
- 현재 head 위치에서 가장 가까운 요청부터 처리
- 처리율(Throughput)이 높음
- 평균 응답시간이 작음(빠름)
- 멀리 떨어져있는 위치에 대한 disk access 요청의 처리가 늦어질 수 있음(starvation)
- 일괄 처리 시스템(Batch System)에 적합
- Scan
- 현재 head의 진행방향에서 가장 가까운 요청부터 처리
- SSTF에서 starvation 문제를 해결한 방식
- 단, 진행방향의 반대쪽의 위치에 대한 요청은 응답시간이 길어진다
- CScan
- Scan 방식과는 달리 진행방향을 바꾸지 않고 작업을 수행
- 마지막 위치에 도달하고나면 시작 위치로 돌아와서 작업을 재시작
- Scan 방식에서 진행방향의 반대쪽 위치에 대한 요청이 늦게 처리되는 문제 해결
- 헤더가 초기위치로 돌아오는데 걸리는 시간만큼 오버헤드가 존재
- Look Scheduling
- Scan 에서 마지막 실린더까지 이동하지 않고 현재 진행방향에 요청이 없으면 방향을 전환
- 실제로 Scan을 구현할 때는 이 방식을 사용
- CScan에서도 같은 방식을 적용 가능(진행방향에 요청이 없을경우 바로 초기위치로)
3. Rotational Delay 최소화(Shortest Latency Time First)
- platter 상의 모든 track에 고정된 head가 존재하는 Fixed Header System에서 사용
- 각 sector마다 해당 sector에서 수행해야할 작업의 대기열(queue)을 유지하고 platter가 회전하면서
각 sector의 대기열에 있는 작업을 모두 수행한 뒤 다음 sector로 넘어가는 sector queuing 방식 사용 - head가 움직이는 방식의 디스크에서도 사용 가능
- head가 특정 실린더에 도달했을 때 헤더를 고정한 뒤 해당 실린더의 모든 요청을 처리
4. SPTF(Shortest Positioning Time First)
- Seek Time + Rotational Delay이 가장 작은 요청부터 처리하는 방식
- 높은 처리율과 빠른 평균 응답시간을 보임
- SSTF와 마찬가지로 starvation 문제가 발생할 수 있음
- 에센바흐 알고리즘
- 실린더 내 track, sector에 다수의 요청이 있다면 하나의 작업만을 수행하고
나머지는 다음 회전에 처리하도록 요청을 재배열하는 방식 - head의 이동방식은 CScan과 유사
- 하드디스크의 물리적 특성상 비효율적인 방식이기에 실제로는 거의 사용되지 않음
- 실린더 내 track, sector에 다수의 요청이 있다면 하나의 작업만을 수행하고
'CS > 운영체제' 카테고리의 다른 글
#25 RAID(Redundant Array of Inexpensive Disk) (0) | 2022.02.07 |
---|---|
#23 입출력 시스템(I/O System) (0) | 2022.02.05 |
#22 파일 시스템 구현(File System Implementation) (0) | 2022.02.04 |
#21 파일 보호(File Protection) (0) | 2022.02.02 |
#20 디렉토리(Directory) (0) | 2022.01.31 |