[운영체제] Day12. Disk Management & Scheduling

youngkimi·2023년 12월 25일
0

[CS] 운영체제

목록 보기
12/12
post-custom-banner

Disk Scheduling

Disk Structure

  • logical block
    • 디스크 외부에서 보는 디스크 단위 정보 저장 공간들
    • 주소를 가진 1차원 배열처럼 취급
    • 정보를 전송하는 최소 단위
  • Sector
    • logical block이 물리적 디스크에 매핑된 위치
    • 디스크 내부의 가장 작은 관리 단위
    • Sector 0은 최외각 실린터 첫 트랙의 첫 섹터.

Disk Management

  • physical formatting (Low-level formatting)
    • 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터로 분할하는 과정
    • 각 섹터는 header + 실제 data + trailer로 구성
    • header와 trailer는 (주소 매핑 위한) Sector #, ECC(Error-Correcting Code)를 저장
    • Controller가 data 접근에 필요한 부가 정보. 직접 접근 및 운영.
  • Partitioning
    • 디스크를 하나 이상의 실린더 그룹으로 나누는 과정
    • OS는 이것을 독립적 Disk로 취급 (logical disk)
    • 이후 file system / swap area 용도로 사용 가능
  • Logical formatting
    • file system을 설치하는 것
    • FAT, inode, free space 등의 구조 포함
  • Booting
    • ROM에 있는 "small bootstrap loader" 실행
    • ROM은 메모리 내 존재하는 소량의 비휘발성 공간
    • loader는 Sector 0 실행하라고 명령.
    • Sector 0는 boot block 위치.
    • OS를 디스크에서 Load, 실행

Access Time

대부분의 소요 시간은 Seek time

  • Seek time
    • 헤드가 해당 실린더로 움직이는데 걸리는 시간
  • Rotational latency
    • disk는 회전 중 ...
    • 헤드가 원하는 섹터로 도달하기까지 걸리는 회전 지연 시간
    • Seek time 의 1/10 가량
  • Transfer time
    • 실제 데이터 전송 시간 (매우 작다)

Disk bandwidth

단위 시간당 전송된 바이트의 수

Disk Scheduling

Seek time 최소화가 목표. Disk bandwidth를 높여보자.
Seek time = Seek Distance
헤드 움직이는 시간을 최소화할 수 있도록 Scheduling

Disk Scheduling Algorithm

FCFS (First Come First Service)

들어온 순서대로 헤드 이동
딱 봐도 비효율적임.

SSTF (Shortest Seek Time First)

지금 현 상황에서 가장 가까운 요청 방문
Starvation 문제 발생

SCAN (Elevator Scheduling)

disk arm이 디스크 양 끝을 오가면서 길목에 있는 모든 요청 처리 (요청 순서와는 무관)
head 이동 거리 감소. Starvation 해결.
실린더 위치에 따라 대기 시간이 다른 문제 발생 (가운데는 자주 방문. 양 끝은 덜 방문)

C-SCAN

한 쪽 끝(A)에서 다른 쪽 끝(B)까지 head가 이동하며 요청 처리.
B에 도착 시 A로 되돌아 간다. 이때는 요청 처리하지 않고 이동만 함.
SCAN보다 균일한 대기 시간 제공

N-SCAN

SCAN의 변형
출발지에서 들어온 요청들만 먼저 처리하기로 계획. 도중에 들어오는 요청은 무시.

C-LOOK

Scan / C-Scan의 문제 해결. (max 요청과 min 요청을 넘어가는 범위까지 탐색)
요청의 max, min까지만 탐색하고 방향 전환

효율적 알고리즘

Scan, C-Scan, N-Scan, C-Look이 보통 효과적 ..
File의 할당 방법에 따라 디스크 요청이 영향 받음
디스크 스케쥴링 알고리즘은 필요할 경우 다른 알고리즘으로 쉽게 교체할 수 있도록 OS와 별도의 모듈로 작성되는 것이 바람직하다.

Swap-Space Management

Disk를 사용하는 두 가지 이유

  1. memory의 휘발적 특성.
  2. 프로그램 실행을 위한 Memory 공간 부족 -> swap space (메모리 연장 공간)

Swap Space

Virtual memory system에서는 디스크를 memory 연장 공간으로 사용
파일 시스템 내부에 둘 수도 있으나 별도의 partition 사용이 일반적

  • 공간 효율성보다 속도 효율성이 먼저 (빨리 제거, 빨리 참조 ... 어차피 곧 지워지는 영역)
  • 일반 파일보다 훨씬 짧은 시간만 존재하고 자주 참조
  • 때문에 block의 크기와 저장 방식이 일반 file system과 다르다. (보다 대용량)

RAID

RAID (Redundant Array of Independent Disks)

여러 개의 디스크를 묶어서 사용 (중복 저장, 분산 저장 ...)

RAID 사용 목적

  1. 디스크 처리 속도 향상
  • 여러 디스크에 block의 내용을 분산 저장
  • 병렬적으로 읽어 옴 (interleaving, striping) 빠르다.
  1. 신뢰성 (reliability) 향상
  • 동일 정보를 여러 디스크에 중복 저장
  • 하나의 디스크가 고장(failure) 시 다른 디스크에서 읽어옴 (mirroring, shadowing)
  • 단순한 중복 저장이 아닌, 일부 디스크에 parity 저장하여 공간의 효율성 높임
  • parity : 오류 체크, 동일성 보장할 수 있는 정도만 저장
post-custom-banner

0개의 댓글