betriebssystembau (bsb): 01-einführung · ss 0 limit interaktion mit pci geräten 0x00000000...

39
Betriebssystembau (BSB) Zusammenfassung und Ausblick http://ess.cs.tu-dortmund.de/DE/Teaching/WS2015/BSB/ Olaf Spinczyk [email protected] http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12, TU Dortmund

Upload: others

Post on 18-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

Betriebssystembau (BSB)

Zusammenfassung und Ausblick

http://ess.cs.tu-dortmund.de/DE/Teaching/WS2015/BSB/

Olaf Spinczyk

[email protected]://ess.cs.tu-dortmund.de/~os

AG Eingebettete SystemsoftwareInformatik 12, TU Dortmund

Page 2: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 2

Agenda● Zusammenfassung

● Prüfung

● Ausblick

● Mitwirkung

Page 3: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 3

Agenda● Zusammenfassung

● Prüfung

● Ausblick

● Mitwirkung

Page 4: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 4

Was wir gemacht habenVL 1: EinführungVL 2: Einstieg in die BetriebssystementwicklungVL 3: Unterbrechungen - HardwareVL 4: Unterbrechungen - SoftwareVL 5: Unterbrechungen - SynchronisationVL 6: IA-32: Die 32-Bit-Intel-ArchitekturVL 7: Koroutinen und ProgrammfädenVL 8: SchedulingVL 9: Betriebssystem-ArchitekturenVL 10: FadensynchronisationVL 11: InterprozesskommunikationVL 12: BussystemeVL 13: Gerätetreiber

Page 5: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 5

Drei inhaltliche SchwerpunkteVL 1: EinführungVL 2: Einstieg in die BetriebssystementwicklungVL 3: Unterbrechungen - HardwareVL 4: Unterbrechungen - SoftwareVL 5: Unterbrechungen - SynchronisationVL 6: IA-32: Die 32-Bit-Intel-ArchitekturVL 7: Koroutinen und ProgrammfädenVL 8: SchedulingVL 9: Betriebssystem-ArchitekturenVL 10: FadensynchronisationVL 11: InterprozesskommunikationVL 12: BussystemeVL 13: Gerätetreiber

1. Ein Streifzug durch die Architektur des x86 PC

1. Ein Streifzug durch die Architektur des x86 PC

Page 6: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 6

Drei inhaltliche Schwerpunkte

1. Ein Streifzug durch die Architektur des x86 PC

1. Ein Streifzug durch die Architektur des x86 PC

IA-32: Protected Mode – Segmente

Selektor

Segment Register

SSGSFSESDSCS

Basis-Register

Index-Register

x Scale1, 2, 4 oder 8

Displacement(im Befehl)+

FlagsLimit

Startadresse

Tabelle

Segmentdeskriptoren

selektiertesSegment

Operand+

effektiveAdresse

Startadressedes Segments

lineareAdresse

0

linearerAdressraum

Segment-grenze

CSDS

ESFS

GSSS

0

Limit

Interaktion mit PCI Geräten

0x00000000

0xFFFFFFFF

Speicheradressraum

...

0x00000000

0xFFFFFFFF(0xFFFF beim PC)

I/O-Adressraum

...

Geräte-treiber

Konfigurationsadressraum

PCIBIOS

0:1.0

0:1.1

0:2.0

PCIInitiali-sierung

PCI Geräte

Page 7: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 7

Drei inhaltliche SchwerpunkteVL 1: EinführungVL 2: Einstieg in die BetriebssystementwicklungVL 3: Unterbrechungen - HardwareVL 4: Unterbrechungen - SoftwareVL 5: Unterbrechungen - SynchronisationVL 6: IA-32: Die 32-Bit-Intel-ArchitekturVL 7: Koroutinen und ProgrammfädenVL 8: SchedulingVL 9: Betriebssystem-ArchitekturenVL 10: FadensynchronisationVL 11: InterprozesskommunikationVL 12: BussystemeVL 13: Gerätetreiber

2. Kontrollflüsse und ihre Interaktionen

2. Kontrollflüsse und ihre Interaktionen

Page 8: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 8

Drei inhaltliche Schwerpunkte

E2

(nicht unterbr.)

Verallgemeinerung für mehrere Unterbrechungsebenen: Kontrollflüsse auf E

l werden

1. jederzeit unterbrochen durch Kontrollflüsse von Em

(für m > l)

2. nie unterbrochen durch Kontrollflüsse von Ek (für k ≤ l)

3. sequentialisiert mit weiteren Kontrollflüssen von El

Kontrollflüsse können die Ebene wechseln- durch spezielle Operationen (hier: Modifizieren des Statusregisters)

E1

(unterbr. von E2)

E0

(unterbr. von E1...2

)

unte

rbric

ht

SR.irql=1 SR.irql=0

unte

rbric

ht

unte

rbric

ht (

imp l

izit)

kann verzögern (exp

lizit)

Kontrollflussebenenmodell

<number>

E2

(nicht unterbr.)

Verallgemeinerung für mehrere Unterbrechungsebenen: Kontrollflüsse auf E

l werden

1. jederzeit unterbrochen durch Kontrollflüsse von Em

(für m > l)

2. nie unterbrochen durch Kontrollflüsse von Ek (für k ≤ l)

3. sequentialisiert mit weiteren Kontrollflüssen von El

Kontrollflüsse können die Ebene wechseln- durch spezielle Operationen (hier: Modifizieren des Statusregisters)

E1

(unterbr. von E2)

E0

(unterbr. von E1...2 )

unte

rbric

ht

SR.irql=1 SR.irql=0

unte

rbric

ht

unte

rbric

ht (

imp l

izit)

kann verzögern (explizit)

Kontrollflussebenenmodell

<number>

Erweitertes Kontrollflussebenenmodell Kontrollflüsse auf Ebene E

l sind

1. jederzeit unterbrechbar durch Kontrollflüsse von Em

(für m > l)

2. nie unterbrechbar durch Kontrollflüsse von Ek (für k ≤ l)

3. jederzeit verdrängbar durch Kontrollflüsse von El

(für l = 0)

→ Epilogebene(unterbrechbar, nicht verdrängbar)

E1

→ Unterbrechungsebene(nicht unterbrechbar, nicht verdrängbar)

E0

→ Fadenebene(unterbrechbar, verdrängbar)

Kontrollflüsse der Ebene E0

(Fadenebene) sind verdrängbar.

Für de Konsistenzsicherung auf dieser Ebene brauchen wir zusätzliche Mechanismen zurFadensynchronisation.

Erweitertes Kontrollflussebenenmodell Kontrollflüsse auf Ebene E

l sind

1. jederzeit unterbrechbar durch Kontrollflüsse von Em

(für m > l)

2. nie unterbrechbar durch Kontrollflüsse von Ek (für k ≤ l)

3. jederzeit verdrängbar durch Kontrollflüsse von El

(für l = 0)

→ Epilogebene(unterbrechbar, nicht verdrängbar)

E1

→ Unterbrechungsebene(nicht unterbrechbar, nicht verdrängbar)

E0

→ Fadenebene(unterbrechbar, verdrängbar)

Kontrollflüsse der Ebene E0

(Fadenebene) sind verdrängbar.

Für de Konsistenzsicherung auf dieser Ebene brauchen wir zusätzliche Mechanismen zurFadensynchronisation.

2. Kontrollflüsse und ihre Interaktionen

2. Kontrollflüsse und ihre Interaktionen

Page 9: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 9

Drei inhaltliche Schwerpunkte

2. Kontrollflüsse und ihre Interaktionen

2. Kontrollflüsse und ihre Interaktionen

Page 10: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 10

Drei inhaltliche SchwerpunkteVL 1: EinführungVL 2: Einstieg in die BetriebssystementwicklungVL 3: Unterbrechungen - HardwareVL 4: Unterbrechungen - SoftwareVL 5: Unterbrechungen - SynchronisationVL 6: IA-32: Die 32-Bit-Intel-ArchitekturVL 7: Koroutinen und ProgrammfädenVL 8: SchedulingVL 9: Betriebssystem-ArchitekturenVL 10: FadensynchronisationVL 11: InterprozesskommunikationVL 12: BussystemeVL 13: Gerätetreiber

3. BS-Konzepte allgemein und in Windows/Linux

3. BS-Konzepte allgemein und in Windows/Linux

Page 11: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 11

Drei inhaltliche Schwerpunkte

3. BS-Konzepte allgemein und in Windows/Linux

3. BS-Konzepte allgemein und in Windows/Linux

Page 12: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 12

