comp5102 lecture 3 operating systems (os) file systems phones off (please)

23
COMP5102 Lecture 3 Operating Systems (OS) File systems phones off (please)

Post on 22-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

COMP5102 Lecture 3

Operating Systems (OS)

File systems

phones off (please)

© De Montfort University, 2005 Comp5102/5122 - L3 2

Lecture Outline

• File Types• Files information• File Access• File Structure

– Disk Construction– File Allocation Tables

© De Montfort University, 2005 Comp5102/5122 - L3 3

File Types

• A file may have a specific type or purpose, e.g.• regular files, directories, character/block special files, pipes

• Some systems have specific types for things like– ASCII (text) files– executable (machine code) files

• File types may be enforced– MS-DOS executable must have ‘.exe’ extension

or not (they are just a hint to the user)– UNIX text files may have ‘.txt’ extension

• File types may have associations– Apple Mac types associate a file with its creator

© De Montfort University, 2005 Comp5102/5122 - L3 4

File Types – Name, Extension

© De Montfort University, 2005 Comp5102/5122 - L3 5

Unix File Types

• Four basic types: • Regular Files

– may contain text, a program, or other data, • either in ASCII, in the numerical range 0 to 127, i.e. in the 7-bit range• or a binary file, whose bytes can be of all possible values 0 to

255, in the 8-bit range.

• Directory Files – A directory containing files within a directory

• E.g. directory x may contain a, b and c, and that b is a directory, containing files u and v. b can be viewed as a directory, containing files and as a file itself.

© De Montfort University, 2005 Comp5102/5122 - L3 6

Unix File Types ….

• Device Files– In Unix, physical devices (printers, terminals

etc.) are represented as ``files.'' • In his way, the same read() and write() functions

used to read and write real files can also be used to read from and write to these devices.

• Link Files– new name for another file– suppose we have a file X, and type ln X Y If we

then run ls, it will appear that a new file, Y, has been created, as a copy of X,

© De Montfort University, 2005 Comp5102/5122 - L3 7

Files info. In a given Directory

• The `a' (``all'') and `l' (``long'') options of the ls command can give us a lot of information about files in a specified directory:

• bash-2.05$ ls -al• total 448• drwx--x--x 3 msaf csstf 4096 Nov 17 10:44 .• drwx--x--x 69 msaf csstf 86016 Nov 17 10:39 ..• -rwx--x--x 1 msaf csstf 83012 Nov 5 2002 a.out• -rwx--x--x 1 msaf csstf 14964 Oct 9 2002 prg1• -rw------- 2 msaf csstf 343 Oct 9 2002 prog1.c

© De Montfort University, 2005 Comp5102/5122 - L3 8

Files info. …

• The output is separated into six columns:• 1st column - access permissions (see below)• 2nd column - number of file entries (in the case of

directory files)• 3rd column - owner • 4th column - size in bytes• 5th column - date and time of last modification • 6th column – file name

© De Montfort University, 2005 Comp5102/5122 - L3 9

File Access Control

• In Unix, all files are protected under some access control mechanism– the owner of a file can deny access of his files to

others. • e.g. drwxr-xr-x.

• The meanings of the flags are shown below: • file type:

• d (directory) • - (ordinary file) • l (symbolic link)

© De Montfort University, 2005 Comp5102/5122 - L3 10

File Access …

• permissions for the owner: – r (read) – w (write) – x execute

– r-x read and execute permission are granted, but not write permission, for other users.

• To change or delete a file you need to have write permission

• To view a file you need to have read permission

© De Montfort University, 2005 Comp5102/5122 - L3 11

Some File Commands

• chmod • change access permissions of any of your own

file.– u user (i.e. owner) – g group – o others – + add permission – - remove permission – r read – w write – x execute

© De Montfort University, 2005 Comp5102/5122 - L3 12

• e.g.– chmod ugo+rw prog2 – adds read and write permission for all users to the prog2 file or directory of the person issuing this command.

• In some cases it is useful for a user to deny himself/herself permission to write to a file, – e.g. to make sure the file not deleted by mistake.

© De Montfort University, 2005 Comp5102/5122 - L3 13

