+ All Categories
Home > Documents > OS Concepts

OS Concepts

Date post: 13-Nov-2014
Category:
Upload: api-26748405
View: 941 times
Download: 0 times
Share this document with a friend
Popular Tags:
145
Transcript
Page 1: OS Concepts
Page 2: OS Concepts

Operating System ConceptsSystem StructureSystem Structure

System structured as a series of levels - each level performs a related subset of functionsEach level relies on the next lower level for more primitive functionsLayers Concepts

Hardware abstraction layerMicrokernelDevice drivers

Page 3: OS Concepts

Operating System Concepts

Computer System StructureComputer System Structure

Computer system can be divided into four componentsHardware – provides basic computing resources

CPU, memory, I/O devicesOperating system

Controls and coordinates use of hardware among various applications and users

Application programs – define the ways in which the system resources are used to solve the computing problems of the users

Word processors, compilers, web browsers, database systems, video games

UsersPeople, machines, other computers

Page 4: OS Concepts

Operating System ConceptsFour Components of a Computer SystemFour Components of a Computer System

Page 5: OS Concepts

Operating System ConceptsOperating System ??Operating System ??

Computer applications today require a single machine to perform many operations and the applications may compete for the resources of the machine.This demands a high degree of coordinationThis coordination is handled by system software known as the operating system

Page 6: OS Concepts

Operating System ConceptsOperating System ??Operating System ??

What is an operating system?Hard to define precisely, because operating systems arose historically as people needed to solve problems associated with using computers.How about…“Software that makes computing power available to users by

controlling the hardware.”“A collection of software modules including device drivers,

libraries, and access routines.”

Page 7: OS Concepts

Operating System ConceptsOperating System ObjectivesOperating System Objectives

Operating systems are among the most critical pieces of softwareever developed

ConvenienceMakes the computer more convenient to use

EfficiencyAllows computer system resources to be used in an efficient manner

Ability to evolvePermit effective development, testing, and introduction of new system functions without interfering with service

Page 8: OS Concepts

Operating System ConceptsOperating System ServicesOperating System Services

Program developmentEditors, debuggers, frameworks

Program executionInitialization, scheduling

Access to I/O devicesUniform interface, hides details

Controlled access to filesAuthorization, sharing, caching

System accessProtection, authorization, resolve conflicts

Error detection and responseHardware errors: memory error or device failureSoftware errors: arithmetic errors, access forbidden memory locations, allocation errors

Page 9: OS Concepts

Operating System ConceptsOS as a Resource ManagerOS as a Resource Manager

OS executes same way as ordinary computer software - it is set of computer programsThe key difference is in the intent

Directs use of resourcesRelinquishes control of the processor to execute other programs

Kernel or nucleusPortion of operating system that is in main memoryContains most-frequently used functions

Page 10: OS Concepts

Operating System ConceptsEvolution of Operating SystemsEvolution of Operating Systems

Operating systems have evolved becauseNew types of hardware and hardware upgradesDevelopment of new services and needsFixes to OS faults

Serial Processing

Simple Batch Processing

Multi-programmed Batch Systems

Time-Sharing Systems

Distributed Processing Systems

Page 11: OS Concepts

Operating System Concepts

OS for batch jobsOS for batch jobs

Program execution required significant preparation of equipmentProgram execution (job)OS was a system to simplify program setup and simplify transition between jobsPhysical separation of users and equipment led to computer operatorsUsers left jobs with the operator and came back the next day (batch jobs)Users had no interaction with computer during program execution. Maybe okay for some applications, but not for all.

Page 12: OS Concepts

Operating System Concepts

OS for Interactive ProcessingOS for Interactive Processing

Allowed programs to carry on dialogue with user via remote terminals (workstations)Real-time processingUsers demand timely responseMachines too expensive to serve only one userCommon for several users to want interactive services at the same time

Page 13: OS Concepts

Operating System Concepts

OS for timeOS for time--sharingsharing

To accommodate multiple real-time users, the OS rotates its various jobs in and out of execution via time-sharingEach job gets a predetermined “time slice”At end of time slice current job is set aside and a new one startsBy rapidly shuffling jobs, illusion of several jobs executing simultaneously is createdWithout time slicing, a computer spends most of its time waitingfor peripheral devices or usersA collection of tasks can be completed in less time with time-sharing than when completed sequentially

Page 14: OS Concepts

Operating System Concepts

Different Operating Systems on the Same Machine ?Different Operating Systems on the Same Machine ?

It is possible to have more than one operating system available to be used on a machine.Only one operating system is run at a time, though.Examples:

PCs -- DOS, Windows, or Linux

Page 15: OS Concepts

Operating System ConceptsDistributed Processing SystemsDistributed Processing Systems

Distributed operating systemsprovides the illusion of a single main memory and single secondary memory spaceused for distributed file system

Page 16: OS Concepts

Operating System ConceptsModern OS ArchitectureModern OS Architecture

Page 17: OS Concepts

Operating System ConceptsComputer StartupComputer Startup

bootstrap program is loaded at power-up or rebootTypically stored in ROM or EPROM, generally known as firmwareInitializates all aspects of systemLoads operating system kernel and starts execution

Page 18: OS Concepts

Operating System ConceptsComputer System OrganizationComputer System Organization

Computer-system operationOne or more CPUs, device controllers connect through common bus providing access to shared memoryConcurrent execution of CPUs and devices competing for memory cycles

Page 19: OS Concepts

Operating System ConceptsComputerComputer--System OperationSystem Operation

I/O devices and the CPU can execute concurrently.Each device controller is in charge of a particular device type.Each device controller has a local buffer.CPU moves data from/to main memory to/from local buffersI/O is from the device to local buffer of controller.Device controller informs CPU that it has finished its operation by causing an interrupt.

Page 20: OS Concepts

Operating System ConceptsStorage StructureStorage Structure

Main memory – only large storage media that the CPU can access directly.Secondary storage – extension of main memory that provides large nonvolatile storage capacity.Magnetic disks – rigid metal or glass platters covered with magnetic recording material

Disk surface is logically divided into tracks, which are subdivided into sectors.The disk controller determines the logical interaction between the device and the computer.

Page 21: OS Concepts

Operating System ConceptsStorage HierarchyStorage Hierarchy

Storage systems organized in hierarchy.SpeedCostVolatility

Caching – copying information into faster storage system; main memory can be viewed as a last cache for secondary storage.

Page 22: OS Concepts

Operating System ConceptsStorageStorage--Device HierarchyDevice Hierarchy

Page 23: OS Concepts

Operating System ConceptsCachingCaching

Important principle, performed at many levels in a computer (in hardware, operating system, software)Information in use copied from slower to faster storage temporarilyFaster storage (cache) checked first to determine if information is there

If it is, information used directly from the cache (fast)If not, data copied to cache and used there

Cache smaller than storage being cachedCache management important design problemCache size and replacement policy

Page 24: OS Concepts

Operating System Concepts

Migration of Integer A from Disk to RegisterMigration of Integer A from Disk to Register

Multitasking environments must be careful to use most recent value, no matter where it is stored in the storage hierarchy

Multiprocessor environment must provide cache coherency in hardware such that all CPUs have the most recent value in their cacheDistributed environment situation even more complex

Several copies of a datum can existVarious solutions covered in Chapter 17

Page 25: OS Concepts

Operating System Concepts

Memory Layout for Multiprogrammed SystemMemory Layout for Multiprogrammed System

Page 26: OS Concepts

OperatingOperating--System StructuresSystem Structures

Page 27: OS Concepts

Operating System ConceptsThe OS KernelThe OS Kernel

The internal part of the OS is often called the kernelKernel Components

File ManagerDevice DriversMemory ManagerSchedulerDispatcher

Page 28: OS Concepts

Operating System ConceptsUser Operating System Interface User Operating System Interface -- CLICLI

CLI allows direct command entrySometimes implemented in kernel, sometimes by systems programSometimes multiple flavors implemented – shellsPrimarily fetches a command from user and executes it

– Sometimes commands built-in, sometimes just names of programs

» If the latter, adding new features doesn’t require shell modification

Page 29: OS Concepts

Operating System ConceptsUser Operating System Interface User Operating System Interface -- GUIGUI

User-friendly desktop metaphor interfaceUsually mouse, keyboard, and monitorIcons represent files, programs, actions, etcVarious mouse buttons over objects in the interface cause various actions (provide information, options, execute function,open directory (known as a folder)Invented at Xerox PARC

Many systems now include both CLI and GUI interfacesMicrosoft Windows is GUI with CLI “command” shellApple Mac OS X as “Aqua” GUI interface with UNIX kernel underneath and shells availableSolaris is CLI with optional GUI interfaces (Java Desktop, KDE)

Page 30: OS Concepts

Operating System ConceptsSystem CallsSystem Calls

Programming interface to the services provided by the OSTypically written in a high-level language (C or C++)Mostly accessed by programs via a high-level Application Program Interface (API) rather than direct system call useThree most common APIs are Win32 API for Windows, POSIX API for POSIX-based systems (including virtually all versions of UNIX, Linux, and Mac OS X), and Java API for the Java virtual machine (JVM)Why use APIs rather than system calls?

(Note that the system-call names used throughout this text are generic)

Page 31: OS Concepts

Operating System ConceptsAPI API –– System Call System Call –– OS RelationshipOS Relationship

Write()

Write()Implementation

of Write()

Page 32: OS Concepts

Operating System ConceptsStandard C Library ExampleStandard C Library Example

C program invoking printf() library call, which calls write() system call

Page 33: OS Concepts

Operating System ConceptsSimple Structure Simple Structure

MS-DOS – written to provide the most functionality in the least space

Not divided into modulesAlthough MS-DOS has some structure, its interfaces and levels of functionality are not well separated

Page 34: OS Concepts

Operating System ConceptsMSMS--DOS Layer StructureDOS Layer Structure

Page 35: OS Concepts

Operating System ConceptsLayered Operating SystemLayered Operating System

Page 36: OS Concepts

Operating System ConceptsMicrokernel System Structure Microkernel System Structure

Moves as much from the kernel into “user” spaceCommunication takes place between user modules using message passingBenefits:

Easier to extend a microkernelEasier to port the operating system to new architecturesMore reliable (less code is running in kernel mode)More secure

Detriments:Performance overhead of user space to kernel space communication

Page 37: OS Concepts

Operating System ConceptsSolaris Modular ApproachSolaris Modular Approach

Page 38: OS Concepts

Operating System ConceptsVirtual MachinesVirtual Machines

A virtual machine takes the layered approach to its logical conclusion. It treats hardware and the operating system kernel as though they were all hardwareA virtual machine provides an interface identical to the underlying bare hardwareThe operating system creates the illusion of multiple processes, each executing on its own processor with its own (virtual) memory

Page 39: OS Concepts

Operating System ConceptsVirtual Machines (Cont.)Virtual Machines (Cont.)

The resources of the physical computer are shared to create the virtual machines

CPU scheduling can create the appearance that users have their own processorSpooling and a file system can provide virtual card readers and virtual line printersA normal user time-sharing terminal serves as the virtual machine operator’s console

Page 40: OS Concepts

Operating System ConceptsVirtual MachinesVirtual Machines

Non-virtual Machine Virtual Machine

(a) Non-virtual machine (b) virtual machine

Page 41: OS Concepts

Operating System ConceptsVirtual Machines (Cont.)Virtual Machines (Cont.)

The virtual-machine concept provides complete protection of system resources since each virtual machine is isolated from all other virtual machines. This isolation, however, permits no direct sharing ofresources.A virtual-machine system is a perfect vehicle for operating-systems research and development. System development is done on the virtual machine, instead of on a physical machine and so does not disrupt normal system operation.The virtual machine concept is difficult to implement due to the effort required to provide an exact duplicate to the underlying machine

Page 42: OS Concepts

Operating System ConceptsVMware ArchitectureVMware Architecture

Page 43: OS Concepts

Operating System ConceptsThe Java Virtual MachineThe Java Virtual Machine

Page 44: OS Concepts

Operating System Concepts

OperatingOperating--System OperationsSystem Operations

Process ManagementMemory ManagementStorage ManagementProtection and SecurityDistributed Systems

Page 45: OS Concepts

Processes Processes ……

Page 46: OS Concepts

Operating System ConceptsProcess ConceptProcess Concept

An operating system executes a variety of programs:Batch system – jobsTime-shared systems – user programs or tasks

Textbook uses the terms job and process almost interchangeablyProcess – a program in execution; process execution must progress in sequential fashionA process includes:

program counter stackdata section

Page 47: OS Concepts

Operating System ConceptsProcess in MemoryProcess in Memory

Page 48: OS Concepts

Operating System ConceptsProcess StateProcess State

As a process executes, it changes statenew: The process is being createdrunning: Instructions are being executedwaiting: The process is waiting for some event to occurready: The process is waiting to be assigned to a processorterminated: The process has finished execution

Page 49: OS Concepts

Operating System ConceptsDiagram of Process StateDiagram of Process State

Page 50: OS Concepts

Operating System ConceptsProcess Control Block (PCB)Process Control Block (PCB)

Information associated with each processProcess stateProgram counterCPU registersCPU scheduling informationMemory-management informationAccounting informationI/O status information

Page 51: OS Concepts

Operating System ConceptsProcess Control Block (PCB)Process Control Block (PCB)

Page 52: OS Concepts

Operating System ConceptsCPU Switch From Process to ProcessCPU Switch From Process to Process

Page 53: OS Concepts

Operating System ConceptsProcess CreationProcess Creation

Parent process create children processes, which, in turn create other processes, forming a tree of processesResource sharing

Parent and children share all resourcesChildren share subset of parent’s resourcesParent and child share no resources

ExecutionParent and children execute concurrentlyParent waits until children terminate

Page 54: OS Concepts

Operating System ConceptsProcess Creation (Cont.)Process Creation (Cont.)

Address spaceChild duplicate of parentChild has a program loaded into it

UNIX examplesfork system call creates new processexec system call used after a fork to replace the process’memory space with a new program

Page 55: OS Concepts

Operating System ConceptsProcess CreationProcess Creation

Page 56: OS Concepts

Operating System ConceptsProcess TerminationProcess Termination

Process executes last statement and asks the operating system todelete it (exit)

Output data from child to parent (via wait)Process’ resources are deallocated by operating system

Parent may terminate execution of children processes (abort)Child has exceeded allocated resourcesTask assigned to child is no longer requiredIf parent is exiting

Some operating system do not allow child to continue if its parent terminates

– All children terminated - cascading termination

Page 57: OS Concepts

Operating System ConceptsInterInter--process Communication (IPC)process Communication (IPC)

Mechanism for processes to communicate and to synchronize their actionsMessage system – processes communicate with each other without resorting to shared variablesIPC facility provides two operations:

send(message) – message size fixed or variable receive(message)

If P and Q wish to communicate, they need to:establish a communication link between themexchange messages via send/receive

Implementation of communication linkphysical (e.g., shared memory, hardware bus)logical (e.g., logical properties)

Page 58: OS Concepts

Operating System ConceptsCommunications Models Communications Models

Page 59: OS Concepts

Operating System ConceptsDirect CommunicationDirect Communication

Processes must name each other explicitly:send (P, message) – send a message to process Preceive(Q, message) – receive a message from process Q

Properties of communication linkLinks are established automaticallyA link is associated with exactly one pair of communicating processesBetween each pair there exists exactly one linkThe link may be unidirectional, but is usually bi-directional

Page 60: OS Concepts

Operating System ConceptsClientClient--Server CommunicationServer Communication

SocketsRemote Procedure CallsRemote Method Invocation (Java)

Page 61: OS Concepts

Operating System ConceptsSocketsSockets

A socket is defined as an endpoint for communicationConcatenation of IP address and portThe socket 161.25.19.8:1625 refers to port 1625 on host 161.25.19.8Communication consists between a pair of sockets

Page 62: OS Concepts

Operating System ConceptsSocket CommunicationSocket Communication

Page 63: OS Concepts

Operating System ConceptsRemote Procedure CallsRemote Procedure Calls

Remote procedure call (RPC) abstracts procedure calls between processes on networked systems.Stubs – client-side proxy for the actual procedure on the server.The client-side stub locates the server and marshalls the parameters.The server-side stub receives this message, unpacks the marshalled parameters, and peforms the procedure on the server.

Note : Marshalling is the process of packaging and sending interface method parameters across thread, process or machine boundaries.

Page 64: OS Concepts

Operating System ConceptsRemote Method InvocationRemote Method Invocation

Remote Method Invocation (RMI) is a Java mechanism similar to RPCs.RMI allows a Java program on one machine to invoke a method on a remote object.

Page 65: OS Concepts

ThreadsThreads

Page 66: OS Concepts

Operating System ConceptsSingle and Multithreaded ProcessesSingle and Multithreaded Processes

Page 67: OS Concepts

Operating System ConceptsUser ThreadsUser Threads

Thread management done by user-level threads library

Three primary thread libraries:POSIX PthreadsWin32 threadsJava threads

Page 68: OS Concepts

Operating System ConceptsKernel ThreadsKernel Threads

Supported by the Kernel

ExamplesWindows XP/2000SolarisLinuxTru64 UNIXMac OS X

Page 69: OS Concepts

Operating System ConceptsMultithreading ModelsMultithreading Models

Many-to-One

One-to-One

Many-to-Many

Page 70: OS Concepts

Operating System ConceptsManyMany--toto--OneOne

Many user-level threads mapped to single kernel threadExamples:

Solaris Green ThreadsGNU Portable Threads

Page 71: OS Concepts

Operating System ConceptsManyMany--toto--One ModelOne Model

Page 72: OS Concepts

Operating System ConceptsOneOne--toto--OneOne

Each user-level thread maps to kernel threadExamples

Windows NT/XP/2000LinuxSolaris 9 and later

Page 73: OS Concepts

Operating System ConceptsOneOne--toto--one Modelone Model

Page 74: OS Concepts

Operating System ConceptsManyMany--toto--Many ModelMany Model

Allows many user level threads to be mapped to many kernel threadsAllows the operating system to create a sufficient number of kernel threadsSolaris prior to version 9Windows NT/2000 with the ThreadFiber package

Page 75: OS Concepts

Operating System ConceptsManyMany--toto--Many ModelMany Model

Page 76: OS Concepts

Operating System ConceptsTwoTwo--level Modellevel Model

Similar to M:M, except that it allows a user thread to be bound to kernel threadExamples

IRIXHP-UXTru64 UNIXSolaris 8 and earlier

Page 77: OS Concepts

Operating System ConceptsTwoTwo--level Modellevel Model

Page 78: OS Concepts

Operating System ConceptsThreading IssuesThreading Issues

Semantics of fork() and exec() system callsThread cancellationSignal handlingThread poolsThread specific dataScheduler activations

Page 79: OS Concepts

Operating System ConceptsThread CancellationThread Cancellation

Terminating a thread before it has finishedTwo general approaches:

Asynchronous cancellation terminates the target thread immediatelyDeferred cancellation allows the target thread to periodically check if it should be cancelled

Page 80: OS Concepts

Operating System ConceptsSignal HandlingSignal Handling

Signals are used in UNIX systems to notify a process that a particular event has occurredA signal handler is used to process signals1. Signal is generated by particular event2. Signal is delivered to a process3. Signal is handled

Options:Deliver the signal to the thread to which the signal appliesDeliver the signal to every thread in the processDeliver the signal to certain threads in the processAssign a specific thread to receive all signals for the process

Page 81: OS Concepts

Operating System ConceptsThread PoolsThread Pools

Create a number of threads in a pool where they await workAdvantages:

Usually slightly faster to service a request with an existing thread than create a new threadAllows the number of threads in the application(s) to be bound to the size of the pool

Page 82: OS Concepts

Operating System ConceptsJava Thread States Java Thread States

Page 83: OS Concepts

DeadlocksDeadlocks

Page 84: OS Concepts

Operating System ConceptsDeadlock ???Deadlock ???

A condition that occurs when two processes are each waiting for the other to complete before proceeding. The result is that both processes hang. Deadlocks occur most commonly in multitasking and client/server environments. Ideally, the programs that are deadlocked, or the operating system, should resolve the deadlock, but this doesn't always happen. A deadlock is also called a deadly embrace.

Page 85: OS Concepts

Operating System ConceptsBridge Crossing ExampleBridge Crossing Example

Traffic only in one direction.Each section of a bridge can be viewed as a resource.If a deadlock occurs, it can be resolved if one car backs up (preempt resources and rollback).Several cars may have to be backed up if a deadlock occurs.Starvation is possible.

In computer science, starvation is a multitasking-related problem, where a process is perpetually denied necessary resources. Without those resources, the program can never finish its task.

Page 86: OS Concepts

Main MemoryMain Memory

Page 87: OS Concepts

Operating System ConceptsObjectivesObjectives

To provide a detailed description of various ways of organizing memory hardwareTo discuss various memory-management techniques, including paging and segmentationTo provide a detailed description of the Intel Pentium, which supports both pure segmentation and segmentation with paging

Page 88: OS Concepts

Operating System ConceptsBackgroundBackground

Program must be brought (from disk) into memory and placed within a process for it to be runMain memory and registers are only storage CPU can access directlyRegister access in one CPU clock (or less)Main memory can take many cyclesCache sits between main memory and CPU registersProtection of memory required to ensure correct operation

Page 89: OS Concepts

Operating System ConceptsBase and Limit RegistersBase and Limit Registers

A pair of base and limit registers define the logical address space

Page 90: OS Concepts

Operating System Concepts

Binding of Instructions and Data to MemoryBinding of Instructions and Data to Memory

Address binding of instructions and data to memory addresses can happen at three different stages

Compile time: If memory location known a priori, absolute code can be generated; must recompile code if starting location changesLoad time: Must generate relocatable code if memory location is not known at compile timeExecution time: Binding delayed until run time if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers)

