V19: Betriebssystemschichten und virtuelle Maschinen

Werbung
Modul B -PRG
Grundlagen der Programmierung 1
Teil 3:
Betriebssysteme, Dateisysteme, Sicherheit
V19:
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
R.Brause: Betriebssysteme Übersicht
Folie 2
1
Einführung
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
R.Brause: Betriebssysteme Übersicht
Folie 3
Benutzungsrelationen
Benutzer
benutzt
Benutzerprogramm
benutzt
Betriebssystem
benutzt
Maschinenhardware
Grundlagen der Programmierung 1
R.Brause: Betriebssysteme Übersicht
Folie 4
2
Betriebssystemschichten
Zwiebelschalenmodell
Schichtenmodell
User 1
User 2
User 3
Compiler Editor ... Spiele
Betriebssystemdienste
Hardware
Grundlagen der Programmierung 1
HW
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
R.Brause: Betriebssysteme Übersicht
Folie 6
3
UNIX-Betriebssystemkern
Multi--User
Multi
user mode
kernel mode
BenutzerShell 1
BenutzerShell 2
BenutzerProgramm 1
SystemProgramm 1
…
Multi-Multi
programming
SystemProgramm 2
…
Überprüfbare Schnittstelle und Funktionsvertei lung
SpeicherSerielle Ein/Ausgabe
Dateisystem
verwaltung
ProzessDisPlatte
manage TTY Drucker Maus
Netz
play
Floppy
ment
Hardware
Implementierungsunabhängige Schnittstellen:
Portable Operating S ystem I nterface based on UniX
X
Grundlagen der Programmierung 1
R.Brause: Betriebssysteme Übersicht
Folie 7
Windows NT - Anforderungen
n kompatibel zu vorhandenen Systemen Unix, DOS, ..
n zuverlässig und robust
n leicht übertragbar auf andere CPUs (Portierbarkeit)
n leicht veränderbar und anpassungsfähig
n leistungsstark
è
Geht das überhaupt ?
Grundlagen der Programmierung 1
R.Brause: Betriebssysteme Übersicht
Folie 8
4
Windows NT - Betriebssystemkern
Logon
Security Win /DOS
SubsysClient
tem
Win32 POSIX POSIX OS/2 OS/2
Subsys- Subsys- Client Subsys- Client
tem
tem
tem
user mode
kernel mode
Object
Manager
Process
Manager
Hardware
Grundlagen der Programmierung 1
Systemdienste
Local
Memory
Proc.Calls
Manager
Kernel
Abstraction Layer
Hardware
R.Brause: Betriebssysteme Übersicht
Security
Monitor
I/O
System
HAL
Folie 9
Windows NT - Lösungen
n 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.
n Robustheit
v Trennung der Programm-Ablaufumgebungen (virt. Maschinen)
v kein direkter Hardwarezugriff,
v fehlertolerantes Dateisystem, Netzdienste
n Portierbarkeit
In C geschriebene Module, auf Hardwaremodell aufsetzend
Grundlagen der Programmierung 1
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
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
R.Brause: Betriebssysteme Übersicht
Folie 13
Python OS-Modul: Dateioperationen
fdopen
read,write
- Erzeugen oder Öffnen von Dateien
- Lesen und Schreiben auf Dateien
close
- Schliessen von Dateien
popen
- Aufsetzen von pipes
remove, rename - Löschen oder Umbenennen von Dateien
- Lesen und Setzen von Zugriffsrechten von
Dateien
access
- Test auf Zugriffsrechte an Dateien oder Pfade
listdir, mkdir, - Auslesen, Erzeugen,Löschen von Ordnern
rmdir
chmod, chown
Grundlagen der Programmierung 1
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
Folie 15
R.Brause: Betriebssysteme Übersicht
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
R.Brause: Betriebssysteme Übersicht
Folie 17
Schnittstellen : Verallgemeinerung
Eine Schnittstelle besteht aus
n
n
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
n
Daten, Funktionen und Protokolle für die Dienstleistungen, die sie
zur Erfüllung benötigt (Importschnittstelle).
èVirtuelle Maschinen
Grundlagen der Programmierung 1
R.Brause: Betriebssysteme Übersicht
Folie 18
9
Virtuelle Maschinen: Beispiel
(x1,y1)
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
R.Brause: Betriebssysteme Übersicht
V1
DrawRectangle(x0,y0,x1,y1)
V2
DrawLine(x0,y0,x1,y0)
DrawLine(x1,y0,x1,y1)
DrawLine(x1,y1,x0,y1)
DrawLine(x0,y1,x0,y0)
V3
SetPoint(x0,y0,black)
SetPoint(x0+dx,y0,black)
…
Display(RAM )
V4
Maschine 2
Folie 19
Virtuelle Maschinen
Schichtenabstraktion
Schicht 3
Zeit
Schicht 2
Schicht 1
Grundlagen der Programmierung 1
R.Brause: Betriebssysteme Übersicht
Folie 20
10
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
z Programm muss bei HW-Wechsel nicht geändert werden
z Unabh. HW-Entwicklung je nach Kundenwunsch
Grundlagen der Programmierung 1
Folie 21
R.Brause: Betriebssysteme Übersicht
Virtuelle, logische, physikalische Geräte
Beispiel: virtueller Festplattenspeicher
Kontrolle
Daten
n logisches Gerät
= physikalisches Gerät
+ HW-Treiber.
Treiber für log. Geräte
log. Gerät 1
n virtuelles Gerät
= logisches Gerät
+Verwaltungstreiber
storage management
Grundlagen der Programmierung 1
R.Brause: Betriebssysteme Übersicht
log. Gerät 2
Treiber 1
Treiber 2
phys.
Gerät 1
phys.
Gerät 2
Virtuelles Gerät
Folie 22
11
Beispiel: Virtueller Massenspeicher
Storage Area Network SAN
asym. Pooling
LAN
Ortsinfo
metadata
server
Bl
oc
kI
/O
file server
SAN
NAS
Network
Attached
Storage
Lun 2
Grundlagen der Programmierung 1
R.Brause: Betriebssysteme Übersicht
Folie 23
12
Herunterladen