File System

File and File System

File

  • a name of collection of related information

  • 일반적으로 휘발되지 않는 보조기억장치에 저장된다.

  • 운영체제는 다양한 저장장치를 file 이라는 동일한 논리적 단위로 볼 수 있도록 해줌

  • operation 관련 연산들

    • open, close, create, write, delete, reposition(lseek)

File attribute

  • file의 metadata

  • 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들

    • 파일 이름, 유형, 저장된 위치, 파일 사이즈

    • 접근권한 - 읽기, 쓰기, 실행

    • 시간 - 생성, 변경, 사용

    • 소유자 등

File system

  • 운영체제에서 파일을 관리하는 부분

  • 파일 및 파일의 메타데이터, 디렉토리 정보 등을 관리

  • 파일의 저장 방법 결정

  • 파일 보호

Directory and Logical Disk

  • directory 역시 file 이다.

  • 파일의 메타데이터 중 일부를 보관하고 있는 일종의 특별한 파일이다.

  • 그 디렉토리에 속한 파일 이름, 파일 attribute emf

  • operation

    • search for a file

    • create a file

    • delete a file

    • list a directory

    • rename a file

    • traverse the file system : 파일 시스템 전체를 탐색하는 연산

partition(=logical disk)

  • 하나의 (물리적) 디스크 안에 여러 파티션을 두는 것이 일반적이다.

  • 여러개의 물리적인 디스크를 하나의 파티션으로 구성하기도 한다.

  • (물리적) 디스크를 파티션으로 구성한 뒤, 각각의 파티션에 file system 을 깔거나 swapping 등 다른 용도로 사용할 수 있다.

Open()

  • open() 은 파일을 여는 연산 명령으로 시스템 콜의 일종이다. 따라서 CPU 제어권은 모두 운영체제에게 있다.

  • 일단 open(경로) 를 통해서 시스템 콜이 호출되면, CPU 제어권이 운영체제로 넘어가고, 운영체제는 기본적으로 가지고 있는 root 의 metadata 를 통해서 파일 시스템에 접근한다.

  • metadata 내의 위치를 통해 file 의 콘텐츠를 가져오면, root 내부의 a 의 메타데이터를 확인한다.

  • a 역시 디렉토리이므로 메타데이터가 존재한다. 역시 a의 메타데이터를 따라가 content 를 가져온다.

  • a의 콘텐츠를 통해 b의 메타데이터를 가져오게 된다.

  • b의 fd를 가져오고 나면 read(fd) 연산을 통해 b의 콘텐츠를 읽어온다.

  • 이 때, 기존의 paging system 에서와는 다르게 file system의 경우, 명령어가 시스템콜로 이루어져있어서, 운영체제에 의해 파일 시스템 접근이 이루어지게 된다. 그렇기 때문에 LRU, LFU 등의 알고리즘도 사용이 가능하게 된다.

File Protection

  • memory에 대한 protection

    • read, write 권한이 있는가? 정도였다.

  • file protection

    • 여러 사용자, 여러 프로그램이 같이 사용할 수 있다보니, 각 파일에 대해 1) 누구에게 2) 어떤 유형의 접근(read, write, execution)을 허용할 것인가를 같이 고민해야한다.

  • Access control 3가지 방법

    • access control metrix

      • 사용자와 file 들에 대해서 행렬 형태로 권한을 표기해놓은 방법

      • 하지만 이 방법의 경우, 모든 파일들에 대해 이렇게 표시하면 메모리 낭비가 심하게 된다.

      • access control list : 파일 별로 누구에게 어떤 접근권한이 있는지 표시한다.

      • capability list : 사용자별로 자신이 접근 권한을 가진 파일 및 해당 권한을 표시한다.

      • 하지만 위의 두 방법 역시 오버헤드가 너무 심하다.

    • grouping

      • 일반적인 운영체제에서 선택하는 방법이다.

      • 전체 user를 owner, group, public 의 세 그룹으로 구분한다.

      • 각 파일에 대해 세 그룹의 접근 권한을 3비트씩으로 표시한다.

        • rwx/r—/r— : owner, group, public

        • 9개의 비트면 충분히 표현이 가능하다.

    • password

      • 파일마다 password 를 두는 방법이다. 디렉토리 파일에 두는 방법도 가능하다.

      • 모든 접근 권한에 대해 하나의 password : all-or-noting

      • 접근 권한 별 password 를 둘 경우, 암기문제, 관리문제 등이 발생할 수 있다.

File system 의 mounting

  • disk1 은 root file system 이므로 모든 파일에 접근이 가능하다. 하지만 이 곳에서 disk2와 disk3는 어떻게 접근할까?

  • 이 때 사용되는 것이 mounting 이다. root file system 내부에 있는 하나의 디렉토리에 다른 disk 의 file 를 mounting 하면 그것으로 다른 disk 의 root directory 를 탐색할 수 있으므로, 접근이 가능해진다.

Access method, 파일을 접근하는 방법

시스템이 제공하는 파일 정보의 접근 방식이다.

순차접근

  • sequential access

  • 카세트 테이프를 사용하는 방식처럼 접근한다.

  • 읽거나 쓰면 offset 은 자동적으로 증가하게 된다.

직접접근

  • direct access, random access

  • LP 레코드 판과 같이 접근하도록 한다.

  • 파일을 구성하는 레코드를 임의의 순서로 접근할 수 있다.

Last updated