Systemsoftware Flashcards

1
Q

Was versteht man unter einer Firmware?

A

Als Firmware bezeichnet man sowohl die Betriebssoftware diverser Geräte als auch die Software die notwendig ist, um den Betriebssystemkern des eigentlichen Betriebssystems laden und betreiben zu können.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Aufgaben hat die Firmware?

A
  1. Grundinitialisierung der Hard- und Software:
    - CPU
    - MMU
    - Timer/Uhr
  2. Diagnose, Funktionstest wichtiger HW-Baugsteine
  3. Betriebsinitialisierung der Hard- und Software:
    - Interrupt
    - MMU
    - Timer/Uhr
    - Watchdog
    - Serielle Schnittstelle
  4. Laden und Aktivieren von Code
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind Deeply-Embedded-Systems?

Welche Vor- und Nachteile bieten diese?

A
  • Systeme bei denen Firmware und Applikation eine Einheit bilden:

‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Firmware | Applikation]

  • Vorteil: kurze Bootzeiten
  • Nachteil: Unflexibel, beispielsweise bei notwendigen Updates
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was sind einfache eingebettete Systeme?

Welche Vor- und Nachteile bieten diese?

A
  • Systeme bei denen die Firmware mit einem Bootloader kombiniert wird:

‏‏‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Firmware | Bootloader]
‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Applikation]

  • Vorteil: Die Funktionalität kann an die Bedürfnisse angepasst werden.
  • Nachteil: Längere Bootzeit durch den Lademechanismus des Bootloaders
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind multifunktionale eingebettete Systeme?

Welche Vor- und Nachteile bieten diese?

A
  • Systeme bei denen die Firmware bzw. der Bootloader ein Realzeitbetriebssystem (z.B. Linux) laden. Das geladene Betriebssystem führt dann die eigentliche Applikation aus:

‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Firmware | Bootloader]
‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Linux Rootfilesystem]
‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Applikation]

  • Vorteil: Sehr flexibel.
  • Nachteil: Hoher Ressourcenverbrauch
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist ein PC-basiertes Realzeitsystem?

Welche Vor- und Nachteile bietet dieses?

A

Ein System bei dem die Firmware bzw. der Bootloader einen weiternen flexiblen Bootloader lädt. Dieser lädt dann ein (Realzeit-)Betriebssystem.

‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Firmware | Bootloader]
‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Bootloader]
‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Linux Rootfilesystem]
‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎[Applikation]

  • Vorteil: Der Einsatz standardisierter Hardware wird ermöglicht
  • Nachteile: Hoher Ressourcenverbrauch, Lange Bootzeiten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was gehört alles zur Systemsoftware?

A
  • Firmware
  • Bootloader
  • Monitor-Software
  • Betriebssystem
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Anforderungen werden an Realzeitbetriebssysteme gestellt?

(7)

A
  1. Zeitverhalten:
  • Das Zeitverhalten muss deterministisch sein.
  • Das Betriebssystem muss möglichst kurze Reaktionszeiten ermöglichen
  1. Ressourcenverbrauch:
    - Anforderungen an Speicher oder auch Rechenleistung sollten möglichst gering sein.
  2. Zuverlässigkeit und Stabilität:
    - Programmfehler dürfen das Betriebssystem und andere Programme nicht beeinflussen.
  3. Sicherheit:
    - Das Betriebssystem muss Möglichkeiten zum Zugangsschutz und Dateischutz bieten.
  4. Flexibilität und Kompatibilität:
  • Unterstüzung von einheitlichen Standards (z.B. POSIX).
  • Das System sollte erweiterbar sein.
  1. Portabilität:
    - Das System selbst muss sich leicht auf unterschiedliche Hardware portieren lassen.
  2. Skalierbarkeit:
    - Durch das Weglassen oder Hinzufügen von Komponenten sollte das System skalierbar sein, sodass es auf unterschiedlich leistungsfähiger Hardware eingesetzt werden kann.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wofür werden Systemcalls verwendet?

A
  • Mittels Systemcalls können Applikationen Dienste des Betriebssystems in Anspruch nehmen.
  • Systemcalls werden über sogenannte Software-Interrupts getriggert.
  • Bibliotheksfunktionen kapseln Systemcalls für die Anwendung.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was versteht man unter einem Kontextwechsel (Context Swicht)?

A
  • Durch Interrupts werden Codesequenzen unterbrochen. Sie werden dann zu einem späteren Zeitpunkt fortgesetzt.
  • Hierzu ist es erforderlich, den genauen Zustand zum Zeitpunkt der Unterbrechung zu speichern. Die hierfür verwendete Datenstruktur nennt sich „Task Control Block“ (TCB). Für jede unabhängige Task wird ein eigener TCB benötigt.
  • Der Teil der ISR, die den Austausch der Rücksprungadresse vornimmt, wird „Context Switch“ genannt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist ein Scheduler?

A

Der Teil der ISR, die aus den vorliegenden (rechenbereiten) Tasks, diejenige auswählt, die als nächestes abgearbeitet werden soll, wird als Scheduler bezeichnet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Nach welchen Kriterien wählt ein Schueduler die nächste Task aus, die abgearbeitet werden soll?

A
  1. Priorität

2. Bereits verwendete Verarbeitungszeit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was versteht man unter einem Scheduling-Plan?

A

Ein Scheduling-Plan legt die genaue zeitliche Zuordnung der Tasks zu den Prozessoren und Ressourcen fest.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wann besitzt ein System einen korrekten Scheduling-Plan?

A

Wenn von den Tasks alle maximalen Deadlines eingehalten werden, besitz ein System einen korrekten Scheduling-Plan.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie kann man herausfinden, ob für eine Menge von Tasks ein korrekter Scheduling-Plan existiert?

A

Ob für eine Menge von Tasks ein korrekter Schedulingplan existiert, wird mit einem Einplanbarkeitstest untersucht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was muss gelten, damit Tasks korrekt gescheduled werden können?

A
  • Damit Tasks korrekt geschedult werden können, darf die Auslastung auf jedem CPU-Kern nicht über 100% sein (1. Realzeitbedingung).
  • In einem überlasteten System existiert kein korrekter Schedulingplan.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was ist die Hyperperiode?

A

Unter der Hyperperiode versteht man die Zeitspanne nach der sich das Scheduling der einzelnen Tasks (gemäß Schedulingplan) wiederholt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Wann wird ein Scheduling-Verfahren als optimal bezeichnet?

Welche Konsequenzen ergeben sich somit für einen Scheduler der “nicht-optimal” arbeitet?

A

Ein Scheduling-Verfahren wird als optimal bezeichnet, wenn es in jeder Situation einen korrekten Scheduling-Plan findet.

Bei einem Scheduler, der nicht optimal arbeitet, ergibt sich die Konsequenz das er nicht alle Deadlines einhalten kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wann wird ein Scheduling-Verfahren als nicht-optimal bezeichnet?

A

Ein Scheduling-Verfahren ist nicht-optimal, wenn es keinen korrekten Schedulingplan findet, obwohl mindestens einer existiert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Wie funktioniert das statische Scheduling?

Zu welcher Art von Systemen führt der Einsatz des statischen Schedulings?

A
  • Beim statischen Scheduling wird der komplette Scheduling-Plan im Vorhinein berechnet. Notwendig hierfür ist die Kenntnis der Prozesszeit, der Ausführungs-zeit, der minimalen und maximalen Deadline und die von der Task benötigten Ressourcen zu jeder Zeit.
  • Im System selbst ist lediglich ein Dispatcher implementiert, der entsprechend zu den Zeitpunkten des Scheduling-Plans die Tasks ausführt.
  • Läuft zum Zeitpunkt der Aktivierung einer Tasks noch eine andere Task, so wird diese unterbrochen.
  • Statisches Scheduling führt zu deterministischen Systemen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Wie funktioniert das dynamische Scheduling?

Welche Vor- bzw Nachteile hat das dynamische Scheduling gegenüber dem statischen Scheduling?

A
  • Beim dynamischen Scheduling wird beim Aufruf des Schedulers die nächste Task bestimmt, die ausgeführt werden soll. Der Scheduling-Plan wird nicht im Vorhinein erstellt, sondern entsteht zur Laufzeit anhand der aktuellen Lastsituation.
  • Vorteil: Ist viel felxibler als das statische Scheduling.
  • Nachteil: Arbeitet nicht immer optimal
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

In welchen Systemen wird statisches Singlecore-Scheduling eingesetzt?

Für welche Art (hart oder weich) von Realzeitsystemen ist das statisches Singlecore-Scheduling geeignet?

Was ist der Vorteil des statischen Singlecore-Schedulings?

A
  • Wird eingesetzt in Systemen mit harten Realzeitanforderungen und einem einfachen Laufzeitsystem.
  • Ist für harte Realzeitsysteme geeignet.
  • Vorteil: Der Realzeitnachweis ist vergleichsweiße einfach zu berechnen:
  1. Schedulingplan wird offline berechnet
  2. Keine Interruptverarbeitung in den Zeitslots
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Welche zwei Arten von Scheduling-Plänen werden beim statischen Singelcore-Scheduling eingesetzt und welches Ziel wird dabei verfolgt? Welche Nachteile ergeben sich gegebenenfalls?

A
  1. Zeitgesteuerter Schedulingplan:

Führt die Tasks entsprechend des Schedulingsplans nacheinander aus.

==> Ziel: Tasks ohne Unterbrechungen ausführen

Nachteil: nach jedem Taskende muss der Timer neu programmiert werden, was relativ aufwendig ist.

  1. Zeitgesteuerter Schedulingplan mit konstanten Zeitslots:

Ein periodisch auftretender Interrupt stößt im System die Abarbeitung der Tasks an.

==> Ziel: Neuprogrammierung des Timers vermeiden.

Nachteil: Die konstante Framesize bzw. Slotlänge muss korrekt bestimmt werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wie nennt man Systeme die statisches Scheduling verwenden?

A

Solche Systeme werden zeitgesteurete Systeme genannt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Wie bestimmt man bei einem zeitgesteuertem Schedulingplan mit konstanten Zeitslots die Framesize bzw. Slotlänge?

A
  1. Hyperperiode (H) bestimmen:
    - Dafür muss ein kompletter Schedulingplan erstellt werden.
  2. Untere und obere Framegrenze bestimmen:
  • Min. Framlänge entspricht größter Ausführungszeit des Tasksets
  • Max. Framelänge entspricht der kleinsten maximalen Deadline des Tasksets
  1. Schedulingtabellengröße optimieren:
    - Die Framelänge muss ein ganzahliger Teiler der Hyperperiode sein. Das ist dann der Fall, wenn die Framelänge ein ganzzahliger Teiler der minimalen Prozesszeit einer der beteiligten Tasks ist.
  2. Überprüfung der möglichen Framegröße für jede Task:
    - Zwischen Releasetime und maximaler Deadline JEDER Task muss mindestens 1 Frame liegen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Was bezeichnet man als ein Taskset?

A

Wenn Gruppen von Tasks zusammengefasst werden, sprechen wir von einem sogenannten Taskset.

27
Q

Nennen Sie die Vor- und Nachteile von statischem Singlecore-Scheduling.

A
  • Vorteile (Falls Tasks nicht unterbrochen werden müssen):

Keine Synchronisation zwischen den Tasks nötig, einfaches Betriebssystem bzw. Laufzeitsystem reicht daher aus.

Einfacher Realzeitnachweis.

  • Nachteile (Falls Tasks unterbrochen werden müssen):

Die künstliche Aufteilung einer Task in mehrere Tasks ist fehleränfällig.

28
Q

Welche dynamischen Singlecore-Scheduling Varianten kennen Sie?

A
  1. FIFO (FCFS) Scheduling:

Tasks werden entsprechend den Auftrittszeitpunkten gescheduled. Eine ausgewählte Task wird dabei solange ausgeführt, bis diese freiwillig (z.B. mittels yield()-Syscall) die Kontrolle abgibt.

  1. Round Robin (Zeitscheiben) Scheduling:

Tasks werden wiederholt für die Dauer einer Zeitscheibe reihum ausgeführt. Eine ausgewählte Task wird dabei ebenfalls solange ausgeführt, bis diese freiwillig die Kontrolle abgibt.

  1. Prioriätenbasiertes Scheduling:

Scheduler wählt die Task mit höchster Priorität aus.

29
Q

Warum eignet sich das eigenständige FIFO Scheduling nicht für Realzeitsysteme?

Wie kann das FIFO Scheduling in Realzeitsystemen trotzdem Anwenung finden?

A
  • FIFO Scheduling eignet sich nicht als eigenständiges Scheduling-Verfahren in Realzeitsystemen, da:
  1. Tasks beliebig lange laufen können.
  2. Fehler in einer Task das System dauerhaft blockieren können.
  • In Kombination mit prioriätenbasiertem Scheduling kann FIFO Scheduling in Realzeitsystemen trotzdem Anwendung finden. Dabei werden Tasks gleicher Prioritätenebene mittels FIFO Scheduling verwaltet.
