Left Up Right Betriebssystemkerne/Kleinkernsysteme

MACH

Quellen

Mach bei CMU
Das ist wohl die offizielle Mach-Homapage
Mach4 University Utah
[SilverSchatz91]
Erste MACH-Erwähnung in der Literatur
Richard Rashid, Avadis Tevanian, Jr., Michael Young, David Golub, Rober t Baron, David Black, William J. Bolosky, and Jonathan Chew. Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures. IEEE Transa ctions on Computers, C-37:896-908, 1988.

Grundbegriffe

threads
grundlegende Ausführungseinheit, Aktivitätsträger, läuft im Task-Kontext
task
Ausführungsumgebung, einfache einheit für Betriebsmittelallokierung, virtueller Addressraum, Schutzumgebung
Betriebsmittel sind:
port
Objekt-Referenzmechanismus, mit einer Warteschlange für Nachrichten
Kommunikationskanal zwischen Threads, uniform wo sie lokalisert sind.
Damit kann gute Skalierbarkeit gewährleistet werden.

port set: Gruppe von Ports, die eine gemeinsame Nachrichtenwarteschlange haben. Ein Thread kann Nachrichten für ein Port-Set empfangen uns so an maheren Ports lauschen.

messages
grundlegender Kommunikationsmechanismus zwischen Threads,
getypte Sammlung von Datenobjekten (Daten selber, zeiger, Port capabilities)
Memory Object
Sekundärspeicher, der in einen Task-Adressraum abgebildet werden kann (Memory Mapping)

Eigenschaften

Das Prozessmanagement beiter möglichst wenig atomare sachen wie tread_suspend, thread_resume

Die Treads-API: c-threads (POSIX phreads ...)

Zur Koordinierung gibt es spinlocks : mutex, condition (Damit kann man Monitore bauen)

Der Scheduler ist multiprozessorfähig. Jeder Prozessor hat eine lokale Warteschlange für Threads. Das Gesamtsystem hat eine globale Warteschlange, weobei die lokale Warteschlange eine höhere Priorität hat. Zeitquantum = 1/#threads*C

Speicher: vmread, vm_write, vm_copy: Trannsfer von Speicherseite über Trask-Grenzen hinweg über Ports.

Userlevel Pagers/Memory-Managers: Wenn Objekt persistent wird, muß der Speichermanager die Objekte auf den hintergrundspeicher speichern. Mach hat einen Default-Memory-manager.
Mit Hilfe der Memory-manager konn man auch verteilte virtuelle Speicher implementiern.

MIG: Mach Interface generator (vgl RPCgen/IDL-Compiler)

NetMsg-Server: kümmert sich um die Ortstransparenz. (Damit können die Objekte zwecks Lastverteilung oder Erhöhung der Verfügbarkeit migriert/repliziert werden).
Die Tasks können beim NetMsgServer netzwerkports registrieren (Capability-basiert). Der NetMsg -Server verteilt die Nachrichten an die Tasks weiter.

Kritik

Geschichte

Projekt von Carnegie-Mellon-University, Defence Advanced Reseach Projekt Agency DARPA

Das Vorgänger Projekt war Accent (nicht BSD-kompatibel, kein VM, ...)

Release 1:
1986 DEC/VAX
1987 Encore Multimax, Sequent
UMA-Architektur
Release 2: NUMA
Release 2.5: Enzelprozessor: SUN.Intel,IBM,DEC
1989 OSF
Release 3:
1/10 Kerngröße wie BSD-Unix, BSD-Emulation
Mach4 University Utah
Es wird evolutionär weiterentwickelt und dabei die fundamentalen Abtraktionen überarbeitet.

Implementierungen

GNU-Sammlungen

Auf Mach basierende Systeme


Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber