Computer-Systeme Teil 15: Virtueller Speicher

Größe: px
Ab Seite anzeigen:

Download "Computer-Systeme Teil 15: Virtueller Speicher"

Transkript

1 Computer-Systeme Teil 15: Virtueller Speicher Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher

2 Übersicht Segmente Systemaufrufe Swapping Paging Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 2

3 Physikalischer Adressraum I - Wiederholung CPU RAM I/O 1 I/O 2 I/O N... BUS I/O-Geräte verhalten sich wie der RAM CPU kommuniziert mit I/O-Geräten wie mit dem RAM Niedrige Adressen Hohe Adressen Betriebssystem Prozesse Lücke I/O-Geräte Physikalischer Adressraum Bereich, in dem RAM vorhanden ist Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 3

4 Physikalischer Adressraum II - Wiederholung Es wird von nun an Memory-Mapped-I/O zugrunde gelegt: Alle Geräteregister besitzen eine Bus-Adresse und sind daher mit normalen Instruktionen erreichbar. Physikalischer Adressraum = Bereich der Adressen, der über den Adressbus ansprechbar ist In der Regel ist dieser Adressraum in folgende Bereiche von den niedrigen zu den hohen Adressen aufgeteilt: Kernel des Betriebssystems Bereich für Programme Lücke, da der gesamte mögliche Adressraum in der Regel größer als die reale Größe des Arbeitsspeichers ist Bereich der Geräteregister Weiterhin gibt es noch den Bereich für den (E)EPROM/Booter, der bei uns bei den Geräteregistern liegt Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 4

5 Ziele des virtuellen Speichers Virtueller Speicher = Virtual Memory = Arbeitsspeicher mit simuliertem Eigenschaften: Zugriffsschutz/Separation der Programme untereinander zur Erhöhung der Sicherheit Unabhängigkeit vom Ort im RAM, an dem die Programme und ihre Daten liegen, zur Erhöhung der Flexibilität Der virtuelle Speicher wird mit Hilfe einer Memory Management Unit (MMU) realisiert. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 5

6 Memory Management Unit (MMU) I Virtuelle Adressen Reale Adressen CPU MMU Memory Management Unit (MMU) als Filter und Umrechnungseinheit RAM I/O 1 I/O 2 BUS Rückmeldung an CPU (trap) Prüfung, ob zu hoch Virtuelle Adresse Funktionsweise der MMU Nicht-Ok OK + Reale Adresse Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 6

7 Memory Management Unit (MMU) II Die MMU ist ein Filter zwischen CPU und Bus, der folgende Aufgaben hat: Prüfung, ob eine Adresse in dem zulässigen Bereich zwischen 0 und dem definierten Maximum liegt. Verschiebung der von der CPU generierten Adresse auf die richtige Stelle im Adressraum des Busses durch Addition einer Basisadresse. Der Adressraum aller Programme beginnt daher mit der virtuellen Adresse 0 und endet mit der höchsten Adresse. Adressen dazwischen sind gültig, alle anderen ungültig. Adressen der CPU, die von der MMU verarbeitet werden, werden virtuelle Adressen genannt. Die Adressen als Resultat der MMU-Verarbeitung werden physikalische oder reale Adressen genannt. Dies sind die Adressen des Busses. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 7

8 Aufgaben der MMU Die wesentliche Aufgabe der MMU besteht darin, die einzelnen Programme gegenüber einem gegenseitigen Überschreiben zu schützen. Jedes Segment ist dadurch wie ein Gehege, aus dem das Programm nicht ausbrechen kann. So sind die anderen Programme untereinander sowie der Kernel vor Zugriffen geschützt. Eine andere Aufgabe besteht in der Herstellung der Ortsunabhängigkeit der Segmente, daher können die Segmente an verschiedenen Stellen im physikalischen RAM stehen. Die Realisierung von virtuellen Adressen mit einem unüberwindbaren Schutzmechanismus wie eine MMU ist eines der wichtigsten Schutzkonzepte in Computern. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 8

9 MMU - Genauer I 0 Max Prozess 1 Virtueller Adressraum (der CPU) 0 Max Prozess 1 Physikalischer Adressraum (des Busses) Nichtzugreifbarer Bereich für Prozess 1 Vom Prozess 1 benutzter Bereich im Physikalischen Adressraum Nicht-zugreifbarer Bereich für Prozess 1 Basisadresse Länge Basisadresse+Länge-1 Die MMU baut für die CPU einen "Käfig", der jeden Zugriff nach außen unterbindet. Versucht ein Prozess nach außen zuzugreifen, wird die Instruktion aufgrund eines Signals von der MMU zur CPU abgebrochen. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 9

10 MMU - Genauer II Virtuelle Addressräume 0 Max 0 Max 0 Max Prozess 1 Prozess 2 Prozess 3 Physikalischer Adressraum Betriebssystem Prozess 2 Prozess 1 Prozess 3 I/O Die Virtualisierung gilt für jedes Programm einschließlich des Betriebssystems selbst. Daher können unabhängig voneinander mehrere jeweils mit der Adresse 0 beginnende und verschieden lange Programme gleichzeitig im Arbeitsspeicher liegen. Der Kernel wird von der MMU wie ein eigenes Programm behandelt. Damit der Kernel auf alle Geräte und den restlichen RAM zugreifen kann, hat sein Bereich die Basisadresse 0 und die maximal mögliche Länge, d.h. sein virtueller Adressraum überdeckt alles. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 10

11 Erläuterungen I Segment = Bereich eines Arbeitsspeichers, der virtuell bei Adresse 0 beginnt und eine bestimmte Länge hat. Jedem Segment wird ein Deskriptor zugeordnet, der folgendes enthält: Physikalische Basisadresse Länge des Segments Zugriffsrechte (Lesen/Schreiben/Ausführen) Der Deskriptor wird in einem Registersatz in der MMU gehalten. Die MMU besitzt zwei Registersätze: Einen für den User-Mode Einen für den Kernel-Mode Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 11

12 Erläuterungen II Durch das Addieren zur Basisadresse sind die Segmente unabhängig von der Position im RAM, d.h. sie können während einer Programmunterbrechung verschoben werden. Dies ist zur Beseitigung von Lücken zwischen den Segmenten erforderlich; die Segmente werden dann zusammen geschoben. Alle Segmente müssen zusammen gleichzeitig in den RAM passen. Ist dieser voll, so kann weder ein neues Segment geschaffen noch ein bestehendes vergrößert werden. Segmente können sich im physikalischen Bereich meist partiell - überdecken. Dies dient der Realisierung von gemeinsam benutzten RAM- Bereichen zwischen Prozessen (shared memory). Das Segment des Betriebssystems überdeckt alles. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 12

13 Programm, Process und Thread Prozess = Sequentiell ablaufendes Programm mit eigenem und von anderen Prozessen getrennten Adressraum Thread = Sequentiell ablaufendes Programm ohne einen gegenüber anderen Threads abgetrennten Adressraum Innerhalb des Kernels und innerhalb der Prozesse können verschiedene Threads laufen. Ohne MMU gibt es nur Threads, mit MMU nur Prozesse, in denen Threads laufen können. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 13

14 Feinere Aufteilung in Segmente I Es ist möglich, dass ein Prozess weiter auf mehrere (Teil-)Segmente aufgeteilt wird: Segment für Code Segment für Globale Daten Segment für Stack Damit kann ein Schreibschutz des Codes realisiert werden, (kein Befall von Viren zur Laufzeit möglich). Wenn das Code-Segment schreibgeschützt ist, kann es von mehreren Prozessen gemeinsam benutzt werden (Einsparung von Speicherplatz, Shared Memory). Die Code-Segmente werden dann auf denselben physikalischen Adressbereich abgebildet (haben also dieselbe Basisadresse). Es können aber auch Datenbereiche gemeinsam benutzt werden. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 14

15 Feinere Aufteilung in Segmente II Virtuelle Adresse 16 bit 16 bit Segment-ID Adresse innerhalb des Segments Beispiel für 32 bit-addressraum Indizierung 0 Länge Erlaubnis Länge Erlaubnis Auswahl des Registersatzes Adressumsetzer Länge Erlaubnis Reale Adresse 0 Max Code Heap Stack Betriebssystem Code (P1) Heap Stack I/O Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 15

16 Shared Code Prozess P1 Länge Erlaubnis Länge Erlaubnis Prozess P2 Länge Erlaubnis Länge Erlaubnis 0 Max Code 0 Max Daten (P1) 0 Max Daten (P2) Virtuelle Addressräume zweier Prozesse Betriebssystem Code Daten (P1) Daten (P2) I/O Realer Adressraum Gemeinsame Benutzung von P1 und P2 Read/Write Read/Write Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 16

17 Wenn ein Programm läuft... ist immer der korrespondierende MMU-Deskriptor aktiv. Wenn nun die CPU einem anderen Programm, d.h. einem anderen Segment gegeben werden soll, muss der Deskriptor für das neue Segment über die Geräteregister in die MMU geladen werden. Daher existiert im Kernel eine Tabelle mit allen Deskriptoren aller Segmente im RAM, z.b. in der Thread-Tabelle des Kernels. Diese Tabelle liegt außerhalb des Zugriffs aller Programme, so dass nur der Kernel die Deskriptoren ändern und in die MMU laden kann. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 17

18 Zugriff auf die MMU-Register Tabelle mit MMU- Deskriptoren Länge Erlaubnis Länge Erlaubnis... Länge Erlaubnis Registersätze sind über besondere Adressbereiche beschrieben Betriebssystem Prozess 1 Prozess 2 Prozess 3 MMU I/O Die Register der MMU werden wie I/O-Geräteregister behandelt. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 18

19 Syscalls - Wiederholung User-Programm Systemaufruf Trap Fehlerbehandlung Systemaufruf- Verteiler User-Mode Kernel-Mode I/O-System Filesystem Netzwerk- Dienste... Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 19

20 Beispiel: read (Linux) #include <unistd.h> int read(int fd, void *buf, size_t count) Dies ist in der Programmiersprache C formuliert. Es wird versucht aus der Datei mit dem Filedescriptor fd count Bytes zu lesen und diese in einen Puffer an der Startadresse buf zu schreiben. Es wird die Zahl der tatsächlich gelesenen Bytes zurück geliefert, eine 0 bei EOF oder eine -1. Im letzten Fall gibt die globale Variable errno Auskunft über den Fehler, der mit perror(3) ausgegeben werden kann. int read(fd, buffer, cnt) gelesene Bytes Puffer Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 20

21 CPU-Arbeitsmodi I - Wiederholung Im Status-Register der CPU befindet sich ein Bit zum Vermerken des globalen Arbeitsmodus der CPU: User-Mode: Normaler, eingeschränkter Modus Kernel-Mode: nur vom Betriebssystem benutzter Modus ohne jede Einschränkung Manchmal sind es mehrere Bits, so dass es mehr als 2 Modi der CPU gibt. Die Einschränkung im User-Mode betrifft die Ausführung folgender Instruktionsgruppen: I/O-Instruktionen (falls vorhanden) Administrationsinstruktionen (Reset, Stop etc.) Setzen des Status-Registers Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 21

