Betriebssysteme Kapitel E : Prozesse

Ähnliche Dokumente
Teil 3: Konzepte von Betriebssystemen

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Technische Informatik 1

Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Single- und Multitasking

Betriebssystem. Arten von Betriebssystemen. Zweiteilung des Betriebssystems. 5. Kapitel Systemsoftware: Prozesse und Prozesswechsel

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Dämon-Prozesse ( deamon )

Threads and Scheduling

Prozesse und Threads. Prozess. Trace. Einfachstes Prozessmodell. Traces

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Grundlagen der Informatik für Ingenieure I. 5. Prozessverwaltung - Einführung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Prozesse and Threads WS 09/10 IAIK 1

Kapitel III. Prozessverwaltung. VO Betriebssysteme

Prozesse. Vorlesung Betriebssysteme I. Zustandsmodell eines Prozesses. Virtuelle vs. reale CPU. Zustandsübergänge cont d

Prozesszustände (1a)

Literatur. Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 2

2Binden 3. und Bibliotheken

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

1 Prozesse und Scheduling (12 Punkte)

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus

Systemprogrammierung

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Prozesse und Threads. Peter Puschner Institut für Technische Informatik

Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Systemsoftware (SYS)

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Hello World! Eine Einführung in das Programmieren Das erste Programm

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Nebenläufige Programme mit Python

Domänenanalyse Threadverwaltung/Scheduling

Klausur WS 2009/2010

Praktikum aus Softwareentwicklung 2, Stunde 5

DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung

Betriebssysteme I WS 2016/17. Prof. Dr. Dirk Müller. 8 Betriebssystem-Grundlagen

Prozesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

6.Vorlesung Betriebssysteme Hochschule Mannheim

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet.

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Prozesse und Scheduling unter Linux (Kernel 2.4.XX)

VORSTELLUNG DER DIPLOMARBEIT

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme (BTS)

Betriebssysteme. Teil 13: Scheduling

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Lösung von Übungsblatt 7

Der Scheduler von Windows 2000 Konzepte und Strategien

Legende: Running Ready Blocked P1 P2 P3. t[ms] 1 Prozesse und Scheduling (16 Punkte)

Die Ausführung geschieht über die sequentielle Abarbeitung der Instruktionen.

Systemnahe Programmierung in C Übungen Jürgen Kleinöder, Michael Stilkerich Universität Erlangen-Nürnberg Informatik 4, 2011 U7.fm

Klausur Betriebssysteme

Immediate Priority Ceiling

Vorl. 6: Single- und Multitasking

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

B.5 Prozessverwaltung B.5. Prozessverwaltung Prof. Dr. Rainer Manthey Informatik II 1

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse: Prozesskontrollblock, -zustände, -umschaltung

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

U7 POSIX-Prozesse U7 POSIX-Prozesse

a) Welches der folgenden Zeichen weist im Shell-Prompt darauf hin, dass Sie mit normalen Benutzerrechten (also nicht als root) arbeiten?

Installationsanweisung Promira

Transkript:

Betriebssysteme Kapitel E : Prozesse 1

Inhalt Prozesse Zustand eines Prozesses» Kontext» Kontextswitch Prozessbeschreibungsblock PCB Zustandsübergänge» Zustandsdiagramm 2

Hinweis Ein Programm(code) kann zur Laufzeit mit mehreren Prozessen assoziiert werden Z.B. weil Quellcode eine Folge von Prozessen vorsieht, oder ein Programm mehrfach gestartet wird Zur Vereinfachung: Beschränkung auf Fall 1:1 Prozesse und / versus leichtgewichtige Prozesse = Threads Details, warum light weight, später Vernachlässigen vorerst, dass Prozesse in Threads aufgespaltet gedacht sein können 3

Prozess Bündel von Threads Die Ausführung eines Programms erzeugt einen Prozess Generell: Ein Bündel von Prozessen» Meist gesehen als: Threads Hier vereinfacht: Nur ein Prozess» Entspricht: Prozessbündel enthält nur 1 Thread 1 Programm = 1 N Prozesse 1 Prozess = 1 N Threads 4

Sequentieller Prozess Sequentielle Prozesse: Zu jedem Zeitpunkt t wird genau eine Anweisung (Instruktion) ausgeführt Was eine Anweisung ist, hängt vom Grad der Abstraktion ab CPU t1 t2 t3 Anweisung 1 Anweisung 2 Anweisung 3 5

Prozess - Task Manchmal wird statt Prozess auch Task verwendet. Englisch: task::= job of work, mission insofern: Task eher saloppe Wortwahl Ist in der Literatur nicht exakt definiert: Oft: Task = Prozess = = Bündel von Threads + beteiligte Ressourcen 6

Kontext für einen Prozess P Alle von P zum Zeitpunkt t i belegten Betriebsmittel bestimmen seinen Zustand, und bilden den Kontext von P (zum Zeitpunkt t i ) CPU mit Registerinhalten (insb. PC!) Zugewiesener Speicher (samt Inhalt) Zeiger auf Warteschlangen, Files (+Speicher) Betriebssystem-Ressourcen (zb Fenster) Prozessnummer Priorität und sonstige Schedulinginformation 7

