SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Das Prozeßmodell in Betriebssystemen                                                             Was bringen mehrere parallele Prozesse ?
  • alle ausführbaren Programme werden als sequentielle Prozesse gesehen                                 Grundsätzliche Überlegung:
  • jeder Prozeß besitzt seinen (virtuellen) Prozessor und läuft (scheinbar) kontinuierlich ab              In einem Prozeß wechseln sich Berechnungen und Ein/Ausgaben ab.
                                                                                                            Beispiel: Lesen von Daten von der Festplatte, modifizieren, dann speichern. Benötigt
  • die Prozesse laufen scheinbar parallel zueinander ab.                                                   Lesen und Speichern 40 msec, die Bearbeitung 10 msec         dann wartet die CPU 80 %




                                                                                                                                                                     
                                                                                                            ihrer Zeit untätig !!!
  • in Wirklichkeit aber wird der Prozessor “schnell” von Prozeß zu Prozeß geschaltet
    dies macht der Scheduler (Scheduling-Algorithmus)
                                                                                                         Multiprogramming-Grad
                                                                           V=3
       Vorsicht bei                                                                                         Ein Prozeß verbringe den Bruchteil p
                                                     D
    




                                                                                                            seiner Zeit mit Warten auf Ein/Ausgabe.
  a-priori-Zeitannahmen in
                                            Prozeß
                                                                                                            Bei n Prozessen im Speicher, ist die
                                                                     V=2                                    Wahrscheinlichkeit, daß alle gleichzeitig
  Programmen !!                                      C
                                                                                                            im Wartezustand sind pn.
                                                                                                            Die CPU-Auslastung ist dann 1 - pn
                                                               V=1
                                                     B
  Problem: wachsende Verzögerung V
                                                     A   V=0                                  Zeit
  bei wachsender Prozesszahl n
               n–1
  Vd =             * k , bei n Tasks, die je k Zeit laufen und keine IO benötigen (reiner CPU-Burst)
                2
       Prof. W. Burkard                                                                       55             Prof. W. Burkard                                                                  56




Stichworte                                                                                              Stichworte




Notizen                                                                                                 Notizen




                                                                                                   55                                                                                               56
Copyright(C) by Foxit Software Company,2005-2007



                                                                            Performanceanalyse                                                                             Die Realität: CPU-Bursts
                                                              Jeder Prozeß besitze 20% CPU-Nutzung ( bzw. 80% sei Warten auf I/O )                  q   Sobald ein Prozess eine E/A-Operation
                                                                                                                                                        veranlasst, wird er vom BS von der CPU
                                                                                                                                                        genommen, und diese einem anderen
                                                                                                                                                        Prozess gegeben. Der blockierte              160

                                                                                     20min                                                              Prozess wartet auf das Ende der                                    reale CPU-Burst-Verteilung
                                                                                     15min                                                              gestarteten E/A                              140

                                                                                                                                                        ohne dabei die CPU zu nutzen.
                                                                                     10min                                                                                                           120
                                                                                     10min                                                          q   Ein Prozess wechselt somit ständig
                                                                                                                                                        zwischen Abschnitten, in denen er die        100
                                                                                                                                                        CPU nutzt (CPU-Bursts) und solchen, in
                                                                                                                                                        denen er E/A-Geräte benutzt (IO-Bursts).     80
                                                                                                                                                    q   Beides gleichzeitig macht keinen Sinn, der
Edited by Foxit Reader




                                                                                                                                                        Prozess kann z.B. nicht weiterrechnen,       60
For Evaluation Only.




                                                                                                                                                        wenn die Daten vom Datenträger noch
                                                                                                                                                                                                     40
                                                                                                                                                        nicht da sind!
                                                                                                                                                    q   CPU- Bursts sind im Verhältnis zu            20
                                                                                                                                                        IO-Bursts sehr kurz:                                                                                     Dauer des
                                                                                                                                                        Übliche Werte liegen im Bereich weniger       0                                                          CPU-Burst
                                                                                                                                                        Millisekunden, gegenüber IO-Bursts,                0   2   4   6    8 10 12 14 16 18 20 22 24 26 28 30 32 in msec
                                                          10:00h                                                               10:32h                   die oft 100 mal länger sind !
                                                   Prof. W. Burkard                                                                     57              Prof. W. Burkard                                                                                          58




                                    Stichworte                                                                                                    Stichworte




                                    Notizen                                                                                                       Notizen
                                       von 10:00 bis 10:10 gibt es nur einen Prozess (1 .Spalte rechte Tabelle)
                                       von 10:10 bis 10:15 gibt es zwei Prozesse (2. Spalte rechte Tabellen)
                                       von 10:15 bis 10:20 gibt es drei Prozesse (3.Spalte rechte Tabelle)
                                       ab 10:20 gibt es vier Prozesse (4. Spalte rechte Tabelle)




                                                                                                                                             57                                                                                                                         58
Copyright(C) by Foxit Software Company,2005-2007



                                                                          Was ist eigentlich ein Prozeß ?                                                                        ... und was ist dann ein Thread ?
                                                   •    Ein Prozess ist ein einzelner sequentieller Ablauf in einem Rechner,                              •    Bei vielen Anwendungen werden keine völlig separaten Prozesse benötigt
                                                               (ein ablaufendes Anwenderprogramm ist z.B. ein Benutzerprozess)
                                                                                                                                                          •    Dennoch will man innerhalb der einen Anwendung parallele Handlungen ermöglichen
                                                   •    Da alle Prozesse gleichzeitig stattfinden, müsste für jeden Prozess auch ein Prozessor
                                                                                                                                                          Was heißt das ?
                                                        vorhanden sein !?
                                                                                                                                                          •    Alle Handlungsfäden (= Threads) sollen im gleichen Prozesskontext ablaufen, somit
                                                   •    Die Anzahl der Prozesse schwankt aber im laufenden Betrieb und ist meist deutlich
                                                                                                                                                               ein Adressraum für alle Threads
                                                        größer als die Zahl der vorhandenen Prozessoren ! Was tun ?




                                                                                                                          
                                                             Das Betriebssystem muss die vorhandenen Prozessoren auf die gegebenen Prozesse               •    Konsequenz: alle Threads haben zunächst uneingeschränkten gegenseitigen Zugriff auf
                                                             verteilen. Dieses Zeitmultiplexverfahren wird Scheduling genannt.                                 ihre Objekte und teilen sich die Ressourcen (geöffnete Dateien, Variablen, Code, ... )

                                                   •    Dabei wird zu bestimmten Zeitpunkten ein sogenannter Kontextwechsel durchgeführt,d.h.             Wie wird das implementiert?
Edited by Foxit Reader




                                                        der Zustand des aktuellen Prozesses wird gesichert und der früher gesicherte Zustand              •    Einfachste Lösung: die Threads übergeben sich gegenseitig reihum die Kontrolle
                                                        eines anderen Prozesses wird wieder vom Prozessor übernommen.
For Evaluation Only.




                                                                                                                                                               (sogenanntes Coroutinen-Konzept)




                                                                                                                                                                                                   
                                                   •    Benutzerprozesse führen Benutzeraufträge (Anwendungsprogramme) aus,                                    Dann müssen alle Threads sich gegenseitig kennen, der Anwendungsprogrammierer muss ein
                                                                                                                                                               Scheduling-Verfahren implementieren bzw. berücksichtigen
                                                        Systemprozesse führen Dienste des BS aus, sind also Teil des Betriebssystems
                                                                                                                                                               => schlechter Ansatz, besonders bei wachsender Thread-Anzahl
                                                   •    Jeder Prozess (NICHT Thread!) läuft in einem eigenen Prozessadressraum ab. Ein
                                                                                                                                                          •    Besser: keine Implementierung vom Anwendungsprogrammierer, sondern verfügbarer
                                                        Prozess kann nur dann auf Objekte (z.B. Variablen ...) eines anderen Prozesses
                                                                                                                                                               Dienst des BS. Dann werden die Umschaltzeiten zwar minimal länger, bleiben aber
                                                        zugreifen, wenn das BS entsprechende Mechanismen hierfür zur Verfügung stellt
                                                                                                                                                               immer noch deutlich unter dem Kontext-Switch von „richtigen“ Prozessen. Warum ?
                                                           IPC = Inter-Process-Communication
                                                          




                                                       Prof. W. Burkard                                                                       59              Prof. W. Burkard                                                                  60




                                    Stichworte                                                                                                          Stichworte
                                                                                                                                                         Jedes Programm hat mindestens einen Thread, bei mehreren Threads nennt
                                                                                                                                                         man das Multithreading.
                                                                                                                                                         BSp.: Word ist 3 mal geöffnet mit jeweils einem Text mit mehreren 1000 Seiten,
                                                                                                                                                         jedes Wort das das Wort Lehrling enthält soll automatisch in Azubi umgeändert
                                                                                                                                                         werden. => Die Prozesse laufen nicht parallel ab, auch wenn es so aussieht. In
                                                                                                                                                         Wirklichkeit wird im Millisekundenbereich gewechselt.
                                    Notizen                                                                                                             Notizen




                                                                                                                                                   59                                                                                                60
Copyright(C) by Foxit Software Company,2005-2007



                                                                          ... Kontextwechsel bei Threads                                                                                        Der Prozesskontext
                                                                                                                                                                          Der Prozesskontext umfasst alle Informationen, die das Betriebsystem über einen
                                                   ODER:                                                                                                                  Prozess besitzt und ändert sich bei Prozessablauf ständig
                                                     Was muss das Betriebssystem tun, wenn von einem Thread auf einen anderen
                                                                                                                                                                            Identifikatoren
                                                     umgeschaltet wird ?
                                                                                                                                                                                     •    Name / ID des Prozesses
                                                   •    Jeder Thread hat Daten, die wirklich nur ihm zuzuordnen sind und in keiner Weise andere                                      •    Name des Benutzers, für den der Task gerade arbeitet
                                                        Threads oder Tasks betreffen:                                                                                                •    Name des Vaterprozesses
                                                            • Das Prozessorstatuswort, also der gesamte Prozessorzustand (Inhalt der CPU-Register)                                   •    Namen der Sohn-Prozesse
                                                            • Der Stackpointer, der auf das oberste Element im Stack (Stapel) zeigt                                              Zustandsinformationen
                                                                                                                                                                                     •    Prozessorzustand ( alle Register, nur vorhanden wenn Prozess nicht aktiv )
                                                            • Der Program-Counter, der auf die nächste auszuführende Instruktion zeigt
                                                                                                                                                                                     •    Bearbeitungsstand ( Zustand des Tasks: blockiert, ready, ... )
                                                   •    Diese drei Daten sind vom Scheduler zu sichern bevor der neue Thread geladen wird                                            •    Alarmzustand
Edited by Foxit Reader




                                                   •    Dies kann in kürzester Zeit erfolgen, da es nur wenige Daten sind !           schnell                                        •    Beschreibung zugeordneter Objekte/Betriebsmittel
