[2024.10.21] 필수 온라인 강의 Part2 운영체제 CH06 파일 시스템
- 운영체제 내부에서 파일과 디렉터리를 관리해주는 한 부분
파일과 디렉터리
파일시스템의 관리 대상
- 파일 시스템
- 파일과 디렉터리(폴더)를 관리하는 커널의 한 부분
- 다양한 파일 시스템이 있고, 여러 파일 시스템을 동시에 사용할 수 있음 - 파일 (file)
- 보조기억장치의 의미있는 정보의 집합
- 구성 요소 : 이름, 실행하기 위한 정보, 부가 정보(메타데이터, 속성)
- 속성 : 유형 (확장자), 크기, 생성 날짜, 마지막 접근 날짜, 마지막 수정 날짜, 생성자, 소유자, 위치 - 블록(block)
- 파일(+ 디렉터리) 접근 단위
- 섹터 단위로 접근하지 않음 : 하드디스크 제일 작은 단위(섹터)
- 운영체제가 보조기억장치를 지칭할때도 블록 단위로 함 - 디렉터리(폴더)
- 파일을 한 곳에 묶어서 관리할 수 있는 대상중 하나
- 계층/tree 구조 : 경로(특정파일의 위치를 식별할 수 있는 정보)라는 걔념이 발생
- 루트 디렉터리 = 최상위 폴더(최상단에 위치한 폴더) = /로 표현 = 예시)C드라이브 등
- 절대 경로 : 최상위 폴터에서의 지금까지의 전제 경로
- 상대 경로 : 현재경로를 기반으로 한, 파일의 경로
- 특별경로를 나타내는 표시자 : 현재 경로(.), 상위 경로(..), 홈 디렉터리(기본경로)(~)
- 많은 운영체제는 디렉터리를 파일과 동일하게 간주한다
- 디렉터리 테이블 구성 정보 : 파일 이름 , 위치를 유추할 수 있는 정보 , (파일 속성 : 가끔 저장)
- 보조기억장치에서 디렉터리 테이블(파일 이름/위치 유추할 수 있는 정보)로 저장되어있음
-> 디렉터리 테이블을 통해 특정 파일에 접근가능
파일 시스템이 만들어지기까지
- 보조기억장치 하나에 단일한 파일 시스템이 사용되는 것이 아니다 : 영역을 나눌 필요가 있다.
- 파티셔닝(partitioning)
- 보조기억장치의 영역을 구획하는 작업 : 아주 작은 용량은 필요 없음
-파티션(partition): 보조기억장치에서 구획된 영역
- 커다란 용량을 가진 기억장치에 마구잡이로 저장시, 관리와 찾는 시간이 굉장히 오래 걸림
- 파티션마다 각기 다른 파일시스템을 사용 가능함.
- fdisk 명령어 사용 - 포매팅(format + ing)
- 파티셔닝 후에 바로 파일 저장/디렉터리 저장 할 수 없음
- 파일 시스템을 만들려면, 각각의 파티션에 어떤 파일시스템을 쓸거에요로 초기화를 해줘야함!!!!
- 파일시스템을 만드는 작업 : 포메팅을 할 때, 파일시스템이 결정이 된다!
- 파일시스템이 달라지면, 어떤 식으로 보조기억장치에 있는 데이터덩어리를 파일로 할당을 할지/정보를 파일로 읽어드릴지 결정이 됨.
- mkfs (make file system) 명령어 사용
- 운영체제 설치된 이후에도 가능하지만, 운영체제 설치시 파티셔닝/포매팅을 진행함 - 마운트 (mount) : 파일 시스템에 접근할 경로 결정
- 파티셔닝을 하고 포매팅을 하면, 어떤 보조기억장치의 영역을 어떤 파일시스템으로 사용할거다!가 나옴
-> 얘에 접근이 가능해야함. : 어떤식으로 접근하는지를 결정해주는 과정
- 파일 시스템을 다른 파일 시스템에 편입
( 예시 ) usb를 데스크탑에 편입을 시켜서 사용이 가능하게 함)
파일 시스템 종류와 특성
- 운영체제가 보조기억장치에 있는 정보에 접근시 : 블록 단위로 접근 (가장 작은 단위는 sector)
연속적으로 블록을 할당할 경우: 외부 단편화 발생
-> 불연속적으로 파일을 할당하여 접근함
- 불연속적으로 저장된 파일에 접근하는 방법에 따라 나뉜다.
- FAT 기반 파일 시스템
- FAT(File Allocation Table)를 활용하는 파일 시스템 - 저용량 저장장치에서 많이 사용함 ( USB 메모리, SD 카드 , MSMos)
- FAT : 파일이 어디에 할당되었는지 저장하는 표와 같은 정보
- 매모리에 캐시가 되어있음 : 메모리 두번에 접근X : 빠름
- 디렉터리 엔트리(각각의 행)에 파일 속성 표현한다!!! (중요한 특징)
- 디렉터리 엔트리에 파일 속성 표현 (파일 이름, 확장자, 속성, 예약영역, 생서시간, 마지막접근시간, 마지막수정시간, 시작블록 파일크기) - 아이노드 기반 파일 시스템
- 아이노드(i-node)라는 색인 블록을 활용한 파일 시스템
- 색인블록 : 이파일이 어떤 블록에 할당이 되어있는지에 대한 정보를 전부 한데 모아놓은 특별한 블록
- 아이오드 : 이 색인블록으로 만들어진 unix 파일 시스템의 색인블록을 의미
- 색인블록(index block)을 줄인말 = I-Node
- 사실상 파일의 모든 것을 담고 있다 (아이노드만 알면 속성, 저장위치 모두 알 수 있음)
- 파티션 내 아이노드 영역 - 계층적인 관리, 15개까지만 생성
- 단일 간접 블록/이중간접블록/삼중간접블록을 검색해보기
- 아이노드 조회 : $ ls -i
- 아이노드를 사용량이 100%로 찼을 경우 : 용량이 남아 있어도 파일 생성 불가 - 기타 파일 시스템 특성 정리
- NTFS : 윈도우 운영체제에서 주로 사용되는 파일 시스템
- APFS : macOS, iOS, watchOS, tvOS에서 주로 사용되는 파일 시스템
- ext2, ext3, ext4, xfs : 리눅스 운영체제에서 주로 사용되는 파일 시스템 - 파일시스템 특성을 나누는 것 : 얼마나 큰 파일을 가능, 저널링 기능을 제공하는지?
- 저널링 파일 시스템(journaling file system)
- 파일 시스템에 크래쉬가 발생했을 때 빠르게 복구하기 위한 방법
- 작업 직전 파티션의 로그 영역에 로그를 남긴다.
- 로그를 남긴 후 작업을 수행한다.
- 작업이 끝났다면 로그를 삭제한다.
'Study > CS 기초' 카테고리의 다른 글
네트워크 - 네트워크 엑세스 계층 (2) | 2024.10.22 |
---|---|
네트워크 거시적으로 보기 (6) | 2024.10.21 |
운영체제 - 가상 메모리 관리 (3) | 2024.10.21 |
운영체제 - 동기화와 교착상태 (2) | 2024.10.21 |
운영체제 - CPU 스케줄링 (2) | 2024.10.19 |