Prozesse Einführung in WI 1 (DV-Infrastruktur) WS03/04.

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
Advertisements

7.3 Scheduling Zur Erinnerung:
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
PC mit offener Seitenwand
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
PC Computernetze Netzstruktur für kleine Netze
Fragen 2 Werden die Funktionen des Betriebssystemkernes wie normale Funktionen aufgerufen? Einf. In die WI, DV-Infrastruktur WS 03/04.
Programmorganisation
IO - Hardwarestruktur, allgemein
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.
Betriebssysteme - Überblick
Arbeitstitel: DV-Infrastruktur
3 Prozessverwaltung  sieht einen Prozess als Objekt der Verwaltung,
Zentraler Verzeichnisdienst an Hochschulen
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Netzwerke im Dialogmarketing
CPU, Programmausführung
Kapitel 7.2 Dining philosophers problem
Systeme 1 Kapitel 5.1 Unix Scheduling WS 2009/101.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Threads Richard Göbel.
Kapitel 7 Prozesse und Threads
Ein Beispiel in Java.
Konstruktoren.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Windows Explorer.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Einführung Definitionen
Excel Kurs Teil I Excel starten, Verknüpfungen auf dem Desktop anlegen. F. Bäumer.
Einführung in Visual C++
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
DVG Einführung in Java1 Einführung in JAVA.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
7. Vorlesung Vererbung Einfach- und Mehrfachvererbung Polymorphismus
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
4. Vorlesung: Use Case Diagramme Fallbeispiel
8. Vorlesung: Klassendiagramm für Fallbeispiel
3. Vorlesung: UML Use Case Diagramme
6. Vorlesung: Statische Konzepte
12. Vorlesung: Aktivitätsdiagramme
5. Vorlesung: Grundkonzepte Objekt-Orientierung
10. Vorlesung: Dynamische Konzepte
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Hochschule der Medien | Studiengang Medienwirtschaft | Wintersemester 2003/042.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
Zum verständlich machen, wozu die Trigger-Funktion geeignet ist,
Excel 97 Einführung - Start -.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
25. Januar 2007Klasse IT '041 Projekt Solar Server Schulprojekt der Klasse IT `04.
CGI (Common Gateway Interface)
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Systemsoftware und Betriebssysteme
Overlay Funktion.
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
Vorgeschichte:. Der Prozess X befindet sich in der CPU in Ausführung
early binding (frühe Bindung) late binding (späte Bindung)
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Die Vereinsverwaltung unter Windows 2000 Anhand der folgenden Präsentation werden Sie mit der Verwaltung des Vereins unter Windows 2000 vertraut gemacht.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
2.3 Implementierung von Prozessen
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
Betriebssysteme Was ist ein BS?
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.
Konstruktoren.
Netzwerk - Programmierung
«Delegierter» Methoden Schablone Funktionszeiger
 Präsentation transkript:

Prozesse Einführung in WI 1 (DV-Infrastruktur) WS03/04

Einführung in WI 1 (DV-Infrastruktur) WS03/04

Prozesse, Threads Die Programmausführung geschieht über die sequentielle Abarbeitung der Instruktionen innerhalb des „Image“. Die dabei entstehende Ablaufbahn durch die Instruktionen bezeichnet man als Thread (Faden). Prozess mit 1 Thread Prozess mit 3 Threads Programmtext Thread Einführung in WI 1 (DV-Infrastruktur) WS03/04

Prozesse, Threads Einführung in WI 1 (DV-Infrastruktur) WS03/04

Einführung in WI 1 (DV-Infrastruktur) WS03/04

Einführung in WI 1 (DV-Infrastruktur) WS03/04

Prozesserstellung in Windows //Demoprogramm für den Systemaufruf: Starte Prozess #include <windows.h> int main (void) { STARTUPINFO si; PROCESS_INFORMATION pi; //Die STARTUPINFORMATION wird auf 0 gesetzt. ZeroMemory ( &si, sizeof si ); si.cb = sizeof (si); if ( CreateProcess ( NULL, "c:\\Program Files\\Microsoft Office\\OFFICE11\\winword.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) ==FALSE) MessageBox(NULL,"Pfad für winword.exe muss korrigiert werden","",MB_OK); return 0; } Systemaufruf mit Angabe der exe-Datei. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Prozesserstellung in UNIX Das Beispielprogramm bildet auf einfachste Weise ein Kommandozeilenprogramm (Shell) nach. Es wird mit fork() ein Child-Prozeß erzeugt, der mit execlp() eine Programmdatei zur Ausführung bringt. Der Parent-Prozeß wartet derweilen auf das Ende des Child-Prozesses. #include <stdio.h> #include <stdlib.h> Einführung in WI 1 (DV-Infrastruktur) WS03/04

Prozesserstellung in UNIX (Forts.) int main(void) { Prozesserstellung int pid, stop, status; pid=fork(); switch( pid ) { Angabe der “exe”-Datei case 0: /*Dies ist der Child-Prozess*/ if(execlp("ls", "ls", "-l", (char *)0)!=0) {perror("execlp"); exit(1);} case -1: perror("fork"); exit(0); default: /*Dies ist der Parent-Prozess*/ stop=wait(&status); } } Einführung in WI 1 (DV-Infrastruktur) WS03/04

Threaderstellung in Windows Funktion WorkThreadDriver( ) wird als Thread aufgerufen. pStatus=AfxBeginThread(WorkThreadDriver, (LPVOID)"A"); Argument für die Threadfunktion Einführung in WI 1 (DV-Infrastruktur) WS03/04

Threads Die Threads aller Prozesse werden zeitlich parallel ausgeführt. Dazu wird die CPU reihum oder über eine Priorität nacheinander an die einzelnen rechenbereite Threads vergeben. Rechenbereit: der Thread wartet nicht auf ein Ereignis. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Betriebsmittel CPU-Zeit Der Scheduler ist eine Routine innerhalb des Kernels, die für folgende Aufgaben zuständig ist: Mitschreiben, welche Threads existieren (in der Prozesstabelle) Vermerken, welcher Thread zu welchem Anteil die CPU schon bekommen hat Vermerken des Threadzustandes: Running: Thread hat gerade die CPU Ready: Thread wartet auf CPU Waiting: Thread wartet auf Beendigung von I/O oder auf ein anderes Ereignis Sleeping: Thread benötigt später die CPU Ändern des Threadzustands entsprechend einer neuen Situation Zuteilen der CPU dem nächsten Thread Einführung in WI 1 (DV-Infrastruktur) WS03/04

Beispiel Server (z.B. Internetserverprozess) Anforderung eines Client Warum Threads? Beispiel Server (z.B. Internetserverprozess) Anforderung eines Client Hole Antwort aus Datenbank Bearbeitungszeit Antwort an den Client Einführung in WI 1 (DV-Infrastruktur) WS03/04

Warum Threads? Der Serverprozess kann bei Ein-Thread-Betrieb während der Bearbeitungszeit keine neuen Anforderung von Clients (Internet-Browser) entgegen nehmen. Abhilfe: Der Serverprozess richtet für die Bearbeitung jeweils einen neuen Thread ein, in der Zwischenzeit kann er mit dem „Annahme“-Thread neue Anforderung aus dem Netz entgegen nehmen. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Einführung in WI 1 (DV-Infrastruktur) WS03/04

Motivation 2 Desktop-Rechner Warum Threads? Motivation 2 Desktop-Rechner Windowsprogramm: über einen Menupunkt wird eine Aktion abgerufen (z.B. Hole ein Dokument aus dem Internet). Beim Einthread-Betrieb ist bis zum Ende der Aktion das Fenster des Programms nicht mehr bedienbar (z.B. Breche Aktion ab). Lösung: Eigener Thread für die Aktion, das Fenster wird von dem anderen Thread bedient. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Scheduler Die Schedule-Funktion des Betriebssystems verteilt die CPU-Zeit auf die rechenbereiten Threads. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Typischer Ablauf eines Thread: CPU-Burst CPU- Ausführung Wartend Scheduler Typischer Ablauf eines Thread: CPU-Burst CPU- Ausführung Wartend IO-Burst Einführung in WI 1 (DV-Infrastruktur) WS03/04

…. Folge von CPU-Bursts und IO-Bursts Scheduler …. Folge von CPU-Bursts und IO-Bursts CPU-Burst: Instruktionen des Thread werden von der CPU ausgeführt IO-Burst: Der Thread wartet auf das Ende einer I/O-Operation, die er angestoßen hat. Während des IO-Burst ist der Thread nicht rechenbereit! Einführung in WI 1 (DV-Infrastruktur) WS03/04

Ein Thread hat überwiegend IO-Bursts: Scheduler Charakteristik: Ein Thread hat überwiegend IO-Bursts: Wenig Berechnung, viel Ein-/Ausgabeoperationen Ein Thread hat überwiegend CPU-Bursts: Viel Berechnungen, wenig Ein/Ausgabe Einführung in WI 1 (DV-Infrastruktur) WS03/04

Welchem Thread gibt der Scheduler die CPU? Verfahren: Priorität: Jeder Thread hat eine Prioritätsstufe, der Thread mit der höchsten erhält die CPU. Reihum: Jeder Thread erhält reihum für eine bestimmte Zeit (Zeitscheibe) die CPU. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Höchste „Produktivität“: Scheduler Höchste „Produktivität“: Threads mit überwiegend kurzen CPU-Bursts werden bevorzugt. Analog Anstellen Info-Stand des Baumarktes Bevorzugt man die Kunden mit kurz zu beantwortenden Fragen, so kann man sehr viel mehr Kunden zufrieden stellen. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Scheduler Problem: Threads mit niedriger Priorität (analog: Kunden, die eine zeitraubende Beratung benötigen) können „verhungern“ (engl. starvation). Einführung in WI 1 (DV-Infrastruktur) WS03/04

