36
Silberschatz, Galvin and Gagne 2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the many recent innovations in operations-systems research to produce a fully functional, technically advanced system. Unlike UNIX, which was developed without regard for multiprocessing, Mach incorporates multiprocessing support throughout. Mach is designed to run on computer systems ranging from one to thousands of processors. A key goal of Mach is to be a distributed system capable of functioning on heterogeneous hardware.

Silberschatz, Galvin and Gagne 2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Embed Size (px)

Citation preview

Page 1: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.1Operating System Concepts

Appendix B The Mach System

The Mach operating system is designed to incorporate the many recent innovations in operations-systems research to produce a fully functional, technically advanced system.

Unlike UNIX, which was developed without regard for multiprocessing, Mach incorporates multiprocessing support throughout.

Mach is designed to run on computer systems ranging from one to thousands of processors.

A key goal of Mach is to be a distributed system capable of functioning on heterogeneous hardware.

Page 2: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.2Operating System Concepts

History

Mach traces its ancestry to the Accent operating system developed at Carnegie Mellon University (CMU).

The system was limited by its inability to execute UNIX applications and its strong ties to a single hardware architecture that made it difficult to port.

Mach’s communication system and philosophy are derived from Accent, but many other significant portions of the system (for example, the virtual memory system, task and thread management) were developed from scratch.

Page 3: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.3Operating System Concepts

History II

Mach’s development followed an evolutionary path from BSD UNIX system.

Mach code was initially developed inside the 4.2BSD kernel, with BSD kernel components being replaced by Mach components as the Mach components were completed.

The BSD components were updated to 4.3BSD when that became available.

1986, running on the DEC VAX computer family. Shortly, IBM RT/PC and SUN 3 workstations, following by

Encore Multimax and Sequent Balance.

Page 4: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.4Operating System Concepts

Mach 3 Structure

4.3BSD

OSF/1

HPUX

OS/2

DatabaseSystem

Tasks and threads

IPC

Virtual memory

Scheduling

Mach

Page 5: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.5Operating System Concepts

Mach 3

Mach 3 moved much of BSD’s code outside of the kernel, leaving a much smaller microkernel.

System implements only basic Mach features in the kernel.

All UNIX-specific code has been evicted from the kernel to run in user-mode servers.

