본문 바로가기

Computer Science/운영체제

반효경 운영체제 - 10. Disk Management & Scheduling

Disk Management

  • 디스크에서 저장하는 최소 단위 - 섹터
  • 디스크 외부에서 관리하는 단위 - logical block

Disk structure

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

Disk Management

  • physhical formatting(low-level formatting)
    • 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정
    • 각 섹터는 header + 실제 데이터 + trailer로 구성
    • header와 trailer는 sector number, ECC 등의 정보가 저장되며 controller가 직접 접근 및 운영
      • ECC는 체크섬 처럼 해쉬함수로 데이터 저장 시 발생가능한 에러를 검출하는 역할 - 모든 error를 커버하지는 못한다.
  • Partitioning
    • 디스크를 하나 이상의 실린더 그룹으로 나누는 과정
    • OS는 이것을 독립적 disk로 취급 (logical disk)
    • 파티션까지 완료된 logical disk를 파일 시스템으로 사용할 수 있고 혹은 스왑 영역으로 사용할 수 있다.
  • Logical formatting
    • 파일시스템을 만드는 것
    • FAT, Inode, free space 등의 구조 포함
  • Booting
    • ROM에 있는 “small bootstrap loader”의 실행
    • CPU는 하드디스크를 직접 접근하지 못한다.
    • ROM - 전원이 나가도 데이터가 유지되는 영역
    • sector 0 (boot block)을 load하여 실행
    • sector 0은 “full Bootstrap loader program”
    • OS를 디스크에서 load하여 실행

Disk Scheduling

  • Access time의 구성
    • Seek time
      • 헤드를 해당 실린더로 움직이는데 걸리는 시간(가장 많은 시간을 차지)
    • Rotational latency
      • 헤드가 원하는 섹터에 도달하기까지 걸리는 회전 지연시간(Seek time의 약 1/10정도)
    • Transfer time
      • 실제 데이터의 전송 시간(굉장히 작은 시간을 차지)
    • 고속의 입출력이 필요한 경우 한 번의 seek로 많은 데이터를 읽고 쓰게하면 효율적(시간이 빠르다)이다.

Disk Scheduling Algorithm

  • Disk 내에서 스케줄러가 실행되는 것이 아니기 때문에 논리 블럭 번호를 가지고 스케줄링을 진행하게 된다.

FCFS(First Come First Service)

  • 안쪽과 바깥쪽 요청이 번갈아 들어오면 굉장히 비효율적으로 동작한다.

SSTF(Shortest Seek Time First)

  • Queue에서 현재 Head에서 가장 가까운 요청을 먼저 처리한다.
  • Starvation이 발생할 수 있다.

SCAN

  • 간단하면서 가장 획기적인 방법
  • 엘리베이터 스케줄링이라고도 불린다.
  • Queue에 어떤 요청이 들어왔는지 상관없이 가장 안쪽에서 가장 바깥을 왕복한다.
  • 가는 길목의 모든 요청을 처리하며 다시 반대쪽 끝으로 이동한다.
  • 문제점 : 실린더 위치에 따라 대기 시간이 다르다.
    • 가운데 부분이 대기시간이 짧고, 양쪽은 대기시간이 길다.

C-SCAN

  • SCAN의 대기시간 불균형 문제를 해결
  • 다른쪽 끝에 도달했으면 요청을 처리하지 않고 곧바로 출발점으로 다시 이동
  • SCAN보다 균일한 대기 시간을 제공하지만, 이동 거리는 조금 더 길어질 수 있다.

N-SCAN

  • SCAN의 변형 알고리즘
  • 일단 arm이 한 방향으로 이동하기 시작했을 때 들어오는 요청들은 다음 이동에 처리한다.
  • Queue에 들어오는 요청의 대기시간의 분포가 조금 더 균일해지는 특징이 있다.

LOOK

  • SCAN, C-SCAN의 비효율을 개선
  • 가는 방향의 요청이 없으면 방향을 바꾼다.(엘리베이터와 유사)

C-LOOK

  • C-SCAN처럼 한쪽 방향만 요청을 처리하는데, 한쪽방향은 제일 낮은 주소까지만 이동한다.

Swap-space Management

  • Swap-space
    • Virtual Memory System에서는 디스크를 memory의 연장 공간으로 사용
    • 파일시스템 내부에 둘 수도 있으나 별도 partition 사용이 일반적
      • 공간 효율성보다는 속도 효율성이 우선
        • 공간 효율성을 위해 연속할당, linked allocation 등의 효율적인 방식을 사용한다.
      • 일반 파일보다 훨씬 짧은 시간만 존재하고 자주 참조됨
      • 따라서, block의 크기 및 저장방식이 일반 파일시스템과 다름
    • Seek time을 줄이기 위해서 굉장히 큰 단위로 swap 데이터를 할당한다. (16~512kb 등)

RAID

  • Redundant Array of Independent Disks
    • 여러 개 디스크를 묶어서 사용
  • RAID의 사용 목적
    • 디스크 처리 속도 향상
      • 여러 디스크에 block의 내용을 분산 저장
      • 병렬적으로 읽어옴(Interleaving, striping)
    • 신뢰성 향상
      • 동일한 정보를 여러 디스크에 중복 저장
      • 하나의 디스크가 고장(failure) 시 다른 디스크에서 읽어옴(Mirroring, shadowing)
      • 단순한 중복 저장이 아니라 일부 디스크에 parity를 저장하여 공간의 효율성을 높일 수 있다.
    •