philip masser martin dobler mathias rieder florian reischer christian gmeiner christian hämmerle
DESCRIPTION
Architekturentwurf. Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle. Überblick. Beispielapplikation Architekturentwurf Kernel Treiber und Server Bootprozess Scheduling Interprozesskommunikation Swapping - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/1.jpg)
Philip MasserMartin Dobler
Mathias RiederFlorian Reischer
Christian GmeinerChristian Hämmerle
Architekturentwurf
![Page 2: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/2.jpg)
Überblick
Beispielapplikation Architekturentwurf Kernel Treiber und Server Bootprozess Scheduling Interprozesskommunikation Swapping
Organisatorischer Rückblick Planung weiterer Schritte
![Page 3: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/3.jpg)
Beispielapplikation
Digitaler Bilderrahmen Anzeigen von Bitmapbildern auf SD-Karte Abspielen von Hintergrundsound von SD-Karte Steuern der Bilderabfolge durch Tastendrücke
_ Vorwärts_ Rückwärts_ Slideshow
![Page 4: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/4.jpg)
Architekturentwurf
![Page 5: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/5.jpg)
Rechte von Prozessen
3 Privilegienstufen
Kernel darf alles
Unprivilegierte Prozesseo eingeschränkte SysCall APIo kein Zugriff auf Hardware
Priviligierte Prozesseo volle SysCall APIo können Privilegien vererbeno können andere Prozesse beenden
![Page 6: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/6.jpg)
Kernel
Mikrokernel Kommunikation aus oberen Schichten via SYSCALLS (static
LIB) Mehr Stabilität und Flexibilität in den oberen Schichten
![Page 7: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/7.jpg)
HAL
Für jede Architektur existiert eine eigene HAL
Funktionen für den Kernelo Ein- bzw. Ausschalten einer Interruptquelleo Hardwaretimer-Interface für Schedulero Fault-Handler für unkontrollierte Exceptions
Funktionen für die Treibero Registrierung auf Hardware-Interruptso IO-Zugriff direkt auf Registero Automatisches PIO Setup für LEDs und Tastero Information über Devices und deren Ressourceno Schnittstelle für DMA
![Page 8: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/8.jpg)
Treiber und Server
Treiber und Server meist ein Prozess Kommunikation mit Servern mittels SERVICE CALLS Treiber kommunizieren mit Kernel mittels SYSCALLS Möglichst komfortable API für den Programmierer (static
LIB)
![Page 9: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/9.jpg)
Sound Server und Treiber
Treiber und Server sind ein Prozess Schnittstelle zum Sound-Chip und dem Audioausgang Kein Buffering und Prefetching
- LOAD(FILENAME)
- PLAY()
- PAUSE()
- STOP()
- SETVOLUME(LEVEL)
![Page 10: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/10.jpg)
Bootprozess
1. startup_init (Generelles Hardware-Setup)2. int main des Kernels
1. HAL initialisieren2. InterruptHandler / Clock / Scheduler starten3. IPC und Memory Management initialisieren4. InitProcess starten
1. Treiber/Server starten2. Eingebaute Programme starten
(Shell…)
![Page 11: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/11.jpg)
Scheduling
Anforderungen an den Scheduler
Minimale Latenzzeit(Antwort bzw Jobfertigstellungszeit)
Maximaler Jobdurchsatz Maximaler Ausnutzungsgrad
(I/O-Geräte müssen maximal ausgenutzt werden) Fairness
(Jeder Job bekommt Ausführungszeit, keiner verhungert)
![Page 12: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/12.jpg)
Scheduling
Verfahren in Anlehnung an Round Robin Viele Prozesse in RUNNABLE Status Welcher Prozess wird ausgeführt, wenn Prioritäten benutzt
werden? 0 RUNNABLE Prozesse: Starvation
(Abhilfe durch IDLE Prozess) 1 RUNNABLE Prozess: Einfach > 1 RUNNABLE Prozesse: ?
Dead
RunnableRunning Dead
Blocked Zombie
![Page 13: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/13.jpg)
Scheduling
Präemptives Round Robin mit mehreren Queues für Prioritäten Clock gibt Ticks über Interrupt Quantum muss festgelegt werden
o Tradeoff: Responsiveness vs. Scheduler Rechenzeito Tannenbaum empfiehlt 100ms
HIGH-Priority P P P P P P P P P P P
LOW-Priority
P P P P P P P P P P P
P P P P P P P P P P P
.
.
.
7 /10
2 /10
1 /10
![Page 14: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/14.jpg)
Scheduling
Speicherbedarf abhängig vono Maximaler Anzahl Prozesseo Anzahl Queues
Bei max. 256 Prozessen und drei Queueso 23.5 KB (24098 Bytes)
Bei max. 64 Prozessen und drei Queueso 6 KB (6050 Bytes)
![Page 15: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/15.jpg)
Scheduling
Aufwände für Operationen
Anlegen eines neuen Prozesseso Maximal O(Anzahl Prozesse)o Mininmal Ω(1)o In der Regel: O(Anzahl Prozesse / 2)
Reschedulingo O(Anzahl der Prozesse)
Jedoch Zugriff auf Prozesse, Prozessswitches etc O(1)
![Page 16: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/16.jpg)
Scheduling
Problem ?
Abhilfen Response Ratio berechnen Gewichtung der Prioritäten nach Anzahl Prozesse in der
Queue
![Page 17: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/17.jpg)
Scheduling und Echtzeit
Verfahren für harte Echtzeit scheinen nur wenig relevanto Rate Monotonic Schedulingo Deadline Monotonic Scheduling
optimiert für periodische Prozesse (Periodendauer = Deadline)
Lösung: RoundRobin welches die Ideen von Highest Response Ratio Next verwendet
![Page 18: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/18.jpg)
Highest Response Ratio Next
Priorität wächst proportional zur Response Ratio
LaufzeitWartezeitLaufzeit
rtwtrtrr
t1 4 7 10 13 16 19 22 25 28 31 34
0
1
2
3
4
5
6
runningrr=
![Page 19: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/19.jpg)
Interprozesskommunikation
Grundsatzentscheidung: Shared Memory oder nicht?
Shared Memory ist schnell aber gefährlichMicrokernel soll Stabilität bringen,deshalb wollen wir auch ein stabiles IPC
Lösung: Named Pipes
![Page 20: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/20.jpg)
Simples IPC SoundServer.SetVolume
![Page 21: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/21.jpg)
Simples IPC SoundServer.SetVolume
![Page 22: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/22.jpg)
Simples IPC SoundServer.SetVolume
Nachteil des simplen IPC sind die zahlreichen Syscalls
Wie können wir Syscalls einsparen und die Kommunikationzwischen den Prozessen beschleunigen?
![Page 23: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/23.jpg)
IPC mit PipesSoundServer.SetVolume
![Page 24: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/24.jpg)
IPC mit PipesSoundServer.SetVolume
![Page 25: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/25.jpg)
Pipe Datenstruktur
Durch geschickte Wahl der Datenstruktur einer Pipe kann auf ein
Synchronisiertes Lesen verzichtet werden:
LA A0 A2 A3 ...
read-pointer write-pointer
Länge der Message A
Message A
read-pointer erst NACHLeseoperation erhöhen.
Prozess kann unterbrochen werden, kein
Überschreiben
B2 B3 4 B0... B1
::
Ring-Array
- Overhead durch Länge der Message+ Synchronisieren beim Lesen fällt weg
![Page 26: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/26.jpg)
Interrupt Handling
Hardware-Interrupts werden vom Kernel verwalteto Treiber können sich auf Interrupt request-# registriereno Tritt Interrupt auf, wird dieser vom Kernel über IPC an
den jeweiligen Treiber geschickto Kernel quittiert Interrupt
Ausnahme: Interrupts für Clock-Treiber für Schedulero Interrupt wird in der HAL abgehandelt und eine
Callback Methode im Kernel aufgerufen.
![Page 27: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/27.jpg)
Interrupt Handling
![Page 28: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/28.jpg)
Swapping
Problem: Wer übernimmt Swapping/Paging in einem Microkernel
KernelWann (Page fault)Wie (Strategie: z.B.: Least Recently Used)
SD-TreiberPhysikalisches Schreiben und Lesen der PagesDarf nicht ausgelagert werden
Kommunikation über IPCAuszulagernde Page (SD-Queue)Zu ladende Page (SD-Queue)Kernel (Scheduler) übergibt dem SD-Treiber die CPU
![Page 29: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/29.jpg)
Organisatorischer Rückblick
Wöchentliche Dienstagsmeetingso Review der Ergebnisse aus letzter Wocheo Besprechung der Wiki-Artikelo Problembereiche identifiziereno Detailresearcho Diskussion in der Gruppeo Neue Aufgabenverteilung für die kommende Woche
Research und Lösen der Aufgaben in Heimarbeit(ggf. in Partnerarbeit falls Themen und Aufgaben verwandt sind)
![Page 30: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/30.jpg)
Organisatorischer Rückblick
Archivierung der Artikel und Ergebnisse mittels Wiki imPM-System www.assembla.com
Historisierung der Artikel Tickets, Tasks, Messaging Service Zeiterfassung Subversion für Source Code und Präsentationen, Grafiken… Automatische Email-Generierung an alle/bestimmte
Mitglieder
![Page 31: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle](https://reader035.vdocuments.site/reader035/viewer/2022062310/56816628550346895dd986ff/html5/thumbnails/31.jpg)
Planung weiterer Schritte
Timebox 2 (bis 9.12.) Implementierung des Betriebssystemkerns Vollständiger Kernel, RS232 Server und Shell Geschätzter Implementierungsaufwand 201 Stunden
Timebox 3 (bis 20.01.) Implementierung der Treiber und Server, Beispielapplikation und
erweiterte Funktionalitäten (DMA, Swapping…) Geschätzter Implementierungsaufwand 225 Stunden