Chapter 1 Introduction
1
Introduction
l Von Neumann computer
» “Naked machine”
» Hardware without any helpful user-oriented features
» Extremely difficult for a human to work with
l An interface between the user and the
hardware is needed to make a Von
Neumann computer usable
2
Introduction (continued)
l Tasks of the interface
» Hide details of the underlying hardware from the user
» Present information in a way that does not require in-depth
knowledge of the internal structure of the system
» Allow easy user access to the available resources
» Prevent accidental or intentional damage to hardware,
programs, and data
3
System Software: The Virtual
Machine
l System software
» Acts as an intermediary between users and hardware
» Creates a virtual environment for the user that hides the
actual computer architecture
l Virtual machine (or virtual environment)
» Set of services and resources created by the system
software and seen by the user
4
The Role of System Software
5
Operating Systems
l System commands
» Carry out services such as translate a program, load a
program, run a program
» Types of system commands
– Lines of text typed at a terminal
– Menu items displayed on a screen and selected
with a mouse and a button: Point-and-click
» Examined by the operating system
6
Functions of an Operating System
l Five most important responsibilities of the
operating system
» User interface management
» Program scheduling and activation
» Control of access to system and files
» Efficient resource allocation
» Deadlock detection and error detection
7
The User Interface
l Operating system
» Waits for a user command
» If command is legal, activates and schedules the appropriate
software package
l User interfaces
» Text-oriented
» Graphical
8
Types of System Software
l System software is a collection of many
different programs
l Operating system
» Controls the overall operation of the computer
» Communicates with the user
» Determines what the user wants
» Activates system programs, applications packages, or user
programs to carry out user requests
9
Types of System Software
10
Types of System Software
(continued)
l User interface
» Graphical user interface (GUI) provides graphical control of
the capabilities and services of the computer
l Language services
» Assemblers, compilers, and interpreters
» Allow you to write programs in a high-level, user-oriented
language, and then execute them
l Memory managers
» Allocate and retrieve memory space
11
Types of System Software
(continued)
l Information managers
» Handle the organization, storage, and retrieval of information
on mass storage devices
l I/O systems
» Allow the use of different types of input and output devices
l Scheduler
» Keeps a list of programs ready to run and selects the one
that will execute next
l Utilities
» Collections of library routines that provide services either to
user or other system routines 12
Machine Language
l Machine language
» Uses binary
» Allows only numeric memory addresses
» Difficult to change
» Difficult to create data
13
Assembly Language (continued)
l Assembly languages
» Designed to overcome shortcomings of machine languages
» Create a more productive, user-oriented environment
» Earlier termed second-generation languages
» Now viewed as low-level programming languages
14
Assembly Language (continued)
l Source program
» An assembly language program
l Object program
» A machine language program
l Assembler
» Translates a source program into a corresponding object
program
15
Assembly Language (continued)
The Translation/Loading/Execution Process
16
Assembly Language (continued)
l Advantages of writing in assembly language
rather than machine language
» Use of symbolic operation codes rather than numeric
(binary) ones
» Use of symbolic memory addresses rather than numeric
(binary) ones
» Pseudo-operations that provide useful user-oriented services
such as data generation
17
Assembly Language (continued)
Structure of a Typical Assembly Language Program
18
Examples of Assembly Language
Code (continued)
l Assembly language translation
LOAD B --Put the value B into register R.
ADD C --R now holds the sum (B + C).
SUBTRACT SEVEN --R now holds the expression (B + C - 7).
STORE A --Store the result into A.
: --These data should be placed after the
HALT.
A: .DATA 0
B: .DATA 0
C: .DATA 0
SEVEN: .DATA 7 --The constant 7.
19
Program example
l Problem
» Read in a sequence of non-negative numbers, one number at a
time, and compute a running sum
» When you encounter a negative number, print out the sum of the
non-negative values and stop
20
Program example
Algorithm to Compute the Sum of Numbers
21
Assembly Language Program to Compute the Sum of Nonnegative
Numbers
22
Translation and Loading
l Before a source program can be run, an
assembler and a loader must be invoked
l Assembler
» Translates a symbolic assembly language program into
machine language
l Loader
» Reads instructions from the object file and stores them into
memory for execution
23
Translation and Loading (continued)
l Assembler tasks
» Convert symbolic op codes to binary
» Convert symbolic addresses to binary
» Perform assembler services requested by the pseudo-ops
» Put translated instructions into a file for future use
24
System Security And Protection
l The operating system must prevent
» Non-authorized people from using the computer
– User names and passwords
» Legitimate users from accessing data or programs they are
not authorized to access
– Authorization lists
25
Efficient Allocation Of Resources
l The operating system ensures that
» Multiple tasks of the computer can be underway at one time
» Processor is constantly busy
– Keeps a queue of programs that are ready to run
– Whenever processor is idle, picks a job from the
queue and assigns it to the processor
26
The Safe Use Of Resources
l Deadlock
» Two processes are each holding a resource the other needs
» Neither process will ever progress
l The operating system must handle deadlocks
» Deadlock prevention
» Deadlock recovery
27
Historical Overview of Operating
Systems Development
l First generation of system software (roughly
1945-1955)
» No operating systems
» Assemblers and loaders were almost the only system software
provided
28
Historical Overview of Operating
Systems Development (continued)
l Second generation of system software (1955-
1965)
» Batch operating systems
» Ran collections of input programs one after the other
» Included a command language
29
Operation of a Batch Computer System
30
Historical Overview of Operating
Systems Development (continued)
l Third-generation operating systems (1965-1985)
» Multiprogrammed operating systems
» Permitted multiple user programs to run at once
31
Historical Overview of Operating
Systems Development (continued)
l Fourth-generation operating systems (1985-
present)
» Network operating systems
» Virtual environment treats resources physically residing on the
computer in the same way as resources available through the
computer’s network
32
The Future
l Operating systems will continue to evolve
l Possible characteristics of fifth-generation
systems
» Multimedia user interfaces
» Parallel processing systems
» Completely distributed computing environments
33
Some of the Major Advances in Operating Systems Development
34