ㅇ ㅂㅇ
파일 시스템 관리
기본 용어
> 파일 관리자
- 운영체제 중에서 기억장치 관리시스템의 한 부분으로 주로 보조기억장치 상의 파일을 총괄 관리한다.
- 파일관리자는 적절한 제어방식을 통해 정보를 보관하는 개인 저장장소를 제공하고, 정보를 여러 사용자가 공동으로 이용할 수 있게 하는 수단을 제공함
> 파일 할당 테이블(FAT ; File Allocaction Table)
- 파일이 저장되어 있는 클러스터들의 위치를 제공하는 일종의 파일 배치표
- 운영체제는 새로운 파일에 대해 각 클러스터(주소)의 위치와 순서를 기록한 FAT 엔트리를 만듬
- 파일을 읽어오는 것은 디스크에서 먼저 디렉토리 등록정보와 FAT을 참조하여 그 파일의 시작 클러스터와 마지막 클러스터에 있는 내용을 읽음
디렉토리 구조
- 1 단계(단일) 디렉토리 구조
-- 모든 파일이 같은 디렉토리에 존재하며, 파일 이름이 유일한 구조
-- 파일이나 사용자의 수가 증가하면 파일 관리가 복잡해짐
-- 파일명은 일반적으로 내용과 관련된 이름을 사용하며 파일명의 길이는 시스템에 따라 제한됨
- 2 단계 디렉토리 구조 (2계층 구조)
-- 중앙에 마스터 디렉토리(MDF)가 있고, 각 사용자의 디렉토리(UFD)가 하위에 있는 구조
-- 마스터 파일 디렉토리는 사용자 파일 디렉토리를 관리하고, 그 아래에 사용자별로 서로 다른 파일 디렉토리가 있는 2계층 구조
-- 하나의 사용자 파일 디렉토리에서는 유일한 파일 이름을 사용해야 하지만, 서로 다른 사용자 파일 디렉토리에서는 동일한 파일 이름을 사용 가능
-- 특정 파일을 지정 할 때는 사용자 이름과 파일 이름을 함께 지정해야 하므로 파일이름이 길어짐(ex 사용자1/파일1 ..)
- 트리 디렉토리 구조
-- 하나의 루트 디렉토리와 다수의 하위(종속,서브) 디렉토리로 구성되며, 포인터로 탐색(일반적인 OS(DOS, Windows, UNIX 등)에서 사용)
-- 각 디렉토리는 서브 디렉토리나 파일을 가질 수 있음
-- 서로 다른 디렉토리 내에 동일한 이름의 파일이나 디렉토리를 생성 할 수 있음
-- 디렉토리의 탐색은 포인터를 사용하며, 경로명은 절대 경로명과 상대 경로명을 사용
* 절대 경로명 : 루트에서부터 지정도니 파일 위치까지의 경로
* 상대 경로명 : 현재 디렉토리를 기준으로 지정된 파일 위치까지의 경로
- 비주기(비순환) 디렉토리 구조(Acyclic Graph Directory)
-- 파일과 디렉토리의 공유가 허용될 수 있는 사이클이 없는 구조
-> 사이클이 허용되지 않는 구조라는 것은 하위 디렉토리가 상위 디렉토리나 상위 파일을 공유 할 수 없다는 것을 의미함
-- 디스크 공간을 절약 할 수 있음
-- 하나의 파일이나 디렉토리가 여러 개의 경로 이름을 가질 수 있음
-- 디렉토리 구조가 복잡하고, 공유된 하나의 파일을 탐색 할 경우 다른 경로로 두 번 이상 찾아 갈 수 있으므로 시스템 성능이 저하 될 수 있음
-- 공유된 파일을 삭제할 경우 고아 포인터(Dangling Pointer)가 발생 할 수 있음
-> 고아포인터(Dangling Pointer)
- 여러 디렉토리에서 한 개의 파일을 공유하여 사용 할 때 공유된 파일을 삭제하면 파일이 없어졌는데도 불구하고 다른 디렉토리에서는 그 파일을 가리키는 포인터가 남아 있게 된다. 이와 같이 삭제된 파일에 대한 포인터를 끊어진 포인터, 즉 고아 포인터라고 함
- 일반 그래프 구조
-- 사이클이 허용되고, 기본 트리 디렉토리 구조에 링크를 첨가한 구조
-> 링크 : 다른 파일이나 디렉토리를 가리키는 포인터를 말함
-- 디렉토리와 파일 공유에 완전한 융통성이 있음
-- 탐색 알고리즘이 간단하여, 파일과 디렉토리를 액세스하기가 쉬움
-- 사용되지 않은 디스크 공간을 되찾기 위해 쓰레기 수집(Garbage Collection)이 필요
-- 불필요한 파일을 제거하여 사용 공간을 늘리기 위해 참조 계수기가 필요함
-> 참조 계수기
- 파일 시스템을 탐색하는 것으로 접근 할 수 있는 디스크의 모든 공간을 표시해 두고 다음번 탐색시 표시되지 않은 공간을 사용 가능한 공간의 리스트로 수집하는 것을 Garbage Collection이라고 하며, 이 때 사용되는 것을 참조 계수기라고 한다.
파일 공간의 할당과 회수 방법
> 연속 할당(Contiguous Allocation)
- 파일들이 디스크 내의 연속적으로 인접된 공간에 저장되는 기법
- 할당 방법에 따라 고정크기와 가변크기로 구분
- 연속하는 논리적 블록들이 물리적으로 서로 인접하여 있는 것
- 이는 연속하는 논리적 블록들이 디스크 전체에 분산되어 있는 것에 비해 훨씬 빠른 액세스가 가능
> 연결 할당(Linked Allocation)
- 동일 파일에 속해 있는 섹터들이 연결리스트(Linked List)로 연결되어 있으므로 디스크 전체에 분산되어 있어도 액세스가 가능한 기억장치 할당기법
- 블록이 어디에 있든지 포인터만 연결해주면 되므로 외부 단편화가 발생하지 않음
- 따라서 연속할당에서와 같은 압축은 불필요
> 색인 할당(Indexed Allocation)
- 연결 할당은 연속 할당의 외부단편화 문제와 파일 크기 예측 문제를 해결했으나, FAT이 없으면 직접 접근 방식을 지원 할 수 없음
- 색인 할당은 모든 포인터들을 색인 블록으로 관리함으로써 이 문제를 해결
- 각 파일들은 디스크 블록 주소를 모아놓은 색인 블록을 가지므로 기억공간의 낭비가 발생
Window File System
> FAT(File Allocaction Table)
- DOS 때 부터 사용되고 있는 대표적인 File System으로 FAT16과 FAT32가 있음
- 하드디스크에 FAT이라는 영역을 만들어 파일의 실제 위치 등의 정보를 기록하고 이를 이용
- 저용량에 적합 / 보안에 취약 / 호환성 우수
> NTFS(NT File System)
- MFT(Master File Table)를 사용하여 관리하며, Mirror와 파일로그가 유지되어 파일 복구가 가능
- FAT에다가 대용량 / 보안성 / 압축기능 / 원격저장소 등의 기능을 추가해서 만든 윈도우 전용 File System
- 대용량 지원 / 강력한 보안 / 자동 압축 및 안정성 / 호환성이 좋지 않음 / 저용량에서는 FAT 보다 효율이 좋지 못함
Unix & Linux File System
- EXT2 : FSCK(File System Check)을 이용하여 시스템 손상 복구 가능
- EXT3 : 저널링(Journaling) 기술로 더욱 빠르고 안정적인 복구가 가능
- EXT4 : 빨라진 FSCK / 하위 호환성 / 지연된 할당(Allocate-On-Flush ; 데이터가 디스크에 쓰이기 전까지 블록 할당 지연)
Partiton
- 주 파티션
-- 기본 파티션을 의미, 주 파티션의 수 + 확장 파티션의 수 <= 4
- 확장 파티션
-- 저장 공간은 없으며, 논리 파티션을 만들게 해주는 그릇의 역할, 디스크에 하나만 생성
- 논리 파티션
-- 최대 12개 (NTFS 에서는 제한 X)
댓글 없음:
댓글 쓰기