Zusammenfassung zur Vorlesung im Wintersemester 2009/2010

Größe: px
Ab Seite anzeigen:

Download "Zusammenfassung zur Vorlesung im Wintersemester 2009/2010"

Transkript

1 BETRIEBSSYSTEME Zusammenfassung zur Vorlesung im Wintersemester 2009/2010 INHALT Inhalt Das Betriebssystem Programme und Unterprogramme Arten von Unterprogrammen Offenes Unterprogramm Geschlossenes Unterprogramm (Prozedur) Module Prozesse Konzept Grundlagen Realisierung von Multiprogramming Zustandsmodelle Prozessbeschreibung Kontrollstrukturen des Betriebssystems Prozesskontrollstrukturen Prozesskontrolle Prozesswechsel (Kontext-Switch) Unterbrechungen Moduswechsel Konflikte bei Unterbrechungen Ausführung des Betriebssystems Threads Multithreading Threadzustände Thread-Typen User-level-Threads (ULT) Kernel-level-Threads (KLT)... 12

2 5 Scheduling Prinzip Varianten des Scheduling Anforderungen an einen Scheduling-Algorithmus Scheduling-Algorithmen Nicht-preemptive Schedulingalgorithmen Preemptive Schedulingalgorithmen Priority Scheduling (PS) Multilevel Feedback Queueing Arten des Scheduling Deadlocks bei Prozessen Prozessfortschrittsdiagramme Deadlock Prevention Bedingungen für einen Deadlock Petri-Netze zur Prozessmodellierung Deadlock Detection (Deadlockerkennung) Prozesskoordination Nebenläufigkeit Kritische Bereiche Wechselseitiger Ausschluss Semaphore Monitore Message Passing Blockierung Adressierung Speicher Speicherverwaltung Speicherpartitionierung Feste Partitionierung Dynamische Partitionierung Buddy Systeme Virtueller Speicher Prinzip der Speicherverwaltung Datentransport zwischen Hintergrund- und Arbeitsspeicher Abbildung virtueller auf reale Adressen Seite 2

3 8.4 Paging Paging-Strategien Seitenaustausch-Algorithmen Minimierung von Seitenfehlern Working Set Strategie Anmerkung: Der folgende Text versteht sich mit Blick auf die Klausur als Zusammenfassung zur gleichnamigen Vorlesung und fußt dazu natürlich auf die von Prof. Dr. Linnhoff-Popien erstellten Inhalte. Quelle: Der Autor übernimmt keinerlei Gewährleistung dafür, dass diese Zusammenfassung inhaltlich vollständig oder korrekt ist. Die Benutzung erfolgt also zu eigenem Vergnügen und auf eigene Gefahr. ;) Daniel Buschek Seite 3

4 1 DAS BETRIEBSSYSTEM In der logischen Hierarchie der Rechnerfunktionen ist das Betriebssystem in die Schicht der Anwendungsprogramme einzuordnen. Aufgaben des Betriebssystems: - Komplexitätsreduktion (verbergen interner Systemdetails vor dem Nutzer): BS als erweiterte Maschine. - Ressourcenmanager für die Systemressourcen. - Kontrollinstanz für Zugriffe auf Hardware und Daten. 2 PROGRAMME UND UNTERPROGRAMME 2.1 Arten von Unterprogrammen Es gibt zwei verschiedene Typen, die sich hinsichtlich ihrer Umsetzung im Code unterscheiden Offenes Unterprogramm Der Code wird an allen erforderlichen Stellen direkt ins Hauptprogramm kopiert. Vorteile: keine Sprünge erforderlich, somit weniger Verwaltungsaufwand Nachteile: Änderungen am Unterprogramm aufwendiger, redundanter Code Geschlossenes Unterprogramm (Prozedur) Das Unterprogramm wird über seine Anfangsadresse bei Bedarf angesprungen. Vorteile: keine Redundanz, Rekursion möglich, Änderungen einfacher Nachteile: Erfordert Sprünge Geschlossene Unterprogramme werden zudem unterschieden in Announcement (void) und Invocation (mit Rückgabewert). 2.2 Module Ein Modul ist allgemein eine Komponente, die anderen Komponenten einen Dienst zur Verfügung stellt: z. B. Unterprogramme, das Betriebssystem bzw. dessen Teile, Benutzerprogramme und Prozesse. Seite 4

5 3 PROZESSE 3.1 Konzept Definition: Ein Prozess ist ein in Ausführung befindliches Maschinenprogramm. Er beinhaltet insbesondere den aktuellen Wert des Programmzählers sowie aktuelle Werte der Register und Variablen Grundlagen Es folgen einige Begriffsklärungen: Prozess-Kontext: Informationen zum Ausführungszustand, um den Prozess auf demselben Rechner fortsetzen zu können: CPU-Register-Belegungen und alle Prozess-Status-Informationen. Prozess-Image: Informationen, um einen unterbrochenen Prozess auf einem anderen Computer fortzusetzen: alle physischen Bestandteile; insbesondere die Befehlsfolge (Trace), der Kontext, lokale und globale Variablen sowie der Ausführungsstack. Uniprogramming: Prozesse werden sequenziell nacheinander und ohne Unterbrechung ausgeführt. Multiprogramming: Prozessor wechselt zwischen mehreren Prozessen hin- und her (quasiparallel). Multiprocessing: Es stehen mehrere Prozessoren zur Verfügung, wodurch echte Parallelität möglich wird Realisierung von Multiprogramming Es werden zwei Sichten unterschieden: Sicht des Prozessors: CPU führt Befehle aus in der durch den Programmzähler vorgegebenen Reihenfolge. Ob diese Befehle Teil derselben Anwendung sind oder nicht spielt für die CPU keine Rolle. Sicht eines individuellen Programms: Ausführung des Programms besteht aus einer Folge von Maschinenbefehlen (Trace). Für das Programm zählt nur, dass diese Reihenfolge nicht verändert wird. Unterbrechungen sind egal. Für den Wechsel wird ein Dispatcher benötigt; d. h. ein spezieller Prozess, der einen Benutzer- Prozess in Bearbeitung unterbrechen und der CPU dafür einen anderen Prozess zuweisen kann Zustandsmodelle Problem bei Modellierung mit nur 2 Zuständen: Wenn ein Job auf eine E/A-Operation warten muss, werden alle anderen Jobs verzögert. Daher wurde not running geteilt in ready und blocked. Seite 5

6 nur 5 Zustände: Wenn alle Jobs im Hauptspeicher blockiert sein sollten, wäre kein Speicherplatz für weitere Prozesse mehr frei, die CPU hätte dann nichts zu tun. Daher wurde das Swapping eingeführt. Auslagerungen von Prozessen (Swapping): Das Betriebssystem lagert einen blockierten Prozess auf der Festplatte aus, falls sich keiner der Prozesse im Hauptspeicher im Zustand ready befindet. So wird wieder Platz für einen neuen Prozess geschaffen. Der Speicherplatz, der zum Swapping zur Verfügung steht, wird als Virtueller Speicher bezeichnet. Man beachte: Der virtuelle Speicher enthält immer alle Daten aus dem Hauptspeicher (und evtl. eben noch mehr). Die Gesamt-Prozess-Kapazität des Systems ist deshalb gleich der Größe des virtuellen Speichers (und nicht die Summe aus virtuellem Speicher und Hauptspeicher). Aus diesem Grund muss der virtuelle Speicher auch immer größer sein als der Hauptspeicher. Wenn man beim Auslagern nun noch berücksichtigt, dass es wohl günstiger ist, einen inzwischen wieder bereiten Prozess dafür zurückzuholen, statt einen ganz neuen, so landet man schließlich beim 7-Zustand-Prozessmodell. new 7-Zustand-Prozessmodell Zugang Suspendieren Ereignis tritt ein ready, suspend Aktivieren Suspendieren Ereignis tritt ein ready Dispatchen Timeout running Ausgang blocked, suspend Aktivieren Suspendieren blocked exit Ursachen für die Suspendierung eines Prozesses: - Ein blockierter Prozess wird ausgelagert (Swapping): blocked blocked, suspended - Wenn ein Prozess über einen langen Zeitraum periodisch, aber nur sehr selten ausgeführt wird, kann es nützlich sein, ihn direkt nach einem Ablauf auszulagern, damit er während seiner Wartezeit nicht Platz im Hauptspeicher verschwendet: running ready, suspended - Wird diese Entscheidung nicht direkt nach Ausführung getroffen, so kann es auch den Übergang ready ready, suspended geben. Seite 6

7 3.2 Prozessbeschreibung Das Betriebssystem benötigt gewisse Informationen, um Prozesse zu kontrollieren und ihre Ressourcen zu verwalten Kontrollstrukturen des Betriebssystems Zunächst zwei Begriffe: Seitenrahmen (Frames): Sammlung von Speicherzellen zu einer höheren Einheit. Alle solchen Frames sind gleich groß. Seiten (Pages): Instruktionsfolge (Trace) eines Prozesses wird in Seiten aufgeteilt, deren Größe auf die Frames passt. Jedes Frame kann somit genau eine Seite aufnehmen. Pages und Frames werden insbesondere auch in Kapitel 8 noch näher behandelt. Das Betriebssystem nutzt zur Verwaltung die folgenden vier Tabellen-Typen: Speichertabellen (Seitentabellen): Dienen dem Überblick über virtuellen Speicher und Hauptspeicher und beinhalten: - die Zuordnung der Seiten eines Prozesses zu den Frames im Speicher - die Zuteilung des virtuellen Speichers zu den Prozessen - Schutzattribute zur Zugriffskontrolle auf gemeinsam genutzte Regionen E/A-Tabellen: Enthalten die Verfügbarkeit bzw. Zuordnung der E/A-Geräte. Datei-Tabellen: Enthalten Informationen über Dateien, deren Ort im Hintergrundspeicher, Status und weitere Attribute. Prozesstabellen: Enthalten Informationen zur Verwaltung aller Prozesse (z.b. welcher Prozess wird gerade ausgeführt? Welchem Prozess wird als nächstes die CPU zugeteilt? An welcher Stelle wurde ein suspendierter Prozess unterbrochen?) Prozesskontrollstrukturen Zur Prozessverwaltung muss das Betriebssystem den Prozess im Speicher finden (Prozesslokalisierung) und deren verwaltungsrelevante Werte lesen können (gespeichert im Prozesskontrollblock). Es gibt zwei Varianten der Prozesslokalisierung: 1. Dynamische Partitionierung (Segmentierung): - Der Prozess liegt im Speicher als ein Block in aufeinander folgenden Speicherzellen. - Zur Verwaltung muss ein Teil der Daten in den Hauptspeicher geladen werden. - Zur Ausführung wird meist der gesamte Prozess in den Hauptspeicher geladen. Seite 7

8 2. Feste Partitionierung (Paging): - Speicher wird in feste Blöcke geteilt (s. o. Frames/Pages), in denen dann das Prozess- Image abgelegt wird. - Der gesamte Prozess liegt im Hintergrundspeicher. - Benötigte Teile werden in freie Frames kopiert. - Wurde der Teil im Hauptspeicher verändert, ist die Kopie im Hintergrundspeicher schmutzig, d. h. nicht aktuell, bis der entsprechende Teil wieder zurückkopiert wurde. Der Prozesskontrollblock (PCB) stellt die wichtigste Datenstruktur für das Betriebssystem zur Prozessverwaltung dar und enthält alle benötigten Informationen zu einem Prozess in drei Kategorien: 1. Prozessidentifikation: - Prozess-ID - ID des Elternprozesses (PID) - ID des Eigentümers/Nutzers des Prozesses 2. Prozesszustandsinformationen: - Inhalt der Prozessregister (die Registerbelegungen müssen bei Unterbrechung dann gespeichert werden) - Die Register mit Statusinformationen werden als Programmstatuswort (PSW) zusammengefasst gespeichert. Dieses kann z. B. Auskunft darüber geben, ob ein Überlauf stattgefunden hat, etc. 3. Prozesskontrollinformationen: - Scheduling relevante Daten, wie Prozesszustand (z. B. ready ), Priorität oder Ereignisse, auf die der Prozess wartet. - Signale oder Nachrichten der Interprozesskommunikation - Informationen über Privilegien des Prozesses Jeder Prozess hat zudem noch einen Eintrag in der oben erwähnten Prozesstabelle, der als Prozessdeskriptor bezeichnet wird. Dieser enthält neben dem Prozesskontrollblock zusätzliche Informationen (s. Skript S. 50). 3.3 Prozesskontrolle Bei der Betrachtung der Kontrolle und Steuerung von Prozessen werden zwei Modi unterschieden: Systemmodus (Kernel Mode): Hier ist der Prozessor dem BS bzw. einer Funktion davon zugeordnet. Dieser Modus ist privilegiert, er darf also z. B. Hardware (etwa einen Drucker) direkt ansteuern. Nutzermodus (User Mode): Hier ist der Prozessor einem Anwendungsprogramm zugeordnet. Nutzerprozesse können auf angeschlossene Geräte nur über die Verwendung einer entsprechenden BS-Funktion zugreifen. Seite 8

9 3.3.1 Prozesswechsel (Kontext-Switch) Für die Unterbrechung des laufenden und das Zuordnen eines neuen Prozesses an die CPU gibt es folgende Ursachen: - Externe Ereignisse, z.b. ein I/O interrupt - Traps, die mit dem ausgeführten Befehl verbunden sind (z. B. zur Fehlerbehandlung) - Supervisor-Call ruft eine BS-Funktion auf, weshalb der aktuelle Befehl unterbrochen werden muss Zur Durchführung eines Kontext-Switch sind folgende Schritte nötig: - Aktualisierung und Sicherung des PCB - Einfügen des PCB des alten Prozesses in die Scheduler-Warteschlange - Auswahl eines neuen Prozesses für die CPU - Wiederherstellung und Aktualisierung des PCB vom neuen Prozess Unterbrechungen Eine Unterbrechung ist das Maschinenkonzept zur Behandlung unvorhersehbarer Abläufe. Es werden folgende Typen unterschieden: Externe Unterbrechungen (Interrupts): Werden ausgelöst durch Ereignisse außerhalb des zu unterbrechenden Prozesses (z. B. Signale von E/A-Geräten). Interne Unterbrechungen (Exceptions): Werden durch den ausgeführten Prozess selbst erzeugt, z. B. bei einer arithmetischen Ausnahme. Zur Behandlung von solchen Unterbrechungen existieren sog. Unterbrechungsroutinen (Interrupt Handlers). Hierbei handelt es sich um BS-Funktonen. Sie entscheiden, ob der alte Prozess fortgesetzt werden kann oder zu einem neuen gewechselt werden muss. Die Unterbrechungsroutinen laufen im privilegierten Systemmodus, benötigen jedoch keinen kompletten Prozesskontext, sodass der Kontext des alten Befehls aufrechterhalten wird, zumindest solange noch Hoffnung besteht, den Prozess fortsetzen zu können. Daher wird zunächst nur der Modus gewechselt Moduswechsel Folgende Schritte sind nötig: - Sicherung der erforderlichen Teile des Programmkontextes, also insb. des PSW, aber nicht der Register. - Sprung zur auszuführenden Routine (Programmzähler auf deren Anfangsadresse setzen). - Durchführung des eigentlichen Moduswechsels durch Freigabe aller Privilegien. Seite 9

10 3.3.4 Konflikte bei Unterbrechungen Ursachen für Konflikte bei der Unterbrechungsbehandlung: - Unterbrechung der Unterbrechungsroutine - Gleichzeitiges Eintreffen mehrerer Unterbrechungsanfragen Lösung von Konflikten durch Einführen von Prioritäten: - Benutzerprozesse haben die niedrigste Priorität 0. - Interne Unterbrechungen erhalten die Priorität ihres Prozesses. - Externen Unterbrechungen sind feste Prioritäten zugewiesen. Die Unterbrechung einer Unterbrechungsbehandlung ist dann möglich, wenn die neue Unterbrechung eine höhere Priorität hat. Das Interrupt Priority Level (IPL) eines Prozesses ist Teil des PSW Ausführung des Betriebssystems Das Betriebssystem ist selbst auch nur ein Programm, das von der CPU ausgeführt wird und selbst oft die Kontrolle abgeben muss, sodass es vom Prozessor abhängt, die Kontrolle zurückzugeben. Von diesem Ausgangspunkt gibt es nun mehrere Konzepte zur Ausführung des Betriebssystems: - Konzept des separaten Kerns (Non-Process Kernel): Ein älterer Ansatz, bei dem der Kern des BS außerhalb aller Prozesse ausgeführt wird. Das Betriebssystem besitzt eigenen Speicher und Systemkeller zur Kontrolle von Prozedur Aufrufen und Rücksprüngen. - Konzept der Integration in die Nutzerprozesse (Execution within User Process): Bei diesem Ansatz für kleinere Computer wird die gesamte BS-Software im Kontext jedes einzelnen Nutzerprozesses ausgeführt. Dabei wird vom Betriebssystem als eine Sammlung von Routinen ausgegangen, die nur in der Umgebung des jeweiligen Prozesses wirken soll. Außerhalb liegen ausschließlich die Prozesswechsel-Routinen. - Konzept des prozessbasierten Betriebssystems (Process-based Operating System): Hierbei wird das Betriebssystem als Systemprozess-Sammlung umgesetzt, d. h. jede BS-Funktion ist ein separater Prozess. Nur der Dispatcher-Code wird auch hier außerhalb der Prozesse ausgeführt. Seite 10

11 4 THREADS Unterscheidung zu Prozessen: - Ein Prozess ist Eigentümer und Verwalter von Ressourcen. - Ein Thread ist eine Einheit, die eine bestimmte Aufgabe erledigt. Daraus ergibt sich insbesondere, dass ein Prozess auch mehrere Threads enthalten kann. Dies bezeichnet man als 4.1 Multithreading Innerhalb eines Prozesses werden mehrere Threads ausgeführt, die dessen virtuellen Adressraum (gemeinschaftlich) benutzen. Jeder Thread im Prozess erhält folgende Bestandteile zugeordnet: - Threadzustand (z.b. ready, running ) - Thread-Kontext und Programmzähler bei unterbrochenem Thread - Zwei Stacks: user stack und kernel stack - Speicherplatz für lokale Variablen - Zugriff auf Speicher/Ressourcen des Prozesses Vorteile des Thread-Konzepts finden sich in diversen Leistungssteigerungen: - So ist die Generierung eines neuen Threads deutlich weniger aufwändig als das Erzeugen eines Prozesses. - Die Kommunikation zwischen Threads ist möglich ohne den BS-Kern. - Bei Blockierungen in einem Thread, können andere Threads weiter abgearbeitet werden. - Kontextwechsel zwischen Threads sind günstiger als solche zwischen Prozessen. Aus dem Thread-Konzept ergeben sich auch noch folgende Besonderheiten: - Der gemeinschaftliche Adressraum der Threads in einem Prozess gefährdet evtl. die Sicherheit von Daten, da ja von allen Threads dieses Prozesses darauf zugegriffen werden kann. - Wird der Prozess ausgelagert, wandern gleichzeitig seine Threads mit; und terminiert er sogar, so beendet dies auch alle seine Threads. 4.2 Threadzustände Wie bei den Prozessen unterscheidet man auch bei Threads die Grundzustände ready, running und blocked. Da Threads aber nicht für sich ausgelagert werden können, benötigt man keine weiteren Zustände zur Suspendierung. Seite 11

12 4.3 Thread-Typen Es gibt zwei Arten von Threads: User-level-Threads (ULT) Hier ist das Threadmanagement der Anwendung überlassen; der BS-Kern ist unwissend über die Existenz der Threads. Durch die Nutzung von sog. Threadbibliotheken kann jede Anwendung multithreaded programmiert werden. Die Bibliothek stellt die entsprechenden Methoden zur Verfügung, z. B. zu Generierung und Scheduling. Vorteile von ULTs: - Threadwechsel/-generierung/-terminierung brauchen keine Privilegien des Systemmodus. - Das Scheduling der Threads kann anwendungsspezifisch realisiert werden. - Solche Threads können auch auf Betriebssystemen verwendet werden, die von sich aus das Konzept nicht unterstützen. Nachteile von ULTs: - Wird ein Thread blockiert, so wird gleich der gesamte Prozess lahm gelegt. - ULTs können keine Vorteile aus Multiprozessorsystemen ziehen, da das BS dem Prozess nur eine CPU zuordnet. Keine echte Parallelität. ULTs sind also recht einfach umsetzbar, bieten aber auch nur wenige Vorteile Kernel-level-Threads (KLT) Das Threadmanagement wird vom Betriebssystem übernommen. Auch hier kann jede Anwendung multithreaded programmiert werden. Spezielle Bibliotheken werden nicht benötigt. Vorteile von KLTs: - Schneller in der Erzeugung/Wechsel/Terminierung als Prozesse. - BS-Kern kann den einzelnen Threads eines Prozesses auch verschiedene CPUs zuweisen. - Wird ein Thread blockiert, so kann auch mit einem anderen Thread desselben Prozesses weitergemacht werden, da nicht gleich der ganze Prozess blockiert. Nachteile von KLTs: - Beim Wechsel eines Threads zu einem anderen desselben Prozesses ist ein Moduswechsel erforderlich. KLTs sind aufwendiger als ULTs, aber auch besser. Seite 12

13 5 SCHEDULING Als Scheduler wird der Teil des Betriebssystems bezeichnet, der entscheidet welcher Prozess wann ausgeführt werden soll. 5.1 Prinzip Scheduling wird benötigt, sobald sich ein Prozess im Zustand running befindet und weitere Prozesse im Zustand ready auf die CPU warten Varianten des Scheduling Es werden zwei Varianten unterschieden: - Nicht preemptives Scheduling: Aufträge werden ohne Unterbrechung ausgeführt. War v. a. bei früheren Systemen üblich (z. B. Lochkarten lesen). - Preemptives Scheduling: Prozesse können zu jedem beliebigen Zeitpunkt unterbrochen (suspendiert) werden. Wird von allen heutigen Systemen benutzt Anforderungen an einen Scheduling-Algorithmus Ein Scheduling-Algorithmus muss sich an folgenden Kriterien messen: - Fairness: Gerechte Verteilung der CPU-Zeit an die Prozesse; kein ewiges Warten. - Effizienz: Die CPU sollte immer möglichst gut ausgelastet sein. - Antwortzeit: Sollte für die arbeitenden Benutzer möglichst klein sein. - Verweilzeit: Die Wartezeit auf Ergebnisse sollte möglichst klein sein - Durchsatz: Möglichst viele Jobs pro Stunde. 5.2 Scheduling-Algorithmen Da sich die obigen Anforderungen offensichtlich zumindest teilweise widersprechen, legen unterschiedliche Algorithmen auch verschiedene Schwerpunkte. Man unterscheidet daher in nutzerorientierte Kriterien (mittlere Antwortzeit, max. Anzahl interagierender Nutzer) und systemorientierte Kriterien (Durchsatz, Auslastung). Das wichtigste Hilfsmittel beim Prozessmanagement ist die Zuweisung von Prioritäten. Dadurch entsteht aber auch die Gefahr des Verhungerns niedrigpriorer Prozesse. Eine mögliche Lösung ist die dynamische Änderung der Prioritäten mit der Abarbeitungszeit Nicht-preemptive Schedulingalgorithmen Es gibt folgende nicht-unterbrechende Algorithmen: Seite 13

14 First Come First Served (FCFS): Stellt die einfachste Lösung dar es handelt sich hier um eine einfache Warteschlange. Der jeweils älteste wartende Prozess kommt an die Reihe. Vorteil: Einfach zu implementieren und fair. Shortes Process Next (SPN) / Shortest Job First (SJF): Hier wird immer der Prozess gewählt, der die kürzeste Abarbeitungszeit hat. Dieses Prinzip würde für nicht-preemptives Scheduling zwar die optimale Lösung liefern (Beweis s. Skript S. 80), hat aber das Problem, dass die Abarbeitungszeit eines Prozesses vorweg nicht bekannt ist Preemptive Schedulingalgorithmen Hierbei dürfen Jobs nun auch unterbrochen werden, um wichtigere Aufträge vorzuziehen. - Vorteil: quasi-parallele Abarbeitung - Problem: Inkonsistenzen und Deadlocks Shortest Remaining Processing Time (SRPT): Stellt die preemptive Version von SPN/SJF dar. Hier kann also zu jedem Zeitpunkt unterbrochen werden, um einen Prozess mit kürzerer Restbedienzeit einzuschieben. Trifft also ein neuer Prozess ein, wird die Restbedienzeit des laufenden Prozesses mit der Gesamtbedienzeit des neuen verglichen und bei Bedarf gewechselt. Auch hier gilt: Theoretisch zwar optimal, aber leider praktisch nicht umsetzbar. Round Robin (RR): Funktioniert nach dem Prinzip eines Abarbeitungskarussels und nutzt eine Uhr zur regelmäßigen Unterbrechung nach einem Zeitquantum Q. Das Verfahren vermeidet Verhungern und ist zudem praktisch implementierbar. Die Zeit für die Abarbeitung ist bei RR abhängig von der Länge des Jobs und der Anzahl der vorhandenen Jobs. Die Zeitscheibe Q sollte nicht zu groß gewählt werden, damit kein FCFS entsteht; allerdings darf sie auch nicht zu klein sein, damit der Dispatching-Aufwand im Verhältnis zur eigentlichen Prozessabarbeitung nicht aufgebläht wird. Vernachlässigt man die Dauer des Dispatchings, so ist die Abarbeitung eines Jobs unabhängig von der Länge von Q Priority Scheduling (PS) Zunächst erhält jeder Prozess eine Priorität, anschließend kann dann immer der Prozess mit der höchsten Priorität ausgewählt werden. Vorteile: - Wichtige (= kurze) Prozesse können bevorzugt werden, indem sie eine hohe Priorität bekommen. - Praktisch Implementierbar. Nachteile: - Unfair: Verhungern möglich. - Relativ schlechte mittlere AWZ. Seite 14

15 5.2.4 Multilevel Feedback Queueing Diese RR-Variante nutzt eine Kombination aus Prioritätsklassen und Zeitscheiben-Prinzip. Für jede Prioritäts-Stufe existiert eine Warteschlange. Ein neuer Prozess startet in der höchsten Stufe und wandert nach jeder Unterbrechung (nach Ablauf der Zeitscheibe) in die nächst-tiefere Stufe ab. Dadurch können kurze Prozesse schnell abgearbeitet werden, während lange Aufträge immer weiter absteigen. Im Vergleich zu RR besteht der Vorteil auch darin, dass sich neue Jobs nicht hinten anstellen müssen. 5.3 Arten des Scheduling Es werden unterschieden: Short Term Scheduling: Gemeint ist das Scheduling der Zustände running, ready und blocked. Dies wird durch die obigen Scheduling-Algorithmen umgesetzt. Medium Term Scheduling: Hier geht es auch um die Auslagerung der Prozesse in den virtuellen Speicher (Suspendieren). Long Term Scheduling: Bezieht die Zustände new und exit mit ein; also die Erzeugung und Terminierung von Prozessen. Seite 15

16 6 DEADLOCKS BEI PROZESSEN Definition: Ein System befindet sich im Zustand einer Verklemmung (deadlock), wenn sich mindestens zwei Prozesse in einem wechselseitigen Wartezustand befinden und auch durch die Freigabe aller Betriebsmittel möglicher anderer Prozesse dieser Zustand nicht aufgehoben werden kann. Deadlocks treten nur bei preemptiven Scheduling-Algorithmen auf. Für das Problem existiert keine allgemeingültige Lösung. 6.1 Prozessfortschrittsdiagramme Ein solches Diagramm stellt entlang jeder Achse den Ablauf eines Prozesses dar und ermöglicht somit die Visualisierung unmöglicher und kritischer Bereiche (Abbildung s. Skript S. 96). Insbesondere besteht die Gefahr eines Deadlocks dann, wenn im Diagramm durch die Überlappung von unmöglichen Bereichen eine obere rechte Ecke entsteht. 6.2 Deadlock Prevention Um das Auftreten von Deadlocks vermeiden zu können, sollten zunächst folgende vier Bedingungen für einen Deadlock betrachtet werden Bedingungen für einen Deadlock Mit Hilfe dieser Kriterien kann ein Deadlock erkannt werden: Mutual Exclusion (wechselseitiger Ausschluss): Es gibt mindestens zwei Ressourcen, die nur ein Prozess gleichzeitig benutzen kann und mindestens zwei Prozesse, die im Laufe ihrer Abarbeitung diese Ressourcen benötigen. Hold and Wait: Ein Prozess muss eine Ressource behalten, während er gleichzeitig auf eine weitere wartet ( Abarbeitung kann nicht rückgängig gemacht werden ). No preemption (keine Unterbrechung): Ressourcen können einem Prozess nicht ( von außen ) wieder weggenommen werden. Circular Wait: Es gibt eine geschlossene Bedürfniskette ; d. h. jeder Prozess hält mindestens eine Ressource, die ein anderer Prozess der Kette braucht. Trifft eine dieser Bedingungen auf ein System nicht zu, so kann es gar keinen Deadlock geben. Seite 16

17 6.2.2 Petri-Netze zur Prozessmodellierung Mit Hilfe von Petri-Netzen können Abläufe in einem nebenläufigen System veranschaulicht werden. Prozesse sollen also formal modelliert werden, um Deadlocks besser erkennen zu können. Ein Petri-Netz besteht aus: Stellen: Werden durch einen Kreis dargestellt und repräsentieren statische Objekte ( Zustände ), z.b. Signale, Daten, Speicher eines Objekts. Transitionen: Werden dargestellt durch ein Rechteck und repräsentieren Aktionen, z.b. Ereignisse, Vorgänge, Berechnungsschritte oder Jobs. Kanten: Die Pfeile in einem Petri-Netz heißen Kanten und verbinden jeweils eine Stelle und eine Transition, niemals jedoch zwei Stellen oder zwei Transitionen. Dies bedeutet: Der Zustand des Systems kann sich nur durch das Ausführen von Aktionen ( Feuern von Transitionen) verändern. Marken: Stellen wird eine Kapazität zugewiesen, die das Maximum an Marken beschreibt, die diese Stelle aufnehmen kann. Kanten erhalten ein Kantengewicht. Damit wird die Anzahl an Marken beschrieben, die zur Aktivierung dieses Übergangs mindestens vorhanden sein müssen und dabei verbraucht werden. Außerdem werden folgende Begriffe definiert: - Als Vorbereich einer Stelle bzw. Transition X bezeichnet man alle Transitionen bzw. Stellen, von denen eine Kante nach X verläuft ( ein Pfeil auf X zeigt ). - Als Nachbereich einer Stelle bzw. Transition X bezeichnet man analog alle Transitionen bzw. Stellen, zu denen eine Kante von X aus verläuft ( ein Pfeil von X aus weg zeigt ). - Als Markierung wird der Gesamtzustand der Markenverteilung im Netz bezeichnet. Beispiel: Gras Schaf, hungrig Gras Schaf, hungrig Fressen Fressen Schaf, satt Petri-Netz: Grasen Schaf, satt Seite 17

18 In einer Übungsaufgabe tauchte zudem noch eine besondere Kanten-Variante auf: Inhibitorkanten: Diese speziellen Kanten verhalten sich invers zu den normalen Kanten. Eine Transition kann nicht feuern, wenn sie durch eine Inhibitorkante mit einer Stelle verbunden ist, in der sich eine Marke befindet. Beispiel: Solange das Schaf unter den wachsamen Augen des Hundes über die Wiese gescheucht wird, muss es auf einen saftigen Bissen Gras leider verzichten. Hütehund Gras Schaf, hungrig Fressen Schaf, satt Inhibitor-Kante Die Transition kann nicht feuern Deadlock Detection (Deadlockerkennung) Deadlocks können nun mit Hilfe eines Erreichbarkeitsgraphen aufgespürt werden, der die Folge von Markierungen vor und nach dem Feuern gewisser Transitionen darstellt (Abbildung s. Skript S. 110). Es werden zwei Typen unterschieden: - Eine Verklemmung liegt vor, wenn im Erreichbarkeitsgraphen eine Markierung existiert, zu der es keine Nachfolgemarkierung gibt. - Eine teilweise Verklemmung liegt vor, wenn im Erreichbarkeitsgraphen eine Markierung existiert, die nicht von allen anderen Markierungen aus erreichbar ist. Eine Verklemmung schließt also auch immer den Zustand der teilweisen Verklemmung mit ein. Es gibt jedoch teilweise Verklemmungen, die keine (echten) Verklemmungen sind. Im Allgemeinen erkennt man das sichere Auftreten eines Deadlocks daran, dass im Erreichbarkeitsgraphen keine Pfade mit Zyklen existieren, d. h. alle Pfade enden in einem Deadlock. Umgekehrt ist ein System deadlockfrei, wenn ein stark zyklischer Graph entsteht, d.h. jede Markierung von jeder anderen aus erreichbar ist. Seite 18

19 7 PROZESSKOORDINATION 7.1 Nebenläufigkeit Einige Definitionen: Unabhängige Abläufe: Prozesse, die evtl. parallel ablaufen, aber keinen Zugriff auf gemeinsame Ressourcen brauchen. Abhängige Abläufe: Prozesse, die voneinander abhängig sind, weil sie z.b. über einen gemeinsamen Speicherbereich Daten austauschen. Quasi-Parallelität: Mehrere Prozesse werden von einem Prozessor stückchenweise abgearbeitet (preemptives Scheduling). Parallelität: Echte Parallelität liegt vor, wenn mehrere Prozessoren einen oder mehrere Prozesse abarbeiten. Nebenläufigkeit ergibt sich damit als Kombination von (Quasi-)Parallelität und Abhängigkeit. 7.2 Kritische Bereiche Definition: Ein kritischer Bereich ist eine Phase, in der ein Prozess auf gemeinsam genutzte Daten oder Betriebsmittel zugreift. Greifen z. B. beim Erzeuger/Verbraucher-Problem zwei Prozesse auf die gleichen Daten zu, kann es zu Problemen kommen. Als ein Lösungsansatz wurde der Ringpuffer präsentiert (s. Skript S. 127). Allgemeines Lösungsprinzip: Auf eine kritische Variable darf nur in einer einzigen Zeile zugegriffen werden, d. h. innerhalb dieser Zeile ist kein Kontextwechsel möglich ( atomar ). Daher kann dann auch keine Inkonsistenz entstehen. 7.3 Wechselseitiger Ausschluss Definition: Das Problem des wechselseitigen Ausschlusses wird durch Algorithmen gelöst, die nicht mehr als einen Prozess gleichzeitig in den kritischen Bereich hinein lassen. Folgende drei Bedingungen muss ein solcher Algorithmus erfüllen: - Mutual Exclusion: Zu jedem Zeitpunkt darf sich höchstens ein Prozess im kritischen Bereich befinden. - Progress: Es darf keine Probleme geben, wenn ein Prozess in einem unkritischen Bereich stirbt. - Bounded Waiting: Kein Prozess muss endlos auf seinen Zugang zum kritischen Bereich warten. Daraus folgt, dass jeder Prozess den kritischen Bereich in endlicher Zeit verlassen muss und auch nicht darin sterben darf. Seite 19

20 Der Algorithmus von Peterson (s. Skript S. 134) leistet das Gewünschte. Er arbeitet nach folgendem Prinzip: - Schritt 1: Ich zeige an, dass ich will. - Schritt 2: Ich räume anderen den Vortritt ein: Du darfst. - Schritt 3: Falls du willst und du darfst, lasse ich dir den Vortritt. Ansonsten betrete ich den kritischen Bereich. Anmerkung: Das letzte Wort gilt, falls z.b. beide den Vortritt einräumen. Nachteil: Wartende Prozesse belasten die CPU (busy waiting). 7.4 Semaphore Semaphore sind ein höhersprachliches Konstrukt zur Umsetzung des wechselseitigen Ausschlusses. Sie bieten im Vergleich zu Petersons Ansatz insbesondere auch eine Lösung ohne busy waiting. Bei einer Semaphore S handelt es sich im Prinzip nur um eine Integer-Variable, die ausschließlich mit den folgenden drei atomaren Operationen verändert werden kann: - init(s, Anfangswert): Setzt S auf den Anfangswert (Initialisierung). - wait(s): Versucht S zu verringern (Dekrementierung). - signal(s): Erhöht S (Inkrementierung). Meist ist dem Semaphor noch eine Warteschlange zugeordnet, um das busy waiting zu verhindern und die Reihenfolge der Anfragen fair zu behandeln. Implementierungen (mit und ohne Warteschlange) sowie Anwendungen finden sich im Skript ab S Monitore Ein Monitor-Objekt stellt eine Menge von Prozeduren bereit, auf denen es den wechselseitigen Ausschluss und die Warteschlangenverwaltung realisiert. Fordert ein Prozess eine der Prozeduren an, stellt der Monitor sicher, dass er diese atomar abarbeiten kann, bzw. warten muss. Damit besteht ein Monitor aus: - Prozeduren - Lokalen Daten - Einer Warteschlange für ankommende Prozesse Ein Prozess betritt den Monitor, indem er eine der Monitorprozeduren aufruft. Es darf immer nur ein Prozess im Monitor ausgeführt werden alle anderen müssen warten. Neben dem wechselseitigen Ausschluss besteht bei vielen Anwendungen auch das Problem der Synchronisation; dieses wurde bei den Semaphoren mit Zählsemaphoren gelöst, beim Monitor nutzt man Bedingungen. Es gibt die folgenden zwei Funktionen, die auf den Bedingungsvariablen arbeiten: - cwait(c): Suspendiert den aufrufenden Prozess, bis die Bedingung c eingetreten ist (der Prozess reiht sich also in die Warteschlange ein). Seite 20

21 - csignal(c): Nimmt die Ausführung eines suspendierten Prozesses wieder auf, der auf die Bedingung c gewartet hat (bei mehreren z.b. Auswahl nach FIFO). 7.6 Message Passing Prozesskoordination erfordert Synchronisation und Kommunikation. Letztere wird durch Message Passing, also Nachrichtenaustausch, umgesetzt. Es gibt zwei Grundbefehle: - send(destination, message) - receive(source, message) Blockierung Für die Synchronisation zwischen den Prozessen, welche die obigen Befehle nutzen, gibt es drei Konzepte: - Blocking Send, Blocking Receive: Der Sender wird blockiert, bis die Nachricht angekommen ist; nach dem receive-aufruf wird der Empfänger blockiert, bis eine Nachricht eingetroffen ist. Rendezvous-Prinzip - Nonblocking Send, Blocking Receive: Der Sender kann nach dem Abschicken weitermachen, der Empfänger ist bis zum Erhalt der Nachricht blockiert. Am sinnvollsten, da mehrere Nachrichten hintereinander an verschiedene Empfänger geschickt werden können. - Nonblocking-Receive-Ansätze: Weder Sender noch Empfänger werden blockiert. Bedarf eines Mailbox-Systems, damit keine Nachrichten verloren gehen Adressierung Die Angabe des Ziels im Send-Befehl (= Adressierung) kann nach zwei Ansätzen realisiert werden: - Direkte Adressierung: Das Send-Primitiv erhält eine ID des Zielprozesses. Das Ziel selbst kann dann entweder alles annehmen, oder genau angeben, von welchem Prozess etwas erwartet wird. - Indirekte Adressierung: Hier werden die Nachrichten nicht direkt zum Empfänger geschickt, sondern in einer Zentrale gelagert. Mailbox. Seite 21

22 8 SPEICHER Eine zentrale Aufgabe des Betriebssystems ist die Verwaltung des Speichers. 8.1 Speicherverwaltung Es werden fünf Anforderungen an die Speicherverwaltung gestellt: - Relocation (Wiederfinden): CPU und BS müssen Referenzen im Code in die physische Adresse umwandeln können. - Protection (Schutz): Jeder Prozess muss vor Einmischungen durch andere Prozesse geschützt werden. - Sharing (Teilen): Die Speicherverwaltung muss verschiedenen Prozessen den Zugriff auf gemeinsamen Speicher ermöglichen. - Logical Organisation: Hauptspeicher besteht aus einer Folge von Bits und damit Adressen. Programme werden jedoch nicht so geschrieben, daher sollte die Speicherverwaltung eine modulare Organisation unterstützen. - Physical Organisation: Meint die Einteilung in Haupt- und Hintergrundspeicher, aus der sich die Transportaufgabe der Speicherverwaltung ergibt (Stichwort: Busse, Caching). 8.2 Speicherpartitionierung Es gibt verschiedene Möglichkeiten, den Speicher in Bereiche einzuteilen: Feste Partitionierung Hier wird die Größe der Partitionen festgesetzt. In eine Partition passt dann jeweils ein Prozess, der kleiner/gleich der Partitionsgröße ist. Zu große Prozesse stellen offensichtlich ein Problem dar und müssen vom Programmierer teilbar gemacht werden. Es wird auch viel Platz verschwendet, wenn kleine Prozesse womöglich eine große Partition besetzen ( interne Fragmentierung). Dem kann man mit unterschiedlich großen (aber nach wie vor festen) Partitionen entgegenwirken, wenn dann immer die kleinste, freie und passende Partition für einen Prozess gewählt wird Dynamische Partitionierung Die Größe der Partitionen und ihre Anzahl ist variabel. Sie werden sequentiell beschrieben. Beim Speichern eines Prozesses kann dieser nun genau so viel Platz bekommen, wie er auch wirklich benötigt; es wird also nichts verschwendet. Als Nachteil ergibt sich jedoch das Entstehen von Lücken, wenn ein Prozess nicht mehr gebraucht und herausgezogen wird. Andererseits können diese Lücken dann auch wieder von neuen Seite 22

23 Prozessen gefüllt werden. Insgesamt wird der Speicher dennoch immer fragmentierter, da die neuen Prozesse ja nicht genau auf die Lücken passen müssen ( externe Fragmentierung) Buddy Systeme Dieser Ansatz bildet einen Kompromiss aus den beiden vorhergehenden. Dazu wird der Speicher zunächst betrachtet als ein einziger Block der Größe. Bei einer Speicheranforderung S wird geprüft ob: In Worten: Habe ich überhaupt genug Speicher? ( ). Und wichtiger: Kann ich meinen Speicher noch einmal halbieren, sodass S in eine der Hälften passt ( )? Es wird solange halbiert (U = U 1 und erneut prüfen), bis S gerade noch in eines der Teile passt (s. Abb. S. 164). Verwaltung: Um Buddies zu verwalten muss das Speichersystem wissen, wo noch freie Plätze im Baum sind. Dazu ist es wichtig die Adressen freier Blöcke zu kennen sowie deren Länge. Da die Längen nicht gleich sind speichert man pro Länge ( Tiefenstufe im Baum ) eine Liste mit den Anfangsadressen. So weiß man, dass z.b. Einträge in der Liste eine Länge von besitzen. Adressierung: Die Adressen starten bei 0..0 und ergeben sich für tiefere Stufen indem man beim Absteigen für den linken Ast die 0 behält und für den rechten eine 1 setzt (vgl. auch Huffman) Dieses System führt zu interner Fragmentierung (S wird selten genau eine 2er-Potenz treffen) und auch zu externer Fragmentierung (es gibt leere Einträge). Gewichtete Buddy-Systeme: Um die interne Fragmentierung gering zu halten, kann man die Gewichtung bei der Teilung von 1:1 z.b. zu 1:3 verschieben. Somit erhält man ein breiteres Spektrum an Block-Längen, was dazu führt, dass S evtl. genauer passen kann. Seite 23

24 8.3 Virtueller Speicher Da der Hauptspeicher nicht immer ausreicht, um alle benötigten Daten zu halten, müssen Daten zwischen Haupt- und Hintergrundspeicher ausgetauscht und in beiden Speichern adressiert werden Prinzip der Speicherverwaltung Physischer Adressraum: Die Menge der im Arbeitsspeicher physisch vorhandenen Speicherplätze bildet den realen oder physischen Adressraum. Logischer Adressraum: Der logische oder virtuelle Adressraum wird benötigt falls die Kapazität des physischen Arbeitsspeichers nicht mehr ausreicht, um alle Daten zu speichern. Aufgabe der Speicherverwaltung ist es, die logischen Adressen den physischen zuzuordnen Datentransport zwischen Hintergrund- und Arbeitsspeicher Da der virtuelle Speicher i. A. viel größer ist als der reale Speicher, muss definiert werden, wie der Datentransport zwischen beiden Speichern ablaufen soll und welche Teile des virtuellen Adressraums auf Hintergrundspeicher auszulagern sind. Seite (Page): Eine Transporteinheit mit fester Länge. Der logische Speicher wird in Seiten aufgeteilt, die dann einzeln zwischen den beiden Speichern vermittelt werden können. Seitenrahmen (Frame): Der reale Adressraum wird in sog. Seitenrahmen eingeteilt; diese haben die gleiche Größe wie die Seiten. Die Größe einer Seite sollte wohlbedacht gewählt werden. Ist sie zu klein, entsteht zu viel Transportund Verwaltungsaufwand; zu große Seiten hingegen führen zu Platzverschwendung und somit interner Fragmentierung Abbildung virtueller auf reale Adressen Die virtuelle (logische) Adresse besteht aus: - Nummer des Segments - Nummer der Seite - Offset (Adresse relativ zum Anfang der Seite) Die reale (physische) Adresse besteht aus: - Nummer des Frames - Offset (Adresse relativ zum Anfang des Frames) Die Abbildung der virtuellen auf die realen Adressen wird mit Hilfe einer Seitentabelle umgesetzt. Seite 24

25 Die Seitentabelle ordnet den (durchnummerierten) Seiten im Hintergrundspeicher zunächst einmal zu, ob sich diese Seite im Hauptspeicher befindet ist dies der Fall, so enthält die Tabelle auch die Adresse im Hauptspeicher (sowie die Nummer des Frames). Seitennummer Adresse im Hintergrundspeicher Seitentabelle Adr. im Hauptspeicher, falls vorhanden Nachschlagen Seitenrahmennummer Nachschlagen : Wird eine virtuelle Adresse angefordert, so wird die Seite anhand ihrer Nummer in der Seitentabelle ausfindig gemacht. Befindet sie sich laut Tabelle im Hauptspeicher wird die Seitennummer der virtuellen Adresse dann durch die Frame-Nummer der realen Adresse ersetzt. 8.4 Paging Wie oben dargelegt, wird der logische Adressraum in Seiten, der physische Adressraum in Rahmen unterteilt. Wie wählt man nun die Seiten aus, die in die Rahmen geladen werden sollen? Anmerkung zum Kapitel: Paging setzt auf BS-Ebene um, was in Rechnerarchitektur das Caching auf Hardware-Ebene gemacht hat Paging-Strategien Begriffsklärung Seitenfehler : Eine Seite wird angefordert, befindet sich aber nicht im Hauptspeicher. Es werden folgende drei Strategien betrachtet: - Demand Paging: Eine benötigte Seite, die im Hauptspeicher fehlt, wird on demand aus dem Hintergrundspeicher nachgeladen. - Demand Prepaging: Fehlt eine Seite, so werden gleichzeitig mehrere Seiten geladen und verdrängt. Gegenüber dem ersten Verfahren spart man so Zugriffe auf den Hintergrundspeicher ein. - Look-Ahead-Paging: Hier werden Seiten nicht nur bei Seitenfehlern nachgeladen, sondern auch zu anderen definierten Gelegenheiten Seitenaustausch-Algorithmen Folgende Vorschriften (Policies) werden vom Betriebssystem für den virtuellen Speicher gemacht: - Resident Set Management Policy: Was soll immer vorhanden sein? - Schreibt vor, ob sich eine feste oder eine variable Anzahl von Seiten eines bestimmten Prozesses während der Seite 25

26 Abarbeitung dauerhaft im Hauptspeicher befinden sollte. Außerdem kann hiermit die Menge der für einen Austausch infrage kommenden Seiten eingeschränkt werden (sog. Replacement Scope). - Fetch Policy: Wie werden neue Seiten geholt? - Schreibt vor, ob nur bei einem Seitenfehler nachgeladen werden darf (Demand Paging) oder auch sonst (Prepaging). Erst durch letzteres wird das Laden von mehreren Seiten wie beim Demand Prepaging beschrieben möglich, denn für nicht alle der dabei geladenen Seiten lag dann ja ein Seitenfehler vor. - Placement Policy: Wohin mit dem neuen? Schreibt vor, wo ein Teil eines Prozessen in den Arbeitsspeicher geschrieben wird (z.b. first fit). Beim Paging irrelevant, da die Seiten ohnehin immer in die Rahmen passen. - Replacement Policy: Was wird verdrängt? Schreibt vor, welche Seiten aus dem Hauptspeicher verdrängt/überschrieben werden, wenn der Speicher schon voll ist und eine neue Seite geladen werden soll. Zur Replacement Policy existieren nun verschiedene Ersetzungsstrategien: OPT (Optimalstrategie): Verdrängt jeweils die Seite mit dem größten Vorwärtsabstand, d.h. die Seite, die am längsten nicht mehr gebraucht werden wird. Praktisch leider kaum umsetzbar, da man ja nicht vorhersagen kann, wie lange eine Seite nicht mehr gebraucht werden wird (bzw. nur annäherungsweise auf Basis des bisherigen Verlaufs). Dieses Verfahren eignet sich jedoch als Benchmark für andere. First In First Out (FIFO): Hier wird die Seite verdrängt, die sich schon am längsten im Speicher befindet. Einfach zu implementieren, aber nicht der beste Algorithmus. Least Recently Used (LRU): Es wird jeweils die Seite verdrängt, auf die am längsten nicht mehr zugegriffen wurde. Diese Strategie kommt der optimalen relativ nahe. Last Frequently Used (LFU): Verdrängt die Seite mit niedrigster Nutzungshäufigkeit. Die Nutzung in Form von Seitenzugriffen muss dann für jeden Frame gespeichert werden. Sie kann in mehreren Varianten gezählt werden: Seit Laden der Seite, innerhalb der letzten n Zugriffe oder seit dem letzten Seitenfehler. Climb: Hier klettert eine Seite eine Position im Speicher höher, wenn sie bei einem Aufruf bereits im Speicher ist. Neue Seiten verdrängen dann die untersten Seiten. Clock-Strategie: Die Seiten werden in einer zyklischen Liste verwaltet. Ein Zeiger zeigt auf die älteste Seite. Pro Seite gibt es ein sog. Use Bit. Wird eine Seite das erste Mal in ein Frame geladen, so wird deren Use Bit auf 1 gesetzt. Wird eine bereits geladene Seite aufgerufen, so wird das Bit ebenfalls 1. Beim Ersetzen wird der Speicher im Uhrzeigersinn nach einer Seite mit Use Bit = 0 durchsucht. Alle unterwegs getroffenen 1er werden dabei zu 0 zurückgesetzt. Am Ende wird die Seite an der Zeigerposition ersetzt und der Zeiger rückt eins weiter. FIFO in kompliziert. Unterschied: Seiten mit Use Bit = 1 werden übersprungen. Seite 26

27 Belady s Anomalie: Damit wird der Umstand bezeichnet, dass eine Erhöhung der verfügbaren Frames zu einer Steigerung der Seitenfehler führt. Dies kann z.b. bei der FIFO-Strategie vorkommen. Algorithmen, auf die diese Anomalie nicht zutrifft, bezeichnet man als Stackalgorithmen. Dazu gehört z. B. LRU Minimierung von Seitenfehlern Definition: Die eindeutige Folge von Zugriffen auf bestimmte Speicherseiten während der Ausführung eines Prozesses wird als Reference String bezeichnet. Ein Paging-System kann eindeutig über die folgenden drei Eigenschaften beschrieben werden: - den Reference String des ausgeführten Prozesses - den Seitenaustauschalgorithmus - die Anzahl der Seitenrahmen m, die im Speicher gehalten werden. Sei n die Anzahl der Seiten des Prozesses. Damit kann man nun eine Tabelle anlegen: Im oberen Bereich liegen m Seiten im Speicher, im unteren Bereich n m schon einmal aufgerufene und wieder ausgelagerte Seiten. Zu Beginn ist die Tabelle natürlich leer. Dem Reference-String und dem gewählten Algorithmus folgend kann man sie nun füllen und so den Zustand des Speichers über den zeitlichen Verlauf der Prozessausführung darstellen (Abb. s. Skript S. 176). Insbesondere wird am Beispiel aus dem Skript abgeleitet, dass LRU zu einer speziellen Klasse von Seitenaustauschalgorithmen gehört. Für diese gilt: Wobei m die Anzahl der Frames bezeichnet und r den Index im Reference-String, also den Fortschritt der Abarbeitung. In Worten: Erhöht man die Anzahl der Frames, so befinden sich zum gleichen Zeitpunkt trotzdem die gleichen Seiten im Speicher wie bei weniger Frames (und darüber hinaus noch mehr). Die Formel sagt also aus, dass es sich um einen Stackalgorithmus handelt (s. o.). Definition: Bei solchen Stackalgorithmen ist es möglich und sinnvoll, den Reference String abstrakter darzustellen. Eine Seitenreferenz wird dann nicht einfach durch ihre Nummer repräsentiert, sondern durch die Entfernung der bisherigen Position dieser Seite im Stack zum Stackbeginn. Diese Darstellung wird als Distance String bezeichnet. Wurde auf eine Seite bislang noch nicht zugegriffen, so hat sie eine Distanz von. Mit Hilfe des Distance String lassen sich Seitenaustauschalgorithmen analysieren. Sei die Anzahl der Seitenfehler bei einem gegebenen Distance String und m Frames. ist die Anzahl der Vorkommen von k im Distance String. Dann kann man den Wert so bestimmen: Seite 27

28 Erläuterung: Der Index der Summe läuft deshalb von m + 1 bis n, da Werte kleiner gleich m bedeuten, dass sich die Seite im Speicher befindet und somit kein Seitenfehler erzeugt wird. Umgekehrt erzeugt jedes Auftreten eines Wertes größer m im Distance String eindeutig einen Seitenfehler. Die Formel addiert also tatsächlich einfach die Anzahl der Seitenfehler Working Set Strategie Die bisherigen Strategien gingen immer von einer festen Anzahl an Frames aus, die einem bestimmten Prozess zur Ausführung zur Verfügung stehen (m). Die Working Set Strategie ermöglicht ein dynamisches Anpassen der Anzahl der Frames während der Abarbeitung eines Prozesses. Dazu betrachtet man zunächst die Lifetime-Funktion L(m). Sie gibt die mittlere Zeit zwischen zwei Seitenfehlern in Abhängigkeit der Rahmenzahl an. Für gewöhnlich wächst L monoton mit steigendem m: Je mehr Frames ein Prozess zur Verfügung hat, desto weniger oft muss er etwas nachladen. Bei wenigen Frames bringt eine Erhöhung noch eine deutliche Verbesserung, irgendwann tritt dann ein Sättigungseffekt auf. Dieser wird mit dem sog. Working Set erklärt. Dabei nimmt man an: - Die jüngste Vergangenheit ist eng mit der unmittelbaren Zukunft verknüpft. - Ein Prozess, der bislang viele aktive Seiten hatte, braucht diese mit einer gewissen Wahrscheinlichkeit auch in Zukunft. - Über weite Bereiche verhalten sich Prozesse lokal, d.h. erst kürzlich referenzierte Seiten werden mit höherer Wahrscheinlichkeit wieder gebraucht, als andere Seiten, deren letzter Zugriff schon länger zurück liegt. Das Working Set ist die folgende Menge von Seiten: ist also die Menge der Seiten, die bei den letzten h Zugriffen gebraucht wurden. Mit bezeichnet man deren Mächtigkeit, d.h. die Anzahl der verschiedenen Seiten, die in den letzten h Zugriffen verwendet wurden. Diese Strategie wirft folgende Probleme auf: - Die Anzahl der Frames variiert nicht nur pro Prozess, sondern auch für alle Prozesse insgesamt. Es kann also vorkommen, dass die Prozesse zusammen mehr Frames belegen, als vorhanden sind. Dann wäre das System überlastet und müsste Prozesse suspendieren. - Wie wählt man h? Ist es zu klein, sind nicht alle aktiven Seiten verfügbar; ist es zu groß, enthält das Working Set zu viele inaktive Seiten, die nutzlos Frames belegen. Die eigentliche Strategie besteht nun darin, bei Seitenfehlern eine Seite zu ersetzen, die nicht Teil des Working Sets ist. Außerdem erhält jeder Prozess so viele Frames, wie er für sein Working Set aktuell braucht ( ). Seite 28

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper Speicherverwaltung Real Mode Nach jedem starten eines PC befindet sich jeder x86 (8086, 80386, Pentium, AMD) CPU im sogenannten Real Mode. Datenregister (16Bit) Adressregister (20Bit) Dadurch lassen sich

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

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

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

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

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne 6.2 Petri-Netze WS 06/07 mod 621 Petri-Netz (auch Stellen-/Transitions-Netz): Formaler Kalkül zur Modellierung von Abläufen mit nebenläufigen Prozessen und kausalen Beziehungen Basiert auf bipartiten gerichteten

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

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Es kann maximal ein Prozess die Umladestelle benutzen.

Es kann maximal ein Prozess die Umladestelle benutzen. SoSe 0 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung (Musterlösung) 0-06-0 bis 0-06-06 Aufgabe : Erzeuger/Verbraucher-Pattern Ein Getränkemarkt hat

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation

Mehr

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem 20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem Autor Susanne Albers, Universität Freiburg Swen Schmelzer, Universität Freiburg In diesem Jahr möchte

Mehr

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper 1. Der Prozess beginnt im Zustand Erzeugt, nachdem sein Vaterprozess den Systemaufruf fork() (s.u.) abgesetzt hat. In diesem Zustand wird der Prozess-Kontext initialisiert. 2. Ist diese Aufbauphase abgeschlossen,

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domänenmodell: Fadenkommunikation und -synchronisation Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4

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

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Einführung in die technische Informatik

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

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

5 Speicherverwaltung. bs-5.1 1

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

Mehr

Systeme 1. Kapitel 5. Scheduling

Systeme 1. Kapitel 5. Scheduling Systeme 1 Kapitel 5 Scheduling Scheduling Verteilung und Zuweisung von begrenzten Ressourcen an konkurrierende Prozesse Beispiel: -> Zeitablaufsteuerung Zwei Prozesse zur gleichen Zeit rechenbereit auf

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

DOKUMENTATION VOGELZUCHT 2015 PLUS

DOKUMENTATION VOGELZUCHT 2015 PLUS DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Motivation. Motivation

Motivation. Motivation Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2012 Universität Duisburg-Essen Was sind nebenläufige Systeme? Ganz allgemein: Systeme, bei denen mehrere Komponenten/Prozesse nebenläufig arbeiten

