Introduction to Object Technology

Document Sample
Introduction to Object Technology Powered By Docstoc
					Überblick über Betriebssysteme

           Kapitel 2
         Betriebssysteme
• Ist ein Programm, das die
  Ausführung von
  Anwendungsprogrammen steuert
• Dient als Schnittstelle zwischen den
  Anwendungen und der
  Computerhardware.
Zielen von Betriebssysteme
 • Bequemlichkeit
   – Ein Computer kann bequemer benutzt
     werden.
 • Effizienz
   – Computersystemressourcen können
     effizient genutzt werden.
 • Fähigkeit zur Weiterentwicklung
   – Ermöglicht die effektive Entwicklung, das
     Testen und die Einführung neuer
     Systemfunktionen, ohne das dies den
     Betrieb negativ beeinflusst.
Schichten und Ansichten eines
      Computersystems
         Dienste die ein
    Betriebssystem anbietet.
• Programmentwicklung
    – Editoren und Debugger
•   Programmausführung
•   Zugriff auf E/A-Geräte
•   Kontrollierter Zugriff auf Dateien
•   Systemzugriff
       Dienste die ein
  Betriebssystem anbietet
• Fehlererkennung und Reaktion auf Fehler
  – Interne und externe Hardwarefehler
     • Speicherfehler
     • Ausfall von Geräte
  – Softwarefehler
     • arithmetischer Überlauf
     • Zugriff auf geschützte Speicherzellen
  – Betriebssystem kann einer Anforderung
    einer Anwendung nicht nachkommen.
       Dienste die ein
  Betriebssystem anbietet
• Buchführung
  – stellt Nutzungsstatistiken auf
  – Leistungen überwachen
  – Nützlich, um die Notwendigkeit
    zukünftiger Erweiterungen abschätzen
    zu können.
  – Kann zu Abrechnungszwecken
    verwendet werden.
         Betriebssystem
• Funktioniert auf die gleiche Art und Weise
  wie normale Computersoftware
  – es ist ein Programm das durch den
    Prozessor ausgeführt wird.
• Das Betriebssystem gibt die Kontrolle
  häufig ab und ist darauf angewiesen dass
  der Prozessor es ihm ermöglicht die
  Kontrolle zurück zu erlangen.
                Kernel
• Teil des Betriebssystem welcher sich im
  Hauptspeicher befindet.
• Umfasst die am häufigsten verwendeten
  Funktionen
• auch bezeichnet als Betriebssystemkern
       Fähigkeit zur
      Weiterentwicklung
• Hardwareupgrades und neue
  Hardwaretypen
• Neue Dienste
• Reparaturen (fixes)
Entwicklungsgeschichte der
     Betriebssysteme
• Serielle Verarbeitung
  – Kein Betriebssystem (50er Jahren)
  – Rechner wurden von einer Konsole aus
    gestartet, die Kontrollleuchten, Kippschalter,
    Eingabegeräte (Lochkartenleser) und Drucker
    umfasste.
  – Reservierungsterminkalender auf Papier
  – Für einen einzelnen Programmlauf, konnte es
    notwendig sein, einen Compiler,
    Quellprogramm, zu laden. Das kompilierte
    Programm zu sichern, usw.
Entwicklungsgeschichte der
     Betriebssysteme
• Einfache Stapelbetriebssysteme
  – Monitor
    • Benutzer hat keinen direkter Zugriff auf den
      Rechner
    • Der Monitor steuert die Sequence der
      Ereignisse
    • Jobs werden vom Operator aufeinander
      gestapelt
    • Nach Programmbeendigung wird zum
      Monitor zurück verzweigt
    • Ein Teil, der Residenter Monitor, befindet
      sich stets im Hauptspeicher
      Jobsteuersprache
 Job Control Language (JCL)
• Eine spezielle Art von Programmier-
  sprache.
• Stellt dem Monitor Befehle zur
  Verfügung
  – der Compiler der geladen werden soll
  – Die Daten die vom Programm
    verwendet werden sollen
     Hardwaremerkmale
• Speicherschutz
  – Ein Benutzerprogramm darf den
    Speicherbereich, der den Monitor
    enthält, nicht verändern.
  – Timer: Der wird verwendet um einzelne
    Jobs daran zu hindern, das System für
    sich alleine auf Dauer in Beschlag zu
    nehmen.
    Einprogrammbetrieb
• Prozessor muss mit der Ausführung
  warten auf den E/A-Befehlsablauf.
    Mehrprogrammbetrieb
• Während ein Job auf die E/A wartet, kann
  der Prozessor zu dem anderen Job
  umschalten
Mehrprogrammbetrieb
                       Beispiel

                 JOB1           JOB2        JOB3
Art des Jobs     umfangreiche   umfangreiche umfangreiche
                 Berechnungen   E/A         E/A
Dauer            5 min.         15 min.     10 min.
Speicherbedarf   50K            100 K       80 K
Festplatte?      No             No          Yes
Terminal?        No             Yes         No
Drucker?         No             No          Yes
 Auswirkung des Mehrprogramm-
betriebs auf die Ressourcennutzung

                   Uniprogramming   Multiprogramming
Prozessornutzung   22%              43%
Speichernutzung    30%              67%
Festplattennutzung 33%              67%
Druckernutzung     33%              67%
Zeitaufwand        30 min.          15 min.
Durchsatzrate      6 jobs/hr        12 jobs/hr
Mittlere Antwortzeit 18 min.        10 min.
           Timesharing
• Mehrprogrammbetrieb für die Abarbeitung
  mehrere interaktive Jobs.
• Die Zeit des Prozessors wird auf mehrere
  Benutzer verteilt.
• Mehrere Benutzer greifen gleichzeitig
  über Terminals auf das System zu.
 Stapelmehrprogrammbetrieb
 im Vergleich mit Timesharing

                    Stapelmehrprogramm-
                                                   Time Sharing
                           betreib


                   Maximierung der             Minimierung der
Hauptziel
                   Prozessorausnutzung         Antwortzeit



Anweisungsquelle   Befehle in Jobsteuerungs-   Befehle, die am
für das            sprache, die mit dem Job    Terminal eingegeben
Betriebssystem     bereitgestellt werden       werden
    Wichtige Errungenschaften
• Prozesse
• Speicherverwaltung
• Informationsschutz und Sicherheit
• Ablaufplanung und Ressourcen-
  verwaltung
• Systemstruktur
              Prozesse
• Ein Programm in der Ausführung
• Eine Instanzierung eines Programms,
  welches auf einem Prozessor ausgeführt
  werden kann
• Die Einheit, die einem Prozessor zugeteilt
  und auf einem Prozessor ausgeführt
  werden kann
• Eine Aktivitätseinheit, die durch einen
  einzigen sequentiellen Ausführungs-
  Thread, einen aktuellen Status und einen
  zugehörigen Satz Systemressourcen
  gekennzeichnet wird
Hauptursachen für Programmierfehler in
 der Entwicklung der Systemsoftware
• Falsche Synchronisation
  – Das Betriebssystem muss gewährleisten dass
    ein Prozess, das auf ein E/A-Gerät wartet auch
    das Signal empfangen wird.
• Fehlgeschlagener gegenseitiger Ausschluss
• Nichtdeterministischer Programmbetrieb
  – Ergebnisse sollten nur von der Eingabe und
    nicht von den Aktivitäten andere Programme
    abhängen
• Verklemmungen (Deadlocks)
               Prozess
• Besteht aus drei Komponenten
  – Ein ausführbares Programm
  – Die zugehörige Daten, die das
    Programm benötigt
  – Den Ausführungskontext des
    Programms
    • Alle Informationen, die das Betriebssystem
      braucht, um den Prozess zu verwalten
Prozess
     Speicherverwaltung
• Prozessisolierung
• Automatische Zuordnung und
  Verwaltung
• Unterstützung der modularen
  Programmierung
• Schutz und Zugriffskontrolle
• Langzeitspeicher
       Virtueller Speicher
• Es ermöglicht den Programmen, den
  Speicher von einem logischen
  Standpunkt aus anzusprechen
• Bei der Ausführung aufeinander folgender
  Prozesse kommt es zu keiner
  Unterbrechung, wenn ein Prozess auf den
  Sekundärspeicher ausgelagert und der
  nachfolgende Prozess eingelesen wird
               Paging
• Paging ermöglicht es, Prozesse aus einer
  Anzahl von Blöcken mit fester Grösse,
  genannt Seiten, zu bilden
• Eine virtuelle Adresse besteht aus einer
  Seitenzahl und einem Offset innerhalb der
  Seite
• Die einzelnen Seiten können im
  Hauptspeicher beliebig angeordnet sein
• Das Paging-System sorgt für eine
  dynamische Abbildung der virtuellen oder
  logische Adressen und der realen Adressen,
  oder physikalische Adressen
Adressierung beim
virtuellen Speicher
      Ablaufplanung und
     Ressourcenverwaltung
• Fairness
  – allen Prozessen ungefähr den gleichen
    und fairen Zugriff geben
• Differenzierte Ansprechempfindlichkeit
  – muss zwischen unterschiedlichen
    Jobklassen unterscheiden
• Effizienz
  – den Durchsatz maximieren, die
    Antwortzeit minimieren, so viele Benutzer
    wie möglich bedienen
Hauptelementen eines
  Betriebssystems
          Systemstruktur
• Wir können das Betriebssystem als eine
  Reihe von Ebenen betrachten
• Jede Ebene führt einen zugeordneten Teil
  an Funktionen aus
• Die einzelnen Ebenen verlassen sich für
  die Durchführung einfacher Funktionen
  auf die nächst tiefere Ebene
• Ein Problem wird so in eine Reihe von
  leichter zu handhabenden Teilproblemen
  aufgespaltet
                   Hierarchie eines
                   Betriebssystems
Ebene Name              Objekte               Beispieloperationen
13   Shell              Benutzerprogrammier- Aussagen in Shell-Sprache
                        umgebung
12   Benutzerprozesse   Benutzerprozesse      Beenden, Löschen,
                                              Unterbrechen, Wiederaufnehmen
11   Verzeichnisse      Verzeichnisse         Erstellen, Löschen, Anhängen,
                                              Ablösen, Suchen, Auflisten
10   Geräte             Externe Geräte, wie   Öffnen, Schließen, Lesen,
                        Drucker, Tastaturen   Schreiben
                        und Anzeigegeräte
9    Dateisystem        Dateien               Erstellen, Löschen, Öffnen
                                              Schließen, Lesen, Schreiben
8    Kommunikation      Kanäle (Pipes)        Erstellen, Löschen, Öffnen
                                              Schließen, Lesen, Schreiben
              Hierarchie eines
              Betriebssystems
Ebene Name               Objekte              Beispieloperationen
7    Virtueller Speicher Segmente, Seiten     Lesen, Schreiben, Aufrufen
6    Lokaler Sekundär-   Datenblöcken, Geräte- Lesen, Schreiben, Zuweisen,
     Speicher            kanäle                Freigeben
5    Einfache Prozesse   Einfach Prozesse,    Unterbrechen, Wiederauf-
                         Semaphore, Bereit-   nehmen, Warten,
                         schaftslisten        Signalisieren
                  Hierarchie eines
                  Betriebssystems
Ebene Name            Objekte                    Beispieloperationen
4   Interrupts        Interrupt-Steuer-          Aufrufen, Verdecken, Auf-
                      programme                  decken, erneuter Versuch
3   Prozeduren        Prozeduren, Aufruf-,       Stapelmarkierung, Aufruf,
                      stapel, Anzeige            Rücksprung
2   Befehlssatz       Auswertungsstapel,         Laden, Speichern,
                      Microprogrammüber-,        Addieren, Subtrahieren,
                      setzer, Skalar- und        Verzweigen
                      Felddaten
1   Elektronische     Register, Gatter, Busse,   Löschen, Übertragen,
    Schaltungen       usw                        Aktivieren,
                                                 Vervollständigen
     Merkmale moderner
      Betriebsysteme
• Mikrokernel-Architektur
  – Hierbei werden dem Kernel nur einige
    wesentliche Elemente zugeordnet
     • Unterstützung von Adressräumen
     • Interprozesskommunikation (IPC)
     • Grundlegendes Scheduling
     Merkmale moderner
      Betriebsysteme
• Multithreading
   – ein Prozess wird in mehrere Threads aufgeteilt
     die nebenläufig ausgeführt werden können
• Thread
   – Eine Arbeitseinheit, die sich per Dispatcher
     zuordnen lässt
   – wird sequentiell ausgeführt und kann
     unterbrochen werden
• Prozess:
   – Ein oder mehrere Threads mit dazugehörenden
     Systemressourcen
    Merkmale moderner
     Betriebsysteme
• Symmetrischer Mehrprozessorbetrieb
  – es sind mehrere Prozessoren vorhanden
  – Diese Prozessoren teilen sich denselben
    Hauptspeicher, dieselben E/A-Geräte und
    sind durch einen Kommunikationsbus
    miteinander verbunden
  – Alle Prozessoren können dieselben
    Funktionen ausführen
     Merkmale moderner
      Betriebsysteme
• Verteilte Betriebssysteme
  – Schafft die Illusion eines einzigen
    Hauptspeicherraums und eines
    einzigen Sekundärspeicherraums
  – wie z.B. ein System für verteilte Dateien
     Merkmale moderner
      Betriebsysteme
• Objektorientierter Aufbau
  – Ermöglicht das disziplinierte
    Hinzufügen von modularen
    Erweiterungen zu einem kleinen Kernel
  – Ermöglicht den Programmierern, ein
    Betriebssystem ohne Zerschlagung der
    Systemintegrität nach Maß
    zuzuschneidern
         Windows 2000
• Nutzt die Verarbeitungsfähigkeiten
  heutiger 32-Bit-Mikroprozessoren
  aus
• Es handelt sich um ein Multitasking-
  Betriebssystem, obwohl es nach wie
  vor für die Unterstützung eines
  einzelne interaktiven Benutzers
  gedacht ist.
• Client/Server System
  Windows 2000 Architektur
• Modularer Aufbau verleiht ein hohes
  Maß an Flexibilität
• Läuft auf einer Vielzahl von
  Hardwareplattformen (??)
• Unterstützt Anwendungen, die für
  eine Vielzahl anderer
  Betriebssysteme geschrieben
  wurden
     Betriebssystemaufbau
• Modifizierte Mikrokernel-Architektur
  – Nicht ein reiner Mikrokernel (denn)
  – Viele Systemfunktionen laufen
    außerhalb des Mikrokernels im Kernel-
    Modus
• Jedes Modul kann entfernt,
  aufgerüstet oder ausgetauscht
  werden, ohne dass das gesamte
  System neu geschrieben werden
  muss
      Client/Server-Modell
• Vereinfacht die Executive
  – es ist möglich eine Vielzahl von APIs zu
    konstruieren
• Verbessert die Zuverlässigkeit
  – Jedes Executive-Service-Modul läuft
    geschützt mit einer eigenen
    Speicherpartition
  – Clients können nicht direkt auf die
    Hardware zugreifen
• Bietet eine passende Grundlage für die
  verteilte Verarbeitung in Computernetzen
       Threads and SMP
• Unterschiedliche Routinen können
  simultan auf unterschiedlichen
  Prozessoren laufen
• Mehrere Threads desselben Prozesses
  können gleichzeitig auf verschiedenen
  Prozessoren ausgeführt werden
• Server-Prozesse können mehrere
  Threads einsetzen
• Gemeinsame Nutzung von Daten und
  Ressourcen durch Prozesse
                 UNIX
• Die zugrunde liegende Hardware ist von
  der Betriebssystemsoftware umgeben
• Das Betriebssystem wird als System-
  Kernel bezeichnet
• Unix ist zusätzlich mit einer Reihe von
  Benutzerdiensten und Schnittstellen
  ausgestattet, die auch als Teil des
  Systems angesehen werden
  – shell
  – C compiler
UNIX
      Modern UNIX Systeme
•   System V Release 4 (SVR4)
•   Solaris 2.x
•   HPux
•   4.4BSD
•   Linux
Unix-Geschichte

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:10/1/2012
language:Unknown
pages:55