File System
File system은 file과 directory로 구성된 구조이다.
- file
- 사용자 관점에서 저장의 단위
- 실제 disk에는 block 단위로 저장된다.
- data file : 숫자, 문자, binary data
- program : 실행 파일
- directory structure : 다수의 파일을 효율적으로 관리하도록 도와준다.
File System Mount
File system을 사용하기 위해서는 file system을 mount 해야 한다.
File을 사용하기 위해서 file을 open하는 것과 마찬가지이다.
운영체제 고유의 file system이 아닌 제 3의 file system을 가져와서 사용해야할 경우가 있다.
이 때 운영체제의 file system tree의 node 아래에 붙여서 사용을 해야 한다.
이를 mounting이라 한다.
File
File의 속성
모든 file은 공통적인 속성을 가진다.
- name
- identifile
- type
- location : 주로 path
- size
- protection : 어떤 사용자가 어떤 권한을 가지고 있는가
- time, data, user identification 등
File Control Block
file의 속성은 file control block에 저장된다.
실제 data block들이 어디에 저장되어있는지도 포함한다.
- file permission
- file dates(creat, access, write)
- file owner, group, ACL
- file size
- file data block
File Type
일반적으로 운영체제에서는 프로그램 외에는 파일의 유형을 구분하지 않는다.
파일의 유형을 구분하기 위해서 확장자를 사용한다.
확장자는 운영체제에 정보를 전달하지 않고, 사용자의 편의성을 위해 존재한다.
저장의 단위
- logical record unit
- 사용자 입장에서 저장의 단위는 file이다.
- UNIX는 모든 파일을 byte의 stream으로 본다.
- physical record unit
- disk 관점에서는 저장의 단위는 block이다.
- 모든 정보는 block 단위로 관리/저장 된다.
File을 보는 다양한 관점
- user : file name + byte offset
- kernel : logical block의 집합
- device driver : physical block의 집합
- device : drive, cyliner, head, block
File Operation
사용자 관점에서 operation은 다음과 같다.
- open(create), close, read, write
- copy = create + read + write
open system call
disk에 있는 file의 metadata를 memory(open file table)로 옮긴다.
file을 read/write 할 때마다 disk를 찾는 것이 아니라 메모리의 metadata를 이용하기 때문에 상대적으로 성능이 높아진다.
해당 file에 대해 독점적으로 open 하기 때문에, 하나의 파일에 대해서 여러 사용자가 동시에 접근할 수 없다.
close system call
메모리에 있는 metadata를 제거한다.
운영체제는 2 종류의 open file table을 사용한다.
- per-process open file table
- system -wide open file table
Access Method : Sequential Access
가장 단순하고 많이 사용되는 방법이다.
file의 정보는 앞에서부터 순차적으로 접근된다.
read/write를 하면 자동으로 file pointer가 증가한다.
random access와 반대되는 방법이다.
'Computer Science > Operating System' 카테고리의 다른 글
File System의 구조와 작동원리 (0) | 2021.06.21 |
---|---|
File System, Directory (0) | 2021.06.21 |
I/O Register, Device Driver (0) | 2021.06.20 |
I/O Devices (0) | 2021.06.20 |
성능에 미치는 요인들 (0) | 2021.06.20 |
댓글