30
Q

Warum eignet sich das eigenständige Zeitscheiben Scheduling nicht für Realzeitsysteme?

Wie kann das Zeitscheiben Scheduling in Realzeitsystemen trotzdem Anwenung finden?

A
  • Da keine Garantie über rechtzeitiges Scheduling getroffen werden kann.
  • In Kombination mit prioriätenbasiertem Scheduling kann Zeitscheiben Scheduling in Realzeitsystemen trotzdem Anwendung finden. Tasks gleicher Prioritätenebene können nämlich nach Zeitscheibenverfahren gescheduled werden.
31
Q

Wie lautet die Faustregel zur Zuteilung von Prioritätswerten?

A

Tasks mit kurzer maximaler Ausführungszeit und kurzer maximaler Deadline bekommen hohe Prioritäten zugeteilt.

32
Q

Was ist das Standard Scheduling-Verfahren in Realzeitsystemen?

A

Prioritätenbasiertes Scheduling mit fest zugeteilten Prioritäten.

33
Q

Wie funktioniert prioritätenbasiertes Scheduling mit festen zugeteilten Prioritäten?

Was ist der Nachteil dieses Scheduling-Verfahrens?

A
  • Jeder im System befindlichen Task wird eine Priorität zugeteilt. Der Scheduler wählt aus der Liste der rechenbereiten Tasks diejenige aus, die die höchste Priorität hat. Diese Task darf die CPU benutzen, bis sie sich:

a) beendet,
b) schlafen legt oder
c) bis eine andere Task mit höherer Priorität
lauffähig wird.

  • Nachteil: Das Scheduling-Verfahren arbeitet nicht optimal. Korrekter Schedulingplan wäre möglich, jedoch findet ein Scheduling mit statischen Prioritäten diesen nicht.
34
Q

Wie funktioniert das Deadline Scheduling (EDF)?

Und was ist der Vorteil dieses Scheduling-Verfahrens?

A
  • Der Scheduler wählt die Task, deren maximale Deadline dem Momentan-Zeitpunkt am nächsten ist.
  • Vorteil: Das Scheduling-Verfahren arbeitet optimal und findet daher immer einen korrekten Schedulingplan, sofern einer existiert.
35
Q

Welche Multicore Scheduling-Verfahren kennen Sie?

A
  1. Partitioniertes Scheduling
  2. Globales Scheduling
  3. Semi-partitioniertes Scheduling
36
Q

Wie funktioniert das partitionierte Scheduling?

A
  • Jede CPU besitz ihren eigenen Scheduler.
  • Das partitionierte Scheduling nimmt eine Offline-Verteilung der Tasks auf die zur Verfügung stehenden CPUs vor. Dafür werden Algorithmen zur Lösung von Optimierungsproblemen verwendet.
  • Der Algorithmus verteilt die Tasks dann auf die einzelnen Rechenkerne unter Berücksichtigung der jeweiligen Auslastungsgrenze.
  • Eine weitere Optimierung besteht darin, möglichst alle Threads einer Threadgruppe auf einen Core zu verteilen. Dadurch wird die Ausführungszeit der Tasks optimiert, aufgrund von schnellen Cache-Zugriffen.
37
Q

Wie funktioniert das globale Scheduling-Verfahren?

A

Beim globalen Scheduling-Verfahren verteilt der Scheduler die Tasks auf die Kerne dynamisch, wodurch Tasks auf unterschiedlichen Kernen ablaufen können. Eine feste Zuordnung einer Task auf einen Kern existiert dabei nicht. Dadurch verlängern sich die Ausführungszeiten, aufgrund entstehender Cache-Misses.

38
Q

Wie funktioniert das semi-partitionierte Scheduling?

A
  • Das semi-partitionierte Scheduling ist eine Mischform des partitionierten Schedulings und des globalen Schedulings.
  • Dabei ist die Partitionierung selbst Teil des Schedulers, d.h. das der Scheduler neben der Verteilung der Tasks auf die einzelnen Prozessoren auch eine Aufspaltung von Tasks zur Laufzeit vornehmen kann. Die einzelnen Teile einer Task werden dann auf verschiedenen Prozessoren in korrekter Reihenfolge ausgeführt.
39
Q

Welche Scheduling-Verfahren eignen sich besonders gut für Realzeitsysteme?

A

Partitionierte Scheduling-Verfahren eignen sich besonders gut für Realzeitsysteme, da:

  • Tasksets vorab bekannt sind
  • Die Ausführungszeiten nicht durch die Migration auf andere Kerne beeinflusst werden.
