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