File
운영체제는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해줌
Operation
: create, read, write, reposition (lseek), delete, open, close 등
파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들
: 파일 이름, 유형, 저장된 위치, 파일 사이즈
: 접근 권한(읽기, 쓰기, 실행), 시간(생성, 변경, 사용), 소유자 등
File system
운영체제에서 파일을 관리하는 부분
파일의 저장 방법 결정
파일 보호 등
Directory
파일의 메타데이터 중 일부를 보관하고 있는 일종의 특별한 파일
그 디렉토리에 속한 파일 이름 및 파일 attribute들
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("/a/b/c")
: 디스크로부터 파일 c의 메타데이터를 메모리로 가지고 옴
1) root directory "/"를 open 하고 그 안에서 "a"의 위치 획득
2) 파일 "a"를 open한 후 read 하여 그 안에서 파일 "b"의 위치 획득
3) 파일 "b"를 open한 후 read 하여 그 안에서 파일 "c"의 위치 획득
4) 파일 "c"를 open한다.
-
Open File Table
: 현재 open된 파일들의 metadata 보관소 (in memory)
: 디스크의 메타데이터보다 몇 가지 정보가 추가됨
- Open한 프로세스의 수
- FIle offset : 파일 어느 위치 접근 중인지 표시 (별도 테이블 필요)
: system-wide open file table
-
File descriptor (file handle, file control block)
: Open file table에 대한 위치 정보 (프로세스 별)
: per-process file descriptor table
File Protection
: 각 파일에 대해 누구에게 어떤 유형의 접근(read/write/execution)을 허락할 것인가?
- Access control Matrix
: 각 파일, 각 유저에 대해 행렬로 rwx 권한 표시
| file 1 | file 2 | file 3 |
---|
user 1 | | rw | r |
user 2 | rw | rw | |
user 3 | r | r | r |
-
Grouping (일반적)
: 각 파일에 대해 owner, group, public의 세 그룹으로 구분
ex) UNIX rwxr--r-- (3비트씩, owner : rwx, group : r--, public : r--)
-
Password
: 파일마다 password를 두는 방법
: 모든 접근 권한에 대해 하나의 password -> all-or-nothing
: 접근 권한 별 password를 따로 -> 암기, 관리 문제 발생 가능
FIle System의 Mounting
: 서로 다른 partition에 있는 file system에 접근
Access Methods
: 시스템이 제공하는 파일 정보의 접근 방식
순차 접근 (sequential access)
카세트 테이프를 사용하는 방식처럼 접근
읽거나 쓰면 offset은 자동적으로 증가
직접 접근 (direct access, random access)
LP 레코드 판과 같이 접근하도록 함
파일을 구성하는 레코드를 임의의 순서로 접근할 수 있음