Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation



Ähnliche Dokumente
Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Dämon-Prozesse ( deamon )

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Vorl. 6: Single- und Multitasking

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Round-Robin Scheduling (RR)

Lizenz Verwaltung. Adami Vista CRM

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Monitore. Klicken bearbeiten

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Betriebssystembau (BSB)

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Statuten in leichter Sprache

Übungen zum Fach Betriebssysteme Kapitel 3

Benutzerverwaltung Business- & Company-Paket

Softwarelösungen: Versuch 4

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Domänenmodell: Fadenkommunikation und -synchronisation

Technische Informatik II

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Benutzerhandbuch - Elterliche Kontrolle

Lastenheft. Poker iphone App

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

S7-Hantierungsbausteine für R355, R6000 und R2700

Es kann maximal ein Prozess die Umladestelle benutzen.

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Lehrer: Einschreibemethoden

IAWWeb PDFManager. - Kurzanleitung -

TIMI: Technische Informatik für Medieninformatiker

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Lokale Installation von DotNetNuke 4 ohne IIS

Prozesse. Stefan Janssen. Alexander Sczyrba

Man liest sich: POP3/IMAP

Step by Step Webserver unter Windows Server von Christian Bartl

Kleines Handbuch zur Fotogalerie der Pixel AG

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Prozesse und Logs Linux-Kurs der Unix-AG

MY-CAREER-HOMEPAGE.com

Workflows verwalten. Tipps & Tricks

DOKUMENTATION VOGELZUCHT 2015 PLUS

PowerPoint 2010 Mit Folienmastern arbeiten

1 topologisches Sortieren

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Archiv - Berechtigungen

Professionelle Seminare im Bereich MS-Office

FastViewer Remote Edition 2.X

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

How to do? Projekte - Zeiterfassung

Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern. Dazu klicken Sie bitte auf Ihren Namen.

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Formular»Fragenkatalog BIM-Server«

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

OLXFil er Anleitung

Wie lizenziert man die Virtualisierung von Windows Desktop Betriebssystemen?

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Stand: Adressnummern ändern Modulbeschreibung

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Erstellen einer digitalen Signatur für Adobe-Formulare

Tutorial -

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Hilfedatei der Oden$-Börse Stand Juni 2014

ANYWHERE Zugriff von externen Arbeitsplätzen

An integrated total solution for automatic job scheduling without user interaction

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

Grundlagen verteilter Systeme

LISP. Eine Einführung

OPERATIONEN AUF EINER DATENBANK

Benutzer Verwalten. 1. Benutzer Browser

Benutzerkonto unter Windows 2000

Virtual Private Network

Anleitung Postfachsystem Inhalt

VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. Bachstraße 47, 3580 Mödring

Dokumentation. Mindestanforderungen: Das Board

1. Allgemeines zum tevitel.wq-monitor Seite WQ-Monitor konfigurieren Seite 4

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Berechtigungsgruppen TimeSafe Leistungserfassung

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

Datensicherung. Beschreibung der Datensicherung

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Leichte-Sprache-Bilder

Professionelle Seminare im Bereich MS-Office

Einleitung: Frontend Backend

Anleitung über den Umgang mit Schildern

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Business Process Model and Notation

Veranstaltungsbelegung in QIS/LSF -- Leitfaden für BW-Studierende --

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung

5 Speicherverwaltung. bs-5.1 1

Transkript:

Inhaltsverzeichnis Systemprogrammierung - Kapitel 2 Prozessverwaltung 1/21 2.1 Was ist ein Prozess? Definition Prozesszustände Prozesskontrollblöcke 2.4 Thread-Systeme Sinn und Zweck Thread-Arten Thread-Management 2.2 Scheduling Singletasking Multiprogramming Multitasking 2.3 Interprozesskommunikation Message-Passing Shared-Memory

2.1 Was ist ein Prozess? Systemprogrammierung - Kapitel 2 Prozessverwaltung 2/21 Prozess: Ein Programm im Stadium der Ausführung; die Reihenfolge der Ausführung ist sequenziell. Prozess und Job sind synonym. Oft größere Anzahl von nebeneinander existierenden Benutzer- und Systemprozessen Prozess-Ressourcen: Speicherplatz CPU-Zeit Zugriff auf E/A-Geräte Effiziente Koordination notwendig bei gleichzeitigem Zugriff mehrerer Prozesse auf die gleiche Ressource

2.1 Was ist ein Prozess? Systemprogrammierung - Kapitel 2 Prozessverwaltung 3/21 Prozesse befinden sich in unterschiedlichen Zuständen Zustand running ready waiting blocked new killed terminated Bedeutung Anweisungen des Prozesses werden gerade ausgeführt Prozess ist bereit zur Ausführung, wartet aber noch auf freien Prozessor Prozess wartet auf das Eintreten eines Ereignisses (z.b. darauf, dass ein von ihm belegtes Betriebsmittel fertig wird) Prozess wartet auf ein fremdbelegtes Betriebsmittel Prozess wird erzeugt (kreiert) Prozess wird (vorzeitig) abgebrochen Prozess ist beendet (alle Instruktionen sind abgearbeitet) Zu jedem Zeitpunkt kann auf einem beliebigen Prozessor nur ein Prozess laufen!

2.1 Was ist ein Prozess? Systemprogrammierung - Kapitel 2 Prozessverwaltung 4/21 Übergänge zwischen Zuständen werden mit Hilfe von Prozesszustands-Diagrammen dargestellt. scheduler dispatch new new admitted ready ready interrupt running running exit terminated terminated I/O or event completion I/O or event wait waiting waiting

2.1 Was ist ein Prozess? Systemprogrammierung - Kapitel 2 Prozessverwaltung 5/21 Betriebssystem ist u.a. zuständig für Erzeugung und Beendigung von Benutzer- und Systemprozessen Aufteilung von Speicherplatz und CPU-Zeit Bereitstellung von Mechanismen zur Synchronisation und Kommunikation unter Prozessen Vorgehen in Deadlock-Situationen Repräsentation von Prozessen innerhalb des Betriebssystems erfolgt über Prozesskontrollblöcke (PCB) PCBs enthalten alle für das Betriebssystem relevanten Informationen

2.1 Was ist ein Prozess? Systemprogrammierung - Kapitel 2 Prozessverwaltung 6/21 Beispiel für Informationen in einem Prozesskontrollblock (PCB) PCB-Feld Status Programmzähler CPU-Scheduling Speichermanagment E/A-Status Accounting Bedeutung Prozesszustand enthält die Adresse der nächsten auszuführenden Instruktion hier finden sich z.b. Prioritäten, Zeiger auf Warteschlangen und ähnliche Scheduling-Parameter enthält die letzten Werte der Speicherregister, Seitentabellen und ähnliche Informationen für die Speicherverwaltung Liste von zugeordneten E/A-Geräten, offenen Files usw. benötigte CPU- und Realzeit, Zeitbeschränkungen, Prozessnummern u.ä.

2.2 Scheduling Systemprogrammierung - Kapitel 2 Prozessverwaltung 7/21 Hauptspeicher enthält Betriebssystemkern und darauf aufsetzend den Kommandointerpreter (Command Interpreter - CI). Grobe Einteilung von Betriebssystemen mittels ihrer Art, Prozesse zu behandeln. Singletasking Prozess wird bei Aufruf exklusiv in den Speicher eingelesen Multiprogramming / Multitasking Mehrere Prozesse gleichzeitig im Speicher Speicher frei CI Jobaufruf Speicher frei Prozess (z.t. kann CI Überschrieben werden) CI Speicher P3 frei P2 P1 CI BS-Kern BS-Kern BS-Kern

2.2 Scheduling Systemprogrammierung - Kapitel 2 Prozessverwaltung 8/21 Das Scheduling regelt den Zugriff der Prozesse auf die Ressourcen, insbesondere auf die CPU. Scheduling auf verschiedenen zeitlichen Ebenen: Langzeit-Scheduler (Job-Scheduler) wählt Prozesse aus, die als nächstes in den Speicher geladen werden. Kurzzeit-Scheduler (CPU-Scheduler) entscheidet, wann bereits geladene und sich im Zustand ready befindliche Prozesse auf die CPU zugreifen dürfen. Verschiedene Warteschlangen werden durch das Scheduling verwaltet: Job-Queue enthält alle Prozesse des Systems. Read-Queue enthält alle im Hauptspeicher befindlichen Prozesse, die sich im Zustand ready befinden. Device-Queues enthalten alle Prozesse, die auf ein E/A-Betriebsmittel warten.

