Mindmap-Galerie Mindmap des Computer-Betriebssystems
Dies ist eine Mindmap über Computerbetriebssysteme, einschließlich Prozesse und Threads, Speicherverwaltung, Dateiverwaltung, E/A-Verwaltung usw. Ich hoffe, es hilft allen.
Bearbeitet um 2023-12-08 15:46:30Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Betriebssystem
Kapitel 1 Übersicht
Basiskonzept
Eine Sammlung von Programmen, die die Hardware- und Softwareressourcen des gesamten Computersystems steuert und verwaltet, Computerarbeit und Ressourcenzuweisung rational organisiert und plant und Benutzern praktische Schnittstellen und Umgebungen bietet.
Besonderheit
gleichzeitig
Innerhalb desselben Zeitintervalls treten mehrere Ereignisse auf
Anders als parallel Parallelität ist zugleich Parallelität
geteilt
sich gegenseitig ausschließendes Teilen
Innerhalb einer bestimmten Zeit darf nur ein Prozess auf Ressourcen zugreifen
Erst nachdem der Prozess auf die Ressource zugegriffen und diese freigegeben hat, kann ein anderer Prozess auf die Ressource zugreifen.
kritische Ressourcen
Für einen bestimmten Zeitraum ist nur einem Prozess der Zugriff gestattet
Zum Beispiel: physische Geräte, Stapel, Variablen, Tabellen usw.
Besuchen Sie gleichzeitig
Ermöglichen Sie den „gleichzeitigen“ Zugriff mehrerer Prozesse über einen bestimmten Zeitraum
Gleichzeitig ist makroskopisch Auf der Mikroebene können sie abwechselnd auf Ressourcen zugreifen (Time-Sharing).
Die gemeinsame Nutzung von Ressourcen ist von der Parallelität des Programms abhängig. Wenn die Parallelität des Programms nicht zulässig ist, findet keine gemeinsame Nutzung von Ressourcen statt.
Zwei grundlegende Merkmale
virtuell
Entitäten werden zu logischen Gegenstücken
Gleichzeitige Ausführung über Multiprogramming
Verwenden Sie die Multiprogramming-Technologie, um eine physische CPU in mehrere logische CPUs aufzuteilen
virtuelle Technologie
Zeitmultiplex-Technologie
Zeit teilen
Raummultiplex-Technologie
virtueller Speicher
asynchron
Die Prozessabwicklung erfolgt nicht in einem Schritt, sondern im Stop-and-Go-Verfahren, da die Ressourcen begrenzt sind.
Das Betriebssystem dient als Schnittstelle zwischen dem Benutzer und dem Computer-Hardwaresystem
Wie Benutzer Computer nutzen
1) Befehlsschnittstelle
über den Befehlsinterpreter
Der Shell-Befehlsparser ist auch eine Befehlsschnittstelle
Online-Befehlsschnittstelle
Geeignet für Time-Sharing- und Echtzeitsysteme
Schwerpunkt auf Benutzerinteraktivität
Offline-Befehlsschnittstelle
Keine manuelle Bedienung erforderlich
für Batch-Verarbeitungssysteme
Zusammen mit den vorbereiteten Jobs werden sie an das System übergeben. Bei der Planung der Jobs steuert der Befehlsinterpreter des Systems die Ausführung.
2) Programmschnittstelle
Besteht aus Systemaufrufen
Verwenden Sie Systemaufrufe, um das Betriebssystem aufzufordern, Dienste dafür bereitzustellen
Das Betriebssystem stellt keine Systemaufrufe für den Systemcache bereit und der Cache ist für den Benutzer transparent.
Entwicklungspfad
1) Manuelle Betriebsphase
Derzeit gibt es kein Betriebssystem und alle Arbeiten werden manuell erledigt
2) Stapelverarbeitungsphase
Einspuriges Batch-Verarbeitungssystem
1) Sequenzialität
2) Automatismus
3) Unidirektionalität
Im Speicher wird nur ein Programm ausgeführt
Mehrkanaliges Stapelverarbeitungssystem
durch Multiprogramming-Techniken
Mehrere Programme gelangen gleichzeitig in den Speicher und werden abwechselnd innerhalb der CPU ausgeführt.
Gemeinsame Hardware/Software
Wenn ein Programm aufgrund von E/A angehalten wird, führt die CPU sofort ein anderes Programm aus.
per Interrupt
Vorteil
1) Mehrere Kanäle
2) Makroparallelität
3) Mikroseriell
4) Hohe Auslastung und großer Durchsatz
Nachteile: Lange Reaktionszeit, keine menschliche Interaktion möglich, keine Kontrolle über den Computer
3) Time-Sharing-Betriebssystem
Mehrere Benutzer teilen sich gleichzeitig einen Host über das Terminal
Durch Zeitscheibenrotation
Verwirklichen Sie die Mensch-Computer-Interaktion
1) Gleichzeitigkeit
2) Interaktivität
3) Unabhängigkeit
Mehrere Benutzer arbeiten unabhängig voneinander, ohne sich gegenseitig zu stören
4) Aktualität
Erhalten Sie in kurzer Zeit eine Antwort
4) Echtzeit-Betriebssystem
Erledigen Sie dringende Aufgaben (präventive Aufgaben mit hoher Priorität) innerhalb eines bestimmten Zeitlimits. Es ist keine Zeitscheiben-Warteschlange erforderlich
5) Netzwerkbetriebssystem und verteiltes Computersystem
Netzwerkbetriebssystem
Jeder Computer ist organisch integriert
verteiltes Computersystem
Jeder Computer hat den gleichen Status
6) Personalcomputer-Betriebssystem
Win, Linux, Mac OS
Betriebsumgebung
Betriebsmodus des Prozessors
1) Privilegierte Anweisungen
Anweisungen, die Benutzer nicht verwenden dürfen
IO-Befehl, Interrupt-Befehl setzen, Statuswort senden, Register speichern, Uhr einstellen
Kann nur im Kernel-Modus ausgeführt werden
2) Nichtprivilegierte Anweisungen
Anweisungen, die Benutzern die Verwendung ermöglichen
Kein direkter Zugriff auf Systemhardware- und Softwareressourcen
Erlauben Sie nur den Zugriff auf den Benutzeradressraum
Systemaufruf
Trap-Anweisungen, auch Zugriffsverwaltungsanweisungen genannt, werden verwendet, um Systemaufrufe zu initiieren und das System zur Bereitstellung von Diensten aufzufordern.
Es wird im Benutzermodus verwendet. Es handelt sich also nicht um eine privilegierte Anweisung
Das Programm läuft im Benutzermodus
Kernel-Programme werden im Kernel-Modus ausgeführt
Die Anweisung zum Wechsel in den Benutzermodus ist eine privilegierte Anweisung
Die Anwendung fordert über Zugriffsverwaltungsanweisungen Dienste vom Betriebssystem an, generiert ein Interrupt-Ereignis und konvertiert das Betriebssystem in den Kernel-Modus.
Der Ausführungsprozess verallgemeinerter Anweisungen (Systemaufrufbefehle) muss sich im Kernel-Status befinden. Und sein Aufruf kann im Benutzermodus oder im Kernelmodus erfolgen.
Der Wechsel vom Benutzermodus in den Kernelmodus muss einen Interrupt durchlaufen
Solange ein Interrupt auftritt, wechselt er zwangsläufig in den Kernel-Status.
Unterprogrammaufruf
Speichern Sie nur Haltepunkte
Nächste Anweisungsadresse
Benutzermodus → Kernmodus
Beispiel
Systemdienste anfordern
Es kommt zu einer Unterbrechung
Fehler im Benutzerprogramm
Benutzerprogramm möchte privilegierte Anweisungen ausführen
Die Konvertierung vom Benutzermodus in den Kernmodus wird durch die Hardware abgeschlossen
Dies muss durch Interrupts erreicht werden
Solange ein Interrupt auftritt, muss dieser verarbeitet und in den Kernel-Zustand konvertiert werden.
Wenn der Benutzerstatus in den Kernstatus wechselt, wird nicht nur der Status geändert, sondern auch der Stapel in den Systemstapel umgewandelt.
Uhrverwaltung
Implementieren Sie die Prozessumschaltung durch Clock-Interrupt-Management
Taktunterbrechung
Verarbeiten Sie zeitbezogene Informationen, um zu entscheiden, ob der Scheduler ausgeführt werden soll
Systemzeit, Zeitscheibe, Verzögerung, CPU-Nutzungszeit, Timer usw.
Unterbrechungen und Ausnahmen
unterbrechen (externer Interrupt)
Das Betriebssystem kann nicht ohne Unterbrechungen arbeiten
Nur ein kleiner Teil der Funktion gehört zum Kernel und schützt und stellt Interrupt-Szeneninformationen wieder her. Übergeben Sie die Kontrolle an den entsprechenden Handler
gespeicherte Daten
Hardware-Speicherung
PC
Statuswort PSW
Betriebssystem speichern
allgemeines Register x
abnormal (interner Interrupt)
Ungültiger Operationscode, Adresse außerhalb der Grenzen, Überlauf, Seitenfehler, Selbstfalle usw.
Systemaufruf, Zugriffsbefehl
Ausnahmen können nicht maskiert werden und sollten sofort behandelt werden, sobald sie auftreten.
Primitive
ist ein Verfahren
1) Unten im Betriebssystem
2) Das Programm läuft atomar
3) Das Programm hat eine kurze Laufzeit und häufige Aufrufe
4) Komponenten des Kernels
Führungsstil
Geräteverwaltung
Prozessmanagement
Speicherverwaltung
Betriebssystemstruktur
mehrschichtiger Ansatz
Es ist schwierig, jede Ebene zu definieren
Modular
Es ist schwierig, die tatsächlichen Anforderungen an Schnittstellen zwischen Modulen zu erfüllen
Makrokernel
Die Hauptfunktionsmodule laufen alle im Kernel-Zustand als eng verbundenes Ganzes.
Win, Linux, iOS, Android
Mikrokernel
Die Hauptfunktionen bleiben im Kernel erhalten und Funktionen, die nicht zur Ausführung im Kernelmodus erforderlich sind, werden in den Benutzermodus übertragen.
Der Dateidienst wird im Benutzermodus ausgeführt
Der Hauptnachteil sind Leistungsprobleme
Hongmeng OS
Betriebssystemstart
CPU aktivieren
Führen Sie die JMP-Anweisung aus, um zum BIOS zu springen
Registrieren Sie die Eintragsadresse des BIOS-Interrupt-Programms
Hardware-Selbsttest
Laden Sie das Betriebssystem auf die Festplatte
Laden Sie den Master Boot Record MBR
MBR enthält eine Hardware-Partitionstabelle
MBR überprüft die Partitionstabelle, um die aktive Partition zu finden, und überträgt das Startprogramm der Partition zur Ausführung in den Speicher.
Festplattenpartition scannen
Boot-Record PBR (Partition Boot Record) laden
Suchen und aktivieren Sie das Programm im Stammverzeichnis der Partition, die zum Booten des Betriebssystems verwendet wird
Bootmanager laden
Befindet sich auf der Festplatte und wird zum Booten des Betriebssystems verwendet
OS laden
virtuelle Maschine
Kapitel 2 Prozesse und Threads
Prozesse und Threads
Konzept
Prozesssteuerblockplatine
Ermöglichen Sie jedem Programm (einschließlich Daten), das an der gleichzeitigen Ausführung teilnimmt, die unabhängige Ausführung
PCB ist das einzige Zeichen für die Existenz des Prozesses
Prozessentität (Bild)
Es besteht aus drei Teilen: Programmsegment, relevantes Datensegment und PCB
Ein Prozess ist der laufende Prozess einer Prozessentität
Es handelt sich um eine unabhängige Einheit für die Ressourcenzuweisung und -planung im System.
Besonderheit
wird durch die gleichzeitige Ausführung mehrerer Programme verursacht
Dynamisch
Parallelität
Unabhängigkeit
Asynchronität
Prozessstatus und Übergänge
Ausführungsstatus→Blockierungsstatus
Schützen Sie den Tatort
Prozesszusammensetzung
Leiterplatte
Programmteil
Programmcodesegmente, die vom Prozess zur Ausführung durch die CPU geplant werden können
Datensegment
Prozesssteuerung
Programme zur Prozesssteuerung werden als Primitiven bezeichnet
Jeder übergeordnete und untergeordnete Prozess verfügt über eine eigene Leiterplatte
Der übergeordnete Prozess und der untergeordnete Prozess teilen sich einige Ressourcen, jedoch nicht den virtuellen Adressraum
Prozess beendet
Ereignis
Beenden Sie normal
anormales Ende
Eingreifen von außen
Verfahren
Platine abrufen, Status lesen
Vorgang beenden
Geben Sie Ressourcen für andere Prozesse frei
oder an das Betriebssystem zurückgegeben
Beenden Sie alle untergeordneten Prozesse
Platine entfernen
Prozesskommunikation
Informationsaustausch zwischen Prozessen
Kommunikation auf niedrigem Niveau
PV-Betrieb
kann nicht unterbrochen werden
fortgeschrittene Kommunikation
Geteiltes Lager
Threads innerhalb eines Prozesses teilen sich natürlich den Prozessraum Der Prozessraum wird durch spezielle Systemaufrufe zwischen Prozessen geteilt.
Nachrichtenübermittlung
Der Datenaustausch erfolgt in formatierten Nachrichten
direkte Kommunikation
indirekte Kommunikationsmethode
Die Zwischeneinheit ist das Postfach
Rohrkommunikation
Die Daten werden in der Pipeline nach dem Prinzip „First in, first out“ verarbeitet
Die Pipe-Datei ist im Speicher vorhanden
Werden die Daten leer gelesen, blockiert der Lesevorgang
Auf Pipes kann nur durch den Erstellungsprozess zugegriffen werden
Gewöhnliche Rohre ermöglichen nur eine einseitige Kommunikation
Threads und Multithreading
Ist eine grundlegende CPU-Ausführungseinheit
Ist die kleinste Einheit des Programmausführungsablaufs
Der Thread-Kontrollblock TCB besteht aus
Thread-ID
Programm zähler
Registersatz
Stapelzusammensetzung
Threadspezifischer Speicherbereich
Im selben Prozess können mehrere Threads gleichzeitig ausgeführt werden
Nach Einführung von Threads
Der Prozess dient als Zuordnungseinheit für Systemressourcen außerhalb der CPU.
Threads als Zuordnungseinheiten des Prozessors
Der Prozess ist die Grundeinheit, die Ressourcen im System besitzt. Threads besitzen keine Systemressourcen.
Thread-Implementierung
Einstufung
Thread auf Benutzerebene
Die gesamte Arbeit wird von der Anwendung im Benutzerbereich erledigt
Thread-Switching erfordert keinen Kernel-Speicherplatz und hat einen geringen Overhead
Wählen Sie je nach Bedarf unterschiedliche Planungsalgorithmen
Wenn ein Thread auf Benutzerebene blockiert wird, wird auch der gesamte Prozess blockiert.
Threads auf Kernelebene
Abgeschlossen mit Betriebssystemunterstützung
Das Umschalten von Threads im selben Prozess erfordert den Wechsel vom Benutzermodus in den Kernelmodus, was teuer ist
Es kann geplant werden, dass mehrere Threads desselben Prozesses gleichzeitig parallel auf der CPU ausgeführt werden
Multithread-Modell
viele zu eins
Mehrere Benutzer sind einem Kern zugeordnet
Eins zu eins
viel zu viel
Prozessorplanung
Planungskonzepte
Wählen Sie nach einem bestimmten Algorithmus einen Prozess aus der Bereitschaftswarteschlange aus und weisen Sie ihm den Prozessor zu
Jobs und Prozesse
Jobs werden von Benutzern übermittelt und basieren auf Benutzeraufgaben. Der Prozess wird vom Betriebssystem generiert und ist die Grundeinheit für die Ressourcenzuweisung und den unabhängigen Betrieb.
Planungshierarchie
Erweiterte Terminplanung
Arbeit planen
Bei der Jobplanung handelt es sich um die Planung zwischen Arbeitsspeicher und Hilfsspeicher
Jeder Job wird nur einmal geladen und einmal geladen
Zwischenplanung
Speicherplanung
Programmaufruf und -einstieg
Verbessern Sie die Speichernutzung und den Systemdurchsatz
Prozesse, die vorübergehend nicht ausgeführt werden, werden im externen Speicher geplant und angehalten.
Low-Level-Planung
Prozessplanung
Die Häufigkeit der Prozessplanung ist hoch
Das Grundlegendste und Unverzichtbarste
Leistung
CPU-Auslastung
Effektive CPU-Arbeitszeit / (effektives Warten)
Seitenwechsel
Bearbeitungszeit = Auftragsabschlusszeit – Auftragsübermittlungszeit
Durchschnittliche Bearbeitungszeit = ∑Bearbeitungszeit / n
Gewichtete Bearbeitungszeit = Auftragsbearbeitungszeit / tatsächliche Auftragslaufzeit
Durchschnittliche gewichtete Bearbeitungszeit = ∑gewichtete Bearbeitungszeit / n
Wartezeit
Reaktionszeit
Planung der Umsetzung
Planer
Warteschlange
Dispatcher
Kontextumschalter
Führen Sie eine große Anzahl von Lade-/Speicheranweisungen aus und speichern Sie Registerinhalte
Zeitplanung, Schaltvorgänge und Prozesse planen
Situationen, in denen Planung und Wechsel nicht durchgeführt werden können
1) Während der Verarbeitung von Interrupts
2) Der Prozess befindet sich im kritischen Abschnitt des Systemkernels
Nachdem Sie den kritischen Abschnitt betreten haben, sperren Sie ihn. Prozesse sollten vor dem Entsperren nicht umgeschaltet werden
3) Während des atomaren Prozesses
Bei atomaren Prozessen werden sogar Interrupts maskiert
Situationen, die geplant und geändert werden können
Planung ohne Deprivation
Eine Planungsbedingung tritt ein und der aktuelle Prozess kann nicht fortgesetzt werden.
Deprivationsplanung
Die Unterbrechungsverarbeitung wird beendet
Die Falle endet
Planungsmethode
Nicht präventiv
Lassen Sie den aktuellen Prozess weiterlaufen, auch wenn ein Notfallprozess bereit ist
Präventiv
Notfallereignisse haben eine höhere Priorität
Abhängevorgang
Wenn keine anderen Prozesse auf dem System ausgeführt werden, aktivieren Sie den Leerlauf
Planung von zwei Threads
Benutzerlevel
Thread-Wechsel innerhalb desselben Prozesses unter Verwendung einer kleinen Anzahl von Maschinenanweisungen
Kernel-Ebene
Der Kernel wählt einen bestimmten Thread zur Ausführung aus und weist ihm eine Zeitscheibe zu
Planungsalgorithmus
Wer zuerst kommt, mahlt zuerst
unveräußerlicher Algorithmus
Der Algorithmus ist einfach und wenig effizient
Förderlich für ausgelastete CPU-Operationen Nicht förderlich für ausgelastete E/A-Vorgänge
Kurze Jobs zuerst
Jobs mit der kürzesten Laufzeit haben Vorrang
Nicht gut für lange Arbeiten
Die Dringlichkeit der Aufgabe wird nicht vollständig berücksichtigt
Durchschnittliche Wartezeit, niedrigste durchschnittliche Bearbeitungszeit
Prioritätsplanung
Je nach Auftragspriorität ausführen
Kann sowohl für die Prozessplanung als auch für die Jobplanung verwendet werden
Priorität
statische Priorität
Sobald es entschieden ist, kann es nicht mehr geändert werden
dynamische Priorität
Die Priorität kann je nach Situation angepasst werden
grundsätzlich
1) Systemprozess > Benutzerprozess
2) Interaktiver Prozess > nicht interaktiver Prozess
3) IO-Prozess > Rechenprozess
Weil das IO-Gerät langsamer ist als die CPU
Priorität mit hoher Rücklaufquote
Antwortverhältnis = (Wartezeit erforderliche Servicezeit) / erforderliche Servicezeit
Zeitscheibenrotation
für Time-Sharing-Systeme
Wenn die Zeitscheibe groß genug ist, dass alle Jobs innerhalb einer Zeitscheibe ausgeführt werden können, Der Zeitscheibenrotationsalgorithmus degeneriert zu „Wer zuerst kommt, mahlt zuerst“.
mehrstufige Warteschlange
Prozesse unterschiedlichen Typs oder unterschiedlicher Eigenschaften werden unterschiedlichen Bereitschaftswarteschlangen zugewiesen
Mehrstufige Feedback-Warteschlange
Mehrere Bereitschaftswarteschlangen mit jeweils unterschiedlichen Prioritäten
Die Größe der Prozesszeitscheiben jeder Warteschlange ist unterschiedlich
In jeder Warteschlange gilt: Wer zuerst kommt, mahlt zuerst
Warteschlangen werden nach Priorität geplant
Vergleichen
Prozessumschaltung
Kontextwechsel
Der Kontext bezieht sich auf: den Inhalt der CPU-Register und des Programmzählers zu einem bestimmten Zeitpunkt
Die CPU wechselt zu einem anderen Prozess und muss den Status des aktuellen Prozesses speichern und den Status des anderen Prozesses wiederherstellen.
Platine aktualisieren
Modusumschaltung
Umschalten zwischen Benutzermodus und Kernelmodus
Synchronisierung und gegenseitiger Ausschluss
Konzept
kritische Ressourcen
Es darf jeweils nur ein Prozess es verwenden
Wie Drucker, Variable, Daten
Eingangsbereich
Prüfen Sie, ob der kritische Abschnitt betreten werden kann
Kritischer Abschnitt
Der Code im Prozess, der auf kritische Ressourcen zugreift
Ausgangsbereich
Deaktivieren Sie die Markierung, dass auf den kritischen Abschnitt zugegriffen wird
verbleibende Fläche
der Rest des Codes
Prozesssynchronisation
direkte restriktive Beziehung
Die Beziehung zwischen Prozessen ist eine direkte Zusammenarbeit, und die Parallelität von Prozessen ist asynchron.
sich gegenseitig ausschließen
indirekte Einschränkungen
Wenn ein Prozess auf eine kritische Ressource zugreift, muss ein anderer Prozess warten
Kriterien
Freier Einlass
Wenn Sie beschäftigt sind, warten Sie
begrenzte Wartezeit
Garantiert, dass der kritische Abschnitt innerhalb einer begrenzten Zeit erreicht wird
Gib nach und warte
Wenn der Prozess den kritischen Abschnitt nicht betreten kann, wird der Prozessor sofort freigegeben, um zu verhindern, dass der Prozess mit Warten beschäftigt ist.
sich gegenseitig ausschließende Methoden
Methode zur Softwareimplementierung
Einzelmarkierungsmethode
Überprüfen Sie zuerst die Methode mit der doppelten Markierung
Doppelmarkierungsmethode nach der Inspektion
Peterson-Algorithmus
Um zu verhindern, dass zwei Prozesse in den kritischen Abschnitt gelangen und auf unbestimmte Zeit warten, wird die Variable turn gesetzt
Hardware-Implementierungsmethode
Methode zur Unterbrechungsmaskierung
Hardware-Befehlsmethode
testandset
tauschen
Vorteile von Hardware-Implementierungsmethoden
Funktioniert mit einer beliebigen Anzahl von Prozessen
Mangel
Hunger kann auftreten
Mutex-Sperre
erwerben
Sperre bekommen
freigeben
Sperre lösen
Signal
Der PV-Betrieb besteht eigentlich aus zwei unterbrechungsfreien Prozessen
Die p-Operation ist eine Warteoperation, was bedeutet, dass gewartet wird, bis die Ressource verfügbar ist. Wenn die Ressource nicht verfügbar ist, wechselt sie in den Blockierungsstatus. Der Prozess befindet sich während der p-Operation im laufenden Zustand
Die V-Operation ist eine einzelne Operation, was bedeutet, dass der Prozess eine Ressource freigibt, sodass die Anzahl der im System zur Zuweisung verfügbaren Ressourcen 1 beträgt
ganzzahliges Semaphor
Semaphor aufzeichnen
Verwendung von Semaphoren zur Erzielung einer Prozesssynchronisation
Verwendung von Semaphoren zur Implementierung des gegenseitigen Ausschlusses von Prozessen
Der Anfangswert des Mutex ist im Allgemeinen 1, was bedeutet, dass jeweils nur ein Prozess den kritischen Abschnitt betreten darf. Wenn der Wert 0 ist, bedeutet dies, dass ein Prozess in den kritischen Abschnitt eingetreten ist und kein Prozess außerhalb des kritischen Abschnitts wartet. Wenn der Mutex kleiner als 0 ist, bedeutet dies, dass sich im kritischen Abschnitt ein Prozess befindet. Der absolute Wert des Mutex gibt die Anzahl der Prozesse an, die außerhalb des kritischen Abschnitts warten.
Verwendung von Semaphor zur Implementierung des Vorläufers
Management
Tool zur Prozesssynchronisierung
Garantierter Prozess des gegenseitigen Ausschlusses
Kann Synchronisierung und gegenseitigen Ausschluss zwischen Prozessen erreichen
Es nutzt jeweils nur ein Prozess eine gemeinsam genutzte Ressource
Eine Datenstruktur, die eine gemeinsam genutzte Ressource darstellt, und ein Ressourcenverwaltungsprogramm, das aus einer Reihe von Prozeduren besteht, die diese gemeinsam genutzte Datenstruktur in Echtzeit bearbeiten
Das Signal unterscheidet sich vom V-Betrieb. Wenn kein Prozess aufgrund einer Bedingung blockiert ist, hat das Signal keine Wirkung.
Synchronisationsprobleme
Produzenten-Konsumenten-Problem
Leser-Schreiber-Problem
erstmal lesen
Schreiben Sie zuerst
Problem beim Essen der Philosophen
Mögliche Probleme: Wenn jeder nach Stäbchen greift (gieriger Algorithmus), kann es zu einem Deadlock kommen.
Raucherproblem
Sackgasse
Definition
Deadlock, der dadurch verursacht wird, dass mehrere Prozesse um eine Ressource konkurrieren
Ohne äußere Kräfte können diese Prozesse nicht weitergehen
Ursache
1) Wettbewerb um Systemressourcen
Unveräußerliche Ressourcen im System, deren Menge nicht ausreicht, um mehrere Prozesse zu erfüllen
2) Die Prozessfortschrittssequenz ist illegal
Falsche Reihenfolge beim Anfordern und Freigeben von Ressourcen
Notwendige Bedingungen für das Auftreten eines Deadlocks
1) Gegenseitig ausschließende Bedingungen
Eine bestimmte Ressource wird während eines bestimmten Zeitraums nur von einem Prozess belegt
2) Kein Entzug der Bedingungen
kann nicht durch andere Prozesse verhindert werden
3) Bedingungen anfordern und zurückhalten
Der Prozess hat eine Ressource belegt und gleichzeitig eine andere Ressource angefordert, und die belegte Ressource wird nicht freigegeben.
4) Warten in einer Schleife
Die von jedem Prozess belegten Ressourcen werden gleichzeitig vom nächsten Prozess angefordert
Strategie zur Handhabung von Deadlocks
1) Deadlock-Verhinderung
Zerstöre eine oder mehrere der vier notwendigen Bedingungen
1. Zerstörung der gegenseitigen Ausschlussbedingungen
Erlauben Sie die gemeinsame Nutzung von Systemressourcen
2. Zerstören Sie die Bedingungen der Nichtbenachteiligung
Geben Sie Prozesse frei, die Ressourcen belegen und nicht weiter ausgeführt werden können
3. Vernichten Sie die Anfrage und behalten Sie die Bedingung bei
Beantragen Sie alle erforderlichen Ressourcen auf einmal und nehmen Sie es nicht in Betrieb, bevor die Ressourcen erfüllt sind.
4. Unterbrechen Sie die Schleife und warten Sie
Übernehmen Sie eine sequentielle Ressourcenzuweisungsmethode
2) Vermeidung von Deadlocks
Verhindern Sie, dass das System in einen unsicheren Zustand übergeht
1. Systemsicherheitsstatus
Bevor das System Ressourcen zuweist, sollte es zunächst die Sicherheit der Zuteilung berechnen.
sicheren Zustand
Es darf kein Deadlock entstehen
nicht sicherer Zustand
Kann in eine Sackgasse geraten
2. Banker-Algorithmus
Verhindern Sie, dass das System in einen unsicheren Zustand übergeht
3) Deadlock-Erkennung und -Freigabe
Erkennen Sie das Auftreten eines Deadlocks und ergreifen Sie Maßnahmen, um den Deadlock zu beheben
Wenn das System bei der Zuweisung von Ressourcen zum Prozess keine Maßnahmen ergreift, sollten Methoden zur Deadlock-Erkennung und -Freigabe bereitgestellt werden.
Ressourcenzuteilungskarte
Die Kreise in der Box stellen Ressourcen dar
Vom Prozess zur Ressource gerichtete Edge-Call-Anfragen
Deadlock-Freigabe
1) Ressourcenmangel
Der Prozess, der den Deadlock blockiert, beansprucht seine Ressourcen und weist sie anderen Deadlock-Prozessen zu.
2) Machen Sie den Vorgang rückgängig
Brechen Sie einige oder sogar alle blockierten Prozesse gewaltsam ab und entziehen Sie ihnen Ressourcen
3) Prozess-Rollback
Lassen Sie einen blockierten Prozess so weit zurückrollen, dass der Deadlock vermieden wird
Vergleichen
Der Unterschied zwischen Deadlock und Hunger
Hunger
Die Ausführung eines Prozesses wird auf unbestimmte Zeit verschoben
Es kann nur einen Prozess geben, der in den Hungerzustand eintritt
Es kann bereit oder blockiert sein.
Sackgasse
Der Prozess ist in eine Sackgasse geraten und kann nicht voranschreiten.
Die Anzahl der Prozesse, die in einen Deadlock geraten, muss gleich oder größer als zwei sein
Der Prozess, bei dem ein Deadlock auftritt, muss sich in einem blockierten Zustand befinden
Kapitel 3 Speicherverwaltung
Konzept
Die Speicherverwaltung soll die gleichzeitige Ausführung mehrerer Programme besser unterstützen
Programmverknüpfung und -laden
Verknüpfung
statischer Link
Die Bibliotheksfunktion wird in ein Lademodul eingebunden und die relative Adresse wird geändert.
Dynamische Verknüpfung zur Ladezeit
Beim Laden in den Speicher beim Laden verknüpfen
Dynamische Laufzeitverknüpfung
Objektmodule, die während der Ausführung nicht verwendet werden, werden nicht in den Speicher geladen oder mit Modulen verknüpft.
Belastung
Auf jeden Fall montieren (statisch)
in der Programmierphase
Geeignet für einzelne Programme, logische Adresse und Speicheradresse sind genau gleich
Sie kann vom Programmierer oder durch Kompilierung oder Assemblierung bereitgestellt werden.
verschiebbare Last
statischer Umzug
Der Vorgang des Änderns der Anweisungen und Datenadressen im Zielprogramm während des Ladens wird als Verschiebung bezeichnet.
Nach dem Laden nicht ändern
Ändern Sie beim Laden die logische Adresse in die endgültige physische Adresse
Dynamisches Laden zur Laufzeit
dynamischer Umzug
Nachdem der Loader das Modul in den Speicher geladen hat, wandelt er die relative Adresse des geladenen Moduls nicht sofort in eine absolute Adresse um, sondern verschiebt den Konvertierungsprozess bis zur Ausführung.
Kann nach dem Laden ausgetauscht werden
Die Adressen nach dem Laden in den Speicher sind alle relative Adressen.
Speicherschutz
Addieren Sie die logische Adresse zum Verschiebungswert, um die physische Adresse zu erhalten
Das Grenzadressregister bestimmt, ob es außerhalb der Grenzen liegt
Das Laden des Verschiebungsregisters und des Grenzadressregisters muss privilegierte Anweisungen verwenden, die vom Betriebssystemkern ausgeführt werden und vom Benutzer nicht geändert werden dürfen.
Speicherfreigabe
Es können nur schreibgeschützte Bereiche freigegeben werden
Wiedereintrittsfähiger Code (reiner Code) ermöglicht den Zugriff durch mehrere Prozesse, erlaubt jedoch keine Änderung durch einen Prozess
Die Reentrant-Technologie reduziert die ein- und ausgehenden Codeübertragungen und verringert so die Anzahl der Swaps, um die Systemleistung zu verbessern.
Abdecken und tauschen
Abdeckung
Die Programmsegmente, auf die zugegriffen werden soll, werden in den Abdeckungsbereich gestellt, und andere Segmente werden in den externen Speicher gestellt. Das System muss sie in den Abdeckungsbereich übertragen, bevor es die ursprünglichen Segmente aufruft und ersetzt.
Austausch
Übertragen Sie das wartende Programm vom Speicher in den Hilfsspeicher, was einer Zwischenplanung entspricht
Kontinuierliches Allokationsmanagement
einzelne zusammenhängende Zuordnung
Der Systembereich wird vom Betriebssystem verwendet und im unteren Adressteil platziert.
Im Benutzerbereichsspeicher gibt es nur ein Benutzerprogramm
Nutzen Sie die Overlay-Technologie
Partitionsverwaltung
Die einfachste Speicherverwaltungslösung, die Multiprogrammierung zu den niedrigsten Kosten erfüllt
Feste Partitionszuordnung
Der Benutzerspeicher ist in mehrere Bereiche fester Größe unterteilt und jede Partition lädt nur einen Job.
Frage
1) Das Programm ist zu groß, um in eine Partition zu passen. Verwenden Sie daher die Überschreibtechnologie
2) Wenn das Programm zu klein ist und in der Partition abgelegt wird, kommt es zu einer internen Fragmentierung
Dynamische Partitionszuweisung
Im Laufe der Zeit entstehen im Speicher viele kleine Speicherblöcke, was als externe Fragmentierung bezeichnet wird
Durch kompakte Technik gelöst, bewegt und organisiert das Betriebssystem Prozesse
Allokationsstrategie
First-Fit-Algorithmus
Link in aufsteigender Reihenfolge der Adresse
Nachbaranpassungsalgorithmus
Bei der Speicherzuweisung beginnt die Suche an der Position, an der die letzte Suche endete.
Best-Fit-Algorithmus
Freie Partitionen bilden eine Kette freier Partitionen in der Reihenfolge zunehmender Kapazität.
Erzeugt die meisten äußeren Ablagerungen
Worst-Fit-Algorithmus
Bilden Sie eine Kette freier Partitionen in absteigender Reihenfolge der Kapazität
Erobern Sie die Erinnerung zurück
Freie Bereiche durch Spleißtechnik zusammenführen
1) Der Wiederherstellungsbereich grenzt an die vorherige freie Partition des Einfügepunkts
Führen Sie zwei Partitionen zusammen und ändern Sie die Größe des vorherigen Partitionstabelleneintrags auf die Summe der beiden
2) Der Wiederherstellungsbereich grenzt an die freie Partition nach dem Einfügepunkt
Die Größe des geänderten Partitionstabelleneintrags ist die Summe aus beiden
3) Der Wiederherstellungsbereich grenzt an die beiden Partitionen vor und nach dem Einfügepunkt
Ändern Sie die Größe des vorherigen Partitionstabelleneintrags auf die Summe der drei
Brechen Sie den nächsten Partitionstabelleneintrag ab
4) Der Recyclingbereich verfügt über keine angrenzenden freien Trennwände
Erstellen Sie einen neuen Tabelleneintrag für den Recyclingbereich, geben Sie die Startadresse und die Größe ein und fügen Sie die freie Partitionskette ein
Der vom System dem Benutzer bereitgestellte physische Adressraum entspricht der Gesamtraumgröße abzüglich der Länge der Seitentabelle oder Segmenttabelle.
Paginierungsverwaltung
Die Paging-Verwaltung führt zu interner Fragmentierung, jedoch nicht zu externer Fragmentierung
Ein Block in einem Prozess wird als Seite bezeichnet, und ein Block im Speicher wird als Seitenrahmen bezeichnet.
Die Adressstruktur bestimmt die Adressraumgröße des virtuellen Speichers
Das System erstellt für jeden Prozess eine Seitentabelle und die Seitentabelle wird im Speicher gespeichert.
Die Startadresse der Seitentabelle wird im Basisadressregister der Seitentabelle abgelegt
Sobald die Seitengröße bestimmt ist, haben alle Seiten die gleiche Größe (Potenz von 2).
Adressübersetzungsbehörde
Segmentierungsmanagement
externe Fragmentierung erzeugen
Kontinuierlich innerhalb eines Segments, es ist jedoch nicht erforderlich, dass es zwischen Segmenten kontinuierlich ist
Segmentierung ist, wenn Benutzer programmieren, das Programm entsprechend der Logik in mehrere logische Segmente unterteilt.
im Zusammenhang mit der logischen Struktur
Dynamische Verknüpfung, die Programme erleichtert
Segmentseitenverwaltung
interne Fragmentierung erzeugen
Das System erstellt eine Segmenttabelle für den Prozess und jedes Segment verfügt über eine Seitentabelle.
Segmentierter Ansatz zur Verwaltung und Zuweisung des Benutzeradressraums Paging-Methode zur Verwaltung und Zuweisung des physischen Adressraums
Ein Zugriff erfordert tatsächlich drei Zugriffe auf den Hauptspeicher.
Verwaltung des virtuellen Speichers
Besonderheit
mehrmals
Der Job wird in mehrere Male aufgeteilt und in den Speicher geladen.
Austauschbarkeit
Rufen Sie ungenutzte Programme und Daten aus dem Speicher ab
Virtualität
Erweitern Sie die Speicherkapazität logisch
Tatsächliche Kapazität des virtuellen Speichers ≤ Speicherkapazität externe Speicherkapazität
Die maximale Kapazität des virtuellen Speichers ≤ die maximale Kapazität, die die Adressbits des Computers aufnehmen können
Implementierung
1) Paging-Verwaltung anfordern
Erfordert Hardwareunterstützung
Speicher, externer Speicher, Interrupt-Mechanismus, Adresskonvertierung usw.
Seitentabellenmechanismus
Seitennummer, physische Blocknummer, Statusbit, Zugriffsfeld, Änderungsbit, externe Speicheradresse
Mechanismus zur Unterbrechung von Seitenfehlern
Wenn sich die Seite, auf die zugegriffen wird, nicht im Speicher befindet, wird ein Seitenfehler-Interrupt generiert und das System wird aufgefordert, sie in den Speicher zu übertragen.
Die Seitenfehlerrate wird von der Seitengröße, der Anzahl der zugewiesenen physischen Blöcke, dem Ersetzungsalgorithmus und der Programmierung beeinflusst.
Adressübersetzungsbehörde
Zuweisung von Seitenrahmen
Resident-Set
Eine Sammlung von Seitenrahmen, die einem Prozess zugeordnet sind
Je weniger Seitenrahmen einem Prozess zugewiesen sind, desto mehr Prozesse befinden sich im Hauptspeicher, wodurch sich die CPU-Auslastung verbessert.
Ein Prozess hat zu wenige Seiten im Hauptspeicher und die Seitenfehlerrate ist relativ hoch.
Speicherzuweisungsstrategie
1) Feste Zuordnung lokaler Ersatzkräfte
Weisen Sie dem Prozess eine bestimmte Anzahl physischer Blöcke zu. Wählen Sie nach dem Auftreten eines Seitenfehlers eine Seite aus der dem Prozess zugewiesenen Speicherseite aus und rufen Sie sie auf.
2) Globaler Ersatz der Variablenzuweisung
Weisen Sie eine bestimmte Anzahl physischer Blöcke zu, die entsprechend erhöht oder verringert werden kann Globaler Ersatz: Wählen Sie einen Block aus freien physischen Blöcken aus, weisen Sie ihn dem Prozess zu und übertragen Sie die fehlende Seite
3) Variabler Ersatz lokaler Ersatz
Wenn eine Seite fehlt, darf nur dieser Prozess eine Seite aus den Speicherseiten auswählen und aufrufen.
Algorithmus zum Laden physischer Blöcke
feste Allokationsstrategie
1) Durchschnittsverteilungsalgorithmus
2) Proportional verteilen
Proportional entsprechend der Prozessgröße zuweisen
3) Prioritätenverteilung
Zuteilung nach Dringlichkeit
Zeit, die Seite zu laden
Vor dem Laufen laden
Wird zur Laufzeit aufgerufen
Ersetzungsalgorithmus
1) Bester Ersatzalgorithmus
Eliminieren Sie Seiten, die nie verwendet werden oder die über einen längeren Zeitraum nicht verwendet wurden
2) First-In-First-Out-Algorithmus
Es kommt zu einer Belady-Anomalie
Die Anzahl der zugewiesenen physischen Blöcke nimmt zu und die Anzahl der Seitenfehler nimmt zu, anstatt zu sinken.
3) In letzter Zeit und über einen längeren Zeitraum nicht verwendet
Erfordert Hardwareunterstützung für Register und Stapel
Da es Seiten berechnen muss, die in letzter Zeit nicht besucht wurden, ist es teuer.
4) Taktalgorithmus
5) Verbesserter Taktalgorithmus
Änderungsbit hinzugefügt
Priorisieren Sie Seiten, die nicht verwendet oder geändert wurden
Beurteilung basierend auf Zugriffsbit A und Änderungsbit M
Jitter und Arbeitssatz
Nervosität
Die gerade ausgelagerte Seite muss sofort wieder eingelagert werden (Seiten werden häufig ein- und ausgelagert)
Hohe Seitenfehlerrate
Grund
Im System laufen zu viele Prozesse gleichzeitig und jedem Prozess sind zu wenige physische Blöcke zugeordnet.
Workingset
Eine Sammlung von Seiten, auf die ein Prozess innerhalb eines bestimmten Zeitraums zugreift
Vermeiden Sie Jitter
2) Segmentverwaltung anfordern
3) Segmentseitenverwaltung anfordern
Kapitel 4 Dokumentenverwaltung
Dateieigenschaften
Name
Typ
Schöpfer
Eigentümer
Standort
Größe
Schützen
Zeit
Datei ist ein abstrakter Datentyp, eine Datenstruktur
Dateikontrollblock FCB
Dateiverzeichniseintrag
Datenstruktur, die verschiedene von der Steuerdatei benötigte Informationen speichert
Zugriff mit Namen
Enthält: grundlegende Informationen, Zugangskontrollinformationen, Nutzungsinformationen
Indexknoten Inode
Dateiverzeichnis auf der Festplatte
Festplattenindexknoten
Jede Datei verfügt über einen eindeutigen Festplattenindexknoten
Primäre Kennung, Typ, Berechtigungen, physische Adresse, Länge, Linkanzahl, Zugriffszeit
Speicherindexknoten
Im Speicher gespeicherte Indexknoten
Beim Öffnen der Datei wird der Festplattenindexknoten auf den Speicherindexknoten kopiert.
Knotennummer, Status, Zugriffsanzahl, logische Gerätenummer, Linkzeiger
Dateioperationen
offen und geschlossen
Offen
Rufen Sie open auf, um das Verzeichnis anhand des Dateinamens zu durchsuchen, die Attribute der angegebenen Datei (einschließlich des physischen Speicherorts) vom externen Speicher in den Eintrag der offenen Dateitabelle im Speicher zu kopieren und die Eintragsnummer an den Benutzer zurückzugeben
Speichern Sie FCB in der Speicherdateiverzeichnistabelle
Schließung
Rufen Sie close auf, das System öffnet die Dateitabelle, um diesen Eintrag zu löschen
Wenn sich die Datei während des Leseaufrufs nicht im Speicher befindet, geht der Prozess in den Ruhezustand.
Dateischutz
Passwortschutz
Das Passwort wird im System gespeichert und ist nicht sicher genug.
Verschlüsselungsschutz
Verhindern Sie, dass Dateien gestohlen werden
Zugangskontrolle
Steuern Sie, wie Benutzer auf Dateien zugreifen
Die logische Struktur der Datei
Unstrukturierte Dateien (Streaming-Dateien)
Sequentiell in Datensätzen organisiert (geordnete Sammlungen)
Es gibt strukturierte Dateien (aufgezeichnete Dateien)
Sequenzdatei
String-Struktur
Sortiert nach Einzahlungszeit
sequentielle Struktur
Nach Stichwort sortieren
Indexdatei
Datensatzdatei mit fester Länge
Datensatzdatei mit variabler Länge
Sequentielle Suche
Indexsequenzdatei
N Datensätze werden in √N Gruppen unterteilt. Die Indextabelle enthält √N Einträge und insgesamt sind √N/2 √N/2 Suchvorgänge erforderlich.
direkte Datei/Hash-Datei
Anhand des Schlüsselwerts des Datensatzes oder des durch die Hash-Funktion transformierten Schlüsselwerts wird die physische Adresse des Datensatzes bestimmt.
Die physische Struktur der Datei
Zuweisung
kontinuierliche Zuordnung
Unterstützt sequentiellen Zugriff/wahlfreien Zugriff
Schnelle Zugriffsgeschwindigkeit
Das wiederholte Löschen von Dateien führt zu einer externen Fragmentierung
Das Hinzufügen, Löschen oder Ändern ist unpraktisch
Das Feld für die physische Dateiadresse im Verzeichniseintrag der Datei enthält die Adresse des ersten Blocks und die Länge des Dateizuordnungsbereichs.
Linkzuordnung
Diskrete Allokationsmethode
Äußere Ablagerungen werden entfernt
Umständlich zu überprüfen
impliziter Link
Nur für sequentiellen Zugriff geeignet
Das Verzeichnis enthält einen Zeiger auf den ersten Block der Datei und einen Zeiger auf den letzten Block
interne Fragmentierung erzeugen
expliziter Link
Eine Linktabelle, die Linkzeiger explizit im Speicher speichert, wird als Dateizuordnungstabelle (FAT) bezeichnet. Jeder Eintrag speichert die nächste Plattenblocknummer
Es gibt nur eine FAT auf der gesamten Festplatte und es handelt sich auch um eine Datenstruktur.
FAT-Einträge entsprechen eins zu eins den physischen Festplattenblöcken. Die spezielle Zahl -1 kann verwendet werden, um den letzten Block darzustellen, und andere Zahlen können verwendet werden, um anzuzeigen, dass der Festplattenblock nicht nur die Verbindungsbeziehung aufzeichnet jeden Block, markiert aber auch das freie Festplattenstück
Indexzuordnung
Unterstützt Direktzugriff
Der Zugriff ist nicht so schnell wie die kontinuierliche Zuweisung
kein äußerer Schmutz
Gemischte Indexallokation
Inhaltsverzeichnis
Verzeichnisaufbau
Einzelne Verzeichnisstruktur
Zugriff mit Namen
Die Suchgeschwindigkeit ist langsam, doppelte Namen sind nicht zulässig und das Teilen ist umständlich
Sekundäre Verzeichnisstruktur
Das Problem mit doppelten Namen wurde gelöst
Dateien können nicht klassifiziert werden, mangelnde Flexibilität
Baumverzeichnisstruktur
Der Zugriff auf Dateien durch einen Prozess entspricht dem aktuellen Verzeichnis.
Auf Zwischenknoten muss Schritt für Schritt über den Pfadnamen zugegriffen werden, was die Anzahl der Festplattenzugriffe erhöht.
Verzeichnisstruktur des azyklischen Graphen
Bei freigegebenen Dateien existiert nur eine echte Datei und alle Änderungen sind für andere Benutzer sichtbar.
Verzeichnisimplementierung
lineare Liste
Akzeptiert eine lineare Liste von Dateinamen und Zeigern
Die Verwendung einer Kettenstruktur kann die Zeit zum Löschen von Dateien verkürzen
Zeitaufwändige Suche
Hash-tabelle
Schnell finden
Konflikte müssen vermieden werden
Datenaustausch
statisches Teilen
Hardlink (basierend auf Indexknoten)
Die physische Adresse der Datei und die Dateiattributinformationen werden nicht mehr im Verzeichniseintrag, sondern im Indexknoten abgelegt.
Der Indexknoten verfügt außerdem über eine Zählung, die darauf hinweist, dass er von mehreren Benutzern gemeinsam genutzt wird.
Softlinks (mittels symbolischer Links)
Erstellen Sie eine Linkdatei und suchen Sie die Datei anhand des Pfadnamens in der Datei
Nur der Dateieigentümer hat einen Zeiger auf seinen Indexknoten Andere Benutzer haben nur den Pfadnamen dieser Datei
Jedes Mal, wenn Sie auf eine Datei zugreifen, müssen Sie die Festplatte mehrmals lesen, was teuer ist.
Wenn Sie Netzwerkdateien freigeben, müssen Sie lediglich die Netzwerkadresse des Computers, auf dem sich die Datei befindet, und den Namen des Dateipfads angeben.
dynamisches Teilen
Mehrere Benutzer bearbeiten gleichzeitig eine Datei
Dateisystem
Die Struktur des Dateisystems im externen Speicher
physisches Format
Sektoren aufteilen, fehlerhafte Sektoren überprüfen, fehlerhafte Sektoren ersetzen
Logische Formatierung
Festplattenpartition, vollständige Dateisysteminitialisierung jeder Partition
produzieren
Master-Boot-Record-MBR
Bestimmen Sie die aktive Partition und lesen Sie den Bootblock
Bootblock
MBR führt das Programm im Bootblock aus und startet das Betriebssystem
Superblock
Enthält alle wichtigen Informationen des Dateisystems. Beim ersten Start des Dateisystems wird der Superblock in den Speicher eingelesen.
Freiraumverwaltung
Wie zum Beispiel: Bitmap
i-Knotenbereich
Indexknoten werden kontinuierlich gespeichert und haben die gleiche Größe.
Wurzelverzeichnis
Die Struktur des Dateisystems im Speicher
Benutzerbereich
Dateideskriptor/Dateihandle
Kernelbereich
Verzeichnis-Cache
Tabelle der geöffneten Systemdateien
einziger
Der Benutzer öffnet die Dateitabelle
Enthält den Tabellenindex der geöffneten Systemdateien
virtuelles Dateisystem
Stellen Sie übergeordneten Benutzern eine einheitliche und standardmäßige Systemaufrufschnittstelle zur Verfügung Shield-Implementierungsunterschiede der zugrunde liegenden spezifischen Dateisysteme
Es ist erforderlich, dass die Dateien auf niedrigerer Ebene bestimmte Funktionen implementieren müssen
Jede geöffnete Datei erstellt einen V-Knoten im Hauptspeicher, der durch eine einheitliche Datenstruktur dargestellt wird
vnode existiert nur im Hauptspeicher Der Inode wird in den Hauptspeicher geladen und im externen Speicher gespeichert.
Dateisystem-Mounting (Installation)
Registrieren Sie das neu gemountete Dateisystem im virtuellen Dateisystem. Die Speicher-Mount-Tabelle enthält Informationen für jedes Dateisystem
Das neu gemountete Dateisystem muss dem virtuellen Dateisystem eine Funktionsadressliste bereitstellen.
Hängen Sie das Dateisystem am Einhängepunkt (übergeordnetes Verzeichnis) ein.
Dateispeicherverwaltung
Lagerraumaufteilung
Teilen Sie die physische Festplatte in Dateivolumes (logische Festplatte, logisches Volume) auf.
Ein Datei-Volume kann aus mehreren physischen Datenträgern bestehen
Initialisierung des Speicherplatzes
Initialisierung des Datei-Volumes
Verzeichnisbereich
Speichert Dateiverzeichnisinformationen (FCB), Informationen, die für die Speicherplatzverwaltung auf der Festplatte verwendet werden
Dateibereich
Dateidaten speichern
Raum-Management
freie Listenmethode
Gehört zur kontinuierlichen Zuordnungsmethode
Weisen Sie zusammenhängenden Speicherplatz für Dateien zu
Es können die erste Anpassung, die beste Anpassung und die schlechteste Anpassung verwendet werden
Recycling ist dasselbe wie dynamische Zuordnung
freie Listenmethode
Freie Scheibenkette
Verknüpfen Sie freie Festplattenblöcke wie eine verknüpfte Liste
Der freie Festplattenblock speichert einen Zeiger auf den nächsten freien Festplattenblock.
verteilen
Finden Sie mithilfe des Anpassungsalgorithmus die Plattenblöcke, die die Bedingungen erfüllen
Recyceln
Hängen Sie die recycelten Scheibenblöcke an das Ende der Kette
Zuteilung und Recycling sind einfach, aber ineffizient
freie Extent-Kette
Mehrere aufeinanderfolgende freie Festplattenblöcke bilden einen freien Festplattenbereich
Die Extent-Länge wird im ersten freien Festplattenblock im Extent aufgezeichnet und ist ein Zeiger auf den nächsten Extent.
verteilen
Normalerweise erste Anpassung
Recyceln
Rekultivierungsfläche mit angrenzenden freien Flächen zusammenführen
Zuteilung und Recycling sind mühsam, aber effizient
Bitmap-Methode
Verwenden Sie Binärbits, um anzugeben, ob ein Plattenblock verwendet wird
Scheibennummer b = n×i j
n stellt die Wortlänge dar
i steht für die Schriftgröße (Zeilennummer)
i = b/n
entfernen
j repräsentiert die Bitnummer (Spaltennummer)
j = b%n
Rest nehmen
Gilt sowohl für kontinuierliche als auch für diskrete Zuweisungen
Gruppenverknüpfungsmethode
Der Gruppenkettenblock (Superblock) wird zum Speichern der Blocknummer des freien Festplattenblocks und der Nummer der nächsten Gruppe freier Festplattenblöcke verwendet.
Die Blocknummer des freien Festplattenblocks ist die erste Festplattenblocknummer des Gruppenblocks (Ausdehnung).
Die Anzahl einer Gruppe ist begrenzt, z. B. dürfen nur 100 freie Plattenblöcke eine Gruppe bilden
Wenn für die nächste Gruppe kein freier Plattenblock vorhanden ist, wird die Blocknummer auf -1 gesetzt
verteilen
Ordnen Sie ab dem letzten Festplattenblock zu und ändern Sie die Anzahl der freien Festplattenblöcke im Superblock
Wenn ein bestimmter Block die nächste Informationsgruppe speichert, müssen die Informationen in den Superblock kopiert und dann zugewiesen werden.
Recyceln
Wenn der Superblock nicht voll ist
Fügen Sie dann den recycelten Block direkt nach dem Superblock ein
Wenn der Superblock voll ist
Methode zum Einfügen von Kopfzeilen im Stil einer verknüpften Liste
Scheibe
Struktur
Scheibe
Schiene
Sektor
Es ist ein Festplattenblock
Jeder Sektor hat die gleiche Kapazität und der innerste Sektor weist die höchste Dichte auf.
Scheibe
Jede Plattenoberfläche entspricht einem Magnetkopf
Zylinder
Spuren mit gleicher relativer Position auf allen Scheiben bilden einen Zylinder
Die Plattenadresse wird dargestellt durch (Zylindernummer-Plattennummer-Sektornummer)
Festplattenplanungsalgorithmus
Die für einen Lese- und Schreibvorgang erforderliche Zeit
Zeit suchen
Starten Sie den Kopfarm
Zeit genommen
beweglicher Kopf
Es dauert m, um eine Spur zu überspannen, und es müssen n Spuren überspannt werden.
=sm×n
Übertragungszeit
Lese-/Schreibzeit
Die Rotationsgeschwindigkeit beträgt r, die Anzahl der gelesenen und geschriebenen Bytes beträgt b und die Anzahl der Bytes auf jeder Spur beträgt N
= b/(r N)
Verzögerung
Die Plattengeschwindigkeit beträgt r
= 1/(2r)
Festplattenplanungsalgorithmus
Hat direkten Einfluss auf die Suchzeit
Wer zuerst kommt, mahlt zuerst
Kürzeste Suchzeit zuerst
Kann Hunger verursachen
Scan-Algorithmus
Der Magnetkopf kann sich nur in die entgegengesetzte Richtung bewegen, wenn er sich auf die innerste oder äußerste Spur bewegt.
Selbst wenn die äußerste oder innerste Schicht die Anfrage nicht verarbeitet, müssen Sie sich noch hierhin bewegen, bevor Sie beginnen, sich in die entgegengesetzte Richtung zu bewegen.
Verursacht keinen Hunger
Look-Algorithmus
Verbesserungen des Scan-Algorithmus
Wenn in der Richtung der Kopfbewegung keine weiteren Wünsche bestehen, können Sie die Richtung direkt ändern.
Zyklusscan (Aufzugsversand)
Lösen Sie das Problem der ungleichmäßigen Reaktion des Scan-Algorithmus auf verschiedene Positionen
Reagieren Sie bei der Rückkehr nicht auf etwaige Aufforderungen und begeben Sie sich direkt zum Startpunkt
Ändern Sie die Richtung erst, nachdem Sie sich bis zum äußersten Rand bewegt haben (identisch mit dem Scan-Algorithmus).
C-Look-Algorithmus
Verbesserungen beim Schleifenscan
Es ist nicht erforderlich, sich zum Rand zu bewegen, um die Richtung zu ändern. Die Bewegungsrichtung kann ohne weitere Anforderungen geändert werden.
Möglichkeiten zur Reduzierung der Latenz
alternative Nummerierung
Halten Sie logisch benachbarte Sektoren physisch getrennt
Falsche Benennung
Lassen Sie die Sektoren im selben Sektor gestaffelt sein (z. B. werden Sektor 0 und Sektor 1 durch Sektoren mit anderen Nummern getrennt).
Gestaltung der Adressstruktur
Zylindernummer-Scheibennummer-Sektornummer
Reduzierte Kopfbewegungszeit
Datenträgerverwaltung
Festplatteninitialisierung
physisches Format
Teilen Sie jede Plattenspur in Sektoren auf
Partition
Partitionieren Sie die Festplatte. Jede Partition besteht aus mehreren Zylindern
Logische Formatierung
Dateisystem erstellen
Bootblock
Beim Einschalten des Computers ist eine Reihe von Initialisierungsarbeiten erforderlich. Die Initialisierungsarbeiten werden durch Ausführen des Bootloader-Programms abgeschlossen.
Der komplette Bootloader wird im Startblock (Bootblock) der Festplatte gespeichert, der sich an einer festen Stelle auf der Festplatte befindet
Schlechte Blockverarbeitung
Fehlerhafte Blöcke sind Hardwarefehler
Für einfache Festplatte
Fehlerhafte Blöcke sind für das Betriebssystem undurchsichtig (werden markiert)
Für komplexe Festplatten
Sektorersatz
Bei komplexen Festplatten verwaltet der Festplattencontroller eine verknüpfte Liste fehlerhafter Blöcke, initialisiert sie während der physischen Formatierung und verwendet Ersatzsektoren, um fehlerhafte Blöcke zu ersetzen.
Solid-State-Laufwerk SSD
Prinzip
Basierend auf Flash-Speicher Gehört zum elektrisch löschbaren ROM (EEPROM)
Komposition
Flash-Übersetzungsschicht
Nummer des logischen Übersetzungsblocks
Finden Sie die entsprechende Seite
Speichermedium
Mehrere Flash-Speicherchips
Jeder Chip enthält mehrere Blöcke
Jeder Block enthält mehrere Seiten
Lese- und Schreibleistung
in Seiten
in Blöcken
Unterstützt Direktzugriff
Schnelle Lesegeschwindigkeit Langsame Schreibgeschwindigkeit
Vergleich mit mechanischer Festplatte
SSD liest und schreibt schneller als mechanische Festplatten und verfügt über Direktzugriff
SSD ist leise und geräuschlos
Ein bestimmter SSD-Block wird nach mehrmaligem Löschen beschädigt. Mechanische Festplattensektoren werden durch starkes Schreiben nicht beschädigt
Verschleißnivellierung
durchschnittliche Löschvorgänge über Blöcke hinweg
Dynamischer Verschleißausgleich
Geben Sie beim Schreiben von Daten den Flash-Speicherblöcken mit weniger Löschvorgängen Vorrang.
Statischer Verschleißausgleich
Für Lesevorgänge ist der alte Block zuständig. Der neue Block ist für Schreibvorgänge zuständig.
Statisch ist besser als dynamisch
Kapitel 5 IO-Management
Geräteklassifizierung
Gerät blockieren
Der Datenaustausch erfolgt blockweise
Hohe Übertragungsrate
Zeichengerät
Der Datenaustausch erfolgt in Zeichen
Die Übertragungsrate ist niedrig und nicht adressierbar
Gerät mit niedriger Geschwindigkeit
Maus und Tastatur
Mittelgeschwindigkeitsausrüstung
Drucker
Hochgeschwindigkeitsausrüstung
Diskettenlaufwerk, CD-Laufwerk
io-Schnittstelle
Gerätesteuerung
Befindet sich zwischen der CPU und dem Gerät
Schnittstelle zwischen Gerätecontroller und CPU
Enthält Datenleitungen, Adressleitungen, Steuerleitungen
Schnittstelle zwischen Gerätesteuerung und Gerät
Im Controller sind eine oder mehrere Geräteschnittstellen vorhanden
io-Logik
Verwirklichen Sie die Kontrolle über die Ausrüstung
Funktionen des Gerätecontrollers
Akzeptiert Befehle zur Identifizierung der CPU
Datenaustausch
Identifizieren und melden Sie den Gerätestatus
Adresserkennung
Datenpuffer
Fehlerkontrolle
io-Port
Register im Gerätecontroller, auf die die CPU direkt zugreifen kann
Mit anderen Worten: Mehrere IO-Ports bilden eine IO-Schnittstelle
Datenregister
Statusregister
Steuerregister
Kommunikationsmethode für CPU und E/A-Port
Unabhängige Adressierung
Weisen Sie jedem Port eine Portnummer zu und nur das Betriebssystem kann mithilfe spezieller IO-Anweisungen auf den Port zugreifen
Einheitliche Adressierung
Jedem Port wird eine eindeutige Speicheradresse zugewiesen
io-Steuerungsmethode
direkte Programmsteuerung
Die CPU prüft den Peripheriestatus in einer Schleife, bis sie feststellt, dass sich das Wort im Datenregister des IO-Controllers befindet
Unterbrechen Sie den Fahrbetrieb
Ermöglichen Sie Io-Geräten, den Betrieb der CPU aktiv zu unterbrechen und Dienste anzufordern. Dadurch wird die CPU entlastet
Unterbrechen Sie die CPU jedes Mal, wenn Daten übertragen werden müssen
DMA-Modus
Richten Sie einen direkten Datenaustauschpfad zwischen IO-Geräten und Speicher ein
Unterbricht die CPU am Ende des angeforderten Datenübertragungsstapels
Wenn die CPU einen Befehl ausgibt, kann sie nur aufeinanderfolgende Datenblöcke lesen oder schreiben.
Kanalsteuerungsmodus
Ein Prozessor, der speziell für die Ein- und Ausgabe verantwortlich ist
ist eine Art Hardware
Die CPU gibt einen IO-Befehl aus, der den Speicherort des Kanalprogramms und das auszuführende IO-Gerät angibt.
Der Kanal führt das Kanalprogramm im Speicher aus
Kanäle teilen sich den Speicher mit der CPU
io-Softwarehierarchie
Benutzer-IO-Software
Implementieren Sie die Spooling-Technologie
virtuelle Gerätetechnologie
Verbessern Sie die Nutzung exklusiver Ausrüstung
Konvertieren Sie ein exklusives Gerät in ein gemeinsam genutztes Gerät
Lösen Sie den Widerspruch zwischen hoher CPU-Geschwindigkeit und niedriger Geschwindigkeit des IO-Geräts
per Software
Erfordert technische Unterstützung für die Multiprogrammierung
Das System erschließt im festen Bereich der Scheibe zwei Bereiche, Eingangs- und Ausgangsbrunnen.
Öffnen Sie zwei Puffer im Speicher: Eingabepuffer und Ausgabepuffer
Gemeinsamer Drucker
Exklusives Gerät
Ein Gerät, das die serielle Nutzung durch einzelne Prozesse ermöglicht
Verwenden Sie die statische Zuordnung
Geteiltes Gerät
Ein Gerät, das die gemeinsame Nutzung durch mehrere Prozesse ermöglicht
Gleichzeitige Nutzung im Makrosinne Mikroskopisch gesehen alterniert es immer noch
Verwenden Sie die dynamische Zuordnung
Gemeinsame Druckprinzipien
Das System gibt die von jedem Benutzer benötigten Druckanforderungen in das Eingabefeld der Festplatte ein und nutzt den Geschwindigkeitsunterschied zwischen Festplatte, Speicher und CPU, um mikroskopische Abwechslung und makroskopische Gleichzeitigkeit zu erreichen
Geräteunabhängige Software (geräteunabhängige Software)
Unabhängigkeit
Das Gerät, mit dem der Benutzer programmiert, hat nichts mit dem tatsächlichen Gerät zu tun
Funktion
Logische Gerätetabelle verwalten
Richten Sie nur eine systemlogische Gerätetabellen-LUT ein
Richten Sie für jeden Benutzer eine logische Gerätetabellen-LUT ein
Fehlerkontrolle
Gerätezuteilung und Recycling
Bei der Zuteilung berücksichtigte Faktoren
Geräteintrinsische Eigenschaften
Gerätezuordnungsalgorithmus
Sicherheit bei der Gerätezuordnung
Sichere Vertriebsmethode
Nachdem der Prozess eine IO-Anfrage ausgegeben hat, wechselt er in den Blockierungsstatus und wird erst freigegeben, wenn der IO-Vorgang abgeschlossen ist.
CPU- und IO-Geräte werden zur Serienarbeit
Unsichere Zuordnungsmethode
Nachdem der Prozess eine IO-Anfrage ausgegeben hat, wird er weiter ausgeführt und kann weiterhin IO-Anfragen stellen. Er tritt nur dann in die Blockierung ein, wenn die IO-Anfrage nicht erfüllt werden kann.
Deadlock möglich
Allokationsstrategie
statische Zuordnung
Weisen Sie von Anfang an alle benötigten Ressourcen zu
dynamische Zuordnung
Setzen Sie die Zuordnung während der Prozessausführung nach Bedarf fort
Datenstruktur zur Gerätezuordnung
Beziehung zwischen Kanal, Controller und Gerät
Gerätesteuertabelle DCT
Stellt ein bestimmtes Gerät dar, und der Inhalt des Tabelleneintrags ist jedes Attribut des Geräts.
Controller-Steuertabelle COCT
Kanalsteuertabelle CHCT
Jeder Kanal entspricht einem CHCT
Systemgerätetabelle SDT
Einschließlich aller Geräte
Verbesserungen bei den Zuweisungsschritten
Vom Benutzer angegebener logischer Gerätename
Durch die Zuordnung logischer Gerätenamen und physischer Gerätenamen (Logical Device Table LUT)
Zu den LUT-Einträgen gehören logische Gerätenamen, physische Gerätenamen und Gerätetreiber-Eintragsadressen.
Pufferverwaltung
Zweck
Lösen Sie das Problem der Datenakkumulation, die dadurch verursacht wird, dass die Eingabe- und Ausgabegeschwindigkeit langsamer ist als die CPU-Verarbeitungsgeschwindigkeit
einzelner Puffer
Berechnen Sie die Verarbeitungszeit für jedes Datenelement
Nehmen Sie einen Anfangszustand an und berechnen Sie die Zeit, die benötigt wird, um diesen Zustand das nächste Mal zu erreichen
Die Zeit der Eingabe in den Puffer beträgt T, die Zeit der Übertragung des Puffers in den Arbeitsbereich beträgt M und die Zeit der Verarbeitung der Daten beträgt C
Ausgangszustand: Arbeitsbereich voll, Puffer leer
Zeitaufwand für die Verarbeitung jedes Datenblocks: MAX (C, T) M
Die Formel dient als Referenz, spezifische Probleme werden detailliert analysiert und ein Gantt-Diagramm wird verwendet.
Doppelte Pufferung
Der Arbeitsbereich ist leer, ein Puffer ist leer und ein Puffer ist voll.
Zeitaufwand für die Verarbeitung jedes Datenblocks: MAX (C M, T)
Pufferpool
Ermöglichen Sie gleichzeitige Prozesse für eine effiziente Eingabe und Ausgabe
Implementieren Sie die IO-Planung
Verwenden Sie einen Algorithmus, um eine gute Reihenfolge für die Verarbeitung von IO-Anfragen zu bestimmen
Geräteschutz
Geräte werden als spezielle Dateien betrachtet, jeder Datei wird FCB zugewiesen und Berechtigungen werden festgelegt
Gerätetreiber
Spezifische Kontrolle über Hardwaregeräte
Berechnen Sie die Zylindernummer, Kopfnummer, Sektornummer usw. der Festplatte, auf der sich die Daten befinden
Unterschiedliche Geräte erfordern unterschiedliche Treiber
io-API
Zeichengeräteschnittstelle
Get/Put-Aufruf, Lesen und Schreiben eines Zeichens in das Zeichengerät
Geräteschnittstelle blockieren
Systemaufruf lesen/schreiben: Zeichen lesen und schreiben suchen: Ändern
Netzwerkgeräteschnittstelle
Netzwerk-Socket-Schnittstelle Socket-Systemaufruf: Erstellen Sie einen Netzwerk-Socket und geben Sie das Netzwerkprotokoll an bind: Binden Sie den Socket an den lokalen Port Verbinden: Verbinden Sie den Socket mit der Remote-Adresse Lesen/Schreiben: Daten vom Socket lesen und schreiben
Blockierendes/nicht blockierendes io
Blockierung
Das Programm gibt einen io-Systemaufruf aus, der Prozess wird blockiert und wartet.
nicht blockierendes io
Das Programm gibt einen IO-Systemaufruf aus, und der Systemaufruf kann schnell zurückkehren, und der Prozess muss nicht blockiert und gewartet werden.