Operating systems
This presentation is the property of its rightful owner.
Sponsored Links
1 / 66

Operating Systems PowerPoint PPT Presentation


  • 76 Views
  • Uploaded on
  • Presentation posted in: General

Operating Systems. Prof. Navneet Goyal Department of Computer Science & Information Systems BITS, Pilani. Topics. Files Access Methods Directory Structure File System mounting File sharing Protection. Files. Most visible aspect of an OS

Download Presentation

Operating Systems

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Operating systems

Operating Systems

Prof. Navneet Goyal

Department of Computer Science & Information Systems

BITS, Pilani


Topics

Topics

  • Files

  • Access Methods

  • Directory Structure

  • File System mounting

  • File sharing

  • Protection


Files

Files

  • Most visible aspect of an OS

  • Files provide mechanism for online storage of and access to both data and programs of the OS and all the users

  • A typical file system consists of:

    • Files (each storing related data)

    • Metadata (directory structure)


Files1

Files

  • Information can be stored on various storage media

  • OS provides a uniform logical view of information storage

  • OS abstracts from the physical properties of its storage devices to define a logical storage unit, FILE!

  • Files are mapped by the OS onto physical devices


Files2

Files

  • File is a named collection of related information that is recorded on a secondary storage

  • Smallest allotment of logical secondary storage

  • Data cannot be written on secondary storage unless it is written on a file

  • File is a very general concept


File system

File System

  • Collection of Files

    File contains related data

  • Directory Structure

    Organizes & provides information about all files in the system

  • Partitions

    Separates physically or logically large collections of directories


Typical file system

Typical File System


File attributes

File Attributes

  • Name

  • Identifier (generally a number)

  • Type

  • Location (device: location)

  • Size (bytes, words or blocks)

  • Protection (rwx)

  • Time, date, & user identification

    (creation, last modification, last use)


File operations

File Operations

  • File is an ADT

  • Must define operations on files

  • File Operations

    • Creating

    • Writing

    • Reading

    • Repositioning within file (file seek)

    • Deleting

    • Truncating

  • OS provides system calls for each operation


File operations1

File Operations

  • Creating

    • Space in the file system must be found for the file

    • Entry for the new file must be made in the directory

  • Writing a file

    • System call specifying the name of the file and the information to be written. System keeps a pointer to the location where the next write is to take place


File operations2

File Operations

  • Reading

    • System call specifying the name of the file and where the next block of the file should be put.

    • A process is either reading from a file or writing to a file, the current operation location can be kept as per process “current-file-position” pointer

    • Both read and write ops. Use this same pointer to save space & system complexity

  • Repositioning within a file

    • Current file position pointer is repositioned to a given value. Need not involve an actual I/O. Also called as file seek


File operations3

File Operations

  • Deleting a file

    • Search the directory for the names file, release all file space, and erase the directory entry

  • Truncating a file

    • Erases the content of a file but keeps its attributes


File operations4

File Operations

  • Other Operations

    • Appending

    • Renaming

    • Copy

    • Move

  • open() system call

    • Must be invoked before a file is used

    • Open file table is maintained by OS

  • Create & Delete work with closed files


File types

File Types


Access methods

Access Methods

  • Files contain information

  • Information must be accessed and read into memory for processing

  • Information in files can be accessed in several ways

  • Most systems provide only one method

  • Some systems provide many


Access methods1

Access Methods

  • Choosing the right one for a particular application is a typical design issue

  • Sequential Access

  • Direct Access

  • Indexes (IBMs ISAM)


Directory structure

Directory Structure

  • Stores information about all files

  • Resides on secondary storage

  • Contains file’s name & Identifier

  • Identifier in turn locates other file attributes

  • More than 1KB of information for each file

  • Directory structure size in MBs

  • Backups of files and directory structure kept on tapes


Directory structure1

Directory Structure

  • Disks are split into one or more partitions

  • Minidisks or Volumes

  • Each disk contains atleast one partition

  • Partitions can be larger than a disk

  • Partitions are “virtual disks”

  • Partition maintains information about files in “Device Directory”


Directory structure2

Directory Structure

A collection of nodes containing information about all files.

Both the directory structure and the files reside on disk

Backups of these two structures are kept on tapes


Information in a directory

Information in a Directory

  • Name

  • Type

  • Address

  • Current length

  • Maximum length

  • Date last accessed

  • Date last updated

  • Owner ID

  • Protection information


Directory operations