Mehr

icloud nicht neu, aber doch irgendwie anders

icloud nicht neu, aber doch irgendwie anders Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) Ü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

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von

Mehr

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003 Task! evt. parallel zu bearbeitende Ausführungseinheit! Beispiel: Task A Zündung Task B Einspritzung Task C Erfassung Pedalwert Zeit t J. Schäuffele, Th. Zurawka:, Vieweg, 2003 Echtzeitbetriebssysteme

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Lieber SPAMRobin -Kunde!

Lieber SPAMRobin -Kunde! Lieber SPAMRobin -Kunde! Wir freuen uns, dass Sie sich für SPAMRobin entschieden haben. Mit diesem Leitfaden möchten wir Ihnen die Kontoeinrichtung erleichtern und die Funktionen näher bringen. Bitte führen

Mehr

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

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

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

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

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

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

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Workshop: Eigenes Image ohne VMware-Programme erstellen

Workshop: Eigenes Image ohne VMware-Programme erstellen Workshop: Eigenes Image ohne VMware-Programme erstellen Normalerweise sind zum Erstellen neuer, kompatibler Images VMware-Programme wie die Workstation, der ESX-Server oder VMware ACE notwendig. Die Community

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

Übungen zum Fach Betriebssysteme Kapitel 3

Übungen zum Fach Betriebssysteme Kapitel 3 Übungen zum Fach Betriebssysteme Kapitel 3 Prof. Dr. Kern & Prof. Dr. Wienkop Prozessverwaltung 1 Prozeßauslagerung Ein Betriebssystem, das die Zustände "rechnend", "bereit" und "wartend" sowie den künstlichen

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Eigene Dokumente, Fotos, Bilder etc. sichern

Eigene Dokumente, Fotos, Bilder etc. sichern Eigene Dokumente, Fotos, Bilder etc. sichern Solange alles am PC rund läuft, macht man sich keine Gedanken darüber, dass bei einem Computer auch mal ein technischer Defekt auftreten könnte. Aber Grundsätzliches

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst. 40-Tage-Wunder- Kurs Umarme, was Du nicht ändern kannst. Das sagt Wikipedia: Als Wunder (griechisch thauma) gilt umgangssprachlich ein Ereignis, dessen Zustandekommen man sich nicht erklären kann, so dass

Mehr

S7-Hantierungsbausteine für R355, R6000 und R2700

S7-Hantierungsbausteine für R355, R6000 und R2700 S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über

Mehr

VIDA ADMIN KURZANLEITUNG

VIDA ADMIN KURZANLEITUNG INHALT 1 VIDA ADMIN... 3 1.1 Checkliste... 3 1.2 Benutzer hinzufügen... 3 1.3 VIDA All-in-one registrieren... 4 1.4 Abonnement aktivieren und Benutzer und Computer an ein Abonnement knüpfen... 5 1.5 Benutzername

Mehr

Petri-Netze / Eine Einführung (Teil 2)

Petri-Netze / Eine Einführung (Teil 2) Manuel Hertlein Seminar Systementwurf Lehrstuhl Theorie der Programmierung Wiederholung (1) Petri-Netz = bipartiter, gerichteter Graph Aufbau: Plätze (passive Komponenten) Transitionen (aktive Komponenten)

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Lösungsskizzen zur Abschlussklausur Betriebssysteme

Lösungsskizzen zur Abschlussklausur Betriebssysteme Lösungsskizzen zur Abschlussklausur Betriebssysteme 24. Januar 2013 Name: Vorname: Matrikelnummer: Studiengang: Hinweise: Tragen Sie zuerst auf allen Blättern (einschlieÿlich des Deckblattes) Ihren Namen,

Mehr

Formular»Fragenkatalog BIM-Server«

Formular»Fragenkatalog BIM-Server« Formular»Fragenkatalog BIM-Server«Um Ihnen so schnell wie möglich zu helfen, benötigen wir Ihre Mithilfe. Nur Sie vor Ort kennen Ihr Problem, und Ihre Installationsumgebung. Bitte füllen Sie dieses Dokument

Mehr

Win 7 optimieren. Unser Thema heute: Meine erstellten Daten in eine andere Partition verschieben.

Win 7 optimieren. Unser Thema heute: Meine erstellten Daten in eine andere Partition verschieben. Win 7 optimieren Unser Thema heute: Meine erstellten Daten in eine andere Partition verschieben. Gliederung Standardmäßige Vorgaben von MS Win7. Warum Daten verschieben? Welche Vorteile bringt die Datenverschiebung?

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Betriebssysteme und Systemsoftware

Betriebssysteme und Systemsoftware Merlin Denker Version 2 1 / 18 Vorwort Dieses Dokument soll einen Überblick über verschiedene Strategien aus der an der RWTH Aachen gehaltenen Vorlesung bieten. Die vorliegende Version dieses Dokuments

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

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

Kompetitive Analysen von Online-Algorithmen

Kompetitive Analysen von Online-Algorithmen Kompetitive Analysen von Online-Algorithmen jonas echterhoff 16. Juli 004 1 Einführung 1.1 Terminologie Online-Algorithmen sind Algorithmen, die Probleme lösen sollen, bei denen Entscheidungen getroffen

Mehr

2.3 Prozessverwaltung

2.3 Prozessverwaltung Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären

Mehr

Domänenanalyse Threadverwaltung/Scheduling

Domänenanalyse Threadverwaltung/Scheduling Domänenanalyse Threadverwaltung/Scheduling Johannes Handl, Marc Rößler, Christian Strengert 15. Mai 2003 Domänenanalyse Threadverwaltung/Scheduling [1] Domänendefinition Die Erzeugung, Verwaltung, Umschaltung/Wechsel,

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Eigenen Farbverlauf erstellen

Eigenen Farbverlauf erstellen Diese Serie ist an totale Neulinge gerichtet. Neu bei PhotoLine, evtl. sogar komplett neu, was Bildbearbeitung betrifft. So versuche ich, hier alles einfach zu halten. Ich habe sogar PhotoLine ein zweites

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

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

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren Ziel der Anleitung Sie möchten ein modernes Firewallprogramm für Ihren Computer installieren, um gegen

Mehr

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher Speicherverwaltung Aufgaben der Speicherverwaltung wichtigstes Betriebsmittel - neben dem Prozessor: Speicher Sowohl die ausführbaren Programme selbst als auch deren Daten werden in verschiedenen Speicherbereichen

Mehr

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 1: Prozesse und Threads Aufgabe 1: Prozesse und Threads a) Wie verhält sich eine Applikation die aus mehreren Prozessen

Mehr

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der

Mehr

Sie wollen Was heißt das? Grundvoraussetzung ist ein Bild oder mehrere Bilder vom Wechseldatenträger

Sie wollen Was heißt das? Grundvoraussetzung ist ein Bild oder mehrere Bilder vom Wechseldatenträger Den Speicherplatz wechseln oder eine Sicherungskopie erstellen. Es lässt sich nicht verhindern. Manche Sachen liegen am falschen Platz, können gelöscht werden oder man will vor der Bearbeitung eine Sicherungskopie

Mehr

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2 disk2vhd Wie sichere ich meine Daten von Windows XP? Inhalt Thema Seite Vorwort 1 Sichern der Festplatte 2 Einbinden der Sicherung als Laufwerk für Windows Vista & Windows 7 3 Einbinden der Sicherung als

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets Verwalten und erstellen Sie Ihre eigenen Tickets NetStream GmbH 2014 Was ist NetStream Helpdesk-Online? NetStream Helpdesk-Online ist ein professionelles Support-Tool, mit dem Sie alle Ihre Support-Anfragen

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Inkrementelles Backup

Inkrementelles Backup Inkrementelles Backup Im Gegensatz zu einer kompletten Sicherung aller Daten werden bei einer inkrementellen Sicherung immer nur die Dateien gesichert, die seit der letzten inkrementellen Sicherung neu

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

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 2 Virtual Storage el0100 copyright

Mehr

K.U.Müller www.muellerbahn.de November 2009

K.U.Müller www.muellerbahn.de November 2009 K.U.Müller www.muellerbahn.de November 2009 Anschluss der Acryl-Röhren an die MpC Ziel ist es, den jeweiligen Röhren eine Block-Nummer zuzuordnen, um in diesem Block außerhalb der Anlage einen Zug parken

Mehr

ARCO Software - Anleitung zur Umstellung der MWSt

ARCO Software - Anleitung zur Umstellung der MWSt ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.

Mehr