What is an Operating System?
Operating System is a Resource Manager.
Handles multiple computer resources: CPU, Internal/External memory, Processes, Tasks, Applications, Users, etc…
Manages and allocates resources to multiple users or multiple jobs running at the same time (e.g., processor time, memory space, I/O devices)
Arranges to use the computer hardware in an efficient manner (maximize throughput, minimize response time) and in a fair manner.
It is a Control Program.
Manages all the components of a complex computer system in an integrated manner.
Controls the execution of user programs and I/O devices to prevent errors and improper use of the computer resources.
Looks over and protects the computer.
It is an extended/virtual machine
An interface between the user and hardware that hides the details of the hardware (e.g., I/O).
Constructs higher-level (virtual) resources out of lower-level (physical) resources (e.g., files).
Definition: Is a collection of software enhancements, executed on the bare hardware, culminating in a high-level virtual machine that serves as an advanced programming environment
Why Operating System?
Computer hardware is developed to execute user programs and make solving user problems easier.
An operating system makes a computer more convenient to use.
It acts as an interface between user and computer hardware. Therefore, the end-users are not particularly concerned with the computer’s architecture, and they view the computer system in terms of an application.
To programmers, it provides some basic utilities to assist him in creating programs, the management of files, and the control of I/O devices.
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
Services Provided by Operating Systems
Facilities for program creation
Editors, compilers, linkers, debuggers, etc.
Program execution
Loading in memory, I/O and file initialization.
Access to I/O and files
Deals with the specifics of I/O and file formats.
System access
Resolves conflicts for resource contention.
Protection in access to resources and data.
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
Accounting collect statistics monitor performance used to anticipate future enhancements used for billing users
Computer System Components
A computer system can be divided in to four components.
The Hardware: Provides basic computing resources (CPU, memory, I/O devices).
The Operating System: Controls and coordinates the use of the hardware among the various application programs for the various users.
The Application 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).
The Users: Users (people, machines, other computers).
These components can be viewed as layers, where each layer uses the services provided by the layer beneath it.
A Static View of System Components
Dynamic View of System Components
Another view of computer system components
History of Operating Systems
Let’s see how operating systems evolve over time.
This will help us to identify some common features of operating systems and how and why these systems have been developed as they are.
Evolution of Operating Systems
Early Systems (1950)
Simple Batch Systems (1960)
Multiprogrammed Batch Systems (1970)
Time-Sharing and Real-Time Systems (1970)
Personal/Desktop Systems (1980)