einfÜhrung und bausteine - tud - operating systems · tu dresden: hermann härtig ws 2017/2018,...

34
HERMANN HÄRTIG, WS 2017/18 Faculty of Computer Science Institute of Systems Architecture, Operating Systems Group EINFÜHRUNG UND BAUSTEINE

Upload: others

Post on 31-Oct-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

HERMANN HÄRTIG, WS 2017/18

Faculty of Computer Science Institute of Systems Architecture, Operating Systems Group

EINFÜHRUNG UND BAUSTEINE

Page 2: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

Lernziele der Vorlesung Betriebssysteme

Vermittlung einer integrierten Sicht auf Rechner-Systeme (Hardware, kryptographische Verfahren, Mathematik, maschinennahes Programmieren, Anwendung, …)

Grundlagen der Systemarchitektur, Betriebssysteme

Umgang mit Parallelität

Umgang mit Betriebsmitteln

Abwägungen zwischen Zielen (Trade Off)

2

Page 3: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

LEHRBUCH

Modern Operating Systems Andrew S. Tanenbaum Prentice Hall

Distributed Systems, Concepts and Design Coulouris, Dollimore, Kindberg Addison Wesley

Publikationen

3

Page 4: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

SYSTEM-STRUKTUR: HARDWARE, BS, APPS

4

CPU, Speicher, Busse, EA

BIOS

Prozesse, Speicher, EA-Treiber,

Dateisysteme, Protokolle, Virtuelle M., …

Applikation. . .

Bibliotheken

Prozesse

Datei-

system(e)

Fenster-

system(e)

Netz-

Dienste

. . .

Applikation

Hardware/Firmware

Betriebssystem-„Kern“

Page 5: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

SYSTEM-STRUKTUR: HARDWARE, BS, APPS

5

CPU, Speicher, Busse, EAHardware/Firmware

Prozesse, Speicher, EA-Treiber,

Dateisysteme, Protokolle, Virtuelle M., …

Betriebssystem-„Kern“

Applikation. . .Datei-

system(e)

Fenster-

system(e)

Netz-

Dienste

. . . Applikation

Linux Kern

Datei, … APP, …AUtOSAR SW

Virtuelle

Maschinen

Page 6: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

SYSTEM-STRUKTUR: EIN-/

6

EA-Treiber

Hardware

Firmware

Betriebssystem(-Kern)

CPU, Speicher, Busse, ...

Dedizierte Programme

Ein-Ausgabe-Gerät

Mikroprogramme

Page 7: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine 7(Source: Rethinking the Library OS from the Top Down, ASPLOS '11)

Page 8: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

AUFGABEN EINES BETRIEBSSYSTEMS (I)

Sichere und effiziente Ausführung von Benutzerprogrammen:

Isolation der Anwendungen

Bereitstellung Betriebsmittel (CPU, Speicher, IO, …)

Persistente Datenhaltung (z. B. Dateien)

Kommunikation/Vernetzung

Ein-/Ausgabe

Virtualisierung (virtueller Speicher, Virt. Maschinen, …) 8

Page 9: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

Aufgaben eines Betriebssystems (I)

Sicherstellung wichtiger Systemeigenschaften

Sicherheit (Angriffe)

Fehlertoleranz (HW-Ausfälle, SW-Fehler, ...)

Messen, Abrechnen („Accounting“)

Echtzeit (Real-Time)

9

Page 10: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

INHALTLICHER WEGWEISER Zwei Vorlesungen in einer:Betriebssysteme (HH) + Sicherheit. (Prof Thorsten Strufe)

Betriebssysteme:

Einleitung, grundlegende Bausteine, Unix als Fallbeispiel

Prozesse/Threads/Kommunikation SpeicherDateienEin/Ausgabe

Sicherheit und Fehlertoleranz aus BS-Sicht 10

Page 11: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

BETRIEBSSYSTEME, Aufgabenbereich/Betriebsart Interaktiver Betrieb Nutzerseite: Notebook, Desktop, Tablet, Handy Serverseite: Dateissystem, … ,Suchmaschine

Eingebettete Systeme (Embedded Systems) Stapelverarbeitung/Batch (Supercomputer, Big Data)

Kleine Maschine ./. Data Center ./. “Cloud”

welche Anwendungen

Architektur (mikrokern – monolithisch, client/server - P2P, 11

Page 12: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

ZIELE BEI BS-ENTWURFEffizienz in der Nutzung von Betriebsmitteln:CPU, Hauptspeicher, Bandbreiten, Platte, Energie

Einfachheit / Wartbarkeit / Erweiterbarkeit

Schutz gegen Angriffe/Fehler

Echtzeitfähigkeit

Komfort / Kompatibilität / Funktionsumfang

Skalierbarkeit

12

Güterabwägung, “Trade Offs”, z.B.“Simply put, it is possible to have convenience if you want to tolerate insecurity, but if you want security, you must be prepared for inconvenience.”1954, General Ben Chidlaw (cited via Butler Lampson)

Page 13: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

GRUNDLEGENDE BAUSTEINE

Threads

Adressräume

Prozesse und Kommunikation (Virtuelle Maschinen)

Dateien

Betriebssystem-„Kern“ ./. Hintergrund-Prozesse

E/A-Treiber

13

Page 14: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

THREAD

Eine selbständige

ein sequentielles Programm ausführende

zu anderen Threads parallel arbeitende

von einem Betriebssystem zur Verfügung gestellte

Aktivität.14

Page 15: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

PROZEDUREN ./. THREADS

Prozeduren P und Q

P;Q

• Q beginnt, wenn P beendet • P und Q werden von einem Thread ausgeführt

Threads P und Q

P||Q

● keinerlei Aussage zur Ausführungsreihenfolge der Instruktionen von P und Q ● P und Q – wenn einmal gestartet – sind selbständig

15

Page 16: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

ADRESSRAUMMenge aller Daten, Instruktionen. .., auf die „direkt“, d. h. mittels load/store/… HW-Instruktionen und über den PC zugegriffen werden kann

z.B.: primitive CPU, d.h. Zugriff nur über ein Adressregister A (16 Bit)

16

0

216 - 1

Text

Data

...

OS

ld R, A //lade den Wert, welcher //im Speicher an der //Adresse steht, die im //Register A angegeben ist, //ins Register R st R, A //analog schreibend

Page 17: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

PROZESS

Eine Einheit aus

einem Adressraum und

mindestens einem Thread

Weitere Eigenschaften

Einheit, der Betriebsmittel zugeordnet werden

Repräsentant von Benutzern innerhalb des Betriebssystems

17

OS

DataText

...

Prozess

Page 18: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

BEGRIFFSCHAOS

... Betriebssystemen und Programmiersprachen • MACHs Task ist ein „multithreaded“ Prozess • ADAs Task ist ein Thread

… Bibliotheken, Betriebssysteme und Hardware: • „Thread“ manchmal nur im Kontext von „multithreaded“ Prozessen

• „User Level Threads“ vs. Threads, die von einem Betriebs-system zur Verfügung gestellt oder unterstützt werden

• Hardware-Architektur Kontext: mehrere eigenständig arbeitende Instruktionsströme (Threads) nutzen CPU„Hyperthreading“

➔ Wichtig: Begriffsklärung sicherstellen !

18

Page 19: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

BEISPIELE FÜR DEN EINSATZ VON PROZESSEN

Mehrere Benutzer gleichzeitig auf einem Rechner jeder Benutzer wird Prozesse repräsentiert

Explizite Parallelarbeit eines Benutzers, z. B. Übersetzung im Hintergrund

paralleles “make”

Bereitstellung von Diensten durch Hintergrundprozesse

Auslagerung einer schützenswerten Unteraufgabe in eigenen Prozess

19

Page 20: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

BEISPIELE FÜR DEN EINSATZ VON THREADS

Mehrere Benutzer (das können andere Prozesse sein, sog. Klienten eines Prozesses, z. B. eines Dateisystems) jeder Klient wird durch einen Thread repräsentiert

Explizite Parallelarbeit eines Benutzers, z. B. parallele Bearbeitung von Matrizen

parallele kombinatorische Suche

20

Page 21: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

BEISPIELE FÜR DEN EINSATZ VON THREADS

Umgang mit Asynchronität, z. B. Tastatureingabe

Unterbrechungsbearbeitung

Ein-/Ausgabe

Hilfsmittel zur Strukturierung komplexer Programme

21

Page 22: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

MEHRERE THREADS AUF EINEM RECHNERImplementierung

● Nur ein Thread kann zu einem Zeitpunkt die CPU besitzen

● Jeder Thread erhält hin und wieder die CPU„Threadumschaltung“

Struktur:

22

Sequentielles

Programm

Sequentielles

Programm

Thread-Implementierung

Page 23: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

MEHRERE THREADS AUF EINEM RECHNERImplementierung

● Nur ein Thread kann zu einem Zeitpunkt die CPU besitzen

● Jeder Thread erhält hin und wieder die CPU„Threadumschaltung“

Struktur:

23

Sequentielles

Programm

Sequentielles

Programm

Thread-Implementierung

switchto()

Page 24: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

MEHRERE THREADS AUF EINEM RECHNERImplementierung

● Nur ein Thread kann zu einem Zeitpunkt die CPU besitzen

● Jeder Thread erhält hin und wieder die CPU„Threadumschaltung“

Struktur:

24

switchto()

nextinstr

Sequentielles

Programm

Sequentielles

Programm

Thread-Implementierung

Page 25: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

MEHRERE THREADS AUF EINEM RECHNERImplementierung

● Nur ein Thread kann zu einem Zeitpunkt die CPU besitzen

● Jeder Thread erhält hin und wieder die CPU„Threadumschaltung“

Struktur:

25

Sequentielles

Programm

Sequentielles

Programm

Thread-Implementierung

switchto()

nextinstr

Page 26: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

MEHRERE THREADS AUF EINEM RECHNERImplementierung

● Nur ein Thread kann zu einem Zeitpunkt die CPU besitzen

● Jeder Thread erhält hin und wieder die CPU„Threadumschaltung“

Struktur:

26

Sequentielles

Programm

Sequentielles

Programm

Thread-Implementierung

switchto()

nextinstr

Page 27: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

RECHNER UND ADRESSRÄUME● Einfachste Variante:

- nur ein Adressraum pro Rechner (kleine Systeme)

● Mehrere Adressräume pro Rechner: - bei Umschaltung zwischen Threads mit verschiedenen Adressräumen müssen auch

diese umgeschaltet werden - benötigt HW-Unterstützung (Memory Management Units)

27

Gemeinsamer

Speicher

Sequentielles

Programm

Sequentielles

Programm

Thread-Implementierung

Page 28: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

WOZU SEPARATE ADRESSRÄUME?

größere Adressräume für Anwenderprogramme(virtueller Speicher)

Anwenderprogramme sehen bei jeder Ausführung die gleichen Adressen

Schutz !!! der Daten unterschiedlicher Adressräume voreinander

28

Page 29: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

DATEIEN

Behälter für persistente Speicherung von Daten

Persistentes Speichermedium (Disk, Flash)

Operationen: READ, Write, …OPEN, CLOSE, SYNC (warum ?)

Implementierung des Datensystems als Prozess

29

Page 30: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

PROZESSE UND DATEIEN

30

read, file,

offset, length

disk-read,

blocknr

result, data result, dataProzess, der

Anwenderprogramm

ausführt

Dateisystem-

prozess

EA

Treiber-Thread

(Platte)

Page 31: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

BETRIEBSSYSTEMKERNTeil des Betriebssystems, der

von allen anderen genutzt wird und

im privilegierten Modus des Prozessors („kernel-mode“)

(oft: in einem allen Adressräumen gemeinsamen Speicherabläuft).

Enthält mindestens („Mikrokerne“):

Thread- und Adressraum-Implementierung

Schutzmechanismen

elementare Unterbrechungsbehandlung

Kommunikationsprimitive

Meistens zusätzlich („monolithische“ Systeme):

31

Page 32: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

EIN-/AUSGABE-TREIBER

Komponenten des Betriebssystem, die E/A-Geräte unmittelbar ansprechen und eine “vernünftige” Schnittstelle für die anderen Kompotten zur Verfügung stellen

32

Page 33: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

“You live in interesting times”

Moore’s law is dead, viele CPUs/Cores/…,

HW-Vielfalt: Beschleuniger, NVM (nicht flüchtiger Speicher), Netze, 3D-Speicher, FPGA, …

Exa Scale, Riesige Server, IoT, …

“Cyber”-Kriminalität

33

Dresden ist dabei:

● L4

● Kernkonzept, Genode Labs, Cyberus

● Amazon Lab, Cloud&Heat, …

● HAEC, cfAED, FFMK (ExaScale OS)

● 5G Lab Germany

● HPE: THE Machine

Page 34: EINFÜHRUNG UND BAUSTEINE - TUD - Operating Systems · TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine LEHRBUCH Modern Operating Systems Andrew S. Tanenbaum

TU Dresden: Hermann Härtig WS 2017/2018, BSuS, Einführung und Bausteine

PRAKTISCHES

Web-Seite

Mailing-Liste (!!!)

Übungen: meine Mitarbeiter + Studierende

Organisation: [email protected]

34