Lecture 11: File Systems

Amber Won


Sample File System: General Parallel File System (GPFS)

120 PB, 200,000 drives (each ~600 GB) - Chosen to have a lot of smaller drives instead of less big drives because it gives better performance


Eggert's File System (similar to the RT-11)

On machine with 16 KiB RAM, 700 GB disk

eggert's file system

Eggert's file system contains a table and the rest of the space is used to store data. The table keeps track of the file with 12 byte entries include the file name, a pointer to where the file's contents are stored, and the size of the file.

Pros:

Cons:

The biggest flaw is external fragmentation (having holes in your memory/disk space)

external fragmentation

This is the file system after numerous reads/writes/allocate data/remove data instructions. The black areas represent currently used storage. After reading, writing, allocating, removing data many times, the file system begins to have many holes where data used to be. Now if a user wants to create a file that is bigger than the size of the holes, he or she can't, even though there is enough total space for the file.

A potential solution is to shift the data once in a while so that the file system's data is contiguous and no longer have these holes, and therefore can utilize the available storage. However, this is expensive to implement.


FAT File system

(1970s)

FAT

The FAT file system consists of a boot sector, superblock, next fields, and the data blocks. In the FAT file system, the available data storage is separated into blocks. This removes the problem of external fragmentation. Each block has a next field, which is stored separtely from the data blocks. This next field is used when a file needs more than one block to store its data. The file system keeps track of the multiple blocks by using the next field, which contains a pointer to the next block, until it reaches an EOF. If the next field is 0, that indicates a EOF. If it is 2^16-1, then the block is free for use.

Pros:

Cons: