Operating System Overview
Chapter 2
Operating System
•	A program that controls the execution of application programs
•	An interface between applications and hardware
Operating System Objectives
•	Convenience
–	Makes the computer more convenient to use
•	Efficiency
–	Allows computer system resources to be used in an efficient manner
•	Ability to evolve
–	Permit effective development, testing, and introduction of new system functions without interfering with service
Layers of Computer System
Services Provided by the Operating System
•	Program development
–	Editors and debuggers
•	Program execution
•	Access to I/O devices
•	Controlled access to files
•	System access

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 system cannot grant request of application

Services Provided by the Operating System
•	Accounting
–	Collect usage statistics
–	Monitor performance
–	Used to anticipate future enhancements
–	Used for billing purposes
Operating System
•	Responsible for managing resources
•	Functions same way as ordinary computer software
–	It is program that is executed
•	Operating system relinquishes control of the processor

Kernel
•	Portion of operating system that is in main memory
•	Contains most frequently used functions
•	Also called the nucleus
Evolution of an Operating System
•	Hardware upgrades plus new types of hardware
•	New services
•	Fixes
Evolution of Operating Systems
•	Serial Processing
–	No operating system
–	Machines run from a console with display lights, toggle switches, input device, and printer
–	Schedule time
–	Setup included loading the compiler, source program, saving compiled program, and loading and linking
Evolution of Operating Systems
•	Simple Batch Systems
–	Monitors
•	Software that controls the sequence of events
•	Batch jobs together
•	Program branches back to monitor when finished
Job Control Language (JCL)
•	Special type of programming language
•	Provides instruction to the monitor
–	What compiler to use
–	What data to use

Hardware Features
•	Memory protection
–	Do not allow the memory area containing the monitor to be altered
•	Timer
–	Prevents a job from monopolizing the system

Hardware Features
•	Privileged instructions
–	Certain machine level instructions can only be executed by the monitor
•	Interrupts
–	Early computer models did not have this capability
Memory Protection
•	User program executes in user mode
–	Certain instructions may not be executed
•	Monitor executes in system mode
–	Kernel mode
–	Privileged instructions are executed
–	Protected areas of memory may be accessed
I/O Devices Slow
Uniprogramming
•	Processor must wait for I/O instruction to complete before preceding
Multiprogramming
•	When one job needs to wait for I/O, the processor can switch to the other job
Multiprogramming
Example
Time Sharing
•	Using multiprogramming to handle multiple interactive jobs
•	Processor’s time is shared among multiple users
•	Multiple users simultaneously access the system through terminals

Major Achievements
•	Processes
•	Memory Management
•	Information protection and security
•	Scheduling and resource management
•	System structure
Processes
•	A program in execution
•	An instance of a program running on a computer
•	The entity that can be assigned to and executed on a processor
•	A unit of activity characterized by a single sequential thread of execution, a current state, and an associated set of system resources
Process
•	Consists of three components
–	An executable program
–	Associated data needed by the program
–	Execution context of the program
•	All information the operating system needs to manage the process
Process
Memory Management
•	Process isolation
•	Automatic allocation and management
•	Support of modular programming
•	Protection and access control
•	Long-term storage

Virtual Memory and File System
•	Implements long-term store
•	Information stored in named objects called files

Virtual Memory
Virtual Memory Addressing
Information Protection and Security
•	Availability
–	Concerned with protecting the system against interruption
•	Confidentiality
–	Assuring that users cannot read data for which access is unauthorized

Information Protection and Security
•	Data integrity
–	Protection of data from unauthorized modification
•	Authenticity
–	Concerned with the proper verification of the identity of users and the validity of messages or data
Scheduling and Resource Management
•	Fairness
–	Give equal and fair access to resources
•	Differential responsiveness
–	Discriminate among different classes of jobs
•	Efficiency
–	Maximize throughput, minimize response time, and accommodate as many uses as possible
Key Elements of
Operating System
System Structure
•	View the system as a series of levels
•	Each level performs a related subset of functions
•	Each level relies on the next lower level to perform more primitive functions
•	This decomposes a problem into a number of more manageable subproblems