운영체제 - 파일 시스템(2)
파일 시스템은 /Path를 file descriptor number로 변환한다. 이 inode정보를 main memory에 캐싱(caching)하여 디스크접근 오버헤드를 줄일 수 있다. 그러나 캐싱을 사용하면 data consistency(=redundancy)문제가 발생한다.
파일 시스템이 제공하는 주요 기능
1. logical address(=/Path)를 physical address(=file descriptor number)로 변환
2. 사용자 데이터를 저장장치로부터 읽어오거나 저장장치에 기록하는 역할 수행
주요 File Access 패턴
1. Sequential Access
- file pointer를 한 칸씩 움직이면서 파일의 내용을 읽는 방법
2. Random Access
- file pointer를 임의로 이동하면서 파일의 내용을 읽는 방법
<그림 1>과 같이 파일을 바라보는 관점이 달라진다.
#Volume(=Logical Drive)
- 단일 file system으로 관리되는 저장장치상의 영역
#Buffer cache
- 최근 접근한 file의 data block 내용을 main memory에 저장해두는 공간. 디스크로부터 한번 읽어온 파일 내용에 다시 접근할 때 빠르게 읽어 올 수 있게 함.
File의 구조
1. linked file
2. indexed file
Linked file
<그림 4>는 linked file구조를 나타낸다. Sequential access에서는 성능저하가 발생하지 않지만 Random access시에는 File C의 세 번째 블록을 접근하더라도 File C의 첫 번째 블록부터 순차적으로 접근해야하므로 성능저하가 발생한다.
Indexed file
- <그림 5>와 같은 indexed file에서는 random access에서도 성능저하가 발생하지 않지만 file의 최대 크기가 index의 수로 제한되는 단점이 있다.
#Bitmap
- 저장장치의 Block의 allocation여부를 bitmap으로 확인하는 방법
Bitmap을 사용한 디스크의 free block관리
- 각 bit가 디스크 block이 사용 중인지 아닌 지를 나타내는 array. HW/SW string search 기법을 사용해 연속적인 사용가능한 block을 쉽게 찾을 수 있다.
'운영체제 > 파일 시스템(File System)' 카테고리의 다른 글
운영체제 - 파일 시스템(1) (0) | 2019.04.04 |
---|