+ All Categories
Home > Documents > File System

File System

Date post: 14-Nov-2014
Category:
Upload: madhur-shailesh-dwivedi
View: 618 times
Download: 1 times
Share this document with a friend
61
Washington WASHINGTON UNIVERSITY IN ST LOUIS File Systems Fred Kuhns ([email protected], http://www.arl.wustl.edu/~fredk) Department of Computer Science and Engineering Washington University in St. Louis
Transcript
Page 1: File System

WashingtonWASHINGTON UNIVERSITY IN ST LOUIS

File Systems

Fred Kuhns([email protected], http://www.arl.wustl.edu/~fredk)

Department of Computer Science and EngineeringWashington University in St. Louis

Page 2: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 2

Why a file system

• There is a general need for long-term and shared data storage:– need to store large amount of

information– persistent storage (outlives process and

system reboots)– concurrent sharing of information

• Files meet these requirements• The file manager or file system within

the OS

Page 3: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 3

File Concept

• Abstraction presented to the user• Named collection of related information

on secondary storage.• File name may encode the file type

– file extensions in UNIX and Windows

• Common examples of File types– Regular files, directories– Executable files– special files (block and character)– Archives

Page 4: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 4

File Structure

• None - sequence of words, bytes• Simple record structure

– Lines, Fixed length, Variable length• Complex Structures

– Formatted document, multi-media documents

• Who decides:– Operating system– Application– “Middleware”– DBMS

Page 5: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 5

File Attributes• Name – only information kept in human-

readable form.• Type – needed for systems that support

different types.• Location – pointer to file location on device.• Size – current file size.• Protection – controls who can do reading,

writing, executing.• Time, date, and user identification – data

for protection, security, and usage monitoring.• Information about files are kept in the

directory structure, which is maintained on the disk.

Page 6: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 6

File Operations• create• write• read• reposition within file – file seek• delete• truncate• open(Fi) – search the directory structure

on disk for entry Fi, and move the content of entry to memory.

• close (Fi) – move the content of entry Fi in memory to directory structure on disk.

Page 7: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 7

File Types – name, extension

Executable exe, com, bin ornone

ready-to-run machine-language program

Object obj, o complied, machinelanguage, not linked

Source code c, p, pas, 177,asm, a

source code in variouslanguages

Batch bat, sh commands to thecommand interpreter

Text txt, doc textual data documents

Word processor wp, tex, rrf, etc. various word-processorformats

Library lib, a libraries of routines

Print or view ps, dvi, gif ASCII or binary file

Archive arc, zip, tar related files groupedinto one file, sometimescompressed.

File Type Usual extension Function

Page 8: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 8

Access Methods• Sequential Access -

– read next – write next – reset– no read after last write– (rewrite)

• Direct Access: n = relative block number– read n– write n– position to n– read next– write next – rewrite n

Page 9: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 9

Directory Structure• A collection of nodes containing information

about all files.

F 1 F 2F 3

F 4

F n

Directory

Files

Both the directory structure and the files reside on disk.Backups of these two structures are kept on tapes.

Page 10: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 10

Information in a Device Directory

• Name • Type• Address • Current length• Maximum length• Date last accessed (for archival)• Date last updated (for dump)• Owner ID (who pays)• Protection information (discuss later)

Page 11: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 11

Operations Performed on Directory

• Search for a file• Create a file• Delete a file• List a directory• Rename a file• Traverse the file system

Page 12: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 12

Organize the Directory (Logically)

• Efficiency – locating a file quickly.• Naming – convenient to users.

– Two users can have same name for different files.

– The same file can have several different names.

• Grouping – logical grouping of files by properties, (e.g., all Pascal programs, all games, …)

Page 13: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 13

Single-Level Directory

• A single directory for all users.

• Naming problem• Grouping problem

Page 14: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 14

Two-Level Directory

• Separate directory for each user.

•Path name•Can have the same file name for different

user•Efficient searching•No grouping capability

Page 15: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 15

Tree-Structured Directories

Page 16: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 16

Tree-Structured Directories

• Efficient searching• Grouping Capability• Current directory (working directory)

– cd /spell/mail/prog– type list

Page 17: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 17

Tree-Structured Directories• Absolute or relative path name• Creating a new file is done in current directory.• Delete a file

rm <file-name>• Creating a new subdirectory is done in current

directory.mkdir <dir-name>

Example: if in current directory /spell/mailmkdir count

mail

prog copy prt exp count

Deleting mail deleting the entire subtree rooted by ‘mail’

Page 18: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 18

Acyclic-Graph Directories

• Have shared subdirectories and files.

Page 19: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 19

Acyclic-Graph Directories

• Two different names (aliasing)• If dict deletes all dangling pointer.

Solutions:– Backpointers, so we can delete all

pointers.Variable size records a problem.

– Backpointers using a daisy chain organization.

– Entry-hold-count solution.

Page 20: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 20

General Graph Directory

Page 21: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 21

General Graph Directory (Cont.)

• How do we guarantee no cycles?– Allow only links to file not

subdirectories.– Garbage collection.– Every time a new link is added use a

cycle detection algorithm to determine whether it is OK.

Page 22: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 22

Protection

• File owner/creator should be able to control:– what can be done– by whom

• Types of access– Read– Write– Execute– Append– Delete– List

Page 23: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 23

Access Lists and Groups• Mode of access: read, write, execute• Three classes of users

RWXa) owner access 7 1 1 1

RWXb) groups access 6 1 1 0