2.2 Scheduling Systemprogrammierung - Kapitel 2 Prozessverwaltung 9/21 Prozesse migrieren zwischen den Warteschlangen neuer Prozess ready ready queue queue CPU CPU terminierter Prozess I/O I/O I/O I/O queue queue I/O I/O request request time time slice slice expires expires child child executes executes fork fork a a child child interrupt interrupt occurs occurs wait wait for for an an interrupt interrupt

2.2 Scheduling Systemprogrammierung - Kapitel 2 Prozessverwaltung 10/21 Unterschied zwischen Multiprogramming und Multitasking BeimMultiprogramming kann der Benutzer während seiner CPU-Nutzung nicht unterbrochen werden; das kann bei rechenintensiven Prozessen zur Blockade des Systems führen. BeimMultitasking (time sharing) kann ein Prozess nicht nur bei einem Interrupt unterbrochen werden, sondern z.b. auch nach Ablauf einer bestimmten Zeitspanne. Dadurch wird interaktiver Betrieb durch mehrere Benutzer möglich, wobei jeder die Illusion hat, die CPU arbeite exklusiv für ihn.

2.3 Interprozesskommunikation Systemprogrammierung - Kapitel 2 Prozessverwaltung 11/21 Koexistenz verschiedener Prozesse erfordert Möglichkeit der Kommunikation zwischen den Prozessen. Zwei verschiedene Ansätze: Message-Passing Shared-Memory Speicher P 1 P 2... P n Kommunikation

2.3 Interprozesskommunikation / Message-Passing Systemprogrammierung - Kapitel 2 Prozessverwaltung 12/21 Betriebssystem baut Verbindung zwischen Prozessen auf Prinzip des Message-Passing: Speicher P1 frei 1 P2 BS-Kern 2 Unterschiedliche Eigenschaften dieser Verbindung gehört einem oder mehreren Prozessen unterschiedliche Kapazität unterschiedliche Nachrichtenlängen uni- oder bidirektional

2.3 Interprozesskommunikation / Shared-Memory Systemprogrammierung - Kapitel 2 Prozessverwaltung 13/21 Temporäre Aufhebung der exklusiven Benutzung von Speicherbereichen Prozess P1 speichert Nachricht direkt in Speicher, auf den auch P2 Zugriff hat: Speicher P1 1 shared memory von P1 und P2 P2 2 BS-Kern Vorteil: bei großen Datenmengen schneller als Message-Passing Nachteil: Synchronisations- bzw. Konsistenzprobleme (z.b. liest P2 bereits, während P1 noch schreibt) Lösung: wechselseitiges Ausschlussproblem

2.4 Thread-Systeme Systemprogrammierung - Kapitel 2 Prozessverwaltung 14/21 Thread (eigentlich Faden) Nützlich vor allem bei paralleler Programmierung fork(...) Aufgabe create(...) join(...) Ziel: Aufgabe soll schneller bearbeitet werden! Probleme: a) Zerlegung in unabhängige Teil-Threads oft schwierig oder unmöglich b) Management eines solchen Geflechts sowie der zusätzliche Kommunikationsaufwand c) Effizienzprobleme, wenn z.b. ein Thread deutlich früher fertig ist als ein anderer, mit dem er ein join( ) machen muss

2.4 Thread-Systeme Systemprogrammierung - Kapitel 2 Prozessverwaltung 15/21 Es gibt vier Arten von Threads T1) Sequenziell, d.h. ohne Parallelität T2) Prozesse parallel ausführen (Shared-Memory-Prinzip) Problem: Datenzugriffskonflikte - jeder Prozess hat seinen eigenen Adressraum Fehlende Kapselung, d.h. Parallelität wird nicht nach außen verborgen T3) Ein Prozess mit asynchronen Systemaufrufen E/A-Interrupt E/A Prozess arbeitet weiter Rückmeldung E/A T4) Ein Prozess wird in mehrere Teile zerlegt und parallel ausgeführt (auf Multiprozessor- System), wodurch echte Parallelität möglich wird. Quasi- Parallelität Problem: Verwaltung der Rückmeldungen