22 CPU-Arbeitsmodi II 0 Max Prozess 1 Virtueller Adressraum (der CPU) User-Mode MMU-Deskriptor 1 I/O Physikalischer Adressraum (des Busses) MMU-Deskriptor 2 Betriebssystem Prozess 1 I/O Virtueller Adressraum (der CPU) Code und Daten des Kernels Zugriffsrechte des Kernels Kernel-Mode Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 22

23 Was passiert beim Trap? 1. CPU-Modus wechselt in den Kernel-Mode: es wird ein anderer MMU-Deskriptor benutzt 2. CPU rettet den aktuellen SP und lädt den alten Kernel-SP 3. Status-Register wird auf den Kernel-Stack gebracht 4. PC wird (wie beim jsr) auf den Kernel-Stack gebracht 5. Sprung an eine vorher festgelegte Adresse im Kernel Da der Kernel selbst ein Programm mit sich gegenseitig aufrufenden Routinen ist, benutzt er einen eigenen Stack, d.h. mit Segmentwechsel findet noch ein Stackwechsel statt. Der Wechsel vom User-Stack zum Kernel-Stack wird durch Austausch/Änderung des Stack-Registers in der CPU realisiert (Schritt 2), manchmal erfolgt dies durch Hardware. Dass es nun zwei Stacks geben muss, liegt an den Segmenten und der MMU bzw. dem virtuellen Arbeitsspreicher. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 23

24 Was passiert beim Return-from-Trap? 1. Wiederherstellen des alten PC-Wertes 2. Wiederherstellen des alten SR-Wertes und damit Wechsel in den User-Mode mit anderem MMU-Deskriptor 3. CPU rettet den aktuellen Kernel-SP und lädt den alten User- SP 4. Benutzen des MMU-Deskriptors für User-Modus Analog zum Trap muss auch hier der Stack wieder zurück ausgetauscht werden. Weiterhin werden vor dem Stackwechsel, d.h. vor der RTT- Instruktion die geretteten Register wiederhergestellt. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 24

25 TRAP und RTT TRAP-Instruktion RTT-Instruktion CPU-Mode:= Kernel Wechsel des MMU-Deskriptors Retten des User-SP Wiederherstellen des Kernel-SP Push Status-Register Push Programm Counter PC:= Spezielle Adresse Setzen des Kernel-Mode im SR Pop Programm Counter Pop Status-Register CPU-Mode:= SR-Wert Wechsel des MMU-Deskriptors Retten des Kernel-SP Wiederherstellen des User-SP Trap-Handler = Routine im Kernel, die aufgrund eines Traps an einer "speziellen Adresse" angesprungen wird Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 25

26 Mechanismus der Trap-Instruktion I - Wiederholung (1) (5) User-Mode R: trap Nr (2) (4) Kernel-Mode (3) S: rtt Die Pfeile geben den Weg an, den der PC nimmt. Der Code beider Routinen befindet sich in getrennten Adressräumen Code der Routine R Code der Routine S Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 26

27 Mechanismus der Trap-Instruktion II - Wiederholung Tabellen und Routinen im Kernel trap Parameter Adressen der Routinen, die die Syscalls realisieren Indizieren Adresse FN... Adresse F4 Adresse F3 Adresse F2 Adresse F1 Syscall F4... RTT Syscall F3... RTT Syscall F2... RTT... Tabelle steht an einer speziellen dafür vorgesehenen Stelle Routinen im Kernel Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 27

28 Beispiel: Syscall read() I/O Physikalischer Adressraum (des Busses) Prozess 1 trap Virtueller Adressraum (der CPU) Betriebssystem Prozess 1 I/O Syscall Read (2) Kopieren der Daten ins Programm (1) Absetzen des Lese-Kommandos Beim read() wird ein Datenblock von einem Gerät in den RAM eines User- Programms durch das Betriebssystem kopiert (vereinfacht). Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 28

29 Reaktion bei Speicherverletzungen I 1. Die MMU meldet der CPU eine Speicherverletzung (zu hohe Adresse) während der Ausführung eines Befehls. 2. Es erfolgt als Teil dieser Instruktion das, was einen Trap ausmacht, daher Wechsel in das Betriebssystem 4. Der Trap-Handler hat nun folgende Möglichkeiten: Abbruch des Prozesses mit eventuellem Erzeugen eines Speicherabzugs (core dump) zur Post-Mortem-Analyse Versuch weiteren Speicher bis zur Adresse, auf die versucht wurde zuzugreifen, bereit zu stellen Bedingung: Prozess muss dann noch in den RAM passen Gelingt das nicht: Abbruch wie oben Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 29

30 Reaktion bei Speicherverletzungen II Trap-Behandler = Trap handler = Routine im Kernel, die durch den Trap aktiviert wird - rettet die Register etc., so dass nach der Behandlung des Traps das Programm weitergeführt werden könnte. Als Reaktion einer Speicherverletzung wird eine Art Systemaufruf (Syscall) zur Behandlung zur Vergrößerung des Speichers aufgerufen. Kann das Programm weiter ausgeführt werden, wird die abgebrochene Instruktion noch einmal ausgeführt; dazu müssen aber alle bis zum Abbruch getätigten Effekte beachtet werden. Mit diesem Verfahren kann dynamisch der Speicher vergrößert werden. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 30

31 Dynamische Vergrößerung des Arbeitsspeichers Das geschilderte Verfahren führt zur hoher Speichereffizienz, denn: Ein neuer Prozess bekommt zum Start den kleinst möglichen Speicher zugeordnet. Nur wenn er wirklich mehr Speicher braucht, bekommt er ihn dynamisch durch dieses Verfahren. Eine Speicherverletzung ist daher nicht das Kennzeichen von einem fehlerhaften Programm. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 31

32 Idee des Swapping Eigenschaften des bisherigen Segment-Konzepts: 1. Alle Segmente müssen in den Arbeitsspeicher passen. 2. Das größtmögliche Segment ist durch die Größe des Arbeitsspeichers bestimmt. Um die 1. Eigenschaft zu beseitigen, wird ein Stück Plattenspeicher als Arbeitsspeichererweiterung benutzt. Dieser Plattenbereich ist um ein Vielfaches größer als der Arbeitsspeicher, so dass nun alle Segmente zusammen in diesen Bereich passen müssen, aber nicht unbedingt zusammen in den Arbeitsspeicher. Vor Aus-/Weiterführung eines Programms wird das Segment in den RAM gebracht (swap in), zur Pause wird es aus dem RAM ausgelagert (swap out). Swapping = Einlagern und Auslagern von Segmenten von einer bzw. auf eine Platte Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 32

33 Swapping 0 Prozess 1 Max Virtueller Adressraum Betriebssystem Prozess 1 I/O Realer Adressraum Plattenadressraum Prozess 1 Prozess 2 Lücke Prozess 3 Gesamtgröße beschränkt die max. Summe aller Prozesslängen Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 33

34 Der Schritt zum Paging Bei den Segmenten muss immer noch der gesamte Prozess (Segment) in den RAM passen. Um nur die wichtigen Teile eines Segments einzulagern und alles andere auf dem Swap-Gerät zu lassen, wird das Segment in gleich große Seiten (Pages, Kacheln) eingeteilt, werden nur die Seiten, die gebraucht werden, in den RAM geladen. Seite = Page = Kachel = Gleichgroße Teile eines Segments Typische Seitengrößen liegen bei 4 bis 8 Kbyte. Jetzt brauchen nur noch die tatsächlich benötigten Seiten - das können 2-3 Stück sein - eines Prozesses im RAM liegen. Je weniger es sind, desto langsamer ist das Programm, da dann sehr häufig Seiten nachgeladen werden müssen. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 34

35 Paging - Swapping 0 Max Code Variablen Stack Prozess P1 Adressbereiche der Seiten/Kacheln (Raster) Betriebssystem x x x x x x x x x I/O Swap-Bereich eingelagerte Seiten von Prozess P1 (x) x x x x x x x x x x x x x x y y y y y y y y y y y Alle Seiten von P1 Alle Seiten von P2 Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 35

36 Paging Beispiel für Adressumsetzung Virtuelle Adresse Indizierung 20 bit 12 bit Page-ID Adresse innerhalb der Seite Beispiel für 32 bit-addressraum Seitengröße ist 4 KByte 0 Erlaubnis Erlaubnis Erlaubnis Auswahl des Registersatzes Adressumsetzer Reale Adresse Erlaubnis Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 36

37 Erläuterungen Der virtuelle Adressraum wird durch Aufteilung der virtuellen Adresse in zwei Teilfelder in gleich große Seiten eingeteilt. Jede Seite erhält von der MMU einen eigenen Deskriptor, der jetzt ohne ein Längenfeld auskommen kann, da die Länge konstant ist. Hinzu kommt ein Flag, das anzeigt, ob die Seite im RAM liegt oder nicht. Alle Zugriffe auf eingelagerte Seiten passieren ohne Probleme die MMU. Die eingelagerten Seiten können in beliebiger Reihenfolge im RAM liegen. Die virtuellen Startadressen sind nun von 0 an jeweils ein Vielfaches von der Seitengröße. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 37

38 Zugriff auf eine ausgelagerte Seite 1. Die MMU zeigt eine Speicherverletzung an, die den Abbruch der Instruktion bewirkt. 2. Es wird der Effekt einer nicht programmierten Trap- Instruktion ausgeführt. 3. Im Kernel wird die fehlende Seite nachgeladen. 4. Der korrespondierende MMU-Deskriptor wird verändert. 5. Anschließend wird in den User-Mode zurückgekehrt und die abgebrochene Instruktion wiederholt. Damit ist das Einlagern von Seiten aus der Sicht des Programms vollkommen transparent. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 38

39 Ursachen von "Traps" Die Ausführung von "Traps" hat damit verschiedene Ursachen: 1. Als explizit programmierte Instruktion: System-Aufruf 2. Als Folge eines Fehlers, z.b. Division durch 0 3. Als Folge eines Zugriffs auf eine Adresse eines zu kleinen Segments, das vergrößert werden kann 4. Als Folge eines fehlerhaften Zugriffs auf eine Adresse 5. Als Folge eines Zugriffs auf eine nicht geladene Seite, die eingelagert werden soll In allen Fällen entscheidet der Trap-Handler, was passiert. "Traps" sind also NICHT unbedingt Folgen eines Fehlers. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 39

40 Seitenaustauschverfahren Bei jedem Schreibzugriff durch die CPU wird eine Seite als modifiziert markiert (Setzen des dirty-bits im Deskriptor). Seiten ohne gesetztes dirty-bit brauchen beim Auslagern nicht auf das Swap-Gerät geschrieben werden. Seiten, die am längsten nicht mehr benutzt wurden, sind gute Kandidaten zum Auslagern. Strategie des Paging: Die Verfahren zur Bestimmung, welche Seite ausgelagert und welche eingelagert wird, beeinflussen entscheidend die Performanz. Das Problem, welche Seite ausgelagert werden sollte, ist dasselbe Problem wie bei den Caches. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 40

41 Hybrid/Mischverfahren Das Seiten- und das Segment-Verfahren lassen sich gut kombinieren, indem Segmente in gleich große Seiten eingeteilt werden, d.h. Segmente haben immer die Länge des Vielfachen einer Seite. Bei der Kombination wird in zwei Stufen vorgegangen: Normales Verfahren bei den Segmenten Dann erst Verfahren mit Kacheln Diese Kombination ist das übliche Verfahren moderner Betriebssysteme. Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 41

42 Hybrid-Verfahren Virtuelle Adresse 8 bit 12 bit 12 bit Segment-ID Seiten-ID Adresse innerhalb der Seite Indizierung 0 Länge Erlaubnis Page-Adresse Länge Erlaubnis Page-Adresse Auswahl des Registersatzes Adressumsetzer Länge Erlaubnis Page-Adresse Tabelle der Seitendeskriptoren Reale Adresse Länge Erlaubnis Page-Adresse Tabelle der Segmentdeskriptoren Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 42

43 Nach dieser Anstrengung etwas Entspannung... Computer-Systeme WS 12/13 - Teil 15/Virtueller Speicher 43

Betriebssysteme Teil 10: Virtueller Speicher

Betriebssysteme Teil 10: Virtueller Speicher Betriebssysteme Teil 10: Virtueller Speicher 11.12.15 1 Übersicht Segmente Systemaufrufe Swapping Paging 2 Physikalischer Adressraum I - Wiederholung 3 Physikalischer Adressraum II - Wiederholung Es wird

Mehr

Rechnerarchitektur und Betriebssysteme Teil 7: Virtueller Speicher

Rechnerarchitektur und Betriebssysteme Teil 7: Virtueller Speicher Rechnerarchitektur und Betriebssysteme Teil 7: Virtueller Speicher Rechnerarchitektur/Betriebssysteme - SS02 - Teil 7/Virtueller Speicher 01.07.2002 1 Übersicht Einführung in Betriebssysteme Virtueller

Mehr

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS 2015 - Teil 4/ProtectionI

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS 2015 - Teil 4/ProtectionI Übersicht Virtueller Speicher CPU-Modi Virtuelle Maschinen 2 Behandelter Bereich: Virtualisierung Syscall-Schnittstelle Ports Server Apps Server Apps Betriebssystem Protokolle Betriebssystem Medien Hardware

Mehr

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme Speicherverwaltung (Memory Management) Aufgaben der Memory-Management-Unit ist l der Speicherschutz und l die Adressumsetzung Wird durch Hardware unterstützt l Memory Management Unit (MMU) l MMU wird vom

Mehr

Computer-Systeme Teil 11: Routinen

Computer-Systeme Teil 11: Routinen Computer-Systeme Teil 11: Routinen Computer-Systeme WS 12/13 - Teil 11/Routinen 03.12.2012 1 Übersicht Stack Subroutinen Makros CPU-Modi Traps Computer-Systeme WS 12/13 - Teil 11/Routinen 2 Die einzelnen

Mehr

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

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

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Virtueller Speicher und Memory Management

Virtueller Speicher und Memory Management Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write

Mehr

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Grundlegende Bedeutung von Speicheradressierung: Wie sind die Daten auf Dem Speicher

Mehr

Speicherverwaltung (Swapping und Paging)

Speicherverwaltung (Swapping und Paging) Speicherverwaltung (Swapping und Paging) Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente 750k 0 Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente

Mehr

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1 5.4 Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist festgelegt durch die Hardware den Adressumsetzer. Einfachstes

Mehr

Teil 2: Speicherstrukturen

Teil 2: Speicherstrukturen Inhalt Teil 2: Speicherstrukturen Hauptspeicher Cache Assoziativspeicher Speicherverwaltungseinheit ( Memory Management Unit ) 1 Virtueller Speicher Trennung von virtuellem Adreßraum (mit virtuellen Adressen)

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 10 am 29.06.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Paging. Einfaches Paging. Paging mit virtuellem Speicher Paging Einfaches Paging Paging mit virtuellem Speicher Einfaches Paging Wie bisher (im Gegensatz zu virtuellem Speicherkonzept): Prozesse sind entweder ganz im Speicher oder komplett ausgelagert. Im Gegensatz

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

[6-1] Engelmann, Lutz (Hrsg.): Abitur Informatik Basiswissen Schule. Duden-Verlag, 2003, S.43-53, , , S.

[6-1] Engelmann, Lutz (Hrsg.): Abitur Informatik Basiswissen Schule. Duden-Verlag, 2003, S.43-53, , , S. Literatur [6-1] Engelmann, Lutz (Hrsg.): Abitur Informatik Basiswissen Schule. Duden-Verlag, 2003, S.43-53, 214-224, 239-242, S. 267-299,304-313 [6-2] Hübscher, Heinrich et al.: IT-Handbuch, IT-System-elektroniker/-

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1 5.4 Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist festgelegt durch die Hardware den Adressumsetzer. Einfachstes

Mehr

Linux Paging, Caching und Swapping

Linux Paging, Caching und Swapping Linux Paging, Caching und Swapping Inhalte Paging Das Virtuelle Speichermodell Die Page Table im Detail Page Allocation und Page Deallocation Memory Mapping & Demand Paging Caching Die verschiedenen Caches

Mehr

Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert

Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert 1.: Speicherung und Adressierung von Daten Bei der Speicheradressierung

Mehr

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler 1 Überlegungen Wenn wir einige Seiten eines Programms in den Speicher laden, brauchen wir eine Strategie, welche Seiten als nächstes geladen werden

Mehr

Lösungsvorschlag für Übung September 2009

Lösungsvorschlag für Übung September 2009 Universität Mannheim Vorlesung Betriebssysteme Lehrstuhl für Praktische Informatik 1 Herbstsemester 2009 Prof. Dr. Felix Freiling Dipl.-Inform. Jan Göbel Lösungsvorschlag für Übung 2 25. September 2009

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode

Mehr

5 Kernaufgaben eines Betriebssystems (BS)

5 Kernaufgaben eines Betriebssystems (BS) 5 Kernaufgaben eines Betriebssystems (BS) Betriebssystem ist eine Menge von Programmen, die die Abarbeitung anderer Programme auf einem Rechner steuern und überwachen, insbesondere verwaltet es die Hardware-Ressourcen

Mehr

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

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle

Mehr

Klausur Betriebssysteme

Klausur Betriebssysteme Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme 5.2.2016 Die Dauer der Klausur beträgt 90 Minuten. Es sind keine Unterlagen und Hilfsmittel erlaubt. Bitte bearbeiten Sie die Aufgaben soweit wie

Mehr

Betriebssysteme Teil 6: Hardware-Schicht II

Betriebssysteme Teil 6: Hardware-Schicht II Betriebssysteme Teil 6: Hardware-Schicht II 13.11.15 1 Literatur [6-1] Engelmann, Lutz (Hrsg.): Abitur Informatik Basiswissen Schule. Duden-Verlag, 2003, S.43-53, 214-224, 239-242, S. 267-299,304-313 [6-2]

Mehr

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

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

Computer-Systeme. Teil 13: Konzept der Threads

Computer-Systeme. Teil 13: Konzept der Threads Computer-Systeme Teil 13: Konzept der Threads Computer-Systeme WS 12/13 - Teil 13/Threads 02.01.2013 1 Übersicht I/O als langsamster Vorgang Threadwechsel mit der Resume-Operation Verfeinerung der Systemaufrufe

Mehr

5.5.5 Der Speicherverwalter

5.5.5 Der Speicherverwalter 5.5.5 Der Speicherverwalter Speicherverwalter (memory manager) reagiert auf = im einfachsten Fall ein Systemprozess, der für die Umlagerung der Seiten (page swapping) zuständig ist (analog zum Umlagerer/Swapper)

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 21.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Assignment #2. Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1

Assignment #2. Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1 Assignment #2 Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1 Organisatorisches:Termine Ab Montag Tutorien 10.12.-14.12. Designdiskussionen 18.12. Abgabe Designdokument 18.1. Abgabe Implementierung

Mehr

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Themen heute Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Besprechung des 9. Übungsblattes Aufgabe 2 Ist in einer Aufgabe wie hier keine explizite Wortbreite angegeben, nicht

Mehr

Betriebssysteme Teil 7: Konzept der Threads

Betriebssysteme Teil 7: Konzept der Threads Betriebssysteme Teil 7: Konzept der Threads 06.11.15 1 Übersicht I/O als langsamster Vorgang Threadwechsel mit der Resume-Operation Interrupts Scheduler Time Sharing 2 Motivation Die Geschwindigkeit der

Mehr

Betriebssysteme Vorstellung

Betriebssysteme Vorstellung Am Anfang war die Betriebssysteme Vorstellung CPU Ringvorlesung SE/W WS 08/09 1 2 Monitor CPU Komponenten eines einfachen PCs Bus Holt Instruktion aus Speicher und führt ihn aus Befehlssatz Einfache Operationen

Mehr

Übung zu Einführung in die Informatik # 10

Übung zu Einführung in die Informatik # 10 Übung zu Einführung in die Informatik # 10 Tobias Schill tschill@techfak.uni-bielefeld.de 15. Januar 2016 Aktualisiert am 15. Januar 2016 um 9:58 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* a),

Mehr

Betriebssysteme 1. Thomas Kolarz. Folie 1

Betriebssysteme 1. Thomas Kolarz. Folie 1 Folie 1 Betriebssysteme I - Inhalt 0. Einführung, Geschichte und Überblick 1. Prozesse und Threads (die AbstrakFon der CPU) 2. Speicherverwaltung (die AbstrakFon des Arbeitsspeichers) 3. Dateisysteme (die

Mehr

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection Übersicht Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe 2 Behandelter Bereich: Virtualisierung Syscall-Schnittstelle Ports Server Apps Server Apps Betriebssystem Protokolle Betriebssystem

Mehr

Betriebssysteme Teil 3: Laufzeitsystem für Programme

Betriebssysteme Teil 3: Laufzeitsystem für Programme Betriebssysteme Teil 3: Laufzeitsystem für Programme 23.10.15 1 Literatur [3-1] Stack: http://fbim.fh-regensburg.de/~hab39652/pg1/skriptum/ ausdruecke/maschinenmodell.html [3-2] https://de.wikipedia.org/wiki/dynamischer_speicher

Mehr

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13. DOSEMU Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren Matthias Felix filo@icip.de FAU 13. Juni 2007 Matthias Felix (FAU) DOSEMU 13. Juni 2007 1 / 22 Inhalt 1 Einführung

Mehr

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus 4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts

Mehr

RO-Tutorien 17 und 18

RO-Tutorien 17 und 18 RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 12 AM 19.07.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Betriebssysteme. Tutorium 2. Philipp Kirchhofer Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 4. November 2009 Philipp

Mehr

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

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

5.5 Virtueller Speicher

5.5 Virtueller Speicher 5.5 Virtueller Speicher Wenn der reale Speicher sogar für einzelne Prozesse zu klein ist : Virtueller Speicher (virtual memory), ist beliebig groß, nimmt alle Prozesse auf, ist in gleichgroße Teile Seiten

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 9 I/O (2) Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät UNIX I/O UNIX I/O: ähnlich wie Standard-I/O, jedoch File-Deskriptoren

Mehr

Zwei Möglichkeiten die TLB zu aktualisieren

Zwei Möglichkeiten die TLB zu aktualisieren Zwei Möglichkeiten die TLB zu aktualisieren Die MMU kümmert sich um alles (Hardware-Lösung) sucht die p-entry wenn diese nicht da ist, behandelt direkt das TLB-miss zum Schluss wird die neue p-entry (virt

Mehr

Freispeicherverwaltung

Freispeicherverwaltung Freispeicherverwaltung Allgemeine Techniken und Anwendung unter Linux Martin Wahl, 17.11.03 Freispeicherverwaltung 1 Überblick Allgemeines Suchstrategien Verwaltungsstrategien externer / interner Verschnitt

Mehr

5 Speicherverwaltung. bs-5.1 1

5 Speicherverwaltung. bs-5.1 1 5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus

Mehr

Technische Realisierung (1)

Technische Realisierung (1) Technische Realisierung () Einfachstes Modell: Prozess (Daten+Code) befindet sich im Hintergrundspeicher Bei teilweise eingelagerten Prozessen: Zusätzlich Teile im Hauptspeicher Logische Adressen überdecken

Mehr

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

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 13. Vorlesung Inhalt Cache Lesen Schreiben Überschreiben Memory Management Unit (MMU) Translation Lookaside Buffer (TLB) Klausurvorbereitung Inhalte der Klausur Rechnergrundlagen

Mehr

Hardware und Gerätetreiber

Hardware und Gerätetreiber Hardware und Gerätetreiber Betriebssysteme Hermann Härtig TU Dresden Übersicht Übersicht Kommunikation zwischen Hardware und CPU Interrupts I/O-Ports I/O-Speicher Busse Verwaltung von Geräten Dynamisches

Mehr

Technische Informatik 1

Technische Informatik 1 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

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

Einschub: HW-Zugriff aus dem Userspace

Einschub: HW-Zugriff aus dem Userspace Einschub: HW-Zugriff aus dem Userspace Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Einschub: HW-Zugriff aus dem

Mehr

Freispeicherverwaltung Martin Wahl,

Freispeicherverwaltung Martin Wahl, Freispeicherverwaltung Martin Wahl, 17.11.03 Allgemeines zur Speicherverwaltung Der physikalische Speicher wird in zwei Teile unterteilt: -Teil für den Kernel -Dynamischer Speicher Die Verwaltung des dynamischen

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Just-In-Time-Compiler

Mehr

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer Aufgabe 8.1 Ausnahmen (Exceptions) a. Erklären Sie den Begriff Exception. b. Welche Arten von Exceptions kennen Sie? Wie werden sie ausgelöst und welche Auswirkungen auf den ablaufenden Code ergeben sich

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 11 Datum: 21. 22. 12. 2017 Virtueller Speicher 1 Performanz Gehen Sie von einem virtuellen

Mehr

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

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert? SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 2 2014-04-28 bis 2014-05-02 Aufgabe 1: Unterbrechungen (a) Wie unterscheiden sich synchrone

Mehr

7 Laufzeit-Speicherverwaltung

7 Laufzeit-Speicherverwaltung 7.1 Grundlagen Bevor wir die Code-Generierung betrachten, müssen wir uns Gedanken über zur Laufzeit des zu generierenden Programms notwendige Aktivitäten zur Zuordnung und Freigabe von Speicherplatz machen.

Mehr

Klausur Betriebssysteme I

Klausur Betriebssysteme I Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 18.3.2011 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

Mehr

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14 BS-S Betriebssysteme SS 2015 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz S: Speicherverwaltung v1.0, 2015/04/14 Betriebssysteme, SS 2015 Hans-Georg Eßer Folie S-1 Übersicht: BS Praxis und BS

Mehr

Klausur Betriebssysteme I

Klausur Betriebssysteme I Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 14.3.2008 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit

Mehr

Rechnerorganisation. Überblick über den Teil 13

Rechnerorganisation. Überblick über den Teil 13 Rechnerorganisation Teil 3 9. Juni 2 KC Posch Überblick über den Teil 3 Arbiter: Wie können sich 2 aktive Partner vertragen? Direkter Speicherzugriff: Ein Ko Prozessor zum Daten Schaufeln Die Verbesserung

Mehr

1 pulsierender Speicher

1 pulsierender Speicher 1 pulsierender Speicher 1.1 Aufgabentyp Gegeben sei das folgende C-Programm: [...] (a) Geben Sie den Gültigkeitsbereich jedes Objektes des Programms an. (b) Stellen Sie die Rechnung des Programms für die

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Just-In-Time-Compiler (2) 1/13 2011-09-12 Just-In-Time-Compiler

Mehr

Bootvorgang des DSM-Systems Systems Plurix

Bootvorgang des DSM-Systems Systems Plurix Bootvorgang des DSM-Systems Systems Plurix Stefan Frenz Vortrag im Rahmen der Abteilungsbesprechung Voraussetzungen: CPU CPU-Modi Voraussetzungen: BIOS Rechner-Initialisierung durch das BIOS Interrupt

Mehr

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

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige

Mehr

Linux Memory Management für MySQL

Linux Memory Management für MySQL Linux Memory Management für MySQL SIG MySQL - Performance 13.03.2012 Marius Dorlöchter mdo@ordix.de www.ordix.de Vorstellung Marius Dorlöchter Consultant bei ORDIX seit 2006 Gruppe Systemintegration Betriebssysteme:

Mehr

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

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann Speicher- und Cacheverwaltung unter Linux Ralf Petring & Guido Schaumann Übersicht Virtueller Adressraum Virtuelle Speicheraufteilung Reale Speicheraufteilung Speicherverwaltung Speicherzugriff Auslagerungsstrategien

Mehr

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach Speicherverwaltung Design Digitaler Systeme Prof. Dr.-Ing. Rainer Bermbach Übersicht Speicherverwaltung Virtueller Speicher Memory Management Unit Segmentierung Paging Kombination Segmentierung/ Paging

Mehr

Seminarvortrag Swapping Schwerpunkt Linux

Seminarvortrag Swapping Schwerpunkt Linux Seminarvortrag Swapping Schwerpunkt Linux Konzepte von Betriebssystem- Komponenten (KVBK) Thomas Mayer Betriebssystem-Komponenten KVBK 1 Gliederung Was ist Swapping? Aufbau eines Swapbereiches Swapcache

Mehr

Übersicht. Virtuelle Maschinen Erlaubnisse (Rechte) (Protection-)Ringe. AVS SS Teil 12/Protection

Übersicht. Virtuelle Maschinen Erlaubnisse (Rechte) (Protection-)Ringe. AVS SS Teil 12/Protection Übersicht Virtuelle Maschinen Erlaubnisse (Rechte) (Protection-)Ringe 2 Literatur Virtuelle Maschinen [12-1] https://de.wikipedia.org/wiki/liste_von_virtualisierungsprodukten [12-2] https://de.wikipedia.org/wiki/virtuelle_maschine

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Konzepte von Betriebssystemkomponenten

Konzepte von Betriebssystemkomponenten Konzepte von Betriebssystemkomponenten Systemstart und Programmausführung Seminarvortrag 15.12.2003, Michael Moese Übersicht 2. Systemstart 3. Programmausführung TEIL 1: Systemstart 1.1 Das BIOS 1.2 Der

Mehr

Betriebssysteme. Tutorium 12. Philipp Kirchhofer

Betriebssysteme. Tutorium 12. Philipp Kirchhofer Betriebssysteme Tutorium 12 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 3. Februar 2010 Philipp

Mehr

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Schwerpunkt Linux Interrupts, Softirqs, Tasklets, Bottom Halves Interrupts: Softirqs, Tasklets, Bottom Halves 1 Thomas Engelhardt Übersicht: Klassifizierung

Mehr

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme Hans-Georg Eßer Hochschule München Teil 3: Zusammenhängende Speicherzuordnung 06/2009 Hans-Georg Eßer Hochschule München

Mehr

Cache Blöcke und Offsets

Cache Blöcke und Offsets Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich

Mehr

Grundlagen Rechnerarchitektur und Betriebssysteme

Grundlagen Rechnerarchitektur und Betriebssysteme Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender,

Mehr

Betriebssysteme. Wintersemester Kapitel 3 Speicherverwaltung. Patrick Kendzo

Betriebssysteme. Wintersemester Kapitel 3 Speicherverwaltung. Patrick Kendzo Betriebssysteme Wintersemester 2015 Kapitel 3 Speicherverwaltung Patrick Kendzo ppkendzo@gmail.com Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Ein- / Ausgabe und Dateisysteme Zusammenfassung

Mehr

Betriebssysteme KU - Einführungstutorium

Betriebssysteme KU - Einführungstutorium Betriebssysteme KU - Einführungstutorium SWEB-Tutoren 5. Oktober 2008 1 Grundlagen 2 SWEB 3 Kernel Basics Memory Management Details 4 Userspace 5 Hacking 6 Beispiele 7 Assignment 0 Aufgaben eines Betriebssystems

Mehr

(Ausnahmebehandlung)

(Ausnahmebehandlung) 16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2

Mehr

Systemaufrufe. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011

Systemaufrufe. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Systemaufrufe Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Systemaufrufe 1/17 2010-09-13 Motivation Am Beispiel

Mehr

Betriebssysteme Studiengang Informatik / SAT

Betriebssysteme Studiengang Informatik / SAT Betriebssysteme Studiengang Informatik / SAT Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943

Mehr

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset. Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

Mehr

Übung zu Betriebssystemtechnik

Übung zu Betriebssystemtechnik Übung zu Betriebssystemtechnik Paging in StuBSmI 14. Mai 2018 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte Systeme

Mehr

5. Aufgabenblatt Speicherverwaltung

5. Aufgabenblatt Speicherverwaltung Faculty of Computer Science Institute for System Architecture, Operating Systems Group Betriebssysteme und Sicherheit, WS 0/. Aufgabenblatt Speicherverwaltung Geplante Bearbeitungszeit: drei Wochen Aufgabe.

Mehr