Technische Informatik 1

Ähnliche Dokumente
Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

Teil 3: Konzepte von Betriebssystemen

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Betriebssysteme KU - Einführungstutorium

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

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Grundlagen Rechnerarchitektur und Betriebssysteme

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

Betriebssysteme Kapitel E : Prozesse

Leichtgewichtsprozesse

Wie groß ist die Page Table?

Betriebssysteme Vorstellung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Echtzeit-Multitasking

Technische Informatik 1 - HS 2017

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Echtzeit-Multitasking

Single- und Multitasking

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

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

Threads and Scheduling

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

2Binden 3. und Bibliotheken

Klausur Betriebssysteme

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Systemprogrammierung

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

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

Zwei Möglichkeiten die TLB zu aktualisieren

RO-Tutorien 15 und 16

Prozesse and Threads WS 09/10 IAIK 1

Prozesszustände (1a)

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

Tutorium Rechnerorganisation

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Echtzeitbetriebssysteme

RTOS Einführung. Version: Datum: Autor: Werner Dichler

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

5 Kernaufgaben eines Betriebssystems (BS)

(Cache-Schreibstrategien)

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Überlegungen beim Entwurf eines Betriebssystems

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

Betriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme

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

Linux Paging, Caching und Swapping

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

Virtueller Speicher und Memory Management

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

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

Systemsoftware (SYS)

Computer-Systeme Teil 15: Virtueller Speicher

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57

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

Dämon-Prozesse ( deamon )

4. Übung - Rechnerarchitektur/Betriebssysteme

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Lösung von Übungsblatt 2

Konzepte von Betriebssystemkomponenten

Lebenszyklus von Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

VORSTELLUNG DER DIPLOMARBEIT

Paging. Einfaches Paging. Paging mit virtuellem Speicher

1 Prozesse und Scheduling (12 Punkte)

Betriebssysteme Teil 7: Konzept der Threads

Bibliotheks-basierte Virtualisierung

Betriebssysteme (BTS)

5.5.5 Der Speicherverwalter

... Client 1. Request. Reply. Client 2. Server. Client n. Günther Bengel Grundkurs Verteilte Systeme 3. Auflage Vieweg Verlag 2004 ISBN

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

Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard

Betriebssysteme und Microkern

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

3.5 Unterbrechungsbehandlung (interrupt handling)

Transkript:

Technische Informatik 1 7 Prozesse und Threads Lothar Thiele Computer Engineering and Networks Laboratory

Betriebssystem 7 2

7 3

Betriebssystem Anwendung Anwendung Anwendung Systemaufruf (syscall) Betriebssystem Hardware Betriebssystem Konzepte: Systemaufrufe (system call, syscall) Parallele Ausführung > TI2 Prozesse und Threads Sicherheit, Schutzmechanismen (virtueller) Speicher File System Ein/Ausgabe, Unterbrechungen, DMA Netzwerk, Schnittstellen, Protokolle 7 4

Aufgaben eines Betriebssystems Illusionist Virtualisierung: Betriebssystem erzeugt für die Anwendungen die Illusion eigener, unabhängiger Ressourcen (Prozessor, (virtueller) Speicher, Netzwerk, ). Mögliche Nutzung einer Ressource durch mehrere Anwendungen. Multiplexen: Aufteilung einer Ressource. Aggregation: Zusammenfügen mehrerer Ressourcen zu einer neuen Ressource. Beispiele: virtueller Speicher virtuelle Maschine Files und Filesystem Prozesse und Threads 7 5

Aufgaben eines Betriebssystems Schiedsrichter Anwendungen sollten sich nicht gegenseitig stören: Hardware muss zwischen den Anwendungen aufgeteilt werden (Prozessor, Speicher, Ein/Ausgabeeinheiten): Isolieren der Anwendungen voneinander. Schutzmechanismen: Eine Anwendung kann die Daten einer anderen nicht schreiben und/oder lesen. Eine Anwendung darf einer anderen Anwendung die Ressourcen nicht entziehen. 7 6

Aufgaben eines Betriebssystems Assistent Bereitstellen einer abstrakten Schnittstelle: Gemeinsame Funktionalität für alle Anwendungen (Prozesse, Threads, Ein/Ausgabe, Uhren, sekundärer Speicher, Netzwerk, Tastatur, ). Unabhängigkeit von der Hardwareplattform. Keine Notwendigkeit für eine hardwarenahe Programmierung (Assembler). 7 7

Allgemeine Struktur Anwendung System Bibliothek Anwendung System Bibliothek Betriebssystem Prozesse System Bibliothek Systemaufruf (syscall) Kern Benutzer Modus (user mode) Kern Modus (kernel mode) CPU1 CPU2 DMA Netzwerk Assistenz Funktionen: z.b. printf(); strcmp(); z.b. zum Ausführen von Systemaufrufen (syscalls) aus einer Anwendung: mkdir, mount 7 8

Allgemeine Struktur Kernel: Teil des Betriebssystems. Ausführung beim Einschalten, Systemaufruf, Unterbrechungen, Ausnahme (exception). Zugriff zu privilegierten Instruktionen und Registern (z.b. Zugriff auf speziellen privilegierten Adressbereich, Instruktionen für den TLB oder den Cache). Programmcode und Daten liegen in einem speziellen, vom user mode getrennten Adressbereich. Aufgaben: Management von Ressourcen, z.b. (virtueller) Speicher, Ein Ausgabeeinheiten, Prozesse und Threads, Schutzmechanismen, Synchronisation und Kommunikation zwischen Prozessen. 7 9

Allgemeine Struktur Beispiel MIPS: user process syscall user process user mode kernel mode kernel process Der Wechsel zwischen Benutzer Modus und Kern Modus wird unter Zuhilfenahme von Coprocessor 0 durchgeführt. Coprozessor 0 kann nur im Kern Modus benutzt werden (privilegierte Instruktionen). Das Bit 1 des Status Registers gibt an, ob das Programm im Kern Modus oder Benutzer Modus arbeitet (Status[1] == 0 : Kern Modus). 7 10

Allgemeine Struktur Beispiel TLB Miss Ausnahme MIPS: Sprung zur Adresse 8000 0000 hex Dort steht beispielsweise folgendes Programm: TLBmiss: mfc0 $k1, Context # copy address of PTE into $k1 lw $k1, 0($k1) # put PTE into $k1 mtc0 $k1, EntryLo # put PTE into special register EntryLo tlbwr # put EntryLo into TLB entry at Random eret # return from TLB miss exception Kern Adressraum Benutzer Adressraum FFFF FFFF hex 8000 0000 hex 7FFF FFFF hex 0000 0000 hex PTE: page table entry physikalischer Speicher Basis Adresse der Seitentabelle und virtuelle Seitennummer der fehlenden Seite 7 11

Prozesse 7 12

Prozess (Wiederholung) «Prozess»: Die Instanz eines Programms (oder eines Teils davon), die vom Prozessor zu einem gewissen Zeitpunkt mit konkreten Eingabedaten ausgeführt wird. Ein Prozess besteht aus dem zugehörigen Programm Code sowie dem derzeitigen Zustand. Eigenschaften: Ein Prozess hat seinen eigenen privaten Adressraum. Zu seinem Zustand gehören zum Beispiel die Prozessor Register, der Programmzähler und Daten. 7FFF FFFF hex 0000 0000 hex Stack Dynamic data Static data Text typischer Adressraum eines Prozesses Aktivierungsrahmen von Unterprogrammen Dynamischer Speicher, der zur Laufzeit alloziert wird und nicht zum Kontext eine Aktivierungsrahmens gehört. Zur Initialzeit eines Prozesses bekannte Daten. Ausführbare Instruktionen 7 13

Multitasking Multitasking bezeichnet die Fähigkeit, mehrere Aufgaben auf einer Rechenressource (scheinbar) gleichzeitig auszuführen ((quasi )parallel). Dabei werden die verschiedenen Prozesse in so kurzen Abständen immer abwechselnd aktiviert, dass der Eindruck der Gleichzeitigkeit entsteht. Vier unabhängige Programmzähler Multitasking Prozess Scheduling Vier Prozesse: A, B, C, D 7 14

