Operatingsystemgorithmen
Inhaltsverzeichnis
- Einführung
- Demonstration
- Algorithmen
- Lokales Setup
- Autor
- Lizenz
Einführung
- Mit Java erstellte Speicherzuweisungssimulator, um besser zu verstehen, wie Speicherzuweisung in einem Betriebssystem funktioniert. Es simuliert gemeinsame Strategien zur Zuordnung von Speicher :
- Erstanpass
- Best-fit
- Schlimmste angemessen
Dieses Repository enthält auch den Code für
- Planungsalgorithmen
- Seitenersatzalgorithmen
- Paging -Simulator
- Festplanungsrichtlinien
Demonstration
- Willkommen im Speicherzuweisungssimulator.
- Zunächst fragen wir, ob der Benutzer eine Werte eingeben möchte oder nicht, wenn nicht, dann sind einige Werte bereits hartcodiert.
- Die hartcodierten Werte sind wichtig für das Verständnis, Debuggen und Sparen von Zeit.

- Nachdem wir den Eingangswert der Speicherabteilungen, ihren aktuellen Status (frei/nicht frei) und die Prozessnummern übernommen haben, drucken wir die aktuelle Tabelle der Speicherzuweisung.

- Jetzt nehmen wir die Größe des Eingangsprozesses auf und ein Menü taucht auf.

- Ausgabe für die erste Passform

- Ausgabe für die beste Passform

- Ausgabe für die schlechteste Passform

Algorithmen
Ein einfaches Speicherzuweisungssimulatorium, das mit Java erstellt wurde, um besser zu verstehen, wie die Speicherzuweisung in einem Betriebssystem funktioniert. Es simuliert gemeinsame Strategien zur Zuordnung von Speicher :
- Erstanpass
- Im ersten Anpassungsansatz ist es, die erste freie Partition oder das erste Loch zuzuordnen, das groß genug ist, was den Prozess berücksichtigen kann.
- Vorteil : Es endet nach der Ermittlung der ersten geeigneten freien Partition. Schnellster Algorithmus, weil er so wenig wie möglich sucht.
- Nachteil : Interne Fragmentierung - Die verbleibenden nicht verwendeten Speicherbereiche, die nach der Zuordnung übrig sind, wenn sie zu kleiner ist. Daher kann die Anfrage nach größeren Speicheranforderungen nicht erreicht werden.
- Best-fit
- Die beste Passform befasst sich mit der Zuordnung der kleinsten freien Partition, die den Anforderungen des Antragsprozesses erfüllt. Dieser Algorithmus sucht zunächst die gesamte Liste freier Partitionen und berücksichtigt das kleinste Loch, das angemessen ist.
- Vorteil : Dann versucht es, ein Loch zu finden, das kurz vor der tatsächlichen Prozessgröße liegt. Die Speicherauslastung ist viel besser als zuerst geeignet, wenn die kleinste freie Partition zuerst verfügbar ist.
- Nachteil : Es ist langsamer und kann sogar dazu neigen, das Gedächtnis mit winzigen nutzlosen Löchern zu füllen.
- Schlimmste angemessen
- Im schlimmsten Anpassungsansatz ist es, den größten verfügbaren freien Teil zu finden, damit der links links von großer Bestandteil groß genug ist, um nützlich zu sein. Es ist das Gegenteil der besten Passform.
- Vorteil : Reduziert die Produktionsrate kleiner Lücken.
- Nachteil : Wenn ein Prozess, der einen größeren Speicher erfordert, zu einem späteren Zeitpunkt eintrifft, kann er nicht berücksichtigt werden, da das größte Loch bereits geteilt und besetzt ist.
Vor der Verarbeitung jeder Simulation muss der Benutzer die aktuelle Speicherabteilung/-zuweisung , IE -Speicherabteilung, Status und Prozessname eingeben.
Derzeit ist die Speicherallokation für das Speichern von Zeit und das einfache Debuggen dieses Beispiels hartcodiert .
Aktuelle Speicherzuweisung

Wenn der Eingangsprozess von einer Größe von 200 kb ist, dann:
Speicherzuweisung - zuerst angepasst

Speicherzuweisung - beste Passform

Speicherzuweisung - schlechteste Passform

Lokales Setup
- Laden Sie die neueste Version von Java - Java SE - Downloads | Orakel.
- Klon das Repository:
git clone https://github.com/tusharnankani/MemoryAllocationSimulator.git - Öffnen Sie dieses Verzeichnis in Befehls promt oder Shell.
- Kompilieren Sie die Datei mit dem Befehl:
javac MemoryAllocation.java - Führen Sie die Datei mit dem Befehl aus:
java MemoryAllocation
Autor
Tushar Nankani
LinkedIn | Twitter
Lizenz
GPU -Lizenz