#####. 저장장치 / 파일관리
###. 저장장치
#. 저장장치 종류 (순차접근, 직접접근)
#. 순차접근 저장장치
- 데이터를 순차적으로 기록하고 판독하는 저장장치
- 대표적 테이프 장치, 테이프 위에 데이터를 일렬로 기록하고 읽을 때도 순차적
- 테이프 장치
: 릴에 테이프가 감긴 형태
: 원하는 위치가 나올 때까지 테이프를 풀어 초기 접근 시간 많이 소요
: HDD/ Flash 발달로 순차 접근 장치사용은 감소하나, 큰기업, 기관은 대량의 데이터를 백업(backUp)용으로 사용
#. 직접접근 장치
- 지정한 위치를 직접 찾아 데이터를 읽거나 쓸 수 있는 장치
- 임의 접근 저장장치 (random access storage devices) 라고도 함
- 저장장치의 종류 : 자기디스크, 광디스크, SDD
#. 자기 디스크
: 자기 디스크(magnetic disk)는 자성을 띤 디스크의 표면에 데이터를 쓰거나 읽을 수 있는 직접접근 저장장치
: 한 장 이상의 플래터(platter)가 간격을 두고 쌓여 있는 형태
- 각 플래터마다 기록하고 판독할 수 있는 헤드(head)가 암(arm)에 연결되어 위치
- 암은 다시 하나의 고정충에 연결
- 데이터가 저장되는 각 플래터의 표면은 플래터의 중심축을 기준으로 한 동심원의 형태인 트랙으로 나뉘며 각 트랙은 일정한 용량을 저장할 수 있는 호(arc)형태인 섹터로 나뉨
- 플래터가 여러장인 경우, 각플래터를 중심축으로부터 같은 거리에 있는 트랙들을 모아 하나의 실린더(cylinder)를 구성
#. 광디스크
- 광디스크 (optical disk)는 자성 대신 빛을 이용하는 것
- 디스크 표면에 레이저를 쏴 만사되는 빛의 차이를 이용하도록 데이터를 읽고 쓰는 직접접근 저장장치
- Compact DIsk-Read Only Memory, CD_ReWritable, Digital Versatile Disc-ROM, Blu-ray Disk
- 동심원의 트랙들로 구성된 자기 디스크와 다르게 나선형인 하나의 트랙으로 구성
#. SSD
- Solid- State Disk 또는 Solid-State Drive는 플래시 메모리처럼 읽고 쓰기가 가능하면서 전력공급 없이도 데이터가 지워지지 않는 메모리를 이용하여 자기 디스크처럼 만든 직접접근 저장장치
- SSD는 자기 디스크보다 속도가 빠르고 물리적인 장치가 없이 전력 소모가 적지만, 용량 대비 가격이 비싸며 수명이짧다.
###. 디스크 스케줄링 알고리즘
#. disk scheduling 은 디스크 접근 요구를 효율적으로 처리하는 순서를 결정하는 작업 (읽기/쓰기)
#. 다중 프로그래밍 환경에서는 많은 프로세스가 디스크 접근 요구를 발생시킬 수 있어 이러한 요구들을 디스크 뮤에 두고 관리
#. 디스크는 헤드의 이동, 디스크의 회전과 같은 기계적인 움직임에 의해 직접 접근을 하기 때문에, 디스크 스케줄러는 대기하고 있는 요구들 간의 위치적 관계를 조사하고 나서 최소한의 기계적 동작에 의해 접근 요구를 처리할 수 잇는 디스크 큐를 재배열 한다.
#. 일반적으로 디스크 접근 요구를 처리하는 데 필요한 시간의 요소로는 탐구시간, 회전지연시간, 전송시간
#. 탐구시간 (seek time)
- 기계적인 동작에 의해 암을 움직여 헤드를 원하는 트랙에 위치 시키는 데 걸리는 시간
- 세가지 중 가장 느리다
#. 회전 지연시간(rotational latency time)
- 헤드가 위치한 트랙에서 요구된 자료가 헤드 밑에 이를 떄까지 디스크가 회전하는데 걸리는 시간으로 탐색 시간(search time)이라고도 함
#. 전송 시간(transfer time)
:현재 트랙의 헤드 위치에서 자료를 읽거나 쓰는 데 걸리는 시간
#. 전체 시간 = 탐구시간 + 회전 지연시간 + 전송시간
#. 탐구시간이 중요하기 때문에 대부분 알고리즘은 탐구시간을 최소화 하는데 집중
#. FCFS(First-Come First-Served) Algorithm
- 디스크 스케줄링 중 가장 간단한 형태, 먼저 도착한 접근 요구가 먼저 서비스를 받는 방법
- 디스크 부하가 낮을 떄는 사용할 만 하나, 부하가 높을수록 응답시간이 길어지는 단점
#. SSTF (shortest Seek Time First)
- 탐구시간이 가장 짧은 접근요구를 먼저 처리하는 방법
#. SCAN
- 양 끝 트랙 사이를 왕복하며 진행방향의 가장 가까운 접근 요구를 먼저 처리하는 방법
#. C-SCAN
- Circular SCAN 은 SCAN의 변형으로 헤드가 오로지 한쪽 방향으로만 진행방향의 가장 가까운 접근 요구를 처리한다는 것을 제외하면 SCAN 스케줄링과 동일
- 설명이 난해해서 Chat GPT에게 물어봤다.
:디스크 헤드는 특정 트랙(실린더)에서 시작합니다. 보류 중인 요청을 처리하는 동안 가장 바깥쪽 트랙으로 이동합니다. 가장 바깥쪽 트랙에 도달하면 안쪽 방향의 요청을 처리하지 않고 가장 안쪽 트랙으로 점프합니다. 그런 다음 헤드는 다시 바깥쪽으로 이동하여 요청을 처리합니다. 이 프로세스는 연속 순환 방식으로 계속됩니다.
#. LOCK 및 C-LOCK
- SCAN / C-SCAN의 변형
- 진행방향의 앞쪽에 더 이상 접근 요구가 없으면 바로 방향을 바꾸는 방법
- C-LOCK의 경우 반대편 트랙 끝까지 이동하지 않고 가장 먼 접근 요구의 트랙까지만 이동
- 더이상 접근 요구가 없으면 바로 방향을 바꿈
#. SLTF (Shortest Latency Time First)
- 회전 지연시간 최적화를 위한 알고리즘
- 동일 실린더의 여러 섹터에 대한 접근 요구에 대해 회전지연시간이 가장 짧은 것을 먼저 처리하는 방법
- 높은 부하상태에서 유용한 방법으로 알려짐. 이론적인 최적해와 거의 일치하고 구현도 쉽다.
###. 파일 관리
#. 파일 관리자 요소
- 파일 관리자 (file manager)는 운영체제의 주요 구성요소로 파일의 생성, 삭제, 수정하고 파일에 접근하는 것을 제어하고 파일에 의해 사용되는 자원을 관리
#. 파일 관리자 4가지 요소
- 액세스 방식 :파일에 저장되어 있는 데이터에 접근하는 방식을 정함
- 파일 관리 : 파일을 저장, 참조, 공유할 수 있도록 하며, 안전하게 보호될 수 있도록함
- 보조기억장치 관리 : 보조기억장치에 파일을 저장하는데 필요한 공간을 할당
- 파일 무결성 유지 : 파일의 정보가 소실되지 않도록 보장
#. 이러한 파일 관리 시스템은 보조기억장치 중에서 특히 디스크 장치를 관리하는 일과 연관되며, 2단계 계층구조 파일 시스템의 구조는 루트(root directory), 사용자(user directory) 디렉토리가 있다.
#. 계층 구조 파일 시스템 (hierarchically structured file system)에서 파일 시스템 이름은 일반적으로 루트 디렉터리로부터 그 파일에 이르는 경로 이름 (path name)으로 구성
- 설명이 난해해서 GPT
- root는 파일 시스템의 최상위 디렉토리입니다. Linux 및 UNIX 기반 시스템에서는 /로 표시됩니다. Windows 시스템에서는 대개 C:\로 표시됩니다. root 디렉토리는 모든 다른 디렉토리와 파일이 위치하는 시작점으로 간주됩니다. 사용자 디렉토리(user directory)는 개별 사용자에게 할당된 디렉토리로, 사용자 계정에 대한 작업 공간으로 사용됩니다. 사용자 디렉토리는 사용자의 이름 또는 사용자 ID를 기반으로하여 각 사용자마다 고유한 디렉토리를 가지게 됩니다. 일반적으로 사용자 디렉토리는 사용자의 파일, 문서, 설정 파일 등을 저장하는 데 사용됩니다. 예를 들어, Linux 시스템에서 root 디렉토리는 /이고, 사용자 "john"의 디렉토리는 /home/john과 같이 표시될 수 있습니다. 여기서 /home은 root 디렉토리의 하위 디렉토리이고, john은 사용자 디렉토리입니다. 따라서 john 사용자의 파일은 /home/john 디렉토리에 저장됩니다. Windows 시스템에서는 root 디렉토리가 주로 C:\와 같이 표시되며, 사용자 디렉토리는 C:\Users\username과 같이 표시됩니다. 여기서 username은 사용자 계정의 실제 이름이나 사용자 ID에 해당합니다. root와 사용자 디렉토리는 파일 시스템의 계층 구조에서 중요한 역할을 수행하며, 파일 및 디렉토리의 위치를 나타내는 데 사용됩니다.
#. 파일 관리자의 기능
- 보조 기억장치를 활성화시켜 파일을 할당하고, 파일의 기록을 갱신하는 동안에는 파일을 메모리에 적재하며, 테이블을 갱신하거나 수정된 사항이 있다면 파일을 보저기억장치의 같은 장소에 다시 쓰고 그 파일을 해지한다.
- 파일 관리자의 기능
: 사용자가 파일을 생성, 수정 및 삭제할 수 있게 하는 기능
: 타인의 파일을 공동으로 사용할 수 있게하는 기능
: 읽기, 쓰기, 실행 및 그 조합까지 여러 종류의 액세스 제어방법 제공
: 사용자가 각 응용에 적합한 구조로 파일을 구성할 수 있게하는 기능
: 백업 및 복구 기능
: 물리적인 장치 이름 대신 기호화된 이름을 사용하여 파일을 참조할 수 있게하는 기능
: 정보가 안전하게 보호되고 비밀이 보장되게 하는 기능
#. 파일 구조와 접근 방식
- 파일 구조는 파일을 구성하는 레코드들이 보조기억장치에 배치되는 방식을 말함
- 순차 파일
: 순차파일 (sequential file)은 레코드가 물리적 순서에 따라 저장되어 있는 파일
: 논리적인 레코드의 순서와 물리적인 레코드의 순서가 동일
: 순차파일은 순차적으로 기록하고 판도하는 경우에 적합
: 물리적으로 순차적 성질을 가진 테이프 장치에 많이 이용
#. 인덱스된 순차파일
- 인덱스된 순차파일 (indexed sequential)은 각 레코드의 키를 기준으로 한 논리적 순서대로 레코드가 저장
- 일부 주요 레코드의 실제 주소가 저장된 인덱스를 구성하여 관리하는 파일
- 키 순서에 의해 순차적으로 액세스 또는 인덱스 검색을 통해 직접 액세스
- 보통 디스크에 이용
#. 직접 파일
- direct file은 각 레코드의 키를 이용하여 직접접근 장치의 물리적 주소를 통해 직접 액세스 되는 파일
- 이때 논리적인 키와 물리적 주소의 매핑은 프로그래머가 정의, 프로그래머가 지식이 있어야함
###. 디스크 공간 할당
#. 연속 할당 기법
- 보조기억장치의 연속된 가용공간에 파일 저장공간을 할당하는 방식이다. 이를 위해 사용자는 생성하려는 파일의 저장공간 크기를 미리 정해야 한다.
- 장점 : 논리적으로 연속된 레코드들이 보조기억장치에 물리적으로도 서로 인접하게 저장되므로, 레코드들이 보조기억장치의 여러곳에 퍼져있는 경우보다 액세스 효율이 좋다. 디렉토리에는 각 파일의 시작 주소와 파일의 길이만 유지하면 되므로 파일의 디렉토리 구현이 수월
- 단점 : 외부 단편화, 파일이 삭제되면 그 파일이 차지하고 있던 공간은 회수되지만, 새로 생성되는 파일의 크기와 같은 크기의 파일이 만들어질 가능성이 희박하기에 집약을 하여 공간을 만들어 줘야한다.
- 단점 : 파일의 크기 확장에 대한 대응이 비효율적, 할당된 공간보다 파일의 크기가 커지면 그 파일을 저장할 수 있는 다른 공간으로 파일을 옮겨야 한다.
#. 불연속 할당 기법
- 섹터 또는 블록(정해진 수의 섹터) 단위로 공간을 할당하는 방식, 블록들은 포인터를 이용하여 연결
- 장점 : 연속할당 기법의 문제였던 단편화와 파일 확장문제가 발생하지 않는다
- 단점 : 파일 공간이 분산되어 논리적으로 연속된 레코드들을 검색하는 경우 성능저하가 발생, 포인터 관리를 위한 연산 및 곤간이 필요하여 추가 비용 발생. 실제 데이터를 저장할 공간이 감소
'OS' 카테고리의 다른 글
[OS] 리눅스1급_OS_운영체제 종류 (0) | 2023.07.01 |
---|---|
[OS] 분산 운영체제_방통대 교재 정리 (0) | 2023.06.14 |
[OS] 장치 관리 _ 방통대 교재 정리 (0) | 2023.06.13 |
[OS] 페이지 교체 알고리즘 _ 방통대 교재 정리 (0) | 2023.06.13 |
[OS] 가상 메모리_ 방통대 교재 정리 (1) | 2023.06.13 |