2.4 Thread-Systeme Systemprogrammierung - Kapitel 2 Prozessverwaltung 16/21 Übersicht der Programmiermodelle Thread Art T1 T2 T3 T4 Anzahl Prozessoren 1 n 1 n Anzahl Adressräume 1 n 1 1 Systemaufrufe synchron synchron asynchron synchron Programmieraufwand ++ 0 - + Parallelität - ++ + ++ Kapselung + - + + Ressourcenverbrauch + - + +

2.4 Thread-Systeme / Thread-Management Systemprogrammierung - Kapitel 2 Prozessverwaltung 17/21 Standardaufrufe: Name self() create ( name ) exit() join ( ) detach ( ) cancel ( ) Abbruchmaskierung Abbruchvorsorge Beschreibung Liefert die ID des aktuellen Threads Erzeugt einen neuen Thread Beendet den aktuellen Thread Wartet auf das Ende eines anderen Threads, liefert evtl. dessen Rückgabewert Löst einen anderen Thread von den übrigen, d.h. kein anderer Thread wird auf ihn warten Beendet einem anderen Thread (asynchron) Erlaubt einem Thread Bereiche abzugeben, in denen er ein ihn betreffendes cancel( ) aufschiebt (maskiert) Erlaubt einem Thread Aufräumfunktionen (sog. cleanup-handler) anzugeben, die im Falle eines Unmaskierten cancel() noch ausgeführt werden.

2.4 Thread-Systeme Systemprogrammierung - Kapitel 2 Prozessverwaltung 18/21 Scheduling von Thread-Systemen:Zweidiametrale Strategien FIFO: First In First Out RR: Round Robin ( Zeitscheibe, Q ) Timeslice Quantum Warteschlange Q fertig nach FIFO nicht fertig

2.4 Thread-Systeme Systemprogrammierung - Kapitel 2 Prozessverwaltung 19/21 Spezielle Probleme mit Prioritäten beim Priority Scheduling a) Deadlock durch wenige Endlosprozesse höchster Priorität b) Priority Inversion: Prozesse niederer Priorität laufen normalerweise langsamer als solche mit höherer Priorität. Wenn ein niederpriorer Prozess ein Eintrittssignal bekommt, auf das ein hochpriorer Prozess wartet, wird der hochpriore Prozess verlangsamt. Lösung für b) könnte priority inheritance sein, d.h. die Priorität wird vererbt Prozess, der das Eintrittssignal besitzt, wird zeitweise auf die Priorität hochgestuft, welche der höchstpriore auf das Signal wartende Prozess hat.

2.4 Thread-Systeme Systemprogrammierung - Kapitel 2 Prozessverwaltung 20/21 Prioritätsumkehrung auch sonst nicht selten Beispiel: Kommunikationsprotokolle mit Zugriff auf gemeinsame Medien hohe Priorität P 1 P 2 Shared Medium niedrige Priorität P 3 Es ist möglich, dass ein hochpriorer Prozess häufiger zugreift, aber trotzdem langsamer wird. Betrachte folgende Situation: P1 macht 16 schnelle Zugriffe, die alle vergeblich sind, und führt dann ein Reset durch. P3 macht dann 1 langsamen aber erfolgreichen Zugriff.

2.4 Thread-Systeme Systemprogrammierung - Kapitel 2 Prozessverwaltung 21/21 Typen von Threads: User Threads sind vom Benutzer frei definierbar und haben Vorteile bzgl. Flexibilität und Parallelität Kernel Threads gibt es auf der Ebene des Betriebssystems Nachteil von User Threads: Thread-Scheduler auf der User-Ebene kommuniziert meist nicht mit Prozess-Scheduler auf Betriebssystem-Ebene Prozess, welcher verschiedene Threads initialisiert hat, wird beendet, wenn Initial-Thread beendet wird wenn letzter Thread (nicht notwendigerweise Initial-Thread) fertig ist