Skip to content

Latest commit

 

History

History
48 lines (39 loc) · 4.27 KB

week9_0710.md

File metadata and controls

48 lines (39 loc) · 4.27 KB
  • VFS의 이점을 제시하고, 그것이 가능한 이유를 설명하시오.

    • 이점
      • VFS라는 추상화 계층을 추가함으로써 하나의 운영체제에서 여러 파일시스템에 대해 공통 인터페이스를 제공한다.
      • 사용자는 통일된 VFS 시스템 호출로 다양한 파일시스템을 사용할 수 있다.
    • VFS는 파일시스템의 일반적인 기능과 동작을 나타내는 공통 파일 모델 을 제공한다.
      • 이러한 인터페이스 를 구현한 파일시스템을 VFS의 추상화 계층 밑에 두면, 사용자 입장 에서는 동일한 인터페이스 로 여러 파일시스템을 사용할 수 있다.

    VFS가 제공하는 공통 파일 모델 덕분에 동일한 인터페이스로 여러 파일시스템을 사용할 수 있다.

  • 슈퍼블록 객체 에 대해 설명하시오.

    • 해당 파일시스템 전체에 대한 메타데이터 를 저장한다.
      • 블록 사이즈, 아이노드 테이블 위치, 파일시스템 종류 등
    • 슈퍼블록 객체 는 물리적인 공간과 대응된다.
      • 디스크의 슈퍼블록 또는 제어 블록
  • 아이노드 객체 에 대해 설명하시오.

    • 커널이 파일 을 관리하는 데 필요한 모든 정보를 담고 있다.

      리눅스에서는 모든 것이 파일 이며 디렉토리 또한 파일 이름과 아이노드 번호의 매핑 정보를 갖는 파일 이다.

    • 아이노드 가 없는 파일시스템은 VFS 추상화 인터페이스를 제공하기 위해 직접 파일의 정보를 수집하여 메모리 상에 아이노드 객체 를 구축해야 한다.
    • 아이노드 객체 또한 물리적인 공간과 대응된다.
      • 디스크의 아이노드
  • 덴트리 객체 에 대해 설명하시오.

    • 파일을 포함한 경로 상의 모든 항목을 덴트리 객체 라 부른다.

      /bin/vi 경로에서 /, bin, vi 모두가 덴트리 객체 이다.

    • VFS가 디렉토리 관련 작업을 하면서 필요할 때 경로를 보고 동적으로 덴트리 객체 를 생성한다.

    • 대응되는 물리적인 공간이 없다.

      • 객체의 변경 상태 혹은 디스크 저장 필요 여부를 나타내는 플래그가 없다.
    • 사용 상태, 미사용 상태, 부정 상태 의 3가지 상태를 가지며 미사용 상태, 부정 상태 는 효과적인 캐싱을 가능하게 해주나 메모리 확보가 필요한 경우 폐기될 수 있다.

    • 탐색 작업에 왜 아이노드 를 사용하지 않고 덴트리 객체 를 따로 만들어 사용하는가?

      • 탐색 작업이 자주 발생한다는 것을 고려해야 한다. 아이노드는 경로 정보 외에 많은 정보를 담고 있으며 아이노드를 이용한 탐색은 많은 절차를 거치기에 덴트리 객체를 이용한다.
      • 덴트리 객체를 dcache 라고 부르는 덴트리 캐시에 저장해 재사용성을 높여 더 빠른 탐색을 가능하게 해준다.
  • 파일 객체 에 대해 설명하시오.

    • 프로세스가 open한 파일을 표현하는 객체이다.

      • 프로세스는 슈퍼블록, 아이노드, 덴트리 가 아닌 파일 을 직접 다룬다.
    • 파일 객체 는 열린 파일을 메모리 상에 나타낸 것이다.

      • 여러 프로세스에서 하나의 파일을 동시에 열 수 있기 때문에, 같은 파일에 대해 여러 개의 파일 객체 가 존재할 수 있다.
    • 파일 객체 는 열린 파일을 프로세스 관점 에서 표현해주는 것 뿐이다.

      • 프로세스는 파일 객체 를 직접 다루지만, 실제로 열린 파일은 파일 객체 가 가리키는, 덴트리 객체 가 가리키는 아이노드 객체 가 표현한다. VFS 객체 도식
    • 대응되는 물리적인 공간이 없다.

      • 객체의 변경 상태 혹은 디스크 저장 필요 여부를 나타내는 플래그가 없다.
      • f_dentry 포인터를 통해 해당 덴트리 객체를 표시하며 그 덴트리 객체가 가리키는 아이노드를 통해 파일의 변경 여부를 표시한다.