Vorlesung Betriebssysteme

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Betriebssysteme"

Transkript

1 Vorlesung Betriebssysteme Dipl.-Inform. Reinhard Griesinger Ausgabe Frühjahr 2014

2 ii

3 Inhaltsverzeichnis 1 Was ist ein Betriebssystem? Begriffe und Konzepte Grundlegende Aufgaben eines Betriebssystems Zusätzliche Aufgaben von Betriebssystemen Prozessor- und Prozessverwaltung Grundlagen Prozesszustände und Zustandsübergänge Scheduling: Ziele und Kriterien Beispiele für Scheduling-Strategien UNIX Aufbau eines UNIX-Prozesses UNIX-Scheduling Prozessnahe Algorithmen im Betriebssystemkern Systemaufrufe, Prozesse betreffend Übungen Prozess-Synchronisation Grundlagen Gegenseitiger Ausschluss Kritische Abschnitte Semaphore Das Erzeuger-Verbraucher-Problem Klassische Probleme der Prozess-Synchronisation Implementierung von Semaphoren Verklemmungen Maßnahmen gegen Verklemmungen Übungen Hauptspeicherverwaltung Grundlagen Hauptspeicherorganisation Ladestrategie Positionierungsstrategie Ersetzungsstrategie UNIX Übungen iii

4 iv INHALTSVERZEICHNIS 5 Dateisysteme Grundlagen Dateinamen Dateibausteine Dateiorganisation Plattenspeichervergabe Operationen auf Dateibausteine Operationen auf Dateien Zugriffskontrolle Datei- und Satzsperren UNIX Benutzersicht des UNIX-Dateisystems Implementierung der Verzeichnishierarchie Abbildung von I-Knoten auf Datenblöcke Systemtabellen für geöffnete Dateien Systemaufrufe, das Dateisystem betreffend Übungen Ein-/Ausgabe Grundlagen UNIX Gerätetypen Der Pufferspeicher Übungen Multiprozessorsysteme Grundlagen Master-Slave-Konfiguration Getrennte Verarbeitung Symmetrische Verarbeitung UNIX Beispiel einer Implementierung in den Bell Laboratorien Beispiel einer Implementierung bei HP Übungen Prozessor-Virtualisierung Motivation Prozessor-Virtualisierung Aspekte der Servervirtualisierung Xen Entwurfsprinzipien Literatur Index Index-1 Index-1

5 Kapitel 1 Was ist ein Betriebssystem? What is an elephant? - A mouse with an Operating System. Dieses Kapitel versucht eine einfache Definition des Begriffs Betriebssystem. Die grundlegenden Aufgaben eines Betriebssystems, nach denen sich auch die Kapitelstruktur dieses Skripts ausrichtet werden aufgezählt. Darüberhinaus ergaben sich im Lauf der Zeit neue Aufgaben, die nur kurz erwähnt werden und die nicht Teil der Vorlesung sind. 1.1 Begriffe und Konzepte Ein Betriebssystem ist ein Verwalter von Betriebsmitteln (Ressourcen) und ein Anbieter von Dienstleistungen (Services). Betriebsmittel können Hardware-Komponenten sein, wie z.b. Prozessoren, Speicher oder Ein-/Ausgabe-Geräte. Der Begriff des Betriebsmittels kann aber kaum weit genug gefaßt werden. Als Betriebsmittel können auch Dateien, Netzwerkzugänge und Namen in einem Netzwerk gelten. Dabei zeigt sich, dass Betriebsmittel in der Regel knapp sind: Prozessoren sind zu langsam, Speicher voll, Ein-/Ausgabegeräte überlastet usw. Ein Betriebssystem ist also ein Verwalter des Mangels. Die vorhandenen Ressourcen bietet ein Betriebssystem seinen Benutzern gekapselt in Form von Dienstleistungen an. Im UNIX-Betriebssystem heißen diese Dienstleistungen Systemaufrufe (system calls). Dienstleistungen, die ein Betriebssystem anbietet, sind [Dei90] Benutzeroberfläche, die Zuteilung der Hardware an Benutzer, der Datenaustausch zwischen Benutzern, das Erleichtern der Ein-/Ausgabe und das Wiederaufsetzen nach Fehlern. 1-1

6 1-2 KAPITEL 1. WAS IST EIN BETRIEBSSYSTEM? Abbildung 1.1: Grundlegende Aufgaben eines Betriebssystems Diese Dienstleistungen geben dem Benutzer den Eindruck, dass er statt der reinen Hardware eine erweiterte Maschine zur Verfügung hat. Ein Betriebssystem hat Schnittstellen: zum Bedienerpersonal, zu Anwendungs- und Systemprogrammierern, zum Verwaltungspersonal, zu Programmen, zur Hardware und zu Benutzern. Dabei gilt, dass ein Betriebssystem seinen Benutzern Verhaltensmaßnahmen vorschreiben muss. Man wird deswegen von den Konstrukteuren von Betriebssystemen erwarten, dass sie ihr Bestes tun, sie so einfach, wirkungsvoll und zuverlässig wie möglich zu machen. [Han77] In heutiger Zeit würde man den Begriff sicher hinzufügen. 1.2 Grundlegende Aufgaben eines Betriebssystems Die grundlegenden Aufgaben eines Betriebssystems - veranschaulicht anhand Abbildung sind im Überblick Prozessorverwaltung: In einer modernen Computeranlage gibt es vielfältige Möglichkeiten der parallelen Verarbeitung: Es können mehrere Prozessoren (oder Kerne) real gleichzeitig Prozesse ausführen. Innerhalb eines Prozessors können Prozesse (quasi-) parallel ausgeführt werden. Dazu wird der Prozessor zyklisch an die einzelnen Prozesse vergeben.

7 1.3. ZUSÄTZLICHE AUFGABEN VON BETRIEBSSYSTEMEN 1-3 Innerhalb eines Prozesses können parallele Aktivitäten (Threads) stattfinden. Darüberhinaus ist es aufgrund steigende Prozessorleistung möglich geworden, dem Benutzer virtualisierte Rechner-Hardware und Betriebssysteme zur Verfügung zu stellen. Hauptspeicherverwaltung: Der Hauptspeicher kann als ein sowohl zeitlich als auch räumlich aufteilbares Betriebsmittel aufgefasst werden. Dateiverwaltung: Neben der Verwaltung der Plattenhardware ist darunter vor allem die Dateiorganisation und die Abbildung von benutzerdefinierten Namen in interne Adressen zu verstehen. Ein-/Ausgabe: mit verschiedenen Geräten (Bildschirm, Platte, Drucker). Benutzerverwaltung: Ein Betriebssystem hat sowohl den Schutz vor nicht autorisiertem Zugriff auf Ressourcen als Aufgabe, als auch die Bereitstellung von Kommunikationsmöglichkeit zwischen Benutzern oder Prozessen. (Interprozesskommunikation). 1.3 Zusätzliche Aufgaben von Betriebssystemen Neben diesen grundlegenden Aufgaben gibt es zusätzliche Aufgaben für Betriebssysteme, die aus Anforderungen aus der Praxis, neuen Möglichkeiten der Hardware oder aus Forschungsthemen heraus entstanden sind: Fehlertolerante Systeme: Die moderne Gesellschaft wird immer abhängiger von der Verfügbarkeit ihrer DV-Infrastruktur. Systeme, die durch Mehrfachauslegung ihrer Komponenten erhöhte Ausfallsicherheit bieten, benötigen auch im Betriebssystem Mechanismen, die die Fehlertoleranz unterstützen. Echtzeitsysteme: Immer stärker werden technische Prozesse von Rechnern gesteuert. Echtzeitsysteme müssen innerhalb vorgegebener Zeiten auf Ereignisse in der realen Welt reagieren. Um Reaktionszeiten garantieren zu können, sind Vorkehrungen in der Speicherverwaltung, Unterbrechungsbearbeitung und Prozessorzuteilung eines Betriebssystems zu treffen. Online-Transaktionsverarbeitung: Eine große Anzahl von Teilnehmern, die eine große Anzahl von Operationen durchführen, kennzeichnen Transaktionssysteme (z.b. Reservierungssysteme, electronic banking). Anforderungen an Betriebssysteme sind die Verwaltung großer Datenbanken und schnelle Abarbeitung einer großen Anzahl von Aufträgen. Verteilte Systeme: Die Vernetzung von Computern wird immer wichtiger. Der Aufbau von LANs und WANs erfordert stabile Software-Architekturen. Aufgaben von Betriebssystemen sind hohe Interoperabilität und effiziente Nutzung der Netzbandbreite. Sicherheit von Betriebssystemen: Neben der Erhöhung der Sicherheit von alltagstauglichen Betriebssystemen, bei der neben einzelnen Mechanismen z.b. auch die schnelle Anpassbarkeit eine Rolle spielt, wird in Bereichen mit erhöhten Sicherheitsanforderungen Wert auf eine sichere Konstruktion von Betriebssystemen gelegt.

8 1-4 KAPITEL 1. WAS IST EIN BETRIEBSSYSTEM? Energiemanagement: Mit Aufkommen mobiler Computer wird das Energiemanagement Aufgabe des Betriebssystems. In Abhängigkeit von der zur Verfügung stehenden Akkukapazität werden Systemparameter (Bildschirmhelligkeit, Prozessortakt) geändert, bei drohendem Systemstillstand wird rechtzeitig der Arbeitsstand gesichert (Hibernation). Bedienoberflächen: Da ein Betriebssystem auch für die Schnittstelle zum Benutzer zuständig ist, ist auch die benutzerfreundliche Gestaltung der Oberfläche ein Betriebssystem- Thema. Standardisierung: Ein Rechnerhersteller hat zu entscheiden, ob er sein Produkt mit einem proprietären Betriebssystem ausliefert, was eine hohe Kundenbindung, aber eine geringe Marktakzeptanz erwarten lässt, oder ob er ein allgemein verfügbares (standardisiertes) Betriebssystem verwendet, was eine erhöhte Konkurrenz und mögliche Austauschbarkeit befürchten lässt. Auf jeden Fall hat ein allgemein verfügbares Betriebssystem die Schwierigkeit, auch für spezielle Hardware ein performante Leistung zu bieten. Eine Schwierigkeit bei Betriebssystemen ist die in hohem Maße unvorhersagbare Art der Anforderungen, die an sie gestellt werden. [Han77]

9 Kapitel 2 Prozessor- und Prozessverwaltung Rumor has it that when they closed down the 7094 at MIT in 1973, they found a low-priority job that had been submitted in 1967 and had not yet been run. Peterson, Silberschatz Der allgemeine Teil dieses Kapitels definiert den Begriff Prozess und bezeichnet die Bestandteile von Prozessen. Es werden die verschiedenen Prozesszustände und Scheduling- Strategien eingeführt. Der UNIX-spezifische Teil verfeinert sowohl die möglichen Prozesszustände, als auch die Schedulingverfahren. Mit Systemaufrufen (system calls) können die Dienste des Betriebssystems von einem Programmierer in Anspruch genommen werden. Von den Systemaufrufen, die die Prozessverwaltung betreffen, werden die beiden Aufrufe fork() und exec() näher betrachtet, die zur Prozesserzeugung benutzt werden. Nicht eingegangen wird auf Prozessverwaltung unter Echtzeit-Bedingungen und in Multiprozessorsystemen. Das Thema Prozess-Synchronisation greift das nächste Kapitel auf. In der Vorlesung wird damit nur auf sogenannte monolithische Betriebssysteme eingegangen. Auf das Konzept der Mikrokernel-Betriebssysteme, wie es in den 80er Jahren von Mach [Zim93] eingeführt wurde, wird nicht eingegangen. 2.1 Grundlagen Die einfachste Definition des Begriffs Prozess ist: Ein Prozess ist ein in Ausführung befindliches Programm. Moderne Betriebssysteme erlauben Multitasking, d.h. mehrere Prozesse befinden sich gleichzeitig im System und werden von einem Prozessor (CPU) bedient. Der Prozessor schaltet dabei zwischen den einzelnen Prozessen hin und her, um die Illusion zu vermitteln, die Prozesse würden real gleichzeitig ablaufen. Ein Prozess besteht aus dem Speicherabbild (core image), d.h. den Programmanweisungen und Daten, die im Hauptspeicher liegen, der Registerbelegung und Verwaltungsinformationen, z.b. der bisher verbrauchten CPU-Zeit. 2-1

10 2-2 KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG Abbildung 2.1: Zustandsübergänge eines Prozesses Registerbelegung und Verwaltungsinformationen werden oft unter dem Begriff Prozess- Kontrollblock (PCB) zusammengefasst Prozesszustände und Zustandsübergänge Ein Prozess befindet sich zu einem Zeitpunkt in einem von mehreren Zuständen (states), siehe dazu das Zustandsübergangsdiagramm in Abbildung 2.1: aktiv (running) Der Prozess ist im Besitz des Prozessors. Im allgemeinen wird noch unterschieden, ob sich der Prozess im Benutzermodus (user mode, problem state) befindet oder im privilegierten Systemmodus (kernel mode, system state). bereit (ready) Der Prozess ist bereit fortzufahren, der Prozessor ist aber durch einen anderen Prozess belegt. blockiert (blocked, asleep) Der Prozess wartet auf ein Ereignis (event). Dieses Ereignis ist i.a. der Abschluß einer Ein- oder Ausgabe. Da E/A-Geräte um Größenordnungen langsamer sind als der Prozessor, lohnt es sich, den Prozessor einem anderen Prozess zuzuteilen. Zwischen den einzelnen Zuständen sind folgende Übergänge (transitions) möglich: bereit Prozessauswahl aktiv Die Entscheidung, welcher Prozess aus der Reihe der bereiten Prozesse als nächstes zur Ausführung kommen soll, trifft der Scheduler. Die eigentliche Vergabe des Prozessors an den ausgewählten Prozess übernimmt der Dispatcher. aktiv Ablauf der Zeitscheibe bereit Nach Ablauf einer Zeitscheibe (quantum) wird ein Unterbrechungssignal erzeugt, der Prozessor wird dem Prozess entzogen und der Prozess geht in den bereit-zustand über. aktiv auf Ereignis warten blockiert Der Prozess kann selbst explizit auf ein Ereignis warten, oder im Zuge der Abarbeitung der Ein-/Ausgabe wird auf ein Ereignis gewartet. Der Prozessor wird einem anderen Prozess zugeteilt.

11 2.1. GRUNDLAGEN A I I K H? A = K I = I J K C ) J M H J A E J A, K H? D I = J Abbildung 2.2: Konkurrierende Ziele beim Scheduling blockiert Ereignis eingetreten bereit Nach Eintritt eines Ereignisses überführt das Betriebssystem alle Prozesse, die auf dieses Ereignis gewartet haben, in den Zustand bereit. Moderne Betriebssysteme bezeichnet man daher auch als Ereignis-gesteuert (event driven) Scheduling: Ziele und Kriterien Die Entscheidung, an welche Stelle ein bereit gewordener Prozess in die Warteschlange bereiter Prozesse eingereiht wird, trifft der Scheduler anhand seiner Scheduling-Strategie. Das Ziel einer Scheduling-Strategie kann sein den Durchsatz der Anlage zu maximieren, die Antwortzeiten zu minimieren, Ressourcenauslastung zu maximieren, vorhersagbares Verhalten zu zeigen, geringstmöglichen Verwaltungsaufwand (overhead) zu benötigen, determiniert zu sein, d.h. zu garantieren, dass ein Prozess innerhalb endlicher Zeit abgearbeitet wird oder auch unter hoher Last sinnvolle Arbeit zu leisten, fair zu allen Benutzern (Prozessen) zu sein. Dabei ist es nicht möglich, alle Ziele gleichzeitig zu erreichen. Zum Beispiel konkurrieren die drei zuerst genannten Ziele (Abbildung 2.2). Sind Betriebsmittel gut ausgelastet, bilden sich vor ihnen Warteschlangen, die die Antwortzeiten beeinträchtigen. Für gute Antwortzeiten sind Ressourcen vorzuhalten, deren Auslastung dementsprechend schlecht ist. Analoges gilt für die Konkurrenz zwischen Antwortzeit-Minimierung und Durchsatz- Maximierung. Um einen hohen Durchsatz zu erreichen, sollten Aufträge möglichst unterbrechungsfrei ablaufen können. Gute Antwortzeiten verlangen komplexe Zuteilungsverfahren mit entsprechend hohem Verwaltungsaufwand, der zu Lasten des Durchsatzes geht. Kriterien, nach denen ein Scheduler arbeiten kann, sind:

12 2-4 KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG > A H A E J 9 = H J A I? D = C A = J E L + * ) >? E A H A H A N E J Abbildung 2.3: First Come - First Served (FCFS) Ressourcenbedarf des Prozesses: Erzeugt ein Prozess hauptsächlich Ein-/Ausgabeaufträge (I/O bound) oder ist er rechenintensiv (CPU bound)? Ist der Prozess ein Batchauftrag oder ist er interaktiv? bei Betriebssystemen mit Echtzeitanforderungen: Wie nahe ist die geforderte Reaktionszeit des Prozesses (deadline scheduling)? Wie hoch ist die vom Benutzer vergebene Priorität des Prozesses? Wie oft wurde der Prozess bis jetzt unterbrochen? Wieviel Rechenzeit benötigt der Prozess? Um die notwendigen Informationen für die Überprüfung dieser Kriterien zu erlangen, bieten sich die folgenden drei Methoden an: A priori Es werden vor Prozessstart Angaben vom Benutzer verlangt. Extrapolation Es wird aus dem Verhalten des Prozesses in der Vergangenheit auf das Verhalten in der Zukunft geschlossen. Post mortem Nach Prozessende werden Informationen für zukünftige Läufe des gleichen Programms gesammelt. Man unterscheidet Scheduling-Strategien danach, ob sie Vorrangunterbrechung (preemption) zulassen und ob sie mit Zeitscheibensteuerung (timer) arbeiten. In diesem Fall spricht man auch von preemptive multitasking.. Bei Vorrangunterbrechung wird einem Prozess der Prozessor entzogen, wenn ein Prozess mit höherer Priorität bereit wurde. Bei Zeitscheibensteuerung wird einem Prozess der Prozessor entzogen, wenn die Zeitscheibe abgelaufen ist. Prioritäten können statisch oder dynamisch sein. Dynamische Prioritäten spiegeln das vergangene Verhalten eines Prozesses wider. Findet weder Vorrangunterbrechung noch Zeitscheibensteuerung statt, spricht man auch von cooperative multitasking: Man verlässt sich darauf, dass kein Prozess die CPU für sich allein vereinnahmt, hofft also kooperatives Verhalten der Prozesse untereinander Beispiele für Scheduling-Strategien First Come - First Served (FCFS) Prozesse werden in der Reihenfolge, in der sie in den Zustand bereit übergehen, an das Ende einer Warteschlange vor dem Prozessor gestellt (Abbildung 2.3. Ein Prozess behält den Prozessor bis er ihn selbst wieder freigibt (durch Beendigung oder Übergang in den Zustand blockiert). FCFS arbeitet ohne Vorrangunterbrechung und Zeitscheibensteuerung.

13 , * 2.1. GRUNDLAGEN 2-5 > A H A E J 9 = H J A I? D = C A = J E L + * ) >? E A H A H A N E J A E J I? D A E > A Abbildung 2.4: Round Robin > A H A E J = J E L ) >? E A H A H A N E J 9 = H J A I? D = C A Abbildung 2.5: Shortest Job First Round Robin Prozesse werden in der Reihenfolge, in der sie in den Zustand bereit übergehen, an das Ende einer Warteschlange vor dem Prozessor gestellt (= FCFS, siehe Abbildung 2.4). Ein Prozess erhält ein Zeitquantum und behält den Prozessor bis er ihn selbst wieder freigibt (durch Beendigung oder Übergang in den Zustand blockiert) oder nach Ablauf des Zeitquantums eine Unterbrechung erfolgt (Zeitgeber). Im letzten Fall geht der Prozess in den Zustand bereit über und wird wie der an das Ende der Warteschlange gesetzt. Shortest Job First Die Warteschlange vor dem Prozessor ist nach Prozessgröße (gemessen z.b. in notwendigen CPU-Sekunden) sortiert (Abbildung 2.5). Kleine Prozesse werden vor großen Prozessen abgearbeitet. Es findet keine Vorrangunterbrechung oder Zeitscheibensteuerung statt. Das Verfahren hat zwei bemerkenswerte Eigenschaften: Es ist nicht deterministisch, d.h. es kann einem Prozess nicht garantiert werden, dass er in endlicher Zeit an die Reihe kommt, da ständig neue, kürzere Prozesse eintreffen können. Es minimiert die mittlere Wartezeit über alle Prozesse, sofern alle Prozesse am Anfang vorliegen und eingeplant werden können. Diese beiden sich auf den ersten Blick widersprechenden Eigenschaften erklären sich durch den Einsatz von Shortest Job First als Onlinealgorithmus (im ersten Fall) und Offlinealgorithmus (im zweiten Fall). Exkurs Onlinealgorithmen Dieser Abschnitt ist ein Exzerpt aus [Alb10].

14 , *, * KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG > A H A E J = J E L ) >? E A H A H A N E J 8 H H = C K J A H > H A? D K C Abbildung 2.6: Shortest Remaining Time Next >? E A H J > A H A E J A K = J E L ) >? E A H A H A N E J 9 = H J A I? D = C A Abbildung 2.7: Highest Response Ratio Next Während Offlinealgorithmen davon ausgehen, dass die zur Lösung einer Aufgabe benötigten Daten zu Beginn der Berechnung vorliegen, treffen bei Onlinealgorithmen Eingabedaten nach und nach im Laufe der Zeit ein. Immer, wenn neue Daten eintreffen, muss ein Onlinelagorithmus eine Antwort berechnen, ohne zukünftige Eingaben zu kennen. Beispiel Prozessorscheduling: Eine Folge von Prozessen ist auf mehreren Prozessoren zu verteilen, so dass alle Prozesse möglichst schnell abgearbeitet werden. Auf welchem Prozessor soll ein neu ankommender Prozess eingeplant werden, wenn die nachfolgenden Prozesse nicht bekannt sind? Um die Qualität eines Onlinealgorithmus zu bewerten, wird die kompetitive Analyse eingesetzt: Der Onlinealgorithmus wird verglichen mit einem optimalen Offlinealgorithmus, der alle Eingabedaten im Voraus kennt. Ein Onlinealgorithmus heißt c-kompetitiv, wenn für alle Eingaben seine berechnete Lösung nie schlechter als das c-fache der optimalen Lösung ist. Im Beispiel Prozessorscheduling legt ein möglicher Onlinealgorithmus einen neu eintreffenden Prozess auf den Prozessor mit der aktuell geringsten Last. Dieses Verfahren ist 2-kompetitiv. Shortest Remaining Time Next Abbildung 2.6: Die Warteschlange vor dem Prozessor ist nach Prozessgröße sortiert (= Shortest Job First). Einem Prozess wird der Prozessor entzogen, wenn ein kleinerer bereit wird. In diesem Fall wird der Prozess entsprechend seiner verbleibenden Größe in die Warteschlange einsortiert. Highest Response Ratio Next Bei diesem Verfahren wird nicht nur die Reihenfolge des bereit -Werdens und die Größe der Prozesse berücksichtigt, sondern auch, wie lange sie bereits in der Warteschlange gewartet haben (siehe Abbildung 2.7).

15 , GRUNDLAGEN 2-7 A E J I? D A E > A ) * + 9 = H J A I? D = C A 4 4 = J E L >? E A H A H A N E J 9 = H J A I? D = C A. 1. Abbildung 2.8: Multilevel Queues Die Priorität eines Prozesses wird ermittelt durch das Verhältnis von Wartezeit in der Warteschlange zu Prozessgröße (Bedienzeit): Priorität = Wartezeit + Bedienzeit Bedienzeit Je größer dieses Verhältnis, desto eher gelangt der Prozess zur Ausführung. Das Verfahren arbeitet ohne Vorrangunterbrechung und Zeitscheibensteuerung. Multilevel Queues Es wird nicht eine Warteschlange, sondern es werden mehrere Warteschlangen vor dem Prozessor verwaltet (Abbildung 2.8). Dies bietet die Möglichkeit, Prozesse entsprechend eines Kriteriums (z.b. interaktiv / batch) in eine der Warteschlangen einzuordnen und nach einer dem Kriterium angemessenen Scheduling-Strategie zu bedienen (z.b. Round Robin bzw. FCFS). Zusätzlich zu den Scheduling-Strategien der einzelnen Warteschlangen muß noch eine Scheduling-Strategie für die Bedienungsreihenfolge der Warteschlangen untereinander festgelegt werden. Multilevel Feedback Queues Die Arbeit mit Multilevel Feedback Queues ist eine Möglichkeit, dynamische Prioritäten zu implementieren (Abbildung 2.9). Prozesse betreten immer auf der obersten Stufe das Warteschlangen-System. Hier haben sie hohe Priorität (die Warteschlange wird bevorzugt abgearbeitet), aber nur eine kleine Zeitscheibe. Wird ein Prozess durch die Zeitscheibensteuerung unterbrochen, wird er in die nächstniedrigere Warteschlange eingereiht, hier erhält er eine größere Zeitscheibe, wird aber mit niedrigerer Priorität bedient. Rechenintensive Prozesse gelangen in die unterste Warteschlange, wo sie mit niederster Priorität Round Robin bearbeitet werden. Zu diesem Verfahren sind mehrere Varianten denkbar: Variante 1 Ein Prozess kehrt auf die Ebene des Warteschlangensystems zurück, die er bei Blockierung verlassen hat. Variante 2 Ein Prozess, der die CPU freiwillig abgibt, steigt nach dem Übergang in den bereit-zustand eine Ebene auf.

16 , KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG 2 H E H E J J ) * + = J E L 9 = H J A I? D = C A = H J A I? D = C A >? E A H A H A N E J A E J I? D A E > A 9 = H J A I? D = C A 4 4 Abbildung 2.9: Multilevel Feedback Queues 2.2 UNIX Aufbau eines UNIX-Prozesses Das Speicherabbild eines Prozesses besteht - vereinfacht dargestellt - aus dem Register- Kontext, der sich u.a. zusammensetzt aus dem Programm-Zeiger, der angibt, welche Anweisung des Programms als nächstes ausgeführt werden wird (program counter) dem Prozessorstatus-Register, das den Zustand des Prozessors in Bezug auf den Prozess beschreibt. dem Stack-Zeiger, der die aktuelle Adresse im Benutzer- oder Kernel-Stack enthält. Weiter enthält das Speicherabbild die folgenden Elemente (Abbildung 2.10): Textsegment des Prozesses Datensegment und Benutzer-Stack (user stack) Der System-Kontext besteht aus dem Prozesstabelleneintrag der Segmenttabelle (pregion table) und den Seitentabellen des Prozesses. Die Prozesstabelle enthält den Zustand des Prozesses die Prozessgröße

17 2.2. UNIX 2-9 Abbildung 2.10: Speicherabbild eines Prozesses die Benutzerkennung (uid) die Prozesskennung (pid) eine Ereignisbeschreibungsnummer (event descriptor), falls der Prozess auf ein Ereignis wartet Schedulinginformationen Zeitgeber (timers) für Laufzeitmessung, Accounting und Wecker (alarm) Angaben, die die gewünschte Reaktion auf Signale beschreiben Platz für Parameterübergabe an Systemaufrufe Angaben zum aktuellen Directory die Prozessdateitabelle (siehe dazu das Kapitel Dateisysteme) Prozessbegrenzungen, wie z.b. die maximale Prozessgröße UNIX-Scheduling Beispiel, welche Zustände ein typischer Prozess durchläuft (Abbildung 2.11): 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, geht der Prozess in den Zustand Bereit über. 3. Irgendwann kommt dieser Prozess zur Ausführung und geht in den Systemmodus über, in dem er seinen Teil des fork()-systemaufrufs beendet.

18 2-10 KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG Abbildung 2.11: Zustandsübergänge eines UNIX-Prozesses 4. Nach Beendigung des Systemaufrufs geht der Prozess in den Benutzermodus über und arbeitet darin weiter. 5. Nach einiger Zeit wird der Prozessor durch den Zeitgeber unterbrochen (clock tick) und der Prozess geht wieder in den Systemmodus über, um diese Unterbrechung zu bedienen. Unterbrechungen (Interrupts) werden im Kontext des gerade aktiven Prozesses behandelt. (Unabhängig davon, ob eine Unterbrechung etwas mit dem aktiven Prozess zu tun hat oder nicht). 6. Nachdem der Interrupt-Handler die Unterbrechung abgearbeitet hat, wird vom Kern entschieden, ob ein anderer Prozess zur Ausführung kommen soll. Ist dies der Fall, geht unser Prozess in den Zustand Entzogen über und ein anderer Prozess wird aktiv. Einem Prozess im Systemmodus kann der Prozessor erst unmittelbar vor Rückkehr in den Benutzermodus durch Vorrangunterbrechung (preemption) entzogen werden. 7. Zurück zu unserem Prozess: Nach einer Weile kommt er wieder an die Reihe und geht in den Benutzermodus über. 8. Führt nun der Prozess einen Systemaufruf aus, geht er wieder in den Systemmodus über. 9. Angenommen, die Erledigung des Systemaufrufs verlangt einen Zugriff auf Platte und der Prozess muß auf die Beendigung der Ein-/Ausgabe warten: Er geht dann in den Zustand Blockiert über und ein anderer Prozess kann zur Ausführung kommen. Ein Prozess, der im Systemmodus auf ein Ereignis wartet, wird von einem anderen Prozess verdrängt.

19 2.2. UNIX Nach einer Weile, in der andere Prozesse zur Ausführung kommen, wird der Kern durch eine Unterbrechung (I/O-Interrupt) informiert, dass die Ein-/Ausgabe abgeschlossen ist. Aufgabe der Unterbrechungsbehandlungsroutine (Interrupt-Handler) ist es, alle Prozesse, die auf dieses Ereignis gewartet haben, aufzuwecken, d.h. in den Zustand Bereit zu bringen. 11. Nun kann der Beispielprozess wieder aktiv werden (Systemmodus) und den Systemaufruf beenden. 12. Danach kehrt er in den Benutzermodus zurück. 13. Will sich ein Prozess beenden, führt er den Systemaufruf exit() aus, geht also in den Systemmodus. 14. Der letzte Zustand eines Prozesses ist Zombie, in dem nur noch Rückgabewerte für den Vaterprozess aufbewahrt werden. Von UNIX wird die Prozessorvergabe durch dynamische Prioritäten gesteuert. Die Prioritäten bestimmen sich wie folgt: Wenn ein Prozess auf ein Ereignis wartet, erhält er eine Priorität, mit der er bei Eintreten des Ereignisses bereit wird. Wenn ein Prozess aus dem Systemmodus in den Benutzermodus zurückkehrt, wird seine Priorität neu berechnet. Die Prioritäten aller Prozesse werden jede Sekunde neu berechnet. Die Priorität setzt sich zusammen aus der höchsten Priorität, die ein Benutzerprozess erreichen kann (base level), der vom Benutzer für diesen Prozess vergebenen Priorität (nice) und der verbrauchten CPU-Zeit in clock ticks (CPU-count). Bei jedem clock tick wird der CPU-count des aktiven Prozesses erhöht: CPU-count = CPU-count + 1 Bei jeder Neuberechnung der Priorität wird zunächst das Rechenzeitkonto etwas entlastet: Die Priorität ergibt sich dann zu: CPU-count = CPU-count/2 Priorität = CPU-count/2 + base level + nice UNIX erlaubt einen Prozesswechsel (context switch), wenn ein Prozess auf ein Ereignis wartet, oder ein Prozess sich beendet, oder ein Prozess vom Systemmodus in den Benutzermodus zurückkehrt (nach einem Systemaufruf oder einer Unterbrechungsbehandlung), ein anderer Prozess mit höherer Priorität aber bereit geworden ist.

20 2-12 KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG Abbildung 2.12: Stack bei einem Systemaufruf Prozessnahe Algorithmen im Betriebssystemkern Abarbeitung eines Systemaufrufs Für alle Systemaufrufe gibt es einen gemeinsamen Einstieg in den Betriebssystemkern (Abbildung 2.12). Algorithmus syscall ( in: Nummer des Systemaufrufs, out: Rueckgabewert des Systemaufrufs) { Wechsle in Systemmodus Suche Eintrag in Systemaufruf-Tabelle Bestimme Anzahl Parameter Kopiere Parameter aus Benutzerbereich Kopiere Parameter in Systembereich Rufe Behandlungsroutine auf Kehre in Benutzermodus zurueck return Rueckgabewert des Systemaufrufs } Diese Zentralisierung ist zum einen sinnvoll, damit der kritische Moment des Wechsels in den Systemmodus nur an einer Stelle im Betriebssystem-Code erscheint, zum anderen wird durch die Systemaufruf-Tabelle eine n:m-abbildung zwischen Systemaufrufen und Systemaufruf-Behandlungsroutinen möglich: Es gibt sowohl den Fall, dass mehrere Systemaufrufe auf die gleiche Behandlungsroutine abgebildet werden, als auch ein Systemaufruf (mit unterschiedlichen Parametern) mehrere Behandlungsroutinen verwendet. Abarbeitung einer Unterbrechung Algorithmus inthand { push (aktuelle Prozessumgebung) Bestimme Sender und Art der Unterbrechung aus Interrupt Vektor Rufe Routine zur Unterbrechungsbehandlung pop (letzte Prozessumgebung) }

21 2.2. UNIX 2-13 Prozesswechsel... if (save_context ()) { /* gibt TRUE zurueck, speichert FALSE */ Waehle neuen Prozess /* dispatch */ resume_context (neuer Prozess) /* Diese Zeile wird nie erreicht */ } /* Prozess faehrt hier fort */ Systemaufrufe, Prozesse betreffend exec() - zu einem anderen Programm werden. fork() - einen neuen Prozess erzeugen. wait() - auf Ende eines Sohnprozesses warten. exit() - Prozess beenden. getuid() - reale Benutzerkennung feststellen. geteuid() - effektive Benutzerkennung feststellen. getpid() - Prozessnummer feststellen. getppid() - Prozessnummer des Vaters feststellen signal() - Signal abfangen. kill() - Signal senden. alarm() - Wecker stellen. sleep() - eine Weile schlafen legen. chdir() - das aktuelle Verzeichnis wechseln. brk() - Größe des Datensegments verändern. nice() - Priorität verändern. Exec() und fork() sind die beiden Systemaufrufe, mit denen UNIX-Prozesse erzeugt und Programme ausgeführt werden. Mit exec() erhält ein Prozess die Anweisung, statt seines bisherigen Programms ein neues Programm auszuführen. Für diesen Prozess werden also das Text-, Daten- und Stacksegment durch die des neuen Programms ersetzt. Nach einem exec() behält der Prozess u.a. die geöffneten Dateikennzahlen die Prozespriorität die Prozessnummer (PID)

22 2-14 KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG die Vaterprozessnummer (PPID) das aktuelle Dateiverzeichnis das Root-Dateiverzeichnis Beim umgewandelten Prozess verändert sich u.a. die Signalbehandlung: Sie wird auf die Werte der Voreinstellung zurückgesetzt. Beispielprogramm: #include <stdio.h> main() { if (execl("/bin/date", "date", 0) == -1) { perror ("/bin/date"); return 1; } printf ("Dies wird nie ausgegeben\n"); return 0; } Hinweis: Es gibt eine ganze exec()-systemaufruf- Familie, die sich untereinander durch die Art der Parameterübergabe unterscheiden, so werden dem execl()-systemaufruf die Parameter als Liste übergeben, die mit einer 0 (Null) abgeschlossen wird. Mit fork() erhält ein Prozess die Anweisung, einen Sohnprozess zu erzeugen, der eine genaue Kopie seiner selbst ist (Clone). Nach einem fork() erhält der Sohnprozess vom Vater u.a. Kopien der folgenden Informationen: Umgebung Einstellung für Signalbehandlung Priorität aktuelles Dateiverzeichnis Root-Dateiverzeichnis Prozessgrenzen Prozessdateitabelle Der Sohnprozess unterscheidet sich vom Vater u.a. in der Prozessnummer der Vaterprozessnummer Beispielprogramm:

23 2.2. UNIX 2-15 Abbildung 2.13: Ablauflogik einer Shell #include <stdio.h> main() { switch (fork()) { case -1: perror ("fork"); return 1; case 0: printf ("Sohnprozess\n"); break; default: printf ("Vaterprozess\n"); break; } return 0; } Mit Hilfe der beiden Systemaufrufe fork() und exec() lassen sich neue Prozesse erzeugen und neue Programme ausführen. Dies ist im Kern die Funktionalität einer Shell, der Kommandozeilen-orientierten UNIX-Benutzeroberfläche (Abb. 2.13).

24 2-16 KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG 2.3 Übungen Übung 1 Spielen Sie Scheduler und verwalten Sie die bereit-warteschlange für die folgenden Prozesse nach den Vergabestrategien 1. Round Robin (mit einer 2 Einheiten CPU-Zeit großen Zeitscheibe) 2. Shortest Job First 3. Shortest Remaining Time Next 4. Highest Response Ratio Next Die Prozesse: Prozess A: Wird zum Zeitpunkt 0 bereit und benötigt 6 Einheiten CPU-Zeit. Prozess B: Wird zum Zeitpunkt 1 bereit, benötigt 2 Einheiten CPU-Zeit, wartet eine Zeiteinheit lang auf ein Ereignis, wird dann wieder bereit und benötigt dann noch 1 Einheit CPU-Zeit. Prozess C: Wird zum Zeitpunkt 3 bereit und benötigt 1 Einheit CPU-Zeit. Beispiel für FCFS: Zeitpunkt Warteschlange aktiv Kommentar 0 A A wird sofort aktiv 1 B A B wird bereit, A aktiv 2 B A 3 C B A C wird bereit, A aktiv 4 C B A 5 C B A 6 C B A fertig, B wird aktiv 7 C B 8 C B wartet, C wird aktiv 9 B C fertig, B wieder aktiv Übung 2 In einem UNIX-System sind nur die Prozesse A, B und C. Sie sind zum Zeitpunkt 0 bereit mit der Priorität 60 (= base level, nice = 0). Der Zeitgeber unterbricht 60 mal in der Sekunde. Keiner der Prozesse setzt Systemaufrufe ab. Es ergibt sich der Ablauf in der Abbildung.

25 2.3. ÜBUNGEN 2-17 Prozess A Prozess B Prozess C Zeit Priorität CPU-Zähler Priorität CPU-Zähler Priorität CPU-Zähler Aufgabe: Nachdem im oberen Modell Prozess B seine ersten 30 clock ticks erhalten hat, muß eine Unterbrechung behandelt werden. Die Dauer der Behandlung sei vernachlässigbar. Führen Sie das Prozess-Scheduling bis zum Zeitpunkt 5 weiter. Übung 3 Gegeben sind die folgenden Prozesse: PID PPID Name 1 1 init syslogd sh mysqld mysqld mysqld inetd httpd httpd httpd httpd kdeinit bash vi

26 2-18 KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG Stellen Sie die Vater-Sohn-Beziehungen zwischen den Prozessen in einem Baum dar und geben Sie die Folge von fork()- und exec()-systemaufrufen an, die mindestens notwendig war, um diese Prozess-Hierarchie zu erzeugen.

27 2.3. ÜBUNGEN 2-19

28 2-20 KAPITEL 2. PROZESSOR- UND PROZESSVERWALTUNG

29 Kapitel 3 Prozess-Synchronisation Befinden sich mehrere Prozesse in einem System, geht man i.a. davon aus, dass sie völlig unabhängig sind. Es kann aber der Fall eintreten, dass Prozesse miteinander konkurrieren (z.b. beim Zugriff auf Ressourcen) oder kooperieren (bei der Problemlösung). Im allgemeinen Teil werden überwiegend die Aspekte der Synchronisation von Prozessen beleuchtet. 3.1 Grundlagen Parallele Prozesse sind Prozesse, die zur selben Zeit existieren. Sie können völlig unabhängig voneinander arbeiten oder sie können asynchron sein, d.h. sie benötigen von Zeit zu Zeit Synchronisation. Parallele Prozesse können auf verschiedenen Ebenen auftreten: Im Betriebssystem-Kern oder innerhalb eines Anwendungssystems Gegenseitiger Ausschluss Beispiel: Auf einem http-server sollen die Aufrufe einer Seite gezählt werden. Jeder Aufruf führt zur (eventuell parallelen) Ausführung eines Programms. Der Zähler wird als globale Variable in einer Datei geführt. Bei jeder Zählung werden die folgenden Schritte durchlaufen: LOAD PAGECOUNT ADD 1 STORE PAGECOUNT Siehe Abbildung 3.1. Angenommen, PAGECOUNT steht auf Prozess P1 führt LOAD und ADD aus, verliert aber den Prozessor vor dem STORE durch Ablauf der Zeitscheibe. Prozess 2 führt alle drei Operationen aus, setzt also PAGECOUNT auf Kommt Prozess 1 wieder an die Reihe, führt er nur noch STORE aus und setzt damit PA- GECOUNT ebenfalls auf Ergebnis: Es ist eine Zeile verlorengegangen (lost update). Ursache ist die unkontrollierte Änderung einer globalen Variablen. Hängt das Ergebnis von Prozessen von deren relativer Geschwindigkeit ab, spricht man von Wettlaufbedingungen (race conditions) zwischen Prozessen. Dieses Problem kann gelöst werden, indem einem Prozess für die Dauer der Manipulation exklusiver Zugriff auf die globale Variable gegeben wird. Alle anderen Prozesse, die in dieser Zeit auf die Variable zugreifen wollen, müssen warten. Hat der erste Prozess seine Operation abgeschlossen, kann einer der wartenden Prozesse fortfahren. Damit ist gewährleistet, dass immer nur ein Prozess zu einer Zeit die globale Variable benutzt. Dies nennt man gegenseitigen Ausschluss (mutual exclusion). 3-1

30 3-2 KAPITEL 3. PROZESS-SYNCHRONISATION Abbildung 3.1: Beispiel einer Wettlaufbedingung Kritische Abschnitte Greift ein Prozess auf eine globale, schreibbare Variable zu, sagt man, dass er sich in einem kritischen Abschnitt (critical section, critical region) befindet. Um korrektes Verhalten zu erreichen, muss sichergestellt werden, dass, wenn sich ein Prozess in seinem kritischen Abschnitt befindet, kein anderer Prozess sich in einem kritischen Abschnitt befindet. (Zumindest in keinem kritischen Abschnitt, in dem die gleiche globale Variable manipuliert wird.) Andere Prozesse müssen warten und können ihren kritischen Abschnitt erst betreten, wenn der erste Prozess diesen verlassen hat (siehe Abbildung 3.2). Abbildung 3.2: Kritischer Abschnitt und gegenseitiger Ausschluss Semaphore Eine Möglichkeit, wie sich Prozesse exklusiven Zugriff auf kritische Abschnitte sichern können, ist das Setzen von Semaphoren. Semaphore wurden vom Niederländer E. W. Dijkstra eingeführt. Ein Semaphor ist eine Synchronisationsvariable, auf der zwei unun-

31 3.1. GRUNDLAGEN 3-3 terbrechbare Operationen definiert sind: Sei S ein (binärer) Semaphor. P(S) wartet, bis S FALSE wird und setzt S dann auf TRUE. P (S) { if (S == TRUE) sleep (Event: S == FALSE); S = TRUE; } P steht für das niederländische passeer. V(S) setzt S auf FALSE. V (S) { S = FALSE; wakeup (Event: S == FALSE); } V steht für das niederländische verlaat. Den Mechanismus zum gegenseitigen Ausschluss unter Benutzung von Semaphoren illustriert Abbildung 3.3. Abbildung 3.3: Schutz eines kritischen Abschnitts durch einen Semaphor Das Erzeuger-Verbraucher-Problem Ein Prozess (Schreiber, Erzeuger, producer) erzeugt Objekte, die über einen gemeinsamen Pufferbereich einem zweiten Prozess (Leser, Verbraucher, consumer) übergeben werden (siehe Abbildung 3.4). Die Manipulation des Puffers ist als kritischer Abschnitt zu betrachten. Darüberhinaus ist zu verhindern, dass der Erzeuger in einen vollen Puffer schreibt oder dass ein Verbraucher aus einem leeren Puffer liest. Für den Schutz des kritischen Abschnitts genügt ein binärer Semaphor. Für die Synchronisation am vollen bzw. leeren Puffer können allgemeine Semaphore eingesetzt werden. Allgemeine - oder zählende - Semaphore haben die folgende Semantik: P(S)

32 3-4 KAPITEL 3. PROZESS-SYNCHRONISATION { } if (S == 0) sleep (Event: S > 0); S --; V(S) { S ++; wakeup (Event: S > 0); } I A = F D H K J A N B = I A I A = F D H L I E A B 2 K B B A H I A = F D H A A H - H A K C A H M D E A J H K A A H A K C A 2 L 2 K J A N A E = C A H 8 K J A N 8 A A H 8 A H > H = K? D A H M D E A J H K A 2 A A H 2 K J A N = K I = C A H 8 K J A N 8 L L A H > H = K? D A A A H L Abbildung 3.4: Das Erzeuger-Verbraucher-Problem Klassische Probleme der Prozess-Synchronisation Neben dem Erzeuger-Verbraucher-Problem gibt es eine ganz Reihe weiterer Probleme, die unter mehr oder weniger launiger Verkleidung praktische Anwendungen enthalten. Das Leser-Schreiber-Problem: Auf einen Datenbereich sind beliebig viele Leser, aber nur ein Schreiber zugelassen. Ein Schreiber, der zugreifen möchte, muss darauf warten, dass alle Leser den Datenbereich verlassen haben. ([Tan03], S. 145) 1. Leser-Schreiber-Problem: Nachdem ein Schreiber auf den Zugriff wartet, können weiter neue Leser auf den Datenbereich zugreifen. 2. Leser-Schreiber-Problem: Nachdem ein Schreiber auf den Zugriff wartet, werden keine neuen Leser mehr auf den Datenbereich zugelassen.

33 3.1. GRUNDLAGEN 3-5 Das Problem der wandernden Affenherden: Wandernde Affen wollen ein Tal überqueren, über das ein Seil gespannt ist. Zu einer Zeit kann dieses Seil nur in einer Richtung benutzt werden. Es kommen unregelmäßig Affen an beiden Seiten des Seils an und wollen das Tal überqueren. Das Problem des schlafenden Friseurs: Ein Friseur hat einen Friseurstuhl und mehrere Stühle in seinem Wartezimmer. Hat der Friseur keine Kunden, schläft er. Kommt ein erster Kunde setzt er sich auf den Friseurstuhl, der Friseur wacht auf und beginnt seine Arbeit. Kommen weitere Kunden setzen sie sich in das Wartezimmer. [Tan03], S. 146 Das Problem der speisenden Philosophen: Fünf Philosophen setzen sich zum Essen an einen runden Tisch. Rechts neben jedem Teller liegt eine Gabel. Zum Essen benötigt ein Philosoph aber eine linke und eine rechte Gabel. [Tan03], S Implementierung von Semaphoren Das Problem des gegenseitigen Ausschlusses wird durch die Einführung von Semaphoren zunächst nur verlagert: Von der Anwendung in das Betriebssystem. Prozesse, die gleichzeitig P- oder V-Operationen ausführen wollen, müssen synchronisiert werden. Ein Semaphor ist also selbst ein kritischer Abschnitt. Bei Einzelprozessorsystemen genügt es, für die Dauer der Semaphor-Operation keine Unterbrechungen zuzulassen und damit auch keinen Prozesswechsel. P(S) { spil (6); /* set processor interrupt level to 6 */ if (S == TRUE) sleep (Event: S == FALSE); /* context switch */ S = TRUE; spil (0); /* reset interrupt level to 0 */ } spil... set processor interrupt level V(S) { spil (6); S = FALSE; wakeup (Event: S == FALSE); spil (0); } Bei Multiprozessorsystemen genügt dieses Verfahren nicht mehr, da Unterbrechungen zeitgleich an mehreren Prozessoren auftreten können. Bei eng gekoppelten Prozessoren sieht eine Lösung die Verwendung einer Maschineninstruktion wie Test-and-Set (TSTS) vor, die atomar den Wert einer Speicherstelle liest und diese Speicherstelle gleichzeitig mit einem festen Wert überschreibt. TSTS (b) gibt den Wert von b zurück und setzt b auf TRUE: %S

34 3-6 KAPITEL 3. PROZESS-SYNCHRONISATION TSTS (b) { %S rc = b; %S b = TRUE; %S return rc; %S } %S Damit ist die folgende Implementierung mit Hilfe von aktivem Warten (busy-wait) möglich: P(S) { do rc = TSTS (S_lock); while (rc == TRUE); S --; if (S >= 0) { S_lock = FALSE; return; } append_to_queue (this); S_lock = FALSE; sleep (); return; } Verklemmungen Die Lösung des Problems der Prozesssynchronisation wird auf Kosten eines neuen Problems erkauft: Können Prozesse innerhalb eines kritischen Abschnitts Zugang zu weiteren kritischen Abschnitten anfordern, kann es zu einer Verklemmung (deadlock) kommen. Ein Prozess befindet sich in einer Verklemmung, wenn er auf ein Ereignis wartet, das nie eintreten wird. Es gibt vier notwendige Bedingungen für eine Verklemmung: Gegenseitiger Ausschluss (mutual exclusion): Prozesse fordern und erhalten exklusive Kontrolle über benötigte Ressourcen. Kein Betriebsmittelentzug (no preemption): Ressourcen, die einem Prozess bereits gegeben worden sind, können ihm nicht mehr genommen werden. Warten: Prozesse belegen bereits Ressourcen exklusiv, während sie auf die Zuteilung weiterer Ressourcen warten. Geschlossener Wartegraph (circular wait): Es besteht eine geschlossene Kette von Prozessen, die jeweils auf eine Ressource des Nachfolgers warten. (siehe Abbildung 3.5.) Diese notwendigen Bedingungen sind ebenfalls hinreichend, wenn es von jeder der betroffenen Ressourcen nur ein Exemplar gibt.

35 3.1. GRUNDLAGEN 3-7 Abbildung 3.5: Ein geschlossener Wartegraph Maßnahmen gegen Verklemmungen Maßnahmen gegen Verklemmung fallen in drei Kategorien: Verhindern von Verklemmungen (deadlock prevention) Vermeiden von Verklemmungen (deadlock avoidance) Erkennen und Auflösen von Verklemmungen Um Verklemmungen zu verhindern, genügt es, eine der vier notwendigen Bedingungen nicht zuzulassen: Mehrfache Vergabe einer Ressource (kein gegenseitiger Ausschluss): Dies kann man i.a. nicht durchführen, geht es doch gerade um Synchronisation vor kritischen Abschnitten. Betriebsmittelentzug (preemption): Ein Prozess, der auf die Zuteilung einer Ressource warten muss, gibt vorher alle anderen Ressourcen frei, die er bisher kontrolliert hat. Alles oder Nichts (kein Warten): Ein Prozess fordert alle benötigten Ressourcen auf einmal an. Entweder sie werden ihm alle gegeben oder keine. Diese Alternative hat erhöhten Ressourcenverbrauch zur Folge. Ferner können Prozesse verhungern (indefinite postponement). Lineare Ordnung der Ressourcen (kein geschlossener Wartegraph, siehe Abbildung 3.6): Alle Ressourcen sind durchnumeriert. Ein Prozess, der die Ressource Nr. n besitzt, darf nur noch Ressourcen mit Nr. > n anfordern. Durch dieses Verfahren kann kein zyklischer Wartegraph entstehen. Das bekannteste Verfahren zur Vermeidung von Verklemmungen ist der sogenannte Bank- Algorithmus. Der Name stammt von der Analogie zu einer Bank, die bei der Kreditvergabe ähnlich vorgehen sollte, um ihre Liquidität sicherzustellen. Ein zentraler Begriff bei diesem Verfahren ist der des sicheren Zustands der Betriebsmittelvergabe. Ein Zustand der Betriebsmittelvergabe heißt sicher, wenn das Betriebssystem garantieren kann, dass alle Aufträge beendet werden können. Der Bank-Algorithmus besteht nun darin, nur Übergänge in sichere Zustände zuzulassen. Voraussetzung für dieses Verfahren ist, dass die Prozesse ihren maximalen Ressourcenbedarf (ihren Kreditrahmen ) im vorhinein angeben.

36 3-8 KAPITEL 3. PROZESS-SYNCHRONISATION Abbildung 3.6: Lineare Anordnung von Ressourcen 12 gleichartige Ressourcen (z.b. Bandlaufwer- Beispiel für einen sicheren Zustand: ke) stehen zur Verfügung. Benutzer vergeben max. Bedarf alfred 1 4 berta 4 6 caesar 5 8 In diesem Zustand sind also noch 2 Ressourcen verfügbar. Der Zustand ist sicher, da diese zwei Ressourcen an berta vergeben werden können, ihr Prozess sich damit beenden kann und mit den danach frei werdenden Ressourcen die anderen Bedarfe befriedigt Beispiel für einen unsicheren Zustand: Der folgende Zustand, der durch Zuteilung von einer Ressource an caesar aus dem vorigen hervorgegangen ist, ist unsicher, da kein Prozess durch die verbliebene eine Ressource seinen maximalen Bedarf befriedigen kann und daher eine Verklemmung eintreten kann. Benutzer vergeben max. Bedarf alfred 1 4 berta 4 6 caesar 6 8 Dieses Verfahren ist auch erweiterbar auf mehrere Betriebsmittel unterschiedlichen Typs. Das Verfahren besitzt die folgenden Nachteile: Anzahl der Benutzer und Betriebsmittel ist fix. Der maximale Bedarf muss im voraus gemeldet werden. Der Algorithmus garantiert nur, dass Aufträge in endlicher Zeit bedient werden, wenn Betriebsmittel auch in endlicher Zeit zurückgegeben werden.

37 3.2. ÜBUNGEN 3-9 Das Verfahren zur Erkennung und Auflösung von Verklemmungen untersucht den Allokierunsgraphen auf Zyklen und bricht entstandene Zyklen auf, z.b. durch Abbruch eines der beteiligten Prozesse. Dieses Verfahren wird häufig in Datenbankmanagementsystemen angewendet, in denen Verklemmungen durch den Abbruch einer Transaktion (Rollback) aufgelöst werden. Umgang mit Semaphoren Die Programmierung mit Semaphoren ist anspruchsvoll, da oftmals P- und V-Operationen in unterschiedlichen Prozessen liegen. die Granularität der kritischen Abschnitte von Bedeutung ist. Ist die Granularität zu groß, sinkt die mögliche Parallelität. Ist die Granularität zu klein, sinkt die Performance durch häufige Sperranforderungen und steigt die Gefahr von Verklemmungen. Bei der Programmierung mit Semaphoren sind einige Fehlermöglichkeiten zu vermeiden: Einführung von Wartestellen in kritischen Abschnitten. Verklemmung durch falsche Reihenfolge von P-Operationen. Kritische Abschnitt nicht vollständig abgedeckt. Semaphor nicht initialisiert. P-Operation vergessen. V-Operation vergessen. Es wurden daher andere Synchronisationsmechanismen vorgeschlagen. Am bekanntesten dürften Monitore sein. Bei einem Monitor wird in einem Aufruf die Synchronisation mit dem kritischen Abschnitt zusammengefasst. Dadurch werden einfache Programmierfehler, wie z.b. das Vergessen einer P-Operation, ausgeschaltet. 3.2 Übungen Übung 1: Erzeuger-Verbraucher Problem Was kann passieren, wenn im Verbraucherprozess die P-Operationen vertauscht werden (siehe Abbildung 3.7)? Übung 2 Benutzen Sie Semaphore, um die Arbeitsweise eines Automaten, der ein Produkt verkauft, zu simulieren (Abbildung 3.8). Der Automat arbeitet intern mit zwei Prozessen: Ein Prozess nimmt das Geld entgegen und verfolgt die eingeworfene Geldmenge, der andere Prozess gibt die Ware und das Wechselgeld aus, sobald der Ausgabeknopf gedrückt wird. Wird zuwenig Geld eingeworfen oder ist keine Ware mehr im Automaten, soll die gesamte eingeworfene Geldmenge zurückgegeben werden.

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

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

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

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

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012 Übung zu Grundlagen der Betriebssysteme 7. Übung 27.11.2012 Threads Thread (Faden des (Kontrollflusses)): ist ein sequentieller Abarbeitungsablauf (Kontrollfluss) innerhalb eines Prozesses. Umfasst ein

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

Lösung von Übungsblatt 8

Lösung von Übungsblatt 8 Betriebssysteme (SS201) Lösung von Übungsblatt 8 Aufgabe 1 (Unterbrechungen) 1. Was sind Interrupts? Interrupts sind externe Unterbrechungen. Sie werden durch Ereignisse außerhalb des zu unterbrechenden

Mehr

CPU-Scheduling - Grundkonzepte

CPU-Scheduling - Grundkonzepte CPU-Scheduling - Grundkonzepte Sommersemester 2015 Seite 1 Gesamtüberblick 1. Einführung in Computersysteme 2. Entwicklung von Betriebssystemen 3. Architekturansätze 4. Interruptverarbeitung in Betriebssystemen

Mehr

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

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

Mehr

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

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

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

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

Mehr

B.5 Prozessverwaltung B.5. Prozessverwaltung. 2002 Prof. Dr. Rainer Manthey Informatik II 1

B.5 Prozessverwaltung B.5. Prozessverwaltung. 2002 Prof. Dr. Rainer Manthey Informatik II 1 Prozessverwaltung Prozessverwaltung 2002 Prof. Dr. Rainer Manthey Informatik II 1 Prozesse Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) ) von einem Rechner abgearbeitet.

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 I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

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

Mehr

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse) 5 CPU-Scheduling Im folgenden wird von Threads gesprochen. Bei Systemen, die keine Threads unterstützen, ist der einzige "Thread" eines Prozesses gemeint. Früher wurde dieser Thread synonym mit dem Begriff

Mehr

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet.

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet. Prozessverwaltung Prozesse Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet. Prozesse sind Abfolgen von Aktionen, die unter Kontrolle

Mehr

In diesem Kapitel will ich die Grundlagen legen, die für das Verständnis von Mac OS X hilfreich sind.

In diesem Kapitel will ich die Grundlagen legen, die für das Verständnis von Mac OS X hilfreich sind. 11 In diesem Kapitel will ich die Grundlagen legen, die für das Verständnis von Mac OS X hilfreich sind. Unterschiede zu anderen Systemen Abb. 2 1 Die Grundarchitektur Diese Beschreibung von Mac OS X ist

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

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

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

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre

Mehr

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

9 Verteilte Verklemmungserkennung

9 Verteilte Verklemmungserkennung 9 Verteilte Verklemmungserkennung 9.1 Grundlagen Für die Existenz einer Verklemmung notwendige Bedingungen Exklusive Betriebsmittelbelegung Betriebsmittel können nachgefordert werden Betriebsmittel können

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

Prozessor (CPU, Central Processing Unit)

Prozessor (CPU, Central Processing Unit) G Verklemmungen G Verklemmungen Einordnung: Prozessor (CPU, Central Processing Unit) Hauptspeicher (Memory) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices) externe Schnittstellen (Interfaces) Hintergrundspeicher

Mehr

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation Inhaltsverzeichnis Systemprogrammierung - Kapitel 2 Prozessverwaltung 1/21 2.1 Was ist ein Prozess? Definition Prozesszustände Prozesskontrollblöcke 2.4 Thread-Systeme Sinn und Zweck Thread-Arten Thread-Management

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

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden. 5. Steuerung technischer Prozesse 5.1 Echtzeit (real time) Im Gegensatz zu Aufgabenstellungen aus der Büroumgebung, wo der Anwender mehr oder weniger geduldig wartet, bis der Computer ein Ergebnis liefert

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

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus Zur Erinnerung: Threads Programmierung (fortgeschrittene Konzepte) Threads, Monitore, Semaphore und speisende en Wolf-Ulrich Raffel (uli@wuraffel.de) Möglichkeiten, Threads zu definieren Bildung einer

Mehr

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

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß? Kontrollflüsse Einführung 1 Motivation Kontrollfluß Anwendung logischer Adreßraum Kontrollfluß (Thread) = führt Instruktionen aus Was charakterisiert einen Kontrollfluß? Programmzähler Registerinhalte

Mehr

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

Mehr

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling 1 termini technici Der englische Fachausdruck scheduler wurde eingedeutscht : Der Scheduler Für scheduling ist im Deutschen auch zu verwenden: Ablaufplanung

Mehr

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme Wilhelm Haas Wilhelm.Haas@informatik.stud.uni-erlangen.de Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik Lehrstuhl 4

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch

Mehr

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

2A Basistechniken: Weitere Aufgaben

2A Basistechniken: Weitere Aufgaben 2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

Musterlösung Prüfung SS 2002

Musterlösung Prüfung SS 2002 Musterlösung Prüfung SS 2002 Fach: I4neu (SEE, KOS, GRS, BTS) Teilprüfung: Betriebssystem Tag: 2.7.2002 8:15 12:15 Raum 1006 Bearbeitungszeit: 72 Minuten Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel:

Mehr

Scheduling. Prozess-Ablaufplanung. Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012

