ceng 334 - operating systems 4-1 chapter 4 : file systems what is a file system? objectives &...

39
Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems • What is a file system? • Objectives & user requirements • Characteristics of files & directories • File system implementation • Directory implementation • Free blocks management • Increasing file system performance

Post on 21-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-1

Chapter 4 : File Systems

• What is a file system?

• Objectives & user requirements

• Characteristics of files & directories

• File system implementation

• Directory implementation

• Free blocks management

• Increasing file system performance

Page 2: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-2

File System

• The collection of algorithms and data structures which perform the translation from logical file operations (system calls) to actual physical storage of information

Page 3: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-3

Objectives of a File System

• Provide storage of data and manipulation

• Guarantee consistency of data and minimise errors

• Optimise performance (system and user)

• Eliminate data loss (data destruction)

• Support variety of I/O devices

• Provide a standard user interface

• Support multiple users

Page 4: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-4

User Requirements

• Access files using a symbolic name

• Capability to create, delete and change files

• Controlled access to system and other users’ files

• Control own access rights

• Capability of restructuring files

• Capability to move data between files

• Backup and recovery of files

Page 5: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-5

Files• Naming

– Name formation

– Extensions (Some typical extensions are shown below)

Page 6: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-6

• Structuring

– (a) Byte sequence (as in DOS, Windows & UNIX)

– (b) Record sequence (as in old systems)

– (c) Tree structure (as in some mainframe Oses)

Files (Cont.)

Page 7: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-7

Files (Cont.)

• File types– Regular (ASCII, binary)– Directories– Character special files– Block special files

• File access– Sequential access– Random access

Page 8: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-8

Files (Cont.)• File attributes

– Read, write, execute, archive, hidden, system etc.– Creation, last access, last modification

Page 9: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-9

Files (Cont.)• File operations

1. Create

2. Delete

3. Open

4. Close

5. Read

6. Write

7. Append

8. Seek

9. Get attributes

10.Set Attributes

11.Rename

Page 10: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-10

Directories• Where to store attributes

– In directory entry (DOS, Windows)– In a separate data structure (UNIX)

• Path names– Absolute path name– Relative path name– Working (current) directory

• Operations– Create, delete, rename, open directory, close

directory, read directory, link (mount), unlink

Page 11: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-11

Directories & Files (UNIX)

d2

f3f2

f1

/

d1 f4

f5 f7

d3

d4 d5 d6

f6

Disk ADisk B

Root Directory

Linked Branch

Working Directory

• Working directory : d2 • Absolute path to file f2 : /d1/d2/f2• Relative path to file f2 : f2

Page 12: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-12

Physical Disk Space Management

Heads

Cylinder

• Each plate is composed of sectors or physical blocks which are laid along concentric tracks

• Sectors are at least 512 bytes in size• Sectors under the head and accessed without a

head movement form a cylinder

SectorTrack

Page 13: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-13

File System Implementation

• Contiguous allocation

• Linked list allocation

• Linked list allocation using an index (DOS file allocation table - FAT)

• i-nodes (UNIX)

Page 14: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-14

Contiguous Allocation• The file is stored as a contiguous block of data

allocated at file creation

(a) Contiguous allocation of disk space for 7 files

(b) State of the disk after files D and E have been removed

Page 15: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-15

Contiguous Allocation (Cont.)

• FAT (file allocation table) contains file name, start block, length

• Advantages– Simple to implement (start block & length is

enough to define a file)– Fast access as blocks follow each other

• Disadvantages– Fragmentation– Re-allocation (compaction)

Page 16: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-16

Linked List Allocation• The file is stored as a linked list of blocks

Page 17: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-17

Linked List Allocation (Cont.)

• Each block contains a pointer to the next block• FAT (file allocation table) contains file name, first

block address• Advantages

– Fragmentation is eliminated– Block size is not a power of 2 because of

pointer space• Disadvantages

– Random access is very slow as links have to be followed

Page 18: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-18

Linked list allocation using an index (DOS FAT)

Disk size

EOF

1

Free

5

Free

7

Bad

Free

…..

3 75 1

0

1

2

3

4

5

6

7

FAT (File allocation table)

File blocks

n

First block address is in directory entry

Page 19: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-19

Linked list allocation using an index (Cont.)

• The DOS (Windows) FAT is arranged this way

• All block pointers are in FAT so that don’t take up space in actual block

• Random access is faster since FAT is always in memory

• 16-bit DOS FAT length is (65536+2)*2 = 131076 bytes

