Unit -1 Introduction

Text Books :
– Operating System Concepts – Silberschatz /Galvin/ Gagne – References:• Modern Operating Systems – Tanenbaum • William Stallings, “Operating System” – PHI, 4th Edition, 2003.

Operating Systems


What is Operating System ?
• A program that acts as an intermediary between a user of a computer and the computer hardware. • Operating system goals:
– A program that controls the execution of application programs – Make the computer system convenient to use. – Use the computer hardware in an efficient manner. Operating Systems 3

Where does the OS fit in?
• Basic Taxonomy
HW SW System




– Software is differentiated according to its purpose – System software provides a general environment where programmers/developers can create applications and users can run applications
Operating Systems 4

• A computer system consists of
– hardware – system programs – application programs
Operating Systems 5

Computer System Components
1. Hardware – provides basic computing resources (CPU, memory, I/O devices). 2. Operating system – controls and coordinates the use of the hardware among the various application programs for the various users. 3. Applications programs – define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs). 4. Users (people, machines, other computers).
Operating Systems 6

Abstract View of System Components

Operating Systems


Operating System Definitions
• Resource allocator – manages and allocates resources. • Control program – controls the execution of user programs and operations of I/O devices . • Kernel – the one program running at all times (all else being application programs).
Operating Systems 8

User-Services Provided by the Operating System
• Program creation – Editor and debugger utility programs • Program execution – Loading instructions, initializing I/O devices • Access to I/O devices – Making it a simple R/W command • Controlled access to files – Media technology, file format, controlling access
Operating Systems 9

User-Services Provided by the Operating System
• Error detection and response
– internal and external hardware errors
• memory error • device failure

– software errors
• arithmetic overflow • access forbidden memory locations
Operating Systems 10

Two View points
• User view
– User sits in front of PC – User sit at a terminal connected to a mainframe

• System view
– Resource allocator

Operating Systems


Operating System as a resource manager
• It is actually a program that is executed by the processor to control the processor! • Directs the processor in the use of system resources • Directs the processor when executing other programs • Processor stops executing the operating system in order to execute other programs and, then, gives the control back to the operating system
Operating Systems 12

Operating System as a resource manager
• Memory management is decided by the operating system and memory management hardware in the processor. • The operating system decides about the access of programs and files to I/O devices. • In case of multiple processors, it decides for them all

Operating Systems


System Goals
• Objectives of an OS – Convenience • An operating system makes a computer more convenient to use. – Efficiency • An operating system allows the computer system resources to be used in an efficient manner. – Ability to Evolve • Should permit effective development, testing, and introduction of new system features and functions without interfering with service.

Operating Systems


Types of modern operating systems
• • • • Mainframe operating systems: MVS Server operating systems: FreeBSD, Solaris Multiprocessor operating systems: Cellular IRIX Personal computer operating systems: Windows, Unix • Real-time operating systems: VxWorks • Embedded operating systems • Smart card operating systems ⇒ Some operating systems can fit into more than one category
Operating Systems 15

Operating system timeline
• First generation: 1945 – 1955 – Vacuum tubes – Plug boards • Second generation: 1955 – 1965 – Transistors – Batch systems • Third generation: 1965 – 1980 – Integrated circuits – Multiprogramming • Fourth generation: 1980 – present – Large scale integration – Personal computers • Next generation: ??? – Systems connected by high-speed networks? – Wide area resource management?
Operating Systems 16

First generation: direct input
• Run one job at a time – Enter it into the computer (might require rewiring!) – Run it – Record the results • Problem: lots of wasted computer time! – Computer was idle during first and last steps – Computers were very expensive! • Goal: make better use of an expensive commodity: computer time
Operating Systems 17

Second generation: batch systems

• • • • •

Bring cards to 1401 Read cards onto input tape Put input tape on 7094 Perform the computation, writing results to output tape Put output tape on 1401, which prints output
Operating Systems 18

• Advantages of batch systems
– move much of the work of the operator to the computer – increased performance since it was possible for job to start as soon as the previous job finished

• Disadvantages

– turn-around time can be large from user standpoint – more difficult to debug program – due to lack of protection scheme, one batch job can affect pending jobs (read too many cards, etc) – a job could corrupt the monitor, thus affecting pending jobs – a job could enter an infinite loop
Operating Systems 19

Structure of a typical 2nd generation job
Data for program FORTRAN program


Operating Systems


• Original batch systems used tape drives • Later batch systems used disks for buffering – Operator read cards onto disk attached to the computer – Computer read jobs from disk – Computer wrote job results to disk – Operator directed that job results be printed from disk • Disks enabled simultaneous peripheral operation on-line (spooling) – Computer overlapped I/O of one job with execution of another – Better utilization of the expensive CPU – Still only one job active at any given time
Operating Systems 21

Third generation: multiprogramming
Job 3 Job 2 Memory partitions Job 1 Operating system
• Multiple jobs in memory

– Protected from one another
• Operating system protected from each job as well • Resources (time, hardware) split between jobs • Still not interactive

Operating Systems

– User submits job – Computer runs it – User gets results minutes (hours, days) later


• It’s a logical extension of multiprogramming. • The CPU executes multiple jobs by switching among them • It allows many users to share the computer simultaneously • It uses time scheduling and multiprogramming to provide each user with a small portion of a time shared computer.
Operating Systems 23

• Its more complex than multiprogramming because jobs may have to be swapped in and out of main memory. • Here it comes virtual memory

Operating Systems


Components of a simple PC
Outside world

Video controller

Hard drive controller

USB controller

Network controller

CPU Memory
Operating Systems

Computer internals (inside the “box”)

Desktop Systems
• Personal computers – computer system dedicated to a single user. • I/O devices – keyboards, mice, display screens, small printers. • User convenience and responsiveness. • Can adopt technology developed for larger operating system’ often individuals have sole use of computer and do not need advanced CPU utilization of protection features. • May run several different types of operating systems (Windows, MacOS, UNIX, Linux)
Operating Systems 26

Parallel Systems
• Multiprocessor systems with more than on CPU in close communication. • Tightly coupled system – processors share memory and a clock; communication usually takes place through the shared memory. • Advantages of parallel system: – Increased throughput

– Economical – Increased reliability • graceful degradation • fail-soft systems
Operating Systems 27

Parallel Systems (Cont.)
• Symmetric multiprocessing (SMP) – Each processor runs and identical copy of the operating system. – Many processes can run at once without performance deterioration. – Most modern operating systems support SMP • Asymmetric multiprocessing

– Each processor is assigned a specific task; master processor schedules and allocated work to slave processors. – More common in extremely large systems
Operating Systems 28

Symmetric Multiprocessing Architecture

Operating Systems


Distributed Systems
• Distribute the computation among several physical processors. • Loosely coupled system – each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines. • Advantages of distributed systems. – Resources Sharing – Computation speed up – load sharing – Reliability – Communications
Operating Systems 30

Distributed Systems (cont)
• Requires networking infrastructure. • Local area networks (LAN) or Wide area networks (WAN) • May be either client-server or peer-to-peer systems.

Operating Systems


General Structure of ClientServer

Operating Systems


Clustered Systems
• Clustering allows two or more systems to share storage. • Provides high reliability. • Asymmetric clustering: one server runs the application while other servers standby. • Symmetric clustering: all N hosts are running the application.

Operating Systems


Real-Time Systems
• Often used as a control device in a dedicated application such as controlling scientific experiments, medical imaging systems, industrial control systems, and some display systems. • Well-defined fixed-time constraints. • Real-Time systems may be either hard or soft real-time.
Operating Systems 34

Real-Time Systems (Cont.)
• Hard real-time: – Secondary storage limited or absent, data stored in short term memory, or read-only memory (ROM) – Conflicts with time-sharing systems, not supported by general-purpose operating systems. • Soft real-time – Limited utility in industrial control of robotics – Useful in applications (multimedia, virtual reality) requiring advanced operating-system features.
Operating Systems 35

Handheld Systems
• Personal Digital Assistants (PDAs) • Cellular telephones • Issues:
– Limited memory – Slow processors – Small display screens.

Operating Systems


Hardware Protection
• • • • Dual-Mode Operation I/O Protection Memory Protection CPU Protection

Operating Systems


Dual-Mode Operation
• Sharing system resources requires operating system to ensure that an incorrect program cannot cause other programs to execute incorrectly. • Provide hardware support to differentiate between at least two modes of operations. 1.User mode – execution done on behalf of a user. 2.Monitor mode (also kernel mode or system mode) – execution done on behalf of operating system.

