Download Chapter 3: Operating

Document related concepts

MTS system architecture wikipedia , lookup

Acorn MOS wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

Library (computing) wikipedia , lookup

Copland (operating system) wikipedia , lookup

OS 2200 wikipedia , lookup

RSTS/E wikipedia , lookup

Distributed operating system wikipedia , lookup

DNIX wikipedia , lookup

Burroughs MCP wikipedia , lookup

Spring (operating system) wikipedia , lookup

VS/9 wikipedia , lookup

Process management (computing) wikipedia , lookup

Unix security wikipedia , lookup

CP/M wikipedia , lookup

Paging wikipedia , lookup

Transcript
Chapter 3
Operating System Structure
1
Operating-System Structures
 System
Components
 Operating System Services
 System Calls
 System Programs
 System Structure
 Virtual Machines
 System Design and Implementation
 System Generation
2
Common System Components
 Process
Management
 Main Memory Management
 Secondary-Storage Management
 I/O System Management
 File Management
 Protection System
 Networking
 Command-Interpreter System
§3.1
3
Process
Management
程序管理
§3.1.1

A process is a program in execution. A
process needs certain resources, including
CPU time, memory, files, and I/O devices, to
accomplish its task.
 A program by itself is not a process; a
program is a passive entity, such as the
contents of a file stored on disk.
 A process is an active entity, with a program
counter specifying the next instruction to
execute.
4
Process Management

The execution of a process must be
sequential. At any time, at most one
instruction is executed on behalf of the
process.
 The operating system is responsible for the
following activities in connection with process
management.



Process creation and deletion.
process suspension and resumption.
Provision of mechanisms for:



process synchronization
process communication
Deadlock handling
5
Main-Memory Management
§3.1.2

Memory is a large array of words or bytes,
each with its own address. It is a repository
of quickly accessible data shared by the CPU
and I/O devices.
 The CPU reads instructions from main
memory during the instruction-fetch cycle,
and both reads and writes data from main
memory during the data-fetch cycle.
 The main memory is generally the only large
storage device that the CPU is able to
address and access directly.
6
Main-Memory Management

To improve both the utilization of the CPU
and the speed of the computer’s response to
its users, we must keep several programs in
memory.
 The operating system is responsible for the
following activities in connections with
memory management:



Keep track of which parts of memory are currently
being used and by whom.
Decide which processes to load when memory
space becomes available.
Allocate and deallocate memory space as needed.
7
File Management
§3.1.3

A file is a collection of related information
defined by its creator. Commonly, files
represent programs (both source and object
forms) and data. It may be free-form or
formatted rigidly.
 The operating system is responsible for the
following activities in connections with file
management:





File creation and deletion.
Directory creation and deletion.
Support of primitives for manipulating files and
directories.
Mapping files onto secondary storage.
File backup on stable (nonvolatile) storage media. 8
I/O System Management
§3.1.4
奇特
 The
peculiarities of I/O devices are
hidden from the bulk of the OS by the
I/O subsystem, which consists of:
A
memory-management component that
includes buffering, caching, and spooling
 A general device-driver interface
 Drivers for specific hardware devices
9
Secondary-Storage Management
§3.1.5

Since main memory (primary storage) is
volatile and too small to accommodate all
data and programs permanently, the
computer system must provide secondary
storage to back up main memory.
 Most modern computer systems use disks as
the principle on-line storage medium, for both
programs and data.
 The operating system is responsible for the
following activities in connection with disk
management:



Free space management
Storage allocation
Disk scheduling
10
Networking
§3.1.6

A distributed system is a collection of
processors that do not share memory,
peripheral devices, or a clock. Each
processor has its own local memory and
clock.
 The processors in the system are connected
through communication lines, such as highspeed buses or networks.
 The communication network design must
consider message routing and connection
strategies, and the problem of contention and
security.
11
Networking
 A distributed
system collects physically
separate, possibly heterogeneous,
system into a single coherent system,
providing user access to various system
resources.
 Access to a shared resource allows:
 Computation
speed-up
 Increased data availability
 Enhanced reliability
12
Networking

OS usually generalize network access as a
form of file access, with the details of
networking being contained in the network
interface’s device driver.
 WWW is a new access method improving
