Access time의 구성
Seek time
Rotational latency
Transfer time
Disk Bandwidth
Disk Scheduling
seek time을 최소화하는 것이 목표
Seek time 은 seek distance 에 비례
Logical block
디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들
주소를 가진 1차원 배열처럼 취급
정보를 전송하는 최소 단위
Sector
Logical block이 물리적인 디스크에 매핑된 위치
Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫 번째 섹터이다.
Physical formatting(Low-level formatting)
디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정
각 섹터는 header + 실제 data (보통 512 bytes) + trailer로 구성
header와 trailer는 sector number, ECC (Error-Correcting Code) 등의 정보가 저장되며 controller가 직접 접근 및 운영
Partitioning
디스크를 하나 이상의 실린더 그룹으로 나누는 과정
OS는 이것을 독립적 disk로 취급 (logical disk)
Logical formatting
파일 시스템을 만드는 것
FAT, inode, free space 등의 구조 포함
Booting
ROM에 있는 "small bootstrap loader" 실행
sector 0 (boot block)을 load하여 실행
sector 0은 "full Bootstrap loader program"
OS를 디스크에서 load하여 실행
대단히 비효율적
현재의 헤드 위치에서 제일 가까운 위치에 있는 헤드부터 처리 -> 이동 거리는 줄어듦
starvation 문제 (계속 낮은 주소에서만 처리하게 됨)
disk arm이 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다.
다른 한쪽 끝에 도달하면 역방향으로 이동하며 오는 길목에 있는 모든 요청을 처리하며 다시 반대쪽 끝으로 이동한다.
문제점: 실린더의 위치에 따라 대기 시간이 다르다
SCAN의 문제점을 해결하기 위한 알고리즘
헤드가 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리
다른쪽 끝에 도달했으면 요청을 처리하지 않고 곧바로 출발점으로 다시 이동
SCAN보다는 균일한 대기 시간을 제공한다.
Disk를 사용하는 2가지 이유
memory의 volatile한 특성 -> file system
프로그램 실행을 위한 memory 공간 부족 -> swap space (swap area)
Swap - Space
Virtual memory system에서는 디스크를 memory의 연장 공간으로 사용
파일 시스템 내부에 둘 수도 있으나 별도 partition 사용이 일반적
RAID (Redundant Array of Independent Disks)
RAID의 사용 목적
디스크 처리 속도 향상
신뢰성(reliability) 향상
동일 정보를 여러 디스크에 중복 저장
하나의 디스크가 고장시 다른 디스크에서 읽어옴. (Mirroring, shadowing)
단순한 중복 저장이 아니라 일부 디스크에 parity를 저장하여 공간의 효율성을 높일 수 있다.
🔗강의 바로가기 운영체제 - 이화여자대학교 반효경 교수님 강의를 듣고 정리한 내용입니다.