Operating Systems


Dual-Mode Operation (Cont.)
• Mode bit added to computer hardware to indicate the current mode: monitor (0) or user (1). • When an interrupt or fault occurs hardware switches to monitor mode.

monitor set user mode


Privileged instructions can be issued only in monitor mode. 
Operating Systems 39

I/O Protection
• All I/O instructions are privileged instructions. • Must ensure that a user program could never gain control of the computer in monitor mode (I.e., a user program that, as part of its execution, stores a new address in the interrupt vector).
Operating Systems 40

Use of A System Call to Perform I/O

Operating Systems


Memory Protection
• Must provide memory protection at least for the interrupt vector and the interrupt service routines. • In order to have memory protection, add two registers that determine the range of legal addresses a program may access: – Base register – holds the smallest legal physical memory address. – Limit register – contains the size of the range • Memory outside the defined range is protected.
Operating Systems 42

Use of A Base and Limit Register

Operating Systems


Hardware Address Protection

Operating Systems


Hardware Protection
• When executing in monitor mode, the operating system has unrestricted access to both monitor and user’s memory. • The load instructions for the base and limit registers are privileged instructions.

Operating Systems


CPU Protection
• Timer – interrupts computer after specified period to ensure operating system maintains control. – Timer is decremented every clock tick. – When timer reaches the value 0, an interrupt occurs. • Timer commonly used to implement time sharing. • Time also used to compute the current time. • Load-timer is a privileged instruction.
Operating Systems 46

Common System Components
• • • • • • • • Process Management Main Memory Management File Management I/O System Management Secondary Management Networking Protection System Command-Interpreter System
Operating Systems 47

Process Management
• A process is a program in execution. A process needs certain resources, including CPU time, memory, files, and I/O devices, to accomplish its task. • The operating system is responsible for the following activities in connection with process management. – Process creation and deletion.

– process suspension and resumption. – Provision of mechanisms for: • process synchronization • process communication

Operating Systems


Main-Memory Management
• Memory is a large array of words or bytes, each with its own address. It is a repository of quickly accessible data shared by the CPU and I/O devices. • Main memory is a volatile storage device. It loses its contents in the case of system failure. • The operating system is responsible for the following activities in connections with memory management: – Keep track of which parts of memory are currently being used and by whom. – Decide which processes to load when memory space becomes available. – Allocate and deallocate memory space as needed.
Operating Systems 49

File Management
• A file is a collection of related information defined by its creator. Commonly, files represent programs (both source and object forms) and data. • The operating system is responsible for the following activities in connections with file management: – File creation and deletion.

– Directory creation and deletion. – Support of primitives for manipulating files and directories. – Mapping files onto secondary storage. – File backup on stable (nonvolatile) storage media.
Operating Systems 50

I/O System Management
• The I/O system consists of:
– A buffer-caching system – A general device-driver interface – Drivers for specific hardware devices

Operating Systems


Secondary-Storage Management
• Since main memory (primary storage) is volatile and too small to accommodate all data and programs permanently, the computer system must provide secondary storage to back up main memory. • Most modern computer systems use disks as the principle online storage medium, for both programs and data. • The operating system is responsible for the following activities in connection with disk management: – Free space management

– Storage allocation – Disk scheduling
Operating Systems 52

Networking (Distributed Systems)
• A distributed system is a collection processors that do not share memory or a clock. Each processor has its own local memory. • The processors in the system are connected through a communication network. • Communication takes place using a protocol. • A distributed system provides user access to various system resources. • Access to a shared resource allows: – Computation speed-up

– Increased data availability – Enhanced reliability
Operating Systems 53

Protection System
• Protection refers to a mechanism for controlling access by programs, processes, or users to both system and user resources. • The protection mechanism must:
– distinguish between authorized and unauthorized usage. – specify the controls to be imposed. – provide a means of enforcement.
Operating Systems 54

Command-Interpreter System
• Many commands are given to the operating system by control statements which deal with: – process creation and management – I/O handling – secondary-storage management – main-memory management – file-system access – protection – networking
Operating Systems


