오식랜드
[운영체제] 파일 시스템 본문
반응형
파일 시스템 ( = 윈도우 탐색기)
- 파일 관리자가 저장장치 전체 관리
- 파일 테이블을 사용하여 관리 (만든 시간, 수정 시간, 용량, 위치 등… 내용은 없음!!)
- 파일 접근 권한 등을 관리 (파일 디스크럽터 관리)
파일 테이블
- 블록 : 저장장치에서 사용하는 가장 작은 단위
- 어떤 파일이 어떤 블록에 있는지 기록
파일 이름과 확장자
- 과거에는 이름과 확장자의 글자수 제한이 있었음 → 현재는 완화 (최대 길이는 255자)
- 파일 이름에 마침표 여러번 사용 가능 → 마지막 마침표 뒤를 확장자로 인식
- 윈도우보다 유닉스 규칙이 더 빡셈 (특수문자는 아예 안됨)
파일 작업
- 파일 내용 변경
- 편집기를 통해 변경
- 작업명에 괄호가 있음 (함수인듯)
- 파일 자체 변경
- 윈도우 탐색기에서 하는 일 (생성, 삭제, 이동, 복사, 검색 등)
파일 헤더
- 파일의 버전, 크기 정보 등 응용프로그램에 필요한 정보 담김
- 파일 속성은 파일 테이블에 위치
- 파일 헤더는 파일의 맨 앞 위치
파티션
- 저장장치를 2개 이상의 묶음으로 나누는 것
- 논리적 분할
- 디스크 1개를 2n개 처럼 사용할 수 있음
포맷
- 파일 시스템 초기화
- 빠른 포맷 ⇒ 데이터는 그대로. 파일 테이블만 초기화
- 느린 포맷 ⇒ 블록의 모든 데이터를 0 으로, 파일 테이블도 초기화
- 포맷 시 블록 크기 지정 가
조각모음
- 하드디스크 내의 단편화/조각화 해결
- 주기적으로 필요
- USB, SSD같은 반도체 저장장치는 조각모음 필요가 없음
파일 구조
- 순차 파일 구조 : 하나의 긴 줄로 저장
- 장점
- 저장공간에 낭비공간이 없음
- 구조가 단순 → 테이프, 플로피디스크, 저장장치
- 데이터를 읽거나 저장할 때 빠르게 처리
- 단점
- 새로운 데이터 삽입하거나 삭제할 때 시간이 걸림
- 데이터 검색에 부적합함
- 장점
- 직접 파일 구조 : 물리적 주소로 바로 변환
- 특정 함수를 통해 접근 가능 → 해시함수
- 인덱스 파일 구조 : 인덱스 테이블 사용 (현대에도 사용)
- 장점
- 검색이 빨라짐
- 순차접근, 직접접근 둘 다 가능
- 장점
디렉토리 구조
- 계층구조를 갖고있음
- 디렉토리도 하나의 파일임 (일반 파일 → 데이터 / 디렉토리 → 파일정보 담김)
- 최상위 : 루트 디렉토리
- 최하위 : 파일
- 1단계 디렉토리 구조
- 루트 디렉토리에서는 디렉토리 생성 가능
- 그 안에서는 디렉토리 생성 불가능 (파일만 존재)
- 다단계 디렉토리 구조
- 트리 디렉토리 구조라고도 함
- 단계 확장에 제약이 없음
- 바로가기 링크 포함한 구조
- 그래프 구조로 바뀜 (사이클이 있음)
- 현대의 구조
경로
- 파일이 “전체 디렉토리” 중 어디에 있는지 (C:/user/바탕화면/~~)
- 한 디렉토리 안에는 동명 파일 불가능
- 절대경로 : 루트 디렉토리 기준으로 파일 위치 표시
- 상대경로 : 현재 위치를 기준으로 파일 위치 표시
마운트
- 프린터나 클라우드 등을 파일 구조 중에 추가 (계층 시스템에 추가)
- 파티션 두개를 연결하는 것
할당 방식
- 연속 할당
- 파일을 구성하는 데이터를 디스크상에 연속 배열
- 간단한 방식
- 파일 삭제 시 빈 공간 생김 + 새 파일에 맞는 공간이 없으면 연속할당이 불가능
- → 실제 사용 못함
- 불연속 할당
- 데이터를 분산 저장
- 파일 시스템이 관리
- 연결리스트를 이용한 연결 할당 / 인덱스를 이용한 인덱스 할당이 대표적
2-1. 연결 할당
- 불연속할당 중 1개
- 연결리스트로 관리
- 파일 테이블에는 시작블록에 대한 정보만 저장
- 나머지는 블록에서 블록으로 연결
- 체인할당이라고도 함
2-2. 인덱스 할당
- 데이터의 인덱스를 담고있는 인덱스 블록은 연결
- 인덱스 블록 → 실제 데이터의 위치에 관한 정보를 순서대로 보관
- 테이블이 꽉 차서 연결할 수 없을 때에는 → 간접 인덱스 블록으로 무한확장 가능
- 파일 사이즈에 영향이 없도록 되어있음 (커질수록 이중, 삼중 간접 포인터 사용)
빈 공간 관리
- 빈 공간 리스트
- 빈 블록의 정보를 모아두는 빈 공간 리스트 유지
- 파일 테이블의 헤더 삭제 → 빈 공간 리스트에 등록 ⇒ 사용자는 파일 삭제로 간주 (데이터는 그대로 남아있음!!!) (ex. 휴지통)
- FIFO 방식으로 할당
유닉스의 파일 시스템
- 접근 패턴의 맨 앞자리는 파일인지 디렉토리인지 구분 (0→ 파일, 1→ 디렉토리)
- 나머지 9자리는 rwx 세덩이로 구성
- 첫번째 덩어리 : 파일의 소유자 권한
- 두번째 덩어리 : 소유자가 속한 그룹 권한
- 세번째 덩어리 : 제삼자 권한
- 총 10bit의 패턴
- 과거 유닉스는 메인컴퓨터가 있고 그와 연결된 개인 컴퓨터가 있어서 서로에 대한 제한이 필요했음
반응형
'dev-log > cs' 카테고리의 다른 글
[알고리즘] 알고리즘이란 (0) | 2023.10.20 |
---|---|
[운영체제] 네트워크 (0) | 2023.10.01 |
[운영체제] 포트 (port) (0) | 2023.10.01 |
[운영체제] 하드디스크 (0) | 2023.10.01 |
[운영체제] 입출력장치 (0) | 2023.10.01 |
Comments