운영체제(OS)

Operating Systems 13. File System Interface

아뵹젼 2021. 12. 5. 14:04

파일 속성

- 파일은 운영체제마다 다른 속성을 가질 수 있다.

- 일반적인 파일 속성 : 이름, 식별자, 타입, 위치, 크기, 보호, 시간, 날짜, 사용자 시벽

 

파일 연산

- 파일 생성

- 파일 열기

- 파일 쓰기

- 파일 읽기

- 파일 내 위치 재설정

- 파일 삭제

- 파일 절단

 

- 접근 함수

 

순차 접근(Sequential Access)

- 파일의 정보가 레코드 순서대로 차례차례 처리된다.

- 연산 : read next, write next, rewind, seek

 

직접 접근(Direct Access)

- 상대 접근이라고도 불리며, 파일에 저장된 논리 레코드들을 특별한 순서 없이 빠르게 읽고 쓸 수 있다.

- n이 블록 번호라고 할 때, read n, write n 을 제공한다.

 

 

Directory Structure

- 디렉토리 효과 : file 위치에 빨리 접근할 수 있다.

- Naming : 편리하다.

 

 

Single-Level Directory

-> directory 를 사용하지 않는 것과 같다.

 

 

Two-Level Directory

- 사용자별로 디렉토리를 구분해서 사용한다.

- grouping 을 할 수 없다.

 

 

Tree-Structure Directory

- 다단계 트리 형태로, 사용자는 자신의 서브디렉터리를 만들어 파일을 구성할 수 있다.

- 효율적 탐색을 수행할 수 있으며, 논리적 그룹핑이 가능하다.

- 현재 디렉토리 개념을 제공한다. (working directory)

- 절대 경로와 상대 경로를 제공한다.

- link 명령을 사용할 수 없다.

 

 

Acyclic-Graph Directories

- Linux 의 Symbolic Link 또는 windows 의 바로가기와 유사하다.

- 디렉토리들이 파일과 서브디렉토리를 공유할 수 있어, 공유된 파일을 임의로 제거하면 dangling pointer 가 존재하게 된다.

 

 

General Graph Directory

- 트리 구조에 새로운 링크를 추가한 것이 일반 그래프 구조이다.

- 사이클이 생성될 수 있으며 이를 방지하기 위해

  • 파일에만 링크를 허용하고 디렉터리에는 허용하지 않거나
  • 가비지 컬렉션을 사용할 수 있다.

 

메모리 사상 파일(Memory-Mapped Files)

- 파일을 다룰 때 빈번한 read()/write() 대신 파일을 메모리처럼 사용하기 위해 mmap() 시스템 호출로 기능을 제공한다.

- 메모리 사상 파일 입출력은 디스크 블록을 메모리 참조로 변환한다.

  • 메모리 내 페이지와 관련시켜 사상(mapping)
  • 디스크의 페이지들이 메모리의 물리 페이지로 적재된 후, 이후 파일 읽기/쓰기는 일반 메모리 접근으로 처리한다.

- 예)

- 파일을 메모리로 인식하고 사용하여, 프로세스끼리 파일을 공유할 수 있다.