Zusammen eine ganze Menge!

Hardware

Anwendung(en)

Gerätezugriff(Treiber)

Unterbrechungs-behandlung

Interprozess-kommunikation

Kontrollfluss-abstraktion

Unterbrechungs-synchronisation

Prozessverwaltung

Struktur des „OO-StuBS“ Betriebssystems:

BetriebssystembauBetriebssystembau

Page 13: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 13

Agenda● Zusammenfassung

● Prüfung

● Ausblick

● Mitwirkung

Page 14: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 14

Prüfung● Inhalt

– alle drei Schwerpunktbereiche werden abgedeckt– auch der Inhalt der Übungen ist relevant

● z. B. Schwerpunkte 1 und 2 anhand von OO-StuBS erklären können● C++, x86 Assembler

● Tipps– es geht um das Begreifen

● blindes Auswendiglernen ist nicht gefragt– überlegen Sie, wo die „Knackpunkte“ in OO-StuBS liegen

● Organisatorisches– Die Termine vergibt das LS12 Sekretariat (Frau Graute)

[email protected], OH16, Raum E22– Ausgefülltes Prüfungsformular nicht vergessen

Page 15: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 15

Leistungsnachweise● Wer keine Prüfung machen will/muss, sondern lediglich einen

unbenoteten Leistungsnachweis benötigt, möge sich bitte melden:

– E-Mail: an [email protected]

– Inhalt: Name, Matrikelnummer, ...

– Frist: bis 12.2. melden!

● Die fertigen Nachweise können dann (ca. 1 Woche später) im Sekretariat des Lehrstuhls 12 (OH16, Erdgeschoss) abgeholt werden.

Page 16: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 16

Agenda● Zusammenfassung

● Prüfung

● Ausblick

● Mitwirkung

Page 17: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 17

Ausblick: Wozu Betriebssystembau?Ausblick: Wozu Betriebssystembau?

... um sowas geht’s uns nicht!

Page 18: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 18

Ausblick: Eingebettete Systeme

Page 19: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 19

● Statistiken aus dem Jahr 2013:

– pro Jahr werden knapp 20 Milliarden Microcontroller verkauft.

– noch heute dominiert 8- und 16-Bit Technik.

Wo geht all das Silizium hin?

49%49%

10%10%5%5%

5%5%3%3%23%23%

5%5%

2015F MOS Microcomponent Marketshare ($82.9B)

Std PC, Server MPU 32-bit MCU 16-bit MCU4-/8-bit MCU DSP Cellphone App MPUTable MPU

Page 20: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 20

AVR ATmega – Eine typische Hardware-Produktlinie

Bezeichnung Prog. RAM IO Timer 8/16 UART I²C AD Preis

ATTINY11 1024 6 1/- - - - €0.31

ATTINY13 1024 64 6 1/- - - 4*10 €0.66

AT90S2323 2048 128 3 1/- - - - €1.72

ATMEGA8515 8192 512 35 1/1 1 - - €2.04

ATMEGA8535 8192 512 32 2/1 1 1 - €2.67

ATMEGA169 16384 1024 54 2/1 1 1 8*10 €4.03

ATMEGA64 65536 4096 53 2/2 2 1 8*10 €5.60

ATMEGA128 131072 4096 53 2/2 2 1 8*10 €7.91

[Quelle: Digi-Key Produktkatalog, Sommer 2005]

µ-Controllerfamilie, basierend auf 8 Bit RISC-Core– 16 general-purpose Register– Havard-Architektur, getrennter Programm und Datenspeicher– On-Board IO-Pins, Timer, AD-Wandler, Bussysteme, ...

Ein kleiner Ausschnitt aus den angebotenen Varianten:

Page 21: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 21

AVR ATmega – Eine typische Hardware-Produktlinie

Bezeichnung Prog. RAM IO Timer 8/16 UART I²C AD Preis

ATTINY11 1024 6 1/- - - - €0.31

ATTINY13 1024 64 6 1/- - - 4*10 €0.66

AT90S2323 2048 128 3 1/- - - - €1.72

ATMEGA8515 8192 512 35 1/1 1 - - €2.04

ATMEGA8535 8192 512 32 2/1 1 1 - €2.67

ATMEGA169 16384 1024 54 2/1 1 1 8*10 €4.03

ATMEGA64 65536 4096 53 2/2 2 1 8*10 €5.60

ATMEGA128 131072 4096 53 2/2 2 1 8*10 €7.91

[Quelle: Digi-Key Produktkatalog, Sommer 2005]

µ-Controllerfamilie, basierend auf 8 Bit RISC-Core– 16 general-purpose Register– Havard-Architektur, getrennter Programm und Datenspeicher– On-Board IO-Pins, Timer, AD-Wandler, Bussysteme, ...

Ein kleiner Ausschnitt aus den angebotenen Varianten:

Die Systemsoftware muss ähnlich gut skalieren!

Die Systemsoftware muss ähnlich gut skalieren!

Page 22: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 22

Was macht die Hardware teuer?

● SRAM um den Faktor 10 teurer als Flash (ROM)

[€/MiBit]

0,6

5 €

0,6

1 €

0,5

4 €

0,0

8 €

0,0

4 €

0,00 €

0,10 €

0,20 €

0,30 €

0,40 €

0,50 €

0,60 €

0,70 €

4 MiBit SRAM(512K x 8)

8 MiBit SRAM(512 K x 16)

16 MiBit SRAM(1 M x 16)

64 MiBit, 3 VNAND (8 M x 8)

128 MiBit, 3 VNAND (16 M x 8)

SRAM Flash

Page 23: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 23

EingebettetesBetriebssystem

“energiesparend”“schnell”

“verlässlich”“deterministisch”

“sicher”“klein“

voll-präemptiv,Speicherschutz,Prioritätsvererbung, ...

ARM, PPC, TriCore, x86, HC12, AVR, ...

funktionale Anforderungennicht-funktionale

Anforderungen

Portabilitätsanforderungen● Anforderungen sind hochgradig anwendungsspezifisch

– Vielzweckbetriebssysteme (wie im PC Bereich) versagen hier

Anforderungen sind vielfältig

Page 24: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 24

. . . , C{51, 166, 251}, CMX RTOS, C-Smart/Raven, eCos, eRTOS, Embos, Ercos, Euros Plus, Hi Ross, Hynet-OS, LynxOS, MicroX/OS-II, Nucleus, OS-9, OSE, OSEK {Flex, Turbo, Plus}, OSEKtime, Precise/MQX, Precise/RTCS, proOSEK, pSOS, PURE, PXROS, QNX, Realos, RTMOSxx, Real Time Architect, RTA, RTX{51, 166, 251}, RTXC, Softune, SSXS RTOS, ThreadX, TinyOS, VRTX, VxWorks, . . .

● „das Rad wird neu erfunden“– auch die selben Fehler werden wiederholt

● oftmals bietet ein BS Hersteller mehrere Systeme an– mit getrennter Code-Basis– getrieben durch die speziellen Anforderungen seiner Kunden

Markt mit > 100 Systemen> 50% EigenentwicklungenMarkt mit > 100 Systemen> 50% Eigenentwicklungen

Eingebettete Betriebssysteme

Page 25: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 25

Konfigurierbare Betriebssysteme● Ansatz: feingranulare, anwendungsspezifische,

statische Konfigurierung

– Ersparnis von Ressourcen

– Abdeckung eines breiteren Anwendungsspektrums (=Marktes!)

– Wiederverwendung und damit höhere Produktivität

Page 26: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 26

Herausforderderungen... beim Bau konfigurierbarer Systemsoftware

● Beherrschung der Variantenvielfalt

– Analyse und Modellierung der Variabilität

● Minimierung der Modulabhängigkeiten, "Plug&Play"

– Systementwurf

● Wahl geeigneter Sprachmittel für die Programmierung

– Generizität und Wiederverwendbarkeit vs. Effizienz

● Werkzeugunterstützung

– Technik zur Konfigurierung

● ...

Page 27: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 27

Merkmalmodelle

scheduling

Operating System

energy management

dynamic CPU freq. scaling

cooperat. FIFO

round robin

multi-levelfeedback queues

...

...

...

Merkmaldiagramm einer BS-Produktlinie

Page 28: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 28

Systembausteine

scheduling

Operating System

energy management

dynamic CPU freq. scaling

cooperate FIFO

round robin

priority based full preemptive

...

...

...

Merkmaldiagramm

ClassClassClass

System-bausteine

«implements »

«implements »

...

