[운체] 오늘의 삽질 - 0727

방법이있지·2025년 7월 26일
post-thumbnail

일요일은 교육장에 안 나갈거라 오늘 미리 올립니다.

파일 시스템

  • 파일, 디렉터리를 보조기억장치에 저장 및 접근할 수 있게 하는 운영체제 프로그램
  • e.g., FAT 파일 시스템, 유닉스 파일 시스템

파티셔닝과 포매팅

  • 보조기억장치 (HDD, SSD 등)에 곧바로 파일을 생성하거나 저장할 순 없음
  • 파티셔닝/포매팅을 먼저 거쳐야 함
  • 파티셔닝: 보조기억장치를 하나 이상의 논리적 단위(파티션)로 구획하는 것
  • 포매팅: 파일 시스템을 설정하고, 새로운 데이터를 쓸 준비를 하는 것
    • 파티션마다 다른 파일 시스템을 사용할 수 있음

파일 할당 방법

  • 블록: 운영체제가 파일, 디렉터리를 읽고 쓰는 단위
  • 한 파일은 보조기억장치에 하나 이상의 블록에 걸쳐 저장됨
    • 운영체제는 실제 HDD의 물리적 섹터를, 블록 단위로 묶어 관리
    • 파일 시스템이 모든 섹터를 관리하기엔, 너무 개수가 많기 때문
  • 파일을 보조기억장치 블록에 할당하는 방법?
    • 연속 할당
    • 불연속 할당 (연결 할당, 색인 할당)

연속 할당

  • 보조기억장치 내 연속적인 블록에 파일을 할당
  • 디렉터리 엔트리에 첫번째 블록 주소와 블록 단위의 길이를 저장
  • 단점: 외부 단편화
    • [10블록 파일][3블록 빈칸][5블록 파일][ 2블록 빈칸 ][8블록 파일]
    • 전체적으론 5블록이 남았는데, 최대 3블록 크기의 파일만 할당 가능

연결 할당

  • 연결 리스트와 같이, 각 블록에 다음 블록의 주소를 저장해 다음 블록을 가리키게 함
  • 디렉터리 엔트리에 첫번째 블록 주소와 블록 단위의 길이를 저장
  • 장점: 불연속 블록 저장이 가능하므로, 외부 단편화 문제 해결됨
  • 단점
    • 파일의 중간 부분부터 접근하고 싶어도, 반드시 첫 블록부터 하나씩 차례대로 읽어야 함
      • 임의 접근(파일 내 임의 위치에 접근) 속도가 느림
    • 하드웨어 고장/오류 발생 시, 해당 블록 이후 블록에 접근할 수 없음
  • FAT 파일시스템은 연결 할당 방식을 일부 변형해 사용

색인 할당

  • 파일별로 색인 블록을 두어, 파일의 모든 블록 주소를 저장
  • 디렉터리 엔트리에 색인 블록을 명시
  • 장점: 외부 단편화 문제 해결 + 파일의 임의 위치에 접근하기 쉬움
  • 유닉스 파일 시스템은 색인 할당 방식을 사용

유닉스 파일 시스템

  • 유닉스 파일 시스템에선 색인 노드를 i-node(index node)라고 부름
  • i-node에는 파일 속성 정보 및 15개의 블록 주소가 저장됨
    • 파일 속성: 파일 크기, 생성 시간, 마지막 접근/수정 시간, 소유자 등
  • 유닉스 파일 시스템 기준, 보조기억장치의 파티션은 예약 영역 / i-node 영역 / 데이터 영역
    • i-node 영역: 각 파일의 i-node 블록들이 저장됨
    • 데이터 영역: 실제 파일 데이터 블록이 저장됨
  • 만약 파일 저장에 15개보다 더 많은 블록이 필요하다면...?

i-node 구조

  • 첫 12개의 블록 주소에는, 직접 블록 주소 저장
    • 파일 데이터가 저장된 블록 주소를 직접적으로 명시
  • 공간 불충분할 시, 13번째 주소에는, 단일 간접 블록 주소 저장
  • 아직도 불충분할 시, 14번째 주소에 이중 간접 블록 주소 저장
  • 아직도 불충분할 시, 15번째 주소에 삼중 간접 블록 주소 저장

i-node 구조상 파일 찾는 과정

profile
뭔가 만드는 걸 좋아하는 개발자 지망생입니다. 프로야구단 LG 트윈스를 응원하고 있습니다.

0개의 댓글