Download Module 3: Operating

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

MTS system architecture wikipedia , lookup

Berkeley Software Distribution wikipedia , lookup

Mobile operating system wikipedia , lookup

Library (computing) wikipedia , lookup

Acorn MOS wikipedia , lookup

OS 2200 wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

DNIX wikipedia , lookup

RSTS/E wikipedia , lookup

Burroughs MCP wikipedia , lookup

Security-focused operating system wikipedia , lookup

Copland (operating system) wikipedia , lookup

Process management (computing) wikipedia , lookup

Unix security wikipedia , lookup

Distributed operating system wikipedia , lookup

ICL VME wikipedia , lookup

Spring (operating system) wikipedia , lookup

VS/9 wikipedia , lookup

Paging wikipedia , lookup

CP/M wikipedia , lookup

Transcript
Chapter 3: Operating-System Structures
9/15/03
 System Components
 Operating System Services
 System Calls
 System Programs
 System Structure
 Virtual Machines
 System Design and Implementation
 System Generation
NOTE: Instructor annotations in BLUE
Operating System Concepts
3.1
Silberschatz, Galvin and Gagne 2002
Common System Components
Key functions of an operating system
 Process Management
 Main Memory Management
 File Management
 I/O System Management
 Secondary Storage Management (disk)
 Networking
 Protection System
 Command-Interpreter System
Operating System Concepts
3.2
Silberschatz, Galvin and Gagne 2002
Process Management
 A process is a program in some “state” of execution. A process
needs certain resources, including CPU time, memory, files, and I/O
devices, to accomplish its task.
 A process is a unit of work in a system - see discussion on
threads later.
 The operating system is responsible for the following activities in
connection with process management.
 Process creation and deletion.
 UNIX: processes should have the ability to dynamically (in real
time) spawn off or create other processes
 process suspension (process is in I/O wait queue, or “swapped” out
to disk, …) and resumption (move to ready queue or execution) –
manage the state of the process.
 Provision of mechanisms for:
 process synchronization - concurrent processing is supported
thus the need for synchronization of processes or threads.
 process communication
 Deadlock handling
Operating System Concepts
3.3
Silberschatz, Galvin and Gagne 2002
Main-Memory Management
 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.
 Main memory is a volatile storage device. It loses its contents in
the case of system failure.
 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





Operating System Concepts
by whom.
Decide which processes to load when memory space becomes
available - long term or medium term scheduler.
Mapping addresses in a process to absolute memory
addresses - at load time or run time.
Allocate and deallocate memory space as needed.
Memory partitioning, allocation, paging (VM), address
translation, defrag, …
Memory protection
3.4
Silberschatz, Galvin and Gagne 2002
File Management
 The OS abstracts the data stored on a physical device to a
logical unit: The File
 A file is a collection of related information defined by its creator.
Commonly, files represent programs (both source and object
forms) and data - identifiable by name and location.
 The operating system is responsible for the following activities in
connections with file management:
 File creation and deletion - system calls or commands.
 Directory creation and deletion - system calls or commands.
 Support of primitives for manipulating files and directories in an
efficient manner - system calls or commands.
 Mapping files onto secondary storage.
 File backup on stable (nonvolatile) storage media.
 EX: File Allocation Table (FAT) for Windows/PC systems
Operating System Concepts
3.5
Silberschatz, Galvin and Gagne 2002
I/O System Management
 Hide the peculiarities of a specific HW device from
the user - device drivers
 The I/O system consists of:
 A buffer-caching system
 A general device-driver interface – part of OS
 Drivers for specific hardware devices – OS must provide for
all devices.
 Provide system call API for I/O - I/O is a privileged
operation
Operating System Concepts
3.6
Silberschatz, Galvin and Gagne 2002
Secondary-Storage Management
 Since main memory (primary storage) is volatile and too small to
accommodate all data and programs permanently, the computer
system must provide secondary storage (disk) to back up main
memory – basis for virtual memory.
 Most modern computer systems use disks as the principle online 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 – minimize seeks (arm movement … very slow
operation)
 Disk as the media for mapping virtual memory space
 Disk caching for performance
 Disk utilities: defrag, recovery of lost clusters, etc.
 Accessing secondary storage is very frequent, thus disk
performance can be a performance bottleneck for the entire
system
 Minimize head seeks (cylinder transitions)
Operating System Concepts
3.7
Silberschatz, Galvin and Gagne 2002
Networking (Distributed Systems)
 Low level support for pure connectivity - message passing,







FTP, file sharing, …
Higher level functional support: clustering, parallel
processing, …
A distributed system is a collection heterogeneous processors
that do not share memory or a clock. Each processor has its
own local memory. Connected by a network.
The processors in the system are connected through a
communication network.
Communication takes place using a protocol.
A distributed system provides user access to various system
resources.
Cooperative vs independent processing.
Access to a shared resource allows:
 Computation speed-up
 Increased data availability
 Enhanced reliability
Operating System Concepts
3.8
Silberschatz, Galvin and Gagne 2002
Protection System
 Keep processes from interfering with each other
 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.
 Hardware assists in screening addresses for illegal
references.
Operating System Concepts
3.9
Silberschatz, Galvin and Gagne 2002
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
 Commands may have counterparts for use in
programming
 Ascii command line vs. graphic interface, Windows
explorer, “add-ins” like Norton Utilities
Operating System Concepts
3.10
Silberschatz, Galvin and Gagne 2002
Command-Interpreter System (Cont.)
 The program that reads and interprets control statements
is called variously:
 command-line interpreter (Control card interpreter in the “old
batch days”)
 shell (in UNIX)
 Command.com for external commands in DOS
Its function is to get and execute the next command
statement.
 Example: DOS window, UNIX command line, Windows
“run” window
Operating System Concepts
3.11
Silberschatz, Galvin and Gagne 2002
Operating System Services
 OS as a service provider via system calls & commands






(typically for the programmer).
Program execution – system capability to load a program into
memory and to run it - address mapping and translation a
key issue.
I/O operations – since user programs cannot execute I/O
operations directly, the operating system must provide some
means to perform I/O - system calls and API.
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 – ex:parity errors, arithmetic “errors”, out of
memory, out of disk space, program not found, …
Memory management
Operating System Concepts
3.12
Silberschatz, Galvin and Gagne 2002
Additional Operating System Functions
Additional functions exist not for helping the user, but rather
for ensuring efficient system operations.
•
•
•
Operating System Concepts
Resource allocation – allocating resources to multiple users
or multiple jobs running at the same time – avoiding
Deadlock.
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, ex: firewalls, passwords, file permissions,
etc.
3.13
Silberschatz, Galvin and Gagne 2002
System Calls
 System calls provide the interface between a running program
and the operating system– like invoking a command from
inside a program.
 Generally available as assembly-language instructions.
 Languages defined to replace assembly language for systems
programming allow system calls to be made directly (e.g., C, C++) C language: open, close, read, write, …
 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 table in memory, and the table address is
passed as a parameter in a register – if parms complicated.
 Push (store) the parameters onto the stack by the program, and
pop off the stack by operating system – usually in assembly
language.
Operating System Concepts
3.14
Silberschatz, Galvin and Gagne 2002
Passing of Parameters As A Table
Operating System Concepts
3.15
Silberschatz, Galvin and Gagne 2002
Types of System Calls
 Process control
 File management
 Device management
 Information maintenance
 Communications
See Fig. 3.2, page 66 for details
Operating System Concepts
3.16
Silberschatz, Galvin and Gagne 2002
MS-DOS Execution
Running a Program
At System Start-up
Command.com gets overlaid by the process invoked on the command
and is reloaded when this process is exited - a kick-back to days when
memory was expensive
Operating System Concepts
3.17
Silberschatz, Galvin and Gagne 2002
UNIX Running Multiple Programs
Operating System Concepts
3.18
Silberschatz, Galvin and Gagne 2002
Communication Models
 Communication may take place using either message
passing or shared memory.
Msg Passing
Setup, send, rcv model, msg
packets pass thru OS and
unrecoverable to sender
Operating System Concepts
Shared Memory
OS waives memory protection,
communication is direct - with need
for synch. - like a bulletin board.
3.19
Silberschatz, Galvin and Gagne 2002
System Programs
 System Programs using system calls to provide
convenient access to system services
… system calls vs. application programs
 System programs provide a convenient environment for
program development and execution. The can be divided
into:







File manipulation
Status information
File modification
Programming language support
Program loading and execution
Communications– ex: msg passing
Application programs– could use system calls, example
concurrent programs using shared memory and
semaphores.
 Most users’ view of the operation system is defined by system
programs, not the actual system calls.
Operating System Concepts
3.20
Silberschatz, Galvin and Gagne 2002
Rationale for OS System Structure Concern
(from the “School of Hard Knocks” at IBM)
 The design process itself requires a highly structured,
modularized (even object oriented) approach
 Need the ability to allow hundreds of people to work on the
system at one time in an orderly way
 System must be testable and verifiable
 Need the ability to maintain the system:
 Fix bugs
 Add new features
 Tune/customize the system
 Need to get the system out on time with “no bugs” …
remember Windows 95!
 System must be bullet-proof
 Layered/modularized approach would support the above
requirements.
Operating System Concepts
3.21
Silberschatz, Galvin and Gagne 2002
MS-DOS System Structure
 MS-DOS – written to provide the most functionality in the
least space
 not divided into modules
 Although MS-DOS has some structure, its interfaces and
levels of functionality are not well separated
Operating System Concepts
3.22
Silberschatz, Galvin and Gagne 2002
MS-DOS Layer Structure
Operating System Concepts
3.23
Silberschatz, Galvin and Gagne 2002
UNIX System Structure
 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.
