-
[OS] 디스크 스케쥴링운영체제 2020. 12. 12. 17:32728x90
디스크 스케쥴링
사용자는 버퍼에 write 를 한 뒤 disk 에 write 했다고 생각한 뒤 작업을 이어감 → 버퍼 → 디스크 큐 → 디스크
디스크 큐에 쌓인 데이터를 어떤 순서로 디스크에 write 할지를 결정하는 것이 디스크 스케쥴링
디스크 스케쥴링을 하는 이유는 seek time 을 줄이기 위해서 → SSD 는 seek time 이 일정해서 스케쥴링이 의미가 없음
FCFS(First Come First Serve) 스케쥴링
디스크 요청이 오는 순서대로 그대로 접근하는 방법
SSTF(Shortes Seek Time First) 스케쥴링
가장 가까운 애 순서대로 스케쥴링하는 방법
CPU 스케쥴링 기법 중 SJF 와 비슷하지만 다른 점은 SJF 는 프로세스의 수행 시간을 예측해야했지만 SSTF 는 이미 결정된 seek 위치를 기반으로 스케쥴링하기에 구현이 크게 어렵지 않음
단점 : 가까운 애에 대한 요청만 계속 오면 먼 애들은 할당되지 못하는 starvation 문제가 발생함
SCAN 스케쥴링 = 엘리베이터 알고리즘
목표 지점을 정해두고 가는 길에 거쳐가는 애들을 처리하는 기법으로, 마치 엘리베이터가 움직이는 알고리즘과 같다하여 엘베 알고리즘이라고도 함
단점 : 출발한 직후에 방금 처리됐던 번호로 재요청이 들어오면 엄청 오래 기다려야된다는 문제
C-SCAN(Circular SCAN) 스케쥴링
SCAN 스케쥴링의 문제점을 해결하기 위해 무조건 한 방향으로만 서비스하는 SCAN 알고리즘
디스크 스케쥴링 알고리즘의 선정
요즘엔 메모리가 워낙 커서 CPU 가 디스크를 기다리는 상황이 거의 안나오기에 크게 중요하진 않음 → 한 번에 많이 읽어서 램에 넣어놓기때문
SSTF : 가장 일반적이지만 starvation 때문에 안쓰이는 곳도 있음
SCAN, C-SCAN : starvation 이 적게 남
'운영체제' 카테고리의 다른 글
[OS] NVM / RAID 구조 (0) 2020.12.12 [OS] Mass Storage (HDD, SSD) (0) 2020.12.12 [OS] 디스크 볼륨과 파티션 / 가상 파일 시스템 (0) 2020.12.12 [OS] 디스크 볼륨과 파티션 / 가상 파일 시스템 (0) 2020.12.12 [OS] Disk free space 관리 (0) 2020.11.30