Search

[운영체제] 저장장치 및 파일관리

제목
Tag
작성일

저장장치 종류와 특성

순차접근 저장장치

데이터를 순차적으로 읽거나 쓸 수 있는 저장장치
초기 접근 시간이 굉장히 오래 걸림
대량의 데이터 백업용
예) 테이프

직접접근 저장장치

저장한 위치를 직접 찾아 데이터를 읽거나 쓸 수 있는 저장장치
= 임의 접근 저장장치(random access)
예) 자기 디스크, 광디스크, SSD
자기 디스크(HDD)
자성을 띈 디스크 표면에 데이터를 기록하고 읽음
용어
설명
플래터(Platter)
데이터를 저장하는 원형의 디스크 판
헤드(Head)
플래터 표면에서 데이터를 읽고 쓰는 장치
암(Arm)
헤드를 특정 위치로 이동시키는 장치
고정축(Spindle)
플래터를 회전시키는 중심 축
트랙(Track)
플래터 표면의 데이터를 저장하는 동심원 형태의 경로
섹터(Sector)
트랙을 더 세분화한 단위로, 데이터를 저장하는 최소 단위
실린더(Cylinder)
여러 플래터의 동일한 위치에 있는 트랙의 모임
광디스크(Optical Disk)
디스크 표면에 레이저를 쏘아 반사되는 빛의 차이를 이용하여 데이터를 기록하고 읽음
나선형인 하나의 트랙으로 구성
예) CD-ROM, CD-RW, DVD, 블루레이 디스크 등
SSD(Solid State Drive)
플래시 메모리를 이용하여 데이터 저장, 전력 공급이 없어도 데이터를 유지하는 비휘발성 저장장치
기계적인 움직임이 없기 때문에 자기 디스크보다 속도가 빠르고 전력소모가 적음
용량대비 가격이 비싸며, 메모리 셀의 반복적인 쓰기와 삭제로 인해 수명이 상대적으로 짧음

디스크 스케줄링 알고리즘

디스크 스케줄링

여러 디스크 접근 요구를 효율적으로 처리하기 위해 접근 순서를 최적화하는 과정
프로세스들의 요구를 디스크 큐에 두고 관리
헤드의 이동, 디스크의 회전 같은 기계적 동작이 최소화도록 디스크 큐를 재배열

디스크 접근 요구 처리 시간

Total = 탐구시간 + 회전지연시간 + 전송시간
탐구시간: 헤드가 올바른 트랙으로 이동하는 데 걸리는 시간
회전지연시간: 원하는 섹터가 헤드 아래로 회전해 오는 데 걸리는 시간
전송시간: 데이터를 실제로 읽거나 쓰는 시간
스케줄링은 탐구시간과 회전지연시간을 최적화하는 방향으로 이루어짐

FCFS(First-Come First-Served)

디스크 접근 요청을 도착 순서대로 처리
장점
접근 요구의 도착순서대로 실행되므로 공평함
단점
요청 순서에 따라 헤드가 먼 거리를 오가게 되면 성능 저하
디스크 부하가 많을수록 평균 응답 시간이 길어질 수 있음

SSTF(Shortest Seek Time First)

현재 헤드 위치에서 가장 가까운(=탐구시간이 가장 짧은) 요청부터 처리
장점
헤드 이동 거리 최소화
FCFS 보다 처리량, 평균응답시간 개선 → 일괄처리 운영체제에 적합
단점
양 끝쪽에 위치한 트랙에 대한 접근 요구는 기아상태 발생 가능
트랙 위치에 따라 응답시간 편차 큼 → 시분할 운영체제에 부적합

SCAN

양 끝 트랙 사이를 왕복하며 진행방향의 가장 가까운 요청을 순서대로 처리
장점
SSTF보다 응답 시간의 편차가 줄어듦
단점
양 끝 요청은 한 번의 왕복 사이클에 한 번만 처리됨
새 요청이 방향 전환 직후에 도착하면 응답이 지연됨

C-SCAN (Circular SCAN)

