fachhochschule dortmund university of applied sciences einführung in wi 1 (dv-infrastruktur)...
TRANSCRIPT
Einführung in WI 1 (DV-Infrastruktur) WS03/04 1
FachhochschuleDortmundUniversity of Applied Sciences
Prozesse
Prozesskonzept
Prozess- ein Programm in Ausführung
Üblicher Start: über eine Kommandozeileneingabe (Dialog) oder über eine Jobeingabe (Batch) oder Mausklick. Das Bedienprogramm zB Shell ruft eine Systemfunktion "Starte Prozeß" auf.
Einführung in WI 1 (DV-Infrastruktur) WS03/04 2
FachhochschuleDortmundUniversity of Applied Sciences
Ein Prozess besteht aus folgenden Komponenten: Prozesssteuerblock (ProcessControlBlock, PCB)
oder Prozessdeskriptor Datenstruktur zur Verwaltung eines Prozesses
Programmadresse: Zeiger auf einen im Speicher geladenen Programmtext (Image aus der exe-Datei) Programmtext im Speicher
Stack Datenteil Daten im Speicher
Einführung in WI 1 (DV-Infrastruktur) WS03/04 3
FachhochschuleDortmundUniversity of Applied Sciences
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 Thread Prozess mit 3 Threads
Einführung in WI 1 (DV-Infrastruktur) WS03/04 4
FachhochschuleDortmundUniversity of Applied Sciences
Prozesse, Threads
Eine Anwendung, die als Prozess abläuft, wird Task genannt.
Ein Prozess ist die organisatorische Hülle für die Threads der Programmausführung. Ein Prozess besitzt mindestens einen Thread.
Ein Thread teilt mit seinen zugeordneten Threads den Programmtext die Daten die vom System zugewiesenen Betriebsmittel (außer
CPU-Zeit)
Einführung in WI 1 (DV-Infrastruktur) WS03/04 5
FachhochschuleDortmundUniversity of Applied Sciences
Schema der normalen Programmausführung
Es gibt mindestens einen Prozeß, der mit demSystemstart eingerichtet wird und mit demSystemende beendet wird.
Seine Struktur besteht aus einer Endloschleife. Bei jedem Durchlauf wird eine
Programmausführung als Child-Prozeß erstelltund nach dem Ablauf gelöscht.
Für die Prozeßoperationen ruft dieser Prozeßdie zur Verfügung stehendenSystemfunktionen auf.
Einführung in WI 1 (DV-Infrastruktur) WS03/04 6
FachhochschuleDortmundUniversity of Applied Sciences
Beispiele für die „Parent“-Prozesse der Anwendungen MS-DOS: "Command.com"-Prozeß UNIX: "Root"-Prozeß, Shell-Prozesse Windows: Programm-Manager
SYSTEMFUNKTIONEN
Systemaufrufe Systemprozeß (Parent) Childprozeß
1
eine Programm- ausführung
2
1 Prozeßerstellung2 Synchronisation Prozeßende
Einführung in WI 1 (DV-Infrastruktur) WS03/04 7
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
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.
FachhochschuleDortmundUniversity of Applied Sciences
12Einfü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 13
FachhochschuleDortmundUniversity of Applied Sciences
Warum Threads?
Beispiel Server (z.B. Internetserverprozess)
Anforderung eines Client Hole Antwort aus Datenbank
BearbeitungszeitAntwort an den Client
Einführung in WI 1 (DV-Infrastruktur) WS03/04 14
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
SERVER Serverprozeß CLIENTS
Thread 1 für Anforderung von \\1\a \\1\a
Thread 2 für Anforderungvon \\2\x
NETZ \\2\x
Thread 3 für Anforderungvon \\3\pp Thread 4 für
zentrale Netz-anbindung Datenpakete \\3\pp
im Netz
Einführung in WI 1 (DV-Infrastruktur) WS03/04 16
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
Scheduler
Die Schedule-Funktion des Betriebssystems verteilt die CPU-Zeit auf die rechenbereiten Threads.
Einführung in WI 1 (DV-Infrastruktur) WS03/04 18
FachhochschuleDortmundUniversity of Applied Sciences
Scheduler
Typischer Ablauf eines Thread:CPU-Burst
CPU-Ausführung
Wartend
IO-Burst
Einführung in WI 1 (DV-Infrastruktur) WS03/04 19
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
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.
Einführung in WI 1 (DV-Infrastruktur) WS03/04 22
FachhochschuleDortmundUniversity of Applied Sciences
Scheduler
Höchste „Produktivität“:Threads mit überwiegend kurzen CPU-Bursts werden bevorzugt.
Analog Anstellen Info-Stand des BaumarktesBevorzugt 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
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
Scheduler
Windows:Taskmanager, Karteikarte („Reiter“) ProzesseEine 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 msecBei Server-Rechnern eher länger!
Einführung in WI 1 (DV-Infrastruktur) WS03/04 27
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
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.
Einführung in WI 1 (DV-Infrastruktur) WS03/04 29
FachhochschuleDortmundUniversity of Applied Sciences
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
FachhochschuleDortmundUniversity of Applied Sciences
Betriebsmittel
Die Bereitstellung dieser Betriebsmittel und die Verteilung auf die einzelnen Prozesse ist Sache des Betriebssystems.
2 Arten von Betriebssysteme:z.B.1. Arbeitsspeicher2. Maus1 Raummultiplex 2 Zeitmultiplex
Einführung in WI 1 (DV-Infrastruktur) WS03/04 31
FachhochschuleDortmundUniversity of Applied Sciences
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.
Einführung in WI 1 (DV-Infrastruktur) WS03/04 32
FachhochschuleDortmundUniversity of Applied Sciences
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.
Einführung in WI 1 (DV-Infrastruktur) WS03/04 33
FachhochschuleDortmundUniversity of Applied Sciences
Betriebsmittel
Prozessumgebung BetriebsmittelProzess
Handle Deskriptorfeld
Einführung in WI 1 (DV-Infrastruktur) WS03/04 34
FachhochschuleDortmundUniversity of Applied Sciences
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!