Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was ist der Unterschied zwischen Linux- und Windows-Speicher?

Was ist der Unterschied zwischen Linux- und Windows-Speicher?

WBOY
WBOYOriginal
2022-08-26 17:05:364700Durchsuche

Der Unterschied zwischen Linux-Speicher und Windows-Speicher: 1. Linux verwendet zuerst den physischen Speicher und legt ihn nur dann auf die Swap-Partition, während Windows Speicher und virtuellen Speicher zusammen verwendet. 2. Windows lässt immer eine bestimmte Menge übrig Mit freiem Speicherplatz ist es schneller, neue Programme zu starten, aber Linux-Speicher ist oft vollständig ausgenutzt. Es ist notwendig, einen Teil des Speichers zu löschen, bevor er neuen Programmen zugewiesen wird, und es ist langsamer, neue Programme zu starten.

Was ist der Unterschied zwischen Linux- und Windows-Speicher?

Die Betriebsumgebung dieses Tutorials: Windows 10- und Linux 7.3-System, Dell G3-Computer.

Was ist der Unterschied zwischen Linux- und Windows-Speicher?

Linux verwendet zuerst den physischen Speicher. Wenn der physische Speicher noch frei ist, gibt Linux den Speicher nicht frei. Das Programm, das den Speicher belegt, wurde geschlossen zwischengespeichert). Mit anderen Worten: Selbst wenn Sie über einen großen Speicher verfügen, ist dieser nach längerer Nutzung voll. Dies hat den Vorteil, dass gerade geöffnete Programme schneller gestartet oder gerade aufgerufene Daten schneller gelesen werden können, was für den Server sehr vorteilhaft ist.

Der Unterschied

Windows lässt immer eine gewisse Menge freien Speicherplatz im Speicher, auch wenn der Speicher frei ist, verwendet das Programm einen Teil des virtuellen Speichers. Dies hat den Vorteil, dass es schneller startet Neues Programm und es kann direkt geteilt werden. Geben Sie ihm einfach etwas freien Speicher.

Aber was ist mit Linux? Da der Speicher häufig vollständig ausgenutzt ist, muss zunächst ein Teil des Speichers gelöscht und dann einem neuen Programm zugewiesen werden. Daher wird der Start des neuen Programms langsamer.

Der Linux-Kernel legt grundsätzlich alle Daten zuerst im Speicher ab. Wenn der Speicher nicht ausreicht, werden sie in der Swap-Partition (virtueller Speicher) abgelegt. Das Detail besteht darin, dass nur häufig verwendete Daten im Speicher abgelegt werden Die verarbeiteten Daten werden im Speicher abgelegt, nach und nach auf die Swap-Partition gelegt und bei Bedarf wieder auf die Festplatte geschrieben.

Die Verarbeitungsmethode von Windows besteht darin, dass Speicher und virtueller Speicher gemeinsam verwendet werden, anstatt sich auf Speicheroperationen zu konzentrieren. Das Ergebnis ist, dass die E/A-Belastung relativ groß ist, was manchmal die Verarbeitungsgeschwindigkeit verlangsamt. Die Philosophie von Linux besteht darin, den Speicher so weit wie möglich zu nutzen, da die Geschwindigkeit des Speichers mehr als 100-mal schneller ist als die Geschwindigkeit der Festplatte.

Wissen erweitern

Linux unterteilt den physischen Speicher zur Verwaltung in drei Ebenen

Was ist der Unterschied zwischen Linux- und Windows-Speicher?

Der physische Speicher des Systems ist in mehrere Knoten (Knoten) unterteilt, und ein Knoten entspricht einer Speicherclusterbank Das heißt, jeder A-Speichercluster wird als Knoten betrachtet. (Sie können NODE_DATA (node_id) verwenden, um die Knotennummer node_id im System zu finden.)