Threads werden in Prioritätsklassen eingeteilt. Scheduler Was wird verwendet? Threads werden in Prioritätsklassen eingeteilt. Innerhalb derselben Klasse ist ein Reihum-Betrieb (Round Robin). Gibt es in einer Klasse keinen Rechenbereiten Thread, so geht es zu nächst niedrigeren Klasse. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Die Zuordnung zu Prioritätsklassen kann dynamisch erfolgen. Scheduler Die Zuordnung zu Prioritätsklassen kann dynamisch erfolgen. Verbraucht ein Thread immer seine Zeitscheibe, so wird er als CPU-lastig festgestellt und in der Prio herabgestuft. Benötigt er immer von Zeitscheibe nur einen Teil, so wird er als IO-lastig festgestellt und in der Prio hochgestuft. (z.B. gemacht in Linux) Einführung in WI 1 (DV-Infrastruktur) WS03/04

Taskmanager, Karteikarte („Reiter“) Prozesse Scheduler Windows: Taskmanager, Karteikarte („Reiter“) Prozesse Eine Zeile mit der rechten Maustaste anklicken, Priorität verändern wählen. Die Prio-Stufe wird angezeigt, sie kann verändert werden. Länge der Zeitscheibe: 10 – 20 msec Bei Server-Rechnern eher länger! Einführung in WI 1 (DV-Infrastruktur) WS03/04

Warum klappt das Scheduling? Scheduler Warum klappt das Scheduling? Ein Thread wird durch einen Interrupt unterbrochen. Der Threadzustand wird gespeichert  u. a. die CPU-Register. Zu einem späteren Zeitpunkt kann durch Zurückladen des Threadzustandes der Thread an der Unterbrechungsstelle fortgesetzt werden. Bezeichnung: Threadumschaltung Einführung in WI 1 (DV-Infrastruktur) WS03/04

Was sind die Betriebsmittel eines Prozesses? Ziemlich abstrakter Begriff Einiges ist so trivial, dass man eine Erwähnung als überflüssig ansieht. Anderes sieht man in diesen Zusammenhang überhaupt nicht. Einführung in WI 1 (DV-Infrastruktur) WS03/04

CPU-Zeit: dies wurde bereits vorher abgehandelt. Betriebsmittel CPU-Zeit: dies wurde bereits vorher abgehandelt. Arbeitsspeicher: für das zu ladende Image, Stack, Datenfelder, Verwaltungsfelder für den Prozessdeskriptor und die Prozessumgebung. Bildschirm Tastatur Dateien Spezielle Geräte Objekte des Betriebssystems u.v.m. Einführung in WI 1 (DV-Infrastruktur) WS03/04

2 Arten von Betriebssysteme: z.B. Arbeitsspeicher Maus Betriebsmittel Die Bereitstellung dieser Betriebsmittel und die Verteilung auf die einzelnen Prozesse ist Sache des Betriebssystems. 2 Arten von Betriebssysteme: z.B. Arbeitsspeicher Maus 1 Raummultiplex 2 Zeitmultiplex Einführung in WI 1 (DV-Infrastruktur) WS03/04

Raummultiplex 2. Zeitmultiplex Betriebsmittel Raummultiplex 2. Zeitmultiplex Zu 1 Prozesse erhalten auf Dauer einen Teil des vorhandenen Betriebsmittels. Zu 2 Prozesse erhalten nacheinander Zugriff auf das Betriebsmittel. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Verwaltung der Betriebsmittel oft als Objekte des Betriebssystems. Mit dem Belegen eines Betriebsmittels (z.B. Öffnen einer Datei) erhält der Prozess einen „Handle“ zurück, mit dem er sich im Folgenden auf dieses Betriebsmittel bezieht. Einführung in WI 1 (DV-Infrastruktur) WS03/04

Prozessumgebung Betriebsmittel Prozess Handle Deskriptorfeld Einführung in WI 1 (DV-Infrastruktur) WS03/04

Einzige unterschiedliche Zuordnung: Threadverwaltung und die CPU-Zeit! Betriebsmittel Die Threads eines Prozesses sehen die selbe Prozessumgebung. Sie können daher alle Betriebsmittel des Prozesse nutzen. Einzige unterschiedliche Zuordnung: Threadverwaltung und die CPU-Zeit! Einführung in WI 1 (DV-Infrastruktur) WS03/04