Download Chapter 6 Slides

Document related concepts

Computer cluster wikipedia , lookup

Assembly language wikipedia , lookup

Transcript
Invitation to Computer Science
6th 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
Invitation to Computer Science, 6th Edition
2
Introduction
• Naked machine
– Hardware bereft of any helpful user-oriented 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
Invitation to Computer Science, 6th Edition
3
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
Invitation to Computer Science, 6th Edition
4
Figure 6.1 The Role of System Software
Invitation to Computer Science, 6th Edition
5
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
Invitation to Computer Science, 6th Edition
6
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
Invitation to Computer Science, 6th Edition
7
Figure 6.2 Types of System Software
Invitation to Computer Science, 6th Edition
8
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
Invitation to Computer Science, 6th Edition
9
Assemblers and Assembly Language
• Problems with machine language
–
–
–
–
Uses binary
Allows only numeric memory addresses
Is difficult to change
Is difficult to create data
Invitation to Computer Science, 6th Edition
10
Assemblers and Assembly Language
• Assembly languages
– Designed to overcome shortcomings of machine
languages
– Each symbolic assembly language instruction is
translated into exactly one binary machine language
instruction
– Create a more productive, user-oriented
environment
– Earlier termed second-generation languages
– Now viewed as low-level programming languages
Invitation to Computer Science, 6th Edition
11
Assembly Language
• High-level programming languages
– User oriented
– Not machine specific
– Use both natural language and mathematical
notation in their design
Invitation to Computer Science, 6th Edition
12
Figure 6.3 The Continuum of Programming Languages
Invitation to Computer Science, 6th Edition
13
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
Invitation to Computer Science, 6th Edition
14
Figure 6.4 The Translation/
Loading/Execution Process
Invitation to Computer Science, 6th Edition
15
Figure 6.5 Typical Assembly Language Instruction Set
Invitation to Computer Science, 6th Edition
16
Assembly Language
(continued)
• Advantages of symbolic labels
– 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
• Pseudo-op
– Invokes the service of the assembler
– Provides program construction
Invitation to Computer Science, 6th Edition
17
Figure 6.6 Structure of a Typical Assembly Language Program
Invitation to Computer Science, 6th Edition
18
Typical Instruction of Assembly
Language
• (Label): (op code mnemonic) (address field) (comments)
• Label: permanent identification for this instruction of data, like an
address of command.
• op code mnemonic: symbolic command name
• Address field: symbolic address of the data
• Comments: for reading
Invitation to Computer Science, 6th Edition
19
How to declare data in assembly
language?
• Example: (pseudo-op)
FIVE:
.DATA
Address
53
content
0000000000000101
NEGSEVEN:
Address
54
.DATA
-7
content
1000000000000111
Invitation to Computer Science, 6th Edition
5
20
How to use data?
• LOAD FIVE
• ADD NEGSEVEN
Invitation to Computer Science, 6th Edition
21
Examples of Assembly Language
Code
• Arithmetic expression
A=B+C–7
(Assume that B and C have already been
assigned values)
Invitation to Computer Science, 6th Edition
22
Examples of Assembly Language
Code
• 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
Invitation to Computer Science, 6th Edition
--The constant 7.
23
Examples of Assembly Language
Code
• Conditional operation
– Tests and compares value
• Algorithmic problem-solving cycle
– One of the central themes of computer science
Invitation to Computer Science, 6th Edition
24
Examples of Assembly Language
Code
• 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
Invitation to Computer Science, 6th Edition
25
Figure 6.7 Algorithm to Compute the Sum of Numbers
Invitation to Computer Science, 6th Edition
26
Figure 6.8 Assembly Language Program to Compute the Sum of
Nonnegative Numbers
Invitation to Computer Science, 6th Edition
27
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
Invitation to Computer Science, 6th Edition
28
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
Invitation to Computer Science, 6th Edition
29
Figure 6.9 Structure of the Op Code Table
Invitation to Computer Science, 6th Edition
30
Figure 6.10 Generation of the Symbol Table
Invitation to Computer Science, 6th Edition
31
Translation and Loading (continued)
• Pass
– Process of examining and processing every
assembly language instruction in the program, one
instruction at a time
• Assemblers make two pass of the source code to
generate object program.
– First pass: Handle memory address and bind
physical address
– Second pass: Handle data generation and translate
source program into object program.
Invitation to Computer Science, 6th Edition
32
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
Invitation to Computer Science, 6th Edition
33
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
Invitation to Computer Science, 6th Edition
34
Figure 6.11 Outline of
Pass 1 of the Assembler
Invitation to Computer Science, 6th Edition
35
Figure 6.12 Outline of Pass 2
of the Assembler
Invitation to Computer Science, 6th Edition
36
Figure 6.13 Example of an Object Program
Invitation to Computer Science, 6th Edition
37
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
Invitation to Computer Science, 6th Edition
38
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-and-click operations
Invitation to Computer Science, 6th Edition
39
Figure 6.14 Some Typical Operating System
Commands
Invitation to Computer Science, 6th Edition
40
Figure 6.15 User Interface
Responsibility of the Operating
System
Invitation to Computer Science, 6th Edition
41
Figure 6.16 Example of a Graphical User Interface
Invitation to Computer Science, 6th Edition
42
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
Invitation to Computer Science, 6th Edition
43
Figure 6.17 Authorization List for the File GRADES
Invitation to Computer Science, 6th Edition
44
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
Invitation to Computer Science, 6th Edition
45
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
Invitation to Computer Science, 6th Edition
46
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
Invitation to Computer Science, 6th Edition
47
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)
Invitation to Computer Science, 6th Edition
48
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
Invitation to Computer Science, 6th Edition
49
Figure 6.18 Operation of a Batch Computer System
Invitation to Computer Science, 6th Edition
50
Figure 6.19 Structure of a Typical Batch Job
Invitation to Computer Science, 6th Edition
51
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
Invitation to Computer Science, 6th Edition
52
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)
Invitation to Computer Science, 6th Edition
53
Figure 6.20 Configuration of a Time-Shared Computing
System
Invitation to Computer Science, 6th Edition
54
Figure 6.21 A Local Area Network
Invitation to Computer Science, 6th Edition
55
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
Invitation to Computer Science, 6th Edition
56
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
Invitation to Computer Science, 6th Edition
57
Figure 6.23 Structure of a Distributed System
Invitation to Computer Science, 6th Edition
58
Figure 6.24 Some of the Major Advances in Operating Systems
Development
Invitation to Computer Science, 6th Edition
59
Summary
• System software
– Acts as an intermediary between the users and the
hardware
• Assembly language
– Creates a more productive, user-oriented
environment than machine language
• An assembler
– Translates an assembly language program into a
machine language program
Invitation to Computer Science, 6th Edition
60