• du and df• The du command displays the sizes in kilobytes of all

files in the specified directory, and the total of all those sizes;

• The df command displays the amount of unused space left in your disk systems.

• diff• displays line-by-line differences between two ASCII files.

If for example, you have two versions of a C source file but don't remember how the new version differs from the old one, you could type

• diff oldprog.c newprog.c

© De Montfort University, 2005 Comp5102/5122 - L3 14

• Wild Cards – There are two wild-card characters in Unix, `*' and `?'.

rm *.c rm x?b.crm test[1-3].c

© De Montfort University, 2005 Comp5102/5122 - L3 15

File Access Methods

• There are two distinct classes of access method– sequential access

– suited to magnetic tape devices

• the information in a file (bytes or records) can only be written at the end (appended) or read in sequential order

– random access– suited to hard disks

• bytes or records can be read or written in any order• sometimes this is implemented by each read and write

operation specifying a position parameter, or

© De Montfort University, 2005 Comp5102/5122 - L3 16

File System Structure

• Hard disks provide the bulk of secondary storage on which a file system is maintained– to improve input / output efficiency, I/O transfers are

performed in units of blocks

• Each block consists of one or more physical hard disk sectors– typical physical sector sizes vary from 32 to 4K bytes– usually, particularly on PC’s, sectors are 512 bytes

• Hard disks have two important characteristics– blocks can be read, modified and written (in place)– blocks can be directly accessed in any order

© De Montfort University, 2005 Comp5102/5122 - L3 17

File System Layers

• In order to provide convenient and efficient user access to the disk, the operating system imposes a file system structure– this generally comprises a number of layers

• to insulate the logical structure from device dependencies

application programs

logical file system

basic file system

I/O control

hardware devices

(files, directories, etc)

(block read & write)

(interrupts, device drivers)

© De Montfort University, 2005 Comp5102/5122 - L3 18

Disk Construction

• A hard disk consists of a number of platters– made of aluminium

or glass

– with a thin magnetic film on the surface

– common platter diameters range from 1.8 - 5.25 inches

• Information is stored magnetically on both surfaces (sides) of each platter

• The platters rotate at a fixed rate on the spindle– e.g. modern PC drives rotate at 5,400 or 7,200 rpm

© De Montfort University, 2005 Comp5102/5122 - L3 19

Read / Write Heads

side view

r/w heads arms actuator

• Each surface has a read/write head to access the magnetic fields– the heads are mounted

on arms and their movement is controlled by an actuator

• all the heads move together

• The heads do not touch the surface, but ‘fly’ a very small distance above the surface– the fly height

• typically between around 0.2 to 0.07 mm

© De Montfort University, 2005 Comp5102/5122 - L3 20

The Disk Surface

• The surface of a disk is logically divided into concentric circular tracks– 1,000’s are now common

• The surface is also divided into segments– a track through a particular

segment is a sector• note: often the term sector is

confusingly used to refer to both segments and sectors!

– on typical PC disks, each sectorholds 512 bytes

© De Montfort University, 2005 Comp5102/5122 - L3 21

• data capacity of a disk is described best by:

• Disk Capacity = Cylinders * Heads * Sectors * (# bytes / disk block)

• A typical example for a 2.1 GB IDE disk on a Linux-based PC would be:C/H/S = 1024/64/63

• Disk Capacity = 1024 * 64 * 63 * 512 bytes/block = 2113929216 bytes = 2.11 gigabytes

© De Montfort University, 2005 Comp5102/5122 - L3 22

File Allocation Tables

• The FAT is an index array of linked-list block numbers kept in its own disk block– the FAT contents are critical to finding all file blocks, so

it is (usually) held twice at the start of each partition• the root directory immediately follows the FATs

• The directory entry holds the start block of a file– the FAT entry indexed by that block number contains

the block number of the next block in the chain– there is a special value to signify end of file

• Special values signify free blocks and bad blocks

© De Montfort University, 2005 Comp5102/5122 - L3 23

File Systems in Unix

• In Unix, the files are organized into a tree structure with a root named by the character '/'.– The first few levels of the tree look like this: