오래 못 할 짓 하지 않기

[ 운영체제 ] 28. Storage Management - Directory 본문

3학년 1학기/운영체제 (OS)

[ 운영체제 ] 28. Storage Management - Directory

쫑알bot 2024. 6. 11. 21:36
728x90

Directory

: 모든 파일에 대한 정보를 담고있는 node들의 집합

 

● 특징

- 효과적이다 : File 저장을 빠르게 할 수 있음

- 이름 관리하기가 편하다 : 같은 파일이라도 다른 폴더에 있으면 이름이 같을 수 있다.

- Grouping이 가능하다 : 파일을 묶음 단위로 저장 가능하다.

 

 

Tree Structure Directories

 

1. 검색이 간편하다.

2. 그룹핑 하기 좋다.

3. 절대경로, 상대경로를 나타낼 수 있다. ( 경로 나타내기 문제 나올 듯 )

 

 

Acyclic - Graph Directories

특징 : 디렉토리들이 서로의 subDirectories나 File들을 공유할 수 있다.

 

Link를 사용해서 구현한다.

= 이 때문에 absolute path가 여러 개 존재한다.

 

 

 

삭제 관련 문제

 

 

 

이건 Cycle이 있음

 

 

이 챕터에선

Link가 뭔지 / 두 링크 차이점 / 어떤 그래프가 있는지, 특징은 뭔지

 

 


Protection

 

mode 설정을 3자리 숫자로 한다

 

주인 권한 | 그룹 권한 | 다른 사람들의 권한

으로 나눈다.

 

 


Memory Mapped file

: Virtual address space 와 File이 매핑이 되어있는 것

  [ 파일 ↔ 주소 ]

 

1. Page fault 발생하고,  demand paging의 결과로 초기화시킨다.

2. 이를 통해 file system과 physical memory가 Mapped된다.

3. 파일이 닫힐 때, File - memory Mapped 데이터는 Disk로 들어간다.

 

● 장점

- Read와 Write의 Overhead가 줄어든다.

- File Sharing이 가능해진다. (아래 사진)

M*Map은 Shared memory와 비슷

 

 

 

요약:

장점 , Memory Mapped File의 정의 , Mmap의 Function 알아두기

 


File System Structure

● File Structure 

: Logical 저장 유닛 / 관련된 정보들의 집합체

 

 

● File System 

: Disk에 저장되어 있다.

- Stroage와 mapping logical to physical 에 대한 Interface 를 담당한다. 



File Control Block ( FCB )

: 파일에 대한 정보로 이루어져있는 저장 구조

 

이러한 File System은 여러 층으로 이루어져 있다.

 

 

 

 

 

1. Device Driver : I/O Control 층을 담당

 

2. Basic file System : 해당 단계에서, Memory buffer , caches, data block 관리

 

3. File organization module : File , Logical address , Physical block을 인식한다.

   = Logical block  ▶ Physical block으로 해석하는 단계

 

4. Logical file System : Metadata 정보 관리

   = File number ,File handle 을 File name가지고 해석한다.

 

 

Layer의 장점 :

 

- 복잡성과 반복을 줄여준다. 

   = 저것들이 한 층에 있으면 복잡함. 

 

- inode를 통해 여러 정보를 다룰 수 있다.

 

단점 :  Overhead 가능성이 있다.

 


File System Operation

: 우리는 어떤 기능을 이용할 때 API 단계의 system call이 필요하다.

 

● Boot control block

: OS가 부팅 관련 기능을 할 떄 필요한 정보들이 있는 Block

  Volume이 OS를 포함하고 있어야 함 

 

● Volume control block

: Volume에 관련된 정보를 담고있는 Block

 ex) Block의 총 갯수 , free block의 갯수 , size , Free block pointer 

 

● Directory Structure

: 파일을 구성하는 데에 사용됨

 

 

 



In - Memory File System Structures

 

메모리 내에서 파일을 관리하는 방법이다.

 

파일의 List를 저장하는 File Table을 메모리 내에 저장한다.

 

Mount 시에 Data가 로드 , File operation시에 내용 수정 , Dismount 시에 제거

 

 

●  Mount table

: 각각 mount된 volume에 대한 정보( File system mount , mount point )

 

 

●  System wide open file table

: 각각의 File의 FCB 복제본 + 추가 정보들

 

 

●  Per - process open-file table

: 시스템 전반에 걸쳐 open file table Entry를 가리키는 Pointer + 추가 정보

 

 

 

 

a) 파일을 열 때 user space에서 Kernel Memory로 들어가서

Directory Structure에 저장된 방식을 통해 원하는 파일로 FCB 블록을 찾는다.

 

b) 파일을 읽을 때는 per-process open-file Table에 대한 인덱스로 접근한 뒤

 System - wide open-file Table로 가고, FCB를 찾은 뒤에 이를 통해 Data block 에 접근한다. 

 

 

(출처)

한동대학교 고윤민교수님 - 운영체제