Kontextswitch Umschalten von P1 auf P2 bewirkt Kontextswitch Entzug der CPU, Retten der Registerinhalte» Überlegen Sie: Warum nicht auch CPU-Cache? Zuteilung der CPU an P2 Offensichtlich: Zustand eines Prozesses muss gerettet werden Vgl. Situation beim Interrupt 8

Prozess- Beschreibungsblock Jeder Prozess wird im Betriebssystem durch einen Prozessbeschreibungsblock (process control block, PCB) auch genannt task control block, TCB dargestellt. 9

Zweck des PCB PCB und die enthaltene Prozessnummer (proc_id) identifizieren einen Prozess P Der PCB (TCB) dient zum Speichern aller veränderlichen Informationen über einen Prozess Beschreibt wesentliche Teile des Kontexts von P Pro Prozess existiert genau ein PCB 10

Inhalt Prozess- Beschreibungsblock Der Aufbau des Prozessbeschreibungsblockes (PCB) ist i.a. von Betriebssystem zu Betriebssystem unterschiedlich Auf der nächsten Folie werden daher nur beispielhaft eine Struktur und Inhalte gezeigt, die typisch sind 11

Beispiel für Struktur des PCB Zeiger auf nächsten / vorigen PCB Prozessnummer / Prozess-ID Prozesszustand Programmzähler + Registerinhalte Priorität und Schedulinginformation Zeiger für Warteschlangen Speichergrenzen Sonstige prozessspezifische Informationen wie Liste der offenen Dateien, Accounting-Infos,... (vergleiche Silberschatz/Galvin Bild 4.2) 12

Beispiel Linux Die Prozessdaten bestehen aus zwei Strukturen task_struct (include/linux/sched.h); ca. 400 Zeilen» Allgemeine und Architektur-unabhängige Daten» Zustand, Flags, Priorität, Scheduling-Daten, CPU-Daten (Welche/wieviele CPUs sind erlaubt), Exit-Code, PID, Stack canary, Parent/Child-Prozesse, offene Dateien, Signale, Spinlocks/Mutexes, Virtual-Memory-Daten, thread_info (arch/x86/include/asm/thread_info.h)» Daten spezifisch für die konkrete Hardware-Architektur; x86: ca. 20 Zeilen» Zeiger auf task_struct (siehe oben), execution domain, flags, Status, aktuelle CPU, unterbrechbar (preemption), Adress-Grenze,» Steht adressmäßig unterhalb des Kernel-Stacks Kernel-Stack darf daher nicht zu groß werden! Zugriff auf aktuellen Prozess ist daher sehr einfach 13

Beispiel Linux Bovet/Cesati: Understanding the Linux Kernel http://www.makelinux.net/books/ulk3/understandlk-chp-3-sect-2 14

Typische Operationen auf PCB Operationen auf Prozesse sind meist Operationen auf die zugehörigen PCBs create (erzeugen), terminate (beenden), fork (aufspalten in einen parallelen Prozess), set priority (Priorität ändern) set state (in einen Zustand bringen) get state (den Zustand auslesen)... 15

Prozessverwaltung Die Anzahl der Prozesse, die im System ablaufen, ändert sich in der Zeit: Prozesse werden erzeugt Prozesse werden beendet Anzahl PCBs variabel Verkettete Listen von PCBs Doppelt-verkettete Listen (auf Basis dynamischer Speicherverwaltung) für die Prozessbeschreibungsblöcke Erlaubt ein Durchlaufen in beide Richtungen 16

Besondere Zustände: Zustandsübergänge Im Prinzip unterscheidet man Laufend (running, active, rechnend) Wartend (waiting, blocked) Bereit (ready) (trivial): finished, beendet Herstellerabhängig gibt es Varianten oder Verfeinerungen Unterscheidung, ob im User/Kernel Mode Unterschiedliche Ebenen für Warten 17

Prozesszustände Zustandsdiagramm Das Zustandsdiagramm beschreibt die Übergänge active neu bereit rechnend beendet wartend 18

Auslöser für Zustandsüberführung a) Prozess erhält vom Scheduler die CPU b) Interrupt entzieht dem Prozess die CPU c) Prozess löst I/O etc. aus und muss warten d) Wartebedingung beendet (z.b. I/O fertig) e) Prozess abgeschlossen bereit neu d a b rechnend c e beendet wartend (vergleiche Silberschatz/Galvin Bild 4.1) 19

Zustandsdiagramm Unix/Linux Zombie: Terminierter Kindprozess (= Speicher/ freigegeben), steht jedoch noch in der Prozesstabelle, Elternprozess (=erzeugender Prozess) kann (muss) davon noch z.b. Rückgabewert abfragen 20

Zustandsdiagramm für Windows XP Verfeinert auf Thread-Ebene Quelle: Microsoft Create and initialize thread object (neu) Reinitialize Initialized Place in ready queue Terminated (beendet) Waiting (wartend) Wait is complete Ready (bereit) Execution completes Thread waits on an object handle Wait is complete Kernel stack outswapped Kernel stack inswapped Select for execution Preempt Transition Running (rechnend) Preempt (or time quantum ends) Standby Context-switch to it and start its execution (dispatching) 21