Arch Lecture 2 CSS 122 Mzumbe
Arch Lecture 2 CSS 122 Mzumbe
software and
Operating Systems
CSS 122
Software &
Hardware
•Computer Instructions or data, anything that can be stored
electronically is Software.
•Hardware is one that is tangible. The storage devices (Hard
disk, CD’s etc.,), mouse, keyboard CPU and display devices
(Monitor) are Hardware.
•For example: There is a problem in the Software implies –
Problem with program or data
Types of
Software
System Software
Application Software
• Convenience
• Efficiency
• Ability to evolve
The OS as a User/Computer
Interface
The OS as a User/Computer
Interface Cont.
•The hardware and software used in providing applications to a user
can be viewed in a layered fashion
•Thus, the end user views a computer system in terms of a set of
applications.
•An application can be expressed in a programming language, and is
developed by an application programmer
•Considering the complexity of managing the computer hardware to
develop an application could e overwhelmingly complex
•To ease this chore, a set of system programs is provided
The OS as a User/Computer
Interface Cont.
•Some of the system programs are referred to as utilities, or library
programs
•They implement frequently used functions that assist in program
creation, the management of files, and the control of I/O
devices
•A programmer use them to develop program
•Application when running invoke these utilities to perform certain
functions
•The most important collection of system programs comprises the
Operating System (OS)
Operating System
Services
•Program development
•Program execution
•Access I/O devices
•Controlled access to files
•System access
•Error detection and response
•Accounting
•Security and Protection
•Resource allocation
Program
development
•The OS provides a variety of facilities and services, such as
editors and debuggers, to assist the programmer in creating
programs
•Typically, these services are in the form of utility programs
•If they are not supplied with the OS, are referred to as
application program development tools
Program
execution
•A number of steps need to be performed to execute a
program.
•Instructions and data must be loaded into main memory, and
I/O devices must be initialized, and other resources must be
prepared.
•The OS handles these scheduling duties for the user.
Access to I/O
devices
•Each I/O device requires its own peculiar set of instructions
or control signals for operation.
• The OS provides a uniform interface that hides these
details so programmers can access such devices using
simple reads and writes
Controlled access
to files
•The OS must reflect a detailed understanding of not only the
nature of the I/O device (disk drive, tape drive), but also the
structure of the data contained in the files on the storage
medium.
•In the case of a system with multiple users, the OS may provide
protection mechanisms to control access to the files.
System
access
•For shared or public systems, the OS controls access to the
system as a whole and to specific system resources.
•The access function must provide protection of resources
and data from unauthorized users, and must resolve conflicts
for resource contention.
Error detection and
response
• A variety of errors can occur while a computer system is running.
• These include internal and external hardware errors
memory error
device failure or malfunction
• Software errors
division by zero
attempt to access forbidden memory location,
inability of the OS to grant the request of an application
• In each case, the OS must provide a response that clears the error
condition with the least impact on running applications.
Resource allocation
New services
Fixes
Evolution of Operating
Systems
Serial Processing
Evolution of Operating System:
•Multiprogramming
also known as multitasking
memory is expanded to hold three, four, or more
programs and switch among all of them
Multiprogramming
Example
Effects on Resource
Utilization
Utilization
Histograms
Fourth Generation: 1980 onwards Time-Sharing
Systems
These OS shared the time between multiple users and hence got the
name Time Shared Operating Systems.
Time-Sharing
Systems
•Can be used to handle multiple interactive jobs
•Processor time is shared among multiple users
•Multiple users simultaneously access the system through
terminals, with the OS interleaving the execution of each
user program in a short burst or quantum of computation
Compatible Time-Sharing
Systems
•One of the first time-sharing operating systems
• Developed at MIT by a group known as Project MAC
• Ran on a computer with 32,000 36-bit words of main
memory, with the resident monitor consuming 5000 of that
• To simplify both the monitor and memory management a
program was always loaded to start at the location of the 5000th
word
Batch Multiprogramming vs.
Time Sharing
Major
Advances
•Operating Systems are among the most complex pieces of
software ever developed
•Major advances in development include:
•Processes
•Memory management
•Information protection and security
•Scheduling and resource management
•System structure