existing file-transfer protocol (FTP) and
network-file system (NFS) protocol by
removing the need for a user to log in before
she is allowed to use a remote resource.
 Using the new protocol, http, a web browser
send a request to the remote web server, and
the information (text, graphics, links) is
returned.
13
Protection System
§3.1.7
 Protection
refers to a mechanism for
controlling access by programs,
processes, or users to both system and
user resources.
 The protection mechanism must:
 distinguish
between authorized and
unauthorized usage.
 specify the controls to be imposed.
 provide a means of enforcement.
14
§3.1.8
Command-Interpreter System
 Many
commands are given to the
operating system by control
statements which deal with:
 process
creation and management
 I/O handling
 secondary-storage management
 main-memory management
 file-system access
 protection
 networking
15
Command-Interpreter System
 The
program that reads and interprets
control statements is called variously:
 control-card
interpreter
 command-line interpreter
 shell (in UNIX)
 Its
function is to get and execute the
next command statement.
 With a user-friendly shell making the
system more agreeable to some users
 Mac,
Windows and DOS, UNIX
16
Operating System Services





§3.2
Program execution – system capability to load a
program into memory and to run it.
I/O operations – since user programs cannot execute
I/O operations directly, the operating system must
provide some means to perform I/O.
File-system manipulation – program capability to read,
write, create, and delete files.
Communications – exchange of information between
processes executing either on the same computer or on
different systems tied together by a network.
Implemented via shared memory or message passing.
Error detection – ensure correct computing by
detecting errors in the CPU and memory hardware, in
I/O devices, or in user programs.
17
Additional Operating System
Functions
Additional functions exist not for helping the
user, but rather for ensuring efficient system
operations.
• Resource allocation – allocating resources to
•
•
multiple users or multiple jobs running at the same
time.
Accounting – keep track of and record which
users use how much and what kinds of computer
resources for account billing or for accumulating
usage statistics.
Protection – ensuring that all access to system
resources is controlled.
18
System
Calls
系統呼叫

§3.3
System calls provide the interface between a
running program and the operating system.
Generally available as assembly-language
instructions.
 Languages defined to replace assembly language
is an application
programming
interfacecalls
that isto be
forWin32
systems
programming
allow system
common
all Microsoft's
32-bit
Windows
made to
directly
(e.g., C,
C++,
Perl) operating systems.
include:UNIX
Windows
95, Windows
98, be
Windows
NT and
These
Example:
system
calls may
invoked
CE.
directly from a C orWindows
C++ program.
 Example: System calls are part of the Win32 API,
which is available for use by all the compilers
written for Windows.

19
System Calls
 Java
does not allow system calls to be
made directly, because a system call is
specific to an OS and results in
platform-specific code.
本土
 However, Java can call the “native”
method, written in another language
such as C or C++, to make the system
call.
20
System Calls

Three general methods are used to pass parameters
between a running program and the operating system.
 Pass parameters in registers.
 Store the parameters in a block or table in memory,
and the table address of the block is passed as a
parameter in a register. (Figure 3.1)
 Push (store) the parameters onto the stack by the
program, and pop off the stack by operating
system.

Block or stack methods are preferred
because they do not limit the number or
length of parameters being passed.
21
Passing of Parameters
– As A Table
Back
22
System Calls
 System
calls can be grouped roughly
into five major categories:
 Process
control
 File manipulation
 Device manipulation
 Information maintenance
 communications
23
Process Control
§3.3.1

A running program needs to be able to halt its
execution either normally (end) or abnormally
(abort).
 A process or job executing one program may
want to load and execute another program.
 If multiprogrammed, to create a new job or
process (create process)
 For controlling the execution, determine (get
process attribute) and reset (set
process attribute) the attributes of a job
or process, and terminate the job or process
we created (terminate process).
24
Process Control
 Having
created new jobs or processes,
we may want to wait for a certain
amount of time (wait time) for them to
finish, or wait for a specific event to
occur (wait event).
 The jobs or processes should then
signal when the event has occurred
(signal event).
25
Process Control
MS-DOS Execution
At System Start-up
Running a Program
26
Process Control – UNIX
多工

UNIX is a multitasking system. When a user
logs on to the system, the shell (command
interpreter) of the user’s choice is run.
 The shell may continue while another program
is executed.
 To start a new process, the shell executes a
