Top Banner
The Mach System "Operating Systems Concepts, Sixth Edition" by Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne Presented by Abdelhalim Ragab Portland State University CS533 Concepts of Operating Systems
21

The Mach System

Feb 11, 2016

Download

Documents

Halil

The Mach System. "Operating Systems Concepts, Sixth Edition" by Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne Presented by Abdelhalim Ragab Portland State University CS533 Concepts of Operating Systems. Microkernel vs. Monolithic Systems. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The Mach System

The Mach System

"Operating Systems Concepts, Sixth Edition" by Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne

Presented by Abdelhalim RagabPortland State UniversityCS533 Concepts of Operating Systems

Page 2: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Microkernel vs. Monolithic Systems

Source: http://en.wikipedia.org/wiki/File:OS-structure.svg

Page 3: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Mach History

CMU Accent operating system No ability to execute UNIX applications Single Hardware architecture

BSD Unix system + Accent concepts Mach

DarwinXNU OSF/1

Mac OS X

OpenStep GNU Hurd

Page 4: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Design Principles

Maintain BSD Compatibility Simple programmer

interface Easy portability Extensive library of

utilities/applications Combine utilities via

pipes

PLUS Diverse architectures. Varying network speed Simple kernel Distributed operation Integrated memory

management and IPC Heterogeneous systems

Page 5: The Mach System

Portland State University - CS533 Concepts of Operating Systems

System Components

task

text region

threads port

port set

message

Task Thread Port Port set Message Memory object

data region

memory object

secondary storage

Page 6: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Memory Management and IPC

Memory Management using IPC: Memory object represented by port(s) IPC messages are sent to those ports to request operation

on the object Memory objects can be remote kernel caches the

contents

IPC using memory-management techniques: Pass message by moving pointers to shared memory objects Virtual-memory remapping to transfer large contents

(virtual copy or copy-on-write)

Page 7: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Process Management Basic Structure

Tasks/Threads Synchronization primitives:

Mach IPC: Processes exchanging messages at rendezvous points Wait/signal associated with semaphores can be

implemented using IPC Thread-level synchronization using thread start/stop

calls

Page 8: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Process ManagementC Thread package

User-level thread library built on top of Mach primitives

Influenced POSIX P Threads standard Thread-control:

Create/Destroy a thread Wait for a specific thread to terminate then continue the

calling thread Yield

Mutual exclusion using spinlocks Condition Variables (wait, signal)

Page 9: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Process ManagementCPU Scheduler

Only threads are scheduled Dynamic thread priority number (0 – 127)

based on the exponential average of its CPU usage. 32 global run queues + per processor local queues

(ex. driver thread) No Central dispatcher

Processors consult run queues to select next thread List of idle processors

Thread time quantum varies inversely with total number of threads, but constant over the entire system

Page 10: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Process ManagementException Handling

Implemented via RPC messages Exception handling granularities:

Per thread (for error handling) Per task (for debuggers)

Emulate BSD style signals Supports execution of BSD programs Not suitable for multi-threaded environment

Page 11: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Interprocess Communication Ports + messages

Allow location independence + communication security

Sender/Receiver must have rights (port name + send or receive capability)

Ports: Protected bounded queue in the kernel System Calls:

Allocate new port in task, give the task all access rights Deallocate task’s access rights to a port Get port status Create backup port

Port sets

Page 12: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Interprocess Communication Ports + messages

Messages: Header + typed data objects Header: destination port name, reply port name,

message length In-line data: simple types, port rights Out-of-line data: pointers

Via virtual-memory management Copy-on-write

Sparse virtual memory

Page 13: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Interprocess Communication Ports + messages

NetMsgServer: user-level capability-based networking daemon used when receiver port is not on the kernel’s computer Forward messages between hosts Provides primitive network-wide name service

Mach 3.0 NORMA IPC Syncronization using IPC:

Used in threads in the same task Port used as synchronization variable Receive message wait Send message signal

Page 14: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Memory Management

Memory Object Used to manage secondary storage (files, pipes, …), or data

mapped into virtual memory Backed by user-level memory managers

Standard system calls for virtual memory functionality User-level Memory Managers:

Memory can be paged by user-written memory managers No assumption are made by Mach about memory objects

contents Kernel calls to support external memory manager

Mach default memory manager

Page 15: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Memory ManagementShared memory

Shared memory provides reduced complexity and enhanced performance Fast IPC Reduced overhead in file management

Mach provides facilities to maintain memory consistency on different machines

Page 16: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Programmer Interface

System-call level Emulation libraries and servers Upcalls made to libraries in task address space, or

server C Threads package

C language interface to Mach threads primitives Not suitable for NORMA systems

Interface/Stub generator (MIG) for RPC calls

Page 17: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Mach Microkernelsummary

Simple kernel abstractions Focus on communication facilities System Calls:

IPC Task/Thread/Port Virtual memory Mach 3 NORMA IPC

Page 18: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Mach Microkernelsummary

User level servers

Memory Managers NetMsgServer NetMemServer

OS Servers/Emulation libraries C Threads user-level thread management package

Page 19: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Questions

Page 20: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Reality Microkernel vs. Monolithic Systems:

Linus vs. Tanenbaum famous debate (1992):http://www.dina.kvl.dk/~abraham/Linus_vs_Tanenbaum.htmlhttp://oreilly.com/catalog/opensources/book/appa.html http://groups.google.com/group/comp.os.minix/browse_thread/thread/c25870d7a41696d2

Again in 2006http://www.cs.vu.nl/~ast/reliable-os/ http://en.wikipedia.org/wiki/Tanenbaum-Torvalds_debate

L3 Microkernel L4 microkernel family (L4, L4Ka::Hazelnut, Fiasco, … ) Mac OS X: Although Mac OS X must credit BSD for most of the underlying

levels of the operating system, Mac OS X also owes a major debt to Mach. The kernel is heavily influenced in its design philosophy by Carnegie Mellon's Mach project[17]. The kernel is not a pure micro-kernel implementation, since the address space is shared with the BSD portion of the kernel and the I/O Kit.http://developer.apple.com/technotes/tn2002/tn2071.html

Page 21: The Mach System

Portland State University - CS533 Concepts of Operating Systems

Reality(2)Are Microkernels for Real

QNX, Integrity, PikeOS, Symbian, L4Linux, Singularity, K42, Mac OS X, HURD, Coyotos

QNX is widely used in real commercial systems. Cisco's top-of-the-line router uses it, for example, and I can assure you, Cisco cares a **LOT** about performance.

One of the leading operating systems in the military and aerospace markets, where reliability is absolutely critical is Green Hills' Integrity, another microkernel.

PikeOS is another microkernel-based real-time system widely used in defense, aerospace, automotive, and industrial applications.

Symbian is yet another popular microkernel, primarily used in cell phones. It is not a pure microkernel, however, but something of a hybrid, with drivers in the kernel, but the file system, networking, and telephony in user space.

L4Linux runs all of Linux in user space on top of the L4 microkernel with a performance loss of only a couple of percent. 

IBM K42 HURD Microsoft Singularity Mac OSX and Darwin on L4

Source: http://www.cs.vu.nl/~ast/reliable-os/