<운영체제> File System 1
본 게시물은 영남대학교 곽종욱 교수님의 강의를 기반으로 작성되었습니다.
- I-List
- 여러개의 i-node로 이루어져 있다.
- i-node는 file-attribute 중 index pointer에 대한 정보를 가지고 있다.
- i-node의 index 포인터를 따라가면 data-block(저장공간)이 나온다.
- 위 그림의 3개의 포인터를 가진 i-node는 파일의 크기를 분할해서 저장하고 있다.
- directory 하위에는 파일과 sub-directory가 존재 할 수 있다
- directory block은 i-node number와 filename으로 구성(해당 inode-number와 이름은 일반 파일이 될수도 하위 디렉토리 폴더가 될수도 있다)
- I-Node Pointer
- 아래 그림의 연두색 박스가 하나의 i-node이다.
- 분홍색 박스 하나가 하나의 i-node pointer를 나타낸다.
- 총 15개의 포인터를 가지며, 12개는 direct pointer이다.
- 투명한 박스는 포인터로만 사용되는 data-block이다.
- direct pointer로 파일의 용량을 전부 data-block에 저장하지 못하면, single indirect, double indirect...순으로 포인터를 사용한다.
- 만약 block-size가 1024이고 1025 크기만큼의 data를 저장하려고 한다면 두개의 direct pointer를 사용해야한다.-> 한 block은 1023만큼의 공간을 낭비한다.
- 최대 파일 사이즈 구하기 : block size(8KB), pointer size(4byte)->한 block에 2048개의 포인터 수용가능
- 계산 : (8KB * 12direct pointers) + (8KB * 2048 indirect pointers) + (8KB * 2048 * 2048) + (8KB * 2048 * 2048 * 2048) = about 64TB
최대 파일의 개수
- > depends on the number of I-node entries in I-list
최대 파일의 크기
-> depends on the number of pointers and their structures
- Windows OS에선 block을 cluster라고 한다.