2 Prozesse und Threads

Größe: px
Ab Seite anzeigen:

Download "2 Prozesse und Threads"

Transkript

1 Betriebssysteme Folie Prozesse und Threads Programm statische Folge von Anweisungen und Daten befindet sich im Allgemeinen als Datei auf einer Festplatte der Dateiinhalt entspricht den Regeln des Betriebssystems für ausführbare Programme (exe-format, elf-format,...) Prozess dynamische Folge von Aktionen (Zustandsänderungen) führt ein Programm auf einem Prozessor aus wird vom Betriebssystem infolge eines Auftrags erzeugt Eingabe eines Kommandos von einem Benutzer Aufruf einer Systemfunktion von einem Prozess besitzt zugeordnete Speicherbereiche für den Programmcode, seine statischen und dynamischen Daten sowie seinen Stack

2 Betriebssysteme Folie 2-2 Systemfunktionen zum Erzeugen/Beenden eines Prozesses Windows 95/98/NT/2000/XP/... (Win32/Win64-API) CreateProcess (...) OpenProcess (...) ExitProcess (...) TerminateProcess (...) UNIX fork () execlp (...), execvp (...),... exit (...) kill (...) Struktur eines Prozesses Process Virtual Address Space Resources open files locks sockets... main () count () count () Text Identity pid uid gid... prt_result () global_cnt s_time... Data Heap Registers PC SP... j i p_cnt return address from count ()... Stack

3 Betriebssysteme Folie 2-3 Thread sequenzieller Ausführungsfaden innerhalb eines Prozesses minimaler eigener Kontext CPU-Registersatz Stack Identifikationsnummer, Priorität,... alle Threads eines Prozesses benutzen denselben Adressraum sowie weitere Betriebsmittel des Prozesses gemeinsam jeder Prozess besitzt mindestens einen (initialen) Thread Systemfunktionen zum Erzeugen/Beenden eines Threads Windows 95/98/NT/2000/XP/... (Win32/Win64-API) CreateThread (...) ExitThread (...) TerminateThread (...) POSIX Threads (UNIX,...) pthread_create (...) pthread_exit (...) pthread_kill (...) pthread_cancel (...)

4 Betriebssysteme Folie 2-4 Java Threads (plattformübergreifend) Erweiterung der Klasse Thread Implementierung der Schnittstelle Runnable Aufruf der Methode start ( ) der Klasse Thread Aufruf der Methode interrupt ( ) der Klasse Thread Struktur eines Prozesses mit mehreren Threads (multi-threaded process) Process Virtual Address Space Resources open files locks sockets... main () count () Text Identity pid uid gid... prt_result () Data Heap main Thread Specific Data thread id priority... Thread Specific Data thread id priority... Registers PC SP... Thread 1 Registers PC SP... Thread 2 Registers PC SP... Stack Stack Stack

5 Betriebssysteme Folie 2-5 Prozesserzeugung unter UNIX 1) Betriebssystemkern muss eine Umgebung bereitstellen, in der das Programm ausgeführt werden kann 2) der Prozess besteht aus drei Bereichen: instruction segment user data segment system data segment 3) das Programm wird zur Initialisierung des instruction segments und user data segments benutzt (nach der Initialisierung besteht zwischen dem Prozess und dem Programm, das er ausführt, keine weitere Verbindung) 4) das Betriebssystem legt im system data segment alle erforderlichen Datenstrukturen zur Verwaltung des Prozesses an bzw. aktualisiert bereits vorhandene Datenstrukturen (es wird z. B. ein Prozesskontrollblock für den Prozess angelegt und initialisiert, ein Verweis auf den Prozesskontrollblock in die Prozesstabelle eingefügt und der Prozess dann in die bereit -Warteschlange eingefügt) 5) der Prozess kann weitere Betriebsmittel (mehr Speicher, neue Dateien, usw.) anfordern, die im Programm nicht vorhanden sind mehrere parallel ablaufende Prozesse können mit demselben Programm initialisiert werden der Betriebssystemkern kann Hauptspeicher sparen, wenn solche Prozesse ein gemeinsames instruction segment verwenden (die beteiligten Prozesse können die gemeinsame Nutzung nicht feststellen, da die Segmente nur Lesezugriffe erlauben)

6 Betriebssysteme Folie 2-6 Prozessverwaltung Prozesse stellen Verwaltungseinheiten bzw. Objekte dar auf einem Multiprozessorsystem können Prozesse parallel ausgeführt werden auf einem Einprozessorsystem können sie durch eine geeignete zeitliche Verschachtelung quasi-parallel (concurrent) ausgeführt werden das Betriebssystem unterscheidet Anwendungs- bzw. Benutzerprozesse und Systemprozesse Systemprozesse erbringen Betriebssystemleistungen, die aus dem Betriebssystemkern ausgelagert wurden Anwendungs- und Systemprozesse werden im Benutzermodus (user mode) ausgeführt im Benutzermodus sind nur nicht-privilegierte Befehle des Prozessors erlaubt der Betriebssystemkern wird im Systemmodus (system mode, kernel mode) ausgeführt, in dem auch privilegierte Befehle des Prozessors erlaubt sind das Betriebssystem benötigt geeignete Datenstrukturen zur Verwaltung der Prozesse

7 Betriebssysteme Folie 2-7 Prozessobjekte unter Windows NT/2000/XP/... Prozessobjekte werden durch den Objektmanager erzeugt und abgebaut jedes Prozessobjekt enthält einen Kopf, der unter der Verwaltung des Objektmanagers steht Aufbau des Prozessobjekts Objekttyp Prozess Attribute Prozess-ID Access Token Basispriorität Prozessorzugehörigkeit Kontingentbeschränkung Ausführungsdauer I/O-Zähler VM-Arbeitszähler Exception/Debugging Ports Beendigungsstatus Dienste Prozess erzeugen Prozess öffnen Prozessinformationen einholen Prozessinformationen einstellen Aktueller Prozess Prozess beenden VM reservieren/freigeben VM lesen/schreiben Virtuellen Speicher schützen VM sperren und entsperren VM-Informationen einholen Virtuellen Speicher aktualisieren

8 Betriebssysteme Folie Prozess/Thread-Zustände Prozesszustände und die zugehörigen Zustandsübergänge new ready create I/O completion, event occurs, sleep interval expires dispatch blocked timeout, yield running I/O wait, event wait, sleep,... terminate resume suspend suspend exit resume suspend suspended ready I/O completion, event occurs, sleep interval expires suspended blocked Thread-Zustände und -Zustandsübergänge in Java born ready start I/O completion, sleep interval expires blocked timeout, interrupt, yield dispatch running I/O wait, sleep,... notify or notifyall waiting wait dead finished

