Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Gliederung Lehrmodul 1 Grundsätzlicher Aufbau von Betriebssystemen

Ähnliche Präsentationen


Präsentation zum Thema: "Gliederung Lehrmodul 1 Grundsätzlicher Aufbau von Betriebssystemen"—  Präsentation transkript:

1 Gliederung Lehrmodul 1 Grundsätzlicher Aufbau von Betriebssystemen
Typen, Aufgaben, Anforderungen, Strukturen, Rechnerkomponenten Prozessverwaltung Multitasking, Multiprocessing, Multithreading, Threads, Prozesszustände, Verwaltungsmechanismen und -verfahren, Probleme Speicherverwaltung Konzepte, Adressierungsarten, Aufgaben, Speicherbelegung, verschiedene Techniken der Adressierung, Mechanismen zur Speicherverwaltung

2 Grundsätzlicher Aufbau von Betriebssystemen
Typen von Betriebssystemen Beispiele: Mainframe OS/390, MVS, BS2000 Unix Server Sun Solaris, HP-UX, IBM AIX, Linux PC/Server Windows XX, MacOS Echtzeitsysteme VX-Works, BOS Entwicklung der BS: Merkmale Mainframe - proprietäre BS, Herstellerabhängigkeit, dumme Terminals Mainframe - Personal Computer (Standardsoftware/betriebl. Anwendungen) Merkmale Client/Server - Open Systems-Umgebung, Unix, Windows NT - mehrere Stufen, stetige Weiterentwicklung der Rechnerhardware (schnellere Prozessoren, Speicher etc.) neue Erkenntnise und Konzepte der IV traditionell Rechner nur für eine bestimmte HW und Anwendung bestimmt steigende Anforderungen - unterschiedliche Software auf einen Rechner -> notwendige Schritte: Multuserfähigkeit und Mehrprogrammbetrieb

3 Grundsätzlicher Aufbau von Betriebssystemen
Aufgaben eines Betriebssystems: Hardwareerkennung, Initialisierung, Benutzeroberfläche Verwaltung/Steuerung von Systemressourcen - Prozessor, Speicher, Geräte Programmausführung Bereitstellung von Werkzeugen Absicherung und Isolierung der Benutzer und Prozesse Kommunikation von Prozessen Zusammenarbeit von Prozessoren Hardwareerkennung + Initialisierung über sog. Treiber Betriebsbereitschaft feststellen Verwaltung/Steuerung .... Durchführung von Rechenoperationen, Datenverarbeitung (lesen und schreiben), Datenspeicherung Programmausführung Prozesszuteilung (Kontext: Benutzer, Dateien, benutzter Speicher) Bereitstellung von Werkzeugen für Programmierer (Compiler) Editoren (notepad, vi) Absicherung Benutzer Prozesse Datenschutz durch Benutzerkennungen, Benutzerrechte Zusammenarbeit von Prozessen Bereitstellung entspr. Techniken und Hilfsmittel zur Kommunikation und Synchronisation Zusammenarbeit von Prozessoren Unterstützung der Technik

4 Grundsätzlicher Aufbau von Betriebssystemen
Anforderungen an ein Betriebssystem: Multiuserfähigkeit Multiprozessorunterstützung Multitasking-, Multithreadingfähigkeit Kompatibilität Sicherheit Skalierbarkeit Zuverlässigkeit und Stabilität Netzwerkfunktionalität Applikationen Die ersten 4 stehen für: hohen Nutzungsgrad d. Komponenten und geringen overhead Kompatibilität steht für Plattformunabhängigkeit Sicherheit steht für Zugriffsschutz (Einbruchsicherheit) Skalierbarkeit steht für Erweiterbarkeit Zuverlässigkeit und Stabilität steht für Robustheit gegenüber Programmfehlern Netzwerkfunktionalität steht für Unterstützung Protokolle (TCP-IP, IPX) Applikationen steht für große Auswahl an ...

5 Grundsätzlicher Aufbau von Betriebssystemen
Struktur und Konzepte Definition Betriebssystem: Menge von Programmen, die Benutzern die effiziente und gemeinsame Nutzung einer Rechenanlage ermöglicht. Monolithische Struktur Schichtenmodell Client-Server Architektur Monolithische Struktur Beispiel: Unix - alle Funktionen befinden sich in einem Programm (BS-Kern) - nur Kern kann direkt auf die HW zugreifen - Applikationen über Funktionsaufrufe (system calls) über BS-Schnittstelle, Abb. 3 Skript Seite 6 - Betriebsmodi des Rechners (Programmcode des BS-Kerns -> Kern; alle anderen -> User) Monolithische Struktur siehe Tab. 1, Skript Seite 7 Schichtenmodell - Jede Schicht benutzt nur die direkt darunterliegende und stellt der darüber- liegenden Dienste zur Verfügung - Der BS-Kern hat nur noch grundlegende Aufgaben (Prozesssteuerung, Speicherverwaltung, Scheduling) Nachteil: Festlegung großer Anzahl von Schnittstellen, Übergänge müssen exakt definiert sein Client-Server Architektur Abb. 4, Skript Seite 7 - Benutzer/Anwendungsprogramm fordert Dienste bei dem/den Server(n) an - Der BS-Kern vermittelt den Datenaustausch Client <> Server - SW-Entwicklung Hauptprogramm/Unterprogramm Vorteil: effizientere Rechnerauslastung, da Verarbeitung der Daten auf Client erfolgt

6 Grundsätzlicher Aufbau von Betriebssystemen
UNIX - Systemarchitektur Benutzerschnittstelle Kommandointerpreter (Unix-Shell) UNIX-Werkzeuge Anwenderprogramme Standard C-Bibliothek Systemaufrufe UNIX-Werkzeuge: mehr als 600 Kommandos Standard C-Bibliothek mehr als 900 Bibliotheksfunktionen Anwendungsprogramme Standardsoftware (z.B. Textverarbeitung, Datenbank) eigene Programme Systemkern (Kernel) Sammlung verschiedener Kommandos ca % in C, Rest Assembler Systemkern (Kernel) Treiber Möglichkeit die Hardware anzusprechen HARDWARE

7 Grundsätzlicher Aufbau von Betriebssystemen
Bestandteile eines Rechnersystems Benutzer 1 Benutzer n Compiler, Editoren, Assembler, Applikationen Betriebssystem Prozess-, Speicher- und Dateiverwaltung Steuerung I/O-Geräte Die dem Betriebssystem zugehörigen Komponenten sind: Prozess-, Speicher- und Dateiverwaltung sowie die Steuerung der Ein-/Ausgabegeräte Rechner- hardware

8 Prozessverwaltung Begriffserklärungen: Programm
= ist die statische Abfolge von Instruktionen (Befehlen) Prozess = die dynamische Ausführung eines Programmes durch das Betriebssystem mit den benötigten Ressourcen Thread = sequentielle Ausführungseinheit innerhalb eines Prozesses (Teilprozess) Synonym für Prozess: Task Abb. 7, Skript Seite 11 Ein zur Ausführung bereites Programm ist eine (sequentielle) Folge von Befehlen und Daten Die Ausführung eines Programmes nennt man Prozess. Dazu muss ein Prozessor als ausführendes Organ dem Programm zugeordnet werden. Ein Prozess enthält alle notwendigen Daten, die das BS für die Steuerung eines Programms benötigt. Dazu zählen: - Informationen über Ausführungszustand des Programmes - über den belegten Speicherbereich im RAM - über die geöffnete Dateien - über den Anwender (Benutzerkennung, Prozess-ID, Laufzeit in CPU-Sekunden etc.) Mit Hilfe einer Tabelle, in der alle laufende Prozesse protokolliert werden, steurt das BS die Vergabe der Betriebsmittel des Rechners (Prozessor, Speicher). Warum Prozesse? - Modularität (Programm sequentiell, Prozesse Aufteilung in Threads - Speed up (Mehrprozessor-Technik) - Benutzerkomfor (Taskwechsel) Thread ist eine zusammengehörende Folge von Anweisungen innerhalb eines Programms.

9 Prozessverwaltung Multitasking
- Aufteilung der Prozessorzeit auf verschiedene Prozesse Prozess 1 Prozessor Prozess 2 Zeit Multitasking: Ausführung mehrere Programme zur gleichen Zeit (jedoch nur scheinbar zur gleichen Zeit, in Wirklichkeit zeitversetzt) Bei Einprozessorbetrieb teilt das BS den Prozessor jedem Prozess nur eine bestimmte Zeitdauer zu Diese Zuteilung der verfügbaren Prozessorzeit nennt man Scheduling

10 Prozessverwaltung Multiprocessing
Gleichzeitige Ausführung mehrerer Prozesse auf mehreren Prozessoren Prozess A Prozess B Prozess C Daten Daten Daten Registersatz Registersatz Registersatz Im Registersatz befindet sich der Prozesskontrolblock - Datenstruktur, die prozessspezifische Daten enthält Vorteil: Parallelisierung der Prozesse, schnellere Ausführungszeit des Programmes Mehrprozessorbetrieb eng gekoppelte Systeme (Rechner mit mehreren Prozessoren, verteilte Systeme (LAN, WAN) Code Code Code

11 Prozessverwaltung asymetrisches Multiprocessing
Betriebssystem zentral auf einem Prozessor Verteilung der Prozesse Prozess Betriebssystem Prozess es gibt nur einen ausgezeichneten Prozessor (Master) nur der Master führt priviligierte Anweisungen aus (z.B. E/A, Verwaltung der Betriebsmittel) BS läuft nur auf dem Master Nachteil: Abnahme der Leistungsfähigkeit, wenn mehrere Programme gleichzeitig Betriebssystemdienste benötigen daraus folgt: nicht mehr aktuell, Stichwort Transputer Prozess Prozessor A Prozessor B

12 Prozessverwaltung symetrisches Multiprocessing
Verteilung des Betriebssystems Zugriff aller Prozessoren auf den gesamten Speicher Betriebs- system Betriebs- system Prozess Prozess mehrere Prozessoren können den Betriebssystemcode ausführen im Idealfall können alle Prozessoren gleichzeitig Code des BS ausführen findet Anwendung in großen Datenbankumgebungen (meist 4 Prozessoren) Prozess Prozess Prozessor A Prozessor B

13 Prozessverwaltung Multithreading
= ist die Aufteilung von Prozessen in mehrere parallele Threads (nebenläufige Aktivitäten) Registersatz Registersatz Registersatz Thread A Thread B Thread C Multithreading bedeutet: Ein Prozess besteht aus mehreren Threads, die parallel (quasi-parallel auf einem Einprozessorsystem) ausgeführt werden. Synonym für Thread: Ausführungspfade Vorteile von Threads gegenüber Prozessen: Threads sind ein Mittel, um in sequentiellen Prozessen trotz blockierender Funktionsuafrufe Parallelität zu erreichen. Effizientere Bearbeitung eines Programms in Mehrprozessor- systemen Anwendungsprogramme können häufig einfacher entwickelt werden, wenn die einzelnen Aufgaben als in sich geschlossene Teile implementiert werden können (Teamwork) Threads belasten den Betriebssystemkern bei Threadwechsel nicht in dem Masse, wie bei einem Prozesswechsel (geringerer Overhead) Programmcode Programmcode

14 Prozessverwaltung Threads Threadstuktur Ein Thread besitzt:
- Befehlszähler - Registerbelegungssatz - Stack (für jeden Prozess, bei geschachtelten Unterprogrammen die Rücksprungadressen Threads teilen sich den Adressraum und die Anweisungen des umfassenden Prozeses Ein Thread wird auch lightweight process (LWP) genannt. Normaler Prozess dagegen: heavyweight process (HWP). Was können Threads? unabhängig voneinander (quasi-)parallel ausgeführt werden globale Daten ändern, die von anderen (dem gleichen umfassenden Prozess zugeordneten) Threads gesehen werden. sie sehen die gleichen offenen Dateien Während mehrere Prozesse verschiednen Benutzern gehören können, kann nur einem Benutzer ein Prozess gehören, der aus mehreren Threads besteht. Prozesse können sich gegenseitig feindlich gesinnt sein, Threads sollten dagegen kooperieren. Der Programmierer hat hierfür Sorge zu tragen. Ein traditioneller UNIX-Prozess ist ein single-threaded process. Bei Windows NT werden grundsätzlich alle Prozesse in Threads unterteilt, bei UNIX ist es die Aufgabe des Programmierers.

15 Prozessverwaltung Prozesszustände ausgelagert wartend wartend rechnend
freiwillig auf Tastatureingabe Auslagern ausgelagert wartend wartend Warte kann immer nur ein Prozess sein rechnend Signal Signal Zeitscheibe abgelaufen Weiter Anhalten bereit: neue Prozess werden am Ende ihrer ihrer Prioritätswarteschlange eingefügt; Prozessor wartet auf Zuteilung einer CPU rechnend: in einem Einprozessorsystem kann nur ein Prozess in diesem Zustand sein. Prozess verläßt den Zustand, wenn eines der folgenden Ereignisse eintritt: 1. Er hat seine Aufgabe beendet. Prozess verlässt das System und das BS entfernt alle Daten des Prozesses. 2. Er muss auf ein Ereignis warten (z.B. Ende einer DFÜ) Übergang zu wartend 3. Entzug des Prozessors, da z.B zugeteilte Zeitscheib abgelaufen; Übergang zu bereit wartend (blockiert): der Prozess wartet auf ein Ereignis, z.B. ein-/Ausgabe ein wartender Prozess kann auch ausgelagert werden. ausgelagert (wartend): ein wartender Prozess wurde wegen Überlastung des Systems auf Platte ausgelagert; Übergang zu ausgelagert bereit bei Eintretendes Ereignisses, auf das der Prozess gewartet hat. ausgelagert (bereit): ein bereiter Prozess wurde wegen Überlastung des Systems ausgelagert; das Ereignis auf das ein ausgelagerte (wartender) Prozess gewartet hat ist eingetreten; Einlagern des Prozesses (Übergang zu bereit) durch das System. Auslagern ausgelagert bereit bereit Einlagern unfreiwillig auf Scheduler oder Dispatcher Programm im Hauptspeicher Programm auf Festplatte

16 Prozessverwaltung root 0 0 0 Apr 25 ? 0:01 sched
UID PID PPID C TIME TTY TIME CMD root Apr 25 ? 0:01 sched root Apr 25 ? :07 /etc/init - root Apr 25 ? :00 pageout root Apr 25 ? :26 fsflush root Apr 25 ? :00 /usr/lib/saf/sac -t 300 root Apr 25 ? :00 /usr/lib/power/powerd root Apr 25 ? :58 vxconfigd -m boot root Apr 25 ? :00 /usr/lib/sysevent/syseventd root Apr 25 ? :02 /usr/sbin/rpcbind root Apr 25 ? :01 /usr/lib/utmpd root Apr 25 ? :00 /usr/lib/autofs/automountd root Apr 25 ? :13 /usr/sbin/nscd root Apr 25 ? :04 /usr/sbin/syslogd root Apr 25 ? :12 /usr/sbin/inetd -s root Apr 25 ? :00 /usr/sadm/lib/wbem/cim root Apr 25 ? :00 /usr/lib/nfs/lockd daemon Apr 25 ? :00 /usr/lib/nfs/statd root Apr 25 ? :02 /usr/sbin/cron oracle :02:12 ? :00 oraclePKSA (LOCAL=NO) root Apr 25 ? :00 /usr/lib/lpsched root Apr 25 ? :00 /bin/ksh root Apr 25 ? :00 /usr/lib/inet/xntpd root Apr 25 ? :02 /usr/sbin/vold root Apr 25 ? :59 mibiisa -r -p 32793 root Apr 25 ? :00 /usr/lib/sendmail -bd -q15m oracle :54:34 ? :00 oraclePKSL (LOCAL=NO) Prozesskontext Prozesskontrollblock (PCB) Wird benötigt zur Verwaltung der Prozesse - Repräsentation jedes Prozesses in einem PCB. Bestehend aus: Identifikationsnummer (PID) Identifikationsnummer des Benutzers/Prozesses, der den Prozess gestartet hat, sog. Elternprozess (wo kommt Prozess her) Zugriffsberechtigungen Prozessstatus Befehlszählerinhalt CPU Registerinhalte für Kontextwechsel Speicherverwaltungsinformationen (Speichergrenzen, Seitentabellen) Accountinginformationen (verbrauchte CPU-Zeit) I/O-Statusinformationen (ausstehende I/O-Anforderungen, I/O-Geräte, Liste der offenen Dateien) Scheduling-Informationen (Prioritäten, Pointer in Warteschlangen)

17 Prozessverwaltung Scheduling
Vergabestrategie für CPU an lauffähige Prozesse und Job-Verdrängung („job-preemption“). Im Gegensatz zu Dispatcher berücksichtigt der Scheduler auch den bisherigen Verlauf eines Prozesses bei seiner Entscheidung, welcher Prozess als nächster aktiviert werden soll. Optimierungsgesichtspunkte: - kleine Bedienzeiten für die Benutzer - gute Auslastung der (teuren) Betriebsmittel) - hoher Durchsatz (Anzahl verarbeiteter Jobs pro Zeit) - „faire“ Wartezeiten für alle Benutzer - garantierte Abwicklung innerhalb vorgegebener Zeiten für wichtige Jobs

18 Prozessverwaltung Aufgaben des Schedulers
- Prioritätsentscheidungen aufgrund von: Job-Umgebung - geschätzte Restlaufzeit - Betriebsmittelanforderungen - Benutzerprioritäten  Rechner-Umgebung - Prozessorauslastung - Peripherieauslastung - Warteschlangengrößen Überprüfung, ob die erforderlichen Betriebsmittel vorhanden sind Wann findet Scheduling statt 1 „rechnend“ -> freiwillig „wartend“ (auf I/O oder Signal warten) 2 „rechnend“ -> bereit (verdrängt) 3 „wartend“ -> bereit (wenn I/O auf die der Rechner wartet, eintritt) 4 „rechnend“ -> freiwillig terminiert, d.h. Ende bei 1 und 4 non preemptive Betriebssystem (16-bit) bei 1, 2, 3 und 4 preemptive Betriebssystem (32-bit)

19 Prozessverwaltung Dispatcher
- teilt einen rechenwilligen Prozess einen Prozessor zu - muß sehr effizient implementiert sein, da Prozesswechsel im Millisekundenbereich vorkommen - ist für kurzfristige Prozessorzuteilung zuständig Steuerung der Prozessor-Umschaltung durch Zeitgeber Aufgaben des Dispatchers (bei Kontext-Wechsel) - Sicherung des Prozessorzustandes im PCB des geraden aktiven Prozesses - Setzen des neuen Prozesszustandes im PCB und ggf. Umketten des PCB in zugehörige Warteschlange - Setzen des Prozessorzustandes aus dem PCB des Prozesses, dem als nächsten der Prozessor zugeteilt wird - Aktivierung des neuen Prozesses

20 Prozessverwaltung Scheduling-Verfahren
Beispielhafter Vergleich bei einfachem Stapelbetrieb: - n Jobs im betrachteten Zeitabschnitt vorhanden - Ti Turnaround von Job i (gesamte Bearbeitungs- und und Wartezeiten, Verweilzeit) First come first served (FCFS) Bearbeitungsreihenfolge gleich Ankunftsreihenfolge Durchschnittliche Wartezeiten variieren stark und sind meist recht hoch (bei großer Anzahl Jobs) Erklärung: n = Jobs im betrachteten Zeitraum Ti = Turnaround von Job i (Bearbeitungs- und Wartezeit, Verweilzeit) AT = Average Turnaround Formel AT = Job Ankunftszeit Laufzeit Min.

21 Prozessverwaltung Shortest job first
Zu jedem Job ist die (geschätzte) Laufzeit bekannt. Es kommt derjenige Job zur Ausführung dessen Laufzeit aktuell am kürzesten ist Bei Überschreitung der geschätzten Laufzeit, Bestrafungsmechanismen (z.B. überzogene Zeiteinheiten teurer abrechnen, Job abbrechen etc.) Ergibt unter den non preemptive Systemen die minimalste Wartezeit für eine gegebene Menge von Prozessen Formel wie bei FCFS Lösung: Job Start Turnaround Std. 9 Min.

22 Prozessverwaltung Round-Robin Scheduling
Im einfachsten Fall sequentielle Abarbeitung der Prozesse in einer Multitasking-Umgebung. Es wird ein Zeitquantum q fest vorgegeben und es erfolgt eine Reihum-Zuteilung des Zeitquantums für alle Prozesse. dabei gilt: für q --> 0: quasi gleichzeitige Bedienung aller Jobs, aber sehr großer Overhead. für q --> : Übergang zu FCFS UNIX-Scheduling: Es gibt 32 Run-Queues und 128 Prioritätsstufen Es werden immer 4 Prio-stufen zu einer Klasse zusammengefasst je nach Priozahl, die ausgerechnet wird, kommt ein Prozess in eine der 32 Warteschlangen Zeitquantum: 4 Prozess Ausführungszeit P1 20 P2 3 P3 3 P1 P2 P3 P1 P1 P1 P1

23 Prozessverwaltung Synchronisation
notwendige Voraussetzung für Wechselwirkungen zwischen Prozessen - mindestens zwei Prozesse vorhanden - die Prozesse laufen (quasi-)parallel ab Es werden keine Annahmen über Laufzeiten sowie über den Zeitpunkt des Prozesswechsels gemacht Voraussetzung ist die Existenz elementarer non preemptive Operationen Probleme, die sich bei konkurrierenden Prozessen ergeben: - Umschaltung des Programmablaufs (Dispatcher und Scheduler) - Sicherung des einen Prozesses gegen unerwünschte Einflüsse der anderen - Nutzung gemeinsamer Betriebsmittel Übung: a = 10 1 a = a2 1‘ a = a/2 2 print (a); 2‘ print (a); Prozess 1 Prozess 2 <121‘2‘> a = <11‘22‘> <11‘2‘2> <1‘2‘12> 25 5 <1‘122‘> <1‘12‘2> Je nach Reihenfolge, nach der die Prozesse ablaufen, gibt es 4 verschiedene Ausgaben. Das richte Ergebnis kommt jedoch nie heraus! Fachausdruck: mutual exclusion; wechselseitiger Ausschluss von Prozessen beim Zugriff auf Variablen, d.h. jeweils nur einem einzigen Prozess den Zugriff auf gemeinsam genutzte Betriebsmittel gestatten.

24  Lösung: Prozessverwaltung Kritische Abschnitte
unkritischer Abschnitt ist ein (Programm-)abschnitt, in dem nicht auf Betriebs- mittel zugegriffen wird, die von mehreren Prozessen gleichzeitig benutzt werden. kritischer Abschnitt ist eine Menge von Anweisungen, in denen das Ergebnis ihrer Ausführung auf unvorhersehbare Weise variieren kann, wenn Variablen, auf die in diesem Abschnitt zugegriffen wird und die auch für andere parallel laufende Prozesse verfügbar sind, während der Ausführungszeit verändert werden.  Lösung: - es darf sich zu jedem Zeitpunkt nur ein Prozess im kritischen Abschnitt befinden - Ein Prozess innerhalb eines kritischen Abschnittes verläßt diesen wieder nach Ablauf einer endlichen Zeit - wenn ein Prozess in einen kritischen Prozess eintreten will, muß ihm das nach einer endlichen Zeit gestattet werden Methoden für mutual exclusion: Semaphore und globale Variable Semaphoren sind Bestandteil des Kernels Großer Vorteil Semaphore Betriebssystem verwaltet Synchronisation, nicht der Prozess selbst, wie bei globale Variable.

25 Prozessverwaltung P1 B2 B1 P2 Deadlocks
Verklemmung, d.h. eine Gruppe von Prozessen (mindestens zwei) wartet auf den Eintritt von Bedingungen, die nur durch Prozesse dieser Gruppe hergestellt werden können. P1 B2 Prozess 1 fordert Betriebsmittel B2 an Betriebsmittel B2 ist von Prozess 2 belegt Betriebsmittel B1 ist von Prozess 1 belegt Bei Betriebsmittelvergabe kann es zu Verklemmungen kommen, wenn gleichzeitig jede der folgenden 4 Bedingungen erfüllt sind: 1 mutual exclusion - Betriebsmittel können nur exklusiv genutzt werden 2 hold and wait - Prozesse sind schon im Besitz von Betriebsmitteln 3 no preemption - Betriebsmittel können nicht entzogen oder zurückgegeben werden 4 circular wait - geschlossene Wartesituation - es gibt eine Menge von Prozessen, in der jeder Prozess Betriebsmittel anfordert,die ein anderer Prozess in der Menge belegt diese 4 Bedingungen sind notwendig, aber nicht hinreichend für einen Deadlock P2 B1 Prozess 2 forder Betriebsmiite B1 an

26 Optische Plattenspeicher
Speicherverwaltung Speicherhierarchie: Kosten Zugriffszeit Register L1-Cache L2-Cache Arbeitsspeicher (RAM) Erweiterungsspeicher Magnetplattenspeicher Hinweis auf Abb.: 33, Skript Seite 38 Speicherverwaltung -> Komponente des BS -> Hardwarearchitektur techn. Entwicklung Prozessoren schneller als Speichertechnilogie daraus folgt: Zugriff auf Speicher ist als Flaschenhals zu betrachten. Systementwickler haben Konzept der Speicherhierarchie entworfen. Speicherhierarchie verschachtelt Speichertechniken ineinander; Zugriffsgeschwindigkeit ist von der räumlichen und logischen Entfernung zum Prozessor abhängig. Optische Plattenspeicher Kapazität

27 Speicherverwaltung Adressfeld
Zur Adressierung einer Speicherstelle verwendet ein Prozessor eine bestimmte Anzahl Bits. Die Länge des Adressfeldes gibt Auskunft über die adressierbaren Speicherstellen und somit über den Adressraum eines Rechners. Adressraum physikalischer Adressraum - als Hauptspeicher real im Rechner vorhanden logischer Adressraum - auch virtueller Adressraum, der einem Programm zur Verfügung steht. Setzt sich aus Hauptspeicher + Plattenspeicher zusammen. Tabelle 2 im Skript, Seite 39 bearbeiten

28 Speicherverwaltung Aufgaben der Speicherverwaltung
dynamische Adressumsetzung Bereitstellung von Speicherbereichen für - gemeinsam genutzten Programmcode - gemeinsam genutzte Daten für Interprozesskommunikation Schutz der Daten und Programme vor fehlerhaften/unberechtigten Zugriff dynamische Speicherzuteilung an die Prozesse dynamische Adressumsetzung: Umsetzung einer logischen (symbolischen) Adresse in physikalische Adresse Schutz der Daten und Programme, erfolgt im allgemeinen durch Hardwareunterstützung - Interrupts

29 Speicherverwaltung Hauptspeicherbelegung
Im einfachsten Fall erfolgt eine Aufteilung des Hauptspeichers in zwei Teile: 1. residenter Teil des Betriebssystems (sog. Monitor) 2. Benutzerprogramme (Code + Daten + Stack) Beispiel MS-DOS (vereinfacht) ROM Benutzer- Speicherbelegung eines Programms: Programm liegt auf einem externen Speichermedium und wird zur Ausführungszeit in den Hauptspeicher geladen. Fixer Speicherbereich, da Programm nur gelesen nicht verändert wird. Die Daten werden in einem weiteren Bereich des HSP abgelegt, dem sog. Heap. In einem dritten Bereich, dem sog. Stack werden die zur Laufzeit dynamisch erzeugten Variablen gespeichert. programme BS

30 Speicherverwaltung Swapping-Technik
Das Ein- und Auslagern von Bereichen des Hauptspeichers auf Magnetplatten- speicher nennt man Swapping  virtueller Speicher Speicherbelegung bei Multitasking-Systemen Bei modernen Betriebssystemen (UNIX, NT) übernimmt der sog. Memory Manager die Speicherverwaltung, beispielsweise anhand einer Speicher- belegungstabelle Wann Swapping Wenn Hauptspeicher zu klein um Programmcode und Daten aufzunehemn, wird meist nur ein Programmteil in den HSP geladen. Dafür trägt der Programmierer Sorge, der ein Programm in Einzelteile untergliedern kann (Hauptoprogramm - Unterprogramm etc.) Für sehr große Programmteile und Datenbereich wird zur Erweiterung des Hauptspeichers ein virtueller Speicher, der sich meist auf Festplatte befindet, zu Hilfe genommen. Grund: virtuelle Adressraum ist dem BS bekannt, der Zugriff darauf ist allemal schneller als auf Festplatte. Daten können von dort schneller in den HSP geladen werden. Einsatz bei großen Datenbanken Speicherbelegungstabelle: enthält für jede Speicherstelle ein Kennzeichen, üblicherweise 1 Bit, das markiert wird, sobald sie belegt ist.

31 Speicherverwaltung Seitenverwaltung Adressrelokation
- Fähigkeit, daß Programme an verschiedenen Speicherstellen im Haupt- - speicher ablauffähig gemacht werden virtuelle Adressierungsarten - virtueller Adressraum ist erheblich größer als der physikalische - ein Prozess weiß nicht, ob sich eine adressierte Speicherstelle im Haupt- speicher oder im Hintergrundspeicher befindet - Abbildung der virtuellen Adresse auf eine physikalische Adresse mit Hilfe einer Abbildungsfunktion - Memory Management Unit (MMU) Warum Adressrelokation? Problem: Programme enthalten Verweise auf feste Speicherstellen. Damit alle Verweise auf die richtigen Speicherstellen zeigen, müßte ein Programm immer an dieselbe Speicherstelle geladen werden. Das ist in einer Multitasking-Umgebung nicht möglich. Virtuelle Adressierung überträgt die Aufgabe der Relokation an das BS. Die Programme adressieren keine festen Speicheradressen, sondern virtuelle. Vorteil: alle Programme können an der gleichen virtuellen Speicheradresse beginnen - die Umsetzung auf eine physikalische Speicheradresse im HSP erfolgt durch eine Funktionseinheit des BS, dem MMU Beispiel im Skript, Abb. 41, Seite 46

32 Speicherverwaltung an. Speicherverwaltungsmechanismen
Seitenaustauschverfahren (Paging) - Speicher wird in Blöcke fester Größe aufgeteilt - logischer Adressraum wird in Seiten fester Größe aufgeteilt - physikalische Adressraum wird in Kacheln fester Größe aufgeteilt - Kachelgröße = Seitengröße - für die Zuordnung der virtuellen Seiten zu den physikalischen Kacheln legt das Betriebssystem für jeden Prozess eine Seitenersetzungstabelle an. Assoziativspeicher (Transaction Lookaside Buffer, kurz TLB) Zwischenspeicher im Hauptspeicher, der die zuletzt berechneten physikalischen Adressen enthält. Seitengröße: jede Seite enthält eine feste Anzahl Speicherstellen, die Seitenlänge, übliche Größen sind: 512 Byte bis 4 MB. Eine Kachel (Seitenrahmen, frame) kann genau eine Seite des virtuellen Speichers aufnehmen. Assoziativspeicher: bei virtueller Adressierung erfolgt die Umrechnung auf die physikalische Speicheradress bei jedem Speicherzugriff. Das bedeutet jedesmal eine aufwändige Suche in den Seitenersetzungstabellen. Um dies zu umgehen, gibt es die Methode Adressen im TLB zu puffern. Ist nicht ausschließlich Sache der Prozessorhardware sondern in vielen Fällen des Betriebssystems.

33 Speicherverwaltung Specherverwaltungsmechanismen - Fortsetzung
Segmentierung - Aufteilung des virtuellen Adressraumes in Segmente variabler Größe Ohne Segmentierung Mit Segmentierung P3 segmentiert BS BS 20 KB P3 Code 9 KB unbenutzt KB Daten 15 KB 50 KB P1 Stack 6 KB P1 30 KB 50 KB 30 KB Vorteile Segmentierung: Berücksichtigung logischer Programmeinheiten (Prozeduren, Stacks) gemeinsam benutzte Programme und Daten können einfacher verwaltet werden als beim Paging. FRAGE warum? weil bei Prozesswechsel der Benutzerkontext kleiner ist, dadurch weniger Overhead. Zugriff erfolgt über Segmenttabelle (Startadresse und Länge) Adressumsetzung analog zu Paging über Segmenttabelle Vergleich Paging - Segmentierung siehe Tabelle 3, Skript Seite 55 Fachbegriffe: Lokalität: hat mit der Eigenschaft von Programmen zu tun, daß Programmcode im Regelfall sequentiell ausgeführt wird, und zusammengehörige Programmteile deshalb an benachbarte Speicherstellen abgelegt werden können. Hinweis auf Durchsicht des Themas Seitenersetzung, Verfahren und Algorithmen sowie deren Zielsetzung 20 KB unbenutzt KB 10 KB P2 10 KB P2 20 KB unbenutzt KB


Herunterladen ppt "Gliederung Lehrmodul 1 Grundsätzlicher Aufbau von Betriebssystemen"

Ähnliche Präsentationen


Google-Anzeigen