Prozessverwaltung Eine Prozessverwaltung enthält die folgenden Hauptkomponenten: Speicherverwaltung, z.b. virtueller Speicher mittels Seitentabellen. Verarbeitung der Prozesszustände. «Process Control Block (PCB)» zur Beschreibung des Prozesskontextes. «Scheduler» zur Planung der Prozesswechsel. Das Betriebssystem setzt diese Komponenten ein um neue Prozesse zu generieren, Prozesse auszuführen, ihnen Betriebsmittel zukommen zu lassen (z.b. Ein und Ausgabe), sie zu synchronisieren und Datenaustausch zwischen Prozessen zu ermöglichen, und sie zu beenden. 7 15

Prozesszustände Jedem Prozess ist ein eigener Zustand zugeordnet: Ein/Ausgabe oder Ereignis eingetreten erzeugt blockiert Scheduler wählt anderen Prozess warten auf Ein/Ausgabe oder Ereignis neu bereit Scheduler wählt aktiv exit terminiert beendet diesen Prozess 7 16

Prozesszustände Zustand Englisch Bedeutung neu new Die für einen Prozess notwendigen Datenstrukturen wurden erstellt und im Betriebssystemkern vermerkt. bereit / lauffähig ready / runnable Der Prozess ist bereit zur Ausführung. wartend / blockiert waiting / blocked Der Prozess wartet auf den Eintritt eines Ereignisses, z.b. den Abschluss einer E/A Operation oder auf die Synchronisierung mit einem anderen Prozess. aktiv / laufend running Der Prozess wird durch eine der verfügbaren CPUs ausgeführt. beendet terminated Der Prozess wurde beendet. Alle wichtigen Betriebsmittel (Speicher, CPU, Ein/Ausgabe Einheiten, ) sind freigegeben. 7 17

«Process Control Block (PCB)» Als «Process Control Block» bezeichnet man eine Datenstruktur im Betriebssystem, die den derzeitigen Prozesskontext beschreibt: Link Prozesszustand Prozess Identifikationsnummer Programmzähler CPU Register Speicher Management (z.b. Zeiger auf Seitentabelle) Scheduling Information Process Control Block (PCB) Liste von PCBs 7 18

«Process Control Block (PCB)» Die Kontexte aller Prozesse (PCBs) werden üblicherweise in verketteten Listen verwaltet. Alle Prozesse in einer solchen Liste haben den gleichen Prozesszustand. 7 19

Prozesswechsel Übergang zwischen Prozesszuständen. running Speziell zu oder vom Zustand aktiv (running): ready/ waiting ready/ waiting running ready/ waiting running 7 20

Schutzmechanismen 7 21

Schutzmechanismen Aufgaben: Es sollte möglich sein, das es Prozessen nicht erlaubt ist, Speicherbereiche anderer Prozesse (oder gar des Betriebssystems) zu lesen oder zu schreiben. Benutzerprozesse dürfen keine Seitentabellen verändern. Benutzerprozesse sollten nur eingeschränkten Zugang zu Systemressourcen erhalten, zum Beispiel zu Ein/Ausgabe Einheiten. Mechanismen: Zusätzliche Informationen über Lese und Schreibberechtigungen in der Seitentabelle. Unterstützung unterschiedlicher Prozessmodi ( user und kernel ): Einige Operationen und Zugriffe können nur im kernel mode ausgeführt werden, z.b. TLB Veränderung, Änderungen der Seitentabellen oder Änderung von Zeigern auf Seitentabellen. Übergang der CPU zwischen den verschiedenen Modi. 7 22

Übersicht virtuelle Adressen Bearbeitung durch Kern Prozesse (Betriebssystem). page table process 1 page table process 2 page table process 3 FFFF FFFF hex Kern Adressraum 8000 0000 hex statische und dynamische Daten; Stack Text (Kern Prozesse) CPU TLB Caches Miss und Seitenfehler Behandlung durch das Betriebssystem 7FFF FFFF hex Benutzer Adressraum sekundärer Speicher Seitenaustausch durch Betriebssystem 0000 0000 hex physikalischer Speicher 7 23

TLB und Seitentabelle mit Zugriffsschutz Erweiterung der Valid Dirty Ref Bits um Zugriffsschutz Bits. Sie geben die erlaubte Verwendung der Seite an: Lesen (r), Schreiben (w), Ausführen (x). Bei Verletzung des Zugriffs wird eine Ausnahme erzeugt, die vom Betriebssystem bearbeitet wird. 7 24

Gemeinsam genutzte Seiten («shared pages») Daten und Programme können mittels Seitentabellen von mehreren Prozessen gemeinsam genutzt werden. Der Zugriff kann über die Zugriffsschutz Bits (protection bits) geregelt werden. Beispiel: Eine Kopie des Programms wird von 3 Prozessen gemeinsam genutzt. Das Programm erscheint in jedem Prozess an der gleichen virtuellen Adresse. Daten werden nicht geteilt, sie sind für jeden Prozess unterschiedlich. Daten sind aber an der gleichen virtuellen Adresse; damit kann das jeweilige (gleiche) Programm sie finden. 7 25

Beispiel geteilte Seiten 7 26

Beispiel geteilte Seiten 7 27

Beispiel geteilte Seiten 7 28

Threads 7 29

Prozesse und Threads Prozesse: Prozesse teilen sich die Ressourcen des Computers. Prozesse sind im Prinzip unabhängig voneinander (privater Speicherbereich). Prozesswechsel durch das Betriebssystem ist aufwändig. Threads: Diese gehören zu einem Prozess und werden im Kontext des Prozesses ausgeführt. Ein Thread nutzt die dem Prozess zugeordneten Ressourcen (z.b. Speicher). Jeder Thread führt einen Teil einer Anwendung aus, verfügt über einen eigenen PC, Stack, etc.. Globale Variablen nicht pro Thread, aber pro Prozess. pro Prozess vorhanden virtueller Adressraum globale Variablen Ressourcen, z.b. geöffnete Dateien pro Thread vorhanden Programmzähler, Prozessorregister Zustand Stack 7 30

Prozesse mit einem oder mehreren Threads Text Data Data Text Text Data dynamic Data static Data dynamic Data static Data Prozess mit einem Thread Prozess mit mehreren Threads 7 31

Kernel Space Threads gegenüber User Space Threads User Space Threads: Der Kern des Betriebssystems kennt die Threads nicht. Der Prozess ist verantwortlich für die Verwaltung der «Thread Control Blocks (TCB)», der Speicherbereiche (Stacks) der Threads und für das Thread Scheduling. Vorteile: schneller Wechsel zwischen Threads, schnelle Erzeugung von neuen Threads. Kernel Space Threads: Das gesamte Management der Threads geschieht im Kernel. Vorteile: flexibles Scheduling, zentralisierte Speicherverwaltung, sicherere Abarbeitung 7 32

Kernel Space Threads gegenüber User Space Threads System Library Thread Control Blocks Process Control Blocks Thread Control Blocks Process Control Blocks User Space Thread Kernel Space Thread 7 33

Scheduling 2. Process picks a thread User Space Thread Kernel Space Thread 7 34

Hardware Threads Moderne CPUs bieten Threads direkt auch auf Hardware Ebene an. Zu diesem Zweck erhalten CPUs mehrere unabhängige Registersätze, Programmzähler, d.h. jeweils einen Registersatz pro möglichem Thread. Formen des Hardware Multithreading Blocked multithreading Ausführen eines Threads bis die Ausführung anhält (z.b. wegen Cache Miss) Interleaved multithreading In jedem Takt wird zwischen Threads umgeschaltet. Falls ein Thread blockiert ist, wird seine Ausführung in diesem Takt übersprungen. Simultaneous multithreading Instruktionen verschiedener Threads werden gleichzeitig geladen («multiple issue»). 7 35

Single Issue Architektur 7 36

Multipe Issue Architektur 7 37