운영체제_입출력 관리와 디스크 스케줄링_디스크 스케줄링

미뇽·2024년 6월 8일
0

운영체제(강의)

목록 보기
33/43
post-thumbnail

디스크 스케줄링

처리기와 주기억장치의 속도가 빨라지면서 디스크의 성능을 향상시키는 기법에 관한 고찰

디스크 성능 매개변수

탐색 시간(seek time)

디스크 암을 필요한 트랙으로 이동시키는데 걸리는 시간
약 10ms

회전 지연(rotational delay)

지정된 디스크의 주소 영역이 입출력 헤드에 의해 접근 가능한 위치까지 회전하여 도달하는데 걸리는 시간
약 2ms(15,000 rpm의 경우)

접근 시간(access time)

데이터를 읽거나 쓰기 위한 위치에 도달하는데 걸리는 시간
탐색 시간 + 회전지연시간

전송 시간(transfer time)

데이터를 디스크로 보내거나 받을 때 걸리는 전송 시간

전체 시간 계산 예시

  • 회전속도 7500rpm, 트랙당 512 바이트 섹터 500개
  • 2500 섹터로 구성된 1.28MB 파일 읽기(5트랙 * 500섹터/트랙)
  • 순차탐색의 경우
    - 16(처음 섹터까지 도달 + 읽기) + 4(나머지 트랙) * 12(한 섹터를 읽는데 걸리는 회전지연 4 + 500섹터 읽기 8) = 64ms = 0.064초
  • 무작위 탐색의 경우
    - 2500(각 섹터) * 8,016(한 섹터를 읽는데 걸리는 시간) = 20040ms = 20.04초
    => 섹터들이 디스크로부터 읽혀지는 순서는 입출력 성능에 큰 영향

디스크 스케줄링 정책


* 횡단트랙: 해당 트랙까지 움직인 거리

FIFO(First-In-First-Out)

  • 선입선출 방식으로 순서대로 처리하기 때문에 공정함.
  • Clustered된 파일 섹터 접근하면 효율이 좋지만 아닌 경우 구림

SSTF(우선순위 기반)

  • 빨리 처리할 수 있는 거부터 처리하는 방식
  • 빨리 처리하는 것만 하다가 기아 발생할 수 있음

LIFO(Last In First Out)

  • 지역성을 이용하면 작업 처리량을 증가시키고 큐의 길이를 줄일 수 있음
  • 디스크가 큰 작업 부하 때문에 계속해서 바쁜 상태면 기아 발생 가능성이 있음

SSTF(Shortest Service Time First)

  • 현재 위치에서 디스크 헤드의 움직임을 최소로 하는 디스크 입출력 요청을 선택
  • FIFO보다 더 나은 성능

SCAN(엘리베이터 알고리즘)

  • 엘리베이터처럼 이동 방향의 마지막 트랙에 도달하거나 그 방향으로 남아 있는 요청이 없을 때까지 한 방향으로 이동
  • 끝까지 가면 방향 바꾼다음에 반대 방향으로 모두 스캔
  • SSTF와 비슷하지만 지역성을 활용하지는 않음
  • 가장 안쪽 트랙과 가장 바깥쪽 트랙에 가까운 트랙들에 대한 요청을 한 작업을 선호
    - C-SCAN으로 해결
  • 가장 최근에 도착한 작업을 선호
    - N-step-SCAN으로 해결

C-SCAN

  • 한 방향으로만 가다가 방향 바꿔서 들리지 않고 한번에 돌아가고 다시 똑같은 방향으로 스캔 반복
  • 새로운 요청들이 겪게 되는 최대 지연 감소

N-step-SCAN과 FSCAN

  • 디스크 요청 큐를 세그먼트로 분할하고 한 번에 한 단편에 속한 요청 전부를 처리
  • N-step-SCAN
    - 디스크 요청 큐를 길이가 N인 하위 큐들로 분할
    - SCAN을 이용해서 하위 큐 처
  • FSCAN
    - 두 개의 하위 큐 이용(모든 요청들을 담은 큐 + 빈 큐)
    - 스캔하면서 새로운 모든 요청들은 다른 비어있는 큐로 들어가서 원래 요청들이 완료될 때까지 대기

디스크 스케줄링 알고리즘 비교

profile
문이과 통합형 인재(人災)

0개의 댓글