Command-Interpreter System (Cont.)
• The program that reads and interprets control statements is called variously: – command-line interpreter – shell (in UNIX) Its function is to get and execute the next command statement.
Operating Systems 56

Operating System Services
• Program execution – system capability to load a program into memory and to run it. • I/O operations – since user programs cannot execute I/O operations directly, the operating system must provide some means to perform I/O. • File-system manipulation – program capability to read, write, create, and delete files. • Communications – exchange of information between processes executing either on the same computer or on different systems tied together by a network. • Error detection – ensure correct computing by detecting errors in the CPU and memory hardware, in I/O devices, or in user programs.
Operating Systems 57

Additional Operating System Functions
Additional functions exist not for helping the user, but rather for ensuring efficient system operations. • Resource allocation – allocating resources to multiple users or multiple jobs running at the same time.

• Accounting – keep track of and record which users
use how much and what kinds of computer resources for account billing or for accumulating usage statistics. • Protection – ensuring that all access to system resources is controlled.
Operating Systems 58

System Calls
• System calls provide the interface between a running program and the operating system. – Generally available as assembly-language instructions. – Languages defined to replace assembly language for systems programming allow system calls to be made directly (e.g., C, C++) • Three general methods are used to pass parameters between a running program and the operating system. – Pass parameters in registers. – Store the parameters in a table in memory, and the table address is passed as a parameter in a register. – Push (store) the parameters onto the stack by the program, and pop off the stack by operating system.
Operating Systems 59

Passing of Parameters As A Table

Operating Systems


Types of System Calls
• • • • • Process control File management Device management Information maintenance Communications

Operating Systems


MS-DOS Execution

At System Start­up

Running a Program

Operating Systems


UNIX Running Multiple Programs

Operating Systems


Communication Models
• Communication may take place using either message passing or shared memory.

Msg Passing

Shared Memory
Operating Systems 64

System Programs
• Provide a convenient environment for program development and execution – Some of them are simply user interfaces to system calls; others are considerably more complex • File management - Create, delete, copy, rename, print, dump, list, and generally manipulate files and directories • Status information – Some ask the system for info - date, time, amount of available memory, disk space, number of users – Others provide detailed performance, logging, and debugging information – Typically, these programs format and print the output to the terminal or other output devices – Some systems implement a registry - used to store and retrieve configuration information Operating Systems 65

System Programs (cont’d)
• File modification – Text editors to create and modify files – Special commands to search contents of files or perform transformations of the text • Programming-language support - Compilers, assemblers, debuggers and interpreters sometimes provided • Program loading and execution- Absolute loaders, relocatable loaders, linkage editors, and overlay-loaders, debugging systems for higher-level and machine language • Communications - Provide the mechanism for creating virtual connections among processes, users, and computer systems – Allow users to send messages to one another’s screens, browse web pages, send electronic-mail messages, log in remotely, transfer files from one machine to another
Operating Systems 66

• • • • • Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication

Operating Systems


Process Concept
• Process – a program in execution; process execution must progress in sequential fashion. • A process includes: – program counter – stack – data section

Operating Systems


Process State
• As a process executes, it changes state
– new: The process is being created. – running: Instructions are being executed. – waiting: The process is waiting for some event to occur. – ready: The process is waiting to be assigned to a process. – terminated: The process has finished execution.
Operating Systems 69

Diagram of Process State

Operating Systems


Process Control Block (PCB)
Information associated with each process. • Process state • Program counter • CPU registers • CPU scheduling information • Memory-management information • Accounting information • I/O status information
Operating Systems 71

Process Control Block (PCB)

Operating Systems


CPU Switch From Process to Process

Operating Systems


Process Scheduling Queues
• Job queue – set of all processes in the system. • Ready queue – set of all processes residing in main memory, ready and waiting to execute. • Device queues – set of processes waiting for an I/O device. • Process migration between the various queues.

Operating Systems


Ready Queue And Various I/O Device Queues

Operating Systems


Representation of Process Scheduling

Operating Systems


• Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue. • Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU.

Operating Systems


Addition of Medium Term Scheduling

Operating Systems


