기어가더라도 제대로

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5) 본문

CS/운영체제

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5)

Damagucci-juice 2022. 8. 17. 17:39
  • Allocation Methods
    • File 저장을 위한 디스크 공간 할당 방법
  • Free space management
    • 디스크의 빈 공간 관리

‏‏‎ ‎

Allocation Method

Continuous Allocation

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5)  image

 

  • 한 파일을 디스크의 연속된 block 에 저장
  • 장점
    • 효율적인 file 접근(순차, 직접 접근)
  • 문제점
    • 새로운 file 을 위한 공간 확보가 어려움
    • External fragmentation
    • file 공간 크기 결정이 어려움
      • 파일이 커져야 하는 경우 고려해야함

‏‏‎ ‎

Linked Allocation

  • File 이 저장된 Block들을 linked list 로 연결
    • 비연속 할당 가능
  • Directory는 각 file 에 대한 첫 번쨰 block에 대한 포인터를 가짐
  • Simple, No external fragmenation
  • 단점
    • 직접 접근에 비효율적
    • 포인터 저장을 위한 공간 필요
    • 신뢰성 문제
      • 사용자가 포인터를 실수로 건드리는 문제 등

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5)  image

‏‎ ‎

Linked Allocation: variation -> FAT

  • File Allocation Table(FAT)
    • 각 블럭의 시작부분에 다음 블록의 번호를 기록하는 방법
  • MS-DOS, Windows 등에 사용됨

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5)  image

Indexed Allocation

 

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5)  image

‏‎ ‎

  • File 이 저장된 블럭의 정보(Pointer) 를 index block에 모아둠
  • 직접 접근에 효율적
    • 순차 접근에는 비효율적
  • File 당 index block 을 유지
    • space overhead
    • index block 크기에따라 파일의 최대 크기가 제한됨
  • Unix 등에 사용됨

‏‏‎ ‎

Free Space Management

  • Bit vector
  • linked list
  • grouping
  • counting

‏‏‎ ‎

bit vector

  • 시스템 내 모든 블럭들에 대한 사용 여부를 1 bit flag로 표시
  • simple and efficient
  • bit vector 전체를 메모리에 보관해야함
    • 큰 크기의 비트 맵을 저장해야 하므로 대형 시스템에 부적합

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5)  image

linked list

  • 빈 블록을 링크드 리스트로 연결
  • 비효율적

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5)  image

Grouping

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5)  image

  • n 개의 빈 블럭을 그룹으로 묶고, 그룹 단위로 링크드 리스트로 연결
  • 연속된 빈 블럭을 쉽게 찾을 수 있음

‏‏‎ ‎

Counting

  • 연속된 빈 블럭들 중 첫 번째 블럭의 주소와 연속된 블럭의 수를 table 로 유지
  • Continuous allocation 시스템에 유리한 기법

[운영체제-김덕수교수님] 파일 시스템 구현 (5/5)  image

‏‏‎

Comments