Tasks I. Andreas Görzen Benjamin Kotke Fabian Mierendorff Jonas Kemper Sebastian Wolf Timo Lorenz Wolfgang Laut. 16. Juli 2013

Größe: px
Ab Seite anzeigen:

Download "Tasks I. Andreas Görzen Benjamin Kotke Fabian Mierendorff Jonas Kemper Sebastian Wolf Timo Lorenz Wolfgang Laut. 16. Juli 2013"

Transkript

1 Tasks I Andreas Görzen Benjamin Kotke Fabian Mierendorff Jonas Kemper Sebastian Wolf Timo Lorenz Wolfgang Laut 16. Juli

2 Inhaltsverzeichnis 1 Analyse Task State Segment Task-Register Task-Gates Thread-Zustände Prozess vs. Thread Einordnung von Prozessen, Threads und Tasks Global Descriptor Table Struktur GDT Initialisierung der GDT Laden der Global Descriptor Table Dispatcher Entwurf Klasse GDTManager Threads Scheduler Dispatcher Benutzung von Prozessen und Threads Threaderstellung Zusammenspiel mit dem Scheduler Fazit und Ausblick 14 2

3 1 Analyse 1.1 Task State Segment Beim Task-Wechsel möchte man den unterbrochenen Task zu einem späteren Zeitpunkt in dem Zustand 1 weiter ausführen, in dem er unterbrochen wurde. In der Intel IA32-Architektur wird dies mit Hilfe des Task State Segments (TSS) erreicht. Über das TSS können diese Werte durch den Prozessor abgerufen werden. Die Abbildung 1 zeigt den Aufbau des Task State Segments. Abbildung 1: Task-State-Segment Für das Task State Segment wird ein Deskriptor in der GDT abgelegt, dieser kann über einen Selektor des Deskriptors vom Prozessor geladen werden. Der Nachteil dieser Realisierung ist, das maximal 8189 Tasks abgelegt werden können, denn 1 Ein Zustand besteht aus Stack- und Instruction Pointer, Registerzuständen und Segmentselektoren 3

4 die GDT kann nicht mehr Einträge enthalten. Genauere Informationen zur GDT befinden sich in Abschnitt 1.7. Bei einem Task-Wechsel aktualisiert der Prozessor die dynamischen Werte, wie z.b.den Stack- oder Instruction-Pointer. Die Voraussetzung dafür ist, dass das Task-Register auf ein Task-State-Segment zeigt. Daher muss für den Initialprozess auch ein TSS erstellt werden und einmalig das Task-Register auf dieses geladen werden, damit zu anderen Prozessen gewechselt werden kann. Das Task-State-Segment bietet zusätzlich Schutz für IO, dieser Mechanismus wird jedoch bislang nicht berücksichtigt. 1.2 Task-Register Das Task-Register enthält einen 16-Bit Segmentselektor und den kompletten Segmentdeskriptor für die TSS des aktuellen Tasks. Diese Informationen sind aus dem TSS Deskriptor des aktuellen Tasks kopiert. Es hat einen sichtbaren Teil, der durch Software gelesen und geändert werden kann und einen unsichtbaren Teil, der vom Prozessor verwaltet wird. Die Befehle LTR (load task register) und STR (store task register) laden und lesen den sichtbaren Teil des Task-Registers: Die LTR Anweisung lädt einen Segmentselektor in das Task-Register der auf einen TSS Deskriptor in der GDT zeigt. Danach wird der unsichtbare Teil des Task-Registers mit Informationen des TSS Deskriptor befüllt. LTR ist eine privilegierte Anweisung die nur auf CPL 0 ausgeführt werden kann. Sie wird während der Systeminitialisierung benutzt, um einen Initialwert in das Task-Register zu speichern. Später ändert sich der Inhalt des Task-Registers implizit wenn ein Taskwechsel stattfindet. Die STR Anweisung speichert den sichtbaren Teil des Task-Registers in einem Mehrzweckregister oder Speicher. Diese Anweisung kann von jedem Privileglevel ausgeführt werden, um den aktuell laufenden Task zu identifizieren. 1.3 Task-Gates Ein Taskwechsel kann mithilfe eines Task-Gate vorgenommen werden. Es kann in der GDT, der LDT, oder IDT liegen. Dabei zeigt der TSS-Segmentselektor im Task-Gate auf denjenigen Segmentdeskriptor, der das TSS des Tasks definiert, Registe oder Speicher. Was denn nun? 4

5 zu dem gewechselt wird. Wenn durch einen Call, Jump oder Interrupt ein Task- Gate aufgerufen wird, so wird ein Task-Wechsel initiiert und der Zustand des bisher aktiven Tasks in dem TSS abgespeichert, das durch das Task-Register (TR) definiert ist. 1.4 Thread-Zustände Blockiert Der Thread verweilt in einem Wartezustand und muss auf die Erfüllung (mindestens) einer Wartebedingung (z.b.semaphore) warten. Sobald alle Bedingungen für den Thread erfüllt wurden, geht dieser in den Zustand Bereit über und erwartet die Prozessorzuteilung. Bereit Aktiv Die Threads, die in der Warteschlange stehen, werden als bereit bezeichnet. Nur einem Thread, für den keine Wartebedinungen vorliegen, kann die CPU zugeteilt werden. Durch Zuteilung der CPU wird der Thread in den Status Aktiv versetzt. In diesem Zustand bekommt der Thread exklusiv Rechenzeit der CPU zugeteilt. Welcher rechenwillige Thread zur Ausführung kommt, hängt vom Scheduler ab. Der Zustand kann sich ändern, wenn ein anderer Thread zur Ausführung gelangt und dem aktuellen Thread den Prozessor entzieht. Darüber hinaus können Wartebedingungen (z.b.warten auf Eingabedaten) entstehen, die den Thread in den Zustand Blockiert wechseln lassen. Ein Prozessor kann zu einem gegebenen Zeitpunkt immer nur einen Thread bearbeiten. Die Übergänge zwischen den Zuständen zeigt Abbildung 2. Abbildung 2: Threadzustände 1.5 Prozess vs. Thread Prozesse sind die Abfolge von bestimmten Ereignissen und lösungsorientiert. Als Spezialfall: in Betriebssystemen ist ein Prozess ein Vorgang, der durch ein 5

6 Programm kontrolliert wird, welches zur Ausführung einen Prozessor benötigt (Duden Informatik). Threads sind leichtgewichtigere Prozesse und erweitern das Prozessmodell. Threads bewirken, dass Teile innerhalb eines Prozesses quasi nebenläufig ausgeführt werden. Sofern das Betriebssystem dies unterstützt und die Betriebsmittel vorhanden sind, können Threads durch mehrere CPU-Kerne echt parallel ausgeführt werden. Threads die (echt) nebenläufig ausgeführt werden, teilen sich mit anderen Threads die Betriebsmittel des Rechners. 1.6 Einordnung von Prozessen, Threads und Tasks In unserem Projekt unterscheiden wir zwischen Prozessen, Threads und Tasks. Nachdem die Begriffe Prozess und Thread bereits grundlegend definiert wurden, soll nun eine auf dieses Projekt bezogene Abgrenzung statt finden. Prozesse und Threads sind Begriffe, die wir auf der Objektebene (High-Level) benutzen. Hierbei gilt, dass ein Prozess mehrere Threads beinhalten kann und ein Thread immer zu einem Prozess gehören muss. Der Begriff Task bezieht sich auf die Ausführung innerhalb der Hardware, konkret des Prozessors (Low-Level). Der Prozessor kennt weder Prozesse noch Threads. Für ihn gibt es nur Tasks, zwischen denen er wechseln kann. Diese Tasks können untereinander kommunizieren, wenn sie über einen gemeinsamen Speicherbereich verfügen, ähnlich wie es Threads eines Prozesses untereinander möglich ist. Daher entspricht in diesem Projekt ein Prozess im High-Level in etwa einem PageContext im Low-Level. Ein Thread im High-Level entspricht so einem Task im Low-Level. 1.7 Global Descriptor Table Da die Segmentregister mit 16 Bit etwas wenig Platz für die notwendigen Informationen anbieten, erhalten diese nur noch Selektoren also die Nummer eines Segments, das auf eine Tabelle verweist und zusätzliche Flags. Die wirklichen Beschreibungen dieser Segmente sind in der Global Descriptor Table (GDT) zu finden. Diese besteht aus mehreren Segmentdeskriptoren zu je 64 Bit, die sich direkt hintereinander in dieser Tabelle befinden. Tabelle 1 beschreibt einen Verweis auf die GDT. Die Global Descriptor Table ist eine Tabelle, um den Speicher, das Multitasking und verschiedene Gates zu verwalten. Sie beinhaltet verschiedene Informationen 6 Schulz: Tabelle 1 Unklar

7 Tabelle 1: Verweis auf die GDT über Speicherabschnitte. In dieser Tabelle können Segmente eingetragen werden, die zum Beispiel den Arbeitsspeicher in einen bestimmten Bereich adressieren und schützen. Die Struktur der Tabelleninhalte wird im folgenden Abschnitt beschrieben Struktur GDT Jeder Eintrag der GDT besteht aus 8 Byte und hat die in Tabelle 2 dargestellte Struktur. Tabelle 2: Struktur GDT-Eintrag Limit: Größe des Segments - 1 (entweder in Bytes oder in 4 KiB-Einheiten siehe Flags) Base: Die Adresse wo das Segment beginnt 7

8 Accessbyte: Zugriffsinformationen (Ring, executable, etc.) (Vollständig in Byte 5) Flags: Definiert die Segmentgrößeneinheit und 16/32?Bit. (Vollständig in Byte 6) Initialisierung der GDT Die GDT muss immer mindestens einen gültigen Deskriptor enthalten. Da dies schwierig zu gewährleisten ist, ist der erste Eintrag der GDT der sogenannte Nulldeskriptor. Dieser kann auf 0 gesetzt bzw. gelassen werden. Durch diese Konvention ist es möglich eine leere GDT zu erkennen und entsprechend zu behandeln. Ab dem folgenden Eintrag beginnen die tatsächlichen Deskriptoren. Zusätzlich zum Nulldeskriptor gibt es noch zwei weitere Deskriptoren, die vorhanden sein müssen: das Code- und Datensegment für den Kernel. Diese drei Standardeinträge sollte immer in der GDT vorhanden sein Laden der Global Descriptor Table Wenn sich im Speicher des Kernels eine GDT befindet, mit der er auf seine Segmente verweisen möchte, muss der Kernel noch das Register der GDT (GDTR) ändern. In diesem Register befinden sich zwei wichtige Informationen, die Adresse und das Limit der GDT. Dieses Register wird mit dem Befehl lgdtgeladen. Da dieses Register nur 6 Byte groß ist, kann dieser Befehl den neuen Wert nicht direkt als Operand entgegennehmen, sondern erwartet einen Zeiger auf eine Speicherstelle, die diese 6 Bytes enthält. Anschließend sollten alle Segmentregister neu geladen werden. 1.8 Dispatcher Der Dispatcher ist im Rahmen der Prozessverwaltung eines Betriebssystem tätig und dient dazu bei einem Kontextwechsel dem aktiven Thread die Ressourcen (CPU) zu entziehen und diese dem darauf folgenden Thread zuzuordnen. Es wird dem rechnenden Thread der Rechenkern entzogen und dieser dem nächsten Thread zugewiesen. Die Entscheidung, welcher Thread der Nachfolger ist, wird vom Scheduler getroffen. Scheduler und Dispatcher arbeiten Hand in Hand. 8

9 2 Entwurf Das für diesen Entwurf angefertigte Klassendiagramm befindet sich im Anhang. Im folgenden werden einige ausgewählte Aspekte näher beschrieben. 2.1 Klasse GDTManager Zur Verwaltung der GDT ist die Klasse GDTManager zuständig. Diese Klasse bietet alle Funktionalitäten, die für die Verwendung der GDT notwendig sind. Diese Klasse ist nach dem Entwurfsmuster Singleton umgesetzt und daher gibt es von ihr im gesamten Betriebssystem nur eine Instanz. Der Konstruktor dieser Klasse initialisiert die zuvor beschriebenen Pflichteinträge der GDT (Nulldeskriptor, Code/Datensegment für den Kernel). Die Operation setgdtentry() ermöglicht es, weitere Einträge in der GDT in lesbarer Form vorzunehmen. Listing 1 zeigt, wie die Parameter an die richtige Position in der Tabelle zugewiesen werden. Listing 1: Laden der GDT 1 void GDTManager : : loadgdt ( ) { 2 puts ( " Loading GDT from Kernelspace : " ) ; 3 struct GdtPtr { 4 uint16_t l i m i t ; 5 void base ; 6 } attribute ( ( packed ) ) ; 7 GdtPtr gdtptr ; 8 gdtptr. l i m i t = GDT_ENTRYS 9 sizeof ( CodeOrDataOrTaskSegmentDescriptor) 1; 10 gdtptr. base = start ; 11 / / load the gdt 12 asm( " lgdt %0" : : "m" ( gdtptr ) ) ; 13 / / load a l l selectors except CS f o r activating GDT 14 uint16_t a = 0x10; 15 asm ( "mov %0, ax ; " : : " r " (a) : ) ; 16 asm( "mov ds, ax" ) ; 17 asm( "mov es, ax" ) ; 18 asm( "mov fs, ax" ) ; 19 asm( "mov gs, ax" ) ; 20 asm( "mov ss, ax" ) ; Schulz: Implementierung!! 21 9

10 22 puts ( "OK\ r \n" ) ; 23 } 2.2 Threads Jeder Thread hat einen Zustand. Im Folgenden werden die möglichen Zustände beschrieben. RUNNABLE sind Threads, wenn sie lauffähig sind. Hier fehlt Text! vgl. Dokument von Schulz BLOCKED WAITING ist ein Thread, wenn er auf eine Semaphore wartet. ist der Startzustand eines Threads. In diesem Zustand kann ein Thread noch nicht ausgeführt werden. Er wartet auf seine Initialisierung. TERMINATED bedeutet, dass ein Thread fertig mit der Ausführung ist. RUNNING ist ein impliziter Zustand. Der Thread, der im Scheduler als aktuell laufender Thread ausgezeichnet ist, hat diesen Zustand. Gegenüber der Analyse wurde noch die Zustände Waiting und Terminated hinzugefügt. Waiting repräsentiert einen gerade erstellten Thread. Dieser geht nicht automatisch in den Zustand Runnable über, damit die Initialisierung in jedem Fall sauber abgeschlossen werden kann. Der Zustand Terminated dient dazu bereits abgearbeitete Threads zu erkennen, die nicht mehr benötigt werden. Im Prozess werden die Threads in Listen verwaltet. Für die Zustände RUNNA- BLE, WAITING und BLOCKED gibt es jeweils eine Liste. Ist ein Thread im Zustand TERMINATED, so wird dieser bei der nächsten Lauffähigkeits-Überprüfung vom Scheduler gelöscht. Wird der letzte Thread eines Prozesses entfernt, so wird der Prozess ebenfalls gelöscht. Die Übergänge zwischen den Threadzuständen zeigt Abbildung Scheduler Der Scheduler ist dafür zuständig, alle Prozesse und deren Threads zentral zu verwalten. Dazu ist er als Singleton realisiert und hat eine Liste aller Prozesse. Über die Prozesse hat er auch Zugriff auf die zugehörigen Threads. Da es sich um ein kooperatives Multitasking handelt wird aus der Liste aller Prozesse der Erste ausgewählt und nacheinander alle Threads des Prozesses abgearbeitet 10

11 Abbildung 3: Threadzustände bis sie fertig sind oder die Ressourcen abgeben. Die Prozesse sind nach ihrem Erstellungszeitpunkt geordnet. Falls keine Prozesse mehr vorhanden sind, läuft ein Idle-Prozess, der ständig Dispatcher::backToScheduler aufruft, um nach ausführbaren Threads zu suchen. Für die Ausführung eines neuen Prozesses benutzt der Scheduler den Dispatcher. Der Scheduler ist dafür zuständig alle Prozess und deren Threads zentral zu verwalten. Dazu ist er als Singleton realisiert und hat Zugriff auf eine verkettete Liste aller registrierten Prozesse über deren erstes Element (registeredprocesses - Änderung in: firstregisteredprocess später). Über die Prozesse hat er auch Zugriff auf die zugehörigen Threads. Da es sich um ein kooperatives Multitasking handelt wird, wenn ein neuer Thread ausgewählt werden soll (intern: choosenext ) immer der auf den aktuellen Thread folgende (currentthread->getnextthread() ), ausgewählt. Falls der aktuelle Thread keine folgengenden Threads hat, wird der nächste Prozess ausgewählt (currentthread- >getparent->getnextprocess() ). Falls jedoch irgendwann auch ein Prozess keinen Nachfolger mehr hat, wird wieder beim ersten Prozess begonnen. Die Prozesse sind nach ihrem Registrierungszeitpunkt geordnet, der erste Prozess ist immer der zuletzt registrierte. Falls die Prozesse keine lauffähigen Threads mehr besitzen läuft ein Idle-Prozess der ständig Dispatcher::backToScheduler aufruft, um nach ausführbaren Threads zu suchen. Für die Thread-Wechsel nutzt der Scheduler den Dispatcher. Im den Abbildungen 4 und 5 werden die internen Algorithmen des Schedulers dargestellt. Zunächst choosenext(), der den nächsten RUNNABLE-Thread sucht, im Anschluss loadnextprocess(), der dann ggf. den nächsten Prozess und den dazugehörigen RUNNABLE-Thread findet. Hier fehlt auch Text! 11

12 Abbildung 4: Scheduler Abbildung 5: loadnextprocess(processtostart) 12

13 2.4 Dispatcher Im Kontext des FHDW-OS ist der Dispatcher dafür verantwortlich, Task-Wechsel vorzunehmen. Da es sich beim Dispatcher nur um statische Methoden handelt wurde an dieser Stelle auf ein Singleton verzichtet. Der Dispatcher wird vom Scheduler aufgerufen und leitet den Task-Wechsel ein. Zusätzlich kann er von einem Thread benutzt werden, um seine Ausführung zu unterbrechen und an den Scheduler abzugeben. Die Klasse Dispatcher bietet dem Scheduler die Funktionen loadidlethread, loadtss und dispatch an. Die Funktion dispatch ist für den Prozesswechsel zuständig. Wie die einzelnen Aufrufe vom Scheduler zum Dispatcher aufgebaut sind, ist dem vorangegangenen Abschnitt zu entnehmen. Listing 2: Laden der TSS 1 void Dispatcher : : loadtss ( Selector tssselector ) { 2 Selector selector = tssselector ; / / needed f o r jump 3 FarPointer farptr ; 4 farptr. offset = 0; 5 farptr. selector = selector. combined ( ) ; 6 asm volatile ( "jmp fword ptr %0" : : "m" ( farptr ) ) ; 7 } Schulz: Implementierung!! 3 Benutzung von Prozessen und Threads 3.1 Threaderstellung Um Prozesse, Threads und das zuvor vorgestellte Konzept zu nutzen, benötigt man eine Unterklasse von der abstrakten Klasse Thread in Thread.h. In dieser Unterklasse muss man die run-methode implementieren, in der dann Aktionen ausgeführt werden können. Um den Thread zu starten, muss man die Methode StartRunning ausführen. Dies ändert den Zustand des Threads in RUNNABLE, sodass dieser vom Scheduler als lauffähig erkannt und irgendwann ausgeführt wird. 13

14 3.2 Zusammenspiel mit dem Scheduler Da das FHDW-OS auf kooperativem Multitasking basiert, müssen laufende Threads dem Scheduler melden, wenn sie ihre Ausführung unterbrechen wollen. Um diesen Vorgang durchzuführen, ruft der ausgeführte Prozess einfach die Methode backtoscheduler vom Dispatcher auf. Diese statische Methode übergibt daraufhin an den Scheduler, der den nächsten Thread auswählt. Ist die Run-Methode eines Threads abgeschlossen, wird der Zustand des Threads in TERMINATED geändert. Der Scheduler erkennt dies und löscht in diesem Fall den Thread. 4 Fazit und Ausblick Es wurde ein kooperatives Multitasking implementiert. Als Scheduling-Algorithmus wurde das Round-Robin Verfahren verwendet. Scheduler sowie Dispatcher dienen dabei als zentrale Klassen, um Task-Wechsel durchzuführen. Durch die Platzierung des Idle-Thread im Kernel-Space, ist für einen Wechsel zum Idle-Thread kein Kontextwechsel nötig, da der Kernel-Space immer gemappt ist. Es wurden Vorkehrungen getroffen, um zu einem späteren Zeitpunkt präemptives Multitasking umzusetzen. Dazu ist es notwendig, dass der Scheduler an bestimmten Punkten nicht unterbrochen werden kann. Dafür bietet es sich an, kritische Bereiche zu definieren, in denen keine Unterbrechungen gestattet sind. Dazu wurden bereits Methoden zum Betreten sowie Verlassen des kritischen Bereichs angelegt. In der Zukunft muss über eine Implementierung dieser Methoden nachgedacht werden und über Möglichkeiten Unterbrechungen zu verhindern. Denkbar wäre eine Maskierung der Interrupts. Darüber hinaus wird eine Instanz benötigt, die zeitgesteuert Prozesse bzw. Threads unterbricht und den Scheduler aufruft, der den Task-Wechsel durchführt. Für die in diesem Kapitel vorgestellten Konzepte wurden Informationen aus folgenden Quellen verwendet:

15 Abbildung 6: Klassendiagramm Tasks I 15

20 Task-Management Was bleibt noch zu tun? Wird ein Poolelement in die Queue aufgenommen, dann muß der Poolelemente-Zähler inkrementiert werden. Dies erledigt die Anweisung pool_kopf_adr -> anzahl_der.pool_elemente

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

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

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

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

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

Mehr

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

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

Mehr

Speicherverwaltung III

Speicherverwaltung III Speicherverwaltung III Andreas Görzen Marius Schultchen Benjamin Kotke Sascha Sternheim 26. Februar 2013 Inhaltsverzeichnis 1 Datenstruktur zur physikalischen Speicherverwaltung 2 1.1 Übersicht möglicher

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

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

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

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

5.6 Segmentierter virtueller Speicher

5.6 Segmentierter virtueller Speicher 5.6 Segmentierter virtueller Speicher Zur Erinnerung: Virtueller Speicher ermöglicht effiziente und komfortable Nutzung des realen Speichers; Sharing ist problematisch. Segmentierung erleichtert Sharing,

Mehr

Realisierung: virtueller Prozessor: der reale Prozessor wird periodisch dem Programm zugewiesen Im Prozessor: durch Task-Status Segment (TSS)

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

Mehr

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung

Mehr

Prof. Dr. Sharam Gharaei. Inhaltsverzeichnis. 1 Einleitung 1. 2 Grundlage der Realisierung 2. 3 Die Realisierung 3. Literaturverzeichnis 7

Prof. Dr. Sharam Gharaei. Inhaltsverzeichnis. 1 Einleitung 1. 2 Grundlage der Realisierung 2. 3 Die Realisierung 3. Literaturverzeichnis 7 Prof. Dr. Sharam Gharaei Version 1.2.0, 07.04.2017 Inhaltsverzeichnis 1 Einleitung 1 1.1 Code-bezogene Aspekte 2 1.2 Speicherungsbezogene Aspekte 2 2 Grundlage der Realisierung 2 3 Die Realisierung 3 3.1

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

Mehr

Operating System Kernels

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

Mehr

Teil 3: Konzepte von Betriebssystemen

Teil 3: Konzepte von Betriebssystemen Teil 3: Konzepte von Betriebssystemen Inhalt: Einführung Prozesse Speicherverwaltung Virtueller Speicher 1 Definition eines Betriebssystems Was ist ein Betriebssystem? einfache Definition: Als Betriebssystem

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

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme Basisinformationstechnologie I Wintersemester 2011/12 23. November 2011 Betriebssysteme Seminarverlauf 12. Oktober: Organisatorisches / Grundlagen I 19. Oktober: Grundlagen II 26. Oktober: Grundlagen III

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

Windows 2000 Scheduler

Windows 2000 Scheduler Windows 2000 Scheduler Konzepte von Betriebssystem Komponenten Friedrich Alexander Universität Erlangen Nürnberg Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Sommersemester 2005 Viktor

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

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

Dämon-Prozesse ( deamon )

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

Mehr

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

Mehr

Betriebssysteme Kapitel E : Prozesse

Betriebssysteme Kapitel E : Prozesse Betriebssysteme Kapitel E : Prozesse 1 Inhalt Prozesse Zustand eines Prozesses» Kontext» Kontextswitch Prozessbeschreibungsblock PCB Zustandsübergänge» Zustandsdiagramm 2 Hinweis Ein Programm(code) kann

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

Kompatibilitätsmodi: Real Mode: - Segmentregister*16+Offset => Adresse - Keine Segmentdeskriptoren, kein Paging, - ~ 1 MB Adressraum.

Kompatibilitätsmodi: Real Mode: - Segmentregister*16+Offset => Adresse - Keine Segmentdeskriptoren, kein Paging, - ~ 1 MB Adressraum. 15.1.1 Kompatibilitätsmodi: Real Mode: - Segmentregister*16+Offset => Adresse - Keine Segmentdeskriptoren, kein Paging, - ~ 1 MB Adressraum. - 15. Hauptspeicher-Adressierung 15.1 Adressierungsmodi Virtual

Mehr

RTOS Einführung. Version: Datum: Autor: Werner Dichler

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...

Mehr

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

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling Aufgabe 1: Sie haben in der Vorlesung einen hypothetischen Prozessor kennen

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

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

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

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Prozesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads

Prozesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads Threads Prozesse, Parallelität, Nebenläufigkeit, Threads, Erzeugung, Ausführung, Kommunikation, Interferenz, Kritischer Bereich, Deadlock, Synchronisation. Prozesse Prozesse sind Programme mehrere Prozesse

Mehr

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

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

Mehr

11. Die PC-Schnittstelle

11. Die PC-Schnittstelle PC-Schnittstelle Funktion -1. Die PC-Schnittstelle.1. Funktion Die folgenden Angaben gelten ohne Einschränkung für den PC, PC-XT, PC-AT, AT-386, AT-486 und kompatible Rechner. Sie sind nur für jene interessant,

Mehr

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads Prozesse und Prozessmanagement des BS 1 Unterschied Prozess, Threads 1.1 Prozess Bei jedem Programm muss gespeichert werden, welche Betriebsmittel (Speicherplatz, CPU- Zeit, CPU-Inhalt,...) es benötigt.

Mehr

Prozesse: Prozesskontrollblock, -zustände, -umschaltung

Prozesse: Prozesskontrollblock, -zustände, -umschaltung Prozesse: Prozesskontrollblock, -zustände, -umschaltung Vorweg sollte geklärt werden, was Prozess bedeutet, wenn man im Kontext über Betriebssystemen davon redet Ein Prozess ist ein Programm während der

Mehr

Deckblatt. S7-Kommunikation mit S PUT und GET. FAQ November Service & Support. Answers for industry.

Deckblatt. S7-Kommunikation mit S PUT und GET. FAQ November Service & Support. Answers for industry. Deckblatt PUT und GET FAQ November 2012 Service & Support Answers for industry. Fragestellung Dieser Beitrag stammt aus dem Siemens Industry Online Support. Es gelten die dort genannten Nutzungsbedingungen

Mehr

Zusammenfassung Modul 223

Zusammenfassung Modul 223 Zusammenfassung Modul 223 von Christian Roth Powered by Schuschu Bison Schweiz AG, Surentalstrasse 10, CH-6210 Sursee, www.bison-group.com Inhaltsverzeichnis 1 Entwurfmuster... 3 1.1 Singleton... 3 1.1.1

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

Trainingsmanagement Gutschein Management. Beschreibung

Trainingsmanagement Gutschein Management. Beschreibung Trainingsmanagement Beschreibung www.dastm.de info@dastm.de 1. Einführung... 2 2. Gutschein Funktionen... 3 2.1. Gutschein Menü... 3 2.2. Gutscheine anlegen... 4 Gutschein Kassenwirksam erfassen... 6 Gutschein

Mehr

4. Übung - Rechnerarchitektur/Betriebssysteme

4. Übung - Rechnerarchitektur/Betriebssysteme 4. Übung - Rechnerarchitektur/Betriebssysteme 1. Aufgabe: Caching Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen a) Was ist ein Cache? Wann kommt Caching zum Einsatz? b) Welchen Vorteil

Mehr

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010 Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010 Klausurort: Vorname Name: Adresse: Matrikelnummer:

Mehr

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97)

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97) DATEIVERWALTUNG STANZL Martin 4. HB/a Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97) INHALTSVERZEICHNIS 1. Die Aufteilung des Plattenspeichers... 2 2. Der Aufbau von Dateien... 2 3.

Mehr

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

Mehr

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch? Aufgabe 1: (1) Bei den Multiple-Choice-Fragen ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene Punktzahl. Wollen Sie eine Multiple-Choice-Antwort

Mehr

Aufgabe 2 - Erweiterung um PIC und Interrupts

Aufgabe 2 - Erweiterung um PIC und Interrupts Aufgabe 2 - Erweiterung um PIC und Interrupts Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Erweiterung

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

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

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

2Binden 3. und Bibliotheken

2Binden 3. und Bibliotheken 3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler

Mehr

Betriebssysteme (BS) IA-32. Überblick. das Programmiermodell der Intel Architektur. Historie der Intel x86 Prozessoren. 8086: Programmiermodell

Betriebssysteme (BS) IA-32. Überblick. das Programmiermodell der Intel Architektur. Historie der Intel x86 Prozessoren. 8086: Programmiermodell Betriebssysteme (BS) alias Betriebssystembau (BSB) IA-32 das Programmiermodell der Intel Architektur Überblick Historie Basisprogrammiermodell Speicherverwaltung und Adressierung Schutz "Tasks" Zusammenfassung

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

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Intel x86 Bootstrapping

Intel x86 Bootstrapping Intel x86 Bootstrapping Meine CPU, mein Code! Andreas Galauner SigInt 2010 Democode Es gibt Democode: http://github.com/g33katwork/ SigInt10OSWorkshop git clone git://github.com/g33katwork/ SigInt10OSWorkshop.git

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

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis Einführung Einführung in in Betriebssysteme Betriebssysteme und und Theorie und Praxis Theorie und Praxis Oktober 2006 Oktober 2006 Prof. Dr. G. Hellberg Prof. Dr. G. Hellberg Email: hellberg@drhellberg.de

Mehr

Systemprogrammierung

Systemprogrammierung Systemprogrammierung 3Vom C-Programm zum laufenden Prozess 6. November 2008 Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2008 SS 2006 SOS 1 (03-Pro.fm 2008-11-06 08.52) 3 Vom C-Programm

Mehr

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

Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten

Mehr

Der Scheduler von Windows Konzepte und Strategien

Der Scheduler von Windows Konzepte und Strategien Gliederung Der Scheduler von Windows Konzepte und Strategien Daniel Lohmann 1 Grundbegriffe 2 Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell Dynamische Prioritätenanpassungen

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 5