Operating System Concepts
3.24
Silberschatz, Galvin and Gagne 2002
UNIX System Structure
Layered
structure
apps
System
programs
Kernel 
Operating System Concepts
3.25
Silberschatz, Galvin and Gagne 2002
Layered 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.
 With modularity, layers are selected such that each uses
functions (operations) and services of only lower-level
layers.
 Aids in maintainability, and ease and speed of
development.
 Allows reusable code.
Operating System Concepts
3.26
Silberschatz, Galvin and Gagne 2002
An Operating System Layer
Encapsulates data , uses “access methods”
API for layer M
API for layer M-1
Operating System Concepts
3.27
Silberschatz, Galvin and Gagne 2002
Microkernel System Structure
 Strip down the kernel: minimal process, memory,





management and communication facilities.
Moves as much from the kernel into “user” space.
Communication between services running in user space
takes place between user modules using message passing.
Messages go thru microkernel.
All new services to OS are added to user space and do not
require modification to kernel
Benefits:
- easier to extend a microkernel
- easier to port the operating system to new architectures
- more reliable (less code is running in kernel mode)
- more secure
Ex. Mach: Maps UNIX system calls into appropriate user
level services.
Operating System Concepts
3.28
Silberschatz, Galvin and Gagne 2002
Virtual Machines
 A virtual machine takes the layered approach to its logical
conclusion. It treats hardware and the operating system
kernel as though they were all hardware.
 A virtual machine provides an interface identical to the
underlying bare hardware.
 The operating system creates the illusion of multiple
processes, each executing on its own processor with its
own (virtual) memory.
Operating System Concepts
3.29
Silberschatz, Galvin and Gagne 2002
Virtual Machines (Cont.)
 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 - you get an “operators” console.
 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.
Operating System Concepts
3.30
Silberschatz, Galvin and Gagne 2002
System Models
Example of
Virtual
Machine:
CMS
Non-virtual Machine
Virtual Machine
Shared resources:
Mem, devices, disk, cpu, ….
Operating System Concepts
3.31
Silberschatz, Galvin and Gagne 2002
Advantages/Disadvantages of Virtual Machines
 The virtual-machine concept provides complete
protection of system resources since each virtual
machine is isolated from all other virtual machines. This
isolation, however, permits no direct sharing of resources
– shared only thru emulator.
 A virtual-machine system is a perfect vehicle for
operating-systems research and development. System
development is done on the virtual machine, instead of on
a physical machine and so does not disrupt normal
system operation.
 The virtual machine concept is difficult to implement due
to the effort required to provide an exact duplicate to the
underlying machine.
Operating System Concepts
3.32
Silberschatz, Galvin and Gagne 2002
Java Virtual Machine
 Compiled Java programs are platform-neutral
bytecodes executed by a Java Virtual Machine (JVM).
 JVM consists of
- class loader
- class verifier
- runtime interpreter
Operating System Concepts
3.33
Silberschatz, Galvin and Gagne 2002
Java Virtual Machine
Diagram taken from Silberschatz’s slides based on
“Applied Operating Systems Concepts, 1999 (“alternate
book”) … replaced original
Operating System Concepts
3.34
Silberschatz, Galvin and Gagne 2002
The Java Platform
Taken from Silberschatz’s slides based on “Applied
Operating Systems Concepts, 1999 (“alternate book”)
Operating System Concepts
3.35
Silberschatz, Galvin and Gagne 2002
Java .class File on Cross Platforms
Taken from Silberschatz’s slides based on “Applied
Operating Systems Concepts, 1999 (“alternate book”)
Java is portable , since Lava programs are isolated from the
hardware & software using “byte” code in “Java Virtual
Machine (JVM).
Operating System Concepts
3.36
Silberschatz, Galvin and Gagne 2002
Java Development Environment
Taken from Silberschatz’s slides based on “Applied
Operating Systems Concepts, 1999 (“alternate” book) …
replaced original
Operating System Concepts
3.37
Silberschatz, Galvin and Gagne 2002
System Design Goals
 User 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.
 Above two goals involve many tradeoffs and
compromises.
Operating System Concepts
3.38
Silberschatz, Galvin and Gagne 2002
Mechanisms and Policies
 Mechanisms determine how to do something, policies
decide what will be done.
 Policies involves architecture - what are the functions
to be implemented.
 Mechanisms - is the implementation of the architecture
 The separation of policy from mechanism is a very
important principle, it allows maximum flexibility if policy
decisions are to be changed later.
Operating System Concepts
3.39
Silberschatz, Galvin and Gagne 2002
System Implementation
 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.
 IBM AS/400 code was mostly of C language
 An operating system is far easier to port (move to some
other hardware) if it is written in a high-level language.
Operating System Concepts
3.40
Silberschatz, Galvin and Gagne 2002
System Generation (SYSGEN)
 Operating systems are designed to run on any of a class
of machines; the system must be configured for each
specific computer site.
 SYSGEN program obtains information concerning the
specific configuration of the hardware system - similar to
customizing Windows during installation.
 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.
Operating System Concepts
3.41
Silberschatz, Galvin and Gagne 2002