Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Prozesse Einführung in WI 1 (DV-Infrastruktur) WS03/04."—  Präsentation transkript:

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

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

3 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

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

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

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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

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

16 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

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

18 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

19 …. 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 Raummultiplex 2. Zeitmultiplex
Betriebsmittel Raummultiplex 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

32 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

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

34 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


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

Ähnliche Präsentationen


Google-Anzeigen