9 Betriebssysteme Folie 2-9 Prozess/Thread-Verwaltung basiert auf Zustandsmodell Grundzustände, erweiterte Zustände, Pseudozustände Übergänge zwischen den Zuständen Prozess/Thread kann einige Zustände im Laufe seines Lebens mehrfach durchlaufen typische Grundzustände bereit (Synonyme: rechenwillig, rechenbereit, ausführbar, ready, runnable) Prozess/Thread wartet nur auf Zuteilung eines Prozessors im Allgemeinen gibt es verschiedene Prioritätswarteschlangen neue Prozesse werden im Allgemeinen am Ende ihrer Prioritätswarteschlange eingefügt aktiv (Synonyme: rechnend, running) Prozess/Thread hat einen Prozessor zugeteilt bekommen auf einem Einprozessorsystem kann sich nur ein Prozess/Thread in diesem Zustand befinden blockiert (Synonyme: wartend, blocked, waiting) Prozess/Thread wartet auf ein Ereignis, z. B. Ein-/Ausgabe im Allgemeinen gibt es für verschiedene Wartebedingungen verschiedene Warteschlangen

10 Betriebssysteme Folie 2-10 erweiterte Zustände gibt es z. B. bei vielen UNIX-Systemen suspendiert (Synonyme: ausgelagert, suspended) Prozess/Thread wurde angehalten und im Allgemeinen auf externes Speichermedium ausgelagert häufig über zwei Zustände realisiert: suspendiert blockiert und suspendiert bereit warum wird ein Prozess/Thread suspendiert? schlechte Systemleistung wegen kurzfristiger Überlast Betriebssystem unterstützt keinen virtuellen Speicher, sodass ganze Prozesse ein-/ausgelagert werden müssen Benutzer will einen Prozess stoppen, aber noch nicht abbrechen (bei vielen UNIX-Systemen z. B. mit <Ctrl-z> oder <Strg-z>; Fortsetzung z. B. mit fg (im Vordergrund) oder bg (im Hintergrund)) wer kann einen Prozess/Thread suspendieren? ein Prozess/Thread (selbst) über entsprechende Systemfunktionen der Benutzer/das Betriebssystem Suspendierung durch Prozess/Thread kann schwerwiegende Folgen haben Blockierung mehrerer Prozesse/Threads, falls der suspendierte Prozess /Thread eine Betriebsmittelsperre hält u. U. sogar Deadlock, falls die Funktion zur Fortsetzung des Prozesses/Threads dieselbe Betriebsmittelsperre benötigt

11 Betriebssysteme Folie 2-11 Zombie Zwischenzustand bevor ein Prozess das System verlässt Prozess hat seine Aufgabe erledigt und muss nur noch einen Status an seinen Vaterprozess liefern Zombie-Prozesse belegen nur noch einen Eintrag in der Prozesstabelle des Betriebssystems Pseudozustände Beginn (Synonyme: nicht existent, new, born) notwendiger Zustand, um einen Prozess/Thread in das System zu bringen wichtig ist nur der Zustandsübergang Ende (Synonyme: nicht existent, exit, exited, dead) notwendiger Zustand, um einen Prozess/Thread aus dem System zu entfernen wichtig ist nur der Zustandsübergang Zustandsübergänge Beginn bereit neuer Prozess/Thread wird erzeugt Speicherbereiche und Datenstrukturen für neuen Prozess anlegen und initialisieren (z. B. Codesegment, Datensegment, Prozesskontrollblock,...) Prozess/Thread in Warteschlange bereit einketten

12 Betriebssysteme Folie 2-12 bereit aktiv Prozess/Thread wird einem freien Prozessor zugeteilt letzten Prozess/Thread-Kontext wiederherstellen Prozess/Thread-Zustand auf aktiv setzen Prozess/Thread starten aktiv bereit Prozessor wird dem Prozess/Thread entzogen Zeitscheibe des Prozesses/Threads ist abgelaufen Prozess/Thread höherer Priorität wurde rechenwillig Prozess/Thread-Kontext retten Prozess/Thread-Zustand auf bereit setzen und Prozess/ Thread in Warteschlange bereit einketten aktiv blockiert Prozess/Thread muss auf ein Ereignis warten Beendigung einer Ein-/Ausgabeoperation Beendigung eines erzeugten Prozesses/Threads... Prozess/Thread-Kontext retten Prozess/Thread-Zustand auf blockiert setzen und Prozess/ Thread in Warteschlange blockiert einketten

13 Betriebssysteme Folie 2-13 aktiv Ende Prozess/Thread verlässt das System Aufräumarbeiten durchführen (im Allgemeinen nur bei Prozessen) ggf. offene Dateien des Prozesses schließen ggf. andere Betriebsmittel des Prozesses freigeben (alle) Datenstrukturen und Speicherbereiche freigeben (im Allgemeinen nur bei Prozessen; einige Datenstrukturen (UNIX System V Semaphore, Shared Memory,...) werden nicht automatisch freigegeben) blockiert bereit Ereignis ist eingetreten Prozess/Thread-Zustand auf bereit setzen und Prozess/Thread in Warteschlange bereit einketten blockiert suspendiert blockiert, bereit suspendiert bereit, suspendiert blockiert blockiert, suspendiert bereit bereit (im Allgemeinen nur bei Prozessen; suspendierte Threads werden im Allgemeinen über Zustand blockiert des Prozesses verwaltet) nur in Ausnahmefällen (siehe Zustand suspendiert ) Prozess/Thread-Zustand ändern und Prozess/Thread in entsprechende Warteschlange einketten aufwendig, da Datentransport zwischen Haupt- und Hintergrundspeicher erforderlich

14 Betriebssysteme Folie 2-14 suspendiert blockiert suspendiert bereit (im Allgemeinen nur bei Prozessen) Ereignis ist eingetreten Prozess kann ausgeführt werden, sobald er in Hauptspeicher geladen worden ist Prozesszustand ändern und Prozess in Warteschlange suspendiert bereit einketten aktiv suspendiert bereit (nur bei Prozessen) kommt eigentlich nicht (mehr) vor könnte benutzt werden, wenn ein Prozess der Warteschlange suspendiert blockiert mit hoher Priorität rechenwillig wird, der sehr viel Hauptspeicher benötigt und der aktuelle Prozess viel Hauptspeicher belegt Prozesskontext retten Prozesszustand ändern und Prozess in Warteschlange suspendiert bereit einketten

15 Betriebssysteme Folie 2-15 Prioritätsklassen in den Zuständen können über verkettete Listen realisiert werden, z. B. einfach verkettete Listen n first last count... process 0 first last count process process process ringförmig doppelt verkettete Listen priority priority n current count... process 0 current process process process count Vor-/Nachteile?

16 Betriebssysteme Folie 2-16 Warteschlangenmodelle für Prozesszustände Modell mit mehreren blockiert -Warteschlangen swap in partially executed swapped-out processes (in disk swap area) swap out new process ready queue dispatch CPU... terminated process CPU time slice expired I/O I/O queue I/O request event occurs wait for termination wait for interrupt fork a child call sleep () blocked queues Modell kann durch bereit -Warteschlangen erweitert werden real-time processes ready queues system processes interactive processes dispatch CPU... CPU terminated process batch processes process with higher priority is ready, time slice expired, I/O finished,...

17 Betriebssysteme Folie Prozesskontrollblock das Betriebssystem verwaltet für jeden Prozess einen Prozesskontrollblock, der alle relevanten Informationen über den Prozess enthält (Synonyme: Prozesskennblock, Prozesskontext, process control block, task control block Abkürzungen: PCB, TCB) typische Komponenten eines Prozesskontrollblocks Identifikatoren Prozessnummer/-name Nummer/Name des Benutzers, der den Prozess gestartet hat Gruppennummer Stellung in der Prozesshierarchie Prozessnummer des Vaterprozesses Prozessnummern der Sohnprozesse Prozessor-Zustandsinformation Register der Programmierumgebung (Datenregister, Adressregister, Segmentregister, Indexregister,...) Kontroll-, Steuer-, Statusregister (System-/Benutzer-Stack-Register, Programmzähler, Prozessorstatuswort,...) Informationen zur Prozesssteuerung Prozesszustand Priorität Informationen zur Interprozesskommunikation

18 Betriebssysteme Folie 2-18 Zeiger auf Vorgänger und/oder Nachfolger Zeiger auf Threads des Prozesses Rechte Zugriffsrechte auf Speicherbereiche, Dateien,... Art der erlaubten Prozessorbefehle (privilegiert/nicht privilegiert) Speicherverwaltung Zeiger auf Segment- und/oder Seitentabellen Zeiger auf Tabelle mit offenen Dateien Betriebsmittelkonten Maximalwerte für erlaubte Betriebsmittel noch verfügbare Kontingente Abrechnungsdaten (CPU-Zeiten im System-/Benutzermodus, Anzahl Seitenfehler,...) sonstiges (Uhren, Sperren,...) Prozesskontext wird manchmal aufgeteilt in Hardware-Kontext (i. w. Abbild der Prozessorregister) Benutzer-Kontext (i. w. Speicherabbild des Prozesses) System-Kontext (betriebssysteminterne Verwaltungsdaten)

19 Betriebssysteme Folie 2-19 Prozesstabelle enthält Verweise auf Prozesskontrollblöcke process table... process control block process identification process state process priority pointer to parent process pointer to child processes CPU register save area pointers to locate process's memory pointers to allocated resources NULL Beispiele Linux Prozesstabelle bis Version 2.2.x (linux/kernel/sched.c) struct task_struct *task[nr_tasks] = &init_task, ; Prozesstabelle ab Version 2.4.x struct task_struct *init_tasks[nr_cpus] = &init_task, ; Prozesstabelle wurde in Prozessliste je CPU überführt Solaris struct proc (/usr/include/sys/proc.h) struct _klwp (/usr/include/sys/klwp.h) struct _kthread (/usr/include/sys/thread.h)

20 Betriebssysteme Folie 2-20 Verweisstrukturen zur Verwaltung der Sohnprozesse Linux p_cptr struct task_struct parent p_pptr p_pptr p_pptr youngest child p_osptr p_ysptr child p_osptr p_ysptr oldest child jeder Prozess wird zusätzlich in der Prozesstabelle geführt (bis Linux Version 2.2.x) jeder Prozess befindet sich zusätzlich in der Prozessliste Solaris (auch bei Linux bis Version 2.2.x) struct proc parent p_child p_parent youngest child p_psibling p_sibling child p_parent p_psibling p_sibling p_parent oldest child

21 Betriebssysteme Folie 2-21 Aufgabe 2-1: a) Definieren Sie die Begriffe Programm, Prozess und Thread. b) Beschreiben Sie stichwortartig die Prozesserzeugung unter UNIX. Aufgabe 2-2: Nennen Sie einige Komponenten des Prozesskontrollblocks und beschreiben Sie stichwortartig, warum die Komponenten vorhanden sind.

22 Betriebssysteme Folie Dispatcher/Scheduler Scheduler (Ablaufplaner) ist für die zeitliche Ablaufplanung der Prozesse zuständig erledigt seine Arbeit aufgrund einer gewählten Strategie setzt Anfangspriorität der Prozesse fest kann die Priorität aufgrund des Prozessverhaltens ändern wird z. B. aktiviert, wenn Prozesse erzeugt/beendet werden Prozesseigenschaften (z. B. Priorität) geändert werden eine Zeit abgelaufen ist oder bestimmte Systemfunktionen aufgerufen werden, die indirekt in die Prozessverwaltung eingreifen (z. B. zur Koordinierung/Synchronisation von Prozessen) Dispatcher (Prozessumschalter, low-level scheduler) ist für den Prozesswechsel (task switch, context switch) zuständig muss sehr effizient implementiert werden, da Prozesswechsel im 10 bis 100 Millisekundenbereich vorkommen wird z. B. aktiviert, wenn der aktive Prozess unterbrochen wird (z. B. Ablauf der Zeitscheibe) auf ein Ereignis warten muss (z. B. Ende einer Ein-/Ausgabeoperation) freiwillig auf den Prozessor verzichtet (spezielle Systemfunktion) endet

23 Betriebssysteme Folie 2-23 Aufgaben des Dispatchers sichert den (gesamten) Hardware-Kontext des bisher aktiven Prozesses in dessen Prozesskontrollblock Die Intel Pentium Familie führt diese Aktion automatisch bei einem Prozesswechsel durch. Ein Prozesswechsel wird hier z. B. durchgeführt, wenn ein CALL -Befehl auf einen TSS-Deskriptor (task state segment) in der globalen Deskriptortabelle ausgeführt wird.) ändert den Zustand des Prozesses ( bereit, blockiert,...) kettet den Prozess in die entsprechende Warteschlange ein sucht den nächsten zu aktivierenden Prozess ändert den Zustand des Prozesses von bereit auf aktiv restauriert den (gesicherten) Hardware-Kontext des Prozesses (Die Intel Pentium Familie führt diese Aktion automatisch bei einem Prozesswechsel durch.) startet den Prozess (Erfolgt im Allgemeinen automatisch durch die Rückkehr aus der Dispatcher-Routine, da die Prozessorregister nach dem Kontextwechsel den früher unterbrochenen Zustand des restaurierten Prozesses enthalten.)

24 Betriebssysteme Folie 2-24 Aufgaben des Schedulers Minimierung der Gesamtkosten des Systems möglichst hoher Durchsatz (Stapelbetrieb) Verwaltungsaufwand reduzieren (wenig Prozesswechsel) möglichst kurze Antwortzeiten (Dialogbetrieb) häufige Prozesswechsel garantierte Antwortzeiten (Echtzeitbetrieb) widersprüchliche Anforderungen Verhältnis Stapelbetrieb zu Dialogbetrieb wird voreingestellt Scheduler kann Stapel- und Dialogbetrieb unabhängig voneinander optimieren sollte die bisherigen Verläufe der Prozesse bei seinen Entscheidungen berücksichtigen ordnet die Prozesse/Threads verschiedenen bereit - Warteschlangen zu (z. B. aufgrund von Prozessklassen oder Warte- und Rechenzeiten)

25 Betriebssysteme Folie 2-25 bereit -Warteschlangen unter Solaris scheduling order class-specific priorities scheduler classes global priorities process queues first last RT max 0 + TS max 0 - TS max interrupts real-time class (RT) system class (SYS) timesharing class (TS) highest lowest der Scheduler konvertiert klassenspezifische Prioritäten in globale Prioritäten die globale Priorität ist für den Dispatcher maßgebend ein Prozess behält die CPU bis seine Zeitscheibe abgelaufen ist er sich selbst blockiert oder endet ein Prozess höherer Priorität rechenwillig wird Prozesse derselben Priorität benutzen die Round-Robin-Strategie für alle Prozesse gilt im Allgemeinen eine Standard-Zeitscheibe Echtzeitprozesse können prozessspezifische Zeitscheiben haben Prioritäten von Echtzeitprozessen werden durch das System nicht geändert (können nur vom Benutzer geändert werden)

26 Betriebssysteme Folie 2-26 Prioritäten von Systemprozessen werden nur vom Betriebssystem verwaltet (können vom Benutzer nicht beeinflusst werden) Prioritäten von Timesharing-Prozessen haben benutzer- und systemorientierte Komponente systemorientierte Komponente wird dynamisch geändert Priorität wird erhöht, wenn der Prozess nur einen kleinen Teil seiner Zeitscheibe nutzt Priorität wird erniedrigt bei rechenintensiven Prozessen die Länge der Zeitscheibe wird größer je kleiner die Priorität ist (wenn Prozesse geringer Priorität aktiv werden, dürfen sie länger arbeiten, wenn sie nicht durch einen Prozess höherer Priorität unterbrochen werden) benutzerorientierte Komponente kann vom Benutzer zwischen -TS max und TS max geändert werden (im Allgemeinen -20 bis 20; siehe Kommando nice ) Standardpriorität: 0 Sohnprozesse erben die benutzerorientierte Priorität globale Priorität ergibt sich aus den beiden Komponenten

27 Betriebssysteme Folie 2-27 bereit -Warteschlangen unter Windows NT/2000/XP/... scheduling order first last dispatcher ready queues real-time variable priorities system 0 priorities highest lowest process queues für variable priorities Priorität eines Prozesses/Threads wird jedes Mal erniedrigt, wenn er seine Zeitscheibe ausgenutzt hat Priorität eines blockierten Prozesses/Threads wird erhöht großer Wert, falls auf Tastatureingabe gewartet wurde kleiner Wert, bei anderen Ein-/Ausgaben Verfahren führt mittelfristig zu einer Dreiteilung hohe Priorität für interaktive Prozesse/Threads mittlere Priorität für E/A-orientierte Prozesse/Threads geringe Priorität für rechenintensive Prozesse/Threads Auswahl eines Prozesses/Threads aufgrund seiner Priorität und Prozessorzugehörigkeit falls ein ausgewählter Prozess/Thread aufgrund der Prozessorzugehörigkeit nicht auf einem freien Prozessor ausgeführt werden kann, wird der Prozess/ Thread mit der nächstgeringeren Priorität ausgewählt geringste Priorität hat der idle -Prozess ( system )

28 Betriebssysteme Folie 2-28 bereit -Warteschlangen für Java-Threads high priority Priority 10 Priority 9 thr1 Priority 8 Priority 7 normal priority Priority 6 Priority 5 thr2 thr6... thrn Priority 4 Priority 3 thr3 thr5 Priority 2 low priority Priority 1 thr4 alle Threads starten mit normaler Priorität 5 Threads erben die Priorität ihres Erzeugers es gibt Implementierungen mit Zeitscheibenverfahren und rein prioritätsgesteuerten Scheduling-Verfahren (Threads derselben Prioritätsklasse werden im ersten Fall im Round-Robin-Verfahren bearbeitet. Im zweiten Fall können sie solange arbeiten bis sie fertig werden, sich selbst blockieren oder durch einen Thread höherer Priorität verdrängt werden) manchmal werden mehrere Prioritätsstufen zu einer Prioritätsstufe zusammengefaßt (unter Solaris 10 und Java 5 gibt es z. B. nur noch die Prioritätsstufen 1-5)

29 Betriebssysteme Folie 2-29 Einteilung der Scheduling-Strategien nicht unterbrechende Verfahren (Prozess bleibt solange aktiv, bis er sich selbst in den Zustand blockiert versetzt) unterbrechende Verfahren (dem Prozess kann der Prozessor entzogen werden; notwendig bei Echtzeit-Betriebssystemen) Prozess kann nur dann unterbrochen werden, wenn der Prozessor im Benutzermodus arbeitet (Standard bei älteren UNIX-Systemen) Prozess kann auch dann unterbrochen werden, wenn der Prozessor im Systemmodus arbeitet (notwendig bei Echtzeit-Betriebssystemen) Ausnutzung der Prozessoren bei Multiprozessorsystemen alle Prozessoren werden genutzt, wenn Arbeit vorhanden ist einzelne Prozessoren dürfen ungenutzt bleiben, obwohl noch Arbeit vorhanden ist

30 Betriebssysteme Folie 2-30 Bewertung von Scheduling-Verfahren CPU-Auslastung (utilization) bzw. Effizienz maximieren (CPU sollte nach Möglichkeit immer Prozesse ausführen) Fairness (jeder Prozess erhält einen fairen Anteil der CPU-Zeit; kein Prozess wird beliebig lange an seiner Arbeit gehindert) Durchsatz (throughput) maximieren Anzahl der pro Zeiteinheit fertiggestellten Aufträge schwankt zwischen vielen Aufträgen pro Sekunde und wenigen pro Tag, Woche oder Monat (abhängig von der erforderlichen Rechenleistung der Aufträge) Durchlaufzeit bzw. Verweilzeit (turnaround time) minimieren Zeit zwischen Betreten und Verlassen des Systems für einen Auftrag Summe aus Rechenzeit und verschiedenen Wartezeiten (warten auf CPU in der bereit -Warteschlange, auf E/A-Ende in der blockiert - Warteschlange, usw.) Wartezeit (waiting time) minimieren Wartezeit in der bereit -Warteschlange nur diese Zeit kann vom Scheduler direkt beeinflusst werden Antwortzeit (response time) minimieren wichtige Zeitspanne für interaktive Prozesse Zeit zwischen Eingabe und Reaktion auf Eingabe

