Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Das System verfügt offensichtlich über viel Speicher, kann aber keinen großen Speicher zuweisen?

Das System verfügt offensichtlich über viel Speicher, kann aber keinen großen Speicher zuweisen?

Aug 01, 2023 pm 03:37 PM
linux

Die heutige Frage: Das System verfügt offensichtlich über viel Speicher, kann aber keinen großen Speicher zuweisen?

Warum ist das so?

Diese Frage betrifft einen Aspekt der Speicherverwaltung – Speicherfragmentierung

Was ist Speicherfragmentierung?

Speicherfragmentierung trat schon sehr früh in Linux auf. Wenn wir die Geschichte der frühen Speicherfragmentierung verstehen, können wir sie besser verstehen.

Angenommen, es gibt einen Speicherbereich von 32 MB. Das Betriebssystem verwendet zunächst den kleinsten Speicherbereich – 4 MB, und der verbleibende Speicher ist für 4 Prozesse reserviert, wie in Abbildung (a) dargestellt.

Das System verfügt offensichtlich über viel Speicher, kann aber keinen großen Speicher zuweisen?

Prozess A verwendet 10 MB Speicher über dem Betriebssystem, Prozess B verwendet 6 MB Speicher über Prozess A und Prozess C verwendet 8 MB Speicher über Prozess B, wie in Abbildung (b) dargestellt:

Das System verfügt offensichtlich über viel Speicher, kann aber keinen großen Speicher zuweisen?

Prozess D benötigt 5 MB Speicher, daher reicht der verbleibende Speicher nicht aus, um Prozess D zu laden. Dieses letzte Bit Speicher bildet die erste Lücke (Speicherfragmentierung). Angenommen, das Betriebssystem muss zu einem bestimmten Zeitpunkt Prozess D ausführen, da nicht genügend Speicher im System vorhanden ist. Daher muss es einen Prozess zum Auslagern auswählen, um genügend Platz für Prozess D zu schaffen. Nehmen Sie an, dass das Betriebssystem Prozess B zum Auslagern auswählt, sodass Prozess D in den Adressraum des ursprünglichen Prozesses B geladen wird und so ein zweites Loch entsteht, wie in Abbildung (c) dargestellt:

Das System verfügt offensichtlich über viel Speicher, kann aber keinen großen Speicher zuweisen?

Angenommen dass das Betriebssystem Zu einem bestimmten Zeitpunkt muss Prozess B ausgeführt werden und ein Prozess muss zum Auslagern ausgewählt werden. Unter der Annahme, dass Prozess A ausgelagert wird, erscheint ein „drittes Loch“ im Betriebssystem, wie gezeigt in Abbildung (d):

Das System verfügt offensichtlich über viel Speicher, kann aber keinen großen Speicher zuweisen?Mit der Zeit wird es immer mehr Speicherlücken geben, und auch die Speichernutzung wird abnehmen. Diese Speicherlücken werden oft als
Speicherfragmentierung

bezeichnet.

Das System verfügt offensichtlich über viel Speicher, kann aber keinen großen Speicher zuweisen?

Wenn Sie das sehen, wissen Sie bereits, was Speicherfragmentierung ist, und Sie verstehen auch einen Speicherverwaltungsmechanismus – eine dynamische Partitionierungsmethode. Das obige Beispiel ist eigentlich die „Dynamische Partitionierungsmethode“ In den frühen Tagen des Betriebssystems wurde die dynamische Partitionierungsmethode zur Speicherverwaltung verwendet.

Wie kann das Problem der Speicherfragmentierung gelöst werden?

Die Idee ist eigentlich ganz einfach:

Mehrere kleine Speicherblöcke zu einem großen Speicherblock zusammenfassen

. Frühe Betriebssysteme, die dynamische Partitionierungsmethoden verwendeten, um das Problem der Fragmentierung zu lösen,

haben den Prozess dynamisch verschoben, sodass der vom Prozess belegte Speicherplatz kontinuierlich ist und der gesamte freie Speicherplatz ebenfalls kontinuierlich ist

, so dass mehrere klein sind Speicherblöcke Füge es zusammen. Aber auch die Nachteile liegen auf der Hand: Die Prozessmigration nimmt viel Zeit in Anspruch.

Innere Fragmentierung und äußere Fragmentierung Es gibt zwei Arten der Speicherfragmentierung:

innere Fragmentierung

und äußere Fragmentierung

innere Fragmentierung

: der Teil des Speichers, der dem Programm zugewiesen ist, aber nicht verwendet

Externe Fragmentierung

: Kleine Speicherblöcke, die vom System nicht genutzt werden können (z. B. die durch die oben genannte dynamische Partitionierungsmethode erzeugte Fragmentierung)Heutzutage verwenden Betriebssysteme Paging- oder Segmentierungsmechanismen, um den Speicher zu verwalten, aber einige Es werden immer noch zwangsläufig Speicherfragmente erzeugt.

Um das Problem der internen und externen Fragmentierung zu lösen, hat Linux zwei Dinge eingeführt:

Buddy System

und slab.

Das Partnersystem wird zur Lösung des externen Fragmentierungsproblems und die Platte zur Lösung des internen Fragmentierungsproblems verwendet.

Das Partnersystem und die Platte sind auch Kerninhalte im Speichermanagement. Wenn Sie interessiert sind, können Sie es studieren.

