CS지식/운영체제

TIL 정리_106(File systems)

ran4 2022. 6. 10. 14:37

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의 메타 데이터를 메모리로 가지고 온다

>> 이를 위하여 디렉토리 경로를 탐색한다

  1. 루트 디렉토리 “/”를 open하고 그 안에서 파일 a의 위치를 획득한다
  2. 파일 a를 open한 후 읽고, 그 안에서 파일 b의 위치를 획득한다
  3. 파일 b를 open한 후 읽고, 그 안에서 파일 c의 위치를 획득한다
  4. 파일 c를 open한다

 

**버퍼 캐시의 상황에서는 LRU, LFU 알고리즘을 사용할 수 있다

-> 운영체제가 내용을 전부 알기 때문이다

 

 

open 연산의 단점

Directory 경로 탐색시간이 너무 많이 소요된다

> Openread/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

전체 userowner, group, public의 세 그룹으로 구분한다

각 파일에 대해 세 그룹의 접근 권한(rwx)3비트씩으로 표시한다

() UNIX

 

3. Password

파일마다 password를 두는 방법이다

-> 디렉토리 파일에 두는 방법도 가능하다

모든 접근 권한에 대해 하나의 passwoed : all-or-nothing

접근 권한별 password : 암기 문제, 관리 문제