For Evaluation Only.




                                                                                                                                   
                                                                                                                                                                                 Rechte
                                                                                                                                                                                     •    Zugriffsrechte auf Dateien
                                                                                                                                                                                     •    Zugriffsrechte auf Speichersegmente und Seiten bei Paging
                                                                                                                                                                                     •    Prozessprioritäten
                                                                                                                                                                                 Betriebsmittelkonten
                                                                                                                                                                                     •    Abrechnungsdaten
                                                                                                                                                                                     •    Noch verfügbare Kontingente
                                                       Prof. W. Burkard                                                                         61            Prof. W. Burkard                                                                                  62




                                    Stichworte                                                                                                            Stichworte
                                      HERON-VERFAHREN AUF WIKIPEDIA NACHLESEN




                                    Notizen                                                                                                               Notizen




                                                                                                                                                     61                                                                                                                62
Copyright(C) by Foxit Software Company,2005-2007



                                                                 Einfaches Prozess-Zustands-Modell                                                                                                    Prozesszustände

                                                   • ein Prozeß befindet sich immer in einem von drei möglichen zentralen Zuständen:                                        aktiv / running / rechnend
                                                   • AKTIV: ein Prozessor arbeitet die Instruktionen des Programmcodes gerade ab                                                       Prozesse in diesem Zustand sind im Besitz einer CPU und laufen gerade (bei
                                                                                                                                                                                       einfachem Single-Prozessorsystem kann nur immer nur ein Task in diesem
                                                   • BLOCKIERT: BS hat Befehlsabarbeitung wg. IO gestoppt, Prozessor wurde einem anderen                                               Zustand sein
                                                     Prozeß zugeteilt. Der blockierte Prozeß wartet auf ein (die Blockierung lösendes) Ereignis.
                                                                                                                                                                            blockiert / wartend / blocked
                                                   • BEREIT: Prozeß könnte weiterlaufen, wartet auf Zuteilung des Prozessors durch das BS                                              Prozesse, die darauf warten, dass eine E/A-Operation endet oder eine
                                                                                                                                                                                       sonstige Systembedingung erfüllt wird, z.B. Eintreffen einer Nachricht...
                                                                                                    Prozeß                           Prozeß-Terminierung                               In diesem Zustand können sich stets beliebig viele Prozesse befinden.
                                                                                                      ist
                                                                                      ng r-

                                                                                                                                                                                       Diese Prozesse können nicht weiterlaufen, erst muss das „erlösende“
                                                                                   ilu so




                                                                                                                       W
                                                                                                     aktiv
                                                                                 te e s




                                                                                                                                                                                       Ereignis stattfinden




                                                                                                                        ar
Edited by Foxit Reader




                                                                               zu roz




                                                                                                                          te
                                                                                                                            n
                                                                                                                                                                            bereit / rechenbereit / ready
                                                                                 P




                                                                                                                            au
For Evaluation Only.




                                                                                                                   S




                                                                                                                               f
                                                                                                               B




                                                                                                                                Er
                                                                                                                                                                                       Prozesse in diesem Zustand sind potentiell ausführbar, aber derzeit nicht im
                                                                                                              h
                                                                                                         du r-




                                                                                                                                  ei
                                                                                                           rc
                                                                                                      ug so

                                                                                                                                                                                       Besitz einer CPU.




                                                                                                                                    gn
                                                                                                    tz es



                                                                               Prozeß




                                                                                                                                     is
                                                                                                                                                                                       Auch in diesem Zustand können sich stets beliebig viele Prozesse befinden.
                                                                                                  En roz




                                                                                 ist
                                                                                                    P




                                                   Prozeß-Erschaffung                                                                                                                  Diese Prozesse könnten jederzeit weiterlaufen und „hoffen“ auf CPU-
                                                                                bereit                                   Prozeß                                                        Zuteilung durch den Scheduler
                                                                                                                            ist
                                                                                                                         blockiert
                                                      Prof. W. Burkard                                                                              63              Prof. W. Burkard                                                                                  64
                                                                                              Ereignis tritt ein


                                    Stichworte                                                                                                                  Stichworte




                                                                                                                       SEHR WICHTIG
                                    Notizen                                                                                                                     Notizen




                                                                                                                                                           63                                                                                                              64
Erweitertes Prozess-Zustands-Modell                                                                         Prozesskontrollblock (PCB)
                                                                                                       Der PCB umfasst alle wichtigen Informationen aus dem Prozesskontext,
   •     das einfache Modell muss erweitert werden, wenn durch Swapping ganze Prozesse                 damit das Betriebssystem die einzelnen Tasks verwalten kann:
         wegen Speichermangels auf die Festplatte ausgelagert werden (swap out)                         • PID = Process Identification
                                                                                                        • Speicherplatz zur Sicherung des
   •     Bis zur erneuten Einlagerung (Swap in) kann keiner der betroffenen Threads ausgeführt            Prozessorzustandes bei einem Kontextwechsel           Prozessidentifikation
         werden.
                                                                                                        • Informationen über den Wartegrund,
   •     Zustandsübergänge von allen drei bisherigen Zuständen sind möglich !                             falls der Task blockiert ist                          Registerzustand
                                                                                                                                                                (Ein- und Auslesen
                                                                                                        • Adressrauminformationen, z.B. einen Verweis
                                                                                                                                                                bei Kontextwechsel)
                                            Prozeß                            Prozeß-Terminierung         auf die oberste Seitentabelle
                                              ist
                                 ng r-



                                                                                                        • Weitere Zustandsinformationen und
                              ilu so




                                             aktiv                                                        Statistiken für das Scheduling
                            te e s




                                                                                                                                                                Scheduling-Informationen




                                                              W rei
                          zu roz




                                                               ar gn
                                                                E
                                                                            Swap out




                                                                 te is
                            P




                                                                   n
                                                                                                                                                                Adressrauminformationen




                                                                     au
                                                         S
                                                                                                             aktiv


                                                                        f
                                                                                                                                                                ...Seitentabelle...
                                                     B
                                                                                   Prozeß
                                                     h
                                                du r-



                                                                                                                                                                ...
                                                  rc
                                             ug so




                           Prozeß                                                    ist
                                           tz es
                                         En roz




                             ist                                                 ausgelagert               bereit
                                           P




                            bereit                              Prozeß                                                                                          Sonstiges
                                                                   ist
 Prozeß-Erschaffung                      Ereignis tritt ein     blockiert     Swap in
                                                                                                         blockiert                                              Nächster PCB
       Prof. W. Burkard                                                                   65            Prof. W. Burkard                                                                   66




Stichworte                                                                                          Stichworte




Notizen                                                                                             Notizen




                                                                                               65                                                                                               66
Copyright(C) by Foxit Software Company,2005-2007



                                                                          Dispatcher und Scheduler                                                                      Zeitlicher Ablauf beim Kontextwechsel
                                                   Langzeitscheduling
                                                                                                                                                                    zeitliche Verschränkung der Prozessbearbeitung in einem Einprozessorsystem
                                                     • Planen der Jobausführung: es sollen nur so viele Benutzer mit ihren Anwendungen
                                                       neu ins System, wie das System verkraften kann.     Begrenzung der Taskanzahl                         Zeit




                                                                                                                 
                                                                  Beispiel: ftp- oder www-Server Zugangskontrolle verhindert Serverüberlastung,                                Prozess A              Betriebssystem-Kern      Prozess B
                                                                  d.h. ab der n-ten Verbindung wird der Request abgewiesen
                                                     • Ausführen von nicht-interaktiv ablaufenden Jobs (Batch-Jobs)                                                            A arbeitet, hat CPU,                            B steht, hat keine CPU,
                                                       zu bestimmten Zeiten (z.B. nachts ...)                                                                                  „aktiv“                                         im Zustand „bereit“
                                                                                                                                        Jobende

                                                                                 Nutzer                                                                                        Unterbrechung
                                                   Kurzzeitscheduling                         Langzeitscheduling        Kurzzeitscheduling
                                                                                                                                                                               A im Zustand bereit,   BS-Kern arbeitet,
                                                     • Das „eigentliche“ Scheduling:                                                                                                                  Scheduler & Dispatcher
                                                                                                                                                                               steht (keine CPU)
Edited by Foxit Reader




                                                       Strategie zur Zuweisung des (der) Prozessors (Prozessoren) an die Prozesse.                                                                    Zuweisung CPU an B
For Evaluation Only.




                                                     • Der Scheduler wählt somit aus der Menge der bereiten Prozesse den nächsten                                                                                              B im Zustand „aktiv,
                                                       Kandidaten für die CPU anhand einer bestimmten Strategie.                                                                                      Unterbrechung
                                                                                                                                                                                                                               Läuft jetzt auf CPU
                                                                                                                                                                                                      BS-Kern arbeitet
                                                                                                                                                                               Zuweisung CPU an A
                                                   Dispacher                                                                                                                                          hat CPU, aktiv
                                                                                                                                                                                                                               B steht, hat keine CPU,
                                                     • Die Durchführung der Zustandsübergänge selbst ist die Aufgabe des Dispatchers.                                          A arbeitet                                      im Zustand „bereit“
                                                                                                                                                                               hat CPU, aktiv
                                                     • Er stellt dafür entspr. Funktionen zur Verfügung, die von anderen Teilen der
                                                       Prozessverwaltung des Betriebssystems aufgerufen werden.
                                                    Prof. W. Burkard                                                                              67                Prof. W. Burkard                                                                     68




                                    Stichworte                                                                                                              Stichworte
                                                                                                                                                            Prozess A nimmt die Unterbrechung (gestrichelte Linie) nicht wahr!




                                    Notizen                                                                                                                 Notizen




                                                                                                                                                       67                                                                                                     68
Copyright(C) by Foxit Software Company,2005-2007



                                                                                 Scheduling                                                                      Zielkonflikte beim Scheduling
                                                   Sind mehrere Prozesse rechenbereit, muß das Betriebsystem den Prozeß bestimmen, der                 Alle Scheduling-Strategien versuchen, gewisse Ziele zu verwirklichen:
                                                      als nächster die CPU erhält.                                                                           s     Auslastung der CPU
                                                      ===> Dieser Teil des Betriebssystems wird SCHEDULER genannt.                                                         Dieses Betriebsmittel ist meistens am wenigsten vorhanden, also will man es möglichst
                                                      ===> Den angewendeten Algorithmus nennt man SCHEDULING-ALGORITHMUS.                                                  effizient gebrauchen.     Ziel ist 100%-ige Auslastung, (normal sind 40% - 90%)




                                                                                                                                                                                                  
                                                                                                                                                             s     Durchsatz (Throughput)
                                                   zu bewältigende Aufgabe:                                                                                                Die Zahl der Prozesse pro Zeiteinheit, die das System abwickelt soll maximal

                                                   In Mehrbenutzer-Timesharing-Systemen mischen sich unterschiedliche Anwendungen:                           s     Fairness
                                                                                                                                                                           Keine Bevorzugung eines Jobs, sofern nicht ausdrücklich gewünscht
                                                             - interaktive Anwendungen, die ständig mit dem Anwender kommunizieren
                                                                                                                                                             s     Ausführungszeit
                                                             - nicht-interaktive Anwendungen, die ständig im Hintergrund wirken (z.B. Email)
                                                                                                                                                                           soll minimal sein. Umfasst die Zeit von Jobstart bis Ende inkl. aller Wartezeiten etc.
Edited by Foxit Reader




                                                             - Stapeljobs werden asynchron (im Hintergrund) von Anwendern angestoßen
                                                                                                                                                             s     Wartezeit
For Evaluation Only.




                                                   Problem:
                                                                                                                                                                           in der Bereit-Liste soll minimal sein. Ist als einzigste direkt vom Scheduler beeinflussbar !!!
                                                   widersprüchliche Forderungen nach Fairneß, Effizienz, Antwortzeit, Verweilzeit, Durchsatz                 s     Antwortzeit (response time)
                                                   Merke:                                                                                                                  Zeit zwischen einer Eingabe und der Reaktion durch das System. Muss für interaktive
                                                                                                                                                                           Anwendungen unterhalb der menschlichen Wahrnehmungsgrenze liegen.
                                                   Ein Scheduling-Algorithmus, der einen Job-Typ bevorzugt, benachteiligt andere Job-Typen
                                                                                                                                                             s     Realzeit
                                                   (Da die CPU-Zeit endlich ist, muß die einem Anwender vermehrt gegebene Rechenzeit bei                               Garantierte Einhaltung der von Anwendungen vorgegebenen Realzeitanforderungen
                                                       den anderen eingespart werden)
                                                     Prof. W. Burkard                                                                   69              Prof. W. Burkard                                                                                            70




                                    Stichworte                                                                                                      Stichworte




                                    Notizen                                                                                                         Notizen




                                                                                                                                               69                                                                                                                        70
Prozeß                                                                                          Prozeß
                                                                                                                       ist
                                                                                                                     noch
                                                                                                                                           Prozesszustände und Übergänge                                              ist
                                                                                                                                                                                                                     nicht
                       Wie bekommt das BS die CPU ?                                                                  nicht
                                                                                                                    existent
                                                                                                                                                   am Beispiel Linux / Unix                                          mehr
                                                                                                                                                                                                                    existent

            Ausgangslage                                                                                                                                               blockiert
                           mit der Ausführung eines Tasks durch eine CPU übernimmt die zugehörige                                                     Erhalte Signal               Warte auf Ereignis               terminiert
                           Anwendung die Kontrolle über den Prozessor                                                Erzeugt (fork()
            Problem                                                                                                                                                                                       Prozeß
                                                                                                                                                                       zugeteilt                exit()
                                                                                                                                           idle        bereit                          aktiv              ist ein
                           Wie kann die Systemsoftware, also die Prozesse, die das Betriebssystem                                                                      entzogen
                                                                                                                                                                                                         „Zombi“
                           darstellen, wieder die Kontrolle über die CPU bekommen?
            drei Lösungen                                                                                                                            weitermachen                  Warte auf Eltern
                                                                                                                                                                       gestoppt
                       •   Die laufende Anwendung (der aktive Task) tätigt einen E/A-Zugriff. Durch diesen
                           Aufruf einer Funktion des Betriebssystems gelangt das BS wieder „an die Macht“.
                       •   Der laufende Prozess gibt die CPU „freiwillig“ auf, z.B. durch den Aufruf einer             •    Durch Aufruf des System-Calls fork() wird vom laufenden Task (von sich selbst!) eine
                           Betriebssystemfunktion „Ich will/muss jetzt warten“                                              Kopie gezogen und in die Bereit-Liste eingetragen ( quasi „Zellteilung“ bei Prozessen )
                       •   Ein asynchroner Hardware-Interrupt trifft die CPU und die zugehörige Service-               •    Dann gibt es zwei fast identische Prozesse, die beide aus dem fork()-Aufruf
                           Routine ist Teil des Betriebssystems                                                             zurückkehren
            Erkenntnis
                                                                                                                       •    Der Unterschied liegt im Rückgabewert von fork() : der Kindprozess erhält 0 zurück
                       •   Tritt keiner der drei Fälle ein, erlangt eine Anwendung das Ausführungsmonopol                   und erkennt daran, dass er der „Ableger“ ist. Der Elternprozess erhält die PID des
                           auf der CPU. Nutzt das BS Möglichkeit 3, so haben wir preemptives Scheduling,
                                                                                                                            Kindes und kann z.B. auf das Ende (exit()-Aufruf) des Kindes warten
                           sonst non-preemptives Scheduling           besondere Gefahr durch „schlechte
                                                                                                                            ( durch waitpid(PID) )
                                                               




                           Programme“
    Prof. W. Burkard                                                                                     71             Prof. W. Burkard                                                                              72




Stichworte                                                                                                         Stichworte




Notizen                                                                                                            Notizen




                                                                                                              71                                                                                                           72
Copyright(C) by Foxit Software Company,2005-2007

                                                         Erzeugung und Vernichtung eines Prozesses
                                                                                  am Beispiel Linux / Unix                                                                        Zombis unter Linux / Unix
                                                                                                                                                               •   Alle Prozesse in Unix stammen direkt oder indirekt von einem einzigen Prozess ab,
                                                                       Vaterprozess                                     Kindprozess
                                                      ...                                              ...                                                         dem init-Prozess mit der PID = 1
                                                      PID = fork()                                     PID = fork()
                                                      // Wer bin ich ?                                 // Wer bin ich ?                                        •   Alle Prozesse stehen also in einer Hierarchie zueinander
                                                      If ( PID == 0 )                                  If ( PID == 0 )
                                                          { // ich bin das Kind                            { // ich bin das Kind                               •   Beim „Sterben“ eines Kindprozesses wird der Elternprozess benachrichtigt
                                                            exec(“programm.exe“)                             exec(“programm.exe“)
                                                             ...                                              ...                                              •   Ist beim Ende des Kindes der Elternprozess nicht mehr existent, wird init benachrichtigt
                                                                                                                                            Kindprozess
                                                             exit();                  Elternprozess           exit();                       läuft in
                                                             ...                                              ...                                              •   In der Zeit zwischen dem exit()-Systemaufruf und dem Akzeptieren der Nachricht
                                                                                      überspringt if                                        das if
                                                          }                                                }                                hinein                 darüber beim Elternprozess gelangt der Kindsprozess in einen besonderen Zustand, er
                                                                                                       // ich bin der Vater
Edited by Foxit Reader




                                                      // ich bin der Vater                                                                                         wird zum Zombi
                                                      waitpid (PID);                                   waitpid (PID);
For Evaluation Only.




                                                      ...                                              ...                                                     •   Bleibt ein Prozess durch einen Fehler im Zombi-Zustand, kann er nur noch durch einen
                                                                                                                                                                   System-Neustart eliminiert werden
                                                    Wann erreicht der Kindprozess das obige exit(); ?           Nur bei Fehler im exec()-Aufruf !!!
                                                                                                             




                                                    Warum kann man sich beim if-Befehl den else-Teil sparen ?
                                                    Welchen Code führt der Kindprozess aus ?
                                                     Prof. W. Burkard                                                                           73             Prof. W. Burkard                                                                      74




                                    Stichworte                                                                                                             Stichworte
                                                   Wenn der Vaterprozess auf den Kindprozess wartet redet man von
                                                   syncronen Prozessen
                                                   Wenn der Vaterprozess und der Kindprozess nicht aufeinander warten,
                                                   sondern parallel ablaufen nennt man es asyncronen Prozess


                                    Notizen                                                                                                                Notizen




                                                                                                                                                      73                                                                                                  74
Prozesszustände und Übergänge
                                am Beispiel Windows 2000                                                                   non-preemptives Monoprozessor-Scheduling
 •   Komplexes Modell, da Kompatibilität
     zu vielen Prozessmodellen angestrebt                            swap out                                          q     Es gibt nur eine CPU
                                                   transition                       waiting
                                                                                                                       q     Die Prozesse werden vom BS nicht unterbrochen, geben die CPU also
 •   Spezielle Ausprägungen werden in
                                                                                e                                            entweder explizit freiwillig oder implizit durch Starten einer EA-Aktivität frei
     den NT-Subsystemen gekapselt                                           l et
                                                     swap in             mp             wait on object
                                                                      co
 •   Zur Erzeugung eines Tasks gibt es                          w ait                                                  Einfachstes Verfahren: FCFS = First Come, First Serve !
                                                                                                Exe
     nur einen einzigen Systemaufruf                                 preempt                   com cution              q     Teilt den Prozessor in der Reihenfolge des Auftragseingangs zu
     NTCreateProcess() bei dem die                  ready                           running        pl e
                                                                                                       tes             q     Einfache Schlangen-basierte Implementierung: Task am Schlangenkopf erhält stets die CPU

                                              t
                                            ar
     Initialisierung durch entspr.                             pre
     Code und der Elternprozess           st                      em
                                                                       pt
                                                                                                                       q     Kontextwechsel, wenn rechnender Task wegen EA eine blockierende BS-Funktion aufruft
                                                         sel                            dispatch                               nach Abschluss der EA wird der Task wieder an das Schlangenende eingefügt
     angegeben werden kann                                   ect




                                                                                                                              
                                           initialized                      standby                  terminated
                                                                                                                       q     Kontextwechsel, wenn rechnender Task CPU „freiwillig“ aufgibt
 •   Das Subsystem schafft die                                                                                                 Task wird SOFORT wieder am Schlangenende eingefügt, also sofortige Neubewerbung um CPU




                                                                                                                              
     geforderte Kompatibilität
                                                                   reinitialized                                       q     Konsequenzen:
 •   Beispiel: POSIX-Subsystem mit fork():                                                                                       s   Hohe CPU-Auslastung kann erreicht werden
     POSIX-Prozess ruft über API fork()-Befehl. Dadurch wird Nachricht über Kern an das POSIX-Subsystem
     geschickt. POSIX-Subsystem ruft NTCreateProcess() auf, gibt als ElternPID rufendes POSIX-Programm                           s   Alle anderen Kriterien werden aber nicht optimiert!
     an. Vom Kern zurückgelieferter Objektschlüssel (object handle) wird dann vom POSIX-System verwaltet.                        s   Wartezeiten hängen sehr stark von der aktuellen Lastsituation ab
     D.h. alle Systemaufrufe des POSIX-Programms werden als Nachrichten zum POSIX-Subsystem
                                                                                                                                 s   Mittlere Wartezeit u.U. sehr schlecht und Konvoi-Effekt (siehe Folgefolien!)
     gebracht, dort mit Hilfe von NT-Systemaufrufen erledigt und die Ergebnisse wieder im POSIX-Format an
     das rufende Programm zurückgegeben. Gleiches gilt für die anderen Subsysteme, siehe auch Folie 19 !
      Prof. W. Burkard                                                                                   75            Prof. W. Burkard                                                                             76




Stichworte                                                                                                         Stichworte




Notizen                                                                                                            Notizen




                                                                                                              75                                                                                                         76
Copyright(C) by Foxit Software Company,2005-2007



                                                          FCFS: Varianz bei der mittleren Wartezeit                                                                         FCFS: Konvoi-Effekt
                                                    q      Gegeben: 3 Threads mit CPU-Bursts von 24, 3 und 3 Zeiteinheiten                         q     Konvoi-Effekt =
                                                                                                                                                         trotz hoher CPU-Auslastung ist die Auslastung des Gesamtsystems eher gering
                                                    q      Mittlere Wartezeit , wenn CPU-Burst 24 zuerst dran ist: 17 (z.B. ms)
                                                                                                                                                   q     Negativer Effekt, der entsteht, wenn Threads mit langen CPU-Bursts und EA-intensive
                                                    q      Mittlere Wartezeit , wenn CPU-Burst 24 zuletzt dran ist: 3 (z.B. ms)                          Threads kombiniert auftreten.
                                                                                                                                                   q     Kurzlaufende IO-Prozesse können nicht genügend EA-Aktivitäten anstoßen, stehen
                                                                                                                                                         wieder in der Warteschlange  wenig nebenläufige EA im System !
                                                                                                                       (0+24+27) / 3 = 17




                                                                                                                                                                                      
                                                                           24 msec        3msec 3msec
Edited by Foxit Reader

For Evaluation Only.




                                                   3msec           3msec             24 msec                           (0+3+6) / 3 = 3




                                                     Prof. W. Burkard                                                                77            Prof. W. Burkard                                                                            78




                                    Stichworte                                                                                                 Stichworte
                                             Durch Verlegung des großen Prozesses wird die durchschnittliche
                                             Wartezeit von 17 auf 3 ms gesenkt.




                                    Notizen                                                                                                    Notizen




                                                                                                                                          77                                                                                                        78
Kooperatives Scheduling                                                                             Shortest Job First
                         die FCFS-Variante unter Windows 3.x                                                                                die Grundlagen
 q   Reihenfolge wird „kooperativ“ zwischen den aktuell ausgeführten Tasks ermittelt
                                                                                                    q      Prozessorzuteilung in der Reihenfolge wachsender CPU-Bursts
 q   Im Zentrum steht eine für alle Anwendungen globale Ereignisschlange                            q      Task mit dem kleinsten nächsten CPU-Burst erhält die CPU
 q   Grafiksystem erzeugt Ereignisse (Benutzereingaben durch Maus/Tastatur,                         q      Gibt es davon mehrere, wird FCFS verwendet
     Statusänderungen von Fenstern, ...), stellt diese an Ende der Ereignisschlange                 q      SJF versucht offensichtlich den Konvoi-Effekt von FCFS zu eliminieren
 q   Auch jede Anw. kann Ereignisse über zentrale Schlange an andere Anw. „senden“                            hohe Auslastung des Gesamtsystems




                                                                                                            
 q   Jedes Ereignis ist an bestimmten Prozess adressiert     der Ereignis-Empfänger                 q      SJF ist beweisbar optimal bezüglich der Wartezeit der Tasks!




                                                         
 q   Scheduler wählt stets den Prozess, der am Schlangenkopf der E.-Empfänger ist                   q      SJF minimiert die Verweilzeiten der Jobs/Tasks im System
 q   Konsequenz: gute Antwortzeiten sind nur möglich, wenn ALLE Anwendungen
     kooperativ sind, d.h. häufig die Kontrolle an andere Anwendungen abgeben                       Beispiel:                 Job A = 8 Minuten, Job B= 6 Minuten, Job C+D je 4 Minuten

                                                                                                               8 6         4 4 Min.
                                                                                                               A B C D                                                     4 4       6 8 Min.
                                                                                                    Verweilzeiten:                                                         C D B A
                                                                                                    A= 8 Min.                                       A=22 Min.
                                                                                                    B=14 Min.                                       B=14 Min.
                                                                                                    C=18 Min                                        C= 8 Min.
                                                                                                    D=22 Min.
                                                                                                    Durchschnitt: 15,5 Min.
                                                                                                                                                    D= 4 Min.
                                                                                                                                                    12 Min.
                                                                                                                                                                                   SJF
      Prof. W. Burkard                                                                 79               Prof. W. Burkard                                                                        80




Stichworte                                                                                       Stichworte




Notizen                                                                                          Notizen




                                                                                            79                                                                                                       80
Shortest Job First                                                                              Highest Response Ratio Next
                                                     die Probleme                                                                                               HRN

   q      SJF ist nur bedingt realisierbar !
   q      Warum ?             die Länge des CPU-Bursts ist vorher nicht bekannt!
                           




   q      Lösung: Näherungsweise Bestimmung (Approximation) der Dauer durch
                                                                                                                      q       Man schätze die Antwortzeit eines Tasks
              s   gemessene Dauer des letzten Bursts und dessen damaliger Schätzwert                                  q       Man schätze die Bedienzeit eines Tasks
              s   ... und Bildung eines Mittelwertes dazwischen:
                          Burst geschätzt,n+1 = α * Burst gemessen,n + (1- α) * Burst geschätzt,n
                                                                                                                      q       Man bilde den Quotienten Antwortzeit / Bedienzeit
              s   Der Faktor α liegt zwischen 0 und 1 und bestimmt,                                                   q       Man wähle den Prozess mit dem größten Quotienten
                  welchen Einfluss der zurückliegende Burst auf die Schätzung hat
                                                                                                                                     es werden Prozesse mit kurzen Bedienzeiten bevorzugt
   q      SJF existiert in nicht-preemptiver und preemptiver Variante




                                                                                                                                 
   q      Nicht-preemptive Variante: Während Prozess P2 läuft wird P1 rechenbereit und der                                           die Wartezeit von Tasks mit langen Bedienzeiten werden begrenzt,




                                                                                                                                 
          kalkulierte CPU-Burst von P1 ist kürzer als die Restlaufzeit von P2:
                                                                                                                                     da bei einer ständigen Benachteiligung deren Antwortzeit zunimmt!
             P1 kommt erst auf CPU, wenn der P2-Burst zu Ende ist (EA-Operation, Aufgabe der CPU)
           




   q      Preemptive Variante, Situation wie oben:
          Betriebssystem entzieht sofort P2 die CPU und lässt P1 laufen.
   q      Noch ein Problem mit SJF: Starvation (Verhungern): bereiter Task kommt nie dran, wenn
          viele kurze Prozesse im System zuströmen

       Prof. W. Burkard                                                                             81            Prof. W. Burkard                                                                       82




Stichworte                                                                                                    Stichworte




Notizen                                                                                                       Notizen




                                                                                                         81                                                                                                   82
Preemptive Scheduling Verfahren
Copyright(C) by Foxit Software Company,2005-2007



                                                                 Non-preemptiv Priority-Scheduling                                                                                          Round-Robin
                                                   grundlegende Idee: Die Prozesse sind unterschiedlich wichtig                                             q     einfaches Scheduling-Verfahren, fair, weit verbreitet ( RR = preemptives FCFS )
                                                                      und sollen daher öfter bzw. seltener die CPU erhalten.                                q     Jeder Prozeß erhält ein Zeitintervall Rechenzeit (Quantum)
                                                   Lösung:            Jedem Prozeß wird eine Priorität zugewiesen,                                          q     Nach Ablauf des Quantum wird der Prozessor entzogen und dem nächsten zugeteilt
                                                                      der ausführbereite Prozeß mit der höchsten Priorität erhält die CPU                   q     Wenn ein Prozeß blockiert oder zu Ende ist vor dem Ende des Quantums,
                                                   Problem:           sehr lange CPU-Nutzung hochpriorer Prozesse, Verhungern von Jobs                            erfolgt ebenfalls sofort ein Prozeßwechsel ( Kontextwechsel, Contextswitch)
                                                   Lösung:            dynamisches Ändern der Priorität während der Laufzeit       Aging                     q     Implizite Annahme: Alle Prozesse sind gleich wichtig!




                                                                                                                                
                                                   statische Prioritätszuweisung erfolgt durch den Anwender / Administrator                                 q     Problem: Wie lange soll das Quantum sein ??? (heute üblich 10 – 20 msec)
                                                             z.B. personengebunden ( Professor - Assistent - Student )
                                                                                                                                                                                      Liste der ausführbaren Prozesse ...
                                                   dynamische Prioritätszuweisung erfolgt durch das Betriebssystem
                                                                                                                                                                 ... vor dem Kontextwechsel                       ... nach dem Kontextwechsel
Edited by Foxit Reader




                                                             z.B. I/O-intensive Prozesse werden in der Prioriät erhöht
For Evaluation Only.




                                                                                                   Kopf der    rechenbereite                            Proz A      Proz B     Proz I   Proz P   Proz T      Proz B       Proz I   Proz P    Proz T    Proz A
                                                   Prioritätsklassen:                             Warteschl. Prozesse
                                                   Einteilung der Prozesse in
                                                                                                   Prio.3     Px      Pz           höchste Priorität
                                                   verschiedene Klassen von Prioritäten
                                                                                                                                                        Prozeß          nächster
                                                   ==> Prioritäts-Scheduling zwischen den Klassen Prio.2       Pk     Pn             Ps                   mit                                                 Prozeß        nächster
                                                                                                                                                                         Prozeß
                                                   ==> Round-Robin innerhalb der Klassen                                                                 CPU                                                    mit          Prozeß
                                                                                                     Prio.1      Pa            niedrigste Priorität                                                            CPU
                                                     Prof. W. Burkard                                                                       83              Prof. W. Burkard                                                                          84




                                    Stichworte                                                                                                         Stichworte
                                                                                                                                                       Wenn zwischen den Prozessen umgeschaltet wird entsteht eine Wartezeit.
                                                                                                                                                       Je kürzer die Bearbeitungszeit ist um so häufiger muss gewechslet werden.




                                    Notizen                                                                                                            Notizen




                                                                                                                                                 83                                                                                                        84
Preemptives Prioritäts-Scheduling
                                                   und

                        dynamic priority Round Robin (DPRR)                                                                     Multiple Warteschlangen
   grundlegende Idee beim preemptiven Prioritäts-Scheduling:                                                 q     Es gibt nur einen Hauptprozessor CPU in einem Monoprozessorsystem
                wie bei der non-preemptiven Variante                                                         q     Es gibt meist mehrere DMA-fähige Controller für schnelle EA-Geräte
   jetzt aber neu:
                                                                                                             q       das sind letztendlich eigene, spezialisierte Prozessoren, die man als
   Unterbrechung der aktuellen Prozessorzuordnung unmittelbar dann




                                                                                                                    
                                                                                                                   unabhängige Betriebsmittel betrachten kann
          s     wenn ein neuer Task mit höherer Priorität erzeugt wird                                       q     Idee: Einrichten einer separaten Warteschlange für jeden DMA-Controller
          s     wenn ein deblockierter Task mit höherer Priorität erneut rechenbereit wird
                                                                                                             q     Konsequenz: Dispatching in diesem System bedeutet Umhängen von Jobs aus einer
   DPRR:                                                                                                           Warteschlange in eine andere (mit kurzen CPU-Bursts, die dazwischen liegen)
          s     Erweiterung von RR durch eine vorgeschaltete Stufe
          s     Jeder Job hat eine bestimmte Priorität                                                                                              CPU                  Hauptprozessor
          s     In dieser Vorstufe gibt es eine prioritätsgesteuerte Warteschlange für die Jobs
          s     Die Priorität der Jobs in der Warteschlange wächst nach jeder Zeitscheibe, in der
                sie nicht berücksichtigt wurden                                                                                   DMA-Contr.                             EA-Festplatte 1
          s     Wird die Schwellenpriorität des eigentlichen RR-Verfahrens erreicht, wird der Job                                 DMA-Contr.                             EA-Festplatte 2
                in die Hauptwarteschlange des RR einsortiert
          s     Folge: RR-Verfahren wird direkt nicht verändert, aber trotzdem unterschiedliche                                   DMA-Contr.                             EA-Grafikkarte
                Bearbeitung der Jobs nach Systemprioritäten
                                                                                                                                  DMA-Contr.                             EA-CDROM
     Prof. W. Burkard                                                                        85              Prof. W. Burkard                                                                86




Stichworte                                                                                               Stichworte




Notizen                                                                                                  Notizen




                                                                                                    85                                                                                            86
Multilevel-Scheduling
Copyright(C) by Foxit Software Company,2005-2007


                                                                                                    und

                                                                            Multilevel-Feedback-Scheduling                                                                   Zweistufiges Scheduling
                                                     q         Kategorisierung der Jobs, d.h. für jede Job-Kategorie gibt es eine eigene
                                                               Warteschlange                                                                              Das zweistufige Scheduling transportiert Prozesse zwischen Hauptspeicher und
                                                                                                                                                             Festplatte und wählt nur aus den eingelagerten Prozessen zur Ausführung aus.
                                                     q         Jede Warteschlange hat ihre eigenes Scheduling-Verfahren
                                                     q         Ein übergeordnetes Scheduling-Verfahren wechselt zwischen den Warteschlangen               Scheduler der unteren Ebene: wählt zwischen den eingelagerten Prozessen aus
                                                     q         Können Jobs bei längerer Wartezeit in eine Warteschlange höherer Priorität                 Scheduler der oberen Ebene: tauscht Prozesse von RAM auf DISK und umgekehrt
                                                               wechseln spricht man von multilevel-feedback scheduling
                                                                                                                                                                  Hauptspeicher         Scheduler (obere Ebene):
                                                   Prio 0        Systemprozesse
                                                                                                                                                                                                                           Festplatte
                                                            
Edited by Foxit Reader




                                                                                                                                                                         Prozesse       lagert unter 1-4 Prozesse ein
For Evaluation Only.




                                                   Prio 1         Interaktive Jobs
                                                                                                                                                                           1: a
                                                            




                                                                                                                      CPU                                                                 Scheduler (untere Ebene):
                                                   Prio 2        allgemeine Jobs
                                                                                                                                                                           2: b
                                                            




                                                                                                                                                                            3: k                                           Prozessor
                                                   Prio 3        rechenintensive                                                                                            4: s          wählt Prozesse aus 1-4
                                                            




                                                                   Jobs
                                                      Prof. W. Burkard                                                                      87            Prof. W. Burkard                                                                  88




                                    Stichworte                                                                                                        Stichworte




                                    Notizen                                                                                                           Notizen




                                                                                                                                                 87                                                                                              88
Trennung von
                       Strategie und Mechanismus                                                                                       Scheduling in Unix
                                                                                                        q      Zentrale Multilevel-Warteschlange (mit meist 256 Elementen)
    Der Scheduler des Betriebssystems kennt nicht die Aufgabe eines Prozesses                           q      Jedes Element dieser zentralen Warteschlange ist selbst wieder eine
        ==> er kann also auch nicht anhand der prozeßspezifischen Aufgabenstellung                             Warteschlange, die nach Round Robin betrieben wird
              den Prozessor zuteilen !                                                                  q      Scheduler verwendet Aging-Verfahren um die Benachteiligung von
    Idee:     Betriebssystem stellt eine Schnittstelle (System-Calls) zur Verfügung,                           dialogorientierten Anwendungen durch RR zu verhindern:
              durch die Prozesse die Prioritäten anderer Prozesse beeinflussen können.                                 Erhöhung (Verschlechterung!) der Priorität eines Tasks




                                                                                                                  
    Resultat: Der Mechanismus des Kontextwechsels bleibt weiterhin im Betriebssystem                                   proportional zu seiner Prozessorauslastung (multilevel-feedback) d.h. Umhängen in
              und den Anwendungsprozessen verborgen, ABER                                                              andere Queue

        ==> Anwendungsprozesse können nach eigenen Verfahren/Algorithmen die
              Prozessorzuteilung steuern                                                                                   0                   PCB     PCB       q   UNIX-Scheduler durchsucht Liste oben bei 0
                                                                                                                                                                     beginnend und startet ersten gefundenen Job
                                                                                                                           1
                                                                                                 Real time                 2                 PCB     PCB         q   Jeder Task bekommt eine initiale Priorität
    Beispiel:
                                                                                                                           ...                                   q   Durch Warten steigt die Priorität
       Ein Datenbanksystem bestehe aus einem Vaterprozeß und einer Reihe von                                               127                                   q   „nice“ – Kommando erlaubt Usern ihre
       Kindprozessen für diverse Einzelaufgaben (Kommunikation mit Anwendungen,                                            128                 PCB    PCB            Anwendungen in der Priorität zu senken
       Caching der Daten, Locking-Mechanismen, Garbage-Collection) Der Vater kann                System                    ...
       dann z.B. die Priorität der Garbage-Collection reduzieren, wenn das DB-System                                       177
       viele Anfragen zu bearbeiten hat.                                                                                   178
                                                                                                 User                      ...
    Prof. W. Burkard                                                                   89               Prof. W. Burkard
                                                                                                                           255                                                                             90




Stichworte                                                                                       Stichworte




Notizen                                                                                          Notizen




                                                                                            89                                                                                                                  90
Kap3
Kap3
Kap3
Kap3
Kap3

Contenu connexe

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Kap3

  • 1. Das Prozeßmodell in Betriebssystemen Was bringen mehrere parallele Prozesse ? • alle ausführbaren Programme werden als sequentielle Prozesse gesehen Grundsätzliche Überlegung: • jeder Prozeß besitzt seinen (virtuellen) Prozessor und läuft (scheinbar) kontinuierlich ab In einem Prozeß wechseln sich Berechnungen und Ein/Ausgaben ab. Beispiel: Lesen von Daten von der Festplatte, modifizieren, dann speichern. Benötigt • die Prozesse laufen scheinbar parallel zueinander ab. Lesen und Speichern 40 msec, die Bearbeitung 10 msec dann wartet die CPU 80 %   ihrer Zeit untätig !!! • in Wirklichkeit aber wird der Prozessor “schnell” von Prozeß zu Prozeß geschaltet dies macht der Scheduler (Scheduling-Algorithmus) Multiprogramming-Grad V=3 Vorsicht bei Ein Prozeß verbringe den Bruchteil p D   seiner Zeit mit Warten auf Ein/Ausgabe. a-priori-Zeitannahmen in Prozeß Bei n Prozessen im Speicher, ist die V=2 Wahrscheinlichkeit, daß alle gleichzeitig Programmen !! C im Wartezustand sind pn. Die CPU-Auslastung ist dann 1 - pn V=1 B Problem: wachsende Verzögerung V A V=0 Zeit bei wachsender Prozesszahl n n–1 Vd = * k , bei n Tasks, die je k Zeit laufen und keine IO benötigen (reiner CPU-Burst) 2 Prof. W. Burkard 55 Prof. W. Burkard 56 Stichworte Stichworte Notizen Notizen 55 56
  • 2. Copyright(C) by Foxit Software Company,2005-2007 Performanceanalyse Die Realität: CPU-Bursts Jeder Prozeß besitze 20% CPU-Nutzung ( bzw. 80% sei Warten auf I/O ) q Sobald ein Prozess eine E/A-Operation veranlasst, wird er vom BS von der CPU genommen, und diese einem anderen Prozess gegeben. Der blockierte 160 20min Prozess wartet auf das Ende der reale CPU-Burst-Verteilung 15min gestarteten E/A 140 ohne dabei die CPU zu nutzen. 10min 120 10min q Ein Prozess wechselt somit ständig zwischen Abschnitten, in denen er die 100 CPU nutzt (CPU-Bursts) und solchen, in denen er E/A-Geräte benutzt (IO-Bursts). 80 q Beides gleichzeitig macht keinen Sinn, der Edited by Foxit Reader Prozess kann z.B. nicht weiterrechnen, 60 For Evaluation Only. wenn die Daten vom Datenträger noch 40 nicht da sind! q CPU- Bursts sind im Verhältnis zu 20 IO-Bursts sehr kurz: Dauer des Übliche Werte liegen im Bereich weniger 0 CPU-Burst Millisekunden, gegenüber IO-Bursts, 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 in msec 10:00h 10:32h die oft 100 mal länger sind ! Prof. W. Burkard 57 Prof. W. Burkard 58 Stichworte Stichworte Notizen Notizen von 10:00 bis 10:10 gibt es nur einen Prozess (1 .Spalte rechte Tabelle) von 10:10 bis 10:15 gibt es zwei Prozesse (2. Spalte rechte Tabellen) von 10:15 bis 10:20 gibt es drei Prozesse (3.Spalte rechte Tabelle) ab 10:20 gibt es vier Prozesse (4. Spalte rechte Tabelle) 57 58
  • 3. Copyright(C) by Foxit Software Company,2005-2007 Was ist eigentlich ein Prozeß ? ... und was ist dann ein Thread ? • Ein Prozess ist ein einzelner sequentieller Ablauf in einem Rechner, • Bei vielen Anwendungen werden keine völlig separaten Prozesse benötigt (ein ablaufendes Anwenderprogramm ist z.B. ein Benutzerprozess) • Dennoch will man innerhalb der einen Anwendung parallele Handlungen ermöglichen • Da alle Prozesse gleichzeitig stattfinden, müsste für jeden Prozess auch ein Prozessor Was heißt das ? vorhanden sein !? • Alle Handlungsfäden (= Threads) sollen im gleichen Prozesskontext ablaufen, somit • Die Anzahl der Prozesse schwankt aber im laufenden Betrieb und ist meist deutlich ein Adressraum für alle Threads größer als die Zahl der vorhandenen Prozessoren ! Was tun ?   Das Betriebssystem muss die vorhandenen Prozessoren auf die gegebenen Prozesse • Konsequenz: alle Threads haben zunächst uneingeschränkten gegenseitigen Zugriff auf verteilen. Dieses Zeitmultiplexverfahren wird Scheduling genannt. ihre Objekte und teilen sich die Ressourcen (geöffnete Dateien, Variablen, Code, ... ) • Dabei wird zu bestimmten Zeitpunkten ein sogenannter Kontextwechsel durchgeführt,d.h. Wie wird das implementiert? Edited by Foxit Reader der Zustand des aktuellen Prozesses wird gesichert und der früher gesicherte Zustand • Einfachste Lösung: die Threads übergeben sich gegenseitig reihum die Kontrolle eines anderen Prozesses wird wieder vom Prozessor übernommen. For Evaluation Only. (sogenanntes Coroutinen-Konzept)   • Benutzerprozesse führen Benutzeraufträge (Anwendungsprogramme) aus, Dann müssen alle Threads sich gegenseitig kennen, der Anwendungsprogrammierer muss ein Scheduling-Verfahren implementieren bzw. berücksichtigen Systemprozesse führen Dienste des BS aus, sind also Teil des Betriebssystems => schlechter Ansatz, besonders bei wachsender Thread-Anzahl • Jeder Prozess (NICHT Thread!) läuft in einem eigenen Prozessadressraum ab. Ein • Besser: keine Implementierung vom Anwendungsprogrammierer, sondern verfügbarer Prozess kann nur dann auf Objekte (z.B. Variablen ...) eines anderen Prozesses Dienst des BS. Dann werden die Umschaltzeiten zwar minimal länger, bleiben aber zugreifen, wenn das BS entsprechende Mechanismen hierfür zur Verfügung stellt immer noch deutlich unter dem Kontext-Switch von „richtigen“ Prozessen. Warum ? IPC = Inter-Process-Communication   Prof. W. Burkard 59 Prof. W. Burkard 60 Stichworte Stichworte Jedes Programm hat mindestens einen Thread, bei mehreren Threads nennt man das Multithreading. BSp.: Word ist 3 mal geöffnet mit jeweils einem Text mit mehreren 1000 Seiten, jedes Wort das das Wort Lehrling enthält soll automatisch in Azubi umgeändert werden. => Die Prozesse laufen nicht parallel ab, auch wenn es so aussieht. In Wirklichkeit wird im Millisekundenbereich gewechselt. Notizen Notizen 59 60
  • 4. Copyright(C) by Foxit Software Company,2005-2007 ... Kontextwechsel bei Threads Der Prozesskontext Der Prozesskontext umfasst alle Informationen, die das Betriebsystem über einen ODER: Prozess besitzt und ändert sich bei Prozessablauf ständig Was muss das Betriebssystem tun, wenn von einem Thread auf einen anderen Identifikatoren umgeschaltet wird ? • Name / ID des Prozesses • Jeder Thread hat Daten, die wirklich nur ihm zuzuordnen sind und in keiner Weise andere • Name des Benutzers, für den der Task gerade arbeitet Threads oder Tasks betreffen: • Name des Vaterprozesses • Das Prozessorstatuswort, also der gesamte Prozessorzustand (Inhalt der CPU-Register) • Namen der Sohn-Prozesse • Der Stackpointer, der auf das oberste Element im Stack (Stapel) zeigt Zustandsinformationen • Prozessorzustand ( alle Register, nur vorhanden wenn Prozess nicht aktiv ) • Der Program-Counter, der auf die nächste auszuführende Instruktion zeigt • Bearbeitungsstand ( Zustand des Tasks: blockiert, ready, ... ) • Diese drei Daten sind vom Scheduler zu sichern bevor der neue Thread geladen wird • Alarmzustand Edited by Foxit Reader • Dies kann in kürzester Zeit erfolgen, da es nur wenige Daten sind ! schnell • Beschreibung zugeordneter Objekte/Betriebsmittel For Evaluation Only.   Rechte • Zugriffsrechte auf Dateien • Zugriffsrechte auf Speichersegmente und Seiten bei Paging • Prozessprioritäten Betriebsmittelkonten • Abrechnungsdaten • Noch verfügbare Kontingente Prof. W. Burkard 61 Prof. W. Burkard 62 Stichworte Stichworte HERON-VERFAHREN AUF WIKIPEDIA NACHLESEN Notizen Notizen 61 62
  • 5. Copyright(C) by Foxit Software Company,2005-2007 Einfaches Prozess-Zustands-Modell Prozesszustände • ein Prozeß befindet sich immer in einem von drei möglichen zentralen Zuständen: aktiv / running / rechnend • AKTIV: ein Prozessor arbeitet die Instruktionen des Programmcodes gerade ab Prozesse in diesem Zustand sind im Besitz einer CPU und laufen gerade (bei einfachem Single-Prozessorsystem kann nur immer nur ein Task in diesem • BLOCKIERT: BS hat Befehlsabarbeitung wg. IO gestoppt, Prozessor wurde einem anderen Zustand sein Prozeß zugeteilt. Der blockierte Prozeß wartet auf ein (die Blockierung lösendes) Ereignis. blockiert / wartend / blocked • BEREIT: Prozeß könnte weiterlaufen, wartet auf Zuteilung des Prozessors durch das BS Prozesse, die darauf warten, dass eine E/A-Operation endet oder eine sonstige Systembedingung erfüllt wird, z.B. Eintreffen einer Nachricht... Prozeß Prozeß-Terminierung In diesem Zustand können sich stets beliebig viele Prozesse befinden. ist ng r- Diese Prozesse können nicht weiterlaufen, erst muss das „erlösende“ ilu so W aktiv te e s Ereignis stattfinden ar Edited by Foxit Reader zu roz te n bereit / rechenbereit / ready P au For Evaluation Only. S f B Er Prozesse in diesem Zustand sind potentiell ausführbar, aber derzeit nicht im h du r- ei rc ug so Besitz einer CPU. gn tz es Prozeß is Auch in diesem Zustand können sich stets beliebig viele Prozesse befinden. En roz ist P Prozeß-Erschaffung Diese Prozesse könnten jederzeit weiterlaufen und „hoffen“ auf CPU- bereit Prozeß Zuteilung durch den Scheduler ist blockiert Prof. W. Burkard 63 Prof. W. Burkard 64 Ereignis tritt ein Stichworte Stichworte SEHR WICHTIG Notizen Notizen 63 64
  • 6. Erweitertes Prozess-Zustands-Modell Prozesskontrollblock (PCB) Der PCB umfasst alle wichtigen Informationen aus dem Prozesskontext, • das einfache Modell muss erweitert werden, wenn durch Swapping ganze Prozesse damit das Betriebssystem die einzelnen Tasks verwalten kann: wegen Speichermangels auf die Festplatte ausgelagert werden (swap out) • PID = Process Identification • Speicherplatz zur Sicherung des • Bis zur erneuten Einlagerung (Swap in) kann keiner der betroffenen Threads ausgeführt Prozessorzustandes bei einem Kontextwechsel Prozessidentifikation werden. • Informationen über den Wartegrund, • Zustandsübergänge von allen drei bisherigen Zuständen sind möglich ! falls der Task blockiert ist Registerzustand (Ein- und Auslesen • Adressrauminformationen, z.B. einen Verweis bei Kontextwechsel) Prozeß Prozeß-Terminierung auf die oberste Seitentabelle ist ng r- • Weitere Zustandsinformationen und ilu so aktiv Statistiken für das Scheduling te e s Scheduling-Informationen W rei zu roz ar gn E Swap out te is P n Adressrauminformationen au S aktiv f ...Seitentabelle... B Prozeß h du r- ... rc ug so Prozeß ist tz es En roz ist ausgelagert bereit P bereit Prozeß Sonstiges ist Prozeß-Erschaffung Ereignis tritt ein blockiert Swap in blockiert Nächster PCB Prof. W. Burkard 65 Prof. W. Burkard 66 Stichworte Stichworte Notizen Notizen 65 66
  • 7. Copyright(C) by Foxit Software Company,2005-2007 Dispatcher und Scheduler Zeitlicher Ablauf beim Kontextwechsel Langzeitscheduling zeitliche Verschränkung der Prozessbearbeitung in einem Einprozessorsystem • Planen der Jobausführung: es sollen nur so viele Benutzer mit ihren Anwendungen neu ins System, wie das System verkraften kann. Begrenzung der Taskanzahl Zeit   Beispiel: ftp- oder www-Server Zugangskontrolle verhindert Serverüberlastung, Prozess A Betriebssystem-Kern Prozess B d.h. ab der n-ten Verbindung wird der Request abgewiesen • Ausführen von nicht-interaktiv ablaufenden Jobs (Batch-Jobs) A arbeitet, hat CPU, B steht, hat keine CPU, zu bestimmten Zeiten (z.B. nachts ...) „aktiv“ im Zustand „bereit“ Jobende Nutzer Unterbrechung Kurzzeitscheduling Langzeitscheduling Kurzzeitscheduling A im Zustand bereit, BS-Kern arbeitet, • Das „eigentliche“ Scheduling: Scheduler & Dispatcher steht (keine CPU) Edited by Foxit Reader Strategie zur Zuweisung des (der) Prozessors (Prozessoren) an die Prozesse. Zuweisung CPU an B For Evaluation Only. • Der Scheduler wählt somit aus der Menge der bereiten Prozesse den nächsten B im Zustand „aktiv, Kandidaten für die CPU anhand einer bestimmten Strategie. Unterbrechung Läuft jetzt auf CPU BS-Kern arbeitet Zuweisung CPU an A Dispacher hat CPU, aktiv B steht, hat keine CPU, • Die Durchführung der Zustandsübergänge selbst ist die Aufgabe des Dispatchers. A arbeitet im Zustand „bereit“ hat CPU, aktiv • Er stellt dafür entspr. Funktionen zur Verfügung, die von anderen Teilen der Prozessverwaltung des Betriebssystems aufgerufen werden. Prof. W. Burkard 67 Prof. W. Burkard 68 Stichworte Stichworte Prozess A nimmt die Unterbrechung (gestrichelte Linie) nicht wahr! Notizen Notizen 67 68
  • 8. Copyright(C) by Foxit Software Company,2005-2007 Scheduling Zielkonflikte beim Scheduling Sind mehrere Prozesse rechenbereit, muß das Betriebsystem den Prozeß bestimmen, der Alle Scheduling-Strategien versuchen, gewisse Ziele zu verwirklichen: als nächster die CPU erhält. s Auslastung der CPU ===> Dieser Teil des Betriebssystems wird SCHEDULER genannt. Dieses Betriebsmittel ist meistens am wenigsten vorhanden, also will man es möglichst ===> Den angewendeten Algorithmus nennt man SCHEDULING-ALGORITHMUS. effizient gebrauchen. Ziel ist 100%-ige Auslastung, (normal sind 40% - 90%)   s Durchsatz (Throughput) zu bewältigende Aufgabe: Die Zahl der Prozesse pro Zeiteinheit, die das System abwickelt soll maximal In Mehrbenutzer-Timesharing-Systemen mischen sich unterschiedliche Anwendungen: s Fairness Keine Bevorzugung eines Jobs, sofern nicht ausdrücklich gewünscht - interaktive Anwendungen, die ständig mit dem Anwender kommunizieren s Ausführungszeit - nicht-interaktive Anwendungen, die ständig im Hintergrund wirken (z.B. Email) soll minimal sein. Umfasst die Zeit von Jobstart bis Ende inkl. aller Wartezeiten etc. Edited by Foxit Reader - Stapeljobs werden asynchron (im Hintergrund) von Anwendern angestoßen s Wartezeit For Evaluation Only. Problem: in der Bereit-Liste soll minimal sein. Ist als einzigste direkt vom Scheduler beeinflussbar !!! widersprüchliche Forderungen nach Fairneß, Effizienz, Antwortzeit, Verweilzeit, Durchsatz s Antwortzeit (response time) Merke: Zeit zwischen einer Eingabe und der Reaktion durch das System. Muss für interaktive Anwendungen unterhalb der menschlichen Wahrnehmungsgrenze liegen. Ein Scheduling-Algorithmus, der einen Job-Typ bevorzugt, benachteiligt andere Job-Typen s Realzeit (Da die CPU-Zeit endlich ist, muß die einem Anwender vermehrt gegebene Rechenzeit bei Garantierte Einhaltung der von Anwendungen vorgegebenen Realzeitanforderungen den anderen eingespart werden) Prof. W. Burkard 69 Prof. W. Burkard 70 Stichworte Stichworte Notizen Notizen 69 70
  • 9. Prozeß Prozeß ist noch Prozesszustände und Übergänge ist nicht Wie bekommt das BS die CPU ? nicht existent am Beispiel Linux / Unix mehr existent Ausgangslage blockiert mit der Ausführung eines Tasks durch eine CPU übernimmt die zugehörige Erhalte Signal Warte auf Ereignis terminiert Anwendung die Kontrolle über den Prozessor Erzeugt (fork() Problem Prozeß zugeteilt exit() idle bereit aktiv ist ein Wie kann die Systemsoftware, also die Prozesse, die das Betriebssystem entzogen „Zombi“ darstellen, wieder die Kontrolle über die CPU bekommen? drei Lösungen weitermachen Warte auf Eltern gestoppt • Die laufende Anwendung (der aktive Task) tätigt einen E/A-Zugriff. Durch diesen Aufruf einer Funktion des Betriebssystems gelangt das BS wieder „an die Macht“. • Der laufende Prozess gibt die CPU „freiwillig“ auf, z.B. durch den Aufruf einer • Durch Aufruf des System-Calls fork() wird vom laufenden Task (von sich selbst!) eine Betriebssystemfunktion „Ich will/muss jetzt warten“ Kopie gezogen und in die Bereit-Liste eingetragen ( quasi „Zellteilung“ bei Prozessen ) • Ein asynchroner Hardware-Interrupt trifft die CPU und die zugehörige Service- • Dann gibt es zwei fast identische Prozesse, die beide aus dem fork()-Aufruf Routine ist Teil des Betriebssystems zurückkehren Erkenntnis • Der Unterschied liegt im Rückgabewert von fork() : der Kindprozess erhält 0 zurück • Tritt keiner der drei Fälle ein, erlangt eine Anwendung das Ausführungsmonopol und erkennt daran, dass er der „Ableger“ ist. Der Elternprozess erhält die PID des auf der CPU. Nutzt das BS Möglichkeit 3, so haben wir preemptives Scheduling, Kindes und kann z.B. auf das Ende (exit()-Aufruf) des Kindes warten sonst non-preemptives Scheduling besondere Gefahr durch „schlechte ( durch waitpid(PID) )   Programme“ Prof. W. Burkard 71 Prof. W. Burkard 72 Stichworte Stichworte Notizen Notizen 71 72
  • 10. Copyright(C) by Foxit Software Company,2005-2007 Erzeugung und Vernichtung eines Prozesses am Beispiel Linux / Unix Zombis unter Linux / Unix • Alle Prozesse in Unix stammen direkt oder indirekt von einem einzigen Prozess ab, Vaterprozess Kindprozess ... ... dem init-Prozess mit der PID = 1 PID = fork() PID = fork() // Wer bin ich ? // Wer bin ich ? • Alle Prozesse stehen also in einer Hierarchie zueinander If ( PID == 0 ) If ( PID == 0 ) { // ich bin das Kind { // ich bin das Kind • Beim „Sterben“ eines Kindprozesses wird der Elternprozess benachrichtigt exec(“programm.exe“) exec(“programm.exe“) ... ... • Ist beim Ende des Kindes der Elternprozess nicht mehr existent, wird init benachrichtigt Kindprozess exit(); Elternprozess exit(); läuft in ... ... • In der Zeit zwischen dem exit()-Systemaufruf und dem Akzeptieren der Nachricht überspringt if das if } } hinein darüber beim Elternprozess gelangt der Kindsprozess in einen besonderen Zustand, er // ich bin der Vater Edited by Foxit Reader // ich bin der Vater wird zum Zombi waitpid (PID); waitpid (PID); For Evaluation Only. ... ... • Bleibt ein Prozess durch einen Fehler im Zombi-Zustand, kann er nur noch durch einen System-Neustart eliminiert werden Wann erreicht der Kindprozess das obige exit(); ? Nur bei Fehler im exec()-Aufruf !!!   Warum kann man sich beim if-Befehl den else-Teil sparen ? Welchen Code führt der Kindprozess aus ? Prof. W. Burkard 73 Prof. W. Burkard 74 Stichworte Stichworte Wenn der Vaterprozess auf den Kindprozess wartet redet man von syncronen Prozessen Wenn der Vaterprozess und der Kindprozess nicht aufeinander warten, sondern parallel ablaufen nennt man es asyncronen Prozess Notizen Notizen 73 74
  • 11. Prozesszustände und Übergänge am Beispiel Windows 2000 non-preemptives Monoprozessor-Scheduling • Komplexes Modell, da Kompatibilität zu vielen Prozessmodellen angestrebt swap out q Es gibt nur eine CPU transition waiting q Die Prozesse werden vom BS nicht unterbrochen, geben die CPU also • Spezielle Ausprägungen werden in e entweder explizit freiwillig oder implizit durch Starten einer EA-Aktivität frei den NT-Subsystemen gekapselt l et swap in mp wait on object co • Zur Erzeugung eines Tasks gibt es w ait Einfachstes Verfahren: FCFS = First Come, First Serve ! Exe nur einen einzigen Systemaufruf preempt com cution q Teilt den Prozessor in der Reihenfolge des Auftragseingangs zu NTCreateProcess() bei dem die ready running pl e tes q Einfache Schlangen-basierte Implementierung: Task am Schlangenkopf erhält stets die CPU t ar Initialisierung durch entspr. pre Code und der Elternprozess st em pt q Kontextwechsel, wenn rechnender Task wegen EA eine blockierende BS-Funktion aufruft sel dispatch nach Abschluss der EA wird der Task wieder an das Schlangenende eingefügt angegeben werden kann ect   initialized standby terminated q Kontextwechsel, wenn rechnender Task CPU „freiwillig“ aufgibt • Das Subsystem schafft die Task wird SOFORT wieder am Schlangenende eingefügt, also sofortige Neubewerbung um CPU   geforderte Kompatibilität reinitialized q Konsequenzen: • Beispiel: POSIX-Subsystem mit fork(): s Hohe CPU-Auslastung kann erreicht werden POSIX-Prozess ruft über API fork()-Befehl. Dadurch wird Nachricht über Kern an das POSIX-Subsystem geschickt. POSIX-Subsystem ruft NTCreateProcess() auf, gibt als ElternPID rufendes POSIX-Programm s Alle anderen Kriterien werden aber nicht optimiert! an. Vom Kern zurückgelieferter Objektschlüssel (object handle) wird dann vom POSIX-System verwaltet. s Wartezeiten hängen sehr stark von der aktuellen Lastsituation ab D.h. alle Systemaufrufe des POSIX-Programms werden als Nachrichten zum POSIX-Subsystem s Mittlere Wartezeit u.U. sehr schlecht und Konvoi-Effekt (siehe Folgefolien!) gebracht, dort mit Hilfe von NT-Systemaufrufen erledigt und die Ergebnisse wieder im POSIX-Format an das rufende Programm zurückgegeben. Gleiches gilt für die anderen Subsysteme, siehe auch Folie 19 ! Prof. W. Burkard 75 Prof. W. Burkard 76 Stichworte Stichworte Notizen Notizen 75 76
  • 12. Copyright(C) by Foxit Software Company,2005-2007 FCFS: Varianz bei der mittleren Wartezeit FCFS: Konvoi-Effekt q Gegeben: 3 Threads mit CPU-Bursts von 24, 3 und 3 Zeiteinheiten q Konvoi-Effekt = trotz hoher CPU-Auslastung ist die Auslastung des Gesamtsystems eher gering q Mittlere Wartezeit , wenn CPU-Burst 24 zuerst dran ist: 17 (z.B. ms) q Negativer Effekt, der entsteht, wenn Threads mit langen CPU-Bursts und EA-intensive q Mittlere Wartezeit , wenn CPU-Burst 24 zuletzt dran ist: 3 (z.B. ms) Threads kombiniert auftreten. q Kurzlaufende IO-Prozesse können nicht genügend EA-Aktivitäten anstoßen, stehen wieder in der Warteschlange wenig nebenläufige EA im System ! (0+24+27) / 3 = 17   24 msec 3msec 3msec Edited by Foxit Reader For Evaluation Only. 3msec 3msec 24 msec (0+3+6) / 3 = 3 Prof. W. Burkard 77 Prof. W. Burkard 78 Stichworte Stichworte Durch Verlegung des großen Prozesses wird die durchschnittliche Wartezeit von 17 auf 3 ms gesenkt. Notizen Notizen 77 78
  • 13. Kooperatives Scheduling Shortest Job First die FCFS-Variante unter Windows 3.x die Grundlagen q Reihenfolge wird „kooperativ“ zwischen den aktuell ausgeführten Tasks ermittelt q Prozessorzuteilung in der Reihenfolge wachsender CPU-Bursts q Im Zentrum steht eine für alle Anwendungen globale Ereignisschlange q Task mit dem kleinsten nächsten CPU-Burst erhält die CPU q Grafiksystem erzeugt Ereignisse (Benutzereingaben durch Maus/Tastatur, q Gibt es davon mehrere, wird FCFS verwendet Statusänderungen von Fenstern, ...), stellt diese an Ende der Ereignisschlange q SJF versucht offensichtlich den Konvoi-Effekt von FCFS zu eliminieren q Auch jede Anw. kann Ereignisse über zentrale Schlange an andere Anw. „senden“ hohe Auslastung des Gesamtsystems   q Jedes Ereignis ist an bestimmten Prozess adressiert der Ereignis-Empfänger q SJF ist beweisbar optimal bezüglich der Wartezeit der Tasks!   q Scheduler wählt stets den Prozess, der am Schlangenkopf der E.-Empfänger ist q SJF minimiert die Verweilzeiten der Jobs/Tasks im System q Konsequenz: gute Antwortzeiten sind nur möglich, wenn ALLE Anwendungen kooperativ sind, d.h. häufig die Kontrolle an andere Anwendungen abgeben Beispiel: Job A = 8 Minuten, Job B= 6 Minuten, Job C+D je 4 Minuten 8 6 4 4 Min. A B C D 4 4 6 8 Min. Verweilzeiten: C D B A A= 8 Min. A=22 Min. B=14 Min. B=14 Min. C=18 Min C= 8 Min. D=22 Min. Durchschnitt: 15,5 Min. D= 4 Min. 12 Min. SJF Prof. W. Burkard 79 Prof. W. Burkard 80 Stichworte Stichworte Notizen Notizen 79 80
  • 14. Shortest Job First Highest Response Ratio Next die Probleme HRN q SJF ist nur bedingt realisierbar ! q Warum ? die Länge des CPU-Bursts ist vorher nicht bekannt!   q Lösung: Näherungsweise Bestimmung (Approximation) der Dauer durch q Man schätze die Antwortzeit eines Tasks s gemessene Dauer des letzten Bursts und dessen damaliger Schätzwert q Man schätze die Bedienzeit eines Tasks s ... und Bildung eines Mittelwertes dazwischen: Burst geschätzt,n+1 = α * Burst gemessen,n + (1- α) * Burst geschätzt,n q Man bilde den Quotienten Antwortzeit / Bedienzeit s Der Faktor α liegt zwischen 0 und 1 und bestimmt, q Man wähle den Prozess mit dem größten Quotienten welchen Einfluss der zurückliegende Burst auf die Schätzung hat es werden Prozesse mit kurzen Bedienzeiten bevorzugt q SJF existiert in nicht-preemptiver und preemptiver Variante   q Nicht-preemptive Variante: Während Prozess P2 läuft wird P1 rechenbereit und der die Wartezeit von Tasks mit langen Bedienzeiten werden begrenzt,   kalkulierte CPU-Burst von P1 ist kürzer als die Restlaufzeit von P2: da bei einer ständigen Benachteiligung deren Antwortzeit zunimmt! P1 kommt erst auf CPU, wenn der P2-Burst zu Ende ist (EA-Operation, Aufgabe der CPU)   q Preemptive Variante, Situation wie oben: Betriebssystem entzieht sofort P2 die CPU und lässt P1 laufen. q Noch ein Problem mit SJF: Starvation (Verhungern): bereiter Task kommt nie dran, wenn viele kurze Prozesse im System zuströmen Prof. W. Burkard 81 Prof. W. Burkard 82 Stichworte Stichworte Notizen Notizen 81 82
  • 15. Preemptive Scheduling Verfahren Copyright(C) by Foxit Software Company,2005-2007 Non-preemptiv Priority-Scheduling Round-Robin grundlegende Idee: Die Prozesse sind unterschiedlich wichtig q einfaches Scheduling-Verfahren, fair, weit verbreitet ( RR = preemptives FCFS ) und sollen daher öfter bzw. seltener die CPU erhalten. q Jeder Prozeß erhält ein Zeitintervall Rechenzeit (Quantum) Lösung: Jedem Prozeß wird eine Priorität zugewiesen, q Nach Ablauf des Quantum wird der Prozessor entzogen und dem nächsten zugeteilt der ausführbereite Prozeß mit der höchsten Priorität erhält die CPU q Wenn ein Prozeß blockiert oder zu Ende ist vor dem Ende des Quantums, Problem: sehr lange CPU-Nutzung hochpriorer Prozesse, Verhungern von Jobs erfolgt ebenfalls sofort ein Prozeßwechsel ( Kontextwechsel, Contextswitch) Lösung: dynamisches Ändern der Priorität während der Laufzeit Aging q Implizite Annahme: Alle Prozesse sind gleich wichtig!   statische Prioritätszuweisung erfolgt durch den Anwender / Administrator q Problem: Wie lange soll das Quantum sein ??? (heute üblich 10 – 20 msec) z.B. personengebunden ( Professor - Assistent - Student ) Liste der ausführbaren Prozesse ... dynamische Prioritätszuweisung erfolgt durch das Betriebssystem ... vor dem Kontextwechsel ... nach dem Kontextwechsel Edited by Foxit Reader z.B. I/O-intensive Prozesse werden in der Prioriät erhöht For Evaluation Only. Kopf der rechenbereite Proz A Proz B Proz I Proz P Proz T Proz B Proz I Proz P Proz T Proz A Prioritätsklassen: Warteschl. Prozesse Einteilung der Prozesse in Prio.3 Px Pz höchste Priorität verschiedene Klassen von Prioritäten Prozeß nächster ==> Prioritäts-Scheduling zwischen den Klassen Prio.2 Pk Pn Ps mit Prozeß nächster Prozeß ==> Round-Robin innerhalb der Klassen CPU mit Prozeß Prio.1 Pa niedrigste Priorität CPU Prof. W. Burkard 83 Prof. W. Burkard 84 Stichworte Stichworte Wenn zwischen den Prozessen umgeschaltet wird entsteht eine Wartezeit. Je kürzer die Bearbeitungszeit ist um so häufiger muss gewechslet werden. Notizen Notizen 83 84
  • 16. Preemptives Prioritäts-Scheduling und dynamic priority Round Robin (DPRR) Multiple Warteschlangen grundlegende Idee beim preemptiven Prioritäts-Scheduling: q Es gibt nur einen Hauptprozessor CPU in einem Monoprozessorsystem wie bei der non-preemptiven Variante q Es gibt meist mehrere DMA-fähige Controller für schnelle EA-Geräte jetzt aber neu: q das sind letztendlich eigene, spezialisierte Prozessoren, die man als Unterbrechung der aktuellen Prozessorzuordnung unmittelbar dann   unabhängige Betriebsmittel betrachten kann s wenn ein neuer Task mit höherer Priorität erzeugt wird q Idee: Einrichten einer separaten Warteschlange für jeden DMA-Controller s wenn ein deblockierter Task mit höherer Priorität erneut rechenbereit wird q Konsequenz: Dispatching in diesem System bedeutet Umhängen von Jobs aus einer DPRR: Warteschlange in eine andere (mit kurzen CPU-Bursts, die dazwischen liegen) s Erweiterung von RR durch eine vorgeschaltete Stufe s Jeder Job hat eine bestimmte Priorität CPU Hauptprozessor s In dieser Vorstufe gibt es eine prioritätsgesteuerte Warteschlange für die Jobs s Die Priorität der Jobs in der Warteschlange wächst nach jeder Zeitscheibe, in der sie nicht berücksichtigt wurden DMA-Contr. EA-Festplatte 1 s Wird die Schwellenpriorität des eigentlichen RR-Verfahrens erreicht, wird der Job DMA-Contr. EA-Festplatte 2 in die Hauptwarteschlange des RR einsortiert s Folge: RR-Verfahren wird direkt nicht verändert, aber trotzdem unterschiedliche DMA-Contr. EA-Grafikkarte Bearbeitung der Jobs nach Systemprioritäten DMA-Contr. EA-CDROM Prof. W. Burkard 85 Prof. W. Burkard 86 Stichworte Stichworte Notizen Notizen 85 86
  • 17. Multilevel-Scheduling Copyright(C) by Foxit Software Company,2005-2007 und Multilevel-Feedback-Scheduling Zweistufiges Scheduling q Kategorisierung der Jobs, d.h. für jede Job-Kategorie gibt es eine eigene Warteschlange Das zweistufige Scheduling transportiert Prozesse zwischen Hauptspeicher und Festplatte und wählt nur aus den eingelagerten Prozessen zur Ausführung aus. q Jede Warteschlange hat ihre eigenes Scheduling-Verfahren q Ein übergeordnetes Scheduling-Verfahren wechselt zwischen den Warteschlangen Scheduler der unteren Ebene: wählt zwischen den eingelagerten Prozessen aus q Können Jobs bei längerer Wartezeit in eine Warteschlange höherer Priorität Scheduler der oberen Ebene: tauscht Prozesse von RAM auf DISK und umgekehrt wechseln spricht man von multilevel-feedback scheduling Hauptspeicher Scheduler (obere Ebene): Prio 0 Systemprozesse Festplatte   Edited by Foxit Reader Prozesse lagert unter 1-4 Prozesse ein For Evaluation Only. Prio 1 Interaktive Jobs 1: a   CPU Scheduler (untere Ebene): Prio 2 allgemeine Jobs 2: b   3: k Prozessor Prio 3 rechenintensive 4: s wählt Prozesse aus 1-4   Jobs Prof. W. Burkard 87 Prof. W. Burkard 88 Stichworte Stichworte Notizen Notizen 87 88
  • 18. Trennung von Strategie und Mechanismus Scheduling in Unix q Zentrale Multilevel-Warteschlange (mit meist 256 Elementen) Der Scheduler des Betriebssystems kennt nicht die Aufgabe eines Prozesses q Jedes Element dieser zentralen Warteschlange ist selbst wieder eine ==> er kann also auch nicht anhand der prozeßspezifischen Aufgabenstellung Warteschlange, die nach Round Robin betrieben wird den Prozessor zuteilen ! q Scheduler verwendet Aging-Verfahren um die Benachteiligung von Idee: Betriebssystem stellt eine Schnittstelle (System-Calls) zur Verfügung, dialogorientierten Anwendungen durch RR zu verhindern: durch die Prozesse die Prioritäten anderer Prozesse beeinflussen können. Erhöhung (Verschlechterung!) der Priorität eines Tasks   Resultat: Der Mechanismus des Kontextwechsels bleibt weiterhin im Betriebssystem proportional zu seiner Prozessorauslastung (multilevel-feedback) d.h. Umhängen in und den Anwendungsprozessen verborgen, ABER andere Queue ==> Anwendungsprozesse können nach eigenen Verfahren/Algorithmen die Prozessorzuteilung steuern 0 PCB PCB q UNIX-Scheduler durchsucht Liste oben bei 0 beginnend und startet ersten gefundenen Job 1 Real time 2 PCB PCB q Jeder Task bekommt eine initiale Priorität Beispiel: ... q Durch Warten steigt die Priorität Ein Datenbanksystem bestehe aus einem Vaterprozeß und einer Reihe von 127 q „nice“ – Kommando erlaubt Usern ihre Kindprozessen für diverse Einzelaufgaben (Kommunikation mit Anwendungen, 128 PCB PCB Anwendungen in der Priorität zu senken Caching der Daten, Locking-Mechanismen, Garbage-Collection) Der Vater kann System ... dann z.B. die Priorität der Garbage-Collection reduzieren, wenn das DB-System 177 viele Anfragen zu bearbeiten hat. 178 User ... Prof. W. Burkard 89 Prof. W. Burkard 255 90 Stichworte Stichworte Notizen Notizen 89 90