Modul: Programmierung (B-PRG) Grundlagen der … · 2007. 12. 20. · 1 Modul: Programmierung...
Transcript of Modul: Programmierung (B-PRG) Grundlagen der … · 2007. 12. 20. · 1 Modul: Programmierung...
-
1
Modul: Programmierung (BModul: Programmierung (B--PRG)PRG)Grundlagen der Programmierung 1 Grundlagen der Programmierung 1 –– Teil 3Teil 3
Betriebssystemschichten und Betriebssystemschichten und virtuelle Maschinenvirtuelle Maschinen
Prof. Dr. R. BrauseAdaptive SystemarchitekturInstitut für Informatik Fachbereich Informatik und Mathematik (12)
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 2
Übersicht
Betriebssysteme, Schichten und virtuelle Maschinen
Prozesse, Nebenläufigkeit
Synchronisierung, Kommunikation, nicht-seq. Programmierung
Dateioperationen, Dateisysteme
Sicherheit und Schutzmechanismen
-
2
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 3
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 4
Betriebssystemaufbau
benutzt
benutzt
benutzt
Benutzer
Benutzerprogramm
Maschinenhardware
Betriebssystem
Benutzungsrelationen
-
3
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 5
Betriebssystemaufbau
User 1 User 2 User 3Compiler Editor ... Spiele
BetriebssystemdiensteHardware
HW
Schichtenmodell Zwiebelschalenmodell
• Abgeschlossenheit• Sichtbarkeit
Betriebssystemschichten
• Paralleler Zugriff• Sequentieller Aufruf
Aspekte
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 6
Typischer Betriebssystemaufbau
Systemaufruf
Maschinencode
BenutzeroberflächeUser Interface Management System
BetriebssystemkernOperating System Kernel
Hardware
Anwen-dung 1
Dienst-programm
Werk-zeug
…
Benutzer 1 … Benutzer N
-
4
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 7
UNIX-Betriebssystemkern
…
…user mode
kernel mode
Benutzer-Programm 1
System-Programm 1
System-Programm 2
Benutzer-Shell 1
Benutzer-Shell 2
Überprüfbare Schnittstelle und FunktionsverteilungSpeicher-
verwaltungSerielle Ein/Ausgabe Dateisystem
Prozess-Dis-play
TTY Drucker MausPlatte
FloppyNetz
manage-ment
Hardware
MultiMulti--UserUser
MultiMulti--programmingprogramming
Implementierungsunabhängige Schnittstellen:PPortable OOperating SSystem IInterface based on UniXX
Benutzungsoberfläche
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 8
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 ?
-
5
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 9
Windows NT - Betriebssystemkern
user modekernel mode
SystemdiensteObject
ManagerProcess
ManagerLocal
Proc. CallsMemoryManager
SecurityMonitor
I/OSystem
Kernel services
Hardware Abstraction Layer HALHardware
POSIXClient
Win/DOSClient
OS/2Client
Win32Subsys-
tem
POSIXSubsys-
tem
OS/2Subsys-
temLogon
SecuritySubsys-
tem
Idee: Zwischenschichten (Subsysteme) einführen
LPC
SysCall
Win NT 3.1, Win NT4.0, Windows 2000, Windows XP, VistaVersion 3.1 4.0 5.0 5.1 6.0
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 10
Windows NT - Lösungen
Kompatibilitätpro 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.
RobustheitTrennung der Programm-Ablaufumgebungen (virt. Maschinen) kein direkter Hardwarezugriff,fehlertolerantes Dateisystem, Netzdienste
PortierbarkeitIn C geschriebene Module, auf Hardwaremodell aufsetzend
-
6
BSBS--SchnittstellenSchnittstelleninin PythonPython
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 12
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
-
7
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 13
Python OS-Modul: Prozess-Parameter
getlogin – Benutzernameuname(sysname, nodename, release, version, machine)
– Alles über die Maschineenviron, getenv, – Arbeitsumgebung: putenv Definition der Variablennamenfchdir(fd), chdir(path), – Arbeitsordner-Pfadnamencwd
get, set :uid – Benutzer ID des Prozessesgid, pgid(pid), pgrp, groups – Gruppen IDs des Prozessespid, ppid – Eltern ID des Prozessesumask (mask) – Erzeugermaske des Prozesses
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 14
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 - Lesen und Setzen von Zugriffsrechten von Dateien
access - Test auf Zugriffsrechte an Dateien oder Pfade
listdir, mkdir, - Auslesen, Erzeugen,Löschen von Ordnernrmdir
-
8
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 15
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.
Schnittstellen Schnittstellen undund
Virtuelle MaschinenVirtuelle Maschinen
-
9
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 17
Schnittstelle : Beispiel
Rechteck zeichnen, Länge dx, Breite dyDrawRectangle(float dx,dy)
Methode: DrawRectangleDaten: float dx,dyProtokoll:
• 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 18
Schnittstellen : Verallgemeinerung
Eine SchnittstelleSchnittstelle besteht ausDaten sowie Funktionen bzw. Methoden dafür (Objekte)Protokolle für die Benutzung der Funktionen und Daten, mit denen das Objekt Dienstleistungen erbringt (Exportschnittstelle)
Die ImplementierungImplementierung benötigt dazuDaten, Funktionen und Protokolle für die Dienstleistungen, die sie zur Erfüllung benötigt (Importschnittstelle).
-
10
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 19
Daten
code
Schnittstellen & Abstrakte Datentypen
Abstrakter Datentyp = Zugriff auf Daten nur über definierte Funktionen (Kapselung)
Schnittstelle des ADT = Zugriff + Reihenfolge des Zugriffs= Funktionen + Protokoll
ObjektMethode1(.)
Methode2(.)
Attribut A
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 20
Daten
code
Schnittstellen & Abstrakte Datentypen
Abstrakter Datentyp = Zugriff auf Daten nur über definierte Funktionen (Kapselung)
Schnittstelle des ADT = Zugriff + Reihenfolge des Zugriffs= Funktionen + Protokoll
ObjektMethode1(.)
Methode2(.)
Attribut A
Kapselunginformation hiding
-
11
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 21
Schnittstellen: Export & Import
Export/ Import ist relativ bzgl. einer Sicht !
Export Import
ExportImport
Modul 1
Modul 2
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 22
Abstrakte und Virtuelle Maschinen
Beispiel: Zeichne ein Rechteck
DrawRectangle(x0,y0,x1,y1)
(x0,y0)
(x1,y1)
DrawRectangle(x0,y0,x1,y1)
Graphic Processor Unit(GPU)
Display(RAM)
DrawRectangle(x0,y0,x1,y1)V1
DrawLine(x0,y0,x1,y0)DrawLine(x1,y0,x1,y1)DrawLine(x1,y1,x0,y1)DrawLine(x0,y1,x0,y0)
V2
SetPoint(x0,y0,black)SetPoint(x0+dx,y0,black)
…
V3
Display(RAM) V4
Maschine 1 Maschine 2
Abstrakte MaschineVirtuelle Maschine
-
12
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 23
Abstrakte und Virtuelle Maschinen
Beispiel Waschmaschine
Benutzungsoberfläche
Controller
reelle Maschine
Motor, Druckventile, Temperatursensoren, Heizungen, Pumpen
Abstrakte Maschine:
• nur Zugang geregelt
• Implementation ist verborgen
Schichtenmodell:
Schnittstellen,
virtuelle Maschine
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 24
Windows NT - Betriebssystemkern
user modekernel mode
Systemdienste
POSIXClient
Win/DOSClient
OS/2Client
Win32Subsys-
tem
POSIXSubsys-
tem
OS/2Subsys-
temLogon
SecuritySubsys-
tem
Idee: virtuelle Maschinen einführen
LPC
SysCall
-
13
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 25
Schicht 2
Virtuelle Maschinen
Schicht 1
Zeit
Schicht 3
Schichtenabstraktion
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 26
Beispiel: virtuelle CPU
Software-Hardware-Migration bei virt. CPU
Programm in Java-CodeJava-Code / Maschinencode
CPU- Hardware
Programm in Java-CodeMicrocode-
und CPU-Hardware
Konfiguration 1 Konfiguration 2
VorteileProgramm muss bei HW-Wechsel nicht geändert werden
Unabh. HW-Entwicklung je nach Kundenwunsch
-
14
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 27
Virtuelle, logische, physikalische Geräte
Beispiel: virtueller Festplattenspeicher
logische Geräte
= physikalische Geräte + HW-Treiber.
Kontrolle Daten
Treiber für log. Geräte
Virtuelles Gerät
log. Gerät 1 log. Gerät 2
phys.Gerät 1
Treiber 1
phys.Gerät 2
Treiber 2virtuelle Geräte
= logische Geräte +Verwaltungstreiberstorage management
Blockaggregation
Grundlagen der Programmierung 1 - Teil 3 R.Brause: Betriebssysteme Übersicht Folie 28
Beispiel: Virtueller Massenspeicher
Storage Area Network SAN asym. PoolingLAN
Ortsinfo
file servermetadataserver
Bloc
k I/O
S A N
Lun 2
NAS
NetworkAttachedStorage
Anfrage