Modul: Programmierung (B-PRG) Grundlagen der … · 2007. 12. 20. · 1 Modul: Programmierung...

14
1 Modul: Programmierung (B Modul: Programmierung (B- PRG) PRG) Grundlagen der Programmierung 1 Grundlagen der Programmierung 1 – Teil 3 Teil 3 Betriebssystemschichten und Betriebssystemschichten und virtuelle Maschinen virtuelle Maschinen Prof. Dr. R. Brause Adaptive Systemarchitektur Institut 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

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