Praktikum aus Softwareentwicklung 2, Stunde 5 Praktikum aus Softwareentwicklung 2, Stunde 5 Lehrziele/Inhalt 1. Threads Threads Threads sind parallele, oder auf Rechnern mit nur einer CPU quasi-parallele, Programmabläufe in Java. Sie können beispielsweise

Mehr

Dynamisches Binden in Multics

Dynamisches Binden in Multics Dynamisches Binden in Multics AKSS Seminarvortrag Daniel Götz Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme 14.12.15 Motivation Welche

Mehr

Round-Robin Scheduling (RR)

Round-Robin Scheduling (RR) RR - Scheduling Reigen-Modell: einfachster, ältester, fairster, am weitesten verbreiteter Algorithmus Entworfen für interaktive Systeme (preemptives Scheduling) Idee: Den Prozessen in der Bereitschaftsschlange

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

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

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

Bibliotheks-basierte Virtualisierung

Bibliotheks-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16)

Mehr

3.2 Prozessumschaltung

3.2 Prozessumschaltung 3.2 Prozessumschaltung (dispatching) deaktiviert einen Prozess und aktiviert einen anderen. Wann? aktiver Prozess wird vom Prozessor verdrängt zugunsten eines bereiten Prozesses aktiver Prozess blockiert,

Mehr

Prozesse und Scheduling unter Linux (Kernel 2.4.XX)

Prozesse und Scheduling unter Linux (Kernel 2.4.XX) Prozesse und Scheduling unter Linux (Kernel 2.4.XX) Vorlesung: Dozent: Betriebssysteme Odej Kao Vortragende: Andrè Neubert Alexander Geburzi Überblick 1. Prozesse unter Linux ProcessControlBlock Prozessliste

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

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

Der Scheduler von Windows 2000 Konzepte und Strategien

Der Scheduler von Windows 2000 Konzepte und Strategien Der Scheduler von Windows 2000 Konzepte und Strategien Daniel Lohmann lohmann@informatik.uni-erlangen.de Gliederung 1. Grundbegriffe 2. Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell

Mehr

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

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

Betriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme

Betriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme Grundzüge der Informatik IV: Betriebssysteme Thomas Fahringer Institut für Informatik Universität Innsbruck V Thomas.Fahringer@uibk.ac.at 1 Kapitel I Betriebssysteme: Aufgaben und Überblick V 2 Was ist

Mehr

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Multiprozessoren Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Multiprozessoren 1/29 2011-06-16 Multiprozessoren Leistungsfähigkeit

Mehr

Nebenläufige Programmierung in Java: Threads

Nebenläufige Programmierung in Java: Threads Nebenläufige Programmierung in Java: Threads Wahlpflicht: Fortgeschrittene Programmierung in Java Jan Henke HAW Hamburg 10. Juni 2011 J. Henke (HAW) Threads 10. Juni 2011 1 / 18 Gliederung 1 Grundlagen

Mehr

Betriebssysteme KU - Einführungstutorium

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

Mehr

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus 2. November 2012 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) VL 6 IA-32: Das Programmiermodell der Intel-Architektur Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen Nürnberg

Mehr

Überlegungen beim Entwurf eines Betriebssystems

Ü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

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

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 3 Betriebssystem Überwacher

Mehr

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Kapitel VI. Speicherverwaltung. Speicherverwaltung Kapitel VI Speicherverwaltung 1 Speicherverwaltung Computer exekutiert Programme (mit Daten) im Hauptspeicher. Hauptspeicher: Großes Array von Wörtern (1 oder mehrere Bytes) Jedes Wort hat eine eigene

Mehr

3 Schnittstelle zum Betriebssystem 3.5 Multitasking. Schichten und Sichten eines Rechnersystems

3 Schnittstelle zum Betriebssystem 3.5 Multitasking. Schichten und Sichten eines Rechnersystems Schichten und Sichten eines Rechnersystems (Lst. ) 1 Das Betriebssystem als ein Ressourcen-Manager (Lst. ) 2 Betriebssystem-Arten Interaktiv Batchbetrieb (Stapelverarbeitung) Einzelprogrammbetrieb (Uni-programming)

Mehr

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. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161? Was machen wir heute? Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1 /home/esser/daten/dozent/hs-muenchen-2008/folien/bs-ss2008-esser-14.odp Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]:

Mehr

6. Juni VO Prüfung Betriebssysteme. Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

6. Juni VO Prüfung Betriebssysteme. Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 8. Prüfung Betriebssysteme. Juni KNr. MNr. Zuname, Vorname Ges.)().)().)().)() Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! Synchronisation mit Semaphoren () Eine Parkgarage

Mehr