fork system call. Then the selected program is
loaded into memory via an exec system call,
and the program is then executed.
 The shell can either waits for the process to
finish, or runs the process “in the background.”
27
Process Control –
UNIX Running Multiple Programs
28
Process Control – UNIX
When a process is running in the
background, it cannot receive input directly
from the keyboard, because the shell is using
this resource. I/O is therefore done through
files, or through a mouse and windows
interface.
 When the process is done, it executes an
exit system call to terminate, returning to
the invoking process a status code of 0, or a
nonzero error code.

29
File Management
§3.3.2
need to be able to create or
delete files, once created, we need to
read, write, or reposition. Finally,
need to close the file.
 For determine the values of various
attributes, two system calls, get file
attribute and set file attribute,
are required.
 First
30
Device Management
§3.3.3

A running program may need additional
resources, such as memory, tape drives,
access to files, and so on, to proceed.
 If there are multiple users, we must first
request the device. Once requested, we can
read, write, and reposition the device. After
finished with the device, we must release it.
 The similarity between I/O device and files
cause many OS, including UNIX and MSDOS, to merge the two into a combined filedevice structure.
31
Information Maintenance
§3.3.4
 For
transferring information between the
user program and the OS, such as the
current time and date.
 Other system calls may return info
about the system, such as the number
of current users, the OS version, the
amount of free memory or disk space.
32
Communication Models
§3.3.5
 Message-passing
model
 Shared-memory model
Message Passing
Shared Memory
33
Message-Passing Model

In this model, information is exchanged
through an interprocess-communication
facility provided by the operating system.
 For establishing the connection, the name of
other end must be known.
 Each computer in a network has a host name,
such as an IP name. Similarly, each process
has a process name which is translated by
get hostid and get processid to
identifier recognized by the OS.
34
Message-Passing Model

The recipient process give permission for
communication with an accept
connection call.
 System programs, daemons, receiving the
connections by executing a wait for
connection call and are awakened when a
connection is made.
 The source of the comm., the client, and the
receiving daemon, known as a server, then
exchange messages by read message and
write message system calls. The close
connection call terminates the
communication.
35
Shared-Memory Model
this model, processes use map
memory system calls to gain access to
regions of memory owned by other
processes.
 It requires that they agree to remove the
restriction of preventing one process
from accessing another process’
memory.
 In
36
Communication Models
 Message
passing is useful when
smaller numbers of data need to be
exchanged, because no conflicts need
to be avoided.
 Shared memory allows maximum speed
and convenience of communication, as
it can be done at memory speeds when
within a computer. Problem exist,
however, in the areas of protection and
synchronization.
37
System Programs 系統程式

System programs provide a convenient
environment for program development and
execution. They can be divided into:








§3.4
File manipulation
Status information
File modification
Programming language support
Program loading and execution
Communications
Application programs
See Fig. 1-1
Most users’ view of the operation system is
defined by system programs, not the actual
system calls.
38
Fig. 1-1System Components
Back
39
System Utilities
系統設施
 Most
OS supplies programs, known as
system utilities or application
programs, useful in solving common
problems or in performing common
operations.
指令解譯器
 Command Interpreter is an important
system program for an OS. Its main
function is to get and execute the next
user-specified command.
40
Implementing Commands

There are two ways to implement a command
issued by the user –



contains the code in command interpreter itself
implement by system programs, as in UNIX.
The command interpreter merely uses the command
to identify a file to be loaded into memory and
execute.
Example: rm G
In this way, new commands can be added to the
system easily.
Problems of the second approach? THINK
41
System Structure – Simple
Approach
§3.5
– written to provide the most
functionality in the least space
 MS-DOS
 not
divided into modules
 Although MS-DOS has some structure, its
interfaces and levels of functionality are not
well
separated
MS-DOS
was limited by the hardware of its era:
Intel
8088 provides
no dual mode
and no

Application
programs
are able
to hardware
access
protection,
hasroutines
no choice and
but tomake
leave the
base
the basicitI/O
system
vulnerable hardware
to errantaccessible.
programs.
易受傷的
42
MS-DOS Layer Structure
43
System Structure – Simple
Approach

§3.5.1
UNIX – limited by hardware functionality, the
original UNIX operating system had limited
structuring. The UNIX OS consists of two
separable parts.


Systems programs
The kernel


Consists of everything below the system-call interface
and above the physical hardware
Provides the file system, CPU scheduling, memory
management, and other operating-system functions; a
large number of functions for one level.
44
UNIX System Structure
OS
retain greater
over the
Enormous
amountcontrol
of functionality
computer and
the applications
that
combined
into over
one level.
New version
of
using
theare
computer.
Implementors
UNIX
designed
to use moreare
free to make
changes
to the
advanced
hardware
and the
OSinner
may be
working
the system.
broken
intoofpieces
that areInformation
smaller and
hiding alsomore
leaves
programmers free to
appropriate.
implement the low level routines.
45
System Structure – Layered §3.5.2
分層法
Approach

The operating system is divided into a
number of layers (levels), each built on top of
lower layers. The bottom layer (layer 0), is
the hardware; the highest (layer N) is the user
interface.
 Main Adv: modularity. Layers are selected
such that each uses functions (operations)
and services of only lower-level layers.
 This approach simplifies debugging and
system verification. A layer can be debugged
without any concern for the lower layer, which
is assumed correct already.
46
An Operating System Layer
47
Problems of Layered Approach
1.
2.

Careful planning is needed in order to
give each layer appropriate definition.
Tend to be less efficient.
Recently, fewer layers with more
functionality are being designed,
providing most of the advantages of
modularized code while avoiding the
difficult problems of layer definition
and interaction.
48
Examples on layered approach
– descendant of MS-DOS that
adds multitasking and dual-mode
operation with more layered fashion.
 OS/2 advantages:
 OS/2
 Direct
user access to low-level facilities is
not allowed.
 Providing more control over the hardware
and more knowledge of which resources
each user program is using.
 ….
49
OS/2 Layer Structure
50
Examples on layered approach
NT – The first release has low
performance compared to Windows 95
for highly layer-oriented organization.
 Windows NT 4.0 partially redressed the
performance problem by moving layers
from user space to kernel space and
more closely integrating them.
 Windows
51
Microkernels
微核心

§3.5.3
Implemented as
system and userMachlevel
early
in
program
Adopted by operating system
1980s.
 Nonessential components are removed to
achieve a smaller kernel.
 Main function: provide a communication
facility between the client program and the
various services.
 Benefits:



Extending the OS is easier.
Easier to port from one hardware design to
another.
More security and reliability.
52
Microkernels
 Example:
UNIX – provides a UNIX interface to
the user, but is implemented with a Mach
kernel.
Layer
+ Microkernel
 Apple MacOS X Server
– based
on the
Mach kernel.
 Windows NT – a hybrid structure. It is
designed to run various applications,
including Win32 (native Windows
applications), OS/2, and POSIX. It provides
a server that runs in user space for each
application type.
 Digital
53
Windows NT Client-Server
Structure
54
Virtual Machines
虛擬機器
§3.6
 A virtual
machine takes the layered
approach to its logical conclusion. OS
creates the illusion that a process has
its own processor with its own (virtual)
memory….a (virtual) copy of the
underlying computer.
 The VM operating system for IBM
systems is the best example of the
virtual-machine concept.
55
Virtual Machines
 The
resources of the physical computer
are shared to create the virtual
machines.
 CPU
scheduling can create the
appearance that users have their own
processor.
 Spooling and a file system can provide
virtual card readers and virtual line printers.
 A normal user time-sharing terminal serves
as the virtual machine operator’s console.
56
System Models
Non-virtual Machine
Virtual Machine
57
Benefits of Virtual Machines
§3.6.2

The virtual-machine concept provides
complete protection of system resources
since each virtual machine is isolated from all
other virtual machines.
 A virtual-machine system is a perfect vehicle
for operating-systems research and
development. System research and
development is done on the virtual machine,
instead of on a physical machine and, so,
does not disrupt normal system operation.
58
Virtual Machines – examples

Virtual Intel machine on top of Sun or DEC
computer in order to run MS-DOS programs.
When a MS-DOS program is running in Sun
or DEC computer, its Intel instructions are
translated into the native instruction set.
 PowerPC-based Apple Macintosh includes a
Motorola 68000 virtual machine to allow
execution of binary codes that were written
for the older 68000-based Macintosh.
 Key feature of Java – it runs on a virtual
machine.
59
Java
§3.6.3
 Java
is a technology introduced by Sun
Microsystems in late 1995.
 Three essential components:
 Programming-language
specification
 Application-programming interface (API)
 Virtual-machine specification
60
Java Programming Language

Object-oriented


Architecture-neutral



Java compiler produces bytecode output (.class)
file that will run on any implementation of the Java
virtual machine.
Applets programs with limited resource access run
within a web browser.
Distributed


Objects are specified with the class construct; a
Java program consists of one or more classes.
Provide high level support for networking and
distributed objects.
Multithreaded

A Java program may have several different threads,
or flows, of control.
61
Java API
The API for java consists of:
 Base API
provides basic language support for graphics, I/O,
utilities, and networking. Example: java.lang,
java.awt, java.io, and java.net.
 Standard
extension API
includes support for enterprise, commerce, security,
and media.
 As
language evolves, many packages
that were once part of the standard
extension API are becoming part of the
base API
62
Java Virtual Machine (JVM)
 JVM
is a specification for an abstract
computer.
 JVM consists of a class loader and a
Java interpreter that executes the
bytecodes.
 The class loader loads .class files from
both the Java program and the Java API
for execution by the Java interpreter.
63
Java Virtual Machine
64
Java Virtual Machine
65
Java Virtual Machine
 Java
interpreter may be a software
interpreter that interprets the bytecodes
one at a time,
 or it may be a just-in-time (JIT) compiler
that turns the bytecodes into native
machine language for the host computer.
 The interpreter can also be implemented
in a hardware chip that executes Java
bytecodes natively.
66
Java Virtual Machine
 The
Java platform consists of the JVM
and Java API.
 The Java platform may be implemented
on top of a host operating system, such
as UNIX or Windows, as part of a web
browser; or in hardware.
67
System Design Goals
§3.7.1
goals – operating system should
be convenient to use, easy to learn,
reliable, safe, and fast.
 System goals – operating system
should be easy to design, implement,
and maintain, as well as flexible, reliable,
error-free, and efficient.
 User
68
Mechanisms and Policies
§3.7.2

Mechanisms determine how to do something,
policies decide what will be done.

Ex: Timer construct

The separation of policy from mechanism is a
very important principle, it allows maximum
flexibility if policy decisions are to be changed
later.

Ex: I/O Intensive programs have priority over CPU
intensive programs?
Ex: Microkernel-based OS. It’s basic building blocks
are almost policy free.

69
System Implementation
§3.7.3
 Traditionally
written in assembly
language, operating systems can now
be written in higher-level languages.
 Code written in a high-level language:
 can
be written faster.
 is more compact.
 is easier to understand and debug.
 An
operating system is far easier to port
(move to some other hardware) if it is
written in a high-level language.
70
Example
 MS-DOS
was written in Intel 8088
assembly language. Consequently, it is
available on only the Intel family of
CPUs. The UNIX written in C is
available on a number of different CPUs,
including Intel 80X86, Motorola 680X0,
SPARC, and MIPS RX000.
71
System Implementation

Major complaint about higher-level language
are reduced speed and increased storage
requirements. (However….)
 Modern processors can handle complex
dependencies that can overwhelm the limited
ability of the assembly-language programmer
to keep track of details.
 Major performance improvements in
operating systems are more likely to be the
result of better data structures and algorithms
than of excellent assembly-language code.
72
System Generation (SYSGEN)
§3.8

Operating systems are designed to run on
any of a class of machines; the system must
be configured or generated for each specific
computer site, a process known as system
generation (SYSGEN).
 SYSGEN program obtains information
concerning the specific configuration of the
hardware system, including




What CPU is to be used?
How much memory is available?
What devices are available?
What OS options are desired?
73
System Generation
 Hardware
configuration information can
be used in several ways:
 Used
to modify a copy of the source code
of the OS and have it re-compiled.
 Used to create tables and modules from a
precompiled library. The needed modules
are linked together to form the generated
System generation is faster but the
OS.
resulting
system may
be overly
general.
 Construct
a system
that
is completely
table
driven. All the code is always part of the
system, and selection occurs at execution
time.
74
System Generation
 Major
differences among above? THINK
 Booting – starting a computer by
loading the kernel.
 Bootstrap program – code stored in
ROM that is able to locate the kernel,
load it into memory, and start its
execution.
75