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 레코드 판과 같이 접근하도록 한다.
•
파일을 구성하는 레코드를 임의의 순서로 접근할 수 있다.