RWXc) public access 1 0 0 1

• Ask manager to create a group (unique name), say G, and add some users to the group.

• For particular file or subdirectory, define an appropriate access. owner group public

chmod 761 game

Attach a group to a filechgrp G game

Page 24: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 24

File-System Structure

• Disk divided into one or more partitions– independent FS on each partition– Sector 0 contains the Master Boot Record

(MBR)– MBR contains partition table– one partition marked as active– boot block – first block of active partition – BIOS reads and executes MBR, which reads

boot block and executes it.– program in boot block loads OS and runs it.– Often FS contains superblock which contains

key FS parameters

Page 25: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 25

Example Disk and Filesystem Layout

boot block super block inode list root dir

MBR

Partition Table

partition 1 partition 2 (active) partition 3

free space management files & dirs

Page 26: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 26

Files: Contiguous Allocation• Each file occupies a set of contiguous blocks

on the disk.• Simple – only starting location (block #) and

length (number of blocks) are required.• Random access.• Wasteful of space external

fragmentation, may use compaction to fix.

• Files cannot grow.• Mapping from logical to physical.

Page 27: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 27

Linked Allocation

• Each file is a linked list of disk blocks: blocks may be scattered anywhere on the disk.

pointerblock =

Allocate as needed, link together; e.g., file starts at block 9

Page 28: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 28

Linked Allocation (Cont.)

Page 29: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 29

Linked Allocation (Cont.)• Simple – need only starting address• Free-space management system – no

waste of space • No random access• Mapping

Page 30: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 30

Indexed Allocation

• Brings all pointers together into the index block.

• Logical view.

index table

Page 31: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 31

Example of Indexed Allocation

Page 32: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 32

Indexed Allocation (Cont.)• Need index table• Random access• Dynamic access without external

fragmentation, but have overhead of index block.

• Wasted space• Index levels

Page 33: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 33

Indexed Allocation – Mapping

outer-index

index table file

Page 34: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 34

Combined Scheme: UNIX

Page 35: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 35

Disk Space Management

• Block size – disk utilization and performance dependent on file size.– For example, assume medium size of 2KB– 130,000 B/track, 7200RPM (8.33ms),

10ms average seek time– Txfer time = 10 + 4.165 + 8.33*k/130000– rate = k/(10 + 4.165 + 8.33*k/130000)

• Disk space utilization– with larger blocks you increase internal

fragmentation

Page 36: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 36

Free-Space Management

• Bit vector (n blocks)

0 1 2 n-1

bit[i] = 0 block[i] free

1 block[i] occupied

Page 37: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 37

Free-Space Management (Cont.)

• Bit map requires extra space. Example:block size = 212 bytes (4096 Bytes)disk size = 234 bytes (16 GByte)n = 234/212 = 222 bits (4Mbits=512

KBytes)• Linked list (free list)

– Cannot get contiguous space easily– No waste of space

• Grouping • Counting

Page 38: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 38

Free-Space Management (Cont.)

• Need to protect:– Pointer to free list– Bit map

• Must be kept on disk• Copy in memory and disk may differ.• Cannot allow for block[i] to have a situation

where bit[i] = 1 in memory and bit[i] = 0 on disk.

– Solution:• Set bit[i] = 1 in disk.• Allocate block[i]• Set bit[i] = 1 in memory

Page 39: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 39

Directory Implementation

• Linear list of file names with pointer to the data blocks.– simple to program– time-consuming to execute

• Hash Table – linear list with hash data structure.– decreases directory search time– collisions – situations where two file names

hash to the same location– fixed size

Page 40: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 40

Efficiency and Performance

• Efficiency dependent on:– disk allocation and directory algorithms– types of data kept in file’s directory entry

• Performance– disk cache – separate section of main

memory for frequently sued blocks– free-behind and read-ahead – techniques

to optimize sequential access– improve PC performance by dedicating

section of memory as virtual disk, or RAM disk.

Page 41: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 41

Various Disk-Caching Locations

Page 42: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 42

Recovery

• Consistency checker – compares data in directory structure with data blocks on disk, and tries to fix inconsistencies.

• Use system programs to back up data from disk to another storage device (floppy disk, magnetic tape).

• Recover lost file or disk by restoring data from backup.

Page 43: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 43

File System Implementations

• UNIX Examples - SVR4 and BSD

Page 44: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 44

UNIX FS Framework

Provides persistent storageFacilities for managing dataInterface exported abstractions: files, directories, file descriptors and file systemskernel does not interpret file contentsfiles and directories form tree structure

Page 45: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 45

File and Directory Organization

/

bin etc dev usr vmunix

etclocal

bin

sh

bash

/usr/local/bin/bash

(hard) links

Page 46: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 46

File Attributes

Type - for example regular, FIFO, special.Reference countsize in bytesdevice idownershipaccess modestimestamps

Page 47: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 47

User View of Files

File Descriptors (open, dup, dup2, fork)All I/O is through file descriptorsreferences the open file objectper process object

File Object - holds contextcreated by an open() system callstores file offsetreference to vnode

vnode - abstract representation of a file

Page 48: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 48

How it works

File Descriptors{{0, uf_ofile} {1, uf_ofile} {2 , uf_ofile} {3 , uf_ofile} {4 , uf_ofile}

{5 , uf_ofile}}

Open File Objects{*f_vnode,f_offset,f_count,...},{*f_vnode,f_offset,f_count,...},{*f_vnode,f_offset,f_count,...},{*f_vnode,f_offset,f_count,...},{*f_vnode,f_offset,f_count,...}}

