Betriebssysteme Kap. 2: Nebenläufigkeit und Parallelität

Größe: px
Ab Seite anzeigen:

Download "Betriebssysteme Kap. 2: Nebenläufigkeit und Parallelität"

Transkript

1 Betriebssysteme, WS 2014/15 wk Betriebssysteme Kap. 2: Nebenläufigkeit und Parallelität Winfried E. Kühnhauser Wintersemester 2014/15 Winfried E. Kühnhauser CSI Technische Universität Ilmenau

2 Roadmap Anwendungsebene GUI MatLab Office ABS Google Earth Firefox Anwendungsschnittstelle (Application Programmer s Interface, API) Betriebssystem Betriebssystem-Dienste Prozessmanagement Dateimanagement Netzwerkmanagement Prozessor- Ressourcen Ressourcenmanagement Kommunikations- Ressourcen Speicher- Ressourcen E/A Ressourcen Betriebssysteme, WS 2014/15 wk Nebenläufigkeit und Parallelität

3 Grundsätzliches Computer bearbeiten Aufgaben in wohldefinierten Arbeitsabläufen beschrieben durch Programme: Algorithmen, präzise definiert mittels formaler Programmiersprachen (C, C++, Java...) beim Ablauf von Programmen entstehen oft Wartesituationen Powerpoint wartet auf Tastatureingaben Mailserver wartet auf eintreffende s Wartezeiten sind relativ zur Prozessorgeschwindigkeit gigantisch (1 Sek Prozessorzyklen) statt schlicht zu warten, lässt sich besseres tun parallele Ausführung mehrerer Aufgaben Was so läuft Betriebssysteme, WS 2014/15 wk Nebenläufigkeit und Parallelität

4 Parallelität geht nicht immer (duschen und abtrocknen ) Voraussetzung dazu: Nebenläufigkeit Begriffe 1. Aktivitäten heißen nebenläufig, wenn zwischen ihnen keine kausalen Abhängigkeiten bestehen (= kausal unabhängig ) 2. Aktivitäten heißen parallel, wenn sie zeitlich überlappend durchgeführt werden Nebenläufigkeit ist Voraussetzung für Parallelität Powerpoint und -Klient Powerpoint und Fileserver Betriebssysteme, WS 2014/15 wk Nebenläufigkeit und Parallelität

5 2.1 Prozesse ? ? ? ? Trotz kausaler Unabhängigkeit der Aufgaben: Paralleles Arbeiten auf kognitiver Ebene ist (für Menschen) schwierig Unser Umgang damit Wir sequenzialisieren Zerlegung der Aufgabe in 4 (eigentlich parallel ausführbare) Aktivitäten sequenzielle Abarbeitung dieser Aktivitäten Idee der Prozessmodelle von BSen Betriebssysteme, WS 2014/15 wk Prozesse

6 Definition Prozess (vorläufig, bis wir wissen, was Threads sind) Ein Prozess ist eine BS-Abstraktion zur vollständigen Beschreibung einer sequenziell ablaufenden Aktivität. Dazu gehört insbesondere das ausgeführte Programm und dessen Bearbeitungszustand zugeordnete Betriebsmittel (Prozessor/Speicher/Kommunikationsressourcen) Rechte (Nutzung von Diensten, Dateien, Kommunikationsports) Parallele Aktivitäten werden repräsentiert durch parallele Prozesse ? ? ? ? Betriebssysteme, WS 2014/15 wk Prozesse

7 2.1.1 Prozessmodelle In a Nutshell Prozess = BS-Abstraktion zur Ausführung von Programmen Prozessmodelle definieren konkrete Prozesseigenschaften ( BS-spezifisch) Prozessmanager BS-Komponente, die Prozessmodelle implementiert Betriebssysteme, WS 2014/15 wk Prozessmodelle

8 Prozessmodelle Aufgabe präzise Definition der BS-Abstraktion Prozess definiert durch Semantik der Operationen auf Prozessen ( the life and hard times...) Erzeugen, Beenden, Anhalten, Fortsetzen, nichtfunktionale Eigenschaften von Prozessen Isolation Ressourcenmanagement (Speicher, Rechenzeit) Rechtemanagement implementiert durch Datenstrukturen Algorithmen des Prozessmanagements Betriebssysteme, WS 2014/15 wk Prozessmodelle

9 Prozessmanagement Anwendungsebene GUI MatLab Office ABS Google Earth Firefox Anwendungschnittstelle (Application Programmer s Interface, API) Betriebssystem-Dienste Betriebssystem Prozessmanagement Speichermanagement Kommunikationsmanagement Prozessor- Ressourcen Speicher- Ressourcen Ressourcenmanagement Kommunikations- Ressourcen div. E/A Ressourcen Betriebssysteme, WS 2014/15 wk Prozessmodelle

10 Prozessmanager seziert class ProcessManager { public: CreateProcess(Program) {... } Prozessmanagement TerminateProcess(Process) {... }... private: ProcessDescriptorTable... } Betriebssysteme, WS 2014/15 wk Prozessmodelle

11 2.1.2 Prozesserzeugung Prozesserzeugung: Erzeugen einer Programmablaufumgebung Anwen- GUI dungsebene CreateProcess() Google Earth Anwendungsschnittstelle (Application Programmer s Interface, API) Betriebssystem-Dienste Betriebssystem Prozessmanagement Speichermanagement Kommunikationsmanagement Prozessor- Ressourcen Speicher- Ressourcen Ressourcenmanagement Kommunikations- Ressourcen div. E/A Ressourcen Betriebssysteme, WS 2014/15 wk Prozesserzeugung

12 Anwendersicht mittels GUIs: Mausklick auf ein Symbol Google Earth mittels Kommandointerpreter/Shell kandooma> cc was letztendlich immer geschieht: per Systemaufruf aus ablaufendem Programm if (fork() == 0) execve( /usr/bin/cc, ) Betriebssysteme, WS 2014/15 wk Prozesserzeugung

13 Resultierende Aktionen des Prozessmanagements Prüfen notwendiger Voraussetzungen Rechte, Ressourcenverfügbarkeit (Speicher, evtl. Prozessorzeit) Namensvergabe Stammbaum Allokation von Ressourcen, z.b. Arbeitsspeicher ( Speichermanagement) Prozessorzeit ( Scheduler) Anlegen von Managementdatenstrukturen Rechtemanagement; u.a. Eigentümer, Zugriffsrechte Ressourcenmanagement; u.a. Speicher- und Prozessorbelegung Laufzeitmanagement; u.a. Ablaufzustand, eingetretene Ereignisse Betriebssysteme, WS 2014/15 wk Prozesserzeugung

14 Notwendige Voraussetzungen (prozessmodellspezifisch) Sicherheit Authentizität des auszuführenden Programms Prüfung digitaler Signaturen Echtzeit Erfüllbarkeit von Ressourcenanforderungen Einhaltung gegebener Garantien Basis: Lastbeschreibungen Fairness Quoten Robustheit/Überlastvermeidung Lastsituation Betriebssysteme, WS 2014/15 wk Prozesserzeugung

15 (prozessmodellspezifisch) z.b. Unix/Windows Systemfamilien: Prozessidentifikation ist positive ganze Zahl Vergabealgorithmus variiert; z.b. zyklisch [0, 32000] Namensvergabe kann nach Terminierung eines Prozesses erneut vergeben werden eindeutig zu einem Zeitpunkt bzgl. aller existierenden Prozesse nicht unbedingt eindeutig für zeitlich nicht überlappende Prozesse erst recht nicht eindeutig über Systemgrenzen hinweg Was so läuft Betriebssysteme, WS 2014/15 wk Prozesserzeugung

16 Stammbaum Abstammungsbeziehungen definieren Eltern/Kind-Hierarchie Prozess erzeugt weitere Prozesse: seine Kinder diese wiederum erzeugen weitere Prozesse usw. baumartige Abstammungshierarchie Nutzung: Rechte und Verantwortlichkeiten Ur- Prozess (erzeugt beim Systemstart ( launchd, init ) Betriebssysteme, WS 2014/15 wk Prozesserzeugung

17 Verwaiste Prozesse Adoption; Unix-Technik: durch Urprozess Ur- Prozess Ur- Prozess Betriebssysteme, WS 2014/15 wk Prozesserzeugung

18 (prozessmodellspezifisch) Allokation von Ressourcen Adressraum: wie viel Arbeitsspeicher erhält der neue Prozess? Größe Zeitpunkt: zu welchem Zeitpunkt erhält er ihn? Echtzeiteigenschaften (Planbarkeit) Performanz (Proaktivität) Isolation: wie ist er (vor anderen Prozessen) geschützt? Robustheit, Sicherheit, Korrektheit Speichermanagement, Kap. 3 High-End Betriebssysteme, Kap Arbeitsspeicher Betriebssysteme, WS 2014/15 wk Prozesserzeugung

19 Betriebssysteme, WS 2014/15 wk Ein kurzer Ausflug Arbeitsspeicherstruktur minimal erforderlich Code des ausgeführten Programms Text Segment Programmvariablen (Integers, Strings, Klasseninstanzen ) Datensegment Organisation des dynamischen Programmablaufs Heap Segment Stack Segment Arbeitsspeicher komplexer Prozesse (e.g. mit Threads, shared libraries) können solche Segmente vielfach enthalten Textsegment(e) Daten-(Heap-) Segment(e) Stacksegment(e)

20 Repräsentation ausführbarer Programme (z.b..exe -Files) Quellcode: C/C++/Java- Programm Textdatei Compiler Objekt- Code Bibliothek Linker ausführbares Programm z.b. im ELF-Format * ) Dateien auf persistentem Speicher (z.b. Festplatte) Magie (Formathinweise) Programmcode initialisierte Daten uninitialisierte Daten Startadresse (IP) Symboltabellen, z.b. firstint: #0 secondint: #4 grusstext: # h e l l o Kopf Infos zum Binden, Debuggen vom Compiler/ Linker erzeugter Programmcode vom Compiler initialisierte Daten * ) Executable and Link Format Betriebssysteme, WS 2014/15 wk Prozesserzeugung

21 Arbeitsspeicher-Initialisierung ausführbare Programmdatei Magie Programcode initialisierte Daten uninitialisierte Daten Startadresse Symboltabellen, z.b. firstint: #0 secondint: #4 grusstext: # h e l l o Speicherlayout Textsegment(e) Daten-(Heap-) Segment(e) Stacksegment(e) Betriebssysteme, WS 2014/15 wk Dabei hilft das VMM Kap Prozesserzeugung

22 Damit dies korrekt funktioniert: präzise Formatvereinbarungen zwischen dem Linker (Programmdatei-Produzent) dem Prozessmanagement (Programmdatei-Lader) Das a.out-format ursprüngliches Unix-Format veraltet, z.b. keine dynamisch gebundenen Bibliotheken (DLLs) Das Common Object File Format (COFF) Nachfolger des a.out-formats verbreitet vor allem in der Windows Welt Das Executable and Link(age/able) Format (ELF) heutiger Linux-Standard siehe Übungen Betriebssysteme, WS 2014/15 wk erkennbar an magic number Prozesserzeugung

23 Das a.out-format Kopf Textsegment Datensegment magic number text segment size data segment size bss segment size symbol table size program entry point text reloc table size data text reloc table size struct exec { } unsigned long a_midmag; unsigned long a_text; unsigned long a_data; unsigned long a_bss; unsigned long a_syms; unsigned long a_entry; unsigned long a_trsize; unsigned long a_drsize; Text-Relokationsinfo Daten-Relokationsinfo Symboltabelle (Ende des Ausflugs) Betriebssysteme, WS 2014/15 wk Prozesserzeugung

24 Allokation des Arbeitsspeichers schematisch /* read header Header=FileSystem.ReadHeader(ProgramFile); if (Header.midmag==ELFmag) then { ELFHeader=Header; /* create and init text segment TextSegmentAddr=VMM.CreateTextSegment(ELFHeader.TextSize); FileSystem.Read ( ProgramFile, ELFHeader.TextSegmentOffset, ELFHeader.TextSize, TextSegmentAddr); /* create and init data segment /* create stack segment PCB.TextSegmentAddr=ELFHeader.TextSize; } elsif (Header.midmag==COFFmag) then { Betriebssysteme, WS 2014/15 wk Prozesserzeugung

25 Aufgabe Allokation elementarer Ressourcen in Prozessmodellen echtzeitfähiger Systeme (planbar) Planung und Bereitstellung von Prozessorzeit für einen Prozess 2. Prozessorzeit Parameter: Größe: wie viel Prozessorzeit benötigt der neue Prozess? Zeitpunkt: zu welchem Zeitpunkt wird Prozessorzeit benötigt? Autonomie: in wie weit darf dies durch andere Prozesse beeinflusst werden? in Prozessmodellen ohne diese Eigenschaften (kaum planbar) dynamisches ad-hoc-scheduling Strategien beeinflussen massiv die NFEs Scheduling-Algorithmen in Kap. 2.3 Betriebssysteme, WS 2014/15 wk Prozesserzeugung

26 Zwischenstand Aktionen des Prozessmanagements Prüfen notwendiger Voraussetzungen Rechte, Ressourcenverfügbarkeit (Speicher, Prozessorzeit) Namensvergabe Stammbaum Allokation von Ressourcen (dabei helfen andere BS-Komponenten); i.w. Arbeitsspeicher (Speichermanagement) Prozessorzeit (Scheduler) Irgendwo müssen wir uns all dies merken : Anlegen von Managementdatenstrukturen ( Prozessdeskriptor ) Ressourcenmanagement; u.a. Speicher, Prozessorzeit Rechtemanagement; u.a. Eigentümer, Zugriffsrechte Laufzeitmanagement; u.a. Ablaufzustand, eingetretene Ereignisse Betriebssysteme, WS 2014/15 wk Prozesserzeugung

27 Management-Datenstrukturen Aufgabe Buchführung über sämtliche zum Management eines Prozesses notwendigen Informationen - Prozessidentifikation - Rechtemanagement - Speichermanagement (z.b. über Lage der Text/Daten/Stacksegmente) - Prozessormanagement (z.b. Lastprofil, Priorität, Ablaufzustand) Prozessdeskriptor (process control block, PCB) Prozessdeskriptortabelle: Prozessdeskriptoren sämtlicher Prozesse Man kann Prozessdeskriptoren ansehen Mac: Aktivitätsanzeige, ps -axl Linux/Gnome GUI: Systemüberwachung, ps -axl Windows: Task Manager Betriebssysteme, WS 2014/15 wk Prozesserzeugung

28 Ein typischer Prozessdeskriptor Prozessormanagement Identifikationen Prozessidentifikation Prozessidentifikation des Erzeugers Scheduling Prozesszustand Priorität, Lastbeschreibung,... Prozessorkontext Programmzähler ( IP ) Stack Pointer ( SP ) Prozessorstatusregister ( PSR ) allgemeine Prozessorregister Ereignismanagement anstehende Ereignisse eingeplante Reaktionen Handler-Vektor Aufweckzeit Accounting Startzeit verbrauchte Prozessorzeit Ein/Ausgabevolumen eindeutige Prozessbezeichnung, Einordnung in Hierarchie Informationen für Schedulingalgorithmen gesichert bei Verdrängung des Prozesses, restauriert bei Reaktivierung z.b. die Privilegierungsebene relevant auch bei schlafenden Prozessen zur Prioritätenbestimmung, Statistik, Kostenberechnung oder Quotenbestimmung Betriebssysteme, WS 2014/15 wk Prozesserzeugung

29 Speichermanagement Virtueller Adressraum Programm(Text-)segment(e) Datensegment(e) Stacksegment(e) Shared Memory Segment(e) Seitentabelle Kernel Stack Rechtemanagement User-Id des Eigentümers Gruppen-Id des Eigentümers Security Contex (Capabilities, Attribute) Allgemeines Ressourcenmanagement Arbeitsdirectory Root-Directory Filedeskriptoren E/A-Parameter, Schutzbit-Masken, etc. Beschreibung des Speicherlayouts Prozedurmanagement innerhalb des BS Filedeskriptoren, Socketdeskriptoren,... mit Zustandsinformationen je Ressource: erworbene Rechte, Dateipositionspointer,... Betriebssysteme, WS 2014/15 wk Prozesserzeugung

30 Ein typischer Prozessdeskriptor ist sehr groß (mit Seitentabellen (s.u.) mehrere Megabyte) ist daher oft physisch zweigeteilt (damit in Passivphasen weniger Arbeitsspeicher belegt wird) Informationen, die während der gesamten Existenz benötigt werden, z.b. Ablaufzustand (rechenbereit, blockiert) Priorität zugesandte Ereignisse und eingeplante Reaktionen hierauf Informationen, die nur während einer Aktivphase benötigt werden, z.b. Rechte (Teile des) Speicherlayout(s) Betriebssysteme, WS 2014/15 wk Prozesserzeugung

31 Zusammenfassung Prozesserzeugung Prüfen notwendiger Voraussetzungen Rechte, Ressourcenverfügbarkeit Namensvergabe Stammbaum Allokation von Ressourcen Arbeitsspeicher, Prozessorzeit strategische Algorithmen bestimmen NFEs: Robustheit, Sicherheit, Performanz, Echtzeitanforderungen Managementdatenstrukturen Betriebssysteme, WS 2014/15 wk Prozesserzeugung

32 2.1.3 Prozessterminierung Ursachen Selbstmord Aufgabe erledigt GUI: Logout Compilerlauf: Übersetzung eines Programms abgeschlossen Fehler aufgetreten und Weitermachen sinnlos logischer Fehler (z.b. Compiler: Quellcodedatei nicht gefunden) arithmetischer Fehler (z.b. Division durch 0) Betriebsmittelmangel (z.b. virtueller Speicher (s.u.) erschöpft) Mord und Totschlag nicht mehr gebraucht (z.b. Fenster schließen alle Prozesse im Fenster) Todesstrafe wegen schlimmer Vergehen (z.b. Speicherschutzverletzungen) Verklemmungsauflösung (s.u.) Betriebssysteme, WS 2014/15 wk Prozessterminierung

33 Techniken Selbstmord: Systemaufruf ans Prozessmanagement z.b. Unix: exit() explizit an beliebiger Stelle in einem Programm implizit nach Beenden des Programms (durch Laufzeitsystem) Mord und Totschlag: durch Eigentümer: per GUI: Fenster schließen _ per Admin-Software (z.b. Windows Task Manager, Mac Was so läuft ) per Kommandointerpreter (z.b. Unix, Mac: kill -9 <eine PID> ) per Systemaufruf aus einem ablaufenden Programm (z.b. Unix: kill(<pid>,sigkill) ; kill(getpid(),9) exit() ) durch Betriebssystem: Nachricht an das Prozessmanagement, z.b. durch Speichermanagement ALU/Arithmetik-Koprozessor (FPU) Verklemmungsüberwachung Betriebssysteme, WS 2014/15 wk Prozessterminierung

34 Was geschieht bei einer Prozessbeendigung? Freigabe der Ressourcen Name, Speicher- und Prozessorreservierungen, geöffnete Dateien, Kommunikationsverbindungen Benachrichtigung der Eltern Techniken: Signale (IPC, s.u.), rückkehrende Systemaufrufe (z.b. wait()) Adoption der Kinder Ur- Prozess Ur- Prozess Betriebssysteme, WS 2014/15 wk Prozessterminierung

35 2.1.4 Zusammenfassung Elementares Prozessmanagement Prozessmodelle Definition der BS-Abstraktion Prozess durch Semantik der Operationen auf Prozessen nichtfunktionale Eigenschaften von Prozessen implementiert durch Operationen, Datenstrukturen, Algorithmen des Prozessmanagements Prozesserzeugung Allokation von Ressourcen Prozessterminierung Freigabe der Ressourcen und dazwischen Ablaufmanagement: Management-Datenstrukturen Betriebssysteme, WS 2014/15 wk Zusammenfassung

36 2.2 Threads Motivation Viele Anwendungssysteme enthalten nebenläufige Aktivitäten Server (Web-, Mail-, Datenbank-) bedienen gleichzeitig viele Klienten Netzwerk Algorithmen zur Lösung komplexer Probleme Lösung von Differentialgleichungen (Wetter) Multiplikation großer Matrizen (Computergrafik) Simulationen (Simulacron 3) Betriebssysteme, WS 2014/15 wk Threads

37 Naive Lösung für jede nebenläufige Aktivität spendieren wir einen Prozess Jedoch Prozesse sind dafür uncool Kosten des Managements (Ressourcenallokation) Kosten der Isolation (virtuelle private Adressräume, s.u.) Kosten der Kommunikation (IPC, s.u.) Parallelität mittels vieler Prozesse ist teuer revidiertes Prozessmodell Gesucht also: kostengünstigeres Modell zur Parallelisierung nebenläufiger Aktivitäten Betriebssysteme, WS 2014/15 wk Threads

38 2.2.1 Das Threadmodell Ursachenforschung Das bisherige Prozessmodell ist kostspielig, weil zwei sachlich unabhängige Konzepte zusammengefasst sind: Prozesse sind hier gleichzeitig die elementare Einheit der Parallelität die elementare Einheit des Ressourcenmanagements und Schutzes Modell historisch, nicht sachlich begründet Korrektur Entflechtung dieser Funktionen; wir möchten eine Abstraktion zum Management von Ressourcen (teuer) eine Abstraktion zum Management von Parallelität (preiswert) enter Threads Betriebssysteme, WS 2014/15 wk Das Threadmodell

39 Anwendungsbeispiel Multi-threaded Webserver Prozess mit vielen parallelen Aktivitäten, die alle die gleichen Rechte haben (z.b. Zugriff auf Datenbank mit Webseiten) alle die gleichen Ressourcen besitzen und sich teilen (z.b. Arbeitsspeicher, Webseitencache, Kommunikationswege zu Dateisystem/Datenbank) jede einzeln für sich z.b. einen individuellen Klienten betreut Klient Web-Server Klient Betriebssysteme, WS 2014/15 wk Das Threadmodell

40 Revision des bisherigen Prozessmodells Definition Prozess Ein (multi-threaded) Prozess ist eine vollständige Beschreibung einer ablaufenden Aktivität. Dazu gehört insbesondere das ablaufende Programm zugeordnete Betriebsmittel (Prozessor/Speicher/Kommunikationsressourcen) Rechte prozessinterne parallele Aktivitäten (Threads) und ihre Bearbeitungszustände. Definition Thread Ein Thread ist eine sequenzielle Aktivität im Kontext eines Prozesses. Parallele Aktivitäten innerhalb eines Prozesses werden durch parallele Threads repräsentiert. Betriebssysteme, WS 2014/15 wk Das Threadmodell

41 Anmerkungen Eigentümer von Ressourcen und Rechten sind nach wie vor Prozesse das Programm eines Prozesses kann nun Code für mehr als nur eine sequenzielle Aktivität enthalten Gegenstand der Prozessorzuteilung sind nun Threads das ursprüngliche Prozessmodell ist eine Spezialisierung dieses Modells: ein Prozess mit genau einem Thread ( single-threaded ) Web-Server Betriebssysteme, WS 2014/15 wk Das Threadmodell

42 Anmerkungen cont d ein Prozessdeskriptor eines multi-threaded-prozessmodells enthält alle Informationen des PCBs eines single-threaded-prozessmodells plus Informationen über alle seine Threads (je Thread ein Threaddeskriptor (TCB, thread control block )) ein TCB enthält lediglich Ablaufkontext (Programmzähler, Stackpointer, Prozessorregister) Threadzustand (aktiv, bereit, blockiert,...) insbesondere keine Beschreibung der Ressourcen (Speicherlayout, Rechte) Threads werden daher oft auch als Leichtgewichtsprozesse bezeichnet Betriebssysteme, WS 2014/15 wk Das Threadmodell

43 Varianten komfortabel: integriert in Programmiersprachen zu Fuß: Thread-Bibliotheken / Betriebssystem-API Integriert in Programmiersprachen, z.b. Ada: TASK BODY AServerThread IS BEGIN LOOP AwaitClientRequest(...); HandleClientRequest(...); ReplyToClient(...); UNTIL client disconnects; END; Programmieren mit Threads Wie treten Threads gegenüber Programmierern auf? Aufgabe des Ada-Compilers Abbildung der TASKs auf das multi-threaded Prozessmodell des BS (KLTs, s.u.) alternativ hinzufügen eines Laufzeitsystems mit eigenem Thread-Management (ULTs, s.u.) Betriebssysteme, WS 2014/15 wk Das Threadmodell

44 Zu Fuß, z.b. in einem C-Programm, eine Thread-Bibliothek nutzend #include <pthread.h> void AServerThread() { repeat { AwaitClientRequest(...); HandleClientRequest(...); ReplyToClient(...); } until client disconnects; } durch Thread ausgeführtes Programm, syntaktisch als Prozedur formuliert main() {... whenever new client connects: ThreadCreate(...,AServerThread,...);... } Aufgabe der Thread-Bibliothek (dieselbe wie die des Compilers) Abbildung des Prozedurkonstrukts auf das Prozessmodell des BS (KLTs, s.u.) alternativ hinzufügen eines Laufzeitsystems mit einem Thread-Management (ULTs, s.u.) Betriebssysteme, WS 2014/15 wk Das Threadmodell

45 2.2.2 Thread-Implementierungen Alternativen Prozessmodell des Betriebssystems ist single-threaded Realisierung auf Anwendungsebene (User Level Threads, ULTs) Web-Server Thread- Bibliothek DB-Server Thread- Bibliothek TCB-Tabelle TCB-Tabelle API Prozessmgmt PCB-Tabelle Betriebssysteme, WS 2014/15 wk Thread-Implementierungen

46 Prozessmodell des Betriebssystems ist multi-threaded Realisierung durch Betriebssystem (Kernel Level Threads, KLTs) Web-Server DB-Server API Prozessmgmt PCB- und TCB-Tabellen Betriebssysteme, WS 2014/15 wk Thread-Implementierungen

47 Pros und Kontras der beiden Implementierungsformen Pro ULT Web-Server Thread- Bibliothek DB-Server Thread- Bibliothek TCB-Tabelle TCB-Tabelle API Prozessmgmt PCB-Tabelle Performanz Thread-Management ohne Systemaufrufe Thread-Umschaltung ohne BS-Mitwirkung keine Kosten durch Systemaufruf-Overhead Individualität anwendungsindividuelle Thread-Schedulingstrategien möglich Portabilität Betriebssysteme, WS 2014/15 wk Thread-Implementierungen

48 Pro KLT Web-Server DB-Server API Prozessmgmt PCB- und TCB-Tabellen Performanz: Parallelität Nutzung von Mehrprozessor/Multicorearchitekturen keine Blockade der gesamten Anwendung durch blockierende Systemaufrufe Betriebssysteme, WS 2014/15 wk Thread-Implementierungen

49 Problematisch: ein blockierender Systemaufruf (z.b. E/A-Operation) legt den Aufrufer still bei ULTs ist dies ein Prozess, und damit alle seine Threads Web-Server Thread- Bibliothek (mit Scheduler) DB-Server Thread- Bibliothek (mit Scheduler) TCB-Tabelle TCB-Tabelle API Prozesse PCB-Tabelle Betriebssysteme, WS 2014/15 wk Thread-Implementierungen

50 Es gibt Work-Arounds Alle gefährlichen (=potenziell blockierenden) Systemaufrufe einpacken; Paket: Test, ob sie blockieren würden, riefe man sie auf nein: tatsächlicher Aufruf ja: Eintrag des Aufrufer-Threads in Warteliste, Threadwechsel, später Neuversuch Folge rewriting sämtlicher derartiger Systemaufrufe sehr ineffizient sehr plump es gibt aber keine Alternativen Betriebssysteme, WS 2014/15 wk Thread-Implementierungen

51 Fazit: Wer die Wahl hat... Wahl des ULT- vs. KLT-Modells hängt ab von Voraussetzungen: Prozessmodell des BS multi-threaded? Anwendungsprofil: E/A-Profil, Parallelität, Portabilität, Individualität Betriebssysteme, WS 2014/15 wk Thread-Implementierungen

52 Anwendungsprofile Typische Thread-Szenarien (Server mit vielen Klienten) benutzen blockierende E/A-Operationen sehr häufig spricht gegen ULTs relativiert den Management-Overhead (Systemaufrufe) der KLTs: Threads warten oft auf die Fertigstellung von E/A-Operationen dies tun sie innerhalb des Betriebssystems ( kernel level ) also fallen zusätzliche Kosten für einen eigens zum Thread-Scheduling notwendigen Systemaufruf oft gar nicht an die bei KLTs höheren Kosten für eine Threaderzeugung können durch Thread-Pools eliminiert werden nutzen die Parallelität von Multicore-Prozessoren Fazit Es spricht vieles für multi-threaded Prozessmodelle und KLTs Betriebssysteme, WS 2014/15 wk Thread-Implementierungen

53 2.2.3 Zusammenfassung Sie kennen nun den Grund für die Existenz von Threads multi-threaded Prozessmodelle deren Pros und Kons Performanz Robustheit Sicherheit Implementierungsebenen für Threads user level Threads kernel level Threads Pros und Kons dieser Varianten Betriebssysteme, WS 2014/15 wk Zusammenfassung

54 2.3 Scheduling Das Problem Anzahl der Aktivitäten >> Anzahl der Prozessoren nicht alle können gleichzeitig arbeiten eine Auswahl muss getroffen werden Auswahlstrategie: Schedulingstrategie, ~algorithmus die Betriebssystemkomponente: Scheduler Welche Threads erhalten wann wie lange einen Prozessor zugeteilt Betriebssysteme, WS 2014/15 wk Scheduling

55 2.3.1 Zustandsmodelle Ziel Effizientes Ressourcenmanagement Threads können z.b. aktiv sein besitzen einen Prozessor rechenbereit sein hätten gerne einen Prozessor kurzfristig warten (z.b. auf Daten von Speichermedien) benötigen gerade keinen Prozessor, aber in Kürze Arbeitsspeicher langfristig warten (z.b. Klientenauftrag, Timerablauf) benötigen keinen Prozessor / Arbeitsspeicher Folge Effizientes Ressourcenmanagement benötigt präzise Informationen über derartige Threadzustände Betriebssysteme, WS 2014/15 wk Zustandsmodelle

56 Aufgabe der Zustandsmodelle Beschreibung des Ablaufzustands von Threads (aktiv, bereit, kurz wartend,...) der möglichen Zustandsübergänge (z.b. bereit aktiv, aktiv kurz wartend,...) Nutzung jeder Thread ist zu jedem Zeitpunkt in genau einem dieser Zustände jeder Thread wechselt seinen Zustand gemäß der im Modell definierten Zustandsübergänge, hervorgerufen z.b. durch Zuteilung eines Prozessors (bereit aktiv) Eintritt von Wartegründen (aktiv wartend) Ressourcenmanagement nutzt Zustände als Informationsquelle für strategische Entscheidungen Betriebssysteme, WS 2014/15 wk Zustandsmodelle

57 Beschreibungsmittel Endliche deterministische Automaten a got a a q 0 a b q t a, b b got b b Implementierung Automat ist implementiert im Prozessmanagement Threadzustand (ist Teil des Threaddeskriptors) Zustandsübergangsfunktion ( -Funktion) Betriebssysteme, WS 2014/15 wk Zustandsmodelle

58 Threadzustände im 3/5-Zustandsmodell bereit: kann aktiv werden, sobald Prozessor frei wird aktiv: besitzt einen Prozessor, arbeitet blockiert: wartet auf Ereignis (E/A, Timer-Ablauf,...) frisch: erzeugt, Betriebsmittel/Rechte zum Ablauf fehlen noch beendet: Betriebsmittel in der Freigabephase frisch Zulassung bereit Scheduler: - Zuteilung - Entzug aktiv Beendigung beendet Ereignis Warten blockiert Beendigung Betriebssysteme, WS 2014/15 wk Zustandsmodelle

59 Verfeinerung: 7-Zustandsmodell Differenzierung (prozessexterner) Wartegründe Prozess ausgelagert (besitzt temporär keinen Arbeitsspeicher) Prozess (z.b. durch Benutzer) temporär stillgelegt (benötigt keinen Prozessor) (längerfristige) Suspendierung Zuteilung/Entzug Zulassung Beendigung frisch bereit aktiv beendet Suspendierung/ Desuspendierung Ereignis Warten bereit/ suspendiert blockiert Ereignis Suspendierung/ Desuspendierung blockiert/ suspendiert Betriebssysteme, WS 2014/15 wk Zustandsmodelle

60 Reale Modelle: Varianten dieser Grundmodelle Beispiel: Unix System 5, Release 4 9-Zustandsmodell created genug Speicher ready Scheduler kernel running exit() zoombi zu wenig Speicher swap out/in wakeup() sleep() Systemaufruf ready/ swapped asleep/ in memory user running wakeup() swap out preempt continue asleep/ swapped preempted Betriebssysteme, WS 2014/15 wk Zustandsmodelle

61 Messages Zustandsmodelle Präzise Informationen über Threadzustand befördern Effizienz und Ökonomie des Prozessormanagements welche Threads wollen rechnen (Kandidatenvorrat für Zuteilung) wie viele Threads wollen rechnen (Last) wie kurzfristig werden für einen gegebenen Thread Prozessorressourcen benötigt... Effizienz und Ökonomie des Speichermanagements welche Informationen müssen wo im Speicher liegen (Zuteilungskandidaten) wie groß ist der Gesamtspeicherbedarf aller rechenbereiten Prozesse (Last) wie kurzfristig werden welche Speicherressourcen benötigt... Betriebssysteme, WS 2014/15 wk Zustandsmodelle

62 2.3.2 Scheduler Welche Threads erhalten wann wie lange einen Prozessor zugeteilt Scheduler strategiegesteuerte(r) - Zuteilung - Entzug eines Prozessors bereit aktiv Ereignis Warten blockiert Betriebssysteme, WS 2014/15 wk Scheduler

63 Arbeitsweise eines Schedulers Scheduler- Aktivierung z.b. Blockierung eines aktiven Threads Bereitwerden eines blockierten/ suspendierten Threads wakeup! asleep Auswahlstrategie: m aus n Threads (bei m Prozessoren) Zuteilung und Entzug Sichern des Threadkontexts in TCB MMU-Kontext (Speicher-Layout) Stackkontext Registerkontext Privilegierungsebene Restaurieren des neuen Threadkontexts aus TCB (Implementierung architekturabhängig) bereit aktiv Ereignis Warten blockiert Betriebssysteme, WS 2014/15 wk Scheduler

64 2.3.3 Scheduleraktivierungen Wann wird die letzte Schedulingentscheidung überprüft? Prozess/Threaderzeugung neuer, rechenbereiter Thread Threadterminierung, Threadblockierung ein Prozessor wird frei Ereigniseintritt Thread wird rechenbereit (Wegfall von Wartegründen) Wechsel von Prioritäten in prioritätenbasierten Schedulingalgorithmen periodisch in zeitscheibenbasierten Schedulingalgorithmen Scheduler- Aktivierung asleep Auswahlstrategie: m aus n Threads (bei m Prozessoren) Zuteilung und Entzug bereit aktiv Ereignis Warten blockiert Betriebssysteme, WS 2014/15 wk Scheduleraktivierungen

65 Ein Kontextwechsel umfasst Zuteilung und Entzug: Kontextwechsel bei Wechsel zwischen Threads desselben Prozesses Scheduler- Aktivierung Software meets Hardware Stackkontext; enthält u.a. IP und PSR (ALU-Flags, Privilegierungsebene) Prozessorregister floating point unit (FPU)-Kontext; sehr groß hohe Kosten zusätzlich bei Wechsel zwischen Threads verschiedener Prozesse Speicherlayout Sofortkosten: Herstellen des Speicherlayouts Sekundärkosten: TLB- und Cache-refill sehr (!) hohe Kosten; s. nachfolgendes Kapitel Kosten der Kontextwechsel auswirkungsreich auf Gesamtperformanz Reaktivität Echtzeiteigenschaften bereit Ereignis asleep Auswahlstrategie: m aus n Threads (bei m Prozessoren) Zuteilung und Entzug blockiert aktiv Warten Betriebssysteme, WS 2014/15 wk Kontextwechsel

66 Kostenfaktor FPU Kopieren des FPU-Kontexts: sehr viele Register (IA-64: 2KByte) in TCB- Datenstrukturen (im Arbeitsspeicher!) Sofortkosten: Kopieroperationen Sekundärkosten: durch Cacheverschmutzung Realisierung: (da nicht jeder Thread die FPU benutzt:) faul, Hardware hilft: FPU-Protection besitzt / benutzt Thread A (aktiv) FPU Kontext A Thread A (passiv) besitzt FPU save Kontext A B Thread B (aktiv) benutzt restore Betriebssysteme, WS 2014/15 wk Kontextwechsel

67 Kostenfaktor FPU Kopieren des FPU-Kontexts: sehr viele Register (IA-64: 2KByte) in TCB- Datenstrukturen (im Arbeitsspeicher!) Sofortkosten: Kopieroperationen Sekundärkosten: durch Cacheverschmutzung Realisierung: (da nicht jeder Thread die FPU benutzt:) faul Hardware hilft: FPU-Protection Thread A (aktiv) Thread A (passiv) Thread B (aktiv) Auswirkung besitzt / benutzt FPU Kontext A nur ein Thread benutzt FPU: tatsächliches Sichern erfolgt nie wenige Threads benutzen FPU: tatsächliches Sichern minimiert Betriebssysteme, WS 2014/15 wk FPU Kontext A B besitzt / benutzt Kontextwechsel

68 Implementierung eines Threadwechsels Im Maschinenraum Für die Profis Z.B. in Linux auf einer Intel IA-64-Architektur (deren Intel-Implementierung: Itanium ) ia64_switch_to(struct task_struct *next) Sichern des Ablaufkontexts des abzulösenden Threads in dessen TCB Restaurieren des Kontexts des neuen Threads aus dessen TCB hochperformante Implementierung: HW-architekturspezifisch, in Maschinencode Zum Nachlesen Mosberger, Eranian: IA-64 Linux Kernel Code: /usr/src/linux-<version>/arch/ia64/kernel/entry.s Betriebssysteme, WS 2014/15 wk Kontextwechsel

69 2.3.5 Schedulingstrategien Das Problem asleep Auswahlstrategie: m aus n Threads (bei m Prozessoren) Zuteilung und Entzug bereit aktiv Ereignis Warten blockiert Betriebssysteme, WS 2014/15 wk Schedulingstrategien

70 Strategische Ziele abhängig vom Einsatzumfeld eines Betriebssystems Echtzeitsysteme: Einhaltung von Fristen interaktive Systeme: Reaktivität Serversysteme: Reaktivität, E/A-Performanz Batch-Verarbeitungssysteme: Durchsatz ergänzt durch allgemeine Ziele Fairness: rechenbereite Threads bekommen ein faires Maß an Rechenzeit Lastbalancierung: alle Systemkomponenten (CPUs, Speicher, E/A- Peripherie) sind gleichmäßig ausgelastet Ausbalancierung mehrerer Ziele multikriterielle Optimierungsaufgabe, i.d.r. NP-vollständig heuristische Scheduling-Algorithmen Betriebssysteme, WS 2014/15 wk Schedulingstrategien

71 Lastmuster Typische Muster aktiver Threadphasen CPU-lastiger Thread z.b. mathematische Berechnungen, Bildcodierung, Verschlüsselung E/A - lastiger Thread z.b. interaktive Prozesse, Klienten, (wenig belastete) Serverthreads periodische Last P P P P z.b. Anlagensteuerung, Echtzeitverarbeitung von (Audio-, Video-, Sensor-) Datenströmen chaotische Last Server mit inhomogenen Diensten : Aktivphase Betriebssysteme, WS 2014/15 wk Schedulingstrategien

72 Differenzierte Schedulingstrategien nutzen Wissen über Lastmuster zur Optimierung; z.b. Minimierung der Thread/Prozesswechsel Frist Frist Frist Frist periodische Last (wichtig) periodische Last (weniger wichtig) prio-basierter Schedule multikriterieller Schedule 18 Pw. 13 Pw. Betriebssysteme, WS 2014/15 wk Schedulingstrategien

73 Schedulingstrategien für Batch-Systeme Ziele Auslastung teurer Betriebsmittel - i.d.r. Maximierung der CPU- Auslastung Minimierung der Scheduling-Kosten wenig Prozesswechsel kurze Laufzeit des Scheduling-Algorithmus Maximierung des Durchsatzes (erledigte Arbeit / Zeit) Algorithmen... gibt es sehr viele; zwei der bekannteren: First Come, First Served (FCFS) Shortest Remaining Time Next (SRTN) Betriebssysteme, WS 2014/15 wk Schedulingstrategien

74 First Come, First Served (FCFS, FIFO) Prozessorzuteilung in Reihenfolge, in der Threads rechenbereit werden Threads arbeiten, bis sie (auf ein Ereignis) warten müssen (z.b. E/A- Operation) extrem einfache Strategie einfach zu implementieren (1 Warteschlange) geringe Algorithmuskosten (O(1): FIFO-Warteschlange) schnelle Entscheidungen (O(1): Nr. 1 aus Warteschlange) nicht immer sehr klug; Beispiel: 1 periodischer Thread, Aktivphasendauer 1 Sekunde (CPU-intensiv) n E/A-intensive Threads Betriebssysteme, WS 2014/15 wk Schedulingstrategien

75 Wertung guter Durchsatz: minimale Zahl an Threadwechseln minimaler Scheduling-Overhead E/A-intensive Threads können durch CPU-intensive Threads extrem verzögert werden hohe Varianz der Bearbeitungszeiten für Threads mit unterschiedlichen Lastmerkmalen Betriebssysteme, WS 2014/15 wk Schedulingstrategien

76 Shortest Remaining Time Next (SRTN) Thread mit voraussichtlich kürzester Restrechenzeit erhält Prozessor preemptiv* ), d.h. Threads können von konkurrierenden Threads verdrängt werden (Schätzwert über) Restlaufzeit muss vorliegen einfache Strategie einfach zu implementieren (1 Warteschlange) geringe Algorithmuskosten (O(n): sortierte Warteschlange) schnelle Entscheidungen (O(1): Nr. 1 aus Warteschlange) * ) i. Ggs. zu kooperativ Betriebssysteme, WS 2014/15 wk Schedulingstrategien

77 Wertung bevorzugt kurze Prozesse Gefahr, dass längere Prozesse verhungern vergleichsweise mehr Threadwechsel größerer Scheduling-Overhead Betriebssysteme, WS 2014/15 wk Schedulingstrategien

78 Schedulingstrategien für interaktive Systeme Ziel Minimierung von Reaktionszeiten (subjektiver Eindruck von Performanz) Fairness (mehrere Benutzer/Klienten) Algorithmen... gibt es auch hier viele; oft verwendet: Round-Robin-Varianten einfacher Round Robin Round Robin plus Prioritäten Betriebssysteme, WS 2014/15 wk Schedulingstrategien

79 Round Robin Idee Jeder Thread bekommt ein gleich großes Teil des Kuchens: die Zeitscheibe rechenbereite Threads aktiver Thread tick einfach und effizient zu realisieren einfach zu implementieren (1 Warteschlange, Uhr) geringe Algorithmuskosten (O(1): FIFO-Warteschlange) schnelle Entscheidungen (O(1): Nr. 1 aus Warteschlange) notwendiges Wissen gering (CPU-Nutzungsdauer des aktiven Threads) Betriebssysteme, WS 2014/15 wk Schedulingstrategien

80 Round Robin Idee Jeder Thread bekommt ein gleich großes Teil des Kuchens: die Zeitscheibe rechenbereite Threads aktiver Thread tick Tuning-Rädchen: Größe einer Zeitscheibe große Zeitscheibe wenig Threadwechsel geringer Schedulingoverhead Reaktivität: 10 Server-Klienten erteilen gleichzeitig einen Auftrag... kleine Zeitscheibe hohe Reaktivität Overhead z.b. bei Zeitscheibe 4msek, Threadwechselzeit 1msek: 20% typischer Wert heute: 20-50msek Betriebssysteme, WS 2014/15 wk Schedulingstrategien

81 Einbeziehung von Prioritäten Ziel Ausdrucksmöglichkeit der Wichtigkeit von Threads Idee niedrig: z.b. Dämonen (die z.b. im Hintergrund s abrufen) Putzarbeiten (Index-Erstellung, Defragmentierung) hoch: z.b. auf Aufträge reagierende Threads (z.b. in Servern) auf Benutzereingaben reagierende Threads (z.b. aktives Fenster einer GUI) unter Echtzeitbedingungen arbeitende Threads (z.b. Motormanagement, DVD-Spieler) jeder Thread erhält individuelle Priorität Threads der höchsten Prioritäten erhalten einen Prozessor zwischen Threads gleicher Priorität: Round-Robin Betriebssysteme, WS 2014/15 wk Schedulingstrategien

82 Realisierung Warteschlange Prio Warteschlange Prio 1 Warteschlange Prio Es gibt sehr viele Varianten dieses Schemas statische Prioritäten, z.b. in planbaren Echtzeitsystemen (Autoradio: Reaktion auf Stationswechseltaste hat Vorrang vor Senderfeldstärkenüberwachung) kommerziellen Rechenzentren (wer mehr zahlt, ist eher an der Reihe) dynamische Prioritäten, abhängig z.b. von verbrauchter CPU-Zeit (Verhinderung der Dominanz) E/A-Intensität Wartegrund Betriebssysteme, WS 2014/15 wk Schedulingstrategien

83 Realisierung Warteschlange Prio Warteschlange Prio 1 Warteschlange Prio Beispiel aktueller Linux O(1) Scheduler Prios 1-140, je Core eine Warteschlangengruppe mit einer Warteschlange je Prio ( 8 Cores: bis zu 1120 Warteschlangen) Betriebssysteme, WS 2014/15 wk Schedulingstrategien

84 Schedulingstrategien in Echtzeitsystemen Beispielszenario 1: PC MPEG-Videostrom mplayer Bildfolge 25 Bilder/Sek Lastmuster: z.b. alle 40 msek für 15 msek msek Erzeugte Prozessorbelegung ohne Konkurrenz msek Frist für Bild 1 Bild 2 Bild 3 Bild 4 Betriebssysteme, WS 2014/15 wk Schedulingstrategien

85 Beispielszenario 2: Digitales Mischpult MPEG-Videostrom Bildfolge 30 Bilder/Sek MPEG-Videostrom Bildfolge 25 Bilder/Sek Lastmuster: z.b. alle 40 msek für 15 msek + alle 33 1 / 3 msek für 10 msek msek Erzeugte Prozessorbelegung mit Konkurrenz z.b. Frist für.. Bild 1 Bild 2 Bild 3 Bild 4 Bild msek Frist für Bild 1 Bild 2 Bild 3 Bild 4 Betriebssysteme, WS 2014/15 wk Schedulingstrategien

86 Schedulingziele in Echtzeitsystemen Finden einer ausführbaren Bearbeitungsreihenfolge (ein Schedule ) die Fristen einhält deren Berechnung ökonomisch ist (Algorithmuskosten) die selbst ökonomisch ist (z.b. Minimierung der Threadwechsel) die sich (evtl.) an wechselnde Lastmuster anpasst Verbreitete Algorithmen EDF: früheste Frist zuerst (earliest deadline first) RMS: Raten-monotones Scheduling (rate monotonic scheduling) für periodische Lasten (z.b. Mischpult, DVD-Spieler, technische Prozesse) Betriebssysteme, WS 2014/15 wk Schedulingstrategien

87 Earliest Deadline First (EDF) Methode wird ein Thread rechenbereit, so nennt er seine nächste Deadline (Frist) von allen bereiten Threads ist immer derjenige mit der frühesten Deadline aktiv (dringend=wichtig) Folglich... arbeitet der Algorithmus mit dynamischen Prioritäten adaptiv ist die Priorität um so höher, je näher seine Frist liegt ist er preemptiv Voraussetzung kausale und zeitliche Unabhängigkeit der Threads (keine wechselseitige Blockierung) Betriebssysteme, WS 2014/15 wk Schedulingstrategien

88 The Works Beispiellast (hier periodisch) Thread A: Periodendauer 30 msek, Aktivphase 10 msek Thread B: Periodendauer 40 msek, Aktivphase 15 msek Thread C: Periodendauer 50 msek, Aktivphase 5 msek Frist: Jeweils der Beginn der folgenden Aktivphase A B C C A B A A A A B B B C C EDF A B? C A? B C? A? B A? C? A B msek Anmerkungen bei Bereitwerden eines Threads werden Prioritäten neu berechnet bis zu einer Prozessorauslastung von 100% wird ein Schedule gefunden kausale oder zeitliche Abhängigkeiten? Betriebssysteme, WS 2014/15 wk Schedulingstrategien

89 2.3.6 Zusammenfassung Das Problem Anzahl der Threads >> Anzahl der Prozessoren nicht alle können gleichzeitig rechnen eine Auswahl muss getroffen werden Auswahlstrategie: Schedulingalgorithmen Welche Threads erhalten wann wie lange einen Prozessor zugeteilt Zulassung Scheduling Beendigung frisch bereit aktiv beendet Ereignis Warten blockiert Betriebssysteme, WS 2014/15 wk Zusammenfassung

90 Schedulingalgorithmen haben großen Einfluss auf Durchsatz, Reaktivität, E/A-Performanz, Echtzeitverhalten, sind daher spezialisiert auf konkrete Einsatzszenarien, z.b. Batch-Systeme, interaktive Systeme, Serversysteme, Echtzeitsysteme sind weiter differenziert bzgl. Annahmen über typische Lastmuster (Periodizität, Fristen) gegebene Garantien z.b. bzgl. der Fairness, Fristeneinhaltung, erzielbare Prozessorauslastung... Threadwechsel erfolgen zu wohldefinierten Zeitpunkten durch Sichern und Restaurieren von Thread/Prozesskontexten können mit erheblichen Kosten verbunden sein (Adressraumwechsel, FPU-Kontextwechsel) Betriebssysteme, WS 2014/15 wk Zusammenfassung

91 2.4 Privilegierungsebenen Situation Anwendungsprozesse und BS nutzen gemeinsame Ressourcen Raum BS AP AP BS AP AP Zeit Problem Schutz vor fehlerbedingten oder bösartigen Wechselwirkungen Lösung Isolation durch Speicherzugriffsschutzmechanismen Privilegierungsebenen Betriebssysteme, WS 2014/15 wk Arbeitsspeicher Prozessor 2.4 Privilegierungsebenen

92 Schutz von Arbeitsspeicherbereichen Isolation (Code, Datenstrukturen) von Betriebssystem und Anwendungsprozessen Isolation von Anwendungsprozessen untereinander Schutzmechanismen des VMM, implementiert durch MMU ( Kap. 3) Schutz kritischer (privilegierter) Prozessorinstruktionen Definition des Arbeitsspeicher-Layouts (Zugriff auf MMU) Anhalten des Prozessors, Setzen von Interruptsperren Verändern kritischer Prozessorregister Zugriff auf E/A-Controller Schutzmechanismen implementiert durch Privilegierungsebenen Betriebssysteme, WS 2014/15 wk Privilegierungsebenen

93 Privilegierungsebenen der Intel x86-architektur: Ringe Ring 0: höchste Privilegien, sämtliche Prozessorinstruktionen erlaubt Ebene der BS-Software; je nach BS-Architektur mehr oder weniger umfangreich Mikrokernarchitekturen: nur Mikrokern monolithische Architekturen: gesamte BS-Software Ring 3: keine privilegierten Prozessorinstruktionen erlaubt Ebene der Anwendungsprozesse Ring 1, 2: Auswahl privilegierter Prozessorinstruktionen erlaubt Mikrokernarchitekturen: E/A-Subsysteme: Zugriff auf E/A-Controller Speichermanagement: Zugriff auf MMU monolithische Architekturen: selten genutzt Betriebssysteme, WS 2014/15 wk Privilegierungsebenen

94 Verwendungsbeispiele Linux, Windows Ring 3 Ring 2 Ring 1 Anwendungsprozesse unbenutzt unbenutzt Ring 0 BS Betriebssysteme, WS 2014/15 wk Privilegierungsebenen

95 Verwendungsbeispiele Virtualisierungen Ring 3 Ring 2 Ring 1 Ring 0 Anwendungsprozesse unbenutzt BS Hypervisor Betriebssysteme, WS 2014/15 wk Privilegierungsebenen

96 Verwendungsbeispiele Mikrokernarchitekturen Ring 3 Ring 2 Ring 1 Ring 0 BS-Komponenten, Anwendungsprozesse E/A-System vertrauenswürdige BS-Komponenten Mikrokern Betriebssysteme, WS 2014/15 wk Privilegierungsebenen

97 HW-Unterstützung aktuelle Privilegierungsebene ist Teil des Prozessor-Statusregisters: Current Privilege Level (CPL) Grundlage der HW-Schutzmechanismen; permanente Überwachung der ausgeführten Instruktionen der Arbeitsspeicherzugriffe Modifikation des CPLs durch privilegierte Instruktionen bei Beginn und Abschluss des Aufrufs eines Systemdienstes ( 2.5.6) einer Unterbrechungsbehandlung ( 2.5.7) Betriebssysteme, WS 2014/15 wk Privilegierungsebenen

98 MSGs jeder auf Privilegierungsebene < 3 ablaufende Prozess hat Zugriff auf kritische Ressourcen jeder auf Privilegierungsebene 0 ablaufende Prozess hat Zugriff auf sämtliche Ressourcen eines Prozessors sämtliche Instruktionen (z.b. HALT) sämtliche Prozessorregister (z.b. PSR) sämtliche Register der E/A-Peripherie (s. Kap. 6) MMU-Register zur Adressraum-Konfiguration (s. Kap. 3) Betriebssysteme, WS 2014/15 wk Privilegierungsebenen

99 Sämtlicher Schutz von Anwendungsprozessen und Betriebssystem Anwendungsprozessen untereinander beruht elementar auf 2 Bits hardwareimplementierten Prozessor-Privilegierungsebenen hardwareimplementierten Speicherzugriffsschutzmechanismen Die Korrektheit der Implementierung und Nutzung dieser Mechanismen ist das Fundament! jeglicher Sicherheitseigenschaften von Betriebssystemen! Betriebssysteme, WS 2014/15 wk Privilegierungsebenen

100 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation 2.5 Kommunikation und Synchronisation Beispiel 1: Interaktionen zwischen BS-Komponenten GUI Office Google Earth MatLab ABS Firefox Anwendungsschnittstelle (Application Programmer s Interface, API) Betriebssystem-Dienste Prozessmanagement Dateimanagement Netzwerkmanagement Prozessor- Ressourcen Ressourcenmanagement Kommunikations- Ressourcen Speicher- Ressourcen E/A Ressourcen

101 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Dateimanagement Datei- Dateisystem- management manager Arbeitsspeicher- Management (VMM) HDD.putJob( ) Gerätemanager-Interface HDD- Gerätemanager ( Treiber )

102 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Beispiel 2: Interaktionen zwischen Anwendungsprozessen Codec, z.b. H.264 LiveStream Server API z.b. IEEE 1394 Firewire FWDD HDD NWDD z.b. WLAN FW-Karte Netzwerkkarte

103 Das Problem Codec forever do { schreibe(bild) } LiveStream Server forever do { lese(bild) } Austausch von Daten zwischen Prozessen Kommunikation (Inter-Prozess-Kommunikation, IPC) Abweichende Geschwindigkeiten von Sender und Empfänger Synchronisation Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation

104 Naiver Versuch Codec LiveStream Server forever do { pufferq.hinten:=bild } forever do { Bild:=pufferQ.vorne; } Codec- Thread Server- Thread Ganz so einfach geht es leider nicht Puffer voll Puffer leer Pufferelement in Benutzung Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation

105 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Problemfelder gleichzeitiges Lesen und Schreiben des selben Pufferelements: Konsistenz des gelesenen Bildes? Codec- Thread Server- Thread Operationen auf gemeinsamen Variablen (Pufferelemente) sind kritische Abschnitte erfordern wechselseitigen Ausschluss

106 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation unterschiedliche Geschwindigkeiten von Erzeuger und Verbraucher: Pufferüberlauf, Leere Codec- Thread Server- Thread Synchronisation relativer Geschwindigkeiten

107 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Kritische Abschnitte und wechselseitiger Ausschluss Definition Es gibt Ressourcen, die als ganzes oder bzgl. einzelner Operationen nur exklusiv, d.h. zu einem Zeitpunkt nur durch einen einzigen Thread nutzbar sind. Eine Phase, in der ein Thread eine exklusive Operation auf einer Ressource ausführt, heißt kritischer Abschnitt. Kritische Abschnitte erfordern den wechselseitigen Ausschluss konkurrierender Threads.

108 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Problemdefinition Annahmen konkurrierende Threads arbeiten asynchron, z.b. in einer unendlichen Schleife dabei betreten und verlassen sie irgendwann einen kritischen Abschnitt Betreten und Verlassen dieses Abschnitts wird durch Algorithmen organisiert, die den kritischen Abschnitt umgeben (Entry/Exit-Code) beliebiger beliebiger Code Code beliebiger Code Entry-Code Entry-Code Entry-Code kritischer Abschnitt Exit-Code Exit-Code Exit-Code beliebiger beliebiger Code Code beliebiger Code

109 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Algorithmen zum wechselseitigen Ausschluss Grundsätzliche Anforderungen Korrektheit: In einem kritischen Abschnitt befindet sich zu jedem Zeitpunkt höchstens ein Thread (wechselseitiger Ausschluss) Lebendigkeit: Falls ein Thread einen kritischen Abschnitt betreten möchte, dann betritt (irgendwann) (irgend)ein Thread diesen Abschnitt Verhungerungsfreiheit: Kein Thread wartet für immer vor einem kritischen Abschnitt

110 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Wechselseitiger Ausschluss - ein erster (naiver) Versuch Szenario Codec- Thread Server- Thread (Vereinfachung: Pufferkapazität = 1 Bild) 2 parallele Aktivitäten 1 exklusiv nutzbare Ressource, der Puffer kritische Abschnitte: schreiben und lesen des Puffers Idee während Benutzung des Puffers wird dieser als busy markiert bei Vorfinden eines so markierten Puffers wird gewartet

111 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Wechselseitiger Ausschluss - ein erster (naiver) Versuch Szenario Codec- Thread Server- Thread (Vereinfachung: Pufferkapazität = 1 Bild) also: Entry Code (Belegen des kritischen Abschnitts): loop until not bufferbusy; bufferbusy := true; Exit-Code (Freigeben des kritischen Abschnitts): bufferbusy := false; beliebiger Code Entry-Code kritischer Abschnitt Exit-Code beliebiger Code

112 Writer- Thread bufferbusy Reader- Thread Writer-Thread (Codec): Reader-Thread (Server): forever do { forever do { loop until not bufferbusy; codepicfromcamerastream(pic); bufferbusy := true; loop until not bufferbusy; read(buffer, pic); bufferbusy := true; bufferbusy := false; write(buffer, pic); sendtosomeclient(pic); bufferbusy := false; } } Korrektheit: parallele Ausführung der Threads bei ; Ursache: Race Conditions Lebendigkeit: viel zu sehr... Verhungern: z.b. bei Pseudoparallelität lediglich Problemverlagerung: kritischer Zugriff nun auf bufferbusy Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation

113 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Was tun? 2 Probleme dieses naiven Synchronisationsversuchs Korrektheit (wechselseitiger Ausschluss) Problemursache: zwischen Testen der Bedingung und Reaktion auf Ergebnis ändert paralleler Thread die Bedingung (race) Lösungsidee: Atomarität (Ununterbrechbarkeit) von Codesequenzen herstellen: loop until not bufferbusy; bufferbusy:=true Verhungern Problemursache: (mindestens) einer der beteiligten Threads kommt nicht zum Zuge Lösungsidee: explizit für Abwechslung sorgen Lösungen: Synchronisations- und Kommunikationsmechanismen

114 Betriebssysteme, WS 2014/15 wk Kommunikation und Synchronisation Synchronisations- und Kommunikationsmechanismen Semaphore Hoare sche Monitore Transaktionaler Speicher Botschaften Fernaufrufe Synchrnisationsmechanismen Interprozesskommunikationsmechanismen (IPC); siehe auch Vorlesung Kommunikationsmodelle

115 Betriebssysteme, WS 2014/15 wk Semaphore (Binäre) Semaphore Dijkstra 1965 Idee: Flagge mit 2 Zuständen frei belegt mit 2 atomaren Operationen belegen: P(Semaphorname) ( Passeren ) freigeben: V(Semaphorname) ( Vriegeven ) Beispiel

116 Betriebssysteme, WS 2014/15 wk Semaphore (Binärer) Semaphor Abstrakter Datentyp mit 2 atomaren Operationen P, V belegen: P(Semaphorname) freigeben: V(Semaphorname) Zustand Anwendungsschnittstelle (Application Programmer s Interface, API) Betriebssystem-Dienste Prozessmanagement Dateimanagement Netzwerkmanagement Ressourcenmanagement Prozessor- Ressourcen Speicher- Ressourcen E/A Ressourcen E/A Ressourcen Kommunikations- Ressourcen Abstrakte Semantik P(semaphore s) wait until s.zustand = frei; s.zustand := belegt; V(semaphore s) s.zustand := frei;

117 Betriebssysteme, WS 2014/15 wk Semaphore Benutzung semaphore s; s=new(semaphore); P(s); <kritischer Abschnitt> V(s); } Regel dabei: sämtliche Nutzer des kritischen Abschnitts müssen dies tun

118 Nicht ganz einfach: Implementierung z.b. als Klasse, die Operationen P und V exportierend mit einer internen Aufruferthread-Warteschlange waitq zwei Operationen atomicbegin und atomicend, die Ununterbrechbarkeit und Exklusivität herstellen (s.u.) P(semaphore s) { } atomicbegin(); if (s.state==busy) { s.waitq.enter(caller); suspend(caller); } s.state=busy; atomicend(); V(semaphore s) { } atomicbegin(); s.state=not busy; continue(s.waitq.leave()); atomicend(); Betriebssysteme, WS 2014/15 wk Semaphore

119 Nutzung auf Anwendungsebene genutzt von multi-threaded Anwendungen (Webserver, PowerPoint, etc.) Quelle Senke implementiert durch Systemaufrufe und (Thread)Bibliotheken Nutzung auf BS-Ebene genutzt von allen nebenläufigen Komponenten Dateimanagement VMM implementiert durch BS selbst im Maschinenraum: atomicbegin(), atomicend() HDD- Gerätemanager Betriebssysteme, WS 2014/15 wk Semaphore

120 Unterstützung durch Hardware: die TSL-Operation Atomarität Ausschluss paralleler Ausführung Betriebssysteme, WS 2014/15 wk Implementierung von atomicbegin/end TestAndSetLock ( TSL ) im Instruktionssatz eines Prozessors Im Maschinenraum testen des Inhalts einer Speicherzelle, ergebnisabhängig Wert hineinschreiben TSL busy, int if (busy==0) busy=int atomicbegin(s): TSL s.state, callingthread.id CMP s.state, callingthread.id JZE gotit CALL scheduler.yield JMP atomicbegin gotit: RET try to get lock did I get it? yes optional, mandatory in monocores: give up processor try again got it, may enter critical region Multicorearchitekturen Synchronisation von Threads mit gemeinsamen Adressraum Synchronisation von Threads ohne gemeinsamen Adressraum (Prozesse, MParchitekturen mit individuellem Speicher je Prozessor) allen Aufrufern gemeinsamer Speicher notwendig! Semaphore

121 1. Problem: Konsistenz des gelesenen Bildes Benutzung von Semaphoren Zurück zu unserem Synchronisationsproblem Codec- Thread Semaphor bufferbusy Server- Thread Writer-Thread: forever do { codepicfromcamerastream(pic); P(bufferBusy); write(buffer,pic); V(bufferBusy); } Reader-Thread forever do { P(bufferBusy); read(buffer,pic); V(bufferBusy); sendtosomeclient(pic); } wechselseitiger Ausschluss ungelöst: Geschwindigkeitsdifferenz bei endlichem Puffer schneller Writer-Thread findet vollen Puffer vor schneller Reader-Thread liest aus noch leerem Puffer Betriebssysteme, WS 2014/15 wk Semaphore

122 2. Problem: Geschwindigkeitsdifferenz (bei einelementigem Puffer) Codec- Thread bufferbusy bufferfull buffermt Server- Thread wechselseitiger Ausschluss Writer-Thread: forever do { codepicfromcamerastream(pic); } P(bufferMt); P(bufferBusy); write(buffer,pic); V(bufferBusy); V(bufferFull); Reader-Thread forever do { } P(bufferFull); P(bufferBusy); read(buffer,pic); V(bufferBusy); V(bufferMt); sendtosomeclient(pic); Schutz vor Puffer- Über/Unterlauf Betriebssysteme, WS 2014/15 wk Semaphore

123 2. Problem: Geschwindigkeitsdifferenz (bei mehrelementigem Puffer) Codec- Thread bufferbusy bufferfull = 0 buffermt = 4 Server- Thread Writer-Thread: forever do { codepicfromcamerastream(pic); } Down(bufferMt); P(bufferBusy); write(buffer,pic); V(bufferBusy); Up(bufferFull); Reader-Thread forever do { } Down(bufferFull); P(bufferBusy); read(buffer,pic); V(bufferBusy); Up(bufferMt); sendtosomeclient(pic); Betriebssysteme, WS 2014/15 wk Semaphore

124 Betriebssysteme, WS 2014/15 wk Semaphore Zusammenfassung Semaphore... lösen 2 elementare Synchronisationsprobleme paralleler Aktivitäten wechselseitiger Ausschluss unterschiedliche Geschwindigkeiten erreichen dies durch aktives Warten oder Suspendierung sind implementiert in den Tiefen des Ressourcenmanagements sind aber auch softwaretechnisch problematisch in größeren Systemen: Synchronisationsoperationen (P und V) stehen im Code dort, wo kritische Operationen (z.b. read/write) stehen also verteilt im Programmtext sämtlicher Threads insbesondere also getrennt von den synchronisierten Daten Korrektheitsproblem: die unabdingbare Vollständigkeit Symmetrie der P- und V-Operationen ist schwierig erreichbar und nachweisbar

125 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Hoare sche Monitore Charles Antony Richard Hoare Die Idee Nutzung des Prinzips der Datenabstraktion Sie kennen dies bereits aus der Mathematik: Algebren = Assoziationen von Grundmengen darauf definierten Operationen aus Programmiersprachen: z.b. C++ - Klassen = Assoziationen von Daten darauf definierten Methoden

126 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Hoare sche Monitore legen noch eins drauf: Zusammenfassung von Daten darauf definierten Methoden Synchronisation zu einem abstrakten Datentyp, dessen Operationen jeweils kritische Abschnitte mit wechselseitigem Ausschluss darstellen Zugriff auf Daten ausschließlich über selbstständig synchronisierende Operationen

127 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore & Also statt so... Writer-Thread Writer-Thread P(bufferBusy); P(bufferBusy); write(buffer,pic); write(buffer,pic); V(bufferBusy); V(bufferBusy); Reader-Thread P(bufferBusy); read(buffer,pic); V(bufferBusy); Variable buffer Semaphor bufferbusy

128 ... so: Writer-Thread Writer-Thread Puffer.write(buffer,pic); Puffer.write(buffer,pic); Reader-Thread Puffer.read(buffer,pic); Monitor Puffer { buffer public: write(buffer,pic) read(buffer,pic) Betriebssysteme, WS 2014/15 wk } Aufrufer muss nicht wissen ob Synchronisation nötig ist mit welchen Mechanismen dies erfolgen muss welche Regeln dabei gelten Hoare sche Monitore

129 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Ziel der Regeln Monitor-Synchronisationsregeln Wechselseitiger Ausschlusses der Monitoroperationen zu jedem Zeitpunkt ist höchstens ein Thread in einem Monitor aktiv 1. Jede Monitoroperation ist am Eingang und an den Ausgängen durch einen Türsteher gesichert 2. Das Betreten des Monitors erfolgt nur mit dessen Zustimmung ( Anklopfen ) 3. Falls ein anderer Thread im Monitor aktiv ist, wird die Zustimmung verweigert und der anklopfende Thread suspendiert ( P-Operation) 4. Wenn ein Thread den Monitor verlässt, wird ein wartender Thread eingelassen (fortgesetzt, V-Operation) Teil 1

130 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Implementierung der Regeln basierend auf Konzepten geringeren Abstraktionsniveaus: Semaphore je Monitor ein Semaphor jede Operation eines Monitors enthält am Eingang eine P-Operation an jedem (!) Ausgang eine V-Operation auf diesen Semaphor

131 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Benutzung von Monitoren Komfortabel: integriert in Programmiersprache Programmiersprache kennt die Abstraktion Monitor Modula-2, Concurrent Pascal Monitor-Operationen werden automatisch durch P- und V-Operationen geklammert (Compiler) Vollständigkeit und Symmetrie der Synchronisationsoperationen durch Compiler garantiert CLASS Puffer = Monitor { } VAR buffer; PROCEDURE ENTRY write( ) BEGIN END;

132 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Benutzung von Monitoren Weniger komfortabel: schwache Integration: Java, class Monitor aus dem thread-package class Puffer extends Monitor { } manuelle Integration von enter()/leave()-operationen, fehleranfällig verwandt: synchronized-methoden (wechselseitiger Ausschluss) synchronized write(pic) { }

133 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Geschwindigkeitsdifferenz Bedingungsvariable ( Conditions ) Quelle (Writer): forever do { if Puffer voll warte auf (Puffer nicht voll); if Puffer leer signalisiere (Puffer nicht leer); schreibe Bild; } Senke (Reader): forever do { if Puffer leer warte auf (Puffer nicht leer); if Puffer voll signalisiere (Puffer nicht voll); lese Bild; } Bedingungsvariable Puffer nicht voll, Puffer nicht leer mit 2 Operationen: Warten auf das Vorliegen der Bedingung Signalisieren des Vorliegens der Bedingung Monitore mit Bedingungsvariablen (vgl. Semaphore: buffermt, bufferfull)

134 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Ziel Monitor-Synchronisationsregeln Wechselseitiger Ausschluss und Geschwindigkeitsanpassung 1. Jede Monitoroperation ist am Eingang und den Ausgängen durch einen Türsteher gesichert 2. Das Betreten des Monitors erfolgt nur mit dessen Zustimmung ( Anklopfen ) 3. Falls bereits ein anderer Thread im Monitor aktiv ist, wird die Zustimmung verweigert und der anklopfende Thread suspendiert ( P-Operation) 4. Wenn ein Thread den Monitor verlässt, wird ein wartender Thread eingelassen (fortgesetzt, V-Operation) 5. Gerät ein Thread innerhalb einer Monitoroperation in eine Wartesituation (warten auf Bedingungsvariable), so verlässt er den Monitor 6. Bevor ein auf eine Bedingung wartender Thread fortgesetzt wird, muss er wieder am Türsteher vorbei Teil 2

135 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Implementierung der Bedingungsvariablen je Bedingungsvariable ein Semaphor (mit seiner Warteschlange) wait-operation eines Monitors P-Operation des Semaphores signal-operation eines Monitors V-Operation des Semaphores

136 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Benutzung von Bedingungsvariablen Komfortabel: integriert in Programmiersprache Programmiersprache kennt den Typ Monitor den Typ Bedingungsvariable die Operationen wait und signal Datenstrukturen für Bedingungsvariablen durch Compiler automatisch generiert wait und signal im Laufzeitsystem der Sprache implementiert z.b. Java: class Condition mit Methoden await() und signal() class Puffer extends Monitor { } Condition nonfull = new Condition(); nonfull.await();

137 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Das allgemeine Erzeuger/Verbraucher-Problem Producer/Consumer, Reader/Writer, Bounded Buffer Erzeuger: forever do { erzeuge(i); buffer.write(i); }; Codec monitor class buffer { int count=0, n=10, buffer[1..n]; condition nonfull, nonmt; Server Verbraucher: forever do { i=buffer.read(); verbrauche(i); }; } void write(int i) { if (count == n) then wait(nonfull); if (count == 0) then signal(nonmt); count = count +1; buffer[count] = i; }; int read() { if (count == 0) then wait(nonmt); if (count == n) then signal(nonfull); count = count-1; return(buffer[count+1]); }

138 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Beispiel zeigt Lösung 2er Aspekte der Synchronisation wechselseitiger Ausschluss der Zugriffe auf gemeinsame Daten ( buffer ) durch wechselseitigen Ausschluss von Monitoroperationen kurzzeitiges Ausbremsen Anpassung unterschiedlicher Geschwindigkeiten von Erzeuger und Verbraucher durch Warten auf und Signalisieren von Bedingungen (nonfull, nonmt) längerfristiges Ausbremsen

139 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Anmerkungen zu Semaphoren und Hoare schen Monitoren Methoden und Techniken verwendbar für Threads und Prozesse innerhalb eines BS Threads innerhalb eines Anwendungsprozesses Anwendungsprozesse untereinander (cave! Gemeinsamer Speicher!) BSe implementieren derartige Synchronisationsmechanismen selber Anwendungsprozesse nutzen Bibliotheken oder BS-Dienste, z.b. Semaphore über Systemdienste (z.b. Unix): semop, semctl, semget Threadbibliotheken: pthread_mutex_lock, pthread_mutex_unlock, pthread_cond_wait, pthread_cond_signal Monitore Java-Klassenbibliotheken (thread-package) Systemimplementierungssprachen wie Concurrent Pascal, Modula

140 Betriebssysteme, WS 2014/15 wk Transaktionaler Speicher Transaktionaler Speicher Problem Semaphore Hoare sche Monitore lösen das Problem wechselseitigen Ausschlusses durch Sperren Verhinderung paralleler Abläufe Damit haben wir heute vermehrt ein Problem: Performanz

141 Betriebssysteme, WS 2014/15 wk Transaktionaler Speicher Performanz Lange Zeit war Performanz sehr bequem wachsende Systemleistung durch wachsende CPU-Geschwindigkeit und interne Parallelität Erhöhung der Taktfrequenz Pipelining: Zerlegung und parallele Abarbeitung einzelner Maschineninstruktionen Hyperthreading: parallele Maschineninstruktions- und Datenstromverarbeitung spekulative Ausführung auf Maschineninstruktionsebene für Software weitgehend unsichtbar

142 Betriebssysteme, WS 2014/15 wk Transaktionaler Speicher Ära ist beendet physikalische Aspekte der Energieverteilung/Wärmeableitung auf Chip Limitierung der Steigerung der Taktfrequenz logische Aspekte der Instruktionsausführung Limitierung spekulativer Ausführung und Instruktionsparallelität Leistungssteigerung durch Paradigmenwechsel der Prozessorarchitektur: Multicores Paradigmenwechsel der Software notwendig: parallele/verteilte Algorithmen hochparallele, nicht sperrende Synchronisationsmodelle transaktionaler Speicher

143 Betriebssysteme, WS 2014/15 wk Transaktionaler Speicher Stand der Kunst: frisch Vorschläge zur Programmiermodellbildung zahlreiche prototypische HW (+ SW) -Implementierungen erste serienreife (...) Prozessoren (e.g. Intel Haswell, IBM) Interessant. Vielversprechend. aber:

144 Betriebssysteme, WS 2014/15 wk Botschaften Botschaften Problem Semaphore Hoare sche Monitore TM erfordern zu ihrer Implementierung gemeinsamen Speicher der Beteiligten Gibt es nicht falls die Beteiligten auf unterschiedlichen Rechnern ablaufen in lose gekoppelten MP-Architekturen disjunkte Adressräume (s.u.) besitzen ein anderes Kommunikationsparadigma muss her

145 Betriebssysteme, WS 2014/15 wk Botschaften Die Idee Codec- Prozess Fileserver Betriebssystem

146 Die Idee Codec- Prozess Fileserver Betriebssystem Betriebssystem Codec-Prozess: forever do { codepicfromcamerastream(pic); send(fileserver, pic); } Fileserver: forever do { receive(pic); SomeFile.write(pic); } Betriebssysteme, WS 2014/15 wk Botschaften

147 Betriebssysteme, WS 2014/15 wk Botschaften Botschaftenbasierte Kommunikation 2 elementare Operationen Senden einer Botschaft an einen Empfänger send(in Empfänger, IN Botschaft) Empfangen einer Botschaft von einem Absender receive(out Absender, OUT Botschaft) zahleiche Varianten: Vorlesungen Kommunikationsmodelle, Telematik

148 Betriebssysteme, WS 2014/15 wk Hoare sche Monitore Anmerkungen genutzt für Kommunikation zwischen Prozessen innerhalb eines (Mikrokern-) BS Anwendungsprozesse untereinander (Klienten, Server) BSe implementieren send/receive-ipc Anwendungsprozesse nutzen Bibliotheken oder BS-Dienste, z.b. (Linux): msgsnd, msgrcv Sockets

149 Betriebssysteme, WS 2014/15 wk Fernaufrufe Fernaufrufe (Remote Procedure Calls, RPCs) Problem Datenmodell des send/receive-modells: Zeichenfolge sehr primitiv gewohnte Datenmodelle z.b. aus Programmiersprachen (Prozedur) Signaturen (typisierte Parameterlisten) Idee: Adaption eines anwendungsnahen, unkomplizierten und vertrauten Kommunikationsmodells an die Eigenschaften verteilter Systeme Prozedurfernaufruf (Remote Procedure Call, RPC) Methodenfernaufruf (Remote Method Invocation, RMI) Kommunikationsmodelle, Kap. 3.6, funktionsaufrufbasierte Modelle

150 Betriebssysteme, WS 2014/15 wk Fernaufrufe Wo finden wir RPCs/RMIs? Kommunikation zwischen Computern mit Netzwerk-Betriebssystemen verteilte Dateisysteme (Sun Network File System (NFS)) Zeitserver (NTP) Namendienste (DNS) Kommunikation zwischen Betriebssystemkomponenten in Mikrokernarchitekturen Interaktionen von Prozess- und Dateimanagement aber auch: Kommunikation zwischen Komponenten verteilter Anwendungssysteme (CORBA, Java-VM) Finanz- und Versicherungswirtschaft (Sicherheitsinfrastrukturen) Telemetriesysteme (Raumfahrt) Telekommunikationssysteme (Vermittlungssysteme) Echtzeitsysteme (Produktionsanlagensteuerung) eingebettete Systeme (Fahrzeugsteuerung)

151 Betriebssysteme, WS 2014/15 wk Fernaufrufe Szenario Beispiel 1 Kommunikation zwischen Computern mit Netzwerk-Betriebssystemen Unix-Systemfamilie vernetzt mittels LAN verteiltes Dateisystem: Sun Network File System (NFS) Kommunikationsmechanismus: Sun RPC Das Szenario physisch Fileserver

152 Betriebssysteme, WS 2014/15 wk Fernaufrufe Das Szenario logisch Zusammenkleben zunächst unabhängiger Filesysteme Klebestellen : mount-punkte was geschieht an einem Klebepunkt?

153 Betriebssysteme, WS 2014/15 wk Fernaufrufe Softwarekomponenten des Szenarios Arbeitsplatzrechner- Betriebssystem Fileserver- Betriebssystem lokales Dateisystem NFS- Klient RPC NFS- Server home green Umlenkung mount blauserver.prakinf.tu-ilmenau.de:/home/blau /home mount grünserver.prakinf.tu-ilmenau.de:/grün /green...

154 Betriebssysteme, WS 2014/15 wk Fernaufrufe Beispiel 2 Betriebssysteme mit Kern-Architektur Grundidee dieser Architekturform elementare Betriebssystem-Funktionalität in sehr kleinem, hochprivilegiertem Betriebssystemkern ( Kern) typische Funktionen: Threads, Adressräume, IPC weniger elementare Aufgaben schwächer privilegiert ( reguläre Anwendungssysteme) API - Implementierung Prozess-Server Fileserver Prozessmanagement Netzwerkprotokolle VMM NetzwerkSvr Gerätetreiber Dateisystem VMM Kern: Threads, Adressräume, IPC Hardware monolithische Schichtenarchitektur Hardware Kern-Architektur

155 Betriebssysteme, WS 2014/15 wk Fernaufrufe Folgen Isolation der BS-Komponenten Adaptivität (Auf- und Abskalierung der Systemfunktionalität) Robustheit (Fehlerisolation) IT-Sicherheit (TCB-Größe) Korrektheit (Verifizierbarkeit) Kommunikationskosten API - Implementierung Prozess-Server Fileserver Prozessmanagement Netzwerkprotokolle VMM NetzwerkSvr Gerätetreiber Dateisystem VMM Kern: Threads, Adressräume, IPC Hardware monolithische Schichtenarchitektur Hardware Kern-Architektur

156 Betriebssysteme, WS 2014/15 wk Fernaufrufe Kommunikationskosten Prozeduraufruf monolithische Architektur: innerhalb eines Adressraums Prozedurfernaufruf Kern-Architektur: über Adressraumgrenzen hinweg API - Implementierung Prozess- Server Fileserver Prozessmanagement Netzwerkprotokolle VMM Netzwerk- Server Gerätetreiber Dateisystem VMM Kern Hardware Hardware

157 Betriebssysteme, WS 2014/15 wk Fernaufrufe Zahltag Das kostet! RPCs gibt es nicht umsonst: Parameter-Marshalling, Prozess/Addressraumwechsel Laufzeiten Zyklen PC Accent (1981) Mach (1986) V-Kernel (1986) Amoeba (1986) Taos (1990) Taos LRPC (1990) L4 (1997) leichtgewichtige RPC-Modelle, z.b. in Kern-Architekturen

158 Betriebssysteme, WS 2014/15 wk Systemaufrufe Systemaufrufe Problem: Kommunikation Anwendungsprozess BS BS stellt zahlreiche Dienste bereit (Linux 250, Apple OS X 500); z.b. Prozesserzeugung (fork) Programmausführung (exec ) Dateimanagement (open, close, read, write) Kommunikation (msg, socket, shm ) In diesem Abschnitt: Aufrufmethoden und -mechanismen Ring 3 - Privilegien Prozeduraufruf++ Anwendungsprozess fork(),... Ring 0 - Privilegien BS-Dienste Betriebssystem-Schnittstelle (Application Programmer s Interface (API)) Prozessmgmt Dateisysteme Sockets...

159 Betriebssysteme, WS 2014/15 wk Systemaufrufe Methodische Überlegungen: geeignetes Aufrufmodell? Wünsche des Anwendungsentwicklers Bequemlichkeit Performanz (hohe Aufruffrequenz, tausende pro Sekunde) Wünsche des BS-Entwicklers Sicherheit Robustheit reguläre Prozeduraufrufe erfüllen Kriterien nicht (unterschiedliche Adressräume, Privilegien, Programmiersprachen) Prozedurfernaufruf: bequem, performant, sicher, robust teuer leichtgewichtiges RPC-Modell

160 Betriebssysteme, WS 2014/15 wk Systemaufrufe Ablauf eines Systemaufrufs Anwendungsebene Anwendungsprozess:... write(fd,buffer,nbytes);... libc: write(fd,buffer,nbytes) { push(nbytes); push(buffer); push(fd); push(write_c); TRAP; } Datensegment Codesegment write_c fd buffer nbytes User-SP Stacksegment Betriebssystem-Schnittstelle (Application Programmer s Interface (API)) Sys_write() { ParamArea=User-SP+8; // Verweis auf aufrufspezifische Parameter-struct fd=paramarea->fd; buffer=paramarea->buffer; nbytes=paramarea->nbytes; Betriebssystem struct { int fd; char* buffer; int nbytes } ParamArea; TRAP-Interruptbehandlung: switch User-SP-> case read_c: Sys_read() case write_c: Sys_write()

161 Betriebssysteme, WS 2014/15 wk Systemaufrufe Probleme hierbei und ihre Lösungen Problem: Unterschiedliche Programmiersprachen kein einheitliches Format der Aufrufparameter (Reihenfolge, Format) Lösung: normierte Parameterstruktur und Datentyprepräsentation zwischen Anwendungsprogramm und Betriebssystem definiert durch API-Spezifikation des BS implementiert durch zwischengeschaltete Bibliothek (z.b. libc; Stellvertreter-Prozeduren, Urform heutiger Middleware-Stubs) libc: write(fd,buffer,nbytes) { push(nbytes); push(buffer); push(fd); push(write_c); TRAP; } write_c fd buffer nbytes

162 Betriebssysteme, WS 2014/15 wk Systemaufrufe Problem: Separate Namensräume Sys_write liegt nicht im Namensraum des Anwendungsprozesses Einigung auf Namenskonventionen ( push(write_c) ) Anwendungsprozess:... write(fd,buffer,nbytes)... libc, Code für write: push(nbytes); push(buffer); push(fd); push(write_c); TRAP; write_c fd buffer nbytes Sys_write() { ParamArea=User-SP+8; fd=paramarea->fd; buffer=paramarea->buffer; nbytes=paramarea->nbytes; TRAP-Interruptbehandlung: PAR=User-SP+4; switch PAR-> case read_c: Sys_read() case write_c: Sys_write()

163 Betriebssysteme, WS 2014/15 wk Systemaufrufe Problem: Separate Adressräume kein direkter Zugriff auf Parameter seitens der aufgerufenen Prozedur Parameter-Datenstruktur; Alternativen dabei: in Registern, in gemeinsamen Speicherbereich (Stack) write_c fd buffer nbytes Sys_write() { ParamArea=User-SP+8; fd=paramarea->fd; buffer=paramarea->buffer; nbytes=paramarea->nbytes; TRAP-Interruptbehandlung: PAR=User-SP+4; switch PAR-> case read_c: Sys_read() case write_c: Sys_write()

Betriebssysteme Kap. 2: Nebenläufigkeit und Parallelität

Betriebssysteme Kap. 2: Nebenläufigkeit und Parallelität Betriebssysteme, WS 2013/14 wk - 1 - Betriebssysteme Kap. 2: Nebenläufigkeit und Parallelität Winfried E. Kühnhauser Wintersemester 2013/14 Winfried E. Kühnhauser CSI Technische Universität Ilmenau www.tu-ilmenau.de

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

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

Mehr

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

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

Mehr

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

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

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

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

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

Mehr

Ü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

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

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

Übungen zum Fach Betriebssysteme Kapitel 3

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

Mehr

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

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

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

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Formular»Fragenkatalog BIM-Server«

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

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2015/16 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse

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

Domänenanalyse Threadverwaltung/Scheduling

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

Mehr

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

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

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

Mehr

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin Scheduling in Echtzeitbetriebssystemen Prof. Dr. Margarita Esponda Freie Universität Berlin Echtzeitsysteme Korrekte Ergebnisse zum richtigen Zeitpunkt Hart Echtzeitsysteme Eine verspätete Antwort ist

Mehr

Anleitung zur Nutzung des SharePort Utility

Anleitung zur Nutzung des SharePort Utility Anleitung zur Nutzung des SharePort Utility Um die am USB Port des Routers angeschlossenen Geräte wie Drucker, Speicherstick oder Festplatte am Rechner zu nutzen, muss das SharePort Utility auf jedem Rechner

Mehr

Systeme 1. Kapitel 10. Virtualisierung

Systeme 1. Kapitel 10. Virtualisierung Systeme 1 Kapitel 10 Virtualisierung Virtualisierung Virtualisierung: Definition: Der Begriff Virtualisierung beschreibt eine Abstraktion von Computerhardware hin zu einer virtuellen Maschine. Tatsächlich

Mehr

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

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

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

Windows Server 2008 (R2): Anwendungsplattform

Windows Server 2008 (R2): Anwendungsplattform Mag. Christian Zahler, Stand: August 2011 13 14 Mag. Christian Zahler, Stand: August 2011 Mag. Christian Zahler, Stand: August 2011 15 1.5.2 Remotedesktop-Webverbindung Windows Server 2008 (R2): Anwendungsplattform

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

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

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

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

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

Mehr

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

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Primzahlen und RSA-Verschlüsselung

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

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

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

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Vorbereitung zur Prüfung Echtzeitbetriebssysteme Vorbereitung zur Prüfung Echtzeitbetriebssysteme Zugelassene Hilfsmittel: Taschenrechner Bitte verwenden Sie keinen roten Farbstift! 1. Echtzeitbetriebssysteme - Allgemein (15 Punkte) 1.1. Warum setzen

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Workshop: Eigenes Image ohne VMware-Programme erstellen

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

Mehr

Lizenzierung von System Center 2012

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

Mehr

Urlaubsregel in David

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

Mehr

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

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Leitfaden zur Installation von Bitbyters.WinShutdown

Leitfaden zur Installation von Bitbyters.WinShutdown Leitfaden zur Installation von Bitbyters.WinShutdown für Windows 32 Bit 98/NT/2000/XP/2003/2008 Der BitByters.WinShutDown ist ein Tool mit dem Sie Programme beim Herunterfahren Ihres Systems ausführen

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

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

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

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

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

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

Mehr

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

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

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

Mehr

Mein eigener Homeserver mit Ubuntu 10.04 LTS

Mein eigener Homeserver mit Ubuntu 10.04 LTS In diesem Tutorial zeige ich ihnen wie sie mittels einer Ubuntu Linux Installation einen eigenen Homeserver für Windows Freigaben aufsetzen (SMB/CIFS). Zunächst zur der von mir verwendeten Software- /Hardwarekombination:

Mehr

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Outlook 2003 - Aufbaukurs 19 Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Wie kann ich die Bearbeitung von Nachrichten automatisieren? Wie kann ich Nachrichten automatisch

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen: 1 Parallele Algorithmen Grundlagen Parallele Algorithmen Grundlagen Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen: Dekomposition eines Problems in unabhängige Teilaufgaben.

Mehr

Dokumentation Schedulingverfahren

Dokumentation Schedulingverfahren Dokumentation Schedulingverfahren von Norbert Galuschek Gordian Maugg Alexander Hahn Rebekka Weissinger June 23, 2011 1 Contents 1 Aufgabe 3 2 Vorgehensweise 4 2.1 Warum Android.......................

Mehr

Emaileinrichtung in den kaufmännischen Programmen der WISO Reihe

Emaileinrichtung in den kaufmännischen Programmen der WISO Reihe Emaileinrichtung in den kaufmännischen Programmen der WISO Reihe Voraussetzung für die Einrichtung eine Emailanbindung in den kaufmännischen Produkten der WISO Reihe ist ein auf dem System als Standardmailclient

Mehr

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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

Mehr

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 11 und VMware Player

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

Mehr

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch Einfache und effiziente Zusammenarbeit in der Cloud EASY-PM Office Add-Ins Handbuch Inhaltsverzeichnis 1. Einführung... 3 2. Ribbonmenü... 4 3. Dokument... 5 3.1 Öffnen... 5 3.2 Speichern... 6 3.3 Speichern

Mehr

Betriebssysteme Kap. 5: Netzwerkmanagement

Betriebssysteme Kap. 5: Netzwerkmanagement Betriebssysteme, WS 2014/15 wk - 1 - Betriebssysteme Kap. 5: Netzwerkmanagement Winfried E. Kühnhauser Wintersemester 2014/15 Winfried E. Kühnhauser CSI Technische Universität Ilmenau www.tu-ilmenau.de

Mehr

Tutorial Windows XP SP2 verteilen

Tutorial Windows XP SP2 verteilen Tutorial Windows XP SP2 verteilen Inhaltsverzeichnis 1. Einführung... 3 2. Windows XP SP2 bereitstellen... 3 3. Softwarepaket erstellen... 4 3.1 Installation definieren... 4 3.2 Installationsabschluss

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

Internet Explorer Version 6

Internet Explorer Version 6 Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

Lernwerkstatt 9 privat- Freischaltung

Lernwerkstatt 9 privat- Freischaltung Was tun, wenn mein Rechner immer wieder die Freischaltung der Lernwerkstatt 9 privat verliert und ich die Ursache dafür nicht finden kann? Normalerweise genügt es, genau eine einzige online-freischaltung

Mehr

Lizenzen auschecken. Was ist zu tun?

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

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren 1 32- oder 64-bit Windows feststellen In den nachfolgenden Schritten ist es nötig, dass Sie wissen, ob Sie

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

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Allgemeines: Bitte lesen Sie sich diese Anleitung zuerst einmal komplett durch. Am Besten, Sie drucken sich diese Anleitung

Mehr

Lieber SPAMRobin -Kunde!

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

Mehr

1 Mathematische Grundlagen

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

Mehr

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1 CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7

Mehr

Betriebssysteme Kap A: Grundlagen

Betriebssysteme Kap A: Grundlagen Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten

Mehr

Internet online Update (Internet Explorer)

Internet online Update (Internet Explorer) Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Internetexplorer und gehen auf unsere Internetseite:

Mehr

HTBVIEWER INBETRIEBNAHME

HTBVIEWER INBETRIEBNAHME HTBVIEWER INBETRIEBNAHME Vorbereitungen und Systemvoraussetzungen... 1 Systemvoraussetzungen... 1 Betriebssystem... 1 Vorbereitungen... 1 Installation und Inbetriebnahme... 1 Installation... 1 Assistenten

Mehr

Erstellen einer PostScript-Datei unter Windows XP

Erstellen einer PostScript-Datei unter Windows XP Erstellen einer PostScript-Datei unter Windows XP Sie möchten uns Ihre Druckvorlage als PostScript-Datei einreichen. Um Fehler in der Herstellung von vorneherein auszuschließen, möchten wir Sie bitten,

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Einführung in PHP. (mit Aufgaben)

Einführung in PHP. (mit Aufgaben) Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites

Mehr

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene Andi Drebes Fachbereich Informatik Universität Hamburg Gliederung Notwendigkeit des Schedulings Einführung: Begriff des Multitaskings

Mehr

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 14 und VMware Player

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 14 und VMware Player PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0)761 59018-201 Fax +49 (0)761 59018-130 Internet www.paragon-software.com E-Mail sales@paragon-software.com

Mehr

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein Einrichtung von orgamax-mobil Um die App orgamax Heute auf Ihrem Smartphone nutzen zu können, ist eine einmalige Einrichtung auf Ihrem orgamax Rechner (bei Einzelplatz) oder Ihrem orgamax Server (Mehrplatz)

Mehr

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

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

Mehr

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

Beheben von verlorenen Verknüpfungen 20.06.2005

Beheben von verlorenen Verknüpfungen 20.06.2005 Vor folgender Situation ist sicher jeder Solid Edge-Anwender beim Öffnen von Baugruppen oder Drafts schon einmal gestanden: Die Ursache dafür kann sein: Die Dateien wurden über den Explorer umbenannt:

Mehr

Installationsanleitung für pcvisit Server (pcvisit 15.0)

Installationsanleitung für pcvisit Server (pcvisit 15.0) Installationsanleitung für pcvisit Server (pcvisit 15.0) Seite 1 version: 11.02.2015 Inhalt 1. Einleitung... 3 2. Download und Installation... 3 3. Starten der Verbindungssoftware....5 3.1 Starten der

Mehr

Einstellungen für SEPA-Lastschriften oder SEPA Dauerlastschriften in der VR-NetWorld Software 5.0

Einstellungen für SEPA-Lastschriften oder SEPA Dauerlastschriften in der VR-NetWorld Software 5.0 Einstellungen für SEPA-Lastschriften oder SEPA Dauerlastschriften in der VR-NetWorld Software 5.0 Bitte beachten Sie diese Punkte wenn Sie in der VR-NetWorld Software 5.0 Lastschriften oder Dauerlastschriften

Mehr

2. Word-Dokumente verwalten

2. Word-Dokumente verwalten 2. Word-Dokumente verwalten In dieser Lektion lernen Sie... Word-Dokumente speichern und öffnen Neue Dokumente erstellen Dateiformate Was Sie für diese Lektion wissen sollten: Die Arbeitsumgebung von Word

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

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

Mehr

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern

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