[OS]저장장치 및 파일 관리
📚저장장치 종류
📄순차접근 저장장치
순차접근 저장장치는 데이터를 순차적으로 기록하고 판독하는 저장장치이다. 테이프 장치가 대표적인 예이다. 테이프 장치는 릴에 테이트가 감긴 형태라서 특정 데이터를 찾으려면 원하는 위치가 나올 때까지 테이프를 풀어야해서 초기 접근시간이 굉장히 오래 걸린다는 단점이 있다.
📄직접접근 저장장치
직접접근 저장장치는 지정한 위치를 직접 찾아 데이터를 읽거나 쓸 수 있는 장치이다. 임의접근 저장장치라고도 부른다.
- 자기 디스크(Magnet Disk)
자기 디스크는 자성을 띤 디스크의 표면에 데이터를 쓰거나 읽을 수 있는 직접접근 저장장치이다. 자기 디스크는 플래터라는 원형의 디스크가 간격을 두고 쌓여 있는 형태를 가지고 플래터마다 기록하고 판독할 수 있는 헤드가 위치하고 있다. 자기 디스크에서 데이터를 읽거나 쓰려면, 암을 움직여 헤드를 원하는 트랙에 위치시키고 플래터를 회전시켜 원하는 섹터를 헤드에 위치시키면 된다.
https://prepinsta.com/operating-systems/magnetic-disk-structure/
-
광디스크(Optical Disk)
광디스크는 디스크 표면에 레이저를 쏴 반사되는 빛의 차이를 이용해 데이터를 읽고 쓰는 직접접근 저장장치이다. CD-ROM, DVD-ROM, 블루레이 디스크 등이 여기에 속한다. 광디스크는 나선형인 하나의 트랙으로 구성된다. -
SSD(Solid-State Disk/Drive)
SSD는 플래시 메모리처럼 읽고 쓰기가 가능하고 전력공급이 없어도 데이터가 지원지지 않는 메모리를 이용한 직접접근 저장장치이다. SSD는 자기 디스크보다 속도가 빠르고 전력 소모가 적지만 가격이 비싸고 수명이 짧다.
📚디스크 스케줄링 알고리즘
디스크 스케줄링은 디스크에서 데이터를 읽거나 쓰는 요구를 효율적으로 처리하는 순서를 결정하는 작업이다. 다중 프로그래밍 환경에서 많은 프로세스가 디스크 접근 요구를 발생시킬 수 있어 요구들을 디스크 큐에 두고 관리한다.
디스크 접근 요구를 처리하는데 필요한 시간은 탐구시간, 회전지연시간, 전송시간이 있다.
- 탐구시간: 기계적인 동작에 의해 암을 움직여 헤드를 원하는 트랙에 위치시키는데 걸리는 시간으로 세 가지 요소 중 가장 느리다.
- 회전지연시간: 헤드가 위치한 트랙에서 요구된 자료가 헤드 밑에 이를 때까지 디스크가 회전하는데 걸리는 시간으로 탐색시간이라고도 한다.
- 전송시간: 현재 트랙의 헤드 위치에서 자료를 읽거나 쓰는데 걸리는 시간이다.
전송시간은 스케줄링과 무관하게 항상 동일하게 필요한 부분이라 디스크 스케줄리에서 크게 중요한 부분은 아니다.
따라서 디스크 스케줄링은 탐구시관과 회전지연시간을 최적화하는 작업이다. 회전지연시간 보다 탐구시간이 더 중요하기 때문에 대부분의 스케줄링 알고리즘은 탐구시간을 최소화하는데 집중한다.
📄FCFS 스케줄링
FCFS(First-Come First_Served) 스케줄링 알고리즘은 가장 간단한 형태로 먼저 도착한 접근 요구가 먼저 서비스를 받는 방법이다. FCFS 스케줄링은 디스크의 부하가 높을수록 응답시간이 길어지는 단점이 있다.
📄SSTF 스케줄링
SSTF(Shortest Seek Time First) 스케줄링 알고리즘은 탐구시간이 가장 짧은 접근 요구를 먼저 처리하는 방법이다. 쉽게 말해, 현재 트랙에서 가장 가까운 접근 요구들을 먼저 처리하는 방식이다. SSTF 스케줄링은 FCFS 스케줄링보다 처리량이 많고 평균응답시간은 비교적 짧지만 양 끝에 위치한 트랙은 기아상태에 빠질 수 있다. 이 스케줄링은 처리량이 중요한 일괄처리 운영체제에 적합하지만 응답시간의 편차가 크기 때문에 시분할 시스템에서는 사용되지 않는다.
📄SCAN 스케줄링
SCAN 스케줄링 알고리즘은 양 끝 트랙 사이를 왕복하며 진행방향의 가장 가까운 접근 요구를 먼저 처리하는 방법이다. SCAN 스케줄링은 응답시간 편차를 어느 정도 해소하지만 헤드가 진행하는 방향의 바로 뒤에 도착한 접근 요구는 헤드가 디스크의 마지막 트랙까지 갔다가 될돌아올 때까지 기다려야하는 문제점을 가지고 있다. 또한 트랙의 양 끝은 헤드가 한 번 왕복할 때 한 번의 서비스 기회만 있다는 문제점도 있다.
📄C-SCAN 스케줄링
C-SCAN(Circular SCAN) 스케줄링 알고리즘은 헤드가 오로지 한쪽 방향으로만 진행되고 진행방향의 가장 가까운 접근 요구를 처리하는 방법이다. C-SCAN 스케줄링은 양 끝 트랙에 대한 접근 요구 차별을 제거했고 응답시간의 편차도 매우 작다.
📄LOOK 및 C-LOOK 스케줄링
LOOK 스케줄링 알고리즘은 진행방향의 앞쪽에 더 이상 접근 요구가 없으면 바로 방향을 바꾸는 방법이다. C-LOOK 스케줄링 알고리즘은 반대편 트랙 끝까지 이동하지 않고 가장 먼 접근 요구의 트랙까지만 이동한다.
📄SLTF 스케줄링
SLTF(Shortest Latency Time First) 스케줄링 알고리즘은 회전지연시간 최적화를 위한 알고리즘이다. 이 스케줄링은 동일 실린더의 여러 섹터에 대한 접근 요구에 대해 회전지연시간이 가장 짧은 것을 먼저 처리하는 방법이다. SLTF 스케줄링은 높은 부하상태에서 유용한 방법으로 알려져 있다.
📚파일 관리
📄파일 관리자의 요소
파일 관리자는 운영체제의 주요 구성요소로 파일 생성, 삭제, 수정하거나 파일에 접근하는 것을 제어하고 파일에 의해 사용되는 자원을 관리한다.
- 엑세스 방식: 파일에 저장되어 있는 데이터에 접근하는 방식을 정함
- 파일 관리: 파일 저장, 참조, 공유할 수 있도록 하고 안전하게 보호
- 보조기억장치 관리: 보조기억장치에 파일을 저장하는데 필요한 공간 할당
- 파일 무결성 유지: 파일 정보가 소실되지 않도록 보장
파일 관리 시스템은 디스크 장치를 관리하는 일과 연관되고 계층구조 파일 시스템의 구조는 아래 그림과 같다.
https://www.codecademy.com/resources/docs/general/file-system-structure
📄파일 관리자의 기능
- 사용자가 파일을 생성, 수정, 삭제할 수 있게 하는 기능
- 타인의 파일을 공동으로 사용할 수 있게 하는 기능
- 읽기, 쓰기, 실행 등 여러 종류의 액세스 제어 방법 제공
- 사용자가 각 응용에 적합한 구조로 파일을 구성하는 기능
- 백업, 복구 기능
- 물리적 장치 이름 대신 기호화된 이름을 사용하여 파일을 참조하는 기능
- 정보 보호, 비밀 보장 기능
📄파일 구조와 접근방식
-
순차 파일
순차 파일은 레코드가 물리적 순서에 따라 저장되어 있는 파일이다. 논리적인 레코드의 순서와 물리적인 레코드 순서가 동일하다. 물리적으로 순차적 성질을 가진 테이프 장치에 많이 이용된다. -
인덱스된 순차 파일
인덱스된 순차 파일은 레코드의 키를 기준으로 레코드가 순서대로 저장되어 있고 레코드의 실제 주소가 저장된 인덱스를 구성하여 관리하는 파일이다. 키 순서에 의해 순차적으로 액세스할 수 있고 인덱스 검색을 통해 직접 액세스도 가능하다. 보통 디스크에 이용된다. -
직접 파일
직접 파일은 레코드의 키를 이용하여 직접접근 저장장치의 물리적 주소를 통해 직접 액세스되는 파일이다. 논리적인 키와 물리적 주소의 사상은 프로그래머가 정의해야 한다.
📄디스크 공간할당
- 연속 할당 기법
연속 할당 기법은 보조기억장치의 연속된 가용공간에 파일 저장공간을 할당하는 방식이다. 이 기법은 논리적으로 연속된 레코드들이 보조기억장치에 물리적으로도 서로 인접하게 저장되므로 액세스가 효율적이라는 장점이 있다. 그리고 구현이 수월하다.
하지만 외부 단편화가 있다는 단점이 있다. 따라서 주기적으로 보조기억장치에 대한 집약을 해서 새로운 파일을 넣을 큰 공간을 만들어야 한다. 또한 파일의 크기 확장에 대한 대응이 비효율적이다.
- 불연속 할당 기법
불연속 할당 기법은 섹터 또는 블록 단위로 공간을 할당하는 방식이다. 블록들은 포인터로 연결한다. 이 기법은 단편화와 파일 확장 문제가 발생하지 않는다는 장점이 있다.
하지만 파일 공간이 분산되어 논리적으로 연속된 레코드들을 검색하는 경우 성능저하가 발생한다는 단점이 있다. 또한 포인터 관리를 위한 추가비용과 실제 데이터를 저장할 공간이 감소된다는 문제가 있다.
Leave a comment