12. 파일시스템

수진·2021년 12월 7일
0

컴퓨터시스템

목록 보기
9/10

1.파일 시스템

파일 관리자가 파일 테이블을 사용해 파일을 관리
사용자가 특정 파일에 접근하려면 파일 관리자에게서 접근 권한(키)를 획득해야함

파일 시스템의 기능

블록과 파일 테이블

블록: 저장장치에서 사용하는 가장 작은 단위, 한 블록에 주소 하나 할당.
여러개의 섹터로 구성, 블록의 크기는 시스템마다 다름

블록 크기 작을 때: 내부 단편화 현상 줄어듬(효율적), 파일이 여러 블록이 됨(속도 느려짐)
큰 파일 多 -> 블록 크기를 크게 잡기

파일 속성

  • 파일 헤더
    파일테이블에서 관리
    일반적인 내용(파일 이름, 종류, 크기, 시간 , 접근 권한 등)
    파일이 몇 번째 블록에 있는지에 대한 정보

  • 고유 헤더
    데이터 파일에는 응용 프로그램이 필요로 하는 고유 헤더가 따로 달려있음
    (파일 버전 번호, 크기, 특수 정보 등)

파일 구조

  1. 순차 파일 구조
    파일 내용이 하나의 긴 줄로 늘어선 형태
    - 장점
    순서대로 기록 -> 저장공간에 낭비되는 부분 없음
    순서대로 데이터를 읽거나 저장할 때 빠르게 처리
    - 단점
    새로운 데이터를 삽입/삭제 시 오래 걸림
    직접 접근이 어려움(앞에서부터 순서대로), 데이터 검색에 부적합

  2. 인덱스 파일 구조
    순차파일 구조 + 인덱스테이블 => 순차 접근 & 직접 접근 가능
    - 저장-> 순차파일구조
    - 접근->인덱스 테이블

  3. 직접 파일 구조
    저장하려는 데이터의 특정값에 어떤 관계를 정의하여 물리 주소로 바로 변환
    특정 함수(해시 함수)를 이용해 직접 접근 가능
    -장점
    해시함수 -> 데이터 접근 빠름
    -단점
    전체 데이터가 고르게 저장되는 해시 함수를 찾기 어려움
    해시함수 계산이 복잡할 수도 있다
    저장공간 낭비 문제

디렉터리

관련있는 파일을 하나로 모아 놓은 곳
루트 디렉터리: 최상위 디렉터리

디렉터리 파일

일반 파일 -> 데이터 담김
디렉터리 -> 파일정보 담김 (디렉터리 이름, 만든 시간, 접근 권한 등)

경로

파일이 전체 디렉터리 중 어디에 있는지
서로 다른 디렉터리에 같은 이름의 파일 있을 수 있음

  • 절대경로: 루트 디렉터리 기준으로 파일 위치 표시
  • 상대 경로: 현재 위치를 기준으로 파일 위치 표시

디렉터리 구조

  1. 1단계 디렉터리 구조
    디렉터리 안에 자식 디렉터리 X
  2. 다단계 디렉터리 구조
    디렉터리 안에 디렉터리&파일 저장 가능

마운트

유닉스에서 여러 개의 파티션을 통합하는 명령어
여러 개의 데이터 파일 그룹을 하나인 것처럼 사용

리눅스는 하드 드라이브, 시디롬, USB 외의 물리적인 장치 파일 시스템으로 인식되어야 사용할 수 있다. 이러한 하드웨어 장치에 접근하기 위해서 특정한 위치에 연결해줘야 하는데 이러한 과정을 마운트라고 한다.

연속 할당과 불연속 할당

파일 내 블록을 연결하는 방식

  1. 연속 할당 방식
    연속적으로 배열
    저장하거나 삭제하면 빈공간 생김 -> 맞는 공간 없으면 연속 할당 불가 -> 실제 사용X

  2. 불연속 할당 방식
    빈 블록에 데이터 분산 저장 -> 정보를 파일 sys가 관리
    연결 할당(연결 리스트), 인덱스 할당(인덱스)

연결 할당(체인 할당)

연결 리스트로 관리
파일 테이블 -> 시작 블록 정보만
윈도우 FAT

인덱스 할당

인덱스 블록: 실제 데이터의 위치에 관한 정보를 순서대로 저장
테이블이 꽉 참 -> 간접 인덱스 블록(인덱스 블록 연결) -> 테이블 무한 확장 가능
유닉스 I-node

디스크의 빈 공간 관리

  • 빈 공간 리스트
    • 빈 블록의 정보만 모아놓은 빈 공간 리스트 유지(내부단편화 줄임, 빈공간 효율적 관리)

유닉스 파일의 특징

유닉스의 실행 파일

유닉스 파일 시스템의 접근 패턴

  • chmod: 접근 패턴 변경 명령어
profile
끄적끄적

0개의 댓글