Operating system - My Webspace files

advertisement
Invitation to Computer
Science
th
5 Edition
Chapter 6
An Introduction to
System Software and
Virtual Machines
Objectives
In this chapter, you will learn about:
• System software
• Assemblers and assembly language
• Operating systems
Introduction
• Naked machine
– Hardware bereft of any helpful useroriented features
– Data as well as instructions must be
represented in binary
• To make a Von Neumann computer
usable:
– Create an interface between the user
and the hardware
System Software
• The virtual machine
– System software: collection of
computer programs that manage the
resources of a computer and facilitate
access to those resources
– Software: sequences of instructions
that solve a problem
Types of System Software
• Operating system
– Communicates with users
– Determines what they want
– Activates other system programs,
applications packages, or user
programs to carry out their request
Types of System Software
(continued)
• User interface
– Provides user with an intuitive visual
overview
• Language services (assemblers,
compilers, and interpreters)
– Allow you to write programs in a high
level
• Memory managers
– Allocate memory space for programs
and data
• Information managers
– Handle the organization, storage, and
retrieval of information on mass
storage devices
Types of System Software
(continued)
• I/O systems
– Allow you to easily and efficiently use
the input and output devices that exist
on a computer system
• Scheduler
– Keeps a list of programs ready to run
on the processor and selects the one
that will execute next
• Utilities
– Library routines that provide useful
services either to a user or to other
system routines
Assemblers and Assembly
Language
• Problems with machine language
– Uses binary
– Is difficult to change
– Is difficult to create data
Assembly Language
• Assembly language
– Low-level programming language
– Each symbolic assembly language
instruction is translated into exactly
one binary machine language
instruction
• High-level programming languages
– User oriented
– Not machine specific
– Use both natural language and
mathematical notation in their design
Assembly Language
(continued)
• Source program
– Program written in assembly language
• Object program
– Source program must be translated
into a corresponding machine
language program
• Assembler
– System software that carries out
translation
• Advantage of assembly language
– Allows use of symbolic addresses
Assembly Language
(continued)
• Advantages of symbolic labels
– Program clarity
– Maintainability
• Pseudo-op
– Invokes the service of the assembler
– Provides program construction
Examples of Assembly
Language Code
• Conditional operation
– Tests and compares values
• Algorithmic problem-solving cycle
– One of the central themes of
computer science
Translation and Loading
• Assembler
– Translates a symbolic assembly
language program into machine
language
– Tasks performed
• Convert symbolic op codes to binary
• Convert symbolic addresses to binary
• Perform the assembler services
requested by the pseudo-ops
• Put the translated instructions into a
file for future use
Translation and Loading
(continued)
• Op code table
– Alphabetized list of all legal assembly
language op codes and their binary
equivalents
• In assembly language:
– A symbol is defined when it appears
in the label field of an instruction or
data pseudo-op
• Pass
– Process of examining and processing
every assembly language instruction
in the program, one instruction at a
time
Translation and Loading
(continued)
• First pass over source code
– Assembler looks at every instruction
• Binding
– Process of associating a symbolic
name with a physical memory address
• Primary purposes of the first pass of
an assembler
– To bind all symbolic names to address
values
– To enter those bindings into the
symbol table
Translation and Loading
(continued)
• Location counter
– Variable used to determine the
address of a given instruction
• Second pass
– Assembler translates source program
into machine language
• After completion of pass 1 and pass 2
– Object file contains the translated
machine language object program
Operating Systems
• Operating system
– Waits for requests and activates other
system programs to service these
requests
• System commands
– Used to translate, load, and run
programs
Functions of an Operating
System
• The user interface
– Operating system commands usually
request access to hardware
resources, software services, or
information
– To communicate with a user, a GUI
supports visual aids and point-andclick operations
System Security and
Protection
• Operating system
– Controls access to the computer and
its resources
– Safeguards password file
– Sometimes uses encryption to
provide security
• Access control
– Use of a legal user name and
password
Efficient Allocation of
Resources
• I/O controller
– Frees the processor to do useful work
while the I/O operation is being
completed
• To ensure that a processor does not
sit idle if there is useful work to do:
– Operating system keeps a queue of
programs that are ready to run
The Safe Use of
Resources
• Operating system
– Prevents programs or users from
attempting operations that cause the
computer system to enter a “frozen”
state
• Deadlock
– Each program is waiting for a
resource to become available that will
never become free
The Safe Use of Resources
(continued)
• Deadlock prevention
– Operating system uses resource
allocation algorithms that prevent
deadlock from occurring in the first
place
• Deadlock recovery algorithms
– Detect and recover from deadlocks
Summary of OS
Responsibilities
• Major responsibilities of operating
systems
– User interface management (a
receptionist)
– Control of access to system and files
(a security guard)
– Program scheduling and activation (a
dispatcher)
– Efficient resource allocation (an
efficiency expert)
– Deadlock detection and error
detection (a traffic officer)
Historical Overview of
Operating
Systems Development
• First-generation system software
– Roughly 1945–1955
– No operating systems and very little
software support
• Second-generation system software
– Called batch operating systems
(1955–1965)
• Command language
– Commands specifying to the
operating system what operations to
perform on programs
Historical Overview of
Operating
Systems Development
(continued)
• Third-generation operating systems
– Multiprogrammed operating systems
(1965–1985)
– Many user programs are
simultaneously loaded into memory
– User operation codes: could be
included in any user program
– Privileged operation codes: use
restricted to the operating system or
other system software
Historical Overview of
Operating
Systems Development
(continued)
• Time-sharing system
– Many programs can be stored in
memory
– Allows programmer to enter system
commands, programs, and data
online
• Distributed environment
– Much of the computing was done
remotely in the office, laboratory,
classroom, and factory
• Network operating system
– Fourth-generation operating system
(1985–present)
Historical Overview of
Operating
Systems Development
(continued)
• Real-time operating system
– Manages resources of embedded
computers that are controlling ongoing
physical processes
– Guarantees that it can service
important requests within a fixed
amount of time
The Future
• Multimedia user interfaces
– Will interact with users and solicit
requests in a variety of ways
• Parallel processing operating system
– Can efficiently manage computer
systems containing tens, hundreds, or
even thousands of processors
• Distributed computing environment
– Users do not need to know the
location of a given resource within the
network
Summary
• System software
– Acts as an intermediary between the
users and the hardware
• Assembly language
– Creates a more productive, useroriented environment than machine
language
• An assembler
– Translates an assembly language
program into a machine language
program
Download