Zusammenfassung zur Vorlesung im Wintersemester 2009/2010
|
|
- Marcus Biermann
- vor 8 Jahren
- Abrufe
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
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
MehrArchitektur 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 =
MehrSysteme 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
MehrDatensicherung. 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
MehrRound-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
Mehr6.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
MehrDä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
MehrWelche 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
MehrSoftwarelö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]
Mehr1 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
MehrFachbericht 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
MehrEs 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
MehrBitte 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
Mehr20. 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
MehrBetriebssysteme. 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,
MehrGrundlagen 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)
MehrMonitore. 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
MehrDomä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
MehrSysteme 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
MehrProfessionelle 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
MehrEinfü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
MehrLizenzierung 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
MehrVirtueller 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,
Mehr5 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
MehrSysteme 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
MehrEinrichten 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
MehrDOKUMENTATION 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
MehrPrimzahlen 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
MehrHandbuch 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
MehrMotivation. 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
Mehricloud 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
MehrBetriebssystembau (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)
Ü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
MehrProzeß 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
MehrTask 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
MehrNovell 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
MehrGuide 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
MehrLieber 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
MehrAGROPLUS 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
MehrFolge 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
MehrSystemsoftware (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
MehrOPERATIONEN 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:
MehrOutlook. 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
MehrEasyWk 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
MehrWorkshop: 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
MehrKapitel 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 Prof. Dr. Kern & Prof. Dr. Wienkop Prozessverwaltung 1 Prozeßauslagerung Ein Betriebssystem, das die Zustände "rechnend", "bereit" und "wartend" sowie den künstlichen
MehrDas 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
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrHandbuch 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
MehrEigene 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
Mehr1. 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:
MehrWie 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,
Mehr40-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
MehrS7-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
MehrVIDA 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
MehrPetri-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)
MehrIm 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:
MehrInhalt. 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...
MehrLö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,
MehrFormular»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
MehrWin 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?
MehrProzesse 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
MehrOP-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
MehrBetriebssysteme 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
MehrEinrichtung 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 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
MehrAnleitung ü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
Mehr1 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.
MehrSuche 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
MehrSysteme 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
MehrKompetitive 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
Mehr2.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
MehrDomä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,
MehrUrlaubsregel 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
MehrEigenen 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
MehrLizenzen 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.
MehrSharePoint 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
MehrDokumentation 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
MehrStellen 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.
MehrEr 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
MehrAnleitung 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
Mehrwichtigstes 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
MehrIn 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
MehrArtikel 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
MehrObjektorientierte 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
MehrIn 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
MehrTechnische 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
MehrDas 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
MehrSie 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
Mehrdisk2vhd 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
MehrAnleitung 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
MehrNetStream 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
MehrGrundbegriffe 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
MehrInkrementelles 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
MehrGrundlagen 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)
MehrEnterprise 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
MehrK.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
MehrARCO 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