CA Übung 30.01.2006. Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder



Ähnliche Dokumente
Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Einführung in die technische Informatik

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Menü auf zwei Module verteilt (Joomla 3.4.0)

Dokumentation IBIS Monitor

Internet online Update (Mozilla Firefox)

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

Internationales Altkatholisches Laienforum

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1 Vom Problem zum Programm

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Anleitung über den Umgang mit Schildern

Wie halte ich Ordnung auf meiner Festplatte?

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

2A Basistechniken: Weitere Aufgaben

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Word 2010 Schnellbausteine

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Zählen von Objekten einer bestimmten Klasse

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

Einleitung. Hauptteil. Wir befinden uns nun im Demoarchiv.

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

Mandant in den einzelnen Anwendungen löschen

Beispiel(unten ist der Spielfeldrand):

V o r w o r t. A n l e i t u n g

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Arbeiten mit dem Outlook Add-In

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

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

Hochschule Aalen. OpenVPN. Anleitung zur Installation

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

Installation OMNIKEY 3121 USB

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

Fachhochschule Fulda. Bedienungsanleitung für QISPOS (Prüfungsanmeldung, Notenspiegel und Bescheinigungen)

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Einrichtung HBCI mit PIN/TAN in VR-NetWorld-Software

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

Was meinen die Leute eigentlich mit: Grexit?

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

Datenbanken Kapitel 2

Vorgehensweise bei Lastschriftverfahren

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

Das Omnikey 8751 e-health BCS...1 Auslesen über die LAN-Schnittstelle...1 Auslesen über die serielle Schnittstelle...4

Virtuelle COM-Schnittstelle umbenennen

Konvertieren von Settingsdateien

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Serienbriefe mit Word. [Geben Sie den Untertitel des Dokuments ein] Computeria Rorschach

Abwesenheitsnotiz im Exchange Server 2010

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42

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

So gehts Schritt-für-Schritt-Anleitung

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Anmelden und Vorträge einreichen auf der JBFOne-Website Inhalt

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Lehrer: Einschreibemethoden

Programmierung in C. Grundlagen. Stefan Kallerhoff

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

etoken mit Thunderbird verwenden

Etikettendruck mit Works 7.0

Benutzer-Handbuch. Import / Export von Adressen

PROBLEME BEIM INSTALLIEREN REALTEK HD AUDIO TREIBER

Konfiguration von Exchange 2000 zum versenden und empfangen von Mails & Lösung des SEND after POP Problems

Aufklappelemente anlegen

Kontakte nach Excel exportieren und korrigieren Outlook

II. Daten sichern und wiederherstellen 1. Daten sichern

Internet online Update (Internet Explorer)

Anleitung. Einrichtung vom HotSync Manager für den Palm 1550 bis 1800 unter Windows 7. Palm SPT 1500 / 1550 Palm SPT 1700 / Bits & Bytes Seite 1

Handout für die Einrichtung von Microsoft Outlook

Sunet. Kurzanleitung. Schadenmeldung UVG

Evident VDDS-Anbindung von MIZ

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Cisco AnyConnect VPN Client - Anleitung für Windows7

Bilder zum Upload verkleinern

So funktioniert das online-bestellsystem GIMA-direkt

Zwischenablage (Bilder, Texte,...)

Neue Zugangsdaten für sg-online erstellen

Dow Jones am im 1-min Chat

Stammdatenanlage über den Einrichtungsassistenten

Installationsanleitung. Ab Version

Mit dem sogenannten Seriendruck können Etiketten und Briefe mit einer Adressdatei (z. B. Excel) verknüpft werden.

AutoCAD Dienstprogramm zur Lizenzübertragung

Erweiterung AE WWS Lite Win: AES Security Verschlüsselung

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

KeePass Anleitung. 1.0Allgemeine Informationen zu Keepass. KeePass unter Windows7

Diagramm aus mehreren Tabellenblättern

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

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

Prospektbew irtschaftung

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Hohe Kontraste zwischen Himmel und Landschaft abmildern

Transkript:

CA Übung 30.01.2006 Hallo zusammen! Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder Adrian Schüpbach: scadrian@student.ethz.ch Christian Fischlin: cfischli@student.ethz.ch 1

Virtual Memory und Kontrollpfad Lernziel: Virtual Memory verstehen Zusammenspiel von TLB, Page Table und Cache verstehen Übungen lösen können Übungen zu Virtual Memory selbstständig lösen danach Lösungsbesprechung 2

Übungsablauf Nachbesprechung der letzten Übung Repetition von Virtual Memory Lösen einer Aufgaben heute Besprechung dieser Aufgaben 3

Nachbesprechung Übung recht gut gelöst alle haben die Bonuspunkte erhalten! kurz durch Aufgaben 4

Nachbesprechung Aufgabe 1 zwei Möglichkeiten für statischen Kontrollfluss if Teil wird ausgeführt dreimal cnt++ => Wert von cnt ist 3 if Teil wird nicht ausgeführt cnt++ wird nur einmal ausgeführt => cnt==1 Somit: mögliche Werte sind: 1, 3 5

Aufgabe 1 Nachbesprechung zwei fork => drei Prozesse => drei Ausgaben Variablenwerte werden bei fork() kopiert Ausgaben: einmal 1 und zweimal 3 Reihenfolge unbekannt Prozessausführungsreihenfolge unbekannt Mögliche Ausgaben 133 313 331 6

Aufgabe 2 Nachbesprechung ein bisschen schwieriger als Aufgabe 1 Endlosschleife im Hauptprogramm beeps mit 0 initialisiert static int => einmal initialisiert behält nach Beenden der Funktion letzten Wert wichtig: if(++beeps<2)!= if(beeps++<2) 7

Aufgabe 2 ++beeps: zuerst Wert lesen dann inkrementieren beeps++: Nachbesprechung zuerst inkrementieren dann bereits inkrementierten Wert lesen 8

Nachbesprechung Beispiel ++beeps links und rechts gleiche Bedeutung beeps=0; if(++beeps<2){... } beeps=0; if(beeps<2){... } beeps=beeps+1; 9

Nachbesprechung Beispiel beeps++ links und rechts gleiche Bedeutung beeps=0; if(beeps++<2){... } beeps=0; beeps=beeps+1; if(beeps<2){... } 10

Nachbesprechung in handler if(++beeps<2) also 0<2 und 1<2 Ausgaben somit YO, YO, MA danach kill Signal an sich selber sich selber Signale senden möglich Programm terminiert also 11

Nachbesprechung Aufgabe 3 abc main: n=setjmp(stuff); while((n+=foo())<0) n=0 foo() wird aufgerufen foo: c=getc(stdin); return(bar()); c='a'; bar() wird aufgerufen 12

Nachbesprechung Aufgabe 3 abc bar: if(setjmp(more_stuff)==0) return(3); return Wert ist ==0, da setjmp() aufgerufen wird main: while((n+=3)<0){} printf(); 3 wird ausgegeben 13

Nachbesprechung Aufgabe 3 xab main: while() foo: longjmp(stuff,42); main: n=setjmp(stuff); while((n+=foo())<0) wie vorher: foo() aufrufen c=='x'; damit zu main hierhin zurück mit n=42 foo() nochmals aufrufen 14

Nachbesprechung Aufgabe 3 xab foo: c=='a' => 3 zurückgeben return(3); main: while((n+=3)<0){} printf() n==42 jetzt: n==45 Ausgabe: 45 15

Aufgabe 3 xxa funktioniert wie xab Unterschied: zweimal x Nachbesprechung d.h. zweimal kurz vor while in main springen zweimal 42 als Rückgabe longjmp/setjmp danach a Rückgabewert 3 Ausgabe also 45 16

Nachbesprechung Aufgabe 3 yab main: foo() aufrufen foo: longjmp(more_stuff,42) c=='y': more_stuff noch nicht gesetzt, undefiniert Ausgabe also undefiniert 17

Nachbesprechung Aufgabe 3 xyz main: foo() aufrufen foo: longjmp(stuff,42) longjmp(more_stuff,42) c=='x': ok, n=42 c=='y': more_stuff noch nicht gesetzt, undefiniert Ausgabe also auch hier undefiniert 18

Nachbesprechung Aufgabe 4 verschiedene Prozesse gestartet Ausführungsreihenfolge nicht voraussehbar aber wait() stoppt Parent Prozess, bis Child beendet gibt PID des Childs zurück Rückgabewert von wait() also >0 19

Nachbesprechung Aufgabe 4 298068 OK 291688 nicht möglich, 1 kann nicht ausgegeben werden 920688 OK 20

Nachbesprechung Aufgabe 4 289060 nicht möglich, zweimal 0 ausgeben nicht möglich 268908 nicht möglich, 6 vor 9 und 0 ausgeben nicht möglich wegen wait(), d.h. Child, der 9 und 0 ausgibt, muss zuerst beenden 906828 OK 21

Nachbesprechung Noch Fragen zur Nachbesprechung? 22

Warum ist das wichtig? Virtual Memory Speicherbereich vergrössern mehr Prozesse, als vorhandener Speicher, gleichzeitig ausführbar Grösse eines Prozesses kann grösser als verfügbarer Hauptspeicher sein Speicherverwaltung einfacher mit Pageing alle Blöcke im Hauptspeicher gleich gross in vielen Betriebssystemen benützt 23

Virtual Memory Funktionsweise Virtuelle Adresse aufteilen in virtuelle Page Nummer und Offset Übersetzungstabelle (Page Table) übersetzt virtuelle Page Nummer in physikalische Page Nummer virtuelle und physikalische Pages gleichgross Offset bleibt für physikalische Page das Gleiche 24

Virtual Memory Es gibt mehr virtuelle Pages als physikalische physikalische Pages auf Festplatte auslagern um Platz für andere virtuelle Page zu schaffen gleiche virtuelle Adresse muss nicht auf gleiche physikalische Adresse zeigen falls physikalische Page ausgelagert ist => Page Fault Betriebssystem lädt Page in Speicher, falls ausgelagert, sonst Page Fault (Segmentation Fault) 25

Virtual Memory Page Table Basis Register valid rechte phys. Nummer 1r/o 2 1r/w 8 0 5 virt. Nummer Offset 1 22 2 66 Offset 22 in phys. Page 2 phys. Page 0 1 2 3 4 5 6 7 8 9 10 26

Virtual Memory Cache beschleunigt Zugriff auf Daten Adress Translation vor Zugfriff auf Cache physikalische Adressen für Cache benützt nicht alle gleich => weniger Kollisionen Page Table in Hauptspeicher Problem: Zugriff und Adresstranslation langsam und durch Cache in Hauptspeicher Lösung: Translation Lookaside Buffer (TLB) Cache für Adresstranslation von virtueller nach physikalischer Nummer, d.h. für Page Table 27

TLB Funktionsweise Virtual Memory TLB funktioniert wie normaler Cache Zugriff über Index Valid Bit und Tag überprüfen physikalische Page Nummer aus TLB lesen 28

Zugriff auf ein Byte Virtual Memory Transformation virtuelle Adresse > physikalische Adresse physikalische Nummer anhand virtuelle Nummer in TLB nachschauen hit: Nummer zurückgeben miss: Zugriff auf Page Table in Hauptspeicher Page Fault: falls valid==1 => Page im Speicher => OK falls valid==0 => Page nicht im Speicher 29

Zugriff auf ein Byte Virtual Memory valid==0, Page ausgelagert Betriebssystem lädt Page in Hauptspeicher valid=1 kehrt zurück, normal weitermachen valid==0, Page existiert überhaupt nicht Betriebssystem signalisiert dem Prozess Segmentation Fault 30

Virtual Memory Zugriff auf ein Byte jetzt physikalische Adresse mit physikalischer Page Nummer und Offset zusammenstellen im Cache nachschauen, ob physikalische Adresse gespeichert ist Index in Cachezeile, valid und Tag überprüfen Cache hit: Byte an Offset Cache Offset zurückgeben Cache miss: Byte aus dem Hauptspeicher laden 31

Virtual Memory Beispiel dazu jetzt in 4 Aufgaben jetzt Lösen, danach Besprechung der Lösung gegeben TLB, Page Table, Cache, virtuelle Adresse 0x03d7 gesucht: Byte an der virtuellen Adresse 0x03d7 32

Aufgabe A Virtual Memory Aufgaben 13 Bits virtuelle Adresse einfüllen (0x03d7) mit Strichen markieren, von wo bis wo VPN (Nummer) VPO (Offset) TLBT (TLB Tag) TLBI (TLB Index) 33

Aufgabe B Virtual Memory Aufgaben Werte aufschreiben VPN TLB Index TLB Tag TLB hit? Page fault? PPN 34

Aufgabe C Virtual Memory Aufgaben 11 Bits physikalische Adresse einfüllen mit Strichen markieren, von wo bis wo Cache Tag Cache Index Cache/Byte Offset PPN PPO wie gross ist Page? (Anzahl Bytes?) 35

Aufgabe D Virtual Memory Aufgaben Werte einfüllen gibt der Cache ein Byte zurück? wenn ja, welcher Wert? 36

Aufgabe A Virtual Memory Lösungen TLBT TLBI 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 VPN VPO 37

Aufgabe B Virtual Memory Lösungen VPN 15 TLBI 3 TLBT 3 TLBhit? ja Page fault? nein PPN 0x0D 38

Aufgabe C Virtual Memory Lösungen CT CI CO 11 10 9 8 7 6 5 4 3 2 1 0 0 0 1 1 0 1 0 1 0 1 1 1 PPN PPO = VPO 39

Aufgabe D Virtual Memory Lösungen Byte Offset 3 Cache Index 5 Cache Tag 0x0D Cache hit? ja Bytes 0x36 0x72 0xF0 0x1D Cache Byte returned 0x1D 40