34
Einführung in WI 1 (DV-Infrastruktur) WS03/04 1 Fachhochschul e Dortmund University of Applied Sciences Prozesse Prozesskonzept Prozess-ein Program m in Ausführung ÜblicherStart:übereine Kom m andozeileneingabe (Dialog)oderüber eine Jobeingabe (Batch)oderM ausklick. Das Bedienprogram m zB Shellrufteine System funktion "Starte Prozeß"auf.

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

Embed Size (px)

Citation preview

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

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.

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

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

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

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

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

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)

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

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.

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

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

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

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.

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

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>

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

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); }}

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

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

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

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.

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

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

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

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

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

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.

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

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

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

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.

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

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.

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

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

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

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!

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

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

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

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.

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

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.

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

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).

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

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.

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

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)

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

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!

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

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

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

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.

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

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.

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

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

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

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.

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

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.

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

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

FachhochschuleDortmundUniversity of Applied Sciences

Betriebsmittel

Prozessumgebung BetriebsmittelProzess

Handle Deskriptorfeld

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

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!