31 Betriebssysteme Folie 2-31 CPU-Auslastung kann bei vielen Systemen grafisch dargestellt werden Windows XP SunOS Linux: X-osview Linux: GNOME-Systemmonitor

32 Betriebssysteme Folie 2-32 mögliche Scheduling-Verfahren First-Come-First-Served (FCFS), First-In-First-Out (FIFO) (Prozesse werden in der Reihenfolge ihrer Ankunft ohne Unterbrechung bis zu ihrem Ende bzw. ihrer Blockierung bedient) das einfachste Verfahren Implementierung über FIFO-Warteschlange u. U. große Wartezeiten und damit schlechte Antwortzeiten im Allgemeinen gute Auslastung der CPU kann zu langen Warteschlangen mit E/A-intensiven Prozessen führen, wenn ein rechenintensiver Prozess mit wenig E/A-Operationen immer wieder die CPU blockiert Beispiel: Zum Zeitpunkt 0 treffen die Prozesse P 1, P 2 und P 3 ein. Die Rechenzeiten der Prozesse betragen t 1 = 24, t 2 = 8 und t 3 = 3 Zeiteinheiten resp. Die folgenden Gantt-Diagramme geben die zeitliche Zuordnung der Prozesse auf einen Prozessor an, wenn sie in der Reihenfolge (P 1, P 2, P 3 ) bzw. (P 3, P 2, P 1 ) ankommen S 1 P 1 P 2 P S 2 P 3 P 2 P 1 Im Vergabeplan S 1 wartet P 1 gar nicht, während P 2 und P 3 24 bzw. 32 Zeiteinheiten warten. Im Mittel warten die Prozesse im Plan S 1 ( )/3 = 56/3 Zeiteinheiten, während sie im Vergabeplan S 2 nur 14/3 Zeiteinheiten warten.

33 Betriebssysteme Folie 2-33 FCFS mit Prioritätswarteschlangen (Regel: rechenintensive Prozesse erhalten eine geringe Priorität und E/A-intensive eine hohe Priorität. Prozesse derselben Prioritätsklasse werden in der Reihenfolge ihrer Ankunft ohne Unterbrechung bis zu ihrem Ende bzw. ihrer Blockierung bedient. Prozesse können durch Prozesse höherer Priorität unterbrochen werden. Der Scheduler kann die Prioritäten der Prozesse ändern.) Shortest-Job-First (SJF), Shortest-Processing-Time (SPT) (der Prozess mit der kürzesten Rechenzeit wird als nächster ohne Unterbrechung bedient; Kenntnis der Rechenzeit ist erforderlich; Prozesse mit gleicher Rechenzeit werden nach FCFS bedient) Verfahren ist optimal bezogen auf die mittlere Wartezeit für eine vorgegebene Menge von Prozessen (Beweis siehe Literatur) nicht geeignet für kurzfristiges Scheduling, da die Rechenzeiten im Allgemeinen nicht bekannt sind wird häufig eingesetzt für langfristiges Scheduling im Stapelbetrieb (in diesem Fall wird das vom Benutzer vorgegebene Zeitlimit benutzt) kann auch als FCFS mit Prioritätswarteschlangen implementiert werden (die Priorität eines Prozesses könnte über den Kehrwert der geschätzten Rechenzeit bestimmt werden je mehr Rechenzeit desto niedriger die Priorität) Shortest-Remaining-Time (SRT), Shortest-Remaining- Processing-Time (SRPT) (im Prinzip SPT mit Unterbrechung, d. h., falls ein neuer Prozess eintrifft, dessen Rechenzeit geringer ist als die verbleibende Rechenzeit des gerade aktiven Prozesses, dann wird ein Prozesswechsel durchgeführt)

34 Betriebssysteme Folie 2-34 Round-Robin (RR) (Der Prozess darf den Prozessor für eine Zeitscheibe benutzen; falls er in dieser Zeit nicht fertig wird, wird er unterbrochen und am Ende der Warteschlange eingereiht; es handelt sich hier um ein zyklisches Verfahren ohne Prioritäten) weit verbreitetes Verfahren für die meisten Multitasking- Betriebssysteme gleichmäßige Aufteilung der CPU-Zeit auf die Prozesse Größe der Zeitscheibe bestimmt die Leistung zu kleine Zeitscheibe hoher Verwaltungsaufwand durch Prozesswechsel nominale Systemleistung wird u. U. nicht erreicht, da Kontextwechsel durchgeführt wird, bevor Cache- Speicher ihre Warmlaufphase überwunden haben zu große Zeitscheibe nähert sich dem FCFS-Verfahren, da mit zunehmender Zeitscheibe blockierende Systemaufrufe wahrscheinlicher werden mittlere Warte- und Antwortzeiten werden größer Shortest-Elapsed-Time (SET), Multilevel Feedback Queue Scheduling (im Prinzip RR mit Prioritätswarteschlangen; neuer Prozess wird in die Warteschlange höchster Priorität eingereiht und erhält hier eine Zeitscheibe; nutzt er die Zeitscheibe aus, wird er in die Warteschlange nächst niedriger Priorität eingereiht; andernfalls wird er blockiert und kommt irgendwann wieder in die Eingangswarteschlange; rechenintensive Prozesse sinken schnell in der Priorität)

35 Betriebssysteme Folie 2-35 Aufgabe 2-3: Die folgenden Prozesse kommen in der Reihenfolge (P 1, P 2, P 3, P 4, P 5 ) zum Zeitpunkt 0 an. Zeichnen Sie die Gantt-Diagramme für die zeitliche Zuordnung der Prozesse auf einen Prozessor für die Scheduling-Verfahren FCFS, SJF, RR (eine Zeitscheibe entspricht einer Zeiteinheit) und ein nicht unterbrechendes Verfahren mit Prioritätswarteschlangen (kleine Prioritätsnummer entspricht hoher Priorität). Geben Sie für die verschiedenen Verfahren die Durchlaufzeit, die mittlere Durchlaufzeit, die Wartezeit und die mittlere Wartezeit der Prozesse an. Prozess Rechenzeit (in Zeiteinheiten) Priorität P P P P P Aufgabe 2-4: Die Prozesse P 1, P 2, P 3, P 4 und P 5 treffen in dieser Reihenfolge ein. Die genauen Ankunfts- und Rechenzeiten können der nachfolgenden Tabelle entnommen werden. Zeichnen Sie die Gantt-Diagramme für die zeitliche Zuordnung der Prozesse auf einen Prozessor für die Scheduling-Verfahren FIFO, SPT, SRT und RR (eine Zeitscheibe entspricht zwei Zeiteinheiten). Geben Sie für die verschiedenen Verfahren die mittlere Verweilzeit der Prozesse im System an. Ein Prozesswechsel erfolgt nur zu den ganzzahligen Zeitpunkten 1, 2, 3, Prozess Ankunftszeit Rechenzeit P 1 0,0 11 P 2 0,2 2 P 3 1,1 6 P 4 3,1 1 P 5 4,1 4

