개발공부/OS

[Chapter-9] file system

tae_98 2024. 8. 24. 19:11

-이대 반효경 교수님 강의 기반으로 작성되었습니다-

 

File and file system

  • 파일 : 논리적인 저장 단위
  • 파일 시스템 : 운영체제와 모든 데이터, 프로그램의 저장과 접근을 위한 기법
  • 파티션 : 연속된 저장 공간을 나누어 사용할수 있도록 정의한 규약

Access Methods

  • 순차접근 : 파일의 정보가 레코드 숱서대로 처리
  • 직접 접근 : 파일의 레코드를 임의의 순서로 접근 가능
  • index 접근 : index를 먼저 찾고 대응되는 포인터를 얻는다.

Directory

  • 제공하는 기능들
    • 파일 찾기
    • 파일 생성
    • 파일 삭제 
    • 디렉터리 나열
    • rename
    • 파일 시스템 순회 ==> find로 찾을때 트리 아래 도 찾는기능
  • dir 구성
    • 1단계 디렉터리 : 모든 파일들이 디렉터리 밑에 (별로다)
    • 2단계 디렉터리 : 사용자 별로 별도의 디렉터리
    • 트리 구조 디렉터리 : 흔히 사용하는거, 절대 경로/ 상대 경로를 가진다.
      파일이면 0 디렉터리면 1로 구분


      여기서 부터 심볼릭 링크 등을 사용해서 dir 구조를 만듬
    • 비순환 그래프 디렉터리 : 디렉터리들이 서브 디렉터리들과 파일을 공유(트리와 유사)


    • 일반 그래프 디렉터리 : 비순환 그래프 dir + 순환을 허용 but 무한 루프 가능

 

 

Allocation of File Data in Disk

  • Contiguous allocation
    • 파일을 디스크에 연속되게 저장
    • 시작부분 위치 + 파일의 길이에 대한 정보
    • 외부 단편화(빈 공간), 유연성 부족...
  • Linked Allocation
    • 빈 위치면 자유롭게 할당 
    • linked list 저장 방식이랑 비슷함
    • random access 불가능, 포인터 공간때문에 효율성 저하
    • 포인터 유실시 데이터 유실 ==> FAT 파일시스템(포인터 별도 위치 보관) 으로 해결
  • Indexed Allocation
    • 한블록 하나의 파일에 대한 데이터의 index 모두 저장
    • 외부 단편화 발생 x, random access 가능
  • ++Journaling File system
    • 데이터 무결성을 보장하기 위해 로그에 기록 ==> 실제 디스크에 반영
    •