Excluding UNIX-specific code from the kernel allows replacement of BSD with another operating system or the simultaneous execution of multiple operating-system interfaces on top of the microkernel. (BSD, DOS, Macintosh operating system, OSF/1.

Page 6: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.6Operating System Concepts

Open Software Foundation

OSF announced in 1989 that it would use Mach 2.5 as the basis for its new operating system, OSF/1.

Mach competes with UNIX System V Release 4 as the operating system of choice among UNIX International (UI) members.

Mach 2.5 is also the basis for the operating system on the NeXT workstation, the brainchild of Steve Jobs, of Apple Computer fame.

Page 7: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.7Operating System Concepts

Design Principles

Support for diverse architectures include multiprocessors with varying degrees of shared memory access.

Ability to function with varying intercomputer network speeds.

Simplified kernel structure Distributed operation, providing network transparency. An object-oriented organization, both internally and

externally. Integrated memory management and IPCs. Heterogeneous system support

Page 8: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.8Operating System Concepts

Influenced by BSD

A simple programmer interface with a good set of primitives and a consistent set of interfaces to system facilities.

Easy portability to wide class of uniprocessors. An extensive library of utilities and applications. The ability to combine utilities easily via pipes.

Page 9: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.9Operating System Concepts

Drawbacks

Kernel has become the repository of many redundant features.

Original design goals made it difficult to provide support for multiprocessors, distributed systems, and shared libraries.

Too many fundamental abstractions, providing too many similar, competing means to accomplish the same task.

Page 10: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.10Operating System Concepts

System Components

Reduced operating system functionality to a small set of basic abstractions, out of which all other functionality can be derived.

Place as little within the kernel, but make what is there powerful enough that all other features can be implemented at the user level.

Have a simple, extensible kernel, concentrating on communication facilities.

Page 11: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.11Operating System Concepts

Primitive Abstractions

task thread port port set message memory object

Page 12: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.12Operating System Concepts

Task

Execution environment that provides the basic unit of resource allocation. Consists of a virtual address space and protected access to system resources via ports.

A task may contain one or more threads.

Page 13: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.13Operating System Concepts

Threads

Basic unit of execution. Must run in the context of a task (which provides the

address space). All threads within a task share the tasks’ resources

(ports, memory, etc). There is no notion of “process”. A traditional process

would be implemented as a task with a single thread of control.

Page 14: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.14Operating System Concepts

Port

The basic unit of execution in Mach and is implemented as a kernel-protected communications channel.

Communications is accomplished by sending messages to ports.

Messages are queued at the destination port if no thread is immediately ready to receive them.

Ports are protected by kernel-managed capabilities, or port rights.

A task must have a port right to send a message to a port.

Page 15: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.15Operating System Concepts

Port Set

A group of ports sharing a common message queue. A thread can receive messages for a port set, and

service multiple ports. Each received message the identifies the individual port

(within the set) that it was received from. The receiver can use this to identify the object referred to by the message.

Page 16: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.16Operating System Concepts

Message

Basic method of communication between threads in Mach.

It is a typed collection of data objects; for each object, it may contain the actual data or a pointer to out-of-line data.

Port rights are passed in messages. Passing port rights in messages is the only way to move

them among tasks. Passing a port right in shared memory does not work

because the Mach kernel will not permit the new task to use a right obtained in this manner.

Page 17: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.17Operating System Concepts

Memory Object

Source of memory Task may access it by mapping portions (or the entire

object) into their address spaces. External memory manager

file managed by a file server mapped buffer implementation of a UNIX pipe

Page 18: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.18Operating System Concepts

Mach’s Basic Abstractions

Task

Memory object

Programcounter

Text region

Threads

Secondary Storage

Port set

port

message

Page 19: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.19Operating System Concepts

Unusual Feature

A key to the system’s efficiency is the blending of memory and IPC features.

This feature not only allows Mach to be used for distributed and parallel programming, but also helps in the implementation of the kernel itself.

IPC tend to involve considerable system overhead and is generally less efficient than is comminations accomplished through shared memory.

Page 20: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.20Operating System Concepts

Advantages of This Approach

Increased flexibility in memory management to user programs.

Greater generality, allow the virtual copy approach to be used in tightly and loosely coupled computers..

Improved performance over UNIX message passing. Easier task migration because ports are location

independent, a task and all its ports can be moved from one machine to another.

Page 21: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.21Operating System Concepts

Process Management

A task can be thought of as a traditional process that does not have an instruction pointer or a register set. A task contains a virtual address space, a set of port rights, and accounting information.

A task is a passive entity that does nothing unless it has one or more threads executing in it.

Page 22: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.22Operating System Concepts

Basic Structure

A task containing one thread is similar to a UNIX process. At the user level, threads may be in one of two states.

Running -- task is either executing or waiting for the processor.

Suspended -- A thread can resume its execution only if is returned to a running state.

Mach provides primitives from which thread-synchronization tools can be built.

Page 23: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.23Operating System Concepts

C Threads Package

The thread-control routines include calls to perform: Create a new thread within a task. Destroy the calling thread, and return a value to the creating

thread. Yield use of a processor, signaling that the scheduler may

run another thread at this point.

Page 24: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.24Operating System Concepts

Mutual Exclusion

Mutual exclusion is achieved through the use of spinlocks. mutex_alloc mutex_free mutex_lock mutex_unlock

Page 25: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.25Operating System Concepts

Synchronization

Without busy waiting can be achieve through the use of condition variables.

Condition_alloc condition_free condition_wait condition_signal

Page 26: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.26Operating System Concepts

Exception Handling

Mach was designed to provide a single, simple, consistent exception-handling system, with support for standard as well as user-defined exceptions.

Has internally generated exceptions and external interrupts.

Per-thread/per-task

Page 27: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.27Operating System Concepts

Exception Handling

Raise RPC message passed to the handler. Victim calls routine to wait until exception is handled. Handler receives message. Handler performs it function.

Page 28: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.28Operating System Concepts

Ports

A port is implemented as a protected, bounded queue within the kernel of the system on which the object resides.

If queue is full, a sender may abort the send. System calls to provide port functionality:

Allocate a new port. Deallocate a port. Get the current status of a task’s port. Create a backup port.

Page 29: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.29Operating System Concepts

Messages

A message consists of a fixed-length header and a variable number of typed data objects.

Contains: destination port reply port size/operation pure typed data port rights out-of-line data message control.

Mach can unpack the data correctly, even if it is uses a byte ordering different from that used by the sender.

Page 30: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.30Operating System Concepts

Pointers in Messages

The use of pointers in a message provides the means to transfer the entire address space of one task in one single message.

The kernel also must process pointers to out-of-line data, as a pointer to data in the sender’s address space would be invalid if the receiver’s -- especially if the sender and receiver reside on different systems!

To make it more efficient, Mach will modify the address map of the receiving task (when the sender and receiver are on the same system) to point to a copy-on-write copy

Page 31: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.31Operating System Concepts

Synchronization Through IPC

A port may be used as a synchronization variable. Any thread wishing to use a resource executes a receive call on that port. The thread will receive a message if the resource is available; otherwise it will wait on the port until a message is available there.

To return a resource after use, the thread can send a message to the port.

These are the equivalent to the semaphore operations of wait and signal.

Page 32: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.32Operating System Concepts

Memory Management

Memory object is the abstraction. Memory objects are used to manage secondary storage,

and generally represent files, pipes, or other data that are mapped in virtual memory for reading and writing.

Each object has a port associated with it, and may be manipulated by messages being sent to that port.

Page 33: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.33Operating System Concepts

Basic Structure

The virtual address space of a task is generally considered sparse, consisting of many holes of unallocated space.

A memory mapped file is placed is some set of addresses. Large messages are transferred as shared memory

segments. As new items are mapped in or removed from the address

space, holes of unallocated memory appear in the address space.

Mach makes no attempt to compress the address space, although a task may fail if it has no room for a requested region in its address space.

Page 34: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.34Operating System Concepts

User address space

head tail

text Initialized data

Uninitialized data

stack

port

Cached pages

Virtual memory object

Previous entry

Next entry

Offset therein

object

Address space start/stop

inheritance

Protection current/max

Map entry

Page 35: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.35Operating System Concepts

Shared Memory

Mach uses shared memory to reduce the complexity of various system facilities, as well to provide these features in an efficient manner.

Provides extremely fast interprocess communications, reduces overhead in file management, and helps support multiprocessing and database management.

Mach does not try to solve the problem of data consistency on multiple machines. (Allows an external memory manager to handle the problem.)

Page 36: Silberschatz, Galvin and Gagne  2002 A.1 Operating System Concepts Appendix B The Mach System The Mach operating system is designed to incorporate the

Silberschatz, Galvin and Gagne 2002A.36Operating System Concepts

Programmer Interface

System-call level traps to the kernel and is serviced by this thread on behalf of caller. Has limited efficiency.

Can be provided by emulation library. Can be on one or more servers. C threads package. Makes many programming tasks repetitive. Has an

interface generator (MIG) which generates the RPC interface coded needed to send and receive messages.