Page 20: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-20

Problem

• 16-bit DOS FAT can only accommodate 65536 pointers (ie., a maximum of 64 MB disk)

• How can we handle large disks such as a 4 GB disk?

Page 21: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-21

i (index)-nodes (UNIX)File mode

Number of linksUIDGID

File sizeTime created

Time last accessedTime last modified

10 disk block numbersSingle indirect block

Triple indirect blockDouble indirect block

Indirect blocks Data blocks

Page 22: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-22

i-nodes (Cont.)

• Assume each block is 1 KB in size and 32 bits (4 bytes) are used as block numbers

• Each indirect block holds 256 block numbers• First 10 blocks : file size <= 10 KB• Single indirect : file size <= 256+10 = 266 KB• Double indirect : file size <= 256*256 +266 =

65802 KB = 64.26 MB• Triple indirect : file size <= 256*256*256 +

65802= 16843018 KB = ~16 GB

Page 23: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-23

Directory Implementation

• DOS (Windows) directory structure

• UNIX directory structure

Page 24: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-24

DOS (Windows) Directory Structure (32 bytes)

File name Ext A Reserved T PD Size

8 bytes 3 1 10 2 2 2 4

Attributes (A,D,V,S,H,R)

Time of creation

Date of creation

Pointer to first data block

Page 25: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-25

UNIX Directory Structure (16 bytes)

I-node # File name2 bytes 14 bytes

Page 26: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-26

The Windows 98 Directory Structure

•Extended MS DOS Directory Entry

•An entry for (part of) a long file name

Page 27: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-27

The Windows 98 Directory Structure

An example of how a long name is stored in Windows 98

Page 28: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-28

Path Name Lookup : /usr/ast/mbox

245

Root (/) i-node

1 .1 ..4 bin7 dev

14 lib9 etc6 usr

Root directory file block 245

132

i-node 6 of /usr

6 .1 ..

19 prog30 stu51 html26 ast45 genc

/usr directory file block 132

406

i-node 26 of /usr/ast26 .6 ..

60 mbox92 books81 src

/usr/ast directory file block 406

i-node 60 of /usr/ast/mbox

Blocks of file

Page 29: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-29

Two ways of handling long file names in a Directory

In-line In a heap

Page 30: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-30

Shared Files

• File f2 is shared by two paths (users!) and there is one physical copy.

• The directories d1 & d2 point to the same i-node with link count equal to 2

• Deletion is done by decrementing the link count. When it reaches zero the file is deleted physically

/

d1 d2

f1 f2 f3

Page 31: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-31

Disk Space Management

• Dark line (left hand scale) gives data rate of a disk• Dotted line (right hand scale) gives disk space efficiency• All files 2KB

Block size

Page 32: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-32

How to Keep Track of Free Disk Blocks

• Linked list of disk blocks

• Bit maps

• Indexing as used in DOS FAT

Page 33: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-33

Linked List of Disk Blocks

•Allocation is simple. •Delete block number from free blocks list

Page 34: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-34

Bit Maps• The bit map is implemented by

reserving a bit string whose length equals the number of blocks

• A ‘1’ may indicate that the block is used and ‘0’ for free blocks

• If the disk is nearly full then the bit map method may not be as fast as the linked list method

Page 35: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-35

Increasing File System Performance• Disks (floopies, hard disks, CD ROMS) are

still slow when compared to the memory• Use of a memory cache may speed the disk

transfers between disk and process• Blocks are read into the cache first.

Subsequent accesses are through the cache• Blocks are swapped in & out using

replacement algorithms such as FIFO, LRU• System crashes may cause data loss if

modified blocks are not written back to disk

Page 36: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-36

Where to Put the Current “File Position” Field

• The file position field is a 16 or 32 bit variable which holds the address of the next byte to be read or written in a file

– Put it in the i-node

– Put it in process table

Page 37: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-37

File Position Field in i-node

• If two or more processes share the same file, then they must have a different file position

• Since i-node is unique for a file, the file position can not be put in the i-node

Page 38: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-38

File Position Field in Process Table

• When a process forks, both the parent and the child must have the same file position

• Since the parent and the child have different process tables they can not share the same file position

• So, we can not put in process table

Page 39: Ceng 334 - Operating Systems 4-1 Chapter 4 : File Systems What is a file system? Objectives & user requirements Characteristics of files & directories

Ceng 334 - Operating Systems 4-39

Solution

• Use an intermediate table for file positions

parent

child

Process tables

position

File positions table

i-nodeof

file