40
Q

Wie kann in UNIX-Systemen die Affinität (Zugehörigkeit eines Threads zu einer CPU) eines Threads festgelegt werden?

Was bringt dieser Mechanismus?

A
  • Über die Funktion sched_set_affinity() kann die Zugehörigkeit eines Threads zu einer CPU festgelegt werden.
  • Durch diesen Mechanismus können Realzeitprozesse von Prozessen ohne strenge zeitliche Anforderungen separiert und damit deterministischer abgearbeitet werden.
41
Q

Welche Aufgaben hat die MMU?

A

Die MMU hat folgende Aufgaben:

  1. Speicherschutz
  2. Adressumsetzung
  3. virtuellen und erweiterten Speicher zur Verfügung zu stellen
42
Q

Warum wird in Realzeitsystemen Swapping nur bedingt eingesetzt?

A

In Realzeitsystemen wird Swapping nur bedingt eingesetzt, da es zu nicht-deterministischen Systemen führt.

43
Q

Warum ist es bei sicherheitskritischen Realzeitsystemen notwendig Gerätetreiber einzusetzen?

A

Durch die eindeutige Trennung zwischen Applikation und Gerätetreiber ist es für das Betriebssystem möglich, bei Applikationsfehlern das Gerät in einen sicheren Zustand zu überführen.

44
Q

Worauf ist bei Filesystemen in Kontext der Realzeitprogrammierung zu achten?

A
  • Es muss darauf geachtet werden, dass der sync-Modus verwendet wird. Beim sync-Modus werden Dateien direkt (also unter Umgehung des Buffercache) geschrieben, ein Lesezugriff kann aber weiterhin über den deutlich schnelleren Buffercache stattfinden.
  • Desweitern sollte darauf geachtet werden das ein Dateisystem eingesetzt wird, dass mit Inkonsistenzen im Dateisystem umgehen kann, ohne das dieses direkt unbrauchbar wird (Journaling Filesystem).
  • Wird das Filesystem auf einer SSD abgelegt, muss der IO-Scheduler ausge-schaltet werden, da eine SSD keine mechanischen Elemente besitz.
45
Q

Welche Vor- und Nachteile bringt der Einsatz eines Tickless-Systems mit sich?

A

Vorteile:

  • Die Effizienz wird gesteigert.
  • Energie wird eingespart, da während der inaktiven Zeiten das System schlafen gelegt werden kann.
  • Die Genauigkeit von Zeitaufträgen wird erhöht, da nicht mehr auf den nächsten Interrupt gewartet werden muss. Vielmehr wird der Interrupt exakt zum benötigten Zeitpunkt ausgelöst.

Nachteile:

  • Mit jedem Interrupt ist eine Berechnung des nächsten Auslösezeitpunkts notwendig und damit die Umprogrammierung Timer-Bausteins.
46
Q

Was versteht man unter einer absoluten Zeit?

A

Falls ein Ereignis aus Sicht des Rechners außerhalb und vor allem vor der Aktivierung des Rechnersystems liegt, spricht man von einer absoluten Zeit.

47
Q

Was versteht man unter einer relativen Zeit?

Welche Ausprägungen von Relativzeitgebern gibt es?

A

Steht ein Ereignis in direkter Beziehung zum Rechnersystem (z.B. Start des Rechners), spricht man von einer relativen Zeit. Der zugehörige Zeitgeber ist ein Relativzeitgeber.

  • Die Relativzeitgeber gibt es als Vorwärts- und als Rückwärtszähler (Timer)
48
Q

Was ist der sogenannte Time-Stamp-Counter (TSC), wie funktioniert er und wofür wird dieser verwendet?

A
  • Der Time-Stamp-Counter (TSC) ist ein Zähler, der mit der Taktfrequenz der CPU getaktet wird.
  • Wird genutzt, um damit das Timekeeping im Betriebsystem auf eine sehr genaue Basis (Nanosekunden) zu stellen.
49
Q

Welches Problem tritt beim Timekeeping mittels des Time-Stamp-Counters auf?

A

Das Problem der variablen Taktfrequenzen. Die variable Taktfrequenz muss vom Timekeeping natürlich berücksichtigt werden.

50
Q

Warum verwenden moderne Prozessoren variable Taktfrequenzen?

A

Moderne Prozessoren setzen variable Taktfrequenzen ein um Energie zu sparen. Erst wenn mehr Leistung benötigt wird, wird auch die Taktfrequenz erhöht.

51
Q

Welche Probleme können beim Umgang mit Zeiten auftreten?

A
  1. Zählerüberläufe

2. Zeitsynchronisation zwischen mehreren Rechnern eines Gesamtsystems.

52
Q

Worauf muss bei der Zeitsynchronisation zwischen meheren Rechnern eines Gesamtsystem geachtet werden?

A

Ist eine Zeitkorrektur notwendig, darf diese niemals sprunghaft vorgenommen werden, da dadurch Zeitaufträge verloren gehen können.

Abhilfe: Protokolle zur Zeitsynchronisation.

53
Q

Was beeinflusst im Wesentlichen die Berechenbarkeit innerhalb eines Realzeitsystems?

A
  1. Die Berechenbarkeit der Algorithmenlaufzeit

2. Der Einsatz von Caches

54
Q

Welche Hardware Caches gibt es in einem Realzeitsystem?

A
  1. Daten- und Instruktionscache

2. Translation Lookaside Buffer (TLB)

55
Q

Welche Software Caches gibt es in der Systemsoftware von Realzeitsystemen?

A
  1. Page-Cache

2. Objekt-Cache (Buddy-System: Zwischenspeicher für Kernelobjekte)

56
Q

Welche Realtime Features besitz Linux?

A
  1. Prioritätengesteuerte Scheduling, Deadline Scheduling
  2. Memory-Locking
  3. Protokolle für Prioritätsinversion
  4. Threaded Interrupts
  5. CPU-Affinität.
  6. Applikationsseitig können Speicherbereiche im Hauptspeicher gelockt werden ==> führt zu einem deterministischen Zeitverhalten.
  7. Tickless-System
  8. Kernel-Preemption bietet kurze Latenzzeiten
57
Q

Wie wird der Zustand eines Systems bezeichnet, wenn kein durchführbarer Scheduling-Plan existiert?

A

Das System wird als überlastet bezeichnet.

58
Q

Was ist der Unterschied zwischen zeitgesteuerten- und ereignisgesteuerten-Scheduling?

A

Bei zeitgesteuertem Scheduling sind alle Tasks im Vorhinein bekannt und das Scheduling ist klar anhand eines Scheduling-Plans definiert.

Bei ereignisgesteuertem Scheduling reagiert der Scheduler auf Ereignisse bzw. Interrupts. Die Ausführungsreihenfolge wird dabei dynamisch anhander der gerade vorliegenden Ereignisse angepasst.

59
Q

Welches Problem besteht prinzipiell beim Ereignisgesteuerten-Scheduling?

A

Da die Interrupts beim Ereignisgesteuerten-Scheduling asynchron auftreten, kann man diese nur schwer vorhersehen. Dadurch kann man unter Umständen Probleme mit dem Timing bekommen.

60
Q

Was ist ein Frame beim zeitgesteuerten Scheduling?

Was ist dabei die Framelänge?

Welche Vorteile ergeben sich bei einer konstanten Framelänge?

A
  • Ein Frame ist eine zeitliche Unterteilung der Hyperperiode bzw. ein Zeitslot beim statischen Scheduling.
  • Die Framelänge gibt dabei die Länge des Zeitslosts an.
  • Vorteil: Bei einer konstanten Framelänge muss der Timer nicht umprogrammiert werden. Die Tasks werden vom Dispatcher einfach nacheinander abgearbeitet. Des Weiteren ist keine Preemption notwendig.
61
Q

Welche Aufgaben hat die Monitor-Software?

A

Eine Monitor-Software stellt Boot-Services sowie Runtime-Services zu Verfügung.

62
Q

Welche Scheduling-Verfahren für Multicore-Systeme kennen Sie?

A
  1. Partitioniertes Scheduling
  2. Globales Scheduling
  3. Semi-partitioniertes Scheduling
63
Q

Was versteht man unter einem Tickless-System?

A

Unter einem Tickless-System versteht man, dass der Timer-Interrupt nicht periodisch, sondern bedarfsgemäß auftritt. Dazu wird mit jedem Timer-Interrupt der nächste Zeitpunkt berechnet, an dem der Interrupt erneut ausgelöst werden soll.

64
Q

Welche Protokolle zur Zeitsynchronisation kennen Sie?

A
  1. Network Time Protocol (NTP)

2. Precision Time Protocol (PTP)