Linux Systemarchitektur Flashcards

1
Q

Was muss bei der Kernelprogrammierung beachtet werden?

A
  • Innerhalb des Kernels stehen nur eingeschränkt
    Bibliotheksfunktionen zur Verfügung.
  • Innerhalb des Kernels darf kein Floating-Point
    verwendet werden.
  • Kernelcode steht nur ein eingeschränkter Stack zur
    Verfügung (4–8kByte).
  • Kernelcode ist performance-optimiert programmiert
    (Stichwort goto).
  • Innerhalb des Kernels gibt es keinen Speicherschutz.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist ein Monolithischer Betriebssystemkern

A

Ein monolithischer Kernel
Speicher- und Prozessverwaltung

++ Treiber für die Hardwarekomponenten und möglicherweise weitere Funktionen direkt eingebaut sind.

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

Welches Scheduling kommt in Kernel zum Einsatz?

A

Prioritätengesteuertes Scheduling (mit Round-Robin oder FCFS).

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

Werden Tasks und Threads im Kernel unterstützt?

A

Ja

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

Weitere Features des Kernels

A
Unterstützung für unterschiedliche Systemarchitekturen und
Prozessoren
Speicherverwaltung
Security Mechanismen
-  Firewall
-  Zugrislisten
-  Intrusion Detection
. . .
Bekannte Programmierschnistelle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Systemmerkmale aus Anwendersicht?

A

Zugri auf Peripherie ist auf den Dateizugri abgebildet.
3 „Dateien“ sind für jeden Rechenprozess direkt zugreifbar:
STDIN
STDOUT
STDERR
Systeminformationen und Systemzustände sind im
Proc-Filesystem abrufbar:
- cat /proc/cpuinfo
- cat /proc/interrupts

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

In welcher Schicht liegt das Systemcall Interface

A

Liegt im Kernel

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

Eigenschaften des Systemcall Interfaces

A
  • Dienstzugangsschnitstelle
  • Unabhängig von Programmiersprachen
  • Realisiert über Sotwareinterrupt 0x80 (synchron zum
    Programmablauf, Assemblerbefehl INT oder sysenter)
    Argumentenübergabe über Register oder über den Stack
  • Alle Systemcalls unter Linux sind im Headerfile aufgeführt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Aus was besteht ein Prozess Kontrollblock

A

Task Prio
Quantum
Task Zustand
Machinen Zustand

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

Was wird in der Prozesstabelle gespeichert

A

Pro laufenden Prozess einen Eintrag . Diesen Eintrag nennt man Prozesskontrollblock.
beinhaltet Informationen über
Zustand des Prozesses
- seinen Befehlszähler, CPU-Register, Stackpointer
Speicherbelegung, Zustand seiner geöffneten Dateien

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

Welche Zustände hat ein Task?

A

Lauffähig, Wartend, Aktiv, Ruhend/Terminiert

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

Funktionen eines Gerätetreibers?

A
Einbindung:
   init_module
   cleanup_module
   probe
   remove
Funktion APP triggered
   open
   close
   read
   write
Funktion OS/HW triggered
 ISRs
 Soft IRQ
 Timer
 Kernel Threads
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist ein Kontext?

A

spezifiziert, welche Dienste und welche Ressourcen einem Codefragment zur Verfügung stehen
Darüber hinaus definiert der Kontext, ob ein Codefragment unterbrechbar ist oder nicht

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

Was ist der Userkontext?

A

Ihm stehen die Dienste des
Betriebssystems zur Verfügung, wie sie im Systemcall-Interface spezifiziert
sind. Code dieser Ebene ist jederzeit unterbrechbar. Die Unterbrechungen
finden aufgrund von Interrupts statt, sei es durch einen Hardware-Interrupt
oder einen (selbst ausgelösten) Software-Interrupt.

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

Was ist der Prozesskontext?

A

Diesem Code stehen sämtliche Funktionalitäten des Betriebssystemkerns zur
Verfügung – auch die Funktionalität, das Verarbeiten des Codes für einige Zeit anzuhalten

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

Warum können (Kernel-Threads und damit

auch Workqueues) nicht Daten zwischen User- und Kernelspace austauschen?

A

sind an keine Apps gebunden

17
Q

Wie lösen Anwendungen Software Interrupts aus?

A

Systemcall

Nach einem Software-Interrupt wird Code auf der Kernelebene abgearbeitet.

18
Q

Was ist der Kernelkontext?

A

Sonstige Funktionen des Betriebssystemkerns (Kernel-Threads und damit auch Workqueues) werden im Kernelkontext abgearbeitet. Funktionen in dieser
Umgebung können ebenfalls schlafen, da sie aber an keine Applikation gebunden sind, können Sie keine Daten zwischen User- und Kernelspace
austauschen.

19
Q

Was ist der Interruptkontext?

A

stehen dem Code nicht alle Dienste des Betriebssystemkerns zur Verfügung. Funktionen in
diesem Kontext können sich nicht schlafen legen. Sie dürfen auch keine
anderen Funktionen wie beispielsweise kmalloc aufrufen, die ebenfalls Code
schlafen legen könnten. Der Zugriff auf Speicherbereiche der Applikationen
ist ebenfalls tabu. Routinen, die auf dieser Ebene ablaufen, sind Softirqs und ISR
Tasklets und Timer.

20
Q

Was sind ISR?

A

Interrupt-Service-Routinen laufen auf der ISR-Ebene ab. Dieser Code ist normalerweise nicht unterbrechbar.
Auch den ISRs ist es damit untersagt, sich schlafen zu legen oder Funktionen
aufzurufen, die einen Rechenprozess schlafen legen wollen.

21
Q

Warum werden SoftIRQ verwendet?

A

SoftIrqs allow the critical part of servicing hardware interrupts to be as short as possible; instead of having to process the entire hw interrupt on the spot, the important data is read off the device into RAM or otherwise, and then a SoftIrq is started to finish the work.