Schedulers (Cont.)
• Short-term scheduler is invoked very frequently (milliseconds) ⇒ (must be fast). • Long-term scheduler is invoked very infrequently (seconds, minutes) ⇒ (may be slow). • The long-term scheduler controls the degree of multiprogramming. • Processes can be described as either: – I/O-bound process – spends more time doing I/O than computations, many short CPU bursts. – CPU-bound process – spends more time doing computations; few very long CPU bursts.
Operating Systems 79

Context Switch
• When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process. • Context-switch time is overhead; the system does no useful work while switching. • Time dependent on hardware support.
Operating Systems 80

Process Creation
• Parent process create children processes, which, in turn create other processes, forming a tree of processes. • Resource sharing – Parent and children share all resources. – Children share subset of parent’s resources.

– Parent and child share no resources. • Execution – Parent and children execute concurrently. – Parent waits until children terminate.
Operating Systems 81

Process Creation (Cont.)
• Address space
– Child duplicate of parent. – Child has a program loaded into it.

• UNIX examples
– fork system call creates new process – exec system call used after a fork to replace the process’ memory space with a new program.
Operating Systems 82

Processes Tree on a UNIX System

Operating Systems


Process Termination
• Process executes last statement and asks the operating system to decide 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 resources. – Task assigned to child is no longer required. – Parent is exiting. • Operating system does not allow child to continue if its parent terminates. • Cascading termination.
Operating Systems 84

Cooperating Processes
• Independent process cannot affect or be affected by the execution of another process. • Cooperating process can affect or be affected by the execution of another process • Advantages of process cooperation – Information sharing – Computation speed-up – Modularity – Convenience
Operating Systems 85

Producer-Consumer Problem
• Paradigm for cooperating processes, producer process produces information that is consumed by a consumer process.
– unbounded-buffer places no practical limit on the size of the buffer. – bounded-buffer assumes that there is a fixed buffer size.
Operating Systems 86

Bounded-Buffer – Shared-Memory Solution
• Shared data
#define BUFFER_SIZE 10 Typedef struct { ... } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; • Solution is correct, but can only use BUFFER_SIZE-1 elements Operating Systems


Bounded-Buffer – Producer Process
item nextProduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; }
Operating Systems 88

Bounded-Buffer – Consumer Process
item nextConsumed; while (1) { while (in == out) ; /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; }
Operating Systems 89

Interprocess Communication (IPC)
• Mechanism for processes to communicate and to synchronize their actions. • Message system – processes communicate with each other without resorting to shared variables. • IPC 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 them – exchange messages via send/receive • Implementation of communication link – physical (e.g., shared memory, hardware bus) – logical (e.g., logical properties)
Operating Systems 90

Direct Communication
• Processes must name each other explicitly: – send (P, message) – send a message to process P – receive(Q, message) – receive a message from process Q • Properties of communication link – Links are established automatically. – A link is associated with exactly one pair of communicating processes. – Between each pair there exists exactly one link. – The link may be unidirectional, but is usually bidirectional.
Operating Systems 91

Indirect Communication
• Messages are directed and received from mailboxes (also referred to as ports). – Each mailbox has a unique id.

– Processes can communicate only if they share a mailbox. • Properties of communication link – Link established only if processes share a common mailbox – A link may be associated with many processes. – Each pair of processes may share several communication links. – Link may be unidirectional or bi-directional.
Operating Systems 92

Indirect Communication
• Operations – create a new mailbox – send and receive messages through mailbox – destroy a mailbox • Primitives are defined as: send(A, message) – send a message to mailbox A receive(A, message) – receive a message from mailbox A

Operating Systems


Indirect Communication
• Mailbox sharing

– P1, P2, and P3 share mailbox A. – P1, sends; P2 and P3 receive. – Who gets the message? • Solutions – Allow a link to be associated with at most two processes. – Allow only one process at a time to execute a receive operation. – Allow the system to select arbitrarily the receiver. Sender is notified who the receiver was.
Operating Systems 94

• Message passing may be either blocking or non-blocking. • Blocking is considered synchronous • Non-blocking is considered asynchronous • send and receive primitives may be either blocking or non-blocking.

Operating Systems


• Queue of messages attached to the link; implemented in one of three ways.
1. Zero capacity – 0 messages Sender must wait for receiver (rendezvous). 2. Bounded capacity – finite length of n messages Sender must wait if link full. 3. Unbounded capacity – infinite length Sender never waits.
Operating Systems 96

Operating Systems