Directory Operations

  • Search for a file

  • Create a file

  • Delete a file

  • List a directory

  • Rename a file

  • Traverse the file system


Operating systems

How to Organize a Directory?

Issues

  • 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 Java programs, all games, …)

    Schemes for defining the logical structure of a directory:

  • Single level directory

  • Two level directory

  • Tree structured directory

  • Acyclic graph directory

  • General graph directory


Single level directory

Single-Level Directory

Single directory for all users: easy to support & understand

  • All files in a single directory

  • Naming problem (unique names)

  • Grouping Problem


Two level directory

Two-Level Directory

Separate directory for each user

  • each user has its own UFD (user file dir)

  • UFDs have similar structure

  • When a user logs in, the MFD (master file dir) is searched

  • MFD is indexed by user name or accnt no.

  • Each entry in MFD points to a UFD

  • User name & a file name define a path name


Two level directory1

Two-Level Directory

Separate directory for each user

  • When a user refers to a file, only his own UFD is searched

  • File names can be shared among users

  • Solves the name-collision problem

  • Disadvantages?

  • System files?


Two level directory2

Two-Level Directory

Separate directory for each user

  • File name would be searched in the current UFD only

  • Copy system files to each UFD!!

  • Standard solution: special user directory is defined to contain system files: say user 0

  • Search procedure?


Tree structured directory

Tree-Structured Directory


Tree structured directory1

Tree-Structured Directory

  • Generalization of two-level directory (with arbitrary height)

  • Each user has a current directory (working directory)

    • Can change current directory via cd command or system call

  • Path names can be absolute or relative

    Operations

  • 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>

      Advantages

  • Efficient searching

  • Grouping Capability


Acyclic graph directory

Acyclic-Graph Directory

  • 2 programmers working on a joint project

  • File pertaining to project stored in a subdirectory of each user

  • Shared subdirectory!

  • Tree structure prohibits the sharing of files or directories!

  • A shared file or dir will exist in the file system in two or more places at once

  • AGD allows files & dirs to be shared


Acyclic graph directory1

Acyclic-Graph Directory

  • Shared file is not the same as two copies of the file

  • With a shared file, only one actual file exists

  • Shared subdirectories

  • Files created in this SD will auto. appear in all the shared SDs

  • LINKS!!


Acyclic graph directory2

Acyclic-Graph Directory

  • A link is a pointer to another file or subdirectory

  • Link may be implemented as an absolute or a relative path

  • When a reference to a file is made

    • directory is searched

    • If directory entry is marked as a link, name of the real file is included in the link information

    • Link is resolved using the path name to locate the real file

  • Tree traversal is used to traverse directories


Acyclic graph directory3

Acyclic-Graph Directory

Duplication

  • Duplicate all information in both the sharing directories

  • Original & copy indistinguishable

  • Maintaining consistency when a file is modified is a problem


Acyclic graph directory4

Acyclic-Graph Directory

Problems

  • AGD is more flexible but more complex

  • File may have multiple absolute path names. Different file names refer to the same file!!


Acyclic graph directory5

Acyclic-Graph Directory

  • Have shared subdirectories

  • and files using acyclic graph

  • Two different names exist

  • (aliasing problem)

  • If ‘dict’ deletes list ⇒

  • dangling pointer (UNIX case)

  • Solutions:

    • Preserve file until all references to it are deleted

      • Reference count solution


General graph directory

General-Graph Directory

  • Add links to an existing tree structured directory, resulting in a simple graph structure

  • Want to avoid searching any shared components twice

  • Reference count solution does not hold due to self-reference

  • => use garbage collection

  • Acyclic structure is much easier to work with

  • How do we guarantee no cycle?

    • Allow links only to file not subdirectories

    • Every time a new link is added use a cycle detection algorithm


General graph directory1

General Graph Directory

  • Problem with AGD: ensuring no cycles

  • Allowing users to create files & directories to an existing tree structure preserves the tree-structured nature

  • But, when we allow links to be added to an existing tree structure, the tree structure is destroyed, resulting in a simple graph structure


File system mounting

File System Mounting

  • Just as a file must be opened before it is used, a file system must be mounted before it can be accessed

  • Procedure?


File system mounting1

File System Mounting

Procedure

  • The OS is given the name of the device, and the location within the file structure at which to attach the file system (or mount point)

  • Typically, a mount point is an empty directory

  • The OS verifies that the device contains a valid file system by asking the device driver to read the directory

  • Finally, the OS notes in its directory structure that a file system is mounted at the specified mount point; This scheme enables the OS to traverse its directory structure, switching among file systems as appropriate


