Betriebssysteme Kap. 2: Nebenläufigkeit und Parallelität
|
|
- Hilke Schumacher
- vor 8 Jahren
- Abrufe
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, 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
MehrDämon-Prozesse ( deamon )
Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout
MehrArchitektur Verteilter Systeme Teil 2: Prozesse und Threads
Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =
MehrSysteme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
MehrSysteme 1. Kapitel 5. Scheduling
Systeme 1 Kapitel 5 Scheduling Scheduling Verteilung und Zuweisung von begrenzten Ressourcen an konkurrierende Prozesse Beispiel: -> Zeitablaufsteuerung Zwei Prozesse zur gleichen Zeit rechenbereit auf
MehrEchtzeitscheduling (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 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
MehrBetriebssysteme. Dipl.-Ing.(FH) Volker Schepper
1. Der Prozess beginnt im Zustand Erzeugt, nachdem sein Vaterprozess den Systemaufruf fork() (s.u.) abgesetzt hat. In diesem Zustand wird der Prozess-Kontext initialisiert. 2. Ist diese Aufbauphase abgeschlossen,
MehrÜbersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?
Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS
MehrGrundlagen verteilter Systeme
Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)
MehrSysteme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in
MehrÜbungen zum Fach Betriebssysteme Kapitel 3
Übungen zum Fach Betriebssysteme Kapitel 3 Prof. Dr. Kern & Prof. Dr. Wienkop Prozessverwaltung 1 Prozeßauslagerung Ein Betriebssystem, das die Zustände "rechnend", "bereit" und "wartend" sowie den künstlichen
MehrSoftwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
Mehr5 Speicherverwaltung. bs-5.1 1
5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus
MehrTask A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003
Task! evt. parallel zu bearbeitende Ausführungseinheit! Beispiel: Task A Zündung Task B Einspritzung Task C Erfassung Pedalwert Zeit t J. Schäuffele, Th. Zurawka:, Vieweg, 2003 Echtzeitbetriebssysteme
MehrStep 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
MehrEs 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
MehrFormular»Fragenkatalog BIM-Server«
Formular»Fragenkatalog BIM-Server«Um Ihnen so schnell wie möglich zu helfen, benötigen wir Ihre Mithilfe. Nur Sie vor Ort kennen Ihr Problem, und Ihre Installationsumgebung. Bitte füllen Sie dieses Dokument
MehrPROGRAMMIEREN 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
MehrEs kann maximal ein Prozess die Umladestelle benutzen.
SoSe 0 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung (Musterlösung) 0-06-0 bis 0-06-06 Aufgabe : Erzeuger/Verbraucher-Pattern Ein Getränkemarkt hat
MehrDomänenanalyse Threadverwaltung/Scheduling
Domänenanalyse Threadverwaltung/Scheduling Johannes Handl, Marc Rößler, Christian Strengert 15. Mai 2003 Domänenanalyse Threadverwaltung/Scheduling [1] Domänendefinition Die Erzeugung, Verwaltung, Umschaltung/Wechsel,
MehrTIMI: 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:
MehrIn 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC
PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com
MehrScheduling 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
MehrAnleitung 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
MehrSysteme 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
MehrSchritt-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
MehrAlbert 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.
MehrMonitore. Klicken bearbeiten
Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition
MehrSeite 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
MehrWindows 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
Mehr4D 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
MehrBitte verwenden Sie nur dokumentenechtes Schreibmaterial!
VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation
MehrZwischenablage (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
MehrIn 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC
PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com
MehrCPU-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
MehrWichtige 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
MehrPrimzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
MehrErstellen 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
MehrTutorial - 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
MehrProzeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen
Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von
MehrVorbereitung 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
MehrObjektorientierte 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/
MehrWorkshop: Eigenes Image ohne VMware-Programme erstellen
Workshop: Eigenes Image ohne VMware-Programme erstellen Normalerweise sind zum Erstellen neuer, kompatibler Images VMware-Programme wie die Workstation, der ESX-Server oder VMware ACE notwendig. Die Community
MehrLizenzierung von System Center 2012
Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im
MehrUrlaubsregel in David
Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5
MehrSystemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur
Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten
MehrTask: 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
MehrLeitfaden 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
MehrDomänenmodell: Fadenkommunikation und -synchronisation
Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4
MehrFolge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12
Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben
MehrFachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
MehrEinrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
MehrDatentechnik. => 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
MehrAnleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren
Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren Ziel der Anleitung Sie möchten ein modernes Firewallprogramm für Ihren Computer installieren, um gegen
MehrMein 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:
MehrModul 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
MehrMatrix42. 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
MehrSANDBOXIE 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:
MehrWir 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.
MehrDokumentation 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.......................
MehrEmaileinrichtung 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
MehrDatenbank-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
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrIn 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
MehrEinfache 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
MehrBetriebssysteme 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
MehrTutorial 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
MehrFuxMedia 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
MehrTapps 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...
MehrInternet 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
MehrOrdner 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.
MehrLernwerkstatt 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
MehrLizenzen auschecken. Was ist zu tun?
Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrInstallation 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
MehrWelche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel
Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche
MehrInstallation 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
MehrLieber SPAMRobin -Kunde!
Lieber SPAMRobin -Kunde! Wir freuen uns, dass Sie sich für SPAMRobin entschieden haben. Mit diesem Leitfaden möchten wir Ihnen die Kontoeinrichtung erleichtern und die Funktionen näher bringen. Bitte führen
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrCMS.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
MehrBetriebssysteme 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
MehrInternet 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:
MehrHTBVIEWER INBETRIEBNAHME
HTBVIEWER INBETRIEBNAHME Vorbereitungen und Systemvoraussetzungen... 1 Systemvoraussetzungen... 1 Betriebssystem... 1 Vorbereitungen... 1 Installation und Inbetriebnahme... 1 Installation... 1 Assistenten
MehrErstellen 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,
MehrZeichen 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
MehrEinfü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
MehrSchedulingalgorithmen 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
MehrIn 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
Mehr2. 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)
MehrEr musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt
Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen
MehrBetriebssystembau (BSB)
Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung
MehrBeheben 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:
MehrInstallationsanleitung 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
MehrEinstellungen 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
Mehr2. 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
MehrInhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
MehrSafeRun-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
MehrRound-Robin Scheduling (RR)
RR - Scheduling Reigen-Modell: einfachster, ältester, fairster, am weitesten verbreiteter Algorithmus Entworfen für interaktive Systeme (preemptives Scheduling) Idee: Den Prozessen in der Bereitschaftsschlange
Mehr