카테고리 없음

[09] 파일 시스템

BGK97 2024. 5. 8. 14:57

파일과 디렉터리

파일

  • 하드디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합
  • 파일 관련 부가 정보를 속성 or 메타데이터라고 함
  • 파일 속성과 유형
    출처 : https://velog.io/@mm723/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%ED%8C%8C%EC%9D%BC%EA%B3%BC-%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC-%ED%8C%8C%EC%9D%BC-%EC%8B%9C%EC%8A%A4%ED%85%9C
  • 확장자를 읽기가 가능해야 파일을 열 수 있음!
파일 연산을 위한 시스템 호출
1. 파일 생성
2. 파일 삭제
3. 파일 열기
4. 파일 닫기
5. 파일 읽기
6. 파일 쓰기

 

디렉터리

  • 파일들을 일목요연하게 관리하기 위해 디렉터리를 이용
  • 폴더라고도 부름
  • 옛날 운영체제에서는 하나의 디렉터리만 존재하여 모든 파일이 하나의 디렉터리 아래에 있었음
    • 이를 1단계 디렉터리라고 함
  • 현재는 트리 구조 디렉터리를 사용

  • 해당 파일의 위치를 알기 위해, 경로(Path)를 사용

절대 경로와 상대 경로

  • 절대 경로
    • 파일이 가지는 절대적인 경로
    • 루트 디렉터리에서의 자신까지의 경로
  • 상대 경로
    • 해당 파일을 불러오는 위치에서의 경로
    • 현재 디렉터리부터 시작
디렉터리 연산을 위한 시스템 호출
1. 디렉터리 생성
2. 디렉터리 삭제
3. 디렉터리 열기
4. 디렉터리 닫기
5. 디렉터리 읽기

 

디렉터리 엔트리

  • 디렉터리도 파일이나, 포함된 정보가 조금 특별할 뿐...
  • 파일이 내부에 해당 파일과 관련한 정보를 담고 있다면, 디렉터리는 내부에 해당 디렉터리에 담겨있는 파일 등 대상과 관련된 정보를 담고 있음!
  • 이를 테이블로 구성해서 사용

  • 디렉터리 테이블에 공통으로 포함하는 정보가 담긴다면
    • 디렉터리에 포함된 대상의 이름과 그 대상이 보조기억장치 내에 저장된 위치를 유추할 수 있는 정보가 담김
    • 디렉터리 엔트리만 보아도, 무엇이 담겨있는지, 보조기억장치의 어디에 위치해있는지를 직간접적으로 알 수 있음

파일 시스템

파티셔닝과 포매팅

  • 보조기억장치를 사용하려면 파티션을 나누는 작업인 파티셔닝과, 포맷 작업인 포매팅을 거쳐야 함

파티셔닝

  • 저장장치의 논리적인 영역을 구획하는 작업
  • 서랍을 정리할 때 칸막이를 통해 구간을 나누고, 구간마다 물품을 정리하는 것과 비슷하다!
  • 이 때 나뉘어진 구역 하나하나를 파티션이라고 한다

포매팅

  • 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 준비를 하는 작업을 의미 
    • 어떤 종류의 파일 시스템을 사용할지는 이 때 결정!

파일 할당 방법

  • 운영 체제는 파일과 디렉터리를 블록 단위로 읽고 씀
  • 하드 디스크의 가장 작은 저장 단위는 섹터이나, 개수가 너무 많고 크기도 작아 블록단위로 관리한다.
  • 블록에 사용하는 파일을 할당해야 하는데, 이 때 할당하는 방법에는 두가지가 있음
    • 연속할당
    • 불연속할당
      • 연결 할당
      • 색인 할당

연속 할당

  • 가장 간단한 방식
  • 보조기억 장치내 연속적인 블록에 파일을 할당
  • 첫번째 블록주소와 블록 단위의 길이만 알면됨
  • 외부 단편화 발생 위험...

연결 할당

  • 연속할당의 문제를 해결할 수 있는 방식
  • 각 블록 일부에 다음 블록의 주소를 저장, 각 블록이 다음 블록을 가리키는 형태로 할당
  • 데이터를 연결리스트로 관리하는 것!
  • 단점
    • 무조건 첫번 째 블록부터 하나씩 차례대로 읽어야 한다
      • 임의 접근 속도가 매우 느림
    • 하드웨어 고장이나 오류 발생 시, 해당 블록 이후는 접근이 안됨

색인 할당

  • 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리
  • 임의의 위치에 접근하기 쉬움
  • 색인 할당을 사용하는 파일시스템은, 디렉터리 엔트리에 파일이름과 더불어 색인 블록 주소를 명시하여 사용

  • 색인 할당을 기반으로 만든 것이 유닉스 파일 시스템임

파일 시스템 살펴보기

  • 파일 시스템은 크게 두가지가 있음
    • FAT 파일 시스템
    • 유닉스 파일 시스템

파일 시스템 살펴보기

  • 연결 할당의 단점을 보완한 파일 시스템
  • 각 블록에 포함된 다음 블록 주소들을 한데 모아 테이블 형태로 관리
    • 이를 파일 할당 테이블이라고 함 (FAT)
  • 사용 예시
    • MS-DOS와 USB, SD카드와 같은 저용량 저장 장치용 파일 시스템에 사용
      • 참고!! 윈도우에서는 블록대신 클러스터라는 용어를 사용
  • FAT 파일 시스템에서 FAT는 파티션의 앞부분에 만들어짐
    • 뒤에 루트 디렉터리가 저장
    • 그 뒤에 서브 디렉터리 파일들을 위한 영역
  • FAT는 하드디스크의 파티션 시작 부분에 있으나 실행 도중 메모리에 캐시될 수있음
    • 이러면, 다음 블록을 찾는 속도가 매우 빨라져 임의접근에도 유리해짐!