File system mounting2

File System Mounting


File sharing

File Sharing

  • Sharing of files on multi-user systems is desirable

  • Sharing may be done through a protection scheme

  • On distributed systems, files may be shared across a network

  • Network File System (NFS) is a common distributed file-sharing method


File sharing multiple users

File Sharing: Multiple Users

  • User IDs identify users, allowing permissions and protections to be per-user

  • Group IDs allow users to be in groups, permitting group access rights


File sharing remote file systems

File Sharing: Remote File Systems

  • Uses networking to allow file system access between systems

    • Manually via programs like FTP

    • Automatically, seamlessly using distributed file systems

    • Semi automatically via the world wide web

  • Client-server model allows clients to mount remote file systems from servers

    • Server can serve multiple clients

    • Client and user-on-client identification is insecure or complicated

    • NFS is standard UNIX client-server file sharing protocol

    • CIFS is standard Windows protocol

    • Standard operating system file calls are translated into remote calls

  • Distributed Information Systems (distributed naming services) such as LDAP, DNS, NIS, Active Directory implement unified access to information needed for remote computing


Protection

Protection

  • File owner/creator should be able to control:

    • what can be done

    • by whom

  • Types of access

    • Read

    • Write

    • Execute

    • Append

    • Delete

    • List


Access control list acl

Access Control List (ACL)

  • Various users may need different types of access to a file or directory

  • The most general scheme is to associate with each file & directory an access-control list (ACL) specifying the user name & the types of access allowed for each user

  • Advantages

    • Enable complex access methodology

  • Disadvantages

    • Constructing such a list may be a tedious and unrewarding task, especially if we do not know in advance the list of users in the system

    • The directory entry, previously of fixed size, now needs to be of variable size, resulting in more complicated space management


Access lists groups unix

Access Lists & Groups (UNIX)

  • Various users may need different types of access to a file or directory

  • The most general scheme is to associate with each file & directory an access-control list (ACL) specifying the user name & the types of access allowed for each user

  • Advantages

    • Enable complex access methodology

  • Disadvantages

    • Constructing such a list may be a tedious and unrewarding task, especially if we do not know in advance the list of users in the system

    • The directory entry, previously of fixed size, now needs to be of variable size, resulting in more complicated space management


Access lists groups unix1

Access Lists & Groups (UNIX)


Sample directory listing unix

Sample Directory Listing (UNIX)


Windows xp access control list management

Windows XP Access-control List Management


Unix file system

UNIX File System


Working directory

Working Directory


Home directory

Home Directory


Unix file hierarchy

UNIX File Hierarchy


Some standard directories

Some Standard Directories


Output of ls lf

Output of ls - lF


Types of files

Types of Files


Special files

Special Files


Creating links

Creating Links


File ownership

File Ownership


File permissions

File Permissions


File modification date

File Modification Date


Disk partition

Disk partition

B

S

inode list

data blocks

  • Boot area

    • Code required to bootstrap the operating system

  • Superblock

    • Attributes and metadata of the file system itself

  • inode list

    • a linear array of inodes

  • data blocks

    • data blocks for files and directories


Superblock

Superblock

  • It contains

    • Size in blocks of the file system

    • Size in blocks of the inode list

    • Number of free blocks and inodes

    • Free block list(Partial)

    • Free inode list(Partial)

  • The kernel reads the superblock and stores it in memory when mounting the file system


Inode

Inode

  • Each file has an inode associated with it

  • Inode contains metadata for file

  • on-disk inode refers to inode stored in disk within the inode list

  • in-core inode refers to inode stored in memory when a file is open


Inodes

INODES

  • Kernel maintains file information in a structure called inode.

    • Creation, modification time stamps

    • Ownership, file size etc.

  • Commonly used INODE information can be found by using ls command


On disk inode

Field

Size

Description

di_mode

2

File type, permissions

di_uid

2

Owner UID

di_gid

2

Owner GID

di_size

4

Size in bytes

di_addr

39

Array of block addresses

:

:

:

On-disk inode

  • The size of on-disk inode is 64 bytes


In core inode

In-core Inode

  • It contains all the fields of on-disk inode, and some additional fields, such as

    • The status of the in-core inode (whether the inode is locked, which process is waiting, etc.)

    • The logical device number containing the file

    • The inode number of the file

    • Pointers to keep the inode on a free list

    • Pointers to keep the inode on a hash queue.

    • Block number of last block read.


  • Login