IO-Flexpages in L4/Linux
|
|
|
- Adrian Lenz
- vor 8 Jahren
- Abrufe
Transkript
1 IO-Flexpages in L4/Linux Bernhard Kauer November 12,
2 Contents 1 Ziel 3 2 Einführung 3 3 Ausgangszustand DerIOPL DieIOPBM cli/sti popf iret L4/Linux Pagefaults Pager PageRequest Linux-Kern LinuxSystemcalls sys ioperm sys iopl DerRechteentzug Implementierung Root-Pager DieIODB Servicethread Emulib DieSystemcalls Fiasco Ausblick 10 7 Anhang Die verändertendateien Bugs Tests... 12
3 1 Ziel Das Ziel dieses Praktikums ist die Implementierung von IO-FlexPages in L4/Linux der Version Einführung Der Zugriff auf periphäre Geräte kann in der IA-32 Architektur durch Memory Mapped IO oder durch IO-Ports erfolgen. Diese IO-Ports bilden einen eigenen Adressraum, auf den mit den Befehlen in/out zugegriffen werden kann. Da die unsachgemäße Verwendung von IO-Ports zu Datenverlust und Systemabstürzen führen kann, muss der Zugriff auf diese durch das Betriebssystem geschützt werden. Bei Memory Mapped IO kann dies durch die Schutzmechanismen des Virtual Memory erfolgen. Diese stehen für die IO-Ports leider nicht zur Verfügung. Für die Abstraktion eines Memory-Adressraumes werden in L4 Flex-Pages ( Flexibel große Seiten ) verwendet, die als Datentyp des Mapping-Konzeptes dienen. Die Einführung von IO- FlexPages erlaubt die Ausdehnung dieses Konzeptes auf den IO-Adressraum. Dabei steht eine IO-FlexPages für einen bestimmten IO-Portbereich. Durch Einbinden einer IO-FlexPages in den Adressraum der Tasks wird der Zugriff auf diesen Bereich freigegeben. Die Freigabe kann feingranular (byteweise) erfolgen, dennoch sind nur 1:1 Mappings möglich. 3 Ausgangszustand Einige Linuxtasks müssen auf externe Geräte und damit auf IO-Ports zugreifen. Da zur Zeit keine Unterscheidung zwischen den erlaubten und unerlaubten Zugriffen möglich ist, darf jede L4/Linux-Task (also auch jeder Nutzer-Prozess) auf alle 64K Ports zugreifen und die Interrupts sperren. Da dies ein erhebliches Sicherheitsrisiko darstellt, ist ein Implementieren der IO-FlexPages nötig.
4 3.1 Der IOPL Für den Schutz des Betriebssystemkernes vor Anwenderprogrammen existiert der CPL (Current Privilege Level). Dieser legt in 4 Abstufungen die Privilegien des aktuellen Programmes fest, wobei 0 für den Kernmodus verwendet wird und 3 für die Anwenderprogramme. Durch den IOPL (IO Privilege Level) wird die Maximal-Stufe des CPL (Current Privilege Level) festgelegt, die ein Thread haben darf, um auf alle IO-Ports zuzugreifen und cli/sti ausführen zu können. L4/Linux-Tasks werden ohne IO-FlexPages mit einem IOPL von 3 ausgeführt. Ein direktes Setzen des IOPL aus einer Task heraus ist nicht möglich. Erst durch das Anfordern aller IO-Ports kann in L4 der IOPL erhöht werden. Dies geschieht lazy, d.h. erst nach einem Pagefault wird der IOPL geändert. 3.2 Die IOPBM Die IOPBM (IO Privilege Bitmap) legt per Bitmaske diejenigen Ports fest, auf die trotz IOPL-Verletzung zugegriffen werden darf. Eine vollständige IOPBM belegt 8k, wobei auch kleinere Bitmap s existieren können. Diese IOPBM wird für jede Task in L4 geführt, die IO- FlexPages verwendet. Damit kann der Prozessor den Schutz einzelner Ports gewährleisten. 3.3 cli/sti Die ASM Befehle cli/sti sperren bzw. geben die maskierbaren Interrupts frei, indem sie das IF (Interrupt Flag) löschen bzw. setzen. Diese Befehle werden z.z. vor allem an folgenden Stellen in L4/Linux eingesetzt: bei der Emulation(L4 TAMED) von cli/sti in den Funktionen global sti() zur Synchronisation einer Warteschlange 1 global cli() und in l4 idle() 2 beim Auslesen des RTC 3 beim Programmieren der PIC s 4 Eine Verwendung dieser Befehle birgt ein erhebliches Sicherheitsrisiko. Da keine Timerinterrupts mehr generiert werden, findet kein Scheduling statt. Wenn dann der laufende Thread blockiert, führt dies zum Stillstand des gesamten Systems. 1 linux22/arch/l4/x86/kernel/irq.c 2 linux22/arch/l4/x86/kernel/dispatch.c 3 linux22/arch/l4/x86/kernel/time.c 4 linux22/arch/l4/x86/kernel/irq.c
5 3.4 popf Weiterhin existiert der Befehl popf, der alle Flags (auch das IF ) vom Stack neu lädt. Ein Ändern des IF ist auch hier nur möglich, wenn der IOPL größerodergleichdemcpl ist. Fehlen die Rechte, so ignoriert der Prozessor die IO-Flags beim Setzen, anstatt eine Exception auszulösen. 3.5 iret Die Flags können auch vom iret-befehl zurückgeladen werden. benutzt, um eine Task im aktuellen User-Kontext fortzusetzen. Dieser wird im L4-Kern
6 4 L4/Linux 4.1 Pagefaults Zugriffe auf nicht vorhandenen (eingetragenen) virtuellen Speicher erzeugen Seitenfehler (Pagefaults). Diese Seitenfehler werden von L4 an den Pager des aktuellen Threads per IPC geschickt. Dieser kann die Seitenfehler auflösen, indem er die entsprechenden Seiten an den Thread als Antwort der IPC zurücksendet. Die nichterlaubten Zugriffe im IO-Adressraum werden auch durch l4 in Pagefaults umgewandelt 5, so dass sie entsprechend den Speicherseitenfehlern behandelt werden können. 4.2 Pager Der Servicethread im Linux-Server 6 dient als Pager für die Linuxanwendungen. Für den L4/Linux-Kern existiert ein sogenannter Root-Pager 7, der das Paging für alle L4/Linux- Kernthreads übernimmt. Bei der Initialisierung des L4/Linux-Kernes bekommt dieser seinen gesamten Speicher vom RMGR, der ihn wiederum von Sigma0, dem intialen Pager des Systems, hat. 4.3 PageRequest Linux-Kern Die Anforderung von Seiten für den Kern findet durch die Routinen request{ virtual, dev}- page from sigma0 statt 8. Trotz dieses Namens wird der aktuelle Pager des Threads verwendet 9.Für den Root-Pager ist dies der RMGR. 4.4 Linux Systemcalls Für das Ändern der Zugriffsrechte auf IO-Ports von Linux-Prozessen aus existieren die Systemcalls sys ioperm() und sys iopl() 10. Zum Erhöhen der IO-Privilegien ist die Capability CAP SYS RAWIO nötig, die normalerweise nur Prozesse mit UID 0, also mit Root-Rechten, besitzen sys ioperm Der Linux-Systemcall sys ioperm() erlaubt das Setzen der Zugriffsrechte für die ersten 1024 Ports. Dabei kann man mit einem Aufruf der Zugriff auf einen beliebigen Port-Bereich (portgranular) erlaubt bzw. verboten werden. Die Speicherung der Zugriffsdaten erfolgt bei Linux/i386 in einer Bitmap (thread struct.io bitmap), die eine Größe von 1024 Bit hat. 5 l4/kernel/fiasco/src/kern/thread-io.cpp 6 linux22/arch/l4/x86/kernel/dispatch.c 7 linux22/arch/l4/x86/lib/l4 pager.c 8 linux22/arch/l4/x86/lib/l4 memory.c 9 checkpager() 10 linux22/arch/i386/kernel/ioport.c
7 4.4.2 sys iopl Soll der Zugriff auf höhere Port-Bereiche erlaubt werden, so ist das Ändern der IOPL durch sys iopl() nötig. Da ein hoher IOPL neben dem Zugriff auf alle Ports auch das Recht zum Sperren der Interrupts einschließt, ist dies ein unsicheres Verfahren. Dennoch verwenden z.b. einige X-Server dies, um auf die benötigten Ports zuzugreifen. 4.5 Der Rechteentzug Die Systemcalls können die Rechte wieder entziehen. Dazu sind die IO-FlexPages mit l4 fpage unmap() zu entfernen. Dies setzt jedoch eine funktionierende 11 Mappingdatenbank voraus und ist durch die (potentiell hohe) Anzahl der beteiligten Tasks aufwendig. Um dennoch die Rechte zu entziehen, existieren zwei Möglichkeiten: Man kann erstens den Signalthread verwenden, um das Austragen durchzuführen. Dazu schickt man eine bestimmte IPC, die zur Ausführung der Methode führt. Dieses Verfahren setzt ein kooperierenden Thread voraus und ist deswegen sicherheitstechnisch ungünstig. Zweitens ist es möglich, direkt nach dem Systemcall in der Emulib die Seiten zu entfernen, da jeder Systemcall durch die Emulib gekapselt wird. Die Sicherheit wird nicht weiter beeinträchtigt. Eine kooperierende Emulib muß schon für die Systemcalls vorausgesetzt werden. Die Verwendung einer modifizierten glibc für das direkte Ausführen des Syscalls ohne den Trampolinmechanismus der Emulib ist jedoch hier nicht möglich. Aus oben genannten Gründen und wegen des geringsten Implementierungsaufwandes ist die zweite Möglichkeit implementiert worden. 11 IO-FlexPages sind dort nicht eintragbar.
8 5 Implementierung 5.1 Root-Pager Weil der IOPL in Fiasco lazy erhöht wird, verursacht jeder L4/Linux-Kernel-Thread ein Pagefault beim ersten cli/sti. Der Pagefault kann ignoriert werden, da der L4/Linux-Task zur Zeit mit hoher IOPL läuft Das Eintragen aller IO-Ports in den Adressraum des Kernel-Task findet bereits beim ersten printk() während der Initialisierung statt 12, da dies zur Synchronisation ein Spinlock verwendet, welches mit cli arbeitet. Ein Request an RMGR ist daher hier momentan nicht nötig. 5.2 Die IODB Für die Speicherung der erlaubten IO-Rechte in L4/Linux wurde thread struct um einen Zeiger io db erweitert 13. Der Zugriff auf die Rechte erfolgt durch zwei Routinen namens iodb read portrange() und iodb write portrange. Dies erlaubt eine einfache Auswechslung der dahinter liegenden Datenstruktur. Gespeichert werden nicht die einzelnen Ports, sondern nur der Anfang und das Ende der erlaubten Port-Bereiche. Diese Speicherung erlaubt bei wenigen Port-Bereichen eine effizientere Nutzung als die übliche Port-Bitmap. Die Bereiche sind der Größe nach sortiert und werden minimal gehalten, d.h. Überlappungen oder angrenzende Bereiche werden beim Eintragen verschmolzen. Außerdem existiert ein Kopf in dieser Struktur, der neben der Anzahl der Einträge und der Größe auch die IOPL enthält. Da in Linuxdie bitweise Freigabe der Ports vom IOPL unabhängig ist, ist hier, anders als in L4, eine getrennte Speicherung des IOPL nötig. Der Kopf dieser Datenstruktur belegt, genau wie ein Element, 4 Byte. Der Speicher dafür wird in Potenzen von 2 angefordert. Mindestens 16 Byte (Kopf+3 Elemente) werden für Threads, die Einträge in der IODB haben, benötigt. 12 linux22/init/main.c 13 linux22/include/asm/l4arch/processor.h
9 5.3 Servicethread Der Servicethread in dispatch.c 14 wurde in der Routine handle page fault() um die Möglichkeit der Behandlung eines IO-Page-Faults erweitert. Hat ein User-Prozess den IOPL von 3 in der IODB durch sys iopl() eingetragen oder den Port durch sys ioperm() freigegeben, so wird ihm die benötige IO-FlexPage zugesandt. Andernfalls löst ein seg fault above task size() ein SIGSEGV aus. 5.4 Emulib Das Austragen der IO-FlexPages findet in der Emulib 15 statt. Dazu wurde die Struktur shared data um einen Eintrag flush page für eine FlexPage erweitert. Ist dieser Eintrag ungleich null wird ein unmap() aufgerufen. 5.5 Die Systemcalls Die Systemcalls sys iopl() und sys ioperm() wurden analog der i386 Variante implementiert. Nach Abfragen der Rechte (capability CAP SYS RAWIO) und dem Testen auf einige Fehler werden mit iodb write portrange() die IO-Zugriffsrechte gespeichert. Werden die Rechte eingeschränkt, wird in shared data.flush page eine Seite über alle IO-Ports eingetragen und später durch die Emulib wie beschrieben entfernt. 5.6 Fiasco Bisher ist in Fiasco das Entfernen von IO-FlexPages nicht implementiert 16. Dies liegt hauptsächlich an einer Einschränkung der Mappingdatenbank, die zur Zeit mit IO-FlexPages nicht umgehen kann. Unter der Annahme, daß Usertasks keine IO-FlexPagesweitergeben, ist die Kenntnis der Mappinghierarchie unwichtig. Daher reicht hier eine einfache Implementierung des Entfernens nur für den aktuellen Task aus. Das Problem des Entziehens des IOPL in allen Threads einer Task ist bisher noch nicht gelöst. Dazu ist ein Iterieren über alle Threads in Fiasco nötig, um die EFLAGS zu ändern, die für jeden Thread, und nicht für jeden Task gespeichert werden. 14 linux22/arch/l4/x86/kernel/dispatch.c 15 linux22/arch/l4/x86/emulib/int entry.s 16 l4/kernel/fiasco/src/kern/map util.cpp
10 6 Ausblick Werden in L4/Linux keine Interrupts mehr gesperrt, kann man auch im Linux-Kern auf einen hohen IOPL verzichten. Dazu sollte 17 : die zur Speicher-Synchronisation eingesetzten cli/sti durch geeignete Synchronisationsprimitive (Semaphorethread) ersetzt werden die zur Hardware-Synchronisation eingesetzten cli/sti in Omega0 verlagert werden die Verwendung von popf im Linux-Kern zum Verändern des IF ausgeschlossen sein Wird die Verwaltung der IO-FlexPages durch die Mappingdatenbank übernommen, so könnte auch ein direkter l4 fpage unmap()-aufruf in den Syscalls erfolgen, der dann keine Kooperation mehr voraussetzen würde. 17 Der entsprechende Code existiert, ist jedoch noch nicht im CVS enthalten.
11 7 Anhang 7.1 Die veränderten Dateien Im Rahmen der Implementierung wurden folgende Dateien verändert: Datei linux22/arch/l4/x86/lib/l4 pager.c linux22/include/asm/l4arch/processor.h linux22/arch/l4/x86/kernel/makefile linux22/arch/l4/x86/kernel/unimpl.c linux22/arch/l4/x86/kernel/dispatch.c linux22/arch/l4/x86/kernel/ioports.c linux22/include/l4linux/x86/ioports.h linux22/arch/l4/x86/emulib/int entry.s l4/kernel/fiasco/src/kern/map util.cpp Grund IO-Pagefaults in Kernelthreads ignorieren thread struct erweitern file ioports.c hinzugefügt sys iopl() und sys ioperm() entfernen IODB abfragen und reply setzen IODB und Systemcalls implementiert IODB header file UnMap-Syscall wenn flush-page vorhanden UnMapping der IO-FlexPages für einzelnen Task 7.2 Bugs Während der Implementierung sind einige, mehr oder weniger bekannte, Bugs aufgetreten. Bezeichnung Grund Behebung VMWareBug 6338 Vmware versteht FIASCO mit Option erweiterte PIC-Programmierung nicht -vmware starten TimeOut Bug Vmware liefert nur alle 10ms FIASCO mit Timer Interrupts SCHED PIT compilieren
12 7.3 Tests Um die Implementation zu testen wurde ein einfaches C-Programm geschrieben, was folgende Tests ausführt: Routine test clisti Beschreibung cli bei iopl=0 lazy iopl switching sti bei iopl=3 reset iopl sti bei iopl=0 test ioport() test fork() out ohne Rechte Freigabe für einen Port und Zugriff um diesen Port Freigabe von 4 Ports und 32-Bit Portzugriff Freigabe von 3 Ports und 32-Bit Portzugriff IOPL und Portzugriff Unabhängigkeit von iopl und ioperm Freigabe von Port und iopl fork() Rücksetzen des IOPL in Parent sti in child bei iopl=3 sti in child bei iopl=0 Portzugriff auf vor fork() freigegebenen Port
Betriebssysteme KU - Bewertung A2 - WS 15/16
Betriebssysteme KU - Bewertung A2 - WS 15/16 TEAM:... Mögliche Punkte: 50 + Bonus Allgemein Design Design / PoC Implementation... Sonstiges/Abzüge +X Sonstiges / : Bewertung der einzelnen Gruppenmitglieder
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
x86 Open Source Virtualisierungstechniken Thomas Glanzmann <[email protected]>
x86 Open Source Virtualisierungstechniken März 2006 Zu meiner Person Informatik Student an der Universität Erlangen im 9. Semester 4 jährige Mitarbeit an dem Projekt FAUmachine der
Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002
Die L4-Mikrokern Mikrokern-Familie Hauptseminar Ansätze für Betriebssysteme der Zukunft 18.04.2002 Folie 1 Aufbau des Vortrags 1. Mikrokerne: Idee und Geschichte 2. L4: ein schneller Mikrokern 3. L4Linux:
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
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
Operating System Kernels
Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking
Embedded-Linux-Seminare. Linux als Betriebssystem
Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: [email protected]
Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?
Kontrollflüsse Einführung 1 Motivation Kontrollfluß Anwendung logischer Adreßraum Kontrollfluß (Thread) = führt Instruktionen aus Was charakterisiert einen Kontrollfluß? Programmzähler Registerinhalte
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
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
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
A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...
1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................
System Monitoring mit strace. Systemcall tracing
System Monitoring mit strace Systemcall tracing 1 Gliederung Einleitung: Was ist strace Grundlagen zu strace Kernel Kernelspace vs. Userspace Systemcalls ptrace Simple strace (Demo) strace die wichtigsten
Microkernel-Betriebssysteme Mach, L4, Hurd
Microkernel-Betriebssysteme Mach, L4, Hurd 14. November 2002 Holger Ruckdeschel [email protected] 1 Übersicht Gegenüberstellung: Monolithischer Kernel - Microkernel Der
Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?
Was machen wir heute? Betriebssysteme Tutorium 2 Philipp Kirchhofer [email protected] http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1
Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme
Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre
Überlegungen beim Entwurf eines Betriebssystems
Überlegungen beim Entwurf eines Betriebssystems Schnelligkeit Schutz und Sicherheit Korrektheit Wartbarkeit Kommerzielle Faktoren Standards und offene Systeme Schnelligkeit Es ist schwierig, Kenngrößen
Geräteverwaltung: Einführung
Geräteverwaltung: Einführung Die Ziele einer Geräteverwaltung sind: Einfache Softwareschnittstelle Gleiche Software Schnittstellen für alle Geräte eines Gerätetyps z.b.: unabhängig vom Soundkartenhersteller
Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.
BS-V Betriebssysteme SS 2015 Dipl.-Math., Dipl.-Inform. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls v1.0, 2015/05/28 (klassische Dokumentation) Folie V-1 Übersicht: BS Praxis und BS Theorie
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
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 =
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
2
TINF Interrupts EDT-Referat Jürgen Schwarzbauer 2ANB 1995/96 Inhalt : Was ist ein Interrupt? Zweck von Interrupts Maskierbare und nicht maskierbare Interrupts Aufruf eines Interrupts Anwendung von Interrupts
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,
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
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
Übung zu Betriebssystembau (Ü BS)
Übung zu Betriebssystembau (Ü BS) Interruptbehandlung in OOStuBS Wanja Hofer Lehrstuhl für Informatik IV WS 07/08 1 Agenda: IRQ-Behandlung in OOStuBS Interrupts und Traps beim x86 Die Interrupt-Deskriptor-Tabelle
Ü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
Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund
Betriebssystembau 3. Übung Michael Engel Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund [email protected] http://ess.cs.uni-dortmund.de/~me/ 1 Agenda: IRQ-Behandlung
Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P
SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 3(Musterlösung) 2014-05-05 bis 2014-05-09 Aufgabe 1: Polling vs Interrupts (a) Erläutern Sie
Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum
Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede
CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1
CUDA Jürgen Pröll Multi-Core Architectures and Programming Jürgen Pröll 1 Image-Resize: sequentiell resize() mit bilinearer Interpolation leicht zu parallelisieren, da einzelne Punkte voneinander unabhängig
Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a
Was machen wir heute? Betriebssysteme Tutorium 10 Philipp Kirchhofer [email protected] http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1
Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note:
Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel
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
Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen
Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux
Kommunikationsmodelle
Kommunikationsmodelle Dr. Victor Pankratius David J. Meder IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Grundlegende
Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch
Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort
Was machen wir heute? Betriebssysteme Tutorium 12 1 Organisatorisches Philipp Kirchhofer [email protected] http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität
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
Memory Management Server
Memory Management Server Kai Beskers, Sven Janko 18. Juni 2009 SDI 1 Übersicht 1 Einführung 2 Starten 3 ELF-Loader Protokoll 4 Datenstrukturen 5 Pagefault Protokoll 6 Client Interface 7 Taskserver Interface
Hardware Virtualisierungs Support für PikeOS
Virtualisierungs Support für PikeOS Design eines Virtual Machine Monitors auf Basis eines Mikrokernels Tobias Stumpf SYSGO AG, Am Pfaenstein 14, 55270 Klein-Winternheim HS Furtwangen, Fakultät Computer
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
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
Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur
Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten
Einführung in die technische Informatik
Einführung in die technische Informatik Christopher Kruegel [email protected] http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen
PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes
PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory
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
Installation und Benutzung AD.NAV.ZipTools
Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: [email protected] Die Komponente
Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner
Konzepte von Betriebssystemkomponenten Gerätetreiber Mario Körner 26.01.2004 Übersicht Einordnung in die Betriebssystemarchitektur Schnittstelle zur Hardware Schnittstelle zum Betriebssystem am Beispiel
Geräte Treiber unter Unix/Linux
Geräte Treiber unter Unix/Linux Martin Schäf 7. Oktober 2004 1 Einleitung Die Programmierung von Geräte Treibern unter Linux ist ein sehr populäres Thema, da für viele Geräte keine, oder nur sehr primitive
Dämon-Prozesse ( deamon )
Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout
PVFS (Parallel Virtual File System)
Management grosser Datenmengen PVFS (Parallel Virtual File System) Thorsten Schütt [email protected] Management grosser Datenmengen p.1/?? Inhalt Einführung in verteilte Dateisysteme Architektur
Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff
Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen
RealTime Linux. Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam
RealTime Linux Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam Übersicht 2 Standard-Kernel Dual-Kernel RTAI/LXRT In-Kernel
Betriebssysteme KU - Einführungstutorium
Betriebssysteme KU - Einführungstutorium SWEB-Tutoren irc://irc.at.euirc.net/bs Teamwork Arbeitsaufteilung? Zeiteinteilung? Codeeinteilung? Kommunikation! Kommunikation Kommunikation mit dem Team Gruppentreffen
Rechnernutzung in der Physik. Betriebssysteme
Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:
SMB / CIFS Protokoll. Ein Blick hinter die Kulissen C O N N E C T I N G B U S I N E S S & T E C H N O L O G Y
SMB / CIFS Protokoll Ein Blick hinter die Kulissen KMU Windows Umgebung Ein Alltagsbeispiel Wieso dauert das Kopieren eines Files so lange? Wieso stürzt der Windows Explorer immer ab? Wieso dauert es so
Konzepte von Betriebssystem-Komponenten. Microkernel-Betriebssysteme (Mach, L4, Hurd)
Konzepte von Betriebssystem-Komponenten WS 2002/2003 Microkernel-Betriebssysteme (Mach, L4, Hurd) Holger Ruckdeschel [email protected] 14. November 2002 1 Betriebssystem-Architekturen
Prozesse, Logs und Systemverwaltung
Prozesse, Logs und Systemverwaltung Linux-Kurs der Unix-AG Zinching Dang 31. Januar 2017 Übersicht Wiederholung & Vertiefung: Benutzer & Gruppen Prozesse Log-Dateien Befehle & Optionen Zusammenfassung
Vorlesung 5: Interrupts
Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorlesung 5: Interrupts Peter B. Ladkin Kommunikation über den Bus CPU läuft zu einer Taktfrequenz I/O Geräte laufen zu anderen
Benutzer- und Rechte-Verwaltung Teil 1
Benutzer- und Rechte-Verwaltung Teil 1 Linux-Kurs der Unix-AG Zinching Dang 23./24. Mai 2012 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen definierte
RTOS Einführung. Version: Datum: Autor: Werner Dichler
RTOS Einführung Version: 0.0.1 Datum: 20.07.2013 Autor: Werner Dichler Inhalt Inhalt... 2 RTOS... 3 Definition... 3 Anforderungen... 3 Aufgaben... 3 Eigenschaften... 4 Einteilung der Betriebssysteme...
Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008
Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren
In dieser Übung wird auf server01 eine Netzwerkfreigabe erstellt und NTFS Berechtigungen festgelegt.
In dieser Übung wird auf server01 eine Netzwerkfreigabe erstellt und NTFS Berechtigungen festgelegt. Danach wird die Rolle Ressourcen Manager installiert. Zum Abschluss wird auf das Thema Vorgängerversionen
Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in
POSIX Echtzeit: Kernel 2.6 und Preempt-RT
POSIX Echtzeit: Kernel 2.6 und Preempt-RT Slide 1 - http://www.pengutronix.de - 21.01.2007 Echtzeit-Systemplanung Wenn das zeitliche Verhalten spezifiziert ist, kann auch spezifiziert werden, welche Applikationsteile
2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme
2 2. Tag 2.1 Das Dateisystem das Dateisystem organisiert die Speicherung von Daten viele Betriebssysteme haben verschiedene Dateisysteme ein gutes Dateisystem ist wichtig um Daten sicher zu lagern Das
Sicherheit von Smartphone-Betriebssystemen im Vergleich. Andreas Jansche Gerhard Klostermeier
Sicherheit von Smartphone-Betriebssystemen im Vergleich Andreas Jansche Gerhard Klostermeier 1 / 24 Inhalt ios Sicherheitsmechanismen allgemein Sicherheits-APIs weitere Features Probleme Android Architektur
Hardware-basierte Virtualisierung
Hardware-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Hardware-basierte Virtualisierung 1/22
Hardware-basierte Virtualisierung
Hardware-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 V. Sieh Hardware-basierte
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)
Instruktionssatz-Architektur
Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile
4.3 Hintergrundspeicher
4.3 Hintergrundspeicher Registers Instr./Operands Cache Blocks Memory Pages program 1-8 bytes cache cntl 8-128 bytes OS 512-4K bytes Upper Level faster Disk Tape Files user/operator Mbytes Larger Lower
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
Betriebssystem-basierte Virtualisierung
Betriebssystem-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Betriebssystem-basierte Virtualisierung
Konzepte von Betriebssystem Komponenten. Aufbau eines Modernen Betriebssystems (Windows NT 5.0)
Konzepte von Betriebssystem Komponenten Aufbau eines rnen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung
Institut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.
Dongle Generator: Technisches Datenblatt Betriebsanleitung Generieren Sie Ihren Dongle selbst!!! Allgemeine Angaben:
Dongle Generator: Technisches Datenblatt Betriebsanleitung Generieren Sie Ihren Dongle selbst!!! Allgemeine Angaben: Die Software Dongle-Generator macht aus jedem USB Stick einen Dongle. Dazu werden verschiedene
Realisierung: virtueller Prozessor: der reale Prozessor wird periodisch dem Programm zugewiesen Im Prozessor: durch Task-Status Segment (TSS)
1.2 Multitasking Damit ein Computer mehrere Aufgaben gleichzeitig erledigen kann, die jede für sich oder die auch gemeinsam arbeiten, z.b. Daten lesen Berechnungen ausführen Netzwerkkontakt abarbeiten
Projekt für Systemprogrammierung WS 06/07
Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: [email protected] Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware
6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
Windows CE. Process Control and Robotics. Fabian Garagnon
Windows CE Process Control and Robotics Fabian Garagnon 14.01.2009 Agenda 3 Geschichte & Timeline Echtzeit & Multithreading Architektur Memory Management & Context Switch Entwicklung unter CE Interrupts
Smartphone Entwicklung mit Android und Java
Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de [email protected] Was ist Android Offene Plattform für mobile Geräte Software Kompletter
Assembler - Einleitung
Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache
Übung zu Einführung in die Informatik # 10
Übung zu Einführung in die Informatik # 10 Tobias Schill [email protected] 15. Januar 2016 Aktualisiert am 15. Januar 2016 um 9:58 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* a),
Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13
UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 Verarbeitungsgrundlagen Teil 2 Virtual Storage el0100 copyright
kernkonzept L4Re ISOLATION UND SCHUTZ IN MIKROKERNBASIERTEN SYSTEMEN kernkonzept 1
kernkonzept L4Re ISOLATION UND SCHUTZ IN MIKROKERNBASIERTEN SYSTEMEN kernkonzept 1 kernkonzept Systeme mit höchsten Sicherheitsanforderungen trotzdem flexibel und nutzerfreundlich dank Mikrokernen der
3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57
3. Unix Prozesse Ein Prozeß ist die Umgebung eines laufenden Programms. Ein bißchen Analogie. Wer kocht gerne? Papa möchte mit Hilfe eines Rezeptes eine Torte für seine Tochter backen. Das Rezept ist das
Betriebssysteme SS 2013. Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz E SB 5 (11.04.2013) ACLs und Capabilities
Betriebssysteme SS 2013 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz E SB 5 (11.04.2013) ACLs und Capabilities 11.04.2013 Modul 6: Betriebssysteme, SS 2013, Hans-Georg Eßer Folie E-1 ACLs und