36 Betriebssysteme Folie Prozesssynchronisation Prozesse können folgendermaßen ausgeführt werden zeitlich verschachtelt (quasi-parallel) auf einem Einprozessorsystem zeitlich überlappt (parallel) auf einem Multiprozessorsystem zeitlich verschachtelt und überlappt (heutiger Standard auf einem Multiprozessorsystem) Beispiel: modifizierender Zugriff auf eine gemeinsame Variable 1. Ausführungsreihenfolge Prozess/Thread 1 liest Wert der Variablen i erhöht Wert um 1 speichert neuen Wert in i Prozess/Thread 2 liest Wert der Variablen i erhöht Wert um 1 speichert neuen Wert in i 2. Ausführungsreihenfolge Prozess/Thread 1 liest Wert der Variablen i erhöht Wert um 1 speichert neuen Wert in i Prozess/Thread 2 liest Wert der Variablen i erhöht Wert um 1 speichert neuen Wert in i

3 Prozesse und Threads

3 Prozesse und Threads Betriebssysteme Folie 3-1 3 Prozesse und Threads Programm statische Folge von Anweisungen und Daten befindet sich i.a. als Datei auf einer Festplatte der Dateiinhalt entspricht den Regeln des Betriebssystems

Mehr

Dämon-Prozesse ( deamon )

Dämon-Prozesse ( deamon ) Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout

Mehr

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

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

Mehr

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

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

Mehr

CPU-Scheduling - Grundkonzepte

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

Mehr

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

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

Mehr

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

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

Mehr

Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken.

Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken. Betriebssysteme: Auswahl alter Klausuraufgaben Seite 1 Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken. a) sort < MeineDatei.txt > MeineDateiSort.txt b) find / -type d \( -name man

Mehr

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

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

Mehr

Prozesse und Scheduling

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

Mehr

Systeme 1. Kapitel 5. Scheduling

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

Mehr

Technische Informatik II

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

Mehr

6.Vorlesung Betriebssysteme Hochschule Mannheim

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

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

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

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

Mehr

Betriebssysteme (BTS)

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

Mehr

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

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

Mehr

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

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

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

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

Mehr

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

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

Mehr

13. Übung mit Musterlösung

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Kapitel 2: Betriebssysteme

Kapitel 2: Betriebssysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Vorlesung: Dr. Peer Kröger Übungen:

Mehr

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

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

Mehr

Rechnernutzung in der Physik. Betriebssysteme

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

Mehr

Prozesse und Threads. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at

Prozesse und Threads. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Prozesse und Threads Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at 1 Ziel: Gleichzeitiges, kontrolliertes Ausführen von Programmen auf einem Rechner Welche Mechanismen sind

Mehr

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation 09.05.15 1 Literatur [6-1] http://php.net/manual/de/book.sockets.php [6-2] http://de.wikipedia.org/wiki/socket_(software) [6-3] http://php.net/manual/de/book.network.php

Mehr

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

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

Mehr

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

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

Mehr

fork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS 2008 2. Prozesse (2/2) Folie 4

fork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS 2008 2. Prozesse (2/2) Folie 4 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: SAS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

6. Tutorium zu Softwaretechnik I

6. Tutorium zu Softwaretechnik I 6. Tutorium zu Softwaretechnik I Parallelität und Testen Michael Hoff 01.07.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep 2012. 4) Task-Verwaltung

DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep 2012. 4) Task-Verwaltung Inhalte Eigenschaften von Rechenprozessen (Tasks) Taskübergänge (process control block) Multitasking (kooperativ und präemptiv) Scheduler Erzeugen, Starten und Beenden von Tasks Taskzustände (running,

Mehr

8. Vorlesung Betriebssysteme

8. Vorlesung Betriebssysteme Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/69 8. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik wolkenrechnen@gmail.com Dr. Christian

Mehr

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57 3. Unix Prozesse Ein Prozeß ist die Umgebung eines laufenden Programms. Ein bißchen Analogie. Wer kocht gerne? Papa möchte mit Hilfe eines Rezeptes eine Torte für seine Tochter backen. Das Rezept ist das

Mehr

Das Monitorkonzept Brinch-Hansen

Das Monitorkonzept Brinch-Hansen Das Monitorkonzept (nach Hoare/Brinch Brinch-Hansen 1974) Nur ein Prozess bzw. Thread kann zu einem bestimmten Zeitpunkt im Monitor aktiv sein => gegenseitiger Ausschluss, mutual exclusion. Geschützte

Mehr

Übung zu Grundlagen der Betriebssysteme. 8. Übung 04.12.2012

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

Mehr

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Prof. Dr. Th. Letschert CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Vorlesung 7 Th Letschert FH Gießen-Friedberg Ressourcen Verwaltung passive Ressourcen aktive Ressourcen

Mehr

Technische Informa/k II

Technische Informa/k II Technische Informa/k II Prof. Dr. Bernd Freisleben Sommersemester 2013 Vorlesung zur Klausurvorbereitung Folie 00-2 Organisatorisches Klausur: Dienstag, 16.07.13, 12:00-14:00 Uhr im Hörsaal 00/0070 Zugelassene

Mehr

Kap. 2. Prozesse. Version vom 05.10.2009. Kap. 2 - Inhalt. Definition Prozeßzustände Threads Scheduling Beispiele. Folie 2

Kap. 2. Prozesse. Version vom 05.10.2009. Kap. 2 - Inhalt. Definition Prozeßzustände Threads Scheduling Beispiele. Folie 2 Kap. 2 Prozesse Version vom 05.10.2009 Kap. 2 - Inhalt Definition Prozeßzustände Threads Scheduling Beispiele Folie 2 Definition I - Woraus bestehen Prozesse? Prozeß ist ein Programm in seiner Ausführung,

Mehr

Grundlagen zur nebenläufigen Programmierung in Java

Grundlagen zur nebenläufigen Programmierung in Java Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei

Mehr

Scheduling. Gliederung. Was ist Scheduling? Scheduling. Übersicht: 1. Einführung und Übersicht. 2. Prozesse und Threads. 3. Interrupts. 4.

Scheduling. Gliederung. Was ist Scheduling? Scheduling. Übersicht: 1. Einführung und Übersicht. 2. Prozesse und Threads. 3. Interrupts. 4. Gliederung 1. Einführung und Übersicht 2. Prozesse und Threads 3. Interrupts 4. 5. Synchronisation 6. Interprozesskommunikation 7. Speicherverwaltung Cl. Schnörr / HM 1 Gliederung Cl. Schnörr / HM 2 Was

Mehr

Von Prozessen und Prozessoren (Prozess-Management)

Von Prozessen und Prozessoren (Prozess-Management) Von Prozessen und Prozessoren (Prozess-Management) V1.1 Technische Berufsschule Zürich IT Seite 1 Aus dem Geschichtsbuch: Grossrechner IBM 7094, 1965: Online- und Batchbetrieb IBM-Lochkarte Technische

Mehr

(Prüfungs-)Aufgaben zum Thema Scheduling

(Prüfungs-)Aufgaben zum Thema Scheduling (Prüfungs-)Aufgaben zum Thema Scheduling 1) Geben Sie die beiden wichtigsten Kriterien bei der Wahl der Größe des Quantums beim Round-Robin-Scheduling an. 2) In welchen Situationen und von welchen (Betriebssystem-)Routinen