Page 91: OS Concepts

Operating System ConceptsMultiMulti--step Processing of a User Program step Processing of a User Program

Page 92: OS Concepts

Operating System ConceptsLogical vs. Physical Address SpaceLogical vs. Physical Address Space

The concept of a logical address space that is bound to a separate physical address space is central to proper memory management

Logical address – generated by the CPU; also referred to as virtual addressPhysical address – address seen by the memory unit

Logical and physical addresses are the same in compile-time and load-time address-binding schemes; logical (virtual) and physical addresses differ in execution-time address-binding scheme

Page 93: OS Concepts

Operating System ConceptsContiguous AllocationContiguous Allocation

Main memory usually into two partitions:Resident operating system, usually held in low memory with interrupt vectorUser processes then held in high memory

Relocation registers used to protect user processes from each other, and from changing operating-system code and data

Base register contains value of smallest physical addressLimit register contains range of logical addresses – each logical address must be less than the limit register MMU maps logical address dynamically

Page 94: OS Concepts

Operating System ConceptsContiguous Allocation (Cont.)Contiguous Allocation (Cont.)

Multiple-partition allocationHole – block of available memory; holes of various size are scattered throughout memoryWhen a process arrives, it is allocated memory from a hole large enough to accommodate itOperating system maintains information about:a) allocated partitions b) free partitions (hole)

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

