Betriebssystemschichten und virtuelle Maschinen

Werbung
Modul: Programmierung (B(B-PRG)
Grundlagen der Programmierung 1 – Teil 3
Betriebssystemschichten und
virtuelle Maschinen
Prof. Dr. R. Brause
Adaptive Systemarchitektur
Institut für Informatik
Fachbereich Informatik und Mathematik (12)
Übersicht
Betriebssysteme, Schichten und virtuelle
Maschinen
Prozesse, Nebenläufigkeit
Synchronisierung, Kommunikation, nicht-seq.
Programmierung
Dateioperationen, Dateisysteme
Sicherheit und Schutzmechanismen
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 2
1
Einführung
DEF: Was ist ein Betriebssystem ?
? die Gesamtheit der Programmteile, die die Benutzung
von Betriebsmitteln steuern und verwalten
? die Software (Programmteile), die für den Betrieb
eines Rechners anwendungsunabhängig notwendig ist
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 3
Betriebssystemaufbau
Benutzungsrelationen
Benutzer
benutzt
Benutzerprogramm
benutzt
Betriebssystem
benutzt
Maschinenhardware
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 4
2
Betriebssystemaufbau
Betriebssystemschichten
Zwiebelschalenmodell
Schichtenmodell
User 1
User 2
User 3
Compiler Editor ... Spiele
Betriebssystemdienste
Hardware
HW
Aspekte
• Abgeschlossenheit
• Sichtbarkeit
• Paralleler Zugriff
• Sequentieller Aufruf
Grundlagen der Programmierung 1 - Teil 3
Folie 5
R.Brause: Betriebssysteme Übersicht
Typischer Betriebssystemaufbau
Benutzer 1
…
Benutzer N
Benutzeroberfläche
User Interface Management System
Anwendung 1
Dienstprogramm
…
Werkzeug
Systemaufruf
Betriebssystemkern
Operating System Kernel
Maschinencode
Hardware
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 6
3
UNIX-Betriebssystemkern
MultiMulti-User
MultiMultiprogramming
user mode
kernel mode
BenutzerShell 1
BenutzerShell 2
BenutzerProgramm 1
SystemProgramm 1
…
SystemProgramm 2
Benutzungs
oberfläche
…
Überprüfbare Schnittstelle und Funktionsverteilung
SpeicherSerielle Ein/Ausgabe
Dateisystem
verwaltung
ProzessDisPlatte
manageTTY Drucker Maus
Netz
play
Floppy
ment
Hardware
Implementierungsunabhängige Schnittstellen:
Portable Operating System Interface based on UniX
X
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 7
Windows NT - Anforderungen
„ kompatibel zu vorhandenen Systemen Unix, DOS, ..
„ zuverlässig und robust
„ leicht übertragbar auf andere CPUs (Portierbarkeit)
„ leicht veränderbar und anpassungsfähig
„ leistungsstark
Î
Geht das überhaupt ?
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 8
4
Windows NT - Betriebssystemkern
Idee: Zwischenschichten (Subsysteme) einführen
Logon
Security Win/DOS
SubsysClient
tem
Win32 POSIX POSIX OS/2
OS/2
Subsys- Subsys- Client Subsys- Client
tem
tem
tem
LPC
user mode
kernel mode
SysCall
Object
Manager
Process
Manager
Systemdienste
Local
Memory
Proc. Calls
Manager
Kernel services
Hardware
Abstraction Layer
Hardware
Security
Monitor
I/O
System
HAL
Win NT 3.1, Win NT4.0, Windows 2000, Windows XP, Vista
Version 3.1
4.0
5.0
5.1
6.0
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 9
Windows NT - Lösungen
„ Kompatibilität
pro emuliertes BS ein extra Subsystem (Server), von Kunden
(Clients) durch Nachrichten (local procedure calls LPC)
angefordert.
Sie setzen auf Dienstleistungen der NT Executive (system
calls) auf.
„ Robustheit
™ Trennung der Programm-Ablaufumgebungen (virt. Maschinen)
™ kein direkter Hardwarezugriff,
™ fehlertolerantes Dateisystem, Netzdienste
„ Portierbarkeit
In C geschriebene Module, auf Hardwaremodell aufsetzend
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 10
5
BS-Schnittstellen
in Python
Python OS-Modul: Prozessoperationen
exec*(...)
Sofortiges Ausführen eines Programms; das
jetzige wird nach dessen Start abgebrochen.
* = l, le, lp, lpe feste Parameterzahl, e=envir, p=use path in e
= v, ve, vp, vpe variable Parameterzahl
pid = fork() Prozesserzeugung durch Kopie, Eltern: pid=0 (Unix)
sys.exit(n)
Abbruch des Prozesses. _exit(n) für fork()
n = Ergebniscode
spawn*(...) Sofortiges Ausführen eines Programms; das
jetzige läuft nach dessen Start weiter.
* = l, le, lp, lpe feste Parameterzahl, e=envir, p=use path in e
= v, ve, vp, vpe variable Parameterzahl
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 12
6
Python OS-Modul: Prozess-Parameter
getlogin
– Benutzername
uname(sysname, nodename, release, version, machine)
– Alles über die Maschine
environ, getenv, – Arbeitsumgebung:
putenv
Definition der Variablennamen
fchdir(fd), chdir(path), – Arbeitsordner-Pfadnamen
cwd
get, set :
ƒ uid
– Benutzer ID des Prozesses
ƒ gid, pgid(pid), pgrp, groups – Gruppen IDs des
Prozesses
ƒ pid, ppid
– Eltern ID des Prozesses
ƒ umask (mask)
– Erzeugermaske des Prozesses
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 13
Python OS-Modul: Dateioperationen
fdopen
- Erzeugen oder Öffnen von Dateien
read,write
- Lesen und Schreiben auf Dateien
close
- Schliessen von Dateien
popen
- Aufsetzen von pipes
remove, rename - Löschen oder Umbenennen von Dateien
chmod, chown
access
- Lesen und Setzen von Zugriffsrechten von
Dateien
- Test auf Zugriffsrechte an Dateien oder Pfade
listdir, mkdir, - Auslesen, Erzeugen,Löschen von Ordnern
rmdir
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 14
7
Python Betriebssystem-nahe Module
platform – Identifikation des benutzten Betriebssystems
locale, gettext – lokale bzw. nationale Besonderheiten
curses
– Ansteuerung der blinkenden Bildschirmmarke
mutex
– Objekte zum gegenseitigen Ausschluss
time, datetime – Abfrage und Konversion der Zeit
stat
– Typ einer Datei (file, pipe, special device, link,
directory, socket)
getpass – Einlesen des Passworts
getopt
– Einlesen und parsing der übergebenen Parameter
shutil
– „höhere“ Dateioperationen wie Kopieren,
Verschieben oder Löschen eines ganzen Dateibaums.
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 15
Schnittstellen
und
Virtuelle Maschinen
8
Schnittstelle : Beispiel
Rechteck zeichnen, Länge dx, Breite dy
DrawRectangle(float dx,dy)
Methode: DrawRectangle
Daten:
float dx,dy
Protokoll:
• zuerst Modul „Grafik“ initialisieren
• dann Skalierung setzen
• dann Bezugspunkt setzen
• schließlich Rechteck zeichnen.
benutzt die Methode drawLine mit den Daten x0,y0,x1,y1
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 17
Schnittstellen : Verallgemeinerung
Eine Schnittstelle besteht aus
„ Daten sowie Funktionen bzw. Methoden dafür
(Objekte)
„ Protokolle für die Benutzung der Funktionen und
Daten, mit denen das Objekt Dienstleistungen erbringt
(Exportschnittstelle)
Die Implementierung benötigt dazu
„ Daten, Funktionen und Protokolle für die
Dienstleistungen, die sie zur Erfüllung benötigt
(Importschnittstelle).
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 18
9
Schnittstellen & Abstrakte Datentypen
Abstrakter Datentyp = Zugriff auf Daten nur über definierte
Funktionen (Kapselung)
Methode2(.)
code
Methode1(.)
Daten
Objekt
Attribut A
Schnittstelle des ADT = Zugriff
+ Reihenfolge des Zugriffs
= Funktionen + Protokoll
Grundlagen der Programmierung 1 - Teil 3
Folie 19
R.Brause: Betriebssysteme Übersicht
Schnittstellen & Abstrakte Datentypen
Abstrakter Datentyp = Zugriff auf Daten nur über definierte
Funktionen (Kapselung)
Methode2(.)
code
Methode1(.)
Attribut A
information hiding
Daten
Kapselung
Objekt
Schnittstelle des ADT = Zugriff
+ Reihenfolge des Zugriffs
= Funktionen + Protokoll
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 20
10
Schnittstellen: Export & Import
Export/ Import ist relativ bzgl. einer Sicht !
Modul 1
Export
Import
Export
Import
Modul 2
Grundlagen der Programmierung 1 - Teil 3
Folie 21
R.Brause: Betriebssysteme Übersicht
Abstrakte und Virtuelle Maschinen
(x1,y1)
Beispiel: Zeichne ein Rechteck
DrawRectangle(x0,y0,x1,y1)
Virtuelle Maschine
Abstrakte Maschine
(x0,y0)
DrawRectangle(x0,y0,x1,y1)
Graphic Processor Unit
(GPU)
Display(RAM)
Maschine 1
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
DrawRectangle(x0,y0,x1,y1)
DrawLine(x0,y0,x1,y0)
DrawLine(x1,y0,x1,y1)
DrawLine(x1,y1,x0,y1)
DrawLine(x0,y1,x0,y0)
SetPoint(x0,y0,black)
SetPoint(x0+dx,y0,black)
…
Display(RAM)
V1
V2
V3
V4
Maschine 2
Folie 22
11
Abstrakte und Virtuelle Maschinen
Beispiel Waschmaschine
Benutzungsoberfläche
Controller
Schichtenmodell:
Abstrakte Maschine:
Schnittstellen,
• nur Zugang geregelt
virtuelle Maschine
• Implementation ist verborgen
reelle Maschine
Motor, Druckventile,
Temperatursensoren,
Heizungen, Pumpen
Grundlagen der Programmierung 1 - Teil 3
Folie 23
R.Brause: Betriebssysteme Übersicht
Windows NT - Betriebssystemkern
Idee: virtuelle Maschinen einführen
Logon
Security Win/DOS
SubsysClient
tem
Win32 POSIX POSIX OS/2
OS/2
Subsys- Subsys- Client Subsys- Client
tem
tem
tem
LPC
user mode
kernel mode
SysCall
Systemdienste
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 24
12
Virtuelle Maschinen
Schichtenabstraktion
Schicht 3
Zeit
Schicht 2
Schicht 1
Grundlagen der Programmierung 1 - Teil 3
Folie 25
R.Brause: Betriebssysteme Übersicht
Beispiel: virtuelle CPU
Software-Hardware-Migration
bei virt. CPU
Konfiguration 1
Programm in Java-Code
Java-Code / Maschinencode
CPU- Hardware
Konfiguration 2
Programm in Java-Code
Microcodeund CPU-Hardware
Vorteile
™Programm muss bei HW-Wechsel nicht geändert werden
™Unabh. HW-Entwicklung je nach Kundenwunsch
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Folie 26
13
Virtuelle, logische, physikalische Geräte
Beispiel: virtueller Festplattenspeicher
Kontrolle
Daten
„ logische Geräte
= physikalische Geräte
+ HW-Treiber.
Treiber für log. Geräte
log. Gerät 1
Treiber 1
„ virtuelle Geräte
phys.
Gerät 1
= logische Geräte
+Verwaltungstreiber
storage management
log. Gerät 2
Treiber 2
phys.
Gerät 2
Virtuelles Gerät
Blockaggregation
Grundlagen der Programmierung 1 - Teil 3
Folie 27
R.Brause: Betriebssysteme Übersicht
Beispiel: Virtueller Massenspeicher
Storage Area Network SAN
asym. Pooling
LAN
Anfrage
Ortsinfo
N
A
S
file server
Bl
oc
k
I/O
metadata
server
NAS
Lun 2
Grundlagen der Programmierung 1 - Teil 3
R.Brause: Betriebssysteme Übersicht
Network
Attached
Storage
Folie 28
14
Herunterladen