ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] 디스크 스케쥴링
    운영체제 2020. 12. 12. 17:32
    728x90

    디스크 스케쥴링

    사용자는 버퍼에 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 이 적게 남

     

    댓글

Designed by Tistory.