Vnode/vfsIn-memory

representationof file

Vnode/vfsIn-memory

representationof file

Vnode/vfsIn-memory

representationof file

Vnode/vfsIn-memory

representationof file

Vnode/vfsIn-memory

representationof file

Page 49: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 49

File Systems

File hierarchy composed of one or more File SystemsOne File System is designated the Root File SystemAttached to mount points File can not span multiple File Systemsresides on one logical disk

Page 50: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 50

Logical Disks

Viewed as linear sequence of fixed sized, randomly accessible blocks.A file system must reside in a logical disk, however a logical disk need not contain a file system.Typically physical disks divided into partitions that correspond to logical disks

Page 51: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 51

FS Overview

System calls

vnode interface

/procPCFSHSFStmpfs swapfs UFS RFS NFS

Anonymousmemory

Processaddressspace

disk cdrom diskette

Example from Solaris

Page 52: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 52

Local Filesystems

S5fs - System V file system. Based on the original implementation.FFS/UFS - BSD developed filesystem with optimized disk usage algorithms

Page 53: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 53

S5fs - Disk layout

Viewed as a linear array of blocksTypical disk block size 512, 1024, 2048 bytesPhysical block number is the block’s indexdisk uses cylinder, track and sectorfirst few blocks are the boot area, which is followed by the inode list (fixed size)

Page 54: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 54

Disk Layout

tract

cylinder

sector heads

plattersRotational speeddisk seek time

Page 55: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 55

bootarea superblock inode list

S5fs disk layout

data

Boot area - code to initialize bootstrap the system

Superblock - metadata for filesystem. Size of FS, sizeof inode list, number of free blocks/inodes, free block/inode list

inode list - linear array of 64byte inode structs

Page 56: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 56

s5fs - some details

name

2 byte

inode

14byte

8450

...“”

myfile123

directory

Di_mode (2)di_nlinks (2)di_uid (2)di_gid (2)di_size (4)di_addr (39)di_gen (1)di_atime (4)di_mtime (4)di_ctime (4)

On-disk inode

Page 57: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 57

Locating file data blocks

0 12 3 45678910 - indirect11 - double indirect12 - triple indirect

256

bloc

ks

65,536 blocks

16,777,216 blocks

Assume 1024 Byte Blocks

Page 58: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 58

BSD - FFS

Disk partition divided into cylinder groupssuperblocks restructured and replicated across partition

Constant informationcylinder group summary info such as free inodes and free block

support block fragmentsLong file namesnew disk block allocation strategy

Page 59: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 59

FFS Allocation strategy

Goal: Collocate similar data/info.file inodes located in same cyl group as dir.new dirs created in different cyl groups.Place file data blocks/inode in same cyl group - for size < 48Kallocate sequential blocks at a rotationally optimal position.Choose cyl group with “best” free count

Page 60: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 60

Is FFS/UFS Better?

Measurements have shown substantial performance benefits over s5fsFFS however, is sub-optimal when the disk is nearly full. Thus 10% is always kept free. Modern disks however, no longer match the underlying assumptions of FFS

Page 61: File System

Fred Kuhns (04/08/23) Cs422 – Operating Systems Organization 61

Example Disk Buffer Cache

Hash (device,inode)

Free(LRU)


Recommended