2.3 Implementierung von Prozessen

Slides:



Advertisements
Ähnliche Präsentationen
Gliederung Lehrmodul 1 Grundsätzlicher Aufbau von Betriebssystemen
Advertisements

Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
Kapitel 26 BS-Kerne Laufzeitplattform = abstrakte Maschine für den Anwender Komfortabler Zugang Geschützte Adreßräume Traps, privilegierter Zustand Monolithische.
1 Spezielle Packages des Java SDK (1.4) java.nio.
FU Berlin SS 2003 Klaus-Peter Löhr
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
On a Buzzword: Hierachical Structure David Parnas.
Systeme 1 Kapitel 5.1 Unix Scheduling WS 2009/101.
Threads Richard Göbel.
Kapitel 7 Prozesse und Threads
Java- Syntax.
OpenMP Präsentation im Rahmen des Seminars
Software zur Simulation von Multitaskingalgorithmen Michael Böhm – BSZW Rodewisch.
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
Einführung Definitionen
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 3. Quartal 2002.
7 Verteilungsabstraktion
Studiengang Informatik FHDW
Vorl. 6: Single- und Multitasking Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Sicherheit von mobilem Code Hauptseminar: Sicherheit in vernetzten Systemen Sicherheit von mobilem Code Oliver Grassow.
DVG Einführung in Java1 Einführung in JAVA.
Entwicklung verteilter eingebetteter Systeme - Einführung
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
6.5 Lindas Tupelraum Interaktion von Prozessen über zentralen Umschlagplatz für alle zwischen Prozessen ausgetauschten Daten: Tupelraum (tuple space) (Carriero/Gelernter,
Das Betriebssystem.
Service Computing   Prof. Dr. Ramin Yahyapour IT & Medien Centrum 19. Januar 2010.
Wichtige Errungenschaften
Herzlich Willkommen zu meiner Präsentation
Thread Synchronisation in JAVA
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Bs Gemeinsame Datensegmente am Beispiel Solaris [Beachte: Unix/Linux setzen keine Hardware-Segmentierung voraus und sprechen daher statt von.
Systemsoftware und Betriebssysteme
Studiengang Informatik FHDW
2. Kommunikation und Synchronisation von Prozessen 2
Technik schädlicher Software
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Parallele Programmierung im.NET Framework Darmstadt, Präsentation am Beispiel von C-Sharp (C#)  Wichtige Grundlagen  Generika, Delegate, Lambda,
Linux oder GNU/Linux WS 2013/2014.
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Studiengang Informatik FHDW
GsiOS Betriebssystem für AVR32 Sarah Hofer Matthias Kathan Hannes Kappl Christian Kuen Manuel Oblasser Christoph Storm FHV WS 09/10 Projekt Ubiquitous.
Universität zu Köln WS 2012/13 Seminar: IT-Zertifikat der Phil.-Fak.: Allgemeine Informationstechnologien I Dozentin: Susanne Kurz M.A. Referenten: Irina.
Dynamische Prioritäten Statische Prozess-Prioritäten sind sinnvoll, falls Prozesse in wenige Klassen einteilbar (3.3.3) Dynamische Prioritäten.
Vs Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, ) = klassenbasierte,
Bs Dateien als Segmente Idee:Datei = persistentes Segment Konsequenzen:  Datei kann in virtuellen Adressraum eingeblendet werden (memory-mapped.
Nichtsequentielle Programmierung Klaus-Peter Löhr Freie Universität Berlin WS 2002/03.
5 Implementierung von Prozessen und Synchronisationskonstrukten
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
Betriebssysteme Übung 2. Tutorium „System Calls & Multiprogramming“
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
GsiOS Betriebssystem für AVR32 Sarah Hofer Matthias Kathan Hannes Kappl Christian Kuen Manuel Oblasser Christoph Storm FHV WS 09/10 Projekt Ubiquitous.
Betriebssysteme Was ist ein BS?
Betriebssysteme allgemein
Betriebssysteme: Theorie
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
LINUX II Unit 7 LAMP Server. LAMP ● Linux – Apache - MySQL – PHP ● Leistungsfähiges und kostenloses System zur Genrierung von dynamischen Webseiten und.
Ablauf von Daten- verarbeitungsprozessen Gliederung: ● Zeitliche Steuerung von Abläufen – Druckauftragsverarbeitung – scheinbare Gleichzeitigkeit von Prozessen.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.
Netzwerk - Programmierung
Magische Wand Ein Spiel zum Thema: Betriebssysteme.
Linux.
Studiengang Informatik FHDW
Einführung Definitionen
Einführung Definitionen
 Präsentation transkript:

2.3 Implementierung von Prozessen  durch Prozessoren  durch Prozesse des Betriebssystems  durch Kernel-Level Threads des Betriebssystems  durch User-Level Threads einer Threading-Bibliothek  durch das Laufzeitsystem der Sprache  durch den Interpretierer der Sprache (falls interpretiert) + Mischformen

2.3.1 Mehrprozessorsystem (multiprocessing system)  erlaubt echte Parallelausführung  macht nur Sinn bei grobkörniger Prozeßstruktur d.h. wenige, langlaufende Prozesse  Code + Daten in gemeinsamem Speicher, teils in privaten, teils in gemeinsamen Segmenten des VS  Im Idealfall wird jeder Prozeß von eigenem Prozessor ausgeführt (unrealistisch)

Prozeßerzeugung:  fork-Systemaufruf veranlaßt das Betriebssystem, in seiner Buchführung über die Prozessoren nach einem untätigen Prozessor zu suchen,  eine Prozeßbeschreibung (Adreßraum, Startadresse, ...) in einem diesem Prozessor zugeordneten Speicherbereich unterzubringen,  den Prozessor durch eine externe Unterbrechung zu veranlassen, den neuen Prozeß auszuführen.

2.3.2 Mehrprozeßbetrieb (multiprogramming, multitasking)  wenn es mehr Prozesse als Prozessoren gibt  bei Einprozessor- und bei Mehrprozessor-Systemen  Code + Daten in gemeinsamem Speicher, teils in privaten, teils in gemeinsamen Segmenten des VS  Prozesse werden quasi-parallel ausgeführt, d.h. wechseln sich in der Benutzung der Prozessoren ab (processor multiplexing).  „Prozeß = virtueller Rechner“

Beispiel Einprozessorsystem: Gleichmäßige Reihum-Vergabe des Prozessors (round-robin scheduling) – genauer: Regelmäßige Zeitgeber-Unterbrechungen (time slicing) veranlassen das Betriebssystem zur Prozeßumschaltung (process switching) - genauer: Instruktionsausführung wird zunächst im Betriebssystem fortgesetzt und letztendlich mit den Instruktionen eines anderen Prozesses fortgesetzt (verbunden mit Umschaltung der Adreßräume)

Z.B. mit 2 Prozessen: Unterbrechung Code des BS Code von P1 Code von P2 Fortsetzung des anderen Prozesses

„... aber wie kann es beim Fehlen echter Parallelität Probleme durch nichtatomare Ausdrücke, Anweisungen etc. geben ?“ ?? Unterbrechungen treten zu nicht verhersagbaren (und nicht reproduzierbaren) Zeitpunkten ein – z.B. mitten in der Auswertung von exact = 3.14D Effekt: Die verzahnte Ausführung ist zwar sehr „grobzähnig“ – aber trotzdem unvorhersagbar verzahnt!

2.3.3 Kernel-Level Threads Thread ( = „Faden“), auch leichtgewichtiger Prozeß (lightweight process), im Gegensatz zu schwergewichtiger Prozeß (heavyweight process) ( = „Prozeß“ aus 2.3.2)  entstammt der Betriebssystem-Terminologie,  bedeutet „Prozeß im Prozeß“, genauer virtueller Prozessor eines virtuellen Rechners

Kernel-Level (im Gegensatz zu „User-Level“ 2.3.4) bedeutet, daß das Betriebssystem („der BS-Kern“) das Thread-Konzept unterstützt, d.h. für alle Prozesse auch deren Threads verwaltet. Beachte 1: Bei Prozeßwechsel wird der Adreßraum gewechselt, bei Thread-Wechsel innerhalb eines Prozesses nicht! Beachte 2: Bei einem Mehrprozessorsystem kann das Betriebssystem die Threads eines Prozesses von verschiedenen Prozessoren ausführen lassen ( Parallelarbeit!)

2.3.4 User-Level Threads  Das Betriebssystem kennt kein Thread-Konzept.  Threading wird durch Code innerhalb des Benutzer-Adreßraums realisiert. Varianten:  Threading-Bibliothek, von verschiedenen Sprachen aus benutzbar  Laufzeitsystem der Sprache realisiert Threading  Interpretierer (falls interpretierte Sprache) tut dies

Java ... Laufzeitsystem bzw. Interpretierer (JVM)  praktizieren entweder eigenes Threading (user-level)  oder nutzen Kernel-Level Threading (falls vorhanden) (Beispiele: Windows, Solaris)  oder nutzen schwergewichtige Prozesse mit gemeinsamen Segmenten (Beispiel: Linux) Auf Mehrprozessorsystemen erlauben  und  parallele Java-Programme!