process 9

OS

process 5

process 9

process 2

process 10

Page 95: OS Concepts

FileFile--System InterfaceSystem Interface

Page 96: OS Concepts

Operating System ConceptsFileFile--System InterfaceSystem Interface

File ConceptAccess MethodsDirectory StructureFile-System MountingFile SharingProtection

Page 97: OS Concepts

Operating System ConceptsFile ConceptFile Concept

Contiguous logical address space

Types: Data

numericcharacterbinary

Program

Page 98: OS Concepts

Operating System ConceptsFile StructureFile Structure

None - sequence of words, bytesSimple record structure

Lines Fixed lengthVariable length

Complex StructuresFormatted documentRelocatable load file

Can simulate last two with first method by inserting appropriatecontrol charactersWho decides:

Operating systemProgram

Page 99: OS Concepts

Operating System ConceptsFile AttributesFile Attributes

Name – only information kept in human-readable formIdentifier – unique tag (number) identifies file within file systemType – needed for systems that support different typesLocation – pointer to file location on deviceSize – current file sizeProtection – controls who can do reading, writing, executingTime, date, and user identification – data for protection, security, and usage monitoringInformation about files are kept in the directory structure, which is maintained on the disk

Page 100: OS Concepts

Operating System ConceptsFile Types File Types –– Name, ExtensionName, Extension

Page 101: OS Concepts

Operating System ConceptsExample of Index and Relative FilesExample of Index and Relative Files

Page 102: OS Concepts

Operating System ConceptsDirectory StructureDirectory 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 103: OS Concepts

Operating System ConceptsA Typical FileA Typical File--system Organizationsystem Organization

Page 104: OS Concepts

Operating System ConceptsSingleSingle--Level DirectoryLevel Directory

A single directory for all users

Naming problem

Grouping problem

Page 105: OS Concepts

Operating System ConceptsTwoTwo--Level DirectoryLevel Directory

Separate directory for each user

Path nameCan have the same file name for different userEfficient searchingNo grouping capability

Page 106: OS Concepts

Operating System ConceptsTreeTree--Structured DirectoriesStructured Directories

Page 107: OS Concepts

Operating System ConceptsTreeTree--Structured Directories (Cont)Structured Directories (Cont)

Absolute or relative path nameCreating a new file is done in current directoryDelete a file

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

mkdir <dir-name>Example: if in current directory /mail

mkdir count

mail

exp countprog copy prt

Deleting “mail” ⇒ deleting the entire subtree rooted by “mail”

Page 108: OS Concepts

Operating System ConceptsAcyclicAcyclic--Graph DirectoriesGraph Directories

Have shared subdirectories and files

Page 109: OS Concepts

Operating System ConceptsProtectionProtection

File owner/creator should be able to control:what can be doneby whom

Types of accessReadWriteExecuteAppendDeleteList

Page 110: OS Concepts

MassMass--Storage SystemsStorage Systems

Page 111: OS Concepts

Operating System ConceptsOverview of Mass Storage StructureOverview of Mass Storage Structure

Magnetic disks provide bulk of secondary storage of modern computersDrives rotate at 60 to 200 times per secondTransfer rate is rate at which data flow between drive and computerPositioning time (random-access time) is time to move disk arm to desired cylinder (seek time) and time for desired sector to rotate under the disk head (rotational latency)Head crash results from disk head making contact with the disk surface

That’s badDisks can be removableDrive attached to computer via I/O bus

Busses vary, including EIDE, ATA, SATA, USB, Fibre Channel, SCSIHost controller in computer uses bus to talk to disk controller built into drive or storage array

Page 112: OS Concepts

Operating System ConceptsMovingMoving--head Disk head Disk MachanismMachanism

Page 113: OS Concepts

Operating System ConceptsDisk StructureDisk Structure

Disk drives are addressed as large 1-dimensional arrays of logical blocks, where the logical block is the smallest unit of transfer.

The 1-dimensional array of logical blocks is mapped into the sectors of the disk sequentially.

Sector 0 is the first sector of the first track on the outermostcylinder.Mapping proceeds in order through that track, then the rest of the tracks in that cylinder, and then through the rest of the cylinders from outermost to innermost.

Page 114: OS Concepts

I/O SystemsI/O Systems

Page 115: OS Concepts

Operating System ConceptsI/O SystemsI/O Systems

I/O HardwareApplication I/O InterfaceKernel I/O SubsystemTransforming I/O Requests to Hardware OperationsStreamsPerformance

Page 116: OS Concepts

Operating System ConceptsObjectivesObjectives

Explore the structure of an operating system’s I/O subsystemDiscuss the principles of I/O hardware and its complexityProvide details of the performance aspects of I/O hardware and software

Page 117: OS Concepts

Operating System ConceptsI/O HardwareI/O Hardware

Incredible variety of I/O devicesCommon concepts

PortBus (daisy chain or shared direct access)Controller (host adapter)

I/O instructions control devicesDevices have addresses, used by

Direct I/O instructionsMemory-mapped I/O

Page 118: OS Concepts

Operating System ConceptsPollingPolling

Determines state of device command-readybusyError

Busy-wait cycle to wait for I/O from device

Page 119: OS Concepts

Operating System ConceptsInterruptsInterrupts

CPU Interrupt-request line triggered by I/O device

Interrupt handler receives interrupts

Maskable to ignore or delay some interrupts

Interrupt vector to dispatch interrupt to correct handlerBased on prioritySome nonmaskable

Interrupt mechanism also used for exceptions

Page 120: OS Concepts

Operating System ConceptsInterruptInterrupt--Driven I/O CycleDriven I/O Cycle

Page 121: OS Concepts

Operating System ConceptsA Kernel I/O StructureA Kernel I/O Structure

SCSI : small computer system interface

Page 122: OS Concepts

Operating System ConceptsBlock and Character DevicesBlock and Character Devices

Block devices include disk drivesCommands include read, write, seek Raw I/O or file-system accessMemory-mapped file access possible

Character devices include keyboards, mice, serial portsCommands include get, putLibraries layered on top allow line editing

Page 123: OS Concepts

Operating System ConceptsKernel I/O SubsystemKernel I/O Subsystem

SchedulingSome I/O request ordering via per-device queueSome OSs try fairness

Buffering - store data in memory while transferring between devices

To cope with device speed mismatchTo cope with device transfer size mismatchTo maintain “copy semantics”

Page 124: OS Concepts

Operating System ConceptsKernel I/O SubsystemKernel I/O Subsystem

Caching - fast memory holding copy of dataAlways just a copyKey to performance

Spooling - hold output for a deviceIf device can serve only one request at a time i.e., Printing

Device reservation - provides exclusive access to a deviceSystem calls for allocation and deallocationWatch out for deadlock

Page 125: OS Concepts

Operating System ConceptsI/O ProtectionI/O Protection

User process may accidentally or purposefully attempt to disruptnormal operation via illegal I/O instructions

All I/O instructions defined to be privilegedI/O must be performed via system calls

Memory-mapped and I/O port memory locations must be protected too

Note : a system call, or software interrupt is the mechanism used by an application program to request service from the operating system. System calls often use a special machine code instruction which causes the processor to change mode (e.g. to "supervisor mode" or "protected mode"). This allows theOS to perform restricted actions such as accessing hardware devices or the memory management unit.

Page 126: OS Concepts

Operating System ConceptsKernel Data StructuresKernel Data Structures

Kernel keeps state info for I/O components, including open file tables, network connections, character device state

Many, many complex data structures to track buffers, memory allocation, “dirty” blocks

Some use object-oriented methods and message passing to implement I/O

Page 127: OS Concepts

Operating System ConceptsI/O Requests to Hardware OperationsI/O Requests to Hardware Operations

Consider reading a file from disk for a process:

Determine device holding file Translate name to device representationPhysically read data from disk into bufferMake data available to requesting processReturn control to process

Page 128: OS Concepts

Operating System ConceptsLife Cycle of An I/O RequestLife Cycle of An I/O Request

Page 129: OS Concepts

Operating System ConceptsPerformancePerformance

I/O a major factor in system performance:

Demands CPU to execute device driver, kernel I/O codeContext switches due to interruptsData copyingNetwork traffic especially stressful

Page 130: OS Concepts

SecuritySecurity

Page 131: OS Concepts

Operating System ConceptsThe Security ProblemThe Security Problem

Security must consider external environment of the system, and protect the system resourcesIntruders (crackers) attempt to breach securityThreat is potential security violationAttack is attempt to breach securityAttack can be accidental or maliciousEasier to protect against accidental than malicious misuse

Page 132: OS Concepts

Operating System ConceptsA BootA Boot--sector Computer Virussector Computer Virus

Page 133: OS Concepts

Operating System ConceptsCryptography as a Security ToolCryptography as a Security Tool

Broadest security tool availableSource and destination of messages cannot be trusted without cryptographyMeans to constrain potential senders (sources) and / or receivers (destinations) of messages

Based on secrets (keys)

Page 134: OS Concepts

Operating System ConceptsSecure Communication over Insecure MediumSecure Communication over Insecure Medium

Page 135: OS Concepts

Operating System ConceptsDigital CertificatesDigital Certificates

Proof of who or what owns a public keyPublic key digitally signed a trusted partyTrusted party receives proof of identification from entity and certifies that public key belongs to entityCertificate authority are trusted party – their public keys included with web browser distributions

They vouch for other authorities via digitally signing their keys, and so on

Page 136: OS Concepts

Operating System ConceptsEncryption Example Encryption Example -- SSLSSL

Insertion of cryptography at one layer of the ISO network model (the transport layer)SSL – Secure Socket Layer (also called TLS)Cryptographic protocol that limits two computers to only exchange messages with each other

Very complicated, with many variationsUsed between web servers and browsers for secure communication (credit card numbers)The server is verified with a certificate assuring client is talking to correct serverAsymmetric cryptography used to establish a secure session key(symmetric encryption) for bulk of communication during sessionCommunication between each computer theb uses symmetric key cryptography

Page 137: OS Concepts

Distributed System StructuresDistributed System Structures

Page 138: OS Concepts

Operating System ConceptsMotivationMotivation

Distributed system is collection of loosely coupled processors interconnected by a communications networkProcessors variously called nodes, computers, machines, hosts

Site is location of the processorReasons for distributed systems

Resource sharingsharing and printing files at remote sitesprocessing information in a distributed databaseusing remote specialized hardware devices

Computation speedup – load sharingReliability – detect and recover from site failure, function transfer, reintegrate failed siteCommunication – message passing

Page 139: OS Concepts

Operating System ConceptsA Distributed SystemA Distributed System

Page 140: OS Concepts

Operating System ConceptsTypes of Distributed Operating SystemsTypes of Distributed Operating Systems

Network Operating SystemsDistributed Operating Systems

Page 141: OS Concepts

Operating System ConceptsNetworkNetwork--Operating SystemsOperating Systems

Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by:

Remote logging into the appropriate remote machine (telnet, ssh)Remote Desktop (Microsoft Windows)Transferring data from remote machines to local machines, via the File Transfer Protocol (FTP) mechanism

Page 142: OS Concepts

Operating System ConceptsDistributedDistributed--Operating SystemsOperating Systems

Users not aware of multiplicity of machinesAccess to remote resources similar to access to local

resourcesData Migration – transfer data by transferring entire file, or transferring only those portions of the file necessary for the immediate taskComputation Migration – transfer the computation, rather than the data, across the system

Page 143: OS Concepts

Operating System ConceptsDistributedDistributed--Operating Systems (Cont.)Operating Systems (Cont.)

Process Migration – execute an entire process, or parts of it, at different sites

Load balancing – distribute processes across network to even the workloadComputation speedup – subprocesses can run concurrently on different sitesHardware preference – process execution may require specialized processorSoftware preference – required software may be available at only a particular siteData access – run process remotely, rather than transfer all data locally

Page 144: OS Concepts

Operating System ConceptsThe FutureThe Future……

In the future, computers will continue to become physically smaller and more portable.Operating systems have to deal with issues like disconnected operation and mobility.Media rich information within the grasp of common people - information with psuedo-real time components like voice and video.Operating systems will have to adjust to deliver acceptable performance for these new forms of data.

Page 145: OS Concepts

Operating System ConceptsFinallyFinally

Operating systems are so large no one person understands whole system. Outlives any of its original builders. The major problem facing computer science today is how to build large, reliable software systems.Operating systems are one of very few examples of existing large software systems, and by studying operating systems we may learn lessons applicable to the construction of larger systems.


Recommended