데굴데굴

09. 파일 시스템 본문

CS/운영체제

09. 파일 시스템

aemaaeng 2023. 8. 7. 17:32

File and File System

File

A named collection of related information

관련 정보를 이름을 가지고 저장하는 것
비휘발성의 보조기억장치에 저장 (하드디스크)
운영체제에서는 데이터 저장 목적 뿐만 아니라 장치 관리 차원에서도 file이라는 논리적 단위를 쓴다

 

관련 연산

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

File attribute (파일의 metadata)

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

  • 파일 이름, 유형, 저장된 위치, 파일 사이즈
  • 접근 권한 (읽기/쓰기/실행), 시간 (생성/변경/사용), 소유자 등

File system

운영체제에서 파일을 관리하는 부분
파일, 파일의 메타데이터, 디렉토리 정보 등을 관리
파일의 저장 방법 결정
파일 보호 등

Directory

디렉토리도 하나의 파일
파일의 메타데이터 중 일부를 보관하고 있는 특별한 파일
그 디렉토리에 속한 파일 이름 및 메타데이터들


관련 연산

  • 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() 연산

파일의 메타데이터를 디스크에서 메인메모리로 올려놓는 작업

파일의 메타데이터가 메모리에 올라오면 그 곳의 content에 접근이 가능해진다

open('/a/b') = '/a/b' 경로의 파일을 연다는 뜻
c 파일의 메타데이터를 메모리로 가지고 온다

 

open() 연산의 과정

결과값으로 결과 파일의 file descriptor를 리턴한다
이후에 read()를 하게 되면 파일을 읽어온 후 프로세스에게 바로 전달하지 않고 buffer cache에 저장해둔다. 이 때 cpu는 무조건 운영체제에게 넘어간다

File Protection

파일은 여러 사용자가 사용할 수 있다
각 파일에 대해 누구에게 어떤 유형의 접근(read/write/execution)을 허락할 것인가?

Access Control Matrix

사용자와 파일을 행렬로 관리
각 사용자가 파일에 대해 어떤 권한을 가지고 있는지 기록해둔다
행렬로 만들면 공간 낭비가 심하기 때문에 list로 만드는 것을 고려해볼 수 있다

 

Access control list = 파일을 기준으로 누구에게 어떤 접근 권한이 있는지 linked list로 묶어놓는 것
capability = 사용자를 기준으로 접근 권한을 가진 파일과 권한을 표시하는 것

Grouping (일반적인 운영체제에서 사용)

전체 사용자를 owner, group, public으로 구분
각 파일에 대해 세 그룹의 접근 권한(rwx)을 3비트씩으로 표시

Password

파일마다 password를 두는 방법
모든 접근 권한에 대해 하나의 password를 둔다 -> 하나를 알게 되면 다 접근가능해진다
접근 권한별로 password를 두면 일일이 기억해둬야하고 관리하기 힘들다는 문제가 있다

Mounting

루트 파일 시스템의 특정 파일 이름에 파티션에 있는 파일 시스템을 마운팅

파일 접근 방법

순차 접근 (sequential access)

카세트 테이프를 사용하는 방식처럼 접근
읽거나 쓰면 offset은 자동적으로 증가

임의 접근 (direct access, random access)

LP처럼 접근
파일을 구성하는 레코드를 임의의 순서로 접근할 수 있음

 

예를 들어 파일이 a, b, c 순서대로 저장되어 있다
a에서 c를 보려면 b를 무조건 거쳐야하는 것이 순차 접근이고, c로 바로 이동할 수 있는 것이 임의 접근이다

 

매체에 따라 순차 접근만 가능한 경우도 있다

'CS > 운영체제' 카테고리의 다른 글

10. Disk management and Scheduling  (0) 2023.08.10
09. 파일 시스템 구현 - 1  (0) 2023.08.08
08. 가상메모리 - 2  (0) 2023.08.06
08. 가상 메모리 - 1  (0) 2023.08.06
07. 메모리 관리 - 3, Segmentation  (0) 2023.08.04
Comments