Betriebssysteme (BTS)



Ähnliche Dokumente
Systemsoftware (SYS)

5.Vorlesung Betriebssysteme Hochschule Mannheim

6.Vorlesung Betriebssysteme Hochschule Mannheim

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

Anleitung über den Umgang mit Schildern

Grundlagen verteilter Systeme

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

Zählen von Objekten einer bestimmten Klasse

Round-Robin Scheduling (RR)

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Eigene Dokumente, Fotos, Bilder etc. sichern

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Primzahlen und RSA-Verschlüsselung

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Einführung in die technische Informatik

Monitore. Klicken bearbeiten

Erweiterungen Webportal

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

Win-Digipet V 9.2 Premium Edition Wie bastele ich mir steuerbare Kontakte. Wie bastele ich mir steuerbare Kontakte? -Quick-And-Dirty-Lösung-

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

BELIEBIG GROßE TAPETEN

Lehrer: Einschreibemethoden

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Wie halte ich Ordnung auf meiner Festplatte?

Zwischenablage (Bilder, Texte,...)

Wie Sie mit Mastern arbeiten

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Der neue persönliche Bereich/die CommSy-Leiste

Professionelle Seminare im Bereich MS-Office

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

2A Basistechniken: Weitere Aufgaben

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

teamsync Kurzanleitung

S7-Hantierungsbausteine für R355, R6000 und R2700

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Kurzanleitung RACE APP

! " # $ " % & Nicki Wruck worldwidewruck

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Stand: Adressnummern ändern Modulbeschreibung

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Datensicherung. Beschreibung der Datensicherung

How to do? Projekte - Zeiterfassung

Softwarelösungen: Versuch 4

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Symbolbearbeitung mit EPLAN 5.60/5.70 DIC_***D.SYM

Excel Auswertungen in XAuftrag / XFibu

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Speicher in der Cloud

Schnell, sicher, umweltfreundlich und sparsam

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

Lizenzierung von SharePoint Server 2013

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Jederzeit Ordnung halten

Dämon-Prozesse ( deamon )

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

OPERATIONEN AUF EINER DATENBANK

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Um eine Person in Magnolia zu erfassen, gehen Sie wie folgt vor:

ecaros2 - Accountmanager

Professionelle Seminare im Bereich MS-Office

AutoTexte und AutoKorrektur unter Outlook verwenden

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Arbeiten mit UMLed und Delphi

Erstellen der Barcode-Etiketten:

Verwalten und Organisieren von Fotos,

Einführung in. Logische Schaltungen

Kontakte Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Enigmail Konfiguration

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Anleitung zur Installation des Printservers

Wie verbindet man Nokia 6600 mit Oxygen Phone Manager II for Symbian OS phones ( )

Workflows verwalten. Tipps & Tricks

Kapitel 3 Bilder farblich verändern - Arbeiten mit Objekten

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Geld Verdienen im Internet leicht gemacht

1 Vom Problem zum Programm

Anwahlprogramm. zur. Modem-Schnittstelle TH004

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen.

Erstellen von x-y-diagrammen in OpenOffice.calc

Dokumentation zur Versendung der Statistik Daten

Dokumentation IBIS Monitor

5 Speicherverwaltung. bs-5.1 1

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

AutoCAD Dienstprogramm zur Lizenzübertragung

Transkript:

5.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 30.3.2007

Wiederholung vom letzten Mal Redundant Array of independent Disks (RAID-Level 0, 1 und 5) Daten von Ein- und Ausgabegeräten lesen Zeichen-/blockorientierte Geräte Adressraum Speicherkapazitäten (16, 32, 64 Bit) Virtueller Speicher Memory Management Unit Segmentorientierter Speicher Seitenorientierter Speicher Adressumwandlung bei segmentorientiertem und seitenorientiertem Speicher 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 2

Heute Systemaufrufe (System Calls) Prozesse Prozess-Kontext Prozesszustände Prozessübergänge Prozessmodelle 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 3

Systemaufrufe (1) Die Menge der Systemaufrufe (System Calls) ist die Schnittstelle, die das Betriebssystem den Anwendungsprogrammen zur Verfügung stellt. Systemaufrufe stellen für die Benutzer-Prozesse die einzige Schicht zum Zugriff auf die Betriebssystemfunktionalität, also die Benutzung der Hardware eines Computer-Systems dar. Ein Systemaufruf ist ein Funktionsaufruf im Betriebssystem, der einen Sprung vom User Mode (Benutzermodus) in den priviligierten Kernel Mode (Kernel-Modus) auslöst (= Moduswechsel). Die Systemaufrufe erlauben es den Benutzerprogrammen, Prozesse, Dateien und andere Betriebsmittel zu erzeugen und zu verwalten. Wenn die Operation, wegen der der Systemaufruf ausgelöst wurde, erledigt ist, wird die Kontrolle dem Benutzerprogramm zurückgeben. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 4

Schichtenmodell von Linux/UNIX-Betriebssystemen Benutzer Bibliothekenschnittstelle Systemaufrufschnittstelle Benutzerschnittstelle Shell, Anwendungsprogramme (Shell, Editoren, Compiler,...) Standardbibliothek (fork, open, close, read, write,...) Linux/UNIX-Betriebssystem (Speicherverwaltung, Dateisystem, Prozessverwaltung, E/A,...) Hardware (CPU, Hauptspeicher, Festplatten, I/O-Geräte,...) 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 5

Systemaufrufe (2) Einfach gesagt ist ein Systemaufruf eine Anfrage eines Prozesses an den Kernel, um einen Dienst des Kernel in Anspruch zu nehmen. Der Mechanismus der Systemaufrufe ist bei allen Betriebssystemen unterschiedlich, wenn auch vergleichbar. Systemaufrufe werden genauso wie Bibliotheksfunktionen aufgerufen. In einem C-Programm ist kein Unterschied erkennbar. Im Gegensatz zu einer Bibliotheksfunktion, wird die Leistung eines Systemaufrufs im Betriebssystemkern (Kernel), also außerhalb des Adressraums des aufrufenden Prozesses, erbracht. Im Prinzip können bei Systemaufrufen zwischen Prozess und Kernel beliebige Daten ausgetauscht werden. In der Praxis beschränkt man sich im Design auf einfache Datentypen, die leicht zwischen den Adressräumen transportiert werden können. Dabei handelt es sich um Integer-Werte, Zeigerwerte in Registern und Puffer, die kopiert werden müssen. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 6

Systemaufruf ioctl() Der Systemaufruf ioctl() ermöglicht es Programmen unter Linux/UNIX-Betriebssystemen gerätespezifische Befehle abzusetzen. Die Syntax des Systemaufrufs ist: ioctl (Filedeskriptor, Aktionsanforderung, Parameter); Typische Einsatzszenarien von ioctl() sind: Formatierung einer Diskettenspur, Initialisieren eines Modems oder einer Soundkarte, usw. ioctl() ermöglicht die Kommunikation mit und Steuerung von zeichenorientierten Geräten (Maus, Tastatur, Drucker, Terminals,...) und blockorientierten Geräten (Festplatten, CD-/DVD-Laufwerke und Disketten-Laufwerke,...). Weitere Systemaufrufe unter Linux/UNIX sind: poll, select, mmap, writev, write, fsync, idle, umask, chroot, dup, pipe, exit,... Gute Übersicht: LINUX System Call Quick Reference von Jialong He. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 7

Systemaufrufe und Bibliothek Moderne Betriebssysteme stellen eine Bibliothek bereit, die sich logisch zwischen den Benutzer-Prozessen und dem Kern befindet. Die Bibliothek ist für die Vermittlung der Kommunikation der Benutzer- Prozesse mit dem Kern und die Moduswechsel zwischen Benutzermodus und Kernel-Modus zuständig. Vorteile, die der Einsatz einer Bibliothek mit sich bringt, sind eine erhöhte Portabilität, da kein oder nur sehr wenig Bedarf besteht, dass die Applikationen direkt mit dem Kern des Betriebssystems kommunizieren und eine erhöhte Sicherheit, da die Applikationen nicht selbst den Wechsel in den Kernel-Modus durchführen können. Beispiele für eine solche Bibliothek sind die Standard C Library (UNIX), die GNU C-Bibliothek glibc (Linux), die C Library Implementationen (BSD) und die Microsoft C/C++ Runtime Library. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 8

read(fd, buffer, nbytes); Return zum Aufrufer Systemaufruf in den Kern 5 Put code for read in register Systemaufrufbehandlung Bibliotheksfunktion read 4 10 Erhöhe Stackpointer 11 Rufe read auf 3 Push fd 2 Push &buffer 1 Push nbytes 6 9 Benutzerprogramm ruft read auf Benutzeradressraum Kerneladressraum Verteilung 7 8 Quelle: Andrew S. Tannenbaum, Moderne Betriebssysteme 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 9

Schritt für Schritt (1) Bevor die Bibliotheksfunktion für read aufgerufen wird, die dann wiederrum den Systemaufruf read ausführt, legt das Programm in Schritt 1-3 die Parameter auf den Stack. In Schritt 4 erfolgt der Sprung in die Bibliotheksfunktion. Die Bibliotheksfunktion speichert in Schritt 5 die Nummer des Systemaufrufs da, wo das Betriebssystem es erwartet, z.b. in einem Register. In Schritt 6 wird die TRAP-Funktion ausgeführt, um vom normalen Benutzermodus in den priviligierten Kernel-Modus zu wechseln. Der Programmcode im Kernel springt anhand der Nummer des Systemaufrufs zu dem richtigen Systemaufruf, der in einer Tabelle aus Funktionszeigern mit allen Systemaufrufen steht. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 10

Schritt für Schritt (2) Die Nummer des Systemaufrufs ist ein Index für den richtigen Eintrag in der Tabelle der Systemaufrufe (Schritte 7), die das Betriebssystem kennt. In Schritt 8 startet der Systemaufruf. Sobald der Systemaufruf abgeschlossen ist, kann in Schritt 9 die Kontrolle an die Bibliothek zurückgegeben werden, die die TRAP-Funktion ausführte. Diese Funktion kehrt danach in Schritt 10 zum Benutzerprogramm so zurück, wie es auch eine normale Funktion getan hätte. Damit der Systemaufruf beendet werden kann, muss das Benutzerprogramm in Schritt 11 genau wie nach jedem Funktionsaufruf den Stack aufräumen. Das Programm kann jetzt ganz normal weiterarbeiten. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 11

Beispiel für einen System Call #include <syscall.h> #include <unistd.h> #include <stdio.h> #include <sys/types.h> int main(void) { long ID1, ID2; // Direkter Systemaufruf ID1 = syscall(sys_getpid); printf ("syscall(sys_getpid)=%ld\n", ID1); // Von der glibc ausgeführter Systemaufruf ID2 = getpid() printf ("getpid()=%ld\n", ID2); } return(0); 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 12

Definition: Prozesse Ein Prozess ist ein Programm, dass sich in Ausführung bzw. Bearbeitung befindet (lat. procedere = voranschreiten). Prozesse sind dynamische Objekte und repräsentieren sequentielle Aktivitäten in einem Computersystem. Ein Prozess umfasst außer dem Programmcode noch den Prozesskontext und seit UNIX einen geschützten Prozessadressraum: Der Prozesskontext wird wesentlich durch den Inhalt der Register in der CPU und die Daten im Hauptspeicher bestimmt. Der Prozessadressraum ist eine Liste von Speicherstellen (virtueller Speicher), in denen der Prozess lesen und schreiben darf. Auf einem Computersystem sind immer mehrer Aktivitäten (Prozesse) in Ausführung. Der Prozessor wird also im raschen Wechsel zwischen den Aktivitäten hin- und hergeschaltet. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 13

Der Prozess-Kontext Drei Arten von Kontextinformation speichert das Betriebssystem: Benutzer-Kontext Hardware-Kontext System-Kontext Die Informationen im Hardware-Kontext und System-Kontext werden vom Betriebssystem im Prozesskontrollblock verwaltet. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 14

Benutzer-Kontext Der Benutzer-Kontext umfasst die Daten des Prozesses im zugewiesenen Adressraum. Jedem Prozess wird ein eigener Adressraum zugeordent, in dem sich u.a. das ausführbare Programm und die Programmdaten befinden. Der Adressraum ist eine Liste von Speicherstellen, in denen der Prozess lesen und schreiben darf. Die Speicherstellen sind von der Adresse 0 an aufwärts durchnummieriert. Der Adressraum ist eine Abstraktion des physischen Speichers und unabhängig von der verwendeten Speichertechnologie. = Virtueller Speicher 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 15

Hardware-Kontext Der Hardware-Kontext umfasst die Inhalte der Register in der CPU zum Zeitpunkt der Prozess-Ausführung und die Seitentabelle. Einige wichtige Register, deren Inhalt bei einem Kontextwechsel gesichert werden muss, sind: Befehlszähler Stack-Pointer Integer-Register Floating-Point-Register Diese Informationen sind wichig, wenn ein Prozess im Rahmen des Multitaskings bei einem Kontextwechsel durch einen anderen Prozess unterbrochen wird. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 16

System-Kontext Das System-Kontext sind die Informationen, die das Betriebssystem über einen Prozess speichert. Beispiele sind: Prozessnummer (PID) Prozesszustand Information über Eltern- oder Kindprozesse Prioritäten Identifier Zugriffsrechte auf Ressourcen Quotas Zur Verfügung stehde Menge der einzelnen Ressourcen Laufzeit Geöffnete Dateien Zugeordnete Geräte 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 17

Prozesse (1) Jeder Prozess hat seinen eigenen Prozesskontext, der von den Kontexten der anderen Prozesse meist unabhängig ist. Immer wenn eine Aktivität bzw. ein Prozess den Prozessor abgibt, wird ihr Kontext, also der Inhalt der CPU-Register an einer sicheren Stelle gerettet (zwischengespeichert). Erhält der Prozess wieder den Zugriff auf die CPU, wird der Inhalt des Kontext wiederhergestellt und die Register werden mit den zuvor gespeicherten Daten geladen. Prozessmanagement und Prozessinteraktion machen den nichtmonopolisierten, geschützten Zugriff auf CPU und Speicher erst möglich. Jeder Prozess befindet sich zu jedem Zeitpunkt in einem bestimmten Zustand. Dieser Zustand gibt an, ob der Prozess gerade auf der CPU ausgeführt wird bzw. ausgeführt werden kann. = Zustandsdiagramm der Prozesse 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 18

Prozesszustände Ein Prozess wird zu Beginn der einer Programmausführung erzeugt und bei der Terminierung des Programms beendet. Die Ausführung eines Programms kann zur Erzeugung bzw. Beendigung weiter Prozesse führen. Jeder Prozess befindet sich zu jedem Zeitpunkt in einem Zustand. Wie viele unterschiedliche Zustände es gibt, hängt vom Prozessmodell des Betriebssystems ab. Frage: Wie viele unterschiedliche Prozesszustände braucht ein Prozessmodell mindestens? 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 19

Das 2-Zustands-Prozessmodell Prinzipiell genügen zwei Prozesszustände, denn ein Prozess kann die CPU zugeteilt haben (rechnend) oder er wartet auf die Zuteilung der CPU (nicht rechnend). Da die nicht-zuteilung der CPU für einen Prozess verschiedene Ursachen haben kann, kann das Prozessmodell praktisch beliebig verfeinert werden. nicht rechnend Zuteilung der CPU Entzug der CPU assign resign rechnend Start Terminierung 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 20

Konzeptioneller Fehler des 2-Zustands-Prozessmodells Das 2-Zustands-Prozessmodell geht davon aus, dass alle Prozesse immer zur Ausführung bereit sind. Das ist aber unrealistisch. Es gibt fast immer Prozesse, die blockiert sind und z.b. auf das Ergebnis eines E/A-Geräts oder eines anderen Prozesses warten. Lösung: Die nicht rechnenden Prozesse müssen in zwei Gruppen unterschieden werden Prozesse die bereit (ready) sind. Prozesse die blockiert (blocked) sind. = 3-Zustands-Prozessmodell 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 21

Das 3-Zustands-Prozessmodell Beim 3-Zustands-Prozessmodell befindet sich jeder Prozess in einem der drei Zustände: rechnend (running): Der Prozess besitzt den Zugriff auf die CPU und führt auf dieser Instruktuktionen aus. bereit (ready): Der Prozess könnte unmittelbar Instruktionen auf der CPU ausführen und wartet aktuell auf die Zuteilung der CPU. blockiert (blocked): Der Prozess kann momentan nicht weiter ausgeführt werden und wartet aktuell auf das Eintreten eines Ereignisses oder einer Bedingung. Dabei kann es sich z.b. um eine Nachricht eines anderen Prozesses oder eines Eingabe-/Ausgabegeräts oder aber um das Eintreten eines bestimmten Synchronisationsereignisses handeln. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 22

Prinzip des 3-Zustands-Prozessmodells Ereignis eingetreten ready blockiert (blocked) Warten auf Ereignis block bereit Zuteilung der CPU assign rechnend (ready) (running) Entzug der CPU resign add retire Start Terminierung 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 23

Prozessübergänge add: Prozesserzeugung durch einen Programmstart oder einen anderen Prozess und Einordnung in die Liste der Prozesse im Zustand bereit. retire: Der aktuell rechnende Prozess terminiert. Alle durch den Prozess belegten Ressourcen werden freigegeben. assign: Die CPU wird einem Prozess im Zustand bereit zugeteilt, der nun mit der CPU arbeiten kann und in den Zustand rechnend wechselt. block: Der rechnende Prozess wartet auf eine Nachricht oder ein Synchronisationsereigniss und wechselt in den Zustand blockiert. resign: Dem rechnenden Prozess wird wegen einer Entscheidung des Schedulers die CPU entzogen und er wechselt in den Zustand bereit. ready: Die Bedingung, wegen der der Prozess blockiert wurde, ist nun erfüllt und der Prozess wechselt in den Zustand bereit. Die Zustandsübergänge sind die Aufgabe des Dispatchers. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 24

Das 5-Zustands-Prozessmodell Es kann empfehlenswert sein, das 3-Zustands-Prozessmodell um zwei weitere Prozesszustände zu erweitern. neu (new): Der Prozess ist erzeugt, wurde aber vom Betriebssystem noch nicht der Menge der Prozesse zugefügt, die unmittelbar Instruktionen auf der CPU ausführen könnten und auf die Zuteilung der CPU warten. exit (exit): Der Prozess existiert noch, wurde vom Betriebssystem aber aus der Menge der ausführbaren Prozesse entfernt. Die Prozesszustände neu und exit haben durchaus ihre Berechtigung. Auf manchen Computer-Systemen wird die Anzahl der ausführbaren Prozesse limitiert, um Ressourcen (Speicher) zu sparen. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 25

Prinzip des 5-Zustands-Prozessmodells Ereignis eingetreten ready blockiert (blocked) Warten auf Ereignis block bereit Zuteilung der CPU assign rechnend (ready) Entzug der CPU resign (running) enter exit neu (new) beendet (exit) add retire Start Terminierung 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 26

Das 6-Zustands-Prozessmodell Ist nicht genügend (realer) Hauptspeicher für alle laufenden Prozesse verfügbar, was häufig der Fall ist, müssen Teile von Prozessen oder ganze Prozesse ausgelagert werden. Dieser Vorgang des Auslagerns wird als Swapping bezeichnet. Ein intelligentes Betriebssystem wird Prozesse auslagern, die im Zustand blockiert sind. Die ausgelagerten Prozesse werden in eine Queue auf die Festplatte geschrieben. Durch den freigewordenen Platz kann ein Prozess in der Suspend Queue oder ein anderer Prozess in den Speicher geladen und von der CPU ausgeführt werden. Es macht also durchaus Sinn, das 5-Zustands-Prozessomodell um einen weiteren Prozesszustand suspendiert (suspended) zu erweitern. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 27

Prinzip des 6-Zustands-Prozessmodells suspendiert suspendieren (suspended) blockiert Warten auf Ereignis Ereignis eingetreten (blocked) block ready aktivieren bereit Zuteilung der CPU assign rechnend (ready) Entzug der CPU resign (running) enter exit neu (new) beendet (exit) add retire Start Terminierung 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 28

Optimierung des 6-Zustands-Prozessmodells Wenn ein Prozess ausgelagert (suspendiert) wurde, ist es besser, den frei gewordenen Platz im Hauptspeicher zu verwenden einen ausgelagerten Prozess zu aktivieren, als einen neuen Prozess zu nehmen. Dieses Vorgehen macht aber nur Sinn, wenn der aktivierte Prozess nicht mehr blockiert ist. Was im 6-Zustands-Prozessmodell fehlt, ist die Möglichkeit, die ausgelagerten Prozesse in blockierte und nicht-blockierte Prozesse zu unterscheiden. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 29

Prinzip des 7-Zustands-Prozessmodells blockiert, suspendiert aktivieren suspendieren ready blockiert (blocked) ready block bereit, suspendiert enter aktivieren enter bereit (ready) assign resign rechnend (running) exit neu (new) beendet (exit) add retire Start Terminierung 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 30

Prozessmodell von Linux/UNIX Unter Linux/UNIX-Betriebssystemen gibt es mehr als die bereits bekannten Prozesszustände = 9-Zustands-Prozessmodell. Der Zustand rechnend (running) wird unterteilt in die Zustände user rechnend (kernel running) für Prozesse, die im normalen Modus User Mode (Benutzermodus) laufen kernel rechnend (user running) für Prozesse, die im priviligierten Kernel-Modus laufen. Der Zustand bereit (ready) wird unterteilt in die Zustände bereit (ready) für Prozesse, die neu in den Speicher geladen wurde oder aufgeweckt wurden. verdrängt (preempted) für Prozesse, die durch einen Timeout in ihrer Ausführung unterbrochen wurden. 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 31

Die Namen der Prozesszustände variieren Einige Prozesszustände haben unter Linux/UNIX andere Namen Der Prozesszustand exit heißt zombie Der Prozesszustand suspendiert heißt swapped Der Prozesszustand blockiert heißt swapped Der Prozesszustand neu heißt created 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 32

Prinzip des 9-Zustands-Prozessmodells asleep, swapped suspendieren asleep im Speicher verdrängt (preempted) return user rechnend wake up Ereignis tritt ein wake up warten auf Ereignis sleep block bereit, swapped suspendieren aktivieren bereit (ready) assign kernel rechnend system call, interrupt return zu wenig Speicher enter enter ausreichend Speicher exit created (new) Start add Zombie (exit) retire Terminierung 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 33

Nächste Vorlesung: 19.4.2007 5.Vorlesung Betriebssysteme (BTS) Hochschule Mannheim Folie 34