반응형

Disk 구조

logical block

  • 디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들이다.
  • 주소를 가진 1차원 배열처럼 취급하며 정보를 전송하는 최소 단위이다.

sector

  • logical block이 물리적인 디스크에 매핑된 위치이다.
  • sector 0은 가장 바깥쪽의 실린더의 첫 트랙에 있는 첫 번째 섹터이다.

 

Disk 관리

physical formatting

  • 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정이다.
  • 각 섹터는 header와 실제 data 및 trailer로 구성된다.
  • header와 trailer는 sector number, ECC(Error-correcting Code)등의 정보가 저장되며 controller가 직접 접근 및 운영한다.

Partitioning

  • 디스크를 하나 이상의 실린더 그룹으로 나누는 과정이다.
  • OS는 이것을 독립적인 disk로 취급한다. (논리적 disk)

logical formatting

  • 파일시스템을 만드는 것을 말한다.
  • FAT, inode, free space 등의 구조를 포함한다.

Booting

  • ROM에 있는 small bootstrap loader의 실행을 말한다.
  • sector 0(boot block)을 로드해서 실행한다.
  • sector 0은 full Bootstrap loader program 이다.
  • OS를 디스크에서 load 해서 실행한다.

 

Disk Scheduling

디스크를 접근하는 Access time은 3가지로 구성된다.

  • Seek time: 헤드를 해당 실린더로 움직이는데 걸리는 시간이다. (디스크를 읽고 쓰는데 걸리는 거의 모든 시간)
  • Rotational latency: 헤드가 원하는 섹터에 도달하기까지 걸리는 회전지연시간이다.
  • Transfer time: 실제 데이터의 전송 시간을 말한다.

Disk bandwidth: 단위 시간 당 전송된 바이트의 수를 말한다.

Disk Scheduling: seek time을 최소화하는 것이 목표이다.

 

Disk Scheduling Algorithm

FCFS(First Come First Service): 들어온 순서대로 처리하는 알고리즘이다.
SSTF(Shortest Seek Time First): 현재 헤드 위치에서 가장 가까운 요청을 먼저 처리한다. (starvation이 발생할 수 있다.)
SCAN

  • disk arm이 디스크 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다.
  • 다른 한쪽 끝에 도달하면 반대반향으로 이동하며 오는 길목에 있는 모든 요청을 처리한다.
  • 실린더 위치에 따라 대기 시간이 다르다는 문제점이 있다.

SCAN의 헤드 움직임

C-SCAN(Circular SCAN)

  • 헤드가 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다.
  • 다른쪽 끝에 도달했으면 요청을 처리하지 않고 곧바로 출발점으로 다시 이동한다.
  • 이동거리는 길어지지만 SCAN보다 균일한 대기 시간을 제공한다.

C-SCAN의 헤드 움직임

N-SCAN

  • SCAN의 변형 알고리즘이다.
  • 일단 arm이 한 방향으로 움직이기 시작하면 그 시점 이후에 도착한 일은 되돌아올 때 처리한다.

LOCK, C-LOCK

  • SCAN의 비효율적인 방식을 개선한 알고리즘이다.
  • SCAN이나 C-SCAN은 헤드가 디스크 끝에서 끝으로 이동한다.
  • LOCK과 C-LOCK은 헤드가 진행중일때 더이상 그 방향에 요청이 없으면 헤드를 즉시 이동하는걸 말한다.

 

Disk Scheduling Algorithm 결정

SCAN, C-SCAN 및 LOCK, C-LOCK 등이 일반적으로 디스크 입출력이 많은 시스템에서 효율적인 것으로 알려져 있다.

File의 할당 방법에 따라 디스크 요청이 영향을 받는다.

디스크 스케줄링 알고리즘은 필요할 경우 다른 알고리즘으로 쉽게 교체할 수 있도록 OS와 별도의 모듈로 작성되는 것이 바람직하다.

 

Swap-Space 관리

Disk를 사용하는 이유는 다음과 같다.

  • 메모리는 휘발성이기 때문에 파일 시스템을 사용해서 disk를 사용한다.
  • 프로그램 실행을 위해서 메모리 공간이 부족하기 때문이다. swap space용도로 disk를 사용한다.

Swap-Space

가상 메모리 시스템에서는 디스크를 메모리의 연장 공간으로 사용한다.

파일시스템 내부에 둘 수도 있으나 별도 파티션 사용이 일반적이다.

  • 공간효율성보다는 속도 효율성이 우선이기 떄문이다.
  • 일반 파일보다 훨씬 짧은 시간만 존재하고 자주 참조된다.
  • 따라서, block의 크기 및 저장 방식이 일반 파일시스템과 다르다.

 

RAID

RAID(Redundant Array of Independent Disk): 여러개의 디스크를 묶어서 사용하는걸 말한다.

RAID의 사용 목적

  • 디스크 처리 속도가 향상된다. (여러 디스크의 block의 내용을 분산 저장하고, 병렬적으로 읽어 오기 때문이다.)
  • 신뢰성이 향상된다.
    • 동일 정보를 여러 디스크의 중복 저장하는데, 하나의 디스크가 고장시 다른 디스크에서 읽어오면 되기 때문이다.
    • 단순한 중복 저장이 아니라 일부 디스크의 parity를 저장하여 공간의 효율성을 높일 수 있다.
반응형
얼은펭귄