31
Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle Architekturentwurf

Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian Hämmerle

  • Upload
    adora

  • View
    36

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian  Hämmerle

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

Ü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

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

Architekturentwurf

Page 5: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian  Hämmerle

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Simples IPC SoundServer.SetVolume

Page 21: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian  Hämmerle

Simples IPC SoundServer.SetVolume

Page 22: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian  Hämmerle

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

IPC mit PipesSoundServer.SetVolume

Page 24: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian  Hämmerle

IPC mit PipesSoundServer.SetVolume

Page 25: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian  Hämmerle

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

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

Interrupt Handling

Page 28: Philip Masser Martin Dobler Mathias Rieder Florian Reischer Christian Gmeiner Christian  Hämmerle

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

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

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

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