http://www.kocw.net/home/m/search/kemView.do?kemId=1046323
운영체제 강의를 듣고 정리한 내용입니다.
File
“A named collection of related information”
-> 관련된 정보를 이름을 가지고 저장한다
일반적으로 비휘발성의 보조 기억장치에 저장된다
운영체제는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해준다
-> 장치들도 관리된다 (device special file)
Operation
- 파일의 연산
- create, read, write, reposition (lseek), delete, open, close 등
- 파일을 읽거나 쓰면 파일이 여러 개의 바이트가 된다
- 파일을 읽고나면 포인터가 다음 파일의 포인터를 가리킨다
- 현재 접근하고 있는 파일의 위치를 수정하는 것이 lseek이다
File attribute or metadata
- 파일 자체의 내용이 아닌 파일을 관리하기 위한 각종 정보들을 말한다
- 예) 음악 파일, 그림 파일
- 파일 이름, 유형, 저장된 위치, 파일 사이즈
- 접근 권한(읽기/쓰기/실행), 시간(생성/변경/사용), 소유자 등
File system
- 운영체제에서 파일을 관리하는 부분이다
- 파일 및 파일의 메타 데이터, 디렉토리 정보 등을 관리한다
- 파일의 저장 방법을 결정한다
- 파일을 보호한다
Directory and Logical Disk
Directory
파일의 메타데이터 중 일부를 보관하고 있는 일종의 특별한 파일이다
그 디렉토리에 속한 파일 이름 및 파일 attribute들이 해당된다
Directory operation (연산)
파일을 찾고, 만들고, 삭제한다
디렉토리를 정렬하고, 파일의 이름을 바꾸고, 파일 시스템 전체를 탐색한다
Partition == Logical Disk
디스크는 논리적인 디스크와 물리적인 디스크가 존재한다.
운영체제가 보는 디스크는 논리적인 디스크이며, 다른말로 파티션이라고도 한다
c 드라이브, d 드라이브 등이 파티션에 해당된다
- 하나의 물리적 디스크 안에 여러 파티션을 두는 것이 일반적이다
- 여러 개의 물리적인 디스크를 하나의 파티션으로 구성하기도 한다
- 물리적 디스크를 파티션으로 구성한 뒤 각각의 파티션에 file system을 깔거나 swapping 등의 다른 용도로 사용할 수 있다
open() 연산
- 파일의 메타 데이터를 메모리로 올려놓는 것을 말한다
- 논리적인 디스크 안에 파일 시스템이 존재할 때 파일 시스템에 특정 파일의 메타 데이터를 저장이 되어있고,
- 내용이 저장되어있다 내용을 가리키는 포인터도 저장되어있다
- 이 파일을 오픈할 때 파일의 메타 데이터가 메모리에 올라온다
open(“/a/b/c”)를 가정했을 때
디스크로부터 파일 c의 메타 데이터를 메모리로 가지고 온다
>> 이를 위하여 디렉토리 경로를 탐색한다
- 루트 디렉토리 “/”를 open하고 그 안에서 파일 a의 위치를 획득한다
- 파일 a를 open한 후 읽고, 그 안에서 파일 b의 위치를 획득한다
- 파일 b를 open한 후 읽고, 그 안에서 파일 c의 위치를 획득한다
- 파일 c를 open한다
**버퍼 캐시의 상황에서는 LRU, LFU 알고리즘을 사용할 수 있다
-> 운영체제가 내용을 전부 알기 때문이다
open 연산의 단점
Directory 경로 탐색시간이 너무 많이 소요된다
> Open을 read/write와 별도로 두는 이유이다
> 한번 open한 파일은 read/write시 디렉토리 탐색이 불필요하다
Open file table
현재 open된 파일들의 메타데이터 보관소이다 (in memory)
디스크의 메타데이터보다 몇 가지 정보가 추가된다
- Open한 프로세스의 수
- File offset : 파일 어느 위치에 접근중인지 표시(별도의 테이블이 필요하다)
File descriptoy (file handle, file control block)
> Open file table에 대한 프로세스 별 위치 정보
File Protection
- 파일의 접근 권한 (read/write/execution)
각 파일에 대해 누구에게 어떤 유형의 접근을 허락할 것인가?
Access Control 방법
1. Access control Matrix
Access control list : 파일별로 누구에게 어떤 접근 권한이 있는지 표시한다
파일을 주체로 하여 링크드 리스트로 묶어놓은 것이다
Capability : 사용자별로 자신이 접근 권한을 가진 파일 및 해당 권한을 표시한다
사용자를 주체로 하여 링크드 리스트로 묶어놓은 것이다
2. Grouping
전체 user를 owner, group, public의 세 그룹으로 구분한다
각 파일에 대해 세 그룹의 접근 권한(rwx)을 3비트씩으로 표시한다
(예) UNIX
3. Password
파일마다 password를 두는 방법이다
-> 디렉토리 파일에 두는 방법도 가능하다
모든 접근 권한에 대해 하나의 passwoed : all-or-nothing
접근 권한별 password : 암기 문제, 관리 문제
'CS지식 > 운영체제' 카테고리의 다른 글
TIL 정리_108(File Systems Implementation 2) (0) | 2022.06.14 |
---|---|
TIL 정리_107(File Systems Implementation 1) (0) | 2022.06.12 |
TIL 정리_105(Virtual Memory 3) (0) | 2022.06.08 |
TIL 정리_104(Virtual Memory 2) (0) | 2022.06.06 |
TIL 정리_103(Virtual Memory 1) (0) | 2022.06.03 |