Zusammenfassung Wenn das System also über viel Speicher verfügt, aber keinen großen Speicherabschnitt zuweisen kann, liegt das daran, dass viele Speicherfragmente generiert werden, was zu vielen diskontinuierlichen kleinen Speicherabschnitten führt Das System scheint über viel freien Speicher zu verfügen, aber in Wirklichkeit handelt es sich nur um verstreuten Speicher.

Das obige ist der detaillierte Inhalt vonDas System verfügt offensichtlich über viel Speicher, kann aber keinen großen Speicher zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Unterschied zwischen CentOS und Ubuntu Unterschied zwischen CentOS und Ubuntu Apr 14, 2025 pm 09:09 PM

Die wichtigsten Unterschiede zwischen CentOS und Ubuntu sind: Ursprung (CentOS stammt von Red Hat, für Unternehmen; Ubuntu stammt aus Debian, für Einzelpersonen), Packungsmanagement (CentOS verwendet yum, konzentriert sich auf Stabilität; Ubuntu verwendet apt, für hohe Aktualisierungsfrequenz), Support Cycle (Centos) (CENTOS bieten 10 Jahre. Tutorials und Dokumente), Verwendungen (CentOS ist auf Server voreingenommen, Ubuntu ist für Server und Desktops geeignet). Weitere Unterschiede sind die Einfachheit der Installation (CentOS ist dünn)

Detaillierte Erklärung des Docker -Prinzips Detaillierte Erklärung des Docker -Prinzips Apr 14, 2025 pm 11:57 PM

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

So verwenden Sie Docker Desktop So verwenden Sie Docker Desktop Apr 15, 2025 am 11:45 AM

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

CentOS stoppt die Wartung 2024 CentOS stoppt die Wartung 2024 Apr 14, 2025 pm 08:39 PM

CentOS wird 2024 geschlossen, da seine stromaufwärts gelegene Verteilung RHEL 8 geschlossen wurde. Diese Abschaltung wirkt sich auf das CentOS 8 -System aus und verhindert, dass es weiterhin Aktualisierungen erhalten. Benutzer sollten eine Migration planen, und empfohlene Optionen umfassen CentOS Stream, Almalinux und Rocky Linux, um das System sicher und stabil zu halten.

So installieren Sie CentOs So installieren Sie CentOs Apr 14, 2025 pm 09:03 PM

CentOS -Installationsschritte: Laden Sie das ISO -Bild herunter und verbrennen Sie bootfähige Medien. Starten und wählen Sie die Installationsquelle; Wählen Sie das Layout der Sprache und Tastatur aus. Konfigurieren Sie das Netzwerk; Partition die Festplatte; Setzen Sie die Systemuhr; Erstellen Sie den Root -Benutzer; Wählen Sie das Softwarepaket aus; Starten Sie die Installation; Starten Sie nach Abschluss der Installation von der Festplatte neu und starten Sie von der Festplatte.

Was sind die Backup -Methoden für Gitlab auf CentOS? Was sind die Backup -Methoden für Gitlab auf CentOS? Apr 14, 2025 pm 05:33 PM

Backup- und Wiederherstellungsrichtlinie von GitLab im Rahmen von CentOS -System Um die Datensicherheit und Wiederherstellung der Daten zu gewährleisten, bietet GitLab on CentOS eine Vielzahl von Sicherungsmethoden. In diesem Artikel werden mehrere gängige Sicherungsmethoden, Konfigurationsparameter und Wiederherstellungsprozesse im Detail eingeführt, um eine vollständige GitLab -Sicherungs- und Wiederherstellungsstrategie aufzubauen. 1. Manuell Backup Verwenden Sie den GitLab-RakegitLab: Backup: Befehl erstellen, um die manuelle Sicherung auszuführen. Dieser Befehl unterstützt wichtige Informationen wie GitLab Repository, Datenbank, Benutzer, Benutzergruppen, Schlüssel und Berechtigungen. Die Standardsicherungsdatei wird im Verzeichnis/var/opt/gitlab/backups gespeichert. Sie können /etc /gitlab ändern

Wie man in CentOS fester Festplatten montiert Wie man in CentOS fester Festplatten montiert Apr 14, 2025 pm 08:15 PM

CentOS -Festplattenhalterung ist in die folgenden Schritte unterteilt: Bestimmen Sie den Namen der Festplattengeräte (/dev/sdx); Erstellen Sie einen Mountspunkt (es wird empfohlen, /mnt /newDisk zu verwenden). Führen Sie den Befehl montage (mont /dev /sdx1 /mnt /newdisk) aus; Bearbeiten Sie die Datei /etc /fstab, um eine permanente Konfiguration des Montings hinzuzufügen. Verwenden Sie den Befehl uMount, um das Gerät zu deinstallieren, um sicherzustellen, dass kein Prozess das Gerät verwendet.

Was zu tun ist, nachdem CentOS die Wartung gestoppt hat Was zu tun ist, nachdem CentOS die Wartung gestoppt hat Apr 14, 2025 pm 08:48 PM

Nachdem CentOS gestoppt wurde, können Benutzer die folgenden Maßnahmen ergreifen, um sich damit zu befassen: Wählen Sie eine kompatible Verteilung aus: wie Almalinux, Rocky Linux und CentOS Stream. Migrieren Sie auf kommerzielle Verteilungen: wie Red Hat Enterprise Linux, Oracle Linux. Upgrade auf CentOS 9 Stream: Rolling Distribution und bietet die neueste Technologie. Wählen Sie andere Linux -Verteilungen aus: wie Ubuntu, Debian. Bewerten Sie andere Optionen wie Container, virtuelle Maschinen oder Cloud -Plattformen.

See all articles