Betriebssysteme. Tafelübung: Klausurvorbereitungsstunde. Olaf Spinczyk.
|
|
- Marta Schenck
- vor 5 Jahren
- Abrufe
Transkript
1 Betriebssysteme Tafelübung: Klausurvorbereitungsstunde Olaf Spinczyk AG Eingebettete Systemsoftware Informatik 12, TU Dortmund
2 Agenda Prozesse Synchronisation Deadlocks Speicherverwaltung Ein-/Ausgabe Betriebssysteme: Fragestunde 2
3 Verwendung von fork()... /* includes */ int main () { int pid; printf( Elternpr.: PID %d PPID %d\n, getpid(), getppid()); pid = fork(); /* Prozess wird dupliziert! Beide laufen an dieser Stelle weiter. */ if (pid > 0) printf( Im Elternprozess, Kind-PID %d\n, pid); else if (pid == 0) printf( Im Kindprozess, PID %d PPID %d\n, getpid(), getppid()); else printf( Oh, ein Fehler!\n ); /* mehr dazu in der TÜ */ } olaf@xantos:~>./fork Elternpr.: PID 7553 PPID 4014 Im Kindprozess, PID 7554 PPID Betriebssysteme: Im Elternprozess, Fragestunde Kind-PID
4 Diskussion: Zombies Bevor der exit status eines terminierten Prozesses mit Hilfe von wait abgefragt wird, ist er ein Zombie. Die Ressourcen solcher Prozesse können freigegeben werden, aber die Prozessverwaltung muss sie noch kennen. Insbesondere der exit status muss gespeichert werden. & ps PID TTY TIME CMD 4014 pts/4 00:00:00 bash pts/4 00:00:00 wait pts/4 00:00:00 wait <defunct> pts/4 00:00:00 ps Exit Status: 42 Beispielprogramm mit beendetem Kindprozess ohne abgefragten exit Status. Zombies werden von ps als <defunct> dargestellt Betriebssysteme: Fragestunde 4
5 Leichtgewichtige Prozesse (Threads) Die 1:1-Beziehung zwischen Kontrollfluss und Adressraum wird aufgebrochen. Eng kooperierende Threads (deutsch Fäden ) können sich einen Adressraum teilen (code + data + bss + heap, aber nicht stack!). Vorteile: Aufwändige Operationen können in einen leichtgewichtigen Hilfsprozess ausgelagert werden, während der Elternprozess erneut auf Eingabe reagieren kann. Typisches Beispiel: Webserver Programme, die aus mehreren unabhängigen Kontrollflüssen bestehen, profitieren unmittelbar von Multiprozessor-Hardware. Schneller Kontextwechsel, wenn man im selben Adressraum bleibt. Je nach Scheduler eventuell mehr Rechenzeit. Nachteil: Programmierung ist schwierig: Zugriff auf gemeinsame Daten muss koordiniert werden. Betriebssysteme: Fragestunde 5
6 Vergleich: exec..() fork() pthread_create() Überlagerung eines Prozesses Keine gemeinsamen Daten schwergewichtig Prozess A STACK DATA, BSS, HEAP main thread /* TEXT Segment prog1 */ exec..( prog2...); Betriebssysteme: Fragestunde 6
7 Vergleich: exec..() fork() pthread_create() Überlagerung eines Prozesses Keine gemeinsamen Daten schwergewichtig Prozess A STACK STACK DATA, BSS, HEAP DATA, BSS, HEAP main thread /* TEXT Segment prog1 */ /* TEXT Segment prog2 */ int main(...)... int main(...) Betriebssysteme: Fragestunde 7
8 Vergleich: exec..() fork() pthread_create() Verzweigung eines Prozesses Gemeinsame Daten: shared-memory schwergewichtig Prozess A STACK DATA, BSS, HEAP main thread /* TEXT Segment */ switch(fork()){ case -1: exit(exit_failure); case 0:... break; case default:... break; } Betriebssysteme: Fragestunde 8
9 Vergleich: exec..() fork() pthread_create() Verzweigung eines Prozesses Gemeinsame Daten: shared-memory schwergewichtig Prozess A Prozess B STACK DATA, BSS, HEAP STACK DATA, BSS, HEAP main thread /* TEXT Segment */ switch(fork()){ case -1: exit(exit_failure); case 0:... break; case default:... break; } main thread Betriebssysteme: Fragestunde 9
10 Vergleich: exec..() fork() pthread_create() Verzweigung eines Prozesses Gemeinsame Daten: shared-memory schwergewichtig Prozess A Prozess B STACK DATA, BSS, HEAP STACK DATA, BSS, HEAP main thread /* TEXT Segment */ switch(fork()){ case -1: exit(exit_failure); case 0:... break; case default:... break; } main thread SHARED MEMORY Betriebssysteme: Fragestunde 10
11 Vergleich: exec..() fork() pthread_create() Verzweigung eines Prozesses Gemeinsame Daten: shared-memory schwergewichtig Prozess A Prozess B STACK DATA, BSS, HEAP STACK DATA, BSS, HEAP main thread /* TEXT Segment */ switch(fork()){ case -1: exit(exit_failure); case 0: Erzeugung... break; case default:... break; } und Anbindung nötig main thread SHARED MEMORY Zugriff muss durch Semaphore synchronisiert werden Betriebssysteme: Fragestunde 11
12 Vergleich: exec..() fork() pthread_create() Aufteilung eines Prozesses Gemeinsame Daten: Data, BSS, Heap, shared-memory leichtgewichtig Prozess A STACK DATA, BSS, HEAP /* TEXT Segment */ main thread int main(void){... pthread_create(,&newthread,(void*)&thargs);... } Betriebssysteme: Fragestunde 12
13 Vergleich: exec..() fork() pthread_create() Aufteilung eines Prozesses Gemeinsame Daten: Data, BSS, Heap, shared-memory leichtgewichtig Prozess A MainThread STACK NEWthread STACK DATA, BSS, HEAP main thread /* TEXT Segment */ int main(void){ new thread void *NEWthread(void *thargs){ pthread_create( ); pthread_exit((void*)0); } } Betriebssysteme: Fragestunde 13
14 Vergleich: exec..() fork() pthread_create() Aufteilung eines Prozesses Gemeinsame Daten: Data, BSS, Heap, shared-memory leichtgewichtig Prozess A MainThread STACK NEWthread STACK DATA, BSS, HEAP main thread /* TEXT Segment */ Zugriff muss durch Mutexe oder Semaphore synchronisiert werden int main(void){ new thread void *NEWthread(void *thargs){ pthread_create( ); pthread_exit((void*)0); } } Betriebssysteme: Fragestunde 14
15 Agenda Prozesse Synchronisation Deadlocks Speicherverwaltung Ein-/Ausgabe Betriebssysteme: Fragestunde 15
16 Semaphor komplexere Interaktionen Beispiel: Das erste Leser/Schreiber-Problem /* gem. Speicher */ /* Leser */ Semaphore mutex; wait(&mutex); Semaphore wrt; readcount++; int readcount; if (readcount == 1) wait(&wrt); /* Initialisierung */ signal(&mutex); mutex = 1; wrt = 1;... lese readcount = 0; wait(&mutex); /* Schreiber */ readcount--; wait (&wrt); if (readcount == 0)... schreibe signal(&wrt); signal(&mutex): signal (&wrt); Betriebssysteme: Fragestunde 16
17 Naiver Lösungsansatz falsch! /* Schlossvariable (Initialwert 0) */ typedef unsigned char Lock; /* Kritischen Abschnitt betreten */ void acquire (Lock *lock) { while (*lock); *lock = 1; } /* Kritischen Abschnitt wieder verlassen */ void release (Lock *lock) { *lock = 0; } Betriebssysteme: Fragestunde 17
18 Naiver Lösungsansatz falsch! /* Schlossvariable */ typedef unsigned char Lock; /* K.A. betreten */ void acquire (Lock *lock) { while (*lock); *lock = 1; } /* K.A. verlassen */ void release (Lock *lock) { *lock = 0; } acquire soll einen kritischen Abschnitt schützen, ist dabei aber selbst kritisch! Problematisch ist der Moment nach dem Verlassen der Warteschleife und vor dem Setzen der Schlossvariablen. Bei Verdrängung des laufenden Prozesses in diesem Moment könnte ein anderer Prozess den kritischen Abschnitt frei vorfinden und ebenfalls betreten. Im weiteren Verlauf könnten (mindestens) zwei Prozesse den eigentlich durch acquire geschützten kritischen Abschnitt überlappt ausführen! Betriebssysteme: Fragestunde 18
19 Schloss mit atomaren Operationen Viele CPUs unterstützen unteilbare (atomare) Lese-/Modifikations-/Schreibzyklen, mit denen sich Schlossalgorithmen implementieren lassen: Motorola 68K: TAS (Test-and-Set) Setzt Bit 7 des Zieloperanden und liefert den vorherigen Zustand in Condition Code Bits acquire TAS lock BNE acquire Intel x86: XCHG (Exchange) Tauscht den Inhalt eines Registers mit dem einer Variablen im Speicher PowerPC: LL/SC (Load Linked/Store Conditional)... mov ax,1 acquire: xchg ax,lock cmp ax,0 jne acquire Betriebssysteme: Fragestunde 19
20 Semaphor einfache Interaktionen einseitige Synchronisation /* gem. Speicher */ Semaphore elem; struct list l; struct element e; /* Initialisierung */ elem = 0; void producer() { enqueue(&l, &e); signal(&elem); } void consumer() { struct element *x; wait(&elem); x = dequeue(&l); } betriebsmittelorientierte Synchronisation /* gem. Speicher */ Semaphore resource; /* Initialisierung */ resource = N; /* N > 1 */ sonst wie beim gegenseitigen Ausschluss Betriebssysteme: Fragestunde 20
21 Agenda Prozesse Synchronisation Deadlocks Speicherverwaltung Betriebssysteme: Fragestunde 21
22 Ursachenforschung... am Beispiel 1 Käfer 1 belegt L und benötigt R Käfer 2 belegt R und benötigt L R 1 R L L 2 Verklemmung möglich 2 Verklemmung aufgetreten Betriebssysteme: Fragestunde 22
23 Ursachenforschung... abstrakt Fortschritt Prozess K2 1 2 '1'-'6': mögliche Abläufe : Verklemmung In diese Bereiche können die Prozesse nicht hinein! Betriebsmittel 3 Verklemmung unvermeidbar L R L R Betriebsmittel Fortschritt Prozess K Betriebssysteme: Fragestunde 23
24 Ursachenforschung... abstrakt Fortschritt Prozess K2 '1'-'6': mögliche Abläufe Eine Verklemmung kann in diesem Szenario nicht auftreten. Betriebsmittel L R 5 6 L R Betriebsmittel Fortschritt Prozess K Betriebssysteme: Fragestunde 24
25 Betriebsmittel... werden vom Betriebssystem verwaltet und den Prozessen zugänglich gemacht. Man unterscheidet zwei Arten: Wiederverwendbare Betriebsmittel Werden von Prozessen für eine bestimmte Zeit belegt und anschließend wieder freigegeben. Beispiele: CPU, Haupt- und Hintergrundspeicher, E/A-Geräte, Systemdatenstrukturen wie Dateien, Prozesstabelleneinträge,... Konsumierbare Betriebsmittel Werden im laufenden System erzeugt (produziert) und zerstört (konsumiert) Beispiele: Unterbrechungsanforderungen, Signale, Nachrichten, Daten von Eingabegeräten Betriebssysteme: Fragestunde 25
26 Wiederverwendbare Betriebsmittel Es kommt zu einer Verklemmung, wenn zwei Prozesse ein wiederwendbares Betriebsmittel belegt haben, dass vom jeweils anderen hinzugefordert wird. Beispiel: Ein Rechnersystem hat 200 GByte Hauptspeicher. Zwei Prozesse belegen den Speicher schrittweise. Die Belegung erfolgt blockierend. Prozess 1... Belege 80 GByte;... Belege 60 GByte; Prozess 2... Belege 70 GByte;... Belege 80 GByte; Wenn beide Prozesse ihre erste Anforderung ausführen bevor Speicher nachgefordert wird, ist eine Verklemmung unvermeidbar Betriebssysteme: Fragestunde 26
27 Konsumierbare Betriebsmittel Es kommt zu einer Verklemmung, wenn zwei Prozesse auf ein konsumierbares Betriebsmittel warten, das vom jeweils anderen produziert wird. Beispiel: Synchronisationssignale werden mit Hilfe der Semaphoroperation wait und signal zwischen zwei Prozessen verschickt. Prozess 1 Prozess 2 semaphore s1 = {0, NULL};... wait (&s1);... signal (&s2); semaphore s2 = {0, NULL};... wait (&s2);... signal (&s1); Jeder Prozess wartet auf ein Synchronisationssignal des anderen, das dieser aber nicht senden kann, da er selbst blockiert ist Betriebssysteme: Fragestunde 27
28 Verklemmung von Prozessen 1. Variante: Deadlock Passives Warten Prozesszustand BLOCKED 2. Variante: Livelock Aktives Warten (busy waiting oder lazy busy waiting) Prozesszustand beliebig (auch RUNNING), aber kein Fortschritt Deadlocks sind das vergleichsweise geringere Übel, da dieser Zustand eindeutig erkennbar ist und so die Basis zur Auflösung gegeben ist Betriebssysteme: Fragestunde 28
29 Agenda Prozesse Synchronisation Deadlocks Speicherverwaltung Ein-/Ausgabe Betriebssysteme: Fragestunde 29
30 Grundlegende Politiken/Strategien Platzierungsstrategie (placement policy) obligatorisch Woher soll benötigter Speicher genommen werden? Wo der Verschnitt am kleinsten/größten ist Egal, weil Verschnitt zweitrangig ist Und zusätzlich bei Ein-/Auslagerung... Ladestrategie (fetch policy) Wann sind Speicherinhalte aus dem Hintergrundspeicher in den Hauptspeicher zu laden? Auf Anforderung oder im Voraus Ersetzungsstrategie (replacement policy) Welche Speicherinhalte sind ggf. in den Hintergrundspeicher zu verdrängen, falls der Speicher knapp wird? Das älteste, am seltensten genutzte Das am längsten ungenutzte Betriebssysteme: Fragestunde 30
31 Segmentierung Hardwareunterstützung: Abbildung logischer auf physikalische Adressen logischer Adressraum physikalischer Adressraum ROM + 0x x54ffff 0x xfffff 0 + 0x RAM 0x1fffff 0x Das Segment des logischen Adressraums kann an jeder beliebigen Stelle im physikalischen Adressraum liegen. Das Betriebssystem bestimmt, wo ein Segment im physikalischen Adressraum tatsächlich liegen soll Betriebssysteme: Fragestunde 31
32 Segmentierung (2) Realisierung mit Übersetzungstabelle Segmenttabellenbasisregister Segmenttabelle Startadr. Länge a02 logische Adresse ffe0 f fff ja < + Trap: Schutzverletzung ffe1 3a02 physikalische Adresse Betriebssysteme: Fragestunde 32
33 Seitenadressierung (paging) Einteilung des logischen Adressraums in gleichgroße Seiten, die an beliebigen Stellen im physikalischen Adressraum liegen können Lösung des Fragmentierungsproblems keine Kompaktifizierung mehr nötig Vereinfacht Speicherbelegung und Ein-/Auslagerungen logischer Adressraum physikalischer Adressraum ROM Seiten (pages) Kacheln (frames) RAM Betriebssysteme: Fragestunde 33
34 MMU mit Seiten-Kacheltabelle Tabelle setzt Seiten in Kacheln um SKT Basisregister Seiten-Kacheltabelle Startadr ffe0 fxxx a logische Adresse ffe0f 12a physikalische Adresse Betriebssysteme: Fragestunde 34
35 Mehrstufige Seitenadressierung Beispiel: zweifach indirekte Seitenadressierung logische Adresse a Präsenzbit auch für jeden Eintrag in den höheren Stufen... Tabellen werden aus- und einlagerbar Tabelle können bei Zugriff (=Bedarf) erzeugt werden (spart Speicher!) Aber: Noch mehr implizite Speicherzugriffe Betriebssysteme: Fragestunde 35
36 Translation Look-Aside Buffer (TLB) Schneller Registersatz wird konsultiert bevor auf die SKT zugegriffen wird: SKT Basisregister Seiten-Kacheltabelle Startadr. ffe0 fxxx a Translation Look Aside Buffer (TLB) a0123 bfff4 ffe0f logische Adresse... ffe0f physikalische Adresse Betriebssysteme: Fragestunde 36 12a
37 Translation Look-Aside Buffer (2) Schneller Zugriff auf Seitenabbildung, falls Information im voll-assoziativen Speicher des TLB keine impliziten Speicherzugriffe nötig Bei Kontextwechseln muss TLB gelöscht werden (flush) Bei Zugriffen auf eine nicht im TLB enthaltene Seite wird die entsprechende Zugriffsinformation in den TLB eingetragen Ein alter Eintrag muss zur Ersetzung ausgesucht werden TLB Größe Intel Core i7: 512 Einträge, Seitengröße 4K UltraSPARC T2: Daten TLB = 128, Code TLB = 64, Seitengröße 8K Größere TLBs bei den üblichen Taktraten zur Zeit nicht möglich Betriebssysteme: Fragestunde 37
38 Seitenersetzung Was tun, wenn keine freie Kachel vorhanden? Eine Seite muss verdrängt werden, um Platz für neue Seite zu schaffen! Auswahl von Seiten, die nicht geändert wurden (dirty bit in der SKT) Verdrängung erfordert Auslagerung, falls Seite geändert wurde Vorgang: Seitenfehler (page fault): Trap in das Betriebssystem Auslagern einer Seite, falls keine freie Kachel verfügbar Einlagern der benötigten Seite Wiederholung des Zugriffs Problem Welche Seite soll ausgewählt werden (das Opfer )? Betriebssysteme: Fragestunde 38
39 Ersetzungsstrategien Betrachtung von Ersetzungsstrategien und deren Wirkung auf Referenzfolgen Referenzfolge Folge von Seitennummern, die das Speicherzugriffsverhalten eines Prozesses abbildet Ermittlung von Referenzfolgen z.b. durch Aufzeichnung der zugegriffenen Adressen - Reduktion der aufgezeichneten Sequenz auf Seitennummern - Zusammenfassung von unmittelbar hintereinanderstehenden Zugriffen auf die gleiche Seite Beispiel für eine Referenzfolge: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, Betriebssysteme: Fragestunde 39
40 Optimale Ersetzungsstrategie Vorwärtsabstand Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite Strategie OPT (oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7) Ersetze immer die Seite mit dem größten Vorwärtsabstand! Referenzfolge Kachel Hauptspeicher Kachel Kachel Kachel > > > > > Kontrollzustände Kachel 2 > > > > > (Vorwärtsabstand) Kachel 3 > > > Betriebssysteme: Fragestunde 40
41 Optimale Ersetzungsstrategie Implementierung von OPT praktisch unmöglich Referenzfolge müsste vorher bekannt sein OPT ist nur zum Vergleich von Strategien brauchbar Suche nach Strategien, die möglichst nahe an OPT kommen z.b. Least Recently Used (LRU) Betriebssysteme: Fragestunde 41
42 Least Recently Used (LRU) Rückwärtsabstand Zeitdauer, seit dem letzten Zugriff auf die Seite LRU Strategie (10 Einlagerungen) Ersetze die Seite mit dem größten Rückwärtsabstand! Referenzfolge Kachel Hauptspeicher Kachel Kachel Kontrollzustände (Rückwärtsabstand) Kachel Kachel 2 > Kachel 3 > > Betriebssysteme: Fragestunde 42
43 Least Recently Used (LRU) Vergrößerung des Hauptspeichers (4 Kacheln): 8 Einlagerungen Referenzfolge Kachel Kachel Hauptspeicher Kachel Kachel Kachel Kontrollzustände Kachel 2 > (Rückwärtsabstand) Kachel 3 > > Kachel 4 > > > Betriebssysteme: Fragestunde 43
44 Least Recently Used (LRU) Keine Anomalie Allgemein gilt: Es gibt eine Klasse von Algorithmen (Stack-Algorithmen), bei denen keine Anomalie auftritt: - Bei Stack-Algorithmen ist bei k Kacheln zu jedem Zeitpunkt eine Untermenge der Seiten eingelagert, die bei k+1 Kacheln zum gleichen Zeitpunkt eingelagert wären! - LRU: Es sind immer die letzten k benutzten Seiten eingelagert - OPT: Es sind die k bereits benutzten Seiten eingelagert, die als nächstes zugegriffen werden Problem Implementierung von LRU nicht ohne Hardwareunterstützung möglich Es muss jeder Speicherzugriff berücksichtigt werden Betriebssysteme: Fragestunde 44
45 Least Recently Used (LRU) Naive Idee: Hardwareunterstützung durch Zähler CPU besitzt einen Zähler, der bei jedem Speicherzugriff erhöht wird (inkrementiert wird) bei jedem Zugriff wird der aktuelle Zählerwert in den jeweiligen Seitendeskriptor geschrieben Auswahl der Seite mit dem kleinsten Zählerstand (Suche!) Aufwändige Implementierung viele zusätzliche Speicherzugriffe hoher Speicherplatzbedarf Minimum-Suche in der Seitenfehler-Behandlung Betriebssysteme: Fragestunde 45
46 Second Chance (Clock) So wird s gemacht: Einsatz von Referenzbits Referenzbit im Seitendeskriptor wird automatisch durch Hardware gesetzt, wenn die Seite zugegriffen wird - einfacher zu implementieren - weniger zusätzliche Speicherzugriffe - moderne Prozessoren bzw. MMUs unterstützen Referenzbits (z.b. x86: access bit) Ziel: Annäherung von LRU bei einer frisch eingelagerten Seite wird das Referenzbit zunächst auf 1 gesetzt wird eine Opferseite gesucht, so werden die Kacheln reihum inspiziert - ist das Referenzbit 1, so wird es auf 0 gesetzt (zweite Chance) - ist das Referenzbit 0, so wird die Seite ersetzt Betriebssysteme: Fragestunde 46
47 Second Chance (Clock) Implementierung mit umlaufendem Zeiger (Clock) A 1 Referenzbit A 1 I 1 B 0 I 1 B 0 H 0 C 1 H 0 C 0 G 1 D 1 G 1 D 0 F 1 E 0 F 1 an der Zeigerposition wird Referenzbit getestet - falls Referenzbit 1, wird Bit gelöscht - falls Referenzbit gleich 0, wurde ersetzbare Seite gefunden - Zeiger wird weitergestellt; falls keine Seite gefunden: Wiederholung falls alle Referenzbits auf 1 stehen, wird Second Chance zu FIFO E 0 Seite wird ersetzt Betriebssysteme: Fragestunde 47
48 Second Chance (Clock) Ablauf bei drei Kacheln (9 Einlagerungen) Referenzfolge Kachel Hauptspeicher Kachel Kachel Kachel Kontrollzustände Kachel (Referenzbits) Kachel Umlaufzeiger Betriebssysteme: Fragestunde 48
49 Second Chance (Clock) Vergrößerung des Hauptspeichers (4 Kacheln): 10 Einlagerungen Referenzfolge Kachel Hauptspeicher Kachel Kachel Kachel Kachel Kachel Kontrollzustände Kachel (Referenzbits) Kachel Umlaufzeiger Betriebssysteme: Fragestunde 49
50 Second Chance (Clock) Bei Second Chance kann es auch zur FIFO Anomalie kommen Wenn alle Referenzbits gleich 1, wird nach FIFO entschieden Im Normalfall kommt man aber LRU nahe Erweiterung Modifikationsbit kann zusätzlich berücksichtigt werden (Dirty Bit) Drei Klassen: (0,0), (1,0) und (1,1) mit (Referenzbit, Modifikationsbit) Suche nach der niedrigsten Klasse (Einsatz im MacOS) Betriebssysteme: Fragestunde 50
51 Agenda Prozesse Synchronisation Deadlocks Speicherverwaltung Ein-/Ausgabe Betriebssysteme: Fragestunde 51
52 Geräteklassen Zeichenorientierte Geräte Tastatur, Drucker, Modem, Maus,... Meist rein sequentieller Zugriff, selten wahlfreie Positionierung Blockorientierte Geräte Festplatte, Diskette, CD-ROM, DVD, Bandlaufwerke,... Meist wahlfreier blockweiser Zugriff (random access) Andere Geräte passen weniger leicht in dieses Schema Grafikkarten (insbesondere 3D-Beschleunigung) Netzwerkkarten (Protokolle, Adressierung, Broadcast/Multicast, Nachrichtenfilterung,...) Zeitgeberbaustein (Einmalige oder periodische Unterbrechungen) Betriebssysteme: Fragestunde 52
53 Polling (oder Programmierte E/A )... bedeutet aktives Warten auf ein Ein-/Ausgabegerät /* Zeichen in Kern-Puffer p kopieren */ copy_from_user (buffer, p, count); /* Schleife über alle Zeichen */ for (i=0; i<count; i++) { Pseudo-Code einer Betriebssystemfunktion zum Drucken von Text im Polling- Betrieb. /* Warte aktiv bis Drucker bereit */ while (*printer_status_reg!= READY); } /* Ein Zeichen ausgeben */ *printer_data_reg = p[i]; return_to_user (); Betriebssysteme: Fragestunde 53
54 Unterbrechungsgetriebene E/A... bedeutet, dass die CPU während der Wartezeit einem anderen Prozess zugeteilt werden kann. copy_from_user (buffer, p, count); /* Druckerunterbrechungen erlauben */ enable_interrupts (); /* Warte bis Drucker bereit */ while (*printer_status_reg!= READY); /* Erstes Zeichen ausgeben */ *printer_data_reg = p[i++]; scheduler (); return_to_user (); Code, der die E/A-Operation initiiert. if (count > 0) { *printer_data_reg = p[i]; count--; i++; } else unblock_user (); acknowledge_interrupt (); return_from_interrupt (); Unterbrechungsbehandlungsroutine Betriebssysteme: Fragestunde 54
55 DMA-getriebene E/A... bedeutet, dass die Software nicht mehr für den Datentransfer zwischen Controller und Hauptspeicher zuständig ist. Die CPU wird weiter entlastet. copy_from_user (buffer, p, count); set_up_dma_controller (p, count); scheduler (); return_to_user (); Code, der die E/A-Operation initiiert. acknowledge_interrupt (); unblock_user (); return_from_interrupt (); Unterbrechungsbehandlungsroutine Betriebssysteme: Fragestunde 55
56 UNIX Block Buffer Cache Pufferspeicher für Plattenblöcke im Hauptspeicher Verwaltung mit Algorithmen ähnlich wie bei Kachelverwaltung Read ahead: beim sequentiellen Lesen wird auch der Transfer von Folgeblöcken angestoßen Lazy write: Block wird nicht sofort auf Platte geschrieben (erlaubt Optimierung der Schreibzugriffe und blockiert den Schreiber nicht) Verwaltung freier Blöcke in einer Freiliste Kandidaten für Freiliste werden nach LRU Verfahren bestimmt Bereits freie aber noch nicht anderweitig benutzte Blöcke können reaktiviert werden (Reclaim) Betriebssysteme: Fragestunde 56
57 UNIX Block Buffer Cache (2) Schreiben erfolgt, wenn keine freien Puffer mehr vorhanden sind, regelmäßig vom System (fsflush Prozess, update Prozess), beim Systemaufruf sync(), und nach jedem Schreibaufruf im Modus O_SYNC. Adressierung Adressierung eines Blocks erfolgt über ein Tupel: (Gerätenummer, Blocknummer) Über die Adresse wird ein Hash-wert gebildet, der eine der möglichen Pufferlisten auswählt Betriebssysteme: Fragestunde 57
58 Journaled File Systems Zusätzlich zum Schreiben der Daten und Meta-Daten (z.b. Inodes) wird ein Protokoll der Änderungen geführt Alle Änderungen treten als Teil von Transaktionen auf. Beispiele für Transaktionen: Erzeugen, löschen, erweitern, verkürzen von Dateien Dateiattribute verändern Datei umbenennen Protokollieren aller Änderungen am Dateisystem zusätzlich in einer Protokolldatei (Log File) Beim Bootvorgang wird Protokolldatei mit den aktuellen Änderungen abgeglichen und damit werden Inkonsistenzen vermieden Betriebssysteme: Fragestunde 58
Betriebssysteme (BS)
Betriebssysteme (BS) Virtueller Speicher Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 2 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ In
MehrBetriebssysteme. Probeklausur. Olaf Spinczyk.
Betriebssysteme https://ess.cs.tu-dortmund.de/de/teaching/ss/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de https://ess.cs.tu-dortmund.de/~os G Eingebettete Systemsoftware Informatik, TU Dortmund blauf
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Probeklausur Olaf Spinczyk, Daniel Cordes und Matthias Meier Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/ http://ess.cs.tu-dortmund.de/de/teaching/ss2012/bs/
MehrBetriebssysteme (BS) Speicherverwaltung. Olaf Spinczyk 1.
Betriebssysteme (BS) Speicherverwaltung http://ess.cs.tu-dortmund.de/de/teaching/ss2016/bs/ Olaf Spinczyk 1 olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os 1 In Zusammenarbeit mit Franz Hauck,
MehrBetriebssysteme (BS) Inhalt. Speicherverwaltung. Olaf Spinczyk 1.
Betriebssysteme (BS) Speicherverwaltung http://ess.cs.tu-dortmund.de/de/teaching/ss2016/bs/ Olaf Spinczyk 1 olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os 1 In Zusammenarbeit mit Franz Hauck,
MehrBetriebssysteme. Probeklausur. Olaf Spinczyk.
Betriebssysteme Probeklausur https://ess.cs.tu-dortmund.de/de/teaching/ss2018/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de https://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Speicherverwaltung Olaf Spinczyk 1 Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS 1)
Betriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS 1) Speicherverwaltung Olaf Spinczyk 1 Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS1) Virtueller Speicher.
Betriebssysteme, Rechnernetze und verteilte Systeme (BSRvS) Virtueller Speicher Olaf Spinczyk rbeitsgruppe ingebettete Systemsoftware Lehrstuhl für Informatik TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss8/bsrvs/
MehrK Speicherverwaltung K.2
inordnung K Speicherverwaltung bene bene bene bene bene bene bene Problemorientierte Sprache ssemblersprache etriebssystem IS (Instruction Set rchitecture) Mikroarchitektur igitale Logik Physik K. K. Phänomen
MehrVirtueller Speicher und Memory Management
Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write
MehrTeil 2: Speicherstrukturen
Inhalt Teil 2: Speicherstrukturen Hauptspeicher Cache Assoziativspeicher Speicherverwaltungseinheit ( Memory Management Unit ) 1 Virtueller Speicher Trennung von virtuellem Adreßraum (mit virtuellen Adressen)
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS 1)
Betriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS 1) Synchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS 1)
Betriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS 1) Synchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de
MehrBetriebssysteme (BS) Synchronisation. Olaf Spinczyk.
Betriebssysteme (BS) Synchronisation http://ess.cs.tu-dortmund.de/de/teaching/ss2017/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik
MehrBesprechung Aufgabe 1: Prozesse verwalten Fortsetzung Grundlagen C-Programmierung Aufgabe 2: Threadsynchronisation
Betriebssysteme Tafelübung 2. Thread-Synchronisation http://ess.cs.tu-dortmund.de/de/teaching/ss2016/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Synchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2013/bs/
MehrBetriebssysteme. Tafelübung 2. Thread-Synchronisation. Olaf Spinczyk.
Betriebssysteme Tafelübung 2. Thread-Synchronisation http://ess.cs.tu-dortmund.de/de/teaching/ss2016/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware
MehrGrundlagen der Betriebssysteme
Grundlagen der Betriebssysteme [CS2100] Sommersemester 2014 Heiko Falk Institut für Eingebettete Systeme/Echtzeitsysteme Ingenieurwissenschaften und Informatik Universität Ulm Kapitel 6 Speicherverwaltung
MehrLeichtgewichtsprozesse
Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden
MehrLeichtgewichtsprozesse
Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden
MehrLegende: Running Ready Blocked P1 P2 P3. t[ms] 1 Prozesse und Scheduling (16 Punkte)
1 Prozesse und Scheduling (16 Punkte) a) UNIX Shell (insgesamt 5 Punkte) 1) $ ls > Dateien.txt (2 Punkte) Was bewirkt die Ausführung dieses Kommandos in einer UNIX-Shell? 2) $ cat Dateien.txt grep txt
MehrKonzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner
Konzepte von Betriebssystemkomponenten Referat am 24.11.2003 Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Gliederung Adressräume Page Faults Demand Paging Copy
Mehr1 Prozesse und Scheduling (12 Punkte)
1 Prozesse und Scheduling (12 Punkte) a) UNIX Shell-Operatoren (insgesamt 4 Punkte) 1. Operator (1,5 Punkte) Beschreiben Sie die Funktionsweise des Operators. 2. Operator Beispiel (1 Punkt) Geben Sie für
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS1) Dateisysteme.
Betriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS1) Dateisysteme Olaf Spinczyk 1 Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de
MehrE Speicherverwaltung. 1 Speichervergabe. E Speicherverwaltung. 1.1 Problemstellung (2) 1.1 Problemstellung. Verfügbarer Speicher.
Speichervergabe. Problemstellung Verfügbarer Speicher Speicherverwaltung ROM xffffffff in-/ausgabegeräte RAM verfügbarer verfügbarer Adressraum (hier mit Bit breiten Adressen) 997-, F. J. Hauck, W. Schröder-Preikschat,
MehrTafelübung zu BS 2. Threadsynchronisation
Tafelübung zu BS 2. Threadsynchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/
MehrRO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 10 am 29.06.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
MehrTafelübung zu BS 2. Threadsynchronisation
Tafelübung zu BS 2. Threadsynchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/
MehrBetriebssysteme (BS) Prozesse. Olaf Spinczyk.
Betriebssysteme (BS) Prozesse http://ess.cs.tu-dortmund.de/de/teaching/ss2018/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12,
MehrBetriebssysteme (BS) Dateisysteme. Olaf Spinczyk.
Betriebssysteme (BS) Dateisysteme http://ess.cs.tu-dortmund.de/de/teaching/ss2016/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Dateisysteme Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2011/bs/
MehrKlausur Betriebssysteme I
Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 18.3.2011 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit
MehrWas machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a
Was machen wir heute? Betriebssysteme Tutorium 3 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Prozesse Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2011/bs/
MehrÜbung Praktische Informatik II
Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 22.05.09 11-1 Heutige große Übung Ankündigung
MehrBetriebssysteme Teil 10 B: Fragen rund um Seitenfehler
Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler 1 Überlegungen Wenn wir einige Seiten eines Programms in den Speicher laden, brauchen wir eine Strategie, welche Seiten als nächstes geladen werden
MehrKlausur Betriebssysteme I
Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 14.3.2008 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit
MehrÜbung zu Grundlagen der Betriebssysteme. 14. Übung
Übung zu Grundlagen der Betriebssysteme 14. Übung 29.01.2012 Aufgabe 1 Demand Paging a) Was wird unter dem Begriff Demand Paging verstanden? b) Was sind Vor- und Nachteile des Demand Paging? Bei Demand
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Probeklausur Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/
MehrHomogene Multi-Core-Prozessor-Architekturen
Homogene Multi-Core-Prozessor-Architekturen Praktikum Parallele Rechnerarchitekturen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009
MehrTutorium Rechnerorganisation
Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Mehr5. Aufgabenblatt Speicherverwaltung
Faculty of Computer Science Institute for System Architecture, Operating Systems Group Betriebssysteme und Sicherheit, WS 0/. Aufgabenblatt Speicherverwaltung Geplante Bearbeitungszeit: drei Wochen Aufgabe.
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Verklemmungen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/
Mehr5.5 Virtueller Speicher
5.5 Virtueller Speicher Wenn der reale Speicher sogar für einzelne Prozesse zu klein ist : Virtueller Speicher (virtual memory), ist beliebig groß, nimmt alle Prozesse auf, ist in gleichgroße Teile Seiten
MehrSpeicherverwaltung (Swapping und Paging)
Speicherverwaltung (Swapping und Paging) Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente 750k 0 Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente
MehrZwei Möglichkeiten die TLB zu aktualisieren
Zwei Möglichkeiten die TLB zu aktualisieren Die MMU kümmert sich um alles (Hardware-Lösung) sucht die p-entry wenn diese nicht da ist, behandelt direkt das TLB-miss zum Schluss wird die neue p-entry (virt
MehrSysteme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard
Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen
Mehr(Cache-Schreibstrategien)
Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. 2. Nennen Sie zwei rotierende magnetische digitale Datenspeicher. 3. Nennen Sie zwei
MehrTechnische Informatik 1
Technische Informatik 1 7 Prozesse und Threads Lothar Thiele Computer Engineering and Networks Laboratory Betriebssystem 7 2 7 3 Betriebssystem Anwendung Anwendung Anwendung Systemaufruf (syscall) Betriebssystem
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Probeklausur Olaf Spinczyk, Horst Schirmeier Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Vorname.Nachname@tu-dortmund.de http://ess.cs.uni-dortmund.de/
MehrBetriebssysteme (BS) Verklemmungen. Olaf Spinczyk.
Betriebssysteme (BS) Verklemmungen http://ess.cs.tu-dortmund.de/de/teaching/ss2018/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik
MehrTest (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme
Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre
Mehr2.3 Prozessverwaltung
Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären
MehrTechnische Realisierung (1)
Technische Realisierung () Einfachstes Modell: Prozess (Daten+Code) befindet sich im Hintergrundspeicher Bei teilweise eingelagerten Prozessen: Zusätzlich Teile im Hauptspeicher Logische Adressen überdecken
MehrNaiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme
Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme Hans-Georg Eßer Hochschule München Teil 3: Zusammenhängende Speicherzuordnung 06/2009 Hans-Georg Eßer Hochschule München
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS 1)
Betriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS 1) Verklemmungen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de
MehrBetriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14
BS-S Betriebssysteme SS 2015 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz S: Speicherverwaltung v1.0, 2015/04/14 Betriebssysteme, SS 2015 Hans-Georg Eßer Folie S-1 Übersicht: BS Praxis und BS
MehrBetriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)
Betriebssysteme G: Parallele Prozesse (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) 1 Allgemeine Synchronisationsprobleme Wir verstehen ein BS als eine Menge von parallel
MehrGrundlagen der Informatik für Ingenieure I. Background 6. Speicherverwaltungssystem
ackground. Speicherverwaltungssystem... Problemstellung... ynamische Speicherzuteilung... Vergabestrategien.. Mehrprogrammbetrieb... Problemstellung... Relokation und inden.. Segmentierung.. Seitenadress
MehrBetriebssysteme. Tafelübung 3. Deadlock. Olaf Spinczyk.
Betriebssysteme Tafelübung 3. Deadlock http://ess.cs.tu-dortmund.de/de/teaching/ss2017/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik
MehrKlausur WS 2009/2010
Betriebssysteme und Systemsoftware Klausur WS 2009/2010 02.02.2010 Name: Vorname: Studiengang: Hinweise: (Bitte sorgfältig durchlesen!) Schreiben Sie auf jedes Blatt Ihren Namen und Ihre Matrikelnummer.
MehrQuiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.
Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur
MehrKlausur am
Vorlesung Betriebssysteme I Wintersemester 2004/2005 Fachbereich 12, Elektrotechnik und Informatik Betriebssysteme / verteilte Systeme Prof. Roland Wismüller Klausur am 04.04.2005 Name: Vorname: Matrikelnummer:
MehrLösung von Übungsblatt 2
Lösung von Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. Lochstreifen, Lochkarte, CD/DVD beim Pressen. 2. Nennen Sie zwei rotierende
MehrWunschvorstellung der Entwickler vom Speicher
Wunschvorstellung der Entwickler vom Speicher Unendlich groß Unendlich schnell Nicht flüchtig billig Obwohl sich der verfügbare Speicher laufend erhöht, wird immer mehr Speicher benötigt, als verfügbar
Mehr1. Welche Speichereinheiten werden belegt, wenn die folgenden Strategien eingesetzt werden?
Sommersemester 009 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Hausübung 05 Abgabe am 0.07.009 (Kästen D) Aufgabe : Speicherzuteilung (6++=8 Punkte) Es sei der
MehrTafelübung zu BSRvS 1 3. Kreuzung
Tafelübung zu BSRvS 1 3. Kreuzung Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2009/bsrvs1/
MehrSysteme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz
Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch
Mehrd) Welche Aussage zum Thema Adressräume ist richtig?
Aufgabe 1.1: Einfachauswahl-Fragen (18 Punkte) Bei den Multiple-Choice-Fragen in dieser Aufgabe ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene
MehrVirtueller Speicher WS 2011/2012. M. Esponda-Argüero
Virtueller Speicher WS / Virtuelle Speicher Bis jetzt sind wir davon ausgegangen, dass Prozesse komplett im Hauptspeicher gelagert werden. Speicherreferenzen sind nur logische Adressen, die dynamisch in
MehrLösung von Übungsblatt 2
Lösung von Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. Lochstreifen, Lochkarte, CD/DVD beim Pressen. 2. Nennen Sie zwei rotierende
MehrBesprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben
Themen heute Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Besprechung des 9. Übungsblattes Aufgabe 2 Ist in einer Aufgabe wie hier keine explizite Wortbreite angegeben, nicht
MehrSystemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur
Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten
Mehre) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?
Aufgabe 1: (1) Bei den Multiple-Choice-Fragen ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene Punktzahl. Wollen Sie eine Multiple-Choice-Antwort
MehrSysteme I: Betriebssysteme Kapitel 8 Speicherverwaltung
Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 21.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen
MehrTafelübung zu BSRvS1. 3. Philosophen. Fortsetzung Grundlagen C-Programmierung
Tafelübung zu BSRvS1 3. Philosophen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/
Mehr3. Philosophen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund
Tafelübung zu BSRvS1 3. Philosophen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/
MehrCache Blöcke und Offsets
Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich
Mehr(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl
Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Dateisysteme Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2013/bs/
MehrBetriebssysteme. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.
Betriebssysteme Tafelübung 4. Speicherverwaltung http://ess.cs.tu-dortmund.de/de/teaching/ss217/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware
MehrBetriebssysteme. Agenda. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.
Betriebssysteme Tafelübung 4. Speicherverwaltung http://ess.cs.tu-dortmund.de/de/teaching/ss217/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware
MehrEchtzeitbetriebssysteme
Speicherverwaltung (Memory Management) Aufgaben der Memory-Management-Unit ist l der Speicherschutz und l die Adressumsetzung Wird durch Hardware unterstützt l Memory Management Unit (MMU) l MMU wird vom
MehrBetriebssysteme. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.
Betriebssysteme Tafelübung 4. Speicherverwaltung https://ess.cs.tu-dortmund.de/de/teaching/ss2018/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de https://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware
Mehr