Der Speicher ist in Knoten unterteilt, jeder Knoten ist einem Prozessor des Systems zugeordnet, pg_data_t wird im Kernel zum Instanziieren verwendet und jeder Knoten im System ist mit einer NULL-terminierten pgdat_list-verknüpften Liste verknüpft, wobei jeder Knoten über das Feld pg_data_tnode_next mit dem nächsten Knoten verknüpft ist. Für die UMA-Struktur wird nur die statische pg_data-Struktur von contig_page_data verwendet. Zu diesem Zeitpunkt verweist NODE_DATA direkt auf die globalen contig_page_data. Die Knoten sind in Speicherverwaltungsbereiche unterteilt. Ein Speicherverwaltungsbereich wird mithilfe von struct zone_struct und zone_t beschrieben, um einen bestimmten Speicherbereich darzustellen. Die 16 MB des Low-End-Bereichs werden als ZONE_DMA beschrieben, dann die gewöhnliche Speicherdomäne ZONE_NORMAL, die direkt dem Kernel zugeordnet werden kann, und schließlich Der physische Bereich außerhalb des Kernelsegments. Das Adressfeld ZONE_HIGHMEM (0xF8000000 ~ 0xFFFFFFFF), High-End-Speicher, ist der verfügbare Speicherplatz, der im System reserviert ist und nicht direkt vom Kernel zugeordnet werden kann. (Um mit Hot-Plugging und Speicherfragmentierungsverarbeitung kompatibel zu sein, führt der Kernel einige logische Speicherbereiche ein:

1. Der Kernel definiert einen Pseudospeicherbereich ZONE_MOVEABLE. Dieser Speicherbereich muss bei der Speichermigration verwendet werden, einem Mechanismus zur Verhinderung Physische Speicherfragmentierung. Für die ultimative Nutzung der Speicherfragmentierung.

2: Nichtflüchtiger Speicher zur Unterstützung von Hot-Swap-fähigen Geräten.

Seitenrahmen (Seitenrahmen): Stellt die kleinste Speichereinheit dar. Jede Seite im Heapspeicher erstellt eine Instanz einer Strukturseite. Traditionell wird Speicher als fortlaufende Bytes betrachtet, das heißt, Speicher ist ein Byte-Array, und die Nummer (Adresse) der Speichereinheit kann als Index für das Byte-Array verwendet werden. Während der Paging-Verwaltung werden mehrere Bytes in eine Seite umgewandelt, z. B. 4 KB. Zu diesem Zeitpunkt wird der Speicher zu einer kontinuierlichen Seite, dh der Speicher ist ein Seitenarray und jede Seite des physischen Speichers ist ein Seitenrahmen Der Speicher wird in Seiteneinheiten nummeriert. Diese Zahl kann als Index für das Seitenarray verwendet werden und wird als Seitenrahmennummer bezeichnet. (Die Datenstrukturobjekte der Seite werden im globalen Array mem_map gespeichert. Dieses Array wird normalerweise an der Spitze von ZONE_NORMAL oder in dem für das Laden des Kernel-Images reservierten Bereich in einem kleinen Speichersystem gespeichert. Nach dem Laden wird die niedrige Adresse des Kernels an Der Speicherbereich hinter dem Speicherbereich, dh die Datenstrukturobjekte der Speicherseite, auf der ZONE_NORMAL beginnt, werden alle in diesem globalen Array gespeichert.

Die Paging-Einheit kann lineare Adressen in physische Adressen umwandeln, die in Gruppen fester Länge, sogenannte Seiten, unterteilt werden und lineare Adressen innerhalb von Seiten kontinuierlichen physischen Adressen zugeordnet werden. Dadurch kann der Kernel die physische Adresse einer Seite und ihre Speicherberechtigungen angeben, ohne die Speicherberechtigungen für die gesamte lineare Adresse der Seite anzugeben.

Die Paging-Einheit unterteilt den gesamten Arbeitsspeicher in Seitenrahmen fester Länge (auch Seitenrahmen genannt), was bedeutet, dass die Länge des Seitenrahmens und der Seite gleich sind. Seitenrahmen sind Teil des Speichers und somit ein Speicherbereich. ----mm_types.h Die Zuordnung in der Strukturseitenstruktur speichert nicht nur einen Zeiger, sondern auch einige zusätzliche Informationen, anhand derer ermittelt wird, ob die Seite zu einem anonymen Speicherbereich in einem nicht zugeordneten Adressraum gehört. Methode zum Wiederherstellen von anon_vma durch Mapping: anon_vma=(struct anon_vma *)(mapping-PAGE_MAPPING_ANON).

Empfohlenes Lernen: Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Linux- und Windows-Speicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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