2025-12-21

오늘 배운 것

15-1 파일과 디렉터리

파일

  • 정의
    • 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미
    • 의미 있고 관련 있는 정보를 모은 논리적 단위
  • 구성 정보
    • 이름
    • 파일을 실행하기 위한 정보
    • 파일 관련 부가 정보
      • 속성(메타데이터)

파일 속성과 유형

  • 유형 : 운영체제가 인지하는 파일의 종류를 나타낸다.
    • 확장자를 통해 파일 종류가 무엇인지 운영체제에게 알려줌
  • 크기 : 파일의 현재 크기와 허용 가능한 최대 크기를 나타낸다.
  • 보호 : 어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지를 나타낸다.
  • 생성 날짜 : 파일이 생성된 날짜를 나타낸다.
  • 마지막 접근 날짜 : 파일에 마지막으로 접근한 날짜를 나타낸다.
  • 마지막 수정 날짜 : 파일이 마지막으로 수정 날짜를 나타낸다.
  • 생성자 : 파일을 생성한 사용자를 나타낸다.
  • 소유자 : 파일을 소유한 사용자를 나타낸다.
  • 위치 : 파일의 보조기억장치상의 현재 위치를 나타낸다.

파일 연산을 위한 시스템 호출

  • 시스템 호출 : 파일을 다루는 모든 작업은 운영체제에 의해 이뤄지기 때문에 요청 작업 필요
    • 파일 생성
    • 파일 삭제
    • 파일 열기
    • 파일 닫기
    • 파일 읽기
    • 파일 쓰기

디렉터리

  • 파일들을 관리하기 위해 사용
  • 옛날에는 1단계 디렉터리, 현재는 트리구조 디렉터리
  • 루트 디렉터리 : 최상위 디렉터리

절대 경로와 상대 경로

  • 절대 경로 : 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로
  • 상대 경로 : 현재 디렉터리부터 시작하는 경로

디렉터리 연산을 위한 시스템 호출

  • 디렉터리 생성
  • 디렉터리 삭제
  • 디렉터리 열기
  • 디렉터리 닫기
  • 디렉터리 읽기

디렉터리 엔트리

  • 디렉터리는 보조기억장치에 테이블 형태의 정보로 저장

15-2 파일 시스템

파티셔닝과 포매팅

  • 파티셔닝
    • 저장 장치의 논리적인 영역을 구획하는 작업
    • 하드 디스크나 SSD처럼 용량이 큰 저장 장치를 하나 이상의 논리적인 단위로 구획하는 것
  • 포매팅
    • 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 준비하는 작업
    • 저수준 포매팅 : 저장 장치를 생성할 당시 공장에서 수행되는 물리적인 포매팅
    • 논리적 포매팅 : 파일 시스템을 생성하는 포매팅

파일 할당 방법

  • 운영체제는 파일과 디렉터리를 블록 단위로 읽고 씀
  • 섹터 : 하드 디스크의 가장 작은 저장 단위
  • 운영체제는 하나 이상의 섹터를 블록이라는 단위로 묶은 뒤 블록 단위로 파일과 디렉터리를 관리
  • 파일을 보조 기억 장치에 할당하는 방법
    • 연속할당
      • 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식
      • 연속 할당을 사용하는 파일 시스템에서는 파일 이름, 첫번째 블록주소, 블록 단위의 길이를 명시
      • 장점
        • 구현 단순
      • 단점
        • 외부 단편화 야기
    • 불연속할당
      • 연결 할당
        • 각 블록 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당하는 방식
        • 파일을 이루는 데이터를 연결 리스트로 관리
        • 장점
          • 외부 단편화 해결
        • 단점
          • 반드시 첫 번째 블록 부터 하나씩 차례대로 읽어야 함
            • 임의 접근이 느림 : 중간부터 읽고 싶어도 반드시 처음 부터 읽어야 함
          • 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근할 수 없음
      • 색인 할당
        • 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식
        • 색인 할당을 사용하는 파일 시스템에서는 디렉터리 엔트리에 파일 이름과 색인블록주소를 명시
        • 예 : 유닉스 파일 시스템
        • 장점
          • 임의의 위치 접근하기 쉬움

파일 시스템 살펴보기

FAT 파일 시스템

  • 연결 할당의 단점을 보완한 파일 시스템
  • 각 블록에 포함된 다음 블록의 주소들을 한데 모아 테이블 형태로 관리 → 파일 할당 테이블(FAT)
  • FAT 파일 시스템에서 FAT은 파티션의 앞부분에 만들어짐
    • 그래도 실행하는 동중 FAT이 메모리에 캐시될 수 있음
      • 메모리에 적재된 채 실행되면 기존 연결 할당 보다 다음 블록을 찾는 속도가 매우 빨라짐
      • 임의 접근 성능 개선

유닉스 파일 시스템

  • 색인 할당 기반의 파일 시스템
  • i-node(index-node) : 유닉스에서의 색인 블록
    • 파일 속성 정보, 열 다섯개의 블록 주소 저장
  • 유닉스 파일 시스템에는 파일마다 이러한 i-node가 있고, i-node마다 번호가 부여
  • i-node들은 다음과 같이 파티션 내 특정 영역에 모여 있음
  • 문제점
    • i-node의 크기가 유한하여 블록 2-30개 쓰는 파일의 모든 데이터 블록을 가리킬 수 없음
    • 해결 방법
      • 블록 주소 중 열두 개에는 직접 블록 주소를 저장
        • 직접 블록 : 파일 데이터가 저장된 블록
      • 이상으로 필요하다면 열세 번째 주소에 단일 간접 블록 주소를 저장
        • 단일 간접 블록 : 파일 데이터가 저장된 블록이 아닌 파일 데이터를 저장한 블록 주소가 저장된 블록
      • 또 이 이상으로 필요하다면 열 네번째 주소에 이중 간접 블록 주소를 저장
        • 이중 간접 블록 : 데이터 블록 주소를 저장하는 블록 주소가 저장된 블록(단일 간접 블록들의 주소를 저장하는 블록)
      • 또 이 이상으로 필요하면 열다섯 번재 주소에 삼중 간접 블록 주소를 저장
        • 삼중 간접 블록 : 이중 간접 블록 주소가 저장된 블록
  • 유닉스 파일 시스템의 디렉터리 엔트리는 <i-node 번호, 파일이름> 구성

results matching ""

    No results matching ""