<<

Today Comp 104: Operating Systems Concepts • Files – Introduction – Filestore allocation policies • Contiguous allocation • Linked allocation Files and Filestore Allocation • • Indexed allocation – Links –

1 2

Operating System – An Abstract View Files & I/O

User Command Interface • Most filesystems are tree-structured (e.g. )

Processor Manager / (root)

etc bin usr users Memory Manager bin staff students u0abc u0def

File Manager file1 file2 file3

3 4

1 Directories Unix Inodes

• Non-leaf nodes are directories • An inode contains info such as – contain list of plus further info about – file owner each file – permissions • Example: Unix – modify and access times – entry consists of and inode – size number – type (regular, special, etc.) – inode number references an inode - a file – location on disk descriptor

5 6

UNIX Permissions File Types

• Permissions are , and execute • Some systems (e.g. Windows) use file (rwx) for user, group, others (ugo) extension to indicate application – e.g. .doc, .ps, .ppt, .html – e.g. rwxr---- (rwx for owner, r for everyone • Other systems more basic else) • On UNIX, can try to execute any file – Exec will look for ‘magic number’ at head of valid executable • Permissions can be altered with – If number not present, exec looks for “#!” followed by name of program to execute – e.g. chmod go-r prog1 • e.g. #!/bin/ksh – Otherwise, assumes file is script and creates instance of user’s preferred shell to process it

7 8

2 Filestore Allocation The Free List • Filestore divided into fixed-size blocks • Can be a simple bit vector – e.g. 1100111100000D where 1=in use, 0=free • Blocks not currently allocated to files are • Simple and efficient if kept in memory maintained in a free list • Problems: – Needs writing to disk every so often • Several strategies for allocating blocks – May be huge for large disks – contiguous • e.g. 80GB disk with 512-byte blocks needs 20MB for free list – linked • An alternative is to chain all free blocks into a – file allocation table (FAT) linked list – indexed 9 10

Exercise Contiguous Allocation

A free list is represented as A2A0. • Each file allocated a contiguous set of blocks Filestore Directory How many blocks are free? eeny meeny miny mo

11 12

3 Contiguous Allocation Linked Allocation

• Location information consists simply of • Each block contains a pointer to the next start block, no. of blocks • Advantages – fast, both for sequential and direct access • Problems eeny – fragmentation (.f. linear memory) meeny • may need regular compaction miny – number of blocks to allocate mo – file growth

13 14

Linked Allocation Question • Advantages • Which of the following is true about linked filestore allocation versus – easy to grow/shrink files contiguous allocation? – no fragmentation • Problems a) Linked is slower for both sequential and direct access. – blocks widely dispersed b) Linked is faster for both sequential and direct access. c) Linked is faster for sequential access, but slower for direct access. – sequential access less efficient d) Linked is slower for sequential access, but faster for direct access. – direct access even worse e) The performance for linked and contiguous is roughly the same for both forms of access. • requires n reads to get to block n – danger of pointer corruption

• Can improve things by allocating blocks in Answer: a clusters Linked is slower for both sequential and direct access – but this worsens internal fragmentation 15 16

4 File Allocation Table (FAT) FAT

• Block allocations held in table located at • Advantages start of partition – all pointer info held in one place FAT – easier to protect eeny 217 217 618 – no need for separate free list start – direct access much more efficient block 339 -1 • Problems – may require drive head to shift constantly between FAT and file blocks 618 339 – FAT may become huge for large disks 0 = unused • clustering may help

17 18

Indexed Allocation Indexed Allocation

• Advantages • First block holds index to all other blocks – each file’s pointer info held in one place – very efficient for both sequential and direct access • Problems – blocks may still be widely dispersed eeny – can run out of pointers for large files 217 • may have to chain several index blocks together 618 • Example: Windows NTFS 339 – Has a Master File Table (MFT) using a form of -1 indexed allocation – However, small files contained entirely within MFT itself

19 20

5 Links File Deletion

• It is possible for several filenames to • To delete a file: point to the same file contents – remove directory entry – e.g. Unix, the command – add allocated blocks to free list (garbage collection) $ ln /users/katie/public/prog.c myprog.c

creates a new directory entry called myprog.c, with the same inode number as prog.c

21 22

Question Log-Structured File Systems

• When should a deleted file not be garbage collected? • A system crash can cause loss of data and inconsistencies

• Log-structured file systems address issues of consistency checking a) When there are multiple links to it. – Based on database log-based recovery algorithms b) When the file contains program code. c) When there is only one copy of the file. • Each update to the is recorded as a transaction and all d) When the file is a rather than a user file. transactions are written to a log e) When the file contains encrypted data. – When a transaction is written to the log it is considered to be committed – However, the file system may not yet be updated

• Transactions in the log are asynchronously written to the file system then removed from the log once the modification is complete

Answer: a • If the system crashes all transactions that remain in the log must still When there are multiple links to it. be completed

23 24

6