the mach system - thecatweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · the mach...

16
The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne Presented by Adam Lowry

Upload: haduong

Post on 16-Mar-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

The Mach Systemfrom Operating Systems Concepts, Sixth Edition by

Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne

Presented by Adam Lowry

Page 2: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Design Principles• Support for multiple architectures

• Varying network speeds

• Simple kernel structure

• Distributed operation

• Integrated memory management & IPC

• Heterogeneous system support

Page 3: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Components• Task

• Thread

• Port

• Port Set

• Message

• Memory Object

Page 4: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

860 Appendix B The Mach System

the actual data or a pointer to out-of-line data. Port rights are passed inmessages; passing port rights in messages is the only way to move themamong 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 obtainedin this manner.)

• A memory object is a source of memory; tasks may access it by mappingportions (or the entire object) into their address spaces. The object maybe managed by a user-mode external memory manager. One example isa file managed by a file server; however, a memory object can be anyobject for which memory-mapped access makes sense. A mapped bufferimplementation of a UNIX pipe is one example.

Figure B.2 illustrates these abstractions, which we shall elaborate in the remain-der of this chapter.

An unusual feature of Mach, and a key to the system’s efficiency, is theblending of memory and interprocess-communication features. Whereas someother distributed systems (such as Solaris, with its NFS features) have special-purpose extensions to the file system to extend it over a network, Mach pro-vides a general-purpose, extensible merger of memory and messages at theheart of its kernel. This feature not only allows Mach to be used for distributed

task

data region

text region

threads

program counter

memory object

message

port

port set

secondary storage

Figure B.2 Mach’s basic abstractions.

Page 5: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Process Management

• Task + Threads = Process

• All threads are kernel-supported

• Synchronization implemented with IPC

Page 6: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Threads and Scheduling• C Threads library provides all standard tasks

• Mutual exclusion implemented with spinlocks

• Blocking waits with condition variables

• Simple model - only threads are scheduled

• Multiple queues

Page 7: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Exception Handling

• Made up of kernel primitives:

• Handler is a thread, RPC for logic

Page 8: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Internal Exceptions

• Victim notifies handler via IPC

• Victim waits for resolution

• Handler receives notification with information

• Handler clears or terminates

Page 9: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

BSD-Style Signals

• Difficult to implement

• Process to process: converted to IPC

• Hardware exceptions handled by kernel

Page 10: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

IPC

• Traditional way: global names, untyped streams

• Mach way: location independent ports, typed data

Page 11: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Ports

• Managed by kernel

• All objects have standard ports

• Can be grouped into Port Sets

Page 12: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Messages

870 Appendix B The Mach System

standard process-id concept found in UNIX. Another port created for a task isreturned by task notify, and is the name of the port to which the kernel will sendevent-notification messages (such as notifications of port terminations).

Ports can also be collected into port sets. This facility is useful if one threadis to service requests coming in on multiple ports (for example, for multipleobjects). A port may be a member of at most one port set at a time, and, if aport is in a set, it may not be used directly to receive messages. Instead, themessage will be routed to the port set’s queue. A port set may not be passed inmessages, unlike a port. Port sets are objects that serve a purpose similar to the4.3BSD select system call, but they are more efficient.

B.5.2 MessagesA message consists of a fixed-length header and a variable number of typeddata objects. The header contains the destination’s port name, the name ofthe reply port to which return messages should be sent, and the length of themessage (see Figure B.5). The data in the message (in-line data) were limited toless than 8K in Mach 2.5 systems, but Mach 3.0 has no limit. Any data exceedingthat limit must be sent in multiple messages, or more likely via reference by apointer in a message (out-of-line data, as we shall describe shortly). Each datasection may be a simple type (numbers or characters), port rights, or pointersto out-of-line data. Each section has an associated type, so that the receiver

destination portreply portsize / operationpure typed dataport rightsout-of-line-data

message control

. . .

memory cache object memory cache object

port

message queue

port

messagemessage

Figure B.5 Mach messages.

Page 13: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Message Passing872 Appendix B The Mach System

send operation

B

P1

kernel mapA map B map

A

receive operation

B

P1

kernel mapA map B map

A

Figure B.6 Mach message transfer.

transparent naming and transport to extend IPC across multiple computers.This naming and transport are performed by the Network Message Server orNetMsgServer, a user-level capability-based networking daemon that forwardsmessages between hosts. It also provides a primitive networkwide nameservice that allows tasks to register ports for lookup by tasks on any othercomputer in the network. Mach ports can be transferred only in messages,and messages must be sent to ports; the primitive name service solves theproblem of transferring the first port that allows tasks on different computersto exchange messages. Subsequent IPC interactions are fully transparent; theNetMsgServer tracks all rights and out-of-line memory passed in intercomputermessages, and arranges for the appropriate transfers. The NetMsgServersmaintain among themselves a distributed database of port rights that havebeen transferred between computers and of the ports to which these rightscorrespond.

The kernel uses the NetMsgServer when a message needs to be sent toa port that is not on the kernel’s computer. Mach’s kernel IPC is used totransfer the message to the local NetMsgServer. The NetMsgServer then useswhatever network protocols are appropriate to transfer the message to its peeron the other computer; the notion of a NetMsgServer is protocol-independent,and NetMsgServers have been built that use various protocols. Of course,the NetMsgServers involved in a transfer must agree on the protocol used.Finally, the NetMsgServer on the destination computer uses that kernel’s IPCto send the message to the correct destination task. The ability to extend localIPC transparently across nodes is supported by the use of proxy ports. Whena send right is transferred from one computer to another, the NetMsgServer

Page 14: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

NetMsgServer

• All objects should be location independent

• NetMsgServer handles naming & transportation in user level

Page 15: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Memory Management

• Everything is a Memory Object

• Control via IPC

• Memory managers are user-level, with default backup

Page 16: The Mach System - TheCATweb.cecs.pdx.edu/~walpole/class/cs533/spring2006/slides/121.pdf · The Mach System from Operating Systems Concepts, Sixth Edition by Abraham Silberschatz,

Programming Interface

• BSD system calls

• Emulation and servers at user-level

• Threading library

• Stubs