OS - 04. File systems (2)

File System Backups

백업은 disaster(재난), stupidity(실수)에 의한 Recover(복구)하기위해 사용되는 방법이다.

Backup Type에는 Physical Dump, Logical Dump가 있다.

- Physical Dump: 하드디스크 등을 끝까지 통채로 tape에 copy하는 방식이다.

- Logical Dump: tree등을 순회하며 파일들을 copy하는 방식이다.

   - Complete Dump: 파일들을 통채로 copy한다.

   - Incremental Dump: 마지막 dump이후 변경된 파일만 copy한다.

 

색칠된 부분이 dump(작업중이던 메모리 상태를 저장)할 부분. 색칠 부분의 상위 directory도 dump해야한다. (1, 5, 6, 7, ...)

Other considerations

- Recovery from Backup

: 마지막으로 dump된 지점에서 복구하는 방법이다. 

- Problems of logical dump ~ 문제점

: File links는 두번 dump된다.(backup 프로그램은 둘 다 오리지널이므로 구분할 수 없다.)

  UNIX files에서는 할당되지 않은 블록의 데이터(data block이 없으면 OS는 모두 0으로 채워서 반환함)도 모두 copy하여 백업 용량이 커진다.

File system consistency

- multiple block을 업데이트 할 때 또는 system crash(전기 x)가 일어날 때 일관성에 문제가 발생할 수 있다.

- File system consistency를 유지하는 Utility에는 UNIX: fsck, Windows: scandisk가 있다.

- 많은 현대 파일 시스템은 빠른 일관성 회복을 위해 journaling scheme을 사용한다.

Increasing file system performance

* Caching : buffer cache or block cache

- Replacement Policy: LRU, Second Chance, FIFO or others

- Meta-data는 일관성유지를 위해 쓰여진 즉시 읽혀야한다.

- MS-DOS: Write-through (변경되면 즉시 캐시와 disk에 기록), UNIX: Write-back (변경되면 캐시에만 기록, 나중에(30초 간격으로) 한번에 disk에 기록)

* Read-ahead

: sequential하게 읽어서 앞부분을 읽으면 다음 부분을 OS가 미리 캐시에 넣어둔다.

* Reducing disk arm movement

* Disk defragmentation

Caching

buffer cache data structure

- Hash table을 사용하여 캐시를 추적한다. head들이 linked list로 연결되어있다. 

> 만약 10번 블록을 찾는다하면 Hash table을 사용하여 캐시를 추적하여 캐시에 존재하면 바로 참조하고, 존재하지 않으면 disk에서 찾아서 캐시에 넣고 return한다.

- i-node블록과 같은 경우는 드물게 짧은 간격에 두번 참조될 수 있다..??

- 교체정책으로 LRU를 사용하며 영화 데이터같은 경우 순서상 한번만 참조될 것 같으면 MRU말고 LRU에 넣는다. 또 Meta data는 빨리 sync해서 찾아야하고 자주 참조될 데이터는 오래 가지고 있는다.

Reducing Disk Arm Motion

Disk Arm(Head)의 움직임을 최소화하자는것이 목표.

Disk Partition에는 Cylinder Group이 존재하고, 한 그룹내에는 Super block(파일 시스템 전체정보), Group descriptor(Group에 대한 정보~어디서 어디까지 i-node인지 등) 등이 존재한다.

- 한 파일이 한 그룹에서 일정 개수이상 차지하면 인접 Group에 할당하도록(독차지하지 못하도록) 설계되어있다.

a: i-node들이 disk의 처음부분부터 적혀져있다. 이 방식은 디스크 헤드의 움직임이 많아지고, 안정성도 떨어진다.

b: i-node들이 disk의 인접 실린더 그룹에 묶여 적혀있다. 이 방식은 헤드의 움직임이 작아 성능이 높고, 안정성도 높다.

File system의 변천

The ISO 9660 File system

ISO 9660 directory entry

-> CD ROM File System이며, CD ROM은 연속적이므로 start block과 file size만 적혀있으면 된다.

Rock Ridge Extensions

UNIX에서 만든 CD ROM의 확장판. fields를 확장하였다. (여러 타입 추가, 속성 및 location등의 값 추가)

Joliet Extension

MS에서 만든 확장판. 파일 이름을 길게하고 dir 이름을 더 길게 할 수 있는 등으로 확장되었다.

File Access Control

허가없이 다른 사용자의 파일 접근을 못하도록 파일 접근 권한을 관리해야한다.

Access Control Matrix

access에 대한 정보를 담은 File과 User에 대한 행렬. 파일 시스템이 이 matrix를 보고 권한허용여부를 결정한다.

Access Control  List

파일단위로 축소하여 파일마다 권한을 다 적어놓는다. UNIX가 이를 약간 변형하여 사용하였다.

Capability List

사용자를 기준으로 파일 권한에 대하여 적어놓는다. 파일 시스템에선 사용되기 어려우며 로그인, 네트워크 등의 유저권한이 중요한 부분에서 사용중인 방식이다.

File System Layout

MS-DOS FAT File System

long file name방식(다른 블록에 file name을 적는 방식)은 특허가 있어 다른 시스템에서는 사용하지 못한다.

UNIX V7 File System

UNIX는 i-node로 block을 관리한다

 

'cs지식 > 운영체제' 카테고리의 다른 글

OS - 06. Deadlock  (0) 2022.06.28
OS - 05. Input / Output  (0) 2022.06.28
OS - 04. File systems (1)  (0) 2022.06.28
OS - 03. Memory Management  (0) 2022.06.28
OS - 02. Processes and Threads (2)  (0) 2022.06.13