Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/041 Prozesse.

Ähnliche Präsentationen


Präsentation zum Thema: "Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/041 Prozesse."—  Präsentation transkript:

1 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/041 Prozesse

2 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/042

3 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/043 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). Programmtext Thread Prozess mit 1 ThreadProzess mit 3 Threads

4 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/044 Prozesse, Threads

5 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/045

6 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/046

7 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/047 Prozesserstellung in Windows //Demoprogramm für den Systemaufruf: Starte Prozess #include 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.

8 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/048 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

9 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/049 Prozesserstellung in UNIX (Forts.) int main(void) { Prozesserstellung intpid, 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); } }

10 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0410 Threaderstellung in Windows Funktion WorkThreadDriver( ) wird als Thread aufgerufen. pStatus=AfxBeginThread(WorkThreadDriver, (LPVOID)"A"); Argument für die Threadfunktion

11 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0411 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.

12 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0412 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

13 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0413 Warum Threads? Beispiel Server (z.B. Internetserverprozess) Anforderung eines Client Hole Antwort aus Datenbank Bearbeitungszeit Antwort an den Client

14 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0414 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.

15 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0415

16 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0416 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.

17 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0417 Scheduler Die Schedule-Funktion des Betriebssystems verteilt die CPU-Zeit auf die rechenbereiten Threads.

18 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0418 Scheduler Typischer Ablauf eines Thread: CPU-Burst CPU- Ausführung Wartend IO-Burst

19 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0419 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!

20 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0420 Scheduler Charakteristik: Ein Thread hat überwiegend IO-Bursts: Wenig Berechnung, viel Ein-/Ausgabeoperationen Ein Thread hat überwiegend CPU-Bursts: Viel Berechnungen, wenig Ein/Ausgabe

21 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0421 Scheduler 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.

22 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0422 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.

23 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0423 Scheduler Problem: Threads mit niedriger Priorität (analog: Kunden, die eine zeitraubende Beratung benötigen) können verhungern (engl. starvation).

24 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0424 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.

25 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0425 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)

26 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0426 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!

27 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0427 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

28 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0428 Betriebsmittel 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.

29 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0429 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.

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

31 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0431 Betriebsmittel 1.Raummultiplex 2. Zeitmultiplex Zu 1 Prozesse erhalten auf Dauer einen Teil des vorhandenen Betriebsmittels. Zu 2 Prozesse erhalten nacheinander Zugriff auf das Betriebsmittel.

32 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0432 Betriebsmittel 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.

33 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0433 Betriebsmittel Prozessumgebung Betriebsmittel Prozess Handle Deskriptorfeld

34 Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/0434 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!


Herunterladen ppt "Fachhochschule Dortmund University of Applied Sciences Einführung in WI 1 (DV-Infrastruktur) WS03/041 Prozesse."

Ähnliche Präsentationen


Google-Anzeigen