Idealfall: ein Merkmal wird durch eine Klasse implementiert

Page 29: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 29

_

Problem: Querschneidende Belange ... behindern Konfigurierung und Wiederverwendung

Multi-User Support

Synchronisation

Entwicklungsunterst.

Page 30: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 30

Beispiel aus OO-Stubs: Kernel-Sperre● Pro/Epilogmodell fordert:

– guard sperren, bevor der Kern betreten wird– guard freigeben, nachdem der Kern verlassen wird

● Ansatz: Eigene Systemschnittstelle durch Ableitung

● Das ist gar nicht so doll! (Warum?)Kernel-Sperre

Page 31: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 31

● ...erlaubt die modulare Implementierung querschneidender Belange

● Beispiele: Kontrollflussverfolgung, Synchronisation, Sicherheit, Pufferung, Fehlerbehandlung,Überprüfung von Kontrakten, ...

gut modularisierter Belang

ohne AOP mit AOP

Aspekt

Aspect-Oriented Programming

schlecht modularisiert

Page 32: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 32

AspectC++

ElementCounter1.ah

aspect nameaspect name pointcut expression („Wo“)pointcut expression („Wo“) advice type („Wann“)advice type („Wann“)

aspect ElementCounter {

advice execution("% util::Queue::enqueue(...)") : after() { printf( " Aspect ElementCounter: after Queue::enqueue!\n" ); }

...};

advice body („Was“)advice body („Was“)

Page 33: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 33

OO-Stubs Kernel-Sperre mit AOP

#include "guard/guard.h"extern Guard guard;

aspect KernelLock { pointcut user() = "Application" || "Board" ...; pointcut kernel() = "Buzzer" || "Keyboard" ...;

pointcut kernel_enter() = call(kernel()) && within(user());

advice kernel_enter() : before() { guard.enter(); } advice kernel_enter() : after() { guard.leave(); }};

Page 34: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 34

Aspekte als Systembausteine

scheduling

Operating System

energy management

dynamic CPU freq. scaling

cooperate FIFO

round robin

priority based full preemptive

...

...

...

Merkmaldiagramm

Class

Aspect

ClassClass

AspectAspectAspect

System-bausteine

«implements »

«implements »

«implements »

...

...

...

● Querschneidende Belange werden durch Aspekte implementiert

Merkmale mit querschneidender Implementierung können nun direkt auf ein Modul abgebildet werdenMerkmale mit querschneidender Implementierung können nun direkt auf ein Modul abgebildet werden

Page 35: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 35

Agenda● Zusammenfassung

● Prüfung

● Ausblick

● Mitwirkung

Page 36: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 36

VL: Software ubiquitärer Systeme● Lehrveranstaltung im SS 2016 (4V+2Ü)

– Master-Basis oder Diplom-Wahl

– Betriebssysteme, Middleware und Datenhaltung– Spezielle Randbedingungen, Entwurfsmethodik und Sprachen– Praktische Übungen

„ubiquitous computing“

Page 37: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 37

Wir suchen: Studentische Hilfskräfte● Übungsleiter in „Betriebssysteme“

– Halten von „Tafelübungen“– Erstellen und Korrigieren von Programmieraufgaben

● C und UNIX-Systemschnittstelle● Pool-Betreuung

– Studierenden „über die Schulter schauen“ und helfen● Programmierung

– Verbesserung von Software, die in der Lehre eingesetzt wird● Forschungsprojekte

– Je nach Bedarf Programmierung, Recherche, Messung, usw.

Page 38: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 38

Wir suchen: (Diplom|Master)and(en|innen)

Allgemeines– Empirisches Arbeiten Bauen, Messen, Bewerten→– Anwendungsorientierung ist unser Querschnittsthema

● in verschiedenen Bereichen der eingebetteten Systemsoftware

Themen

Page 39: Betriebssystembau (BSB): 01-Einführung · SS 0 Limit Interaktion mit PCI Geräten 0x00000000 0xFFFFFFFF Speicheradressraum... 0x00000000 0xFFFFFFFF (0xFFFF beim PC) I/O-Adressraum

04. Feb 2016 Betriebssystembau: 14 - Zusammenfassung und Ausblick 39

So, das war's

Arbeitsgruppe Eingebettete SystemsoftwareLehrstuhl 12

Vielen Dank!Ich hoffe, wir sehen uns wieder.