[PDF] [PDF] 4 Foliensatz Betriebssysteme und Rechnernetze - Prof Dr

24 mai 2016 · wie das Prozessmanagement mit Prozesstabellen, welche Schritte Betriebssysteme beim Erstellen von Prozessen (via fork oder exec) oder 



Previous PDF Next PDF





[PDF] Betriebssysteme - TU Ilmenau

Betriebssysteme: ws 2019/20 H -A Schindler Folie: 2 - 14 Prozessmanagement Betriebs- system Anwendungschnittstelle (Application Programmer's Interface, 



[PDF] Betriebssysteme - FIM

Mühlbacher 7 Betriebssysteme: Erste Grundlagen Spezielle Aufgaben eines BS ○ Prozessmanagement → Welches Programm bekommt wieviel CPU?



[PDF] CPU-Scheduling - Betriebssysteme

Betriebssysteme Der Prozessmanager ▫ Scheduler: - Komponente, die die Planung der Betriebsmittelzuteilung (Scheduling = Ablaufplanung) übernimmt



[PDF] Betriebssysteme - Mobile und Verteilte Systeme LMU München

Das Prozeßmanagement in UNIX (System V) verwendet das Konzept der Integra- tion von Betriebssystem-Funktionen in die Nutzerprozesse, das hier vorgestellt 



[PDF] Betriebssysteme - Fakultät für Mathematik und

stellt Basis-Dienstleistungen (Dateizugriff, Prozessmanagement) Programme interagieren mit dem Betriebssystem-Kernel durch Aufrufe von genau



[PDF] Betriebssysteme I - Betriebssysteme und verteilte Systeme

Betriebssysteme / verteilte Systeme Betriebssysteme I Betriebssystem: unterst ¨utzt laufende Anwendungen ➥ Dateimanager Prozeßmanagement fork



[PDF] Embedded- und RT-Betriebssysteme

Prozeßmanagement – Erzeugung Betriebssysteme und Echtzeitsysteme • Es gibt braucht ein Echtzeitsystem zwangsläufig ein Betriebssystem? 3



[PDF] 4 Foliensatz Betriebssysteme und Rechnernetze - Prof Dr

24 mai 2016 · wie das Prozessmanagement mit Prozesstabellen, welche Schritte Betriebssysteme beim Erstellen von Prozessen (via fork oder exec) oder 



[PDF] Betriebssysteme - TU Darmstadt

Frage: Wie passt das zusammen? Prozessmanagement Page 31 TU Darmstadt Allgemeine Informatik I, WS 07/08

[PDF] Betriebssysteme: PalmOS

[PDF] Betriebsüberwachung - Anciens Et Réunions

[PDF] Betriebswirt/-in (VWA)

[PDF] Betriebswirt/in (VWA) Bachelor of Arts

[PDF] Betriebswirte

[PDF] Betriebswirtschaftslehre - Hochschule für Technik und Wirtschaft Berlin

[PDF] Betriebszweigabrechnung im landwirtschaftlichen Betrieb

[PDF] Betrifft: Kündigung meines Vertrages

[PDF] Betrifft: Zusätzliche Qualifikation in „Business English“

[PDF] betroffene Orte

[PDF] Betroffenen-Sprechstunde für psychisch

[PDF] Betrogen mit Vision

[PDF] Betrug im Gesundheitswesen

[PDF] Betrug oder Wahrheit? Der Wunderheiler Bruno Gröning siegt!

[PDF] Betrüger betrügen Betrüger

4. Foliensatz

Betriebssysteme und Rechnernetze

Prof. Dr. Christian Baun

Frankfurt University of Applied Sciences

(1971-2014: Fachhochschule Frankfurt am Main) Fachbereich Informatik und Ingenieurwissenschaften christianbaun@fb2.fra-uas.de Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 1/51

Lernziele dieses Foliensatzes

Am Ende dieses Foliensatzes kennen/verstehen Sie...

Hardwarekontext

Systemkontext

Zustands-Prozessmodellewie dasProzessmanagementmitProzesstabellen, Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 2/51

Prozess und Prozesskontext

Wir wissen bereits...

EinProzess(lat.procedere= voranschreiten) ist eine Instanz eines Programms, das Auf Computern sind immer mehrere Prozesse in Ausführung Die CPU wird im raschen Wechsel zwischen den Prozessen hin- und hergeschaltet

Ein Prozess umfasst außer dem Quelltext noch seinenKontext3 Arten von Kontextinformationen speichert das Betriebssystem:

Benutzerkontext

Daten im zugewiesenen Adressraum (virtuellen Speicher)=?Foliensatz 2Hardwarekontext

Register in der CPU

Systemkontext

Informationen, die das Betriebssystem über einen Prozess speichert Die Informationen im Hardwarekontext und Systemkontext verwaltet

das Betriebssystem imProzesskontrollblock=?Folie 6Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 3/51

Hardwarekontext

DerHardwarekontextumfasst die Inhalte der Register in der CPU

zum Zeitpunkt der Prozess-AusführungRegister, deren Inhalt bei einem Prozesswechsel gesichert werden muss:

Basepointer - zeigt auf eine Adresse im Stack

Befehlsregister (Instruction Register) - speichert den aktuellen BefehlAkkumulator - speichert Operanden für die ALU und deren Resultate

Page-table base Register - Adresse wo die Seitentabelle des laufenden ProzessesEinige dieser Register wurden in Foliensatz 2 vorgestellt Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 4/51

Systemkontext

DerSystemkontextsind die Informationen, die das Betriebssystem

über einen Prozess speichertBeispiele:

Eintrag in der Prozesstabelle

Prozessnummer (PID)

Prozesszustand

Information über Eltern- oder Kindprozesse

Identifier - Zugriffsrechte auf Ressourcen

Quotas - Zur Verfügung stehende Menge der einzelnen Ressourcen

Laufzeit

Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 5/51 Jeder Prozess hat seinen eigenen Prozesskontext, der von den führt das Betriebssystem die

ProzesstabelleEs ist eine Liste aller

einen Eintrag, den

Prozesskontrollblock

Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 6/51

ProzesswechselBildquelle:http://www.cs.odu.edu/˜cs471w/spring10/lectures/Processes.htmBeim Prozesswechsel wird der

Kontext (=?Inhalt der

CPU-Register) im

die CPU, wird sein Kontext mit dem Inhalt des

Prozesskontrollblocks

wiederhergestellt Jeder Prozess ist zu jedem Zeitpunkt in einem bestimmtenZustand

=?Zustandsdiagramm der ProzesseProf. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 7/51

Wir wissen bereits...

Jeder Prozess befindet sich zu jedem Zeitpunkt in einem Zustand Zustands-Prozessmodell des Betriebssystems abFrage Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 8/51

2-Zustands-Prozessmodell

2-Zustands-Prozessmodell (Implementierung)

Die Ausführungsreihenfolge der Prozesse legt derSchedulerfest, der

einenScheduling-Algorithmus(siehe Foliensatz 5) verwendetProf. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 10/51

Konzeptioneller Fehler des 2-Zustands-Prozessmodells Das 2-Zustands-Prozessmodell geht davon aus, dass alle Prozesse immer zur Ausführung bereit sindDas ist unrealistisch!

Warten auf das Ergebnis eines anderen Prozesses

Warten auf eine Reaktion des Benutzers

Prozesse diebereit(ready) sindProzesse dieblockiert(blocked) sind

=?3-Zustands-ProzessmodellProf. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 11/51

3-Zustands-Prozessmodell (1/2)

Jeder Prozess befindet sich in

die CPU und führt auf dieser

wartet aktuell auf die Zuteilung der CPUblockiert(blocked):Der Prozess kann momentan nicht weiter ausgeführt werden und wartet

auf das Eintreten eines Ereignisses oder die Erfüllung einer BedingungDabei kann es sich z.B. um eine Nachricht eines anderen Prozesses oder

Synchronisationsereignisses handeln

Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 12/51

3-Zustands-Prozessmodell (2/2)

add: Prozesserzeugung und

Einordnung in die Liste der

Prozesse im Zustandbereitretire: Der rechnende Prozess terminiertBelegte Ressourcen werden freigegebendispatch: Die CPU wird einem Prozess im Zustandbereitzugeteilt,

der nun in den Zustandrechnendwechseltblock: Der rechnende Prozess wartet auf eine Nachricht oder ein

Synchronisationsereignis und wechselt in den Zustandblockierttimeout: Dem rechnenden Prozess wird wegen einer Entscheidung des

Schedulers die CPU entzogen und er wechselt in den Zustandbereitready: Der Grund, warum der der Prozess blockiert ist, existiert nicht

mehr und der Prozess wechselt in den ZustandbereitProf. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 13/51

3-Zustands-Prozessmodell - Realisierung (1/2)

Warteschlange für Prozesse im ZustandbereitWarteschlange für Prozesse im ZustandblockiertMehreren Warteschlangen für die blockierten Prozesse sind sinnvoll

Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 14/51

3-Zustands-Prozessmodell - Realisierung (2/2)

Mehrere Warteschlangen für blockierte Prozesse

So macht es Linux in der Praxis

Beim Zustandsübergang wird der Prozesskontrollblock des Prozesses aus

der alten Zustandsliste entfernt und in die neue Zustandsliste eingefügtFür Prozesse im Zustandrechnendexistiert keine eigene ListeProf. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 15/51

5-Zustands-Prozessmodell

Es ist empfehlenswert, das 3-Zustands-Prozessmodell um 2 weitere vom Betriebssystem noch nicht in die Warteschlange für Prozesse im Zustandbereiteingefügtexit: Der Prozess ist fertig abgearbeitet oder wurde beendet, aber sein Prozesskontrollblock existiert aus verschiedenen Gründen nochGrund für die Existenz der

Anzahl der ausführbaren

Prozesse limitiert, um Speicher

zu sparen und den Grad des

Mehrprogrammbetriebs

festzulegen Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 16/51

6-Zustands-Prozessmodell

Ist nicht genügend physischer Hauptspeicher für alle Prozesse verfügbar,

müssen Teile von Prozessen ausgelagert werden=?SwappingDas Betriebssystem lagert Prozesse aus, die im ZustandblockiertsindDadurch steht mehr

Hauptspeicher den

Prozessen in den

bereitzur VerfügungEs macht also Sinn, das

5-Zustands-

Prozessmodell um den

Prozesszustand

suspendiert (suspended) zu erweitern Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 17/51

7-Zustands-Prozessmodell

Wurde ein Prozess suspendiert, ist es besser, den frei gewordenen Platz im Hauptspeicher zu verwenden, um einen ausgelagerten Prozess zu

aktivieren, als ihn einem neuen Prozess zuzuweisenDas ist nur dann sinnvoll, wenn der aktivierte Prozess nicht mehr

blockiert istIm

6-Zustands-Prozessmodell

ausgelagerten Prozesse zu unterscheiden in:blockierte ausgelagerte

Prozessenicht-blockierte

ausgelagerte Prozesse Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 18/51

Prozessmodell von Linux/UNIX (etwas vereinfacht)

der Elternprozess den Rückgabewert (via Systemaufrufwait) abgefragt hatProf. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 19/51

einen neuen Prozess zu erzeugenRuft ein Prozessfork()auf, wird eine identische Kopie als neuer

Prozess gestartetDer aufrufende Prozess heißtVaterprozessoderElternprozessDer neue Prozess heißtKindprozessDer Kindprozess hat nach der Erzeugung den gleichen Programmcode

Mitvforkexistiert eine Variante vonfork, die nicht den Adressraum des Elternprozesses kopiert, und somit weniger

Verwaltungsaufwand alsforkverursacht. Die Verwendung vonvforkist sinnvoll, wenn der Kindprozess direkt nach seiner

Erzeugung durch einem anderen Prozess ersetzt werden soll. Für diese Vorlesung istvforknicht relevant.Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 20/51

Prozesse unter Linux/UNIX erzeugen mitfork(2/2)Ruft ein Prozessfork()auf, wird eine exakte Kopie erzeugtDie Prozesse unterscheiden sich nur in den Rückgabewerten vonfork()1#include< stdio.h>2#include< unistd.h>3#include< stdlib.h>4

5voidm ain(){ 6intr ueckgabewert= f ork();7

8if( rueckgabewert< 0 ){ 9//H atf ork()d enR ückgabewert- 1,i ste inF ehlera ufgetreten.10//S peichero derP rozesstabelles indv oll.11...12}13if( rueckgabewert> 0 ){ 14//H atf ork()e inenp ositivenR ückgabewert, s indw iri mE lternprozess.15//D erR ückgabewerti std ieP IDd esn eue rzeugtenK indprozesses.16...17}18if( rueckgabewert= =0 ){ 19//H atf ork()d enR ückgabewert0 ,s indw iri mK indprozess.20...21}22}Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 21/51

Prozessbaum

Durch das Erzeugen immer neuer Kindprozesse mitfork()entsteht ein

beliebig tiefer Baum von Prozessen (=?Prozesshierarchie)Das Kommandopstreegibt die laufenden Prozesse unter Linux/UNIX

als Baum entsprechend ihrer Vater-/Sohn-Beziehungen aus$ pstree init -+-Xprt |-acpid |-gnome -terminal -+-4*[bash] | |-bash---su---bash | |-bash -+-gv---gs | | |-pstree | | |-xterm ---bash---xterm ---bash | | |-xterm ---bash---xterm ---bash---xterm ---bash | |?-xterm ---bash| |-gnome -pty-helpe |?-{gnome -terminal}|-4*[gv---gs] Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 22/51

Informationen über Prozesse unter Linux/UNIX

p s - aF

UID PID PPID C SZ RSS PSR STIME TTY TIME CMD

root 1 0 0 517 700 0 Nov10 ? 00:00:00 init user 4311 1 0 9012 20832 0 Nov10 ? 00:00:05 xfce4 -terminal user 4321 4311 0 951 1984 0 Nov10 pts/0 00:00:00 bash root 4380 4347 0 753 1128 0 Nov10 pts/3 00:00:00 su root 4381 4380 0 920 1972 0 Nov10 pts/3 00:00:00 bash user 20920 1 0 1127 2548 0 09:45 pts/1 00:00:00 gv SYS_WS0708. ps user 20923 20920 0 4587 9116 0 09:45 pts/1 00:00:10 gs -sDEVICE=x11 user 21478 4321 0 1570 2996 0 10:28 pts/0 00:00:00 xterm user 21479 21478 0 950 1936 0 10:28 pts/4 00:00:00 bash user 21484 21479 0 1993 5036 0 10:28 pts/4 00:00:00 xterm user 21485 21484 0 949 1936 0 10:28 pts/5 00:00:00 bash user 21491 21479 0 1569 2872 0 10:29 pts/4 00:00:00 xterm user 21492 21491 0 949 1924 0 10:29 pts/6 00:00:00 bash user 21497 21479 0 1570 2880 0 10:29 pts/4 00:00:00 xterm user 21498 21497 0 949 1924 0 10:29 pts/7 00:00:00 bash user 21556 21485 0 672 976 0 10:31 pts/5 00:00:00 p s - AF RSS (Resident Set Size) = Belegter physischer Speicher (ohne Swap) in kB

Heap und StackTIME = Rechenzeit auf der CPU

PSR = Dem Prozess zugewiese CPU

Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 23/51

voneinander arbeiten und unterschiedliche Speicherbereiche verwenden1#include< stdio.h>2#include< unistd.h>3#include< stdlib.h>4

5voidm ain(){ 6inti ;7if( fork())8//H iera rbeitetd erV aterprozess9for( i= 0 ;i < 5 000000;i ++)10printf("\n Vater: %i", i);11else12//H iera rbeitetd erK indprozess13for( i= 0 ;i < 5 000000;i ++)14printf("\n Kind : %i", i);15}Kind : 0

Kind : 1

Kind : 21019

Vater: 0

Vater: 50148

Kind : 21020

Kind : 129645

Vater: 50149

Vater: 855006

Kind : 129646

In der Ausgabe sind die Prozesswechsel zu sehen

Der Wert der Schleifenvariablenibeweist, dass Eltern- und Kindprozess Prof. Dr. Christian Baun - 4. Foliensatz Betriebssysteme und Rechnernetze - FRA-UAS - SS2019 24/51

Die PID-Nummern von Eltern- und Kindprozess (1/2)

1#include< stdio.h>2#include< unistd.h>3#include< stdlib.h>4

5voidm ain(){ 6intp id_des_Kindes;7

8pid_des_Kindes = fork();9

10//E sk amz ue inemF ehler- ->P rogrammabbruch11if( pid_des_Kindes< 0 ){ 12perror("\n Es kam bei fork() zu einem Fehler!");13exit(1);14}15

16//V aterprozess17if( pid_des_Kindes> 0 ){ 18printf("\n Vater: PID: %i", getpid());19printf("\n Vater: PPID: %i", getppid());20}21

22//K indprozess23if( pid_des_Kindes= =0 ){ 24printf("\n Kind: PID: %i", getpid());25printf("\n Kind: PPID: %i", getppid());26}27}Das Beispiel

erzeugt einen

KindprozessKindprozess und

quotesdbs_dbs26.pdfusesText_32