한쪽 방향으로만 이동하며 진행방향의 가장 가까운 요청 순서대로 처리
끝에 도달하면 가장 안쪽 트랙으로 즉시 돌아가서 다음 사이클 시작
장점
응답 시간 분포가 일정함
양 끝 요청의 처리 기회를 균등하게 보장
단점
일부 요청을 위해 디스크 끝까지 이동해야 함 (비효율적 이동 발생 가능)

LOOK

SCAN과 유사하지만, 끝까지 가지 않고 요청이 존재하는 마지막 트랙까지만 이동 후 방향 전환
불필요한 이동 줄여 효율 개선

C-LOOK

LOOK과 유사하나, 한 방향으로만 요청을 처리
마지막 요청 처리 후, 가장 안쪽 요청 위치로 점프하여 다음 사이클 시작

SLTF (Shortest Latency Time First)

동일한 실린더에 요청이 여러 개 있는 경우, 회전 지연 시간(latency)이 가장 짧은 요청부터 처리
실린더는 같으나 섹터가 다른 요청 중 디스크가 회전하면서 지금 회전 위치 기준으로 가장 먼저 만나는 섹터의 요청을 처리함
예시
현재 헤드 위치: 실린더 50
요청 A: 섹터 5
요청 B: 섹터 10
요청 C: 섹터 3
현재 디스크가 섹터 2를 지나가고 있다고 가정
디스크는 시계 방향으로 회전하고 있으니
곧 섹터 3 → 섹터 5 → 섹터 10 순서로 지나감
SLTF는 이 중 섹터 3에 있는 요청 C를 먼저 처리
→ 그다음 섹터 5(A), 섹터 10(B) 순으로 진행
고부하 환경에서, 같은 실린더에 요청이 몰릴 때 디스크 회전을 효율적으로 활용해서 처리량을 높임

파일관리

파일 생성, 삭제, 수정, 접근 제어 및 파일에 사용되는 자원관리

파일 구조와 접근방식

순차파일
레코드가 물리적 순서에 따라 저장되어 있는 파일
논리적 순서와 물리적 순서가 동일
순차접근 저장장치에 많이 이용
인덱스된 순차파일
각 레코드의 키를 기준으로 한 논리적 순서로 레코드가 저장
일부 주요 레코드 실제 주소가 저장된 인덱스 구성해 관리
인덱스를 통해 직접 접근도 가능하며, 일반적인 순차 접근도 지원
디스크 기반 저장장치에서 효율적 (예: 데이터베이스 인덱싱)
직접 파일
각 레코드의 키를 해시 함수 등을 통해 직접 물리적 위치로 매핑
특정 레코드를 빠르게 찾을 수 있음 (O(1)에 가까운 시간 복잡도)
해시 충돌 처리 전략 필요 (예: 체이닝, 오픈 어드레싱 등)
대용량 데이터 저장 시 매우 빠른 접근 가능

디스크 공간 할당

연속 할당 기법

파일 전체를 디스크 상의 연속된 블록들에 할당
예를 들어, 5개의 블록이 필요하면 디스크에 연속된 5개 공간이 필요함
장점
디스크 헤드 이동이 최소화됨 → 빠른 순차 접근
파일의 시작 위치와 크기만 저장하면 되므로 디렉터리 구조 단순
단점
외부 단편화 발생 가능
파일의 크기를 미리 알아야 함
파일 크기 확장 시, 인접한 여유 공간이 없으면 전체 재배치 필요

불연속 할당 기법

파일을 여러 불연속 블록에 분산 저장하며, 각 블록은 포인터로 연결됨
대표적인 구현 방식: 연결 할당, 인덱스 할당
장점
블록이 연속되지 않아도 할당 가능 → 유연한 공간 활용
파일 크기를 동적으로 확장할 수 있음
외부 단편화 거의 없음
단점
헤드 이동이 많아져 접근 속도 저하 가능
포인터 공간 및 연산 비용 존재
직접 접근(Random Access)이 어려움 (연결 리스트 구조인 경우)