Scheduling. Prozess-Ablaufplanung. Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012 Scheduling Prozess-Ablaufplanung Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012 Scheduler Der Scheduler ist ein besonders wichtiges Programmteil jedes Betriebssystems. Prozesse P 1 P

Mehr

3. Scheduler und Schedulingstrategien

3. Scheduler und Schedulingstrategien 5 3 Scheduler und Schedulingstrategien Unter Scheduling versteht man einen Ablaufplan, einen Fahrplan oder eine Auswahlstrategie, nach der ein knappes Betriebsmittel im Wettbewerb befindlichen Prozessen

Mehr

Musterlösung Prüfung WS 01/02

Musterlösung Prüfung WS 01/02 Musterlösung Prüfung WS 01/02 Fach: I3 Software-Technik (SEE, GRS, BTS) Teilprüfung: Betriebssysteme Tag: 29.01.2002 10:45 14.45 Raum: 1006 Bearbeitungszeit: 4 Stunden Name:... Matr.Nr.:... Punkte:...

Mehr

Kapitel III. Prozessverwaltung. VO Betriebssysteme

Kapitel III. Prozessverwaltung. VO Betriebssysteme Kapitel III Prozessverwaltung V 1 Was ist ein Prozess? Prozesse ein exekutierendes Programm (aktive Einheit) ein Prozess benötigt Ressourcen: CPU-Zeiten, Speicher, Files, I/O Systeme Betriebssystem ist

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

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

Mehr

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

Betriebssysteme (BTS)

Betriebssysteme (BTS) 9.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 10.5.2007 Exkursion Die Exkursion wird am Freitag, den 18.5.2007

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

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

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige

Mehr

Nebenläufige Programmierung

Nebenläufige Programmierung Nebenläufige Programmierung Perspektiven der Informatik 27. Januar 2003 Gert Smolka Telefon-Szenario Eine Telefonzelle Mehrere Personen wollen telefonieren Immer nur eine Person kann telefonieren Ressource

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

Übung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012

Übung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012 Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)

Mehr

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Betriebssysteme I WS 2013/2014 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 16. Januar 2014 Betriebssysteme / verteilte Systeme Betriebssysteme

Mehr

RTEMS- Echtzeitbetriebssystem

RTEMS- Echtzeitbetriebssystem RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-

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

Modul B-PRG Grundlagen der Programmierung 1

Modul B-PRG Grundlagen der Programmierung 1 Modul B-PRG Grundlagen der Programmierung 1 Teil 3: Betriebssysteme, Dateisysteme,Sicherheit V20: Prozesse Prof. Dr. R. Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik

Mehr

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 7 Scheduling Wolfram Burgard Version 8.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

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

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

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

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

Mehr

Verklemmungen - Deadlocks

Verklemmungen - Deadlocks Verklemmungen - Deadlocks Betriebsmittel Verklemmung Vogelstrauss Algorithmus Erkennung und Auflösung Vermeidung SS2001 Prof. H.D. Clausen - unisal 1 Kritische Betriebsmittel Beispiele Drucker Magnetbandgeräte

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

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

RTOS Einführung. Version: Datum: Autor: Werner Dichler RTOS Einführung Version: 0.0.1 Datum: 20.07.2013 Autor: Werner Dichler Inhalt Inhalt... 2 RTOS... 3 Definition... 3 Anforderungen... 3 Aufgaben... 3 Eigenschaften... 4 Einteilung der Betriebssysteme...

Mehr

Einführung. Schedulingziel. Klassisches Scheduling-Problem. 6. Kapitel Ressource Prozessor: Scheduling

Einführung. Schedulingziel. Klassisches Scheduling-Problem. 6. Kapitel Ressource Prozessor: Scheduling Wintersemester 06/07 6. Kapitel Ressource Prozessor: Scheduling Prof. Matthias Werner 6 Professur Betriebssysteme Einführung Bisher: Wenn ein Prozesses den Prozessor aufgibt (Zustand laufend verlässt),

Mehr

Prozesszustände (1a)

Prozesszustände (1a) Prozesszustände (1a) NOT EXISTING DELETED CREATED Meta-Zustand (Theoretische Bedeutung) Prozesszustände Multiuser Umfeld (1c) Hintergrund-Prozess - der Prozess startet im Hintergrund - my-commandbin &

Mehr

Projekt für Systemprogrammierung WS 06/07

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

Mehr

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

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

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

Mehr

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

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

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

Mehr

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

5. Foliensatz Betriebssysteme und Rechnernetze

5. Foliensatz Betriebssysteme und Rechnernetze Prof. Dr. Christian Baun 5. Foliensatz Betriebssysteme und Rechnernetze FRA-UAS SS2017 1/29 5. Foliensatz Betriebssysteme und Rechnernetze Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

Mehr

Einrichten der Outlook-Synchronisation

Einrichten der Outlook-Synchronisation Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen

Mehr

TIMI: Technische Informatik für Medieninformatiker

TIMI: Technische Informatik für Medieninformatiker TIMI: Technische Informatik für Medieninformatiker Bachelor-Studiengang Digitale Medien Medieninformatik SS 2004 Niels Pollem Arbeitsgruppe Rechnernetze (Prof. Dr.-Ing. Ute Bormann) Scheduling:

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Andreas Teuchert 27./28. Juni 2012 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID)

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

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

AN025. Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der CPU-Auslastung im Echtzeitbetrieb

AN025. Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der CPU-Auslastung im Echtzeitbetrieb AN025 Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der Autor: HB AN025.DOC (6 Seiten) 1. Definition Im folgenden wie auch in allen anderen Sorcus Schriften werden folgende Kurzbezeichnungen verwendet:

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Benjamin Eberle 22. Januar 2015 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID) jeder

Mehr

Teil 3: Konzepte von Betriebssystemen

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

Mehr

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Betriebssysteme Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Umfaßt z.b. auch Compiler, Interpreter und Dienstprogramme

Mehr

Der Scheduler von Windows Konzepte und Strategien

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

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

4.2 Die Behandlung diskreter Zeitaspekte unter Synchroniehypothese

4.2 Die Behandlung diskreter Zeitaspekte unter Synchroniehypothese Zeit in Prozeßalgebra Synchroniehypothese: Aktionen des Systems brauchen keine Zeit. Einbau einer diskreten Uhr. 1 Beispiel Doppelte Maus-Clicks Angenommen, wir wollen ein Programm schreiben, das doppelte

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

4 Planung von Anwendungsund

4 Planung von Anwendungsund Einführung 4 Planung von Anwendungsund Datenbereitstellung Prüfungsanforderungen von Microsoft: Planning Application and Data Provisioning o Provision applications o Provision data Lernziele: Anwendungen

Mehr

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Nachfolgend finden Sie die drei Aufgaben, die Sie als Zulassungsvoraussetzung für die Scheinklausur am 18.7.2001

Mehr

Echtzeitscheduling (1)

Echtzeitscheduling (1) Echtzeitscheduling (1) Scheduling in Betriebssystemen Ressourcenausteilung (CPU, Speicher, Kommunikation) Faire Ressourcenvergabe, insbesondere CPU Hohe Interaktivität / kurze Reaktionszeit für interaktive

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

6.Vorlesung Betriebssysteme Hochschule Mannheim

6.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun 6.Vorlesung Betriebssysteme Hochschule Mannheim SS2011 1/40 6.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun Karlsruher Institut für Technologie Steinbuch Centre for Computing

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren Universität Stuttgart Prof. Dr.-Ing. Dr. h. c. P. Göhner Aufgabe 5.1: Übung 5: Semaphoren Semaphor-Operationen In Bild 5.1.1 ist die Anordnung von Semaphor-Operationen am Anfang und am e der asks A,B,C

Mehr

13. Übung mit Musterlösung

13. Übung mit Musterlösung 13. Übung mit Musterlösung 1 Lösung 1 Teil 1.Multiple Choice) Bewertung: Ein Punkt für richtige Antwort, für jede falsche Antwort ein Punktabzug. a) Für die Exponentialverteilung ist die Zeit bis zum nächsten

Mehr

Rembo/mySHN. Version 2.0 Kurzanleitung. das selbstheilende Netzwerk. Stand: 01.05.2006. my selfhealing network

Rembo/mySHN. Version 2.0 Kurzanleitung. das selbstheilende Netzwerk. Stand: 01.05.2006. my selfhealing network Rembo/mySHN Version 2.0 Kurzanleitung das selbstheilende Netzwerk my selfhealing network Stand: 01.05.2006 Postanschrift: SBE network solutions GmbH Edisonstrasse 21 74076 Heilbronn IV Inhalt Kurzanleitung...i

Mehr

PDF Dateien für den Druck erstellen

PDF Dateien für den Druck erstellen PDF Dateien für den Druck erstellen System Mac OS X Acrobat Version 6 Warum eigentlich PDF? PDF wird nicht nur in der Druckwelt immer wichtiger. Das Internet ist voller Informationsschriften im PDF-Format,

Mehr

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux

Mehr