운영체제 파일 시스템 구현

민주·2023년 12월 19일
0

CS

목록 보기
16/22

Directory Implementation
**파일 보관 방법
Linear list
-filename, metadata의 리스트
-구현이 간단

  • 디렉토리 내에 파일이 있는지 찾기 위해 linear search 필요

Hash Table
-Linear list + hashing

  • file name을 파일의 linear list의 위치로 바꾸어줌.
  • search time 없앰.
  • collision 발생 가능(hashing 단점)

**메타데이터 보관 방법
1. 디렉토리 내에 직접 보관
2. 디렉토리에는 포인터 두고 다른 곳에 보관

=> Long file name의 지원

  • <file name, file metadata> list에서 각 entry 크기는 일반적으로 고정
  • file name이 고정 크기 entry 길이보다 길어지는 경우 entry의 마지막 부분에 이름의 뒷부분이 위치한 곳의 포인터를 두는 방법 사용
  • 이름의 나머지 부분은 동일한 directory file의 일부에 존재

가상 파일 시스템 (VFS)

목적: 다양한 파일 시스템에 대해 동일한 시스템 콜 인터페이스(API)를 통해 접근할 수 있도록 하는 운영체제

기능: 어떤 파일 시스템을 사용하든 간에 VFS 인터페이스를 통해 이를 사용할 수 있게 함. 이는 파일 시스템의 종류에 관계없이 일관된 방식으로 파일 시스템에 접근 가능.

네트워크 파일 시스템 (NFS)

목적: 분산 시스템에서 네트워크를 통해 파일을 공유할 수 있게 해주는 방법
작동 방식: NFS는 분산 환경에서 파일을 공유하는 대표적인 방법으로, NFS 클라이언트와 NFS 서버를 사용하여 작동

페이지 캐시 (Page Cache)

정의: 가상 메모리의 페이징 시스템에서 사용하는 페이지 프레임을 캐싱의 관점에서 설명하는 용어

활용: 메모리 매핑된 I/O에서 파일의 I/O를 위해 페이지 캐시를 사용

메모리 매핑된 I/O (Memory-Mapped I/O)

작동 방식: 파일의 일부를 가상 메모리에 매핑 => 이 매핑된 영역에 대한 메모리 접근 연산으로 파일의 입출력을 수행

특징: 메모리 매핑된 I/O를 사용할 경우 요청된 데이터가 메모리에 없으면 스왑 영역이 아닌 파일 시스템을 접근

버퍼 캐시 (Buffer Cache):

용도: 파일 시스템을 통한 I/O 연산 시 메모리의 특정 영역인 버퍼 캐시를 사용

특징: 파일 사용의 지역성 활용 => 한 번 읽어온 블록에 대한 후속 요청 시 버퍼 캐시에서 즉시 데이터를 전달 => 모든 프로세스가 이를 공동으로 사용

버퍼 캐시에서는 LRU (최근에 가장 적게 사용된 페이지 교체), LFU (가장 자주 사용되지 않는 페이지 교체) 등의 대체 알고리즘이 필요함.

통합 버퍼 캐시 (Unified Buffer Cache):

최근의 운영체제에서는 기존의 버퍼 캐시가 페이지 캐시에 통합되었다. 이를 통해 두 캐시 시스템의 중복을 제거하고 효율성을 높일 수 있다.

profile
일단 가보면 뭐든 있겠지

0개의 댓글