Mehr

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

Mehr

POSIX Echtzeit: Kernel 2.6 und Preempt-RT

POSIX Echtzeit: Kernel 2.6 und Preempt-RT POSIX Echtzeit: Kernel 2.6 und Preempt-RT Slide 1 - http://www.pengutronix.de - 21.01.2007 Echtzeit-Systemplanung Wenn das zeitliche Verhalten spezifiziert ist, kann auch spezifiziert werden, welche Applikationsteile

Mehr

B1 Stapelspeicher (stack)

B1 Stapelspeicher (stack) B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen

Mehr

3 Programmierumgebung

3 Programmierumgebung Praktikum zur Lehrveranstaltung Betriebssysteme Seite 3-1 3 Programmierumgebung Damit Sie Ihre Programme in C und Java entwickeln können, müssen entsprechende Programmierumgebungen zur Verfügung stehen.

Mehr

1. Prozesse & Threads (10 Punkte)

1. Prozesse & Threads (10 Punkte) Fachbereich Informatik/Mathematik Seite 1/9 1. Prozesse & Threads (10 Punkte) a) Erklären Sie den Unterschied zwischen Prozessen und Threads. [4 P.] Der wesentliche Unterschied ist, dass Prozesse über

Mehr

Grundlagen der Informatik Ausnahmebehandlung & Threads

Grundlagen der Informatik Ausnahmebehandlung & Threads Grundlagen der Informatik Ausnahmebehandlung & Threads Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Inhalt Ausnahmebehandlung

Mehr

RTEMS- Echtzeitbetriebssystem

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

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08 Rapid I/O Toolkit http://projects.spamt.net/riot Alexander Bernauer alex@copton.net 08.12.08 Inhalt Motivation Architektur Beispiel I/O Features Ausblick Motivation Problemstellung Vorgaben Datenverarbeitung

Mehr

Betriebssysteme. CPU-Scheduling - Fallbeispiele. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Betriebssysteme. CPU-Scheduling - Fallbeispiele. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1. CPU-Scheduling - Fallbeispiele Sommersemester 2014 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1 Gesamtüberblick 1. Einführung in 2. Betriebssystemarchitekturen und Betriebsarten 3. Interruptverarbeitung

Mehr

Einführung in UNIX 1. Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet.

Einführung in UNIX 1. Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet. Einführung in UNIX 1 7 Prozesse Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet. Auf einem UNIX-Rechner können hundert oder

Mehr

Embedded-Linux-Seminare. Linux als Betriebssystem

Embedded-Linux-Seminare. Linux als Betriebssystem Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de

Mehr

Kapitel 2: Betriebssysteme

Kapitel 2: Betriebssysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2008 Kapitel 2: Betriebssysteme Vorlesung:

Mehr

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012 VU Technische Grundlagen der Informatik Übung 8: Systemsoftware und Netzwerke 183.579, SS2012 Übungsgruppen: o., 14.6. Mi., 20.6.2012 ufgabe 1: Virtual Memory Zeichnen Sie ein System das Paging zur Speicherverwaltung

Mehr

Lab 13: Multi Processor Systems II

Lab 13: Multi Processor Systems II Lab 13: Multi Processor Systems II 1. Können Sie sich erklären warum die Summe nicht 200% ergibt? Warum entspricht die Auslastung nicht 100% pro Prozessor? 100% ist die gesamte Auslastung vom System alle

Mehr

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS geschrieben von Oliver Botschkowski 1 Offene Systeme und deren Schnittstelle für die Elektronik im Kraftfahrzeug 1 Oliver Botschkowski - OSEK-OS

Mehr

Betriebssystembau (BSB)

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

Mehr

5 CPU Scheduling. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 5.1 Grundlagen - 54 - 5.1.1 CPU Burst / I/O Burst

5 CPU Scheduling. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 5.1 Grundlagen - 54 - 5.1.1 CPU Burst / I/O Burst FH Regensburg BT/SS04 5 CPU Scheduling 5.1 Grundlagen 5.1.1 CPU Burst / I/O Burst Beobachtung: Programme rechnen typischerweise etwas, dann tätigen sie Ein/Ausgabe: CPU-Burst: das Programm rechnet eine

Mehr

Embedded OS für ARM Cortex Microcontroller

Embedded OS für ARM Cortex Microcontroller Embedded OS für ARM Cortex Microcontroller RTOS Design, Timinganalyse und Test mit Core Simulation und Hardware Debugger Entscheidende Fragen für oder gegen RTOS Lohnt sich der Einsatz eines RTOS auch

Mehr

Kapitel 4. Monitore und wechselseitiger Ausschluss

Kapitel 4. Monitore und wechselseitiger Ausschluss Seite 1 Kapitel 4 Monitore und wechselseitiger Ausschluss Prof. Dr. Rolf Hennicker 28.05.2015 4.1 Interferenzen Seite 2 Parallel ablaufende Prozesse können sich gegenseitig (störend) beeinflussen. Beispiel

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 Verarbeitungsgrundlagen Teil 3 Betriebssystem Überwacher

Mehr

Vorl. 6: Single- und Multitasking

Vorl. 6: Single- und Multitasking Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorl. 6: Single- und Multitasking Peter B. Ladkin Single Tasking Command Interpreter (ComInt) läuft wartet auf Tastatur-Eingabe

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance 5. November 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Repetition

Mehr

Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene

Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg Prozess-Monitoring auf CPU-Takt Ebene Einleitung Unser Arbeitsgebiet: ALICE Teilchenphysik Experiment Cluster

Mehr

Rechnerarchitektur. 11. Betriebssysteme und Prozesse. Inhalt. Ziele von Betriebssystemen. Betriebssystemkomponenten. Betriebssystemkomponenten

Rechnerarchitektur. 11. Betriebssysteme und Prozesse. Inhalt. Ziele von Betriebssystemen. Betriebssystemkomponenten. Betriebssystemkomponenten Inhalt Rechnerarchitektur 11. e und Soft- und eines Rechners Ziele von en komponenten dienste und -funktionen Mehrprogrammbetrieb Dateisysteme Ein-/Ausgabe architekturen Monolithische Systeme Geschichtete

Mehr

TIMI: Technische Informatik für Medieninformatiker

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

Mehr

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

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

Mehr

11: Echtzeitbetriebssystem ucos-ii

11: Echtzeitbetriebssystem ucos-ii 11: Echtzeitbetriebssystem ucos-ii Sie lernen anhand aufeinander aufbauender Übungen, welche Möglichkeiten ein Echtzeitbetriebssystem wie das ucosii bietet und wie sich damit MC-Applikationen realisieren

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Parallelverarbeitung mit Ruby

Parallelverarbeitung mit Ruby Fachhochschule Wiesbaden - Fachbereich DCSM Parallelverarbeitung mit Ruby Prozess-Ebene Multithreading 04.12.2008 2003, 2008 H. Werntges, FB Design Informatik Medien (DCSM), FH Wiesbaden 1 Fachhochschule

Mehr

5) Realzeitscheduling

5) Realzeitscheduling Inhalte Anforderungen Klassifizierungen Verschiedene Verfahren: FIFO, Round Robin, Least Laxity, EDF, fixed/dyn. Prio. Beispiele und Aufgaben Seite 1 Motivation Gegeben: Ein Einprozessorsystem, das Multiprogrammierung

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

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

Mehr

Inhaltsverzeichnis XII

Inhaltsverzeichnis XII 1 Einführung... 1 1.1 Computersysteme... 1 1.1.1 Einführung... 2 1.1.2 Aufgabe von Betriebssystemen... 3 1.1.3 Grundlegende Hardwaremodelle... 3 1.1.4 CPU-Registersatz... 7 1.1.5 Multicore-Prozessoren

Mehr

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung Zusammenfassung Kapitel 4 Dateiverwaltung 1 Datei logisch zusammengehörende Daten i.d.r. permanent

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

Multithreading ab Java 5: Die neuen Concurrency APIs

Multithreading ab Java 5: Die neuen Concurrency APIs Multithreading ab Java 5: Die neuen Concurrency APIs Java Concurrency Spezifiziert in JSR166 Ab Java 5 fester Bestandteil von Java Durch zusätzliche Library auch vor Java 5 vorhanden backport-util-concurrent

Mehr

Übung zu Grundlagen der Betriebssysteme. 9. Übung 11.12.2012

Übung zu Grundlagen der Betriebssysteme. 9. Übung 11.12.2012 Übung zu Grundlagen der Betriebssysteme 9. Übung 11.12.2012 Wechselseitiger Ausschluss Wechselseitiger Ausschluss: 1) Softwareansätze Dekker-Algorithmus Peterson-Algorithmus 2) Unterstützung durch Hardware

Mehr

Programmierung eines GIMP-Plugin

Programmierung eines GIMP-Plugin Programmierung eines GIMP-Plugin Was ist GIMP? GNU Image Manipulation Program Bildbearbeitungssoftware Bildkonvertierer Open Source Erweiterbar durch Plugins Mögliche Programmiersprachen für Plugin-Entwicklung

Mehr

Kapitel III. Prozesse. Prozessverwaltung. Was ist ein Prozess?

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

Mehr

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung, Peter Mandl Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation, Virtualisierung 4. Auflage ^ Springer Vi eweg 1 Einführung 1 1.1 Computersysteme 1

Mehr

5 Speicherverwaltung. bs-5.1 1

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

Mehr

Steffen Heinzl Markus Mathes. Middleware in Java

Steffen Heinzl Markus Mathes. Middleware in Java Steffen Heinzl Markus Mathes Middleware in Java Leitfaden zum Entwurf verteilter Anwendungen - Implementierung von verteilten Systemen über JMS - Verteilte Objekte über RMI und CORBA Mit 50 Abbildungen

Mehr

Grundlagen der Informatik. Teil VI Betriebssysteme

Grundlagen der Informatik. Teil VI Betriebssysteme Grundlagen der Informatik Teil VI Betriebssysteme Seite 1 Definition nach DIN: Unter Betriebssystem versteht man alle Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage

Mehr

Betriebssysteme Kap A: Grundlagen

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

Mehr

Betriebssysteme Theorie

Betriebssysteme Theorie Betriebssysteme Theorie SS 2011 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz D (05.05.2011) Synchronisation 05.05.2011 Betriebssysteme-Theorie, Hans-Georg Eßer Folie D-1 Einführung (1) Es gibt

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

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

Mehr

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Friedrich-Alexander-Universität Erlangen-Nürnberg Ausgewählte Kapitel eingebetteter Systeme Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Sven Kerschbaum 1. Einführung Bei einem eingebetteten

Mehr

Effizientes Memory Debugging in C/C++

Effizientes Memory Debugging in C/C++ Effizientes Memory Debugging in C/C++ Adam Szalkowski Embedded Computing Conference 2014 Ursachen/ Symptome Debugging Tools Ursachen / Symptome Was habe ich falsch gemacht? Was kann denn passieren im schlimmsten

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

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

Mehr

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

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

Mehr

2 Echtzeitbetriebssysteme

2 Echtzeitbetriebssysteme 35 2 Echtzeitbetriebssysteme In den letzten Jahren hat sich die Automobilindustrie zu einem der wesentlichen Anwender von Echtzeitbetriebssystemen für eingebettete Systeme entwickelt. Relativ zeitig erkannten

Mehr

Grundkurs Betriebssysteme

Grundkurs Betriebssysteme Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation von Peter Mandl 3., akt. und erw. Aufl. 2013 Springer Vieweg Wiesbaden 2012 Verlag C.H. Beck im

Mehr

OSEKtime - Time-Triggered OSEK/OS

OSEKtime - Time-Triggered OSEK/OS OSEKtime - Time-Triggered OSEK/OS Gregor Kaleta gregor.kaleta@udo.edu PG Seminarwochenende 21.-23. Oktober 2007 1 Überblick Einleitung OSEKtime Task-Zustandsmodell, Scheduling-Verfahren Interrupt-Verarbeitung

Mehr

Aufgabe V1: Daten eines Programms

Aufgabe V1: Daten eines Programms Aufgabe V1: Daten eines Programms Analysieren Sie das Beispielprogramm auf der folgenden Seite. Es ist in Java geschrieben, steht aber stellvertretend auch für Programme in C, C++ oder anderen Programmiersprachen.

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr