Interne Speicherumverteilung: Technischer Leitfaden zur Partitionierung

  • Das Speichermanagement basiert darauf, wie der Arbeitsspeicher (RAM) partitioniert und zwischen Prozessen neu zugewiesen wird, mit dem Ziel, Leistung und Auslastung in Einklang zu bringen.
  • Modelle wie feste Partitionen, variable Partitionen, Paging und Segmentierung begegnen der internen und externen Fragmentierung auf unterschiedliche Weise.
  • Die Kombination aus Paging, Segmentierung und virtuellem Speicher ermƶglicht die Ausführung von mehr und größeren Prozessen, als der physische Speicher aufnehmen kann.
  • Design- und Speichermanagemententscheidungen haben einen direkten Einfluss auf die wahrgenommene Leistung von Computern und MobilgerƤten.

Partitionierung des internen Speichers

Wenn man über interne Speicherumverteilung und Partitionierung Dies ist nicht nur eine theoretische Frage im Zusammenhang mit Betriebssystemen; es handelt sich um eine sehr praktische Angelegenheit, die die tatsächliche Leistung eines Computers, Servers oder sogar eines Mobilgeräts beeinflusst. Das Verständnis dafür, wie der Hauptspeicher aufgeteilt, reserviert, geschützt und wiederverwendet wird, ist der Schlüssel zum Verständnis dafür, warum manche Systeme außergewöhnlich gut funktionieren, während andere selbst mit derselben Hardware Schwierigkeiten haben.

In den folgenden Abschnitten werden wir die verschiedenen Aspekte ausführlich behandeln. Speicherpartitionierungs- und -umverteilungstechnikenVon einfachsten Ein-Prozess-Systemen bis hin zu komplexen Modellen mit virtuellem Speicher, Paging, Segmentierung und Kombinationen davon. Wir betrachten auch typische Probleme wie interne und externe Fragmentierung und wie sich all dies in praktische Design- und Managemententscheidungen umsetzen lässt.

Überblick über die Speicherverwaltung

Wir können uns das vorstellen Hauptspeicher als großer Satz nummerierter SchachtelnJede Zelle besitzt eine Adresse und kann Anweisungen oder Daten speichern. Damit ein Programm ausgeführt werden kann, müssen sich sein Code und seine Daten im Hauptspeicher (RAM) befinden. Von dort liest der Prozessor die Anweisungen, greift auf die Operanden zu und schreibt die Ergebnisse.

Das für diese Aufgabe zuständige Betriebssystemmodul ist das Speichermanager oder ManagerDiese Funktion legt fest, welcher Speicherbereich jedem Prozess zugewiesen wird, wie die einzelnen Bereiche geschützt werden und was bei Speichermangel geschieht. Ist diese Speicherverwaltung fehlerhaft oder ineffizient, sind die Auswirkungen sofort spürbar: längere Wartezeiten, mehr Festplattenzugriffe und ein deutlicher Leistungsabfall.

Mit der Weiterentwicklung von Computersystemen wurden verschiedene Vorschläge unterbreitet. zunehmend ausgefeiltere Modelle Speichermanagement, von sehr einfachen Systemen, die für die Ausführung einer einzigen Aufgabe ausgelegt sind, bis hin zu modernen virtuellen Speichersystemen, bei denen die Sicht des Programms auf den Speicher (logischer Raum) sich stark vom realen physischen Raum unterscheidet.

So lƶschen Sie die Android-Partition auf DualBoot-Tablets
Verwandte Artikel:
Tutorial: Lƶschen der Android-Partition auf DualBoot Tablets, um mehr Speicherplatz in Windows zu erhalten

Grundmodell: Speicher für einen einzelnen Prozess

Bei frühen Computern war der Hauptspeicher unterteilt in zwei große, klar voneinander getrennte BereicheEine Partition war für das Betriebssystem (oft auch Monitor genannt) reserviert, eine andere für ein einzelnes Benutzerprogramm. Es konnte immer nur ein Prozess gleichzeitig ausgeführt werden; nach dessen Beendigung wurde die Kontrolle an das Betriebssystem zurückgegeben, das das nächste Programm lud.

Ein klassisches Beispiel für diesen Ansatz ist MS-DOS in seinen frühen VersionenIn diesem Modell belegten das Betriebssystem und in vielen Fällen der BIOS-Code den oberen Teil des Adressraums, während der Rest für das laufende Programm reserviert blieb. Es gab kein echtes Multiprogramming oder komplexe dynamische Speicherneuzuweisung: Es handelte sich um ein einfaches und unkompliziertes Schema.

ZusammenhƤngende Speicherzuweisung und Partitionierung

Wenn Multiprogrammierung auftritt, wird ein Modell vorgeschlagen, in dem die Der logische Speicherbereich jedes Prozesses belegt einen zusammenhängenden Bereich. Der Prozess muss im physischen Speicher liegen. Das heißt, Code, Daten und Stack des Prozesses müssen sich in aufeinanderfolgenden physischen Adressen befinden. Das Betriebssystem wählt den passenden zusammenhängenden Speicherbereich für jeden Prozess aus und gibt diesen nach Beendigung des Prozesses frei.

Dieser Ansatz, bekannt als zusammenhängende SpeicherzuweisungDie Implementierung ist einfach, aber das Verfahren hat seine Nachteile. Beim Laden und Entladen von Prozessen entstehen freie Speicherbereiche unterschiedlicher Größe. Die Art und Weise, wie diese Speicherbereiche aufgeteilt und wiederverwendet werden, führt zu den verschiedenen Partitionierungstechniken, die wir im Folgenden betrachten werden.

Speicherverwaltung mit festen Partitionen

Bei festen Partitionierungsschemata ist der Hauptspeicher teilt sich vorher in Fragmente einer festgelegten Größebevor die Programme ausgeführt werden. Jedes dieser Fragmente oder Partitionen kann einen einzelnen Prozess aufnehmen, vorausgesetzt, dessen logische Größe passt hinein.

Diese Methode ist auch bekannt als Multiprogrammierung mit einer festen Anzahl von Aufgaben (MFT)Die maximale Anzahl gleichzeitig ausführbarer Prozesse entspricht der Anzahl der Partitionen. Das System ist relativ einfach zu verwalten, steht aber vor einem ständigen Dilemma: Wie wählt man die Partitionsgröße, um Speicherverschwendung zu vermeiden?

Prozesswarteschlangen und Arbeitsorganisation

Die Arbeitslast kann auf verschiedene Weise organisiert werden. Eine Möglichkeit ist Pro Partition wird eine Warteschlange verwaltet.sodass Prozesse der Partitionsliste zugewiesen werden, deren Größe am besten zu ihnen passt. Eine weitere Möglichkeit ist eine einzelne Warteschlange von bereiten Prozessen und dass der Scheduler, sobald eine Partition frei wird, aus der allgemeinen Warteschlange den Prozess auswählt, der in diese Partition passt.

Modell Einzelschwanz Es vereinfacht zwar die Struktur, benachteiligt aber tendenziell kleine Prozesse: Ihnen wird leicht eine viel größere Partition zugewiesen, als sie benötigen, was Speicherplatz verschwendet. Prozesse verlassen die Anforderungswarteschlange erst, wenn das Betriebssystem ihnen eine geeignete Partition zuweist, üblicherweise nach dem FIFO-Prinzip (First In, First Out).

Interne und externe Fragmentierung in festen Partitionen

In diesem Zusammenhang kristallisieren sich zwei Schlüsselkonzepte heraus: die interne Fragmentierung und externe FragmentierungEine interne Fragmentierung tritt auf, wenn einem Prozess eine Partition zugewiesen wird, die viel größer ist, als er tatsächlich benötigt, sodass der überschüssige Speicherplatz innerhalb dieser Partition ungenutzt bleibt und nicht für einen anderen Prozess wiederverwendet werden kann.

Im Gegenzug wird die äußere Fragmentierung Dies tritt auf, wenn viele kleine, verstreute freie Speicherbereiche vorhanden sind, die so klein sind, dass es schwierig ist, Prozesse darin zu platzieren. Selbst wenn der gesamte freie Speicher beträchtlich ist, reicht er aufgrund seiner fehlenden Zusammenhänge oder ordnungsgemäßen Gruppierung nicht aus, um neue Prozesse einer bestimmten Größe aufzunehmen.

Erreiche ein Gleichgewicht zwischen Partitionsgröße und durchschnittlicher Prozessgröße Es ist kompliziert. Zu große Partitionen begünstigen die interne Fragmentierung; zu kleine Partitionen können eine starke externe Fragmentierung verursachen, da es schwierig ist, Prozesse zu finden, die in diese Lücken passen.

Mehrere Partitionen fester Größe mit einer einzigen Warteschlange

Bei der Methode der zusammenhängenden Zuordnung mit mehrere Partitionen fester Größe und eine einzelne WarteschlangeDer Speicher ist in feste Partitionen unterteilt, und alle Prozesse werden in einer einzigen Anforderungswarteschlange gespeichert. Sobald eine ausreichend große freie Partition für den ersten Prozess in der Warteschlange verfügbar ist, wird diese zugewiesen und in den Speicher geladen.

Das System befolgt normalerweise eine Reihenfolge. FIFO in der ProzesswarteschlangeDies verhindert, dass Prozesse übersprungen werden und später ausgeführt werden, selbst wenn sie besser zur verfügbaren Partition passen würden. Obwohl dies die Effizienz verringern kann, vereinfacht es die Ablaufplanung. Sobald ein Prozess seine Ausführung abgeschlossen hat, gibt er die Partition, in der er sich befand, vollständig frei und stellt sie somit wieder für einen anderen Prozess zur Verfügung.

Dieses Diagramm zeigt deutlich die interne FragmentierungBelegt ein Prozess nur einen Teil einer Partition, steht der verbleibende Speicherplatz keinem anderen Prozess zur Verfügung. In vielen Schulungsumgebungen wird dieser ungenutzte Bereich durch eine andere Farbe (z. B. Grau) dargestellt, sodass der Grad der Speicherplatzverschwendung innerhalb jeder Partition auf einen Blick erkennbar ist.

HƤufig gestellte Fragen zu diesem Modell

Bei einer detaillierten Analyse dieser Art der Aufteilung stellen sich Fragen wie: Was würde passieren, wenn Die meisten der eintreffenden Prozesse sind sehr klein.In diesem Szenario verschwenden viele Partitionen, insbesondere die größeren, eine große Menge internen Speichers, da jeder Prozess einen beträchtlichen Teil des zugewiesenen Speicherplatzes ungenutzt lässt.

Die gegenteilige Situation tritt ein, wenn die meisten Anwendungen entsprechen sehr große Prozesse, die in etwa die Größe der größten Partitionen erreichenHierbei kann es vorkommen, dass nur wenige Partitionen sie aufnehmen können, was den Grad der effektiven Multiprogrammierung verringert und die Wartezeiten in der allgemeinen Warteschlange erhöhen kann.

Eine mögliche theoretische Verbesserung besteht darin, Folgendes beizubehalten eine Warteschlange pro PartitionsgrößeAuf diese Weise wurden die Prozesse nach ihrer Größe gruppiert und versucht, jeden Prozess besser dem entsprechenden Partitionstyp zuzuordnen. Diese Organisation kann die interne Fragmentierung reduzieren, verkompliziert jedoch die Ablaufplanung und erhöht den Aufwand für die Warteschlangenverwaltung.

Umzug, logische und physische Adressen

Partitionieren Sie den internen Speicher

Um eine gewisse Flexibilität bei der Speicherzuweisung und -umverteilung zu ermöglichen, können Systeme Folgendes verwenden: Verlagerung von ProzessenDies bedeutet, dass dasselbe Programm auf verschiedenen Partitionen in unterschiedlichen Ausführungen laufen oder sogar während derselben Ausführung von einer Partition auf eine andere verschoben werden kann, solange die Speicherzugriffe korrekt übersetzt werden.

Aus dieser Idee ergeben sich zwei grundlegende Konzepte: die logische oder virtuelle Adresse, diejenige, die vom Programm verwendet wird (relativ zum Beginn seines Adressraums), und die physikalische AdresseDies ist der tatsächliche Speicherort im Hauptspeicher. Um diese Übersetzung schnell durchzuführen, verfügt der Prozessor über ein Basisregister, das die physische Adresse enthält, an der die dem Prozess zugewiesene Partition beginnt.

Zusätzlich zum Basisregister, einem Grenzwertaufzeichnung, die die Größe angibt der Partition oder des Adressraums des Prozesses. Jedes Mal, wenn der Prozess auf eine logische Adresse zugreift, erhöht die Hardware den Wert des Basisregisters und prüft, ob der Offset den Grenzwert nicht überschreitet. Ist dies der Fall, wird eine Speicherverletzung erkannt, und das Betriebssystem kann eingreifen, um die Systemintegrität zu schützen.

Variable Partitionen: FlexibilitƤt bei den Kosten

Um die Einschränkungen fester Partitionen zu überwinden, wurden Schemata entwickelt für variable PartitionenDie Größe der von jedem Prozess belegten Speicherblöcke kann sich im Laufe der Zeit ändern. Anstatt starre Partitionen vorzudefinieren, verwaltet das System eine Tabelle der belegten und freien Bereiche.

Wenn ein neuer Prozess eintrifft, wird nach einem gesucht. ausreichend großer zusammenhängender Speicherblock Um den Speicherbereich zu begrenzen, wird dem Prozess nur der benötigte Speicherplatz zugewiesen. War der freie Block größer, wird der überschüssige Speicherplatz zu einem neuen freien Fragment. Nach Beendigung des Prozesses wird sein Speicherplatz als verfügbar markiert. Begrenzt er an andere freie Blöcke, werden diese zu einem größeren Fragment zusammengeführt.

Dieses Modell reduziert zwar bestimmte Abfallarten, führt aber im Laufe der Zeit tendenziell zu deren Entstehung. beträchtliche äußere FragmentierungDa der Speicher mit vielen freien Bereichen unterschiedlicher Größe gefüllt wird, kann es selbst dann unmöglich werden, ein zusammenhängendes Fragment der für einen bestimmten Prozess erforderlichen Größe zu finden, wenn die Gesamtmenge des freien Speichers ausreichend ist.

Anatomie des Speichers: System-, Cache- und Benutzerdateien
Verwandte Artikel:
Speicherstruktur: System-, Cache- und Benutzerdateien

Allokationsstrategien in variablen Partitionen

Zur Entscheidung, in welchem ​​freien Fragment ein Prozess ausgeführt werden soll, werden verschiedene klassische Strategien verwendet, jede mit ihren Vor- und Nachteilen. Die direkteste ist die erste PassformDabei wird der Prozess dem ersten verfügbaren Speicherblock zugewiesen. Das ist zwar schnell, führt aber mit der Zeit dazu, dass viele kleine Fragmente am Anfang des Speichers verbleiben.

Eine Variante ist die next-fitDiese Methode beginnt die Suche am letzten Speicherzuweisungspunkt, anstatt immer am Anfang zu starten. Dies führt häufig zu einer Fragmentierung des freien Speicherplatzes, insbesondere gegen Ende des Speichers, was letztendlich zu relativ häufiger Komprimierung führt.

Ein anderer Ansatz ist die beste PassformDieser Ansatz versucht, die Speicherauslastung zu maximieren, indem der Prozess dem kleinsten freien Speicherblock zugewiesen wird, der ihn aufnehmen kann. Das klingt zwar sehr effizient, führt in der Praxis aber häufig zu vielen kleinen, schwer nutzbaren Fragmenten und verschärft so oft die externe Fragmentierungssituation.

Schließlich wird die schlechteste Passform Es werden zunächst die größten freien Blöcke verwendet, in der Hoffnung, dass der verbleibende Speicherplatz für nachfolgende Prozesse noch ausreichend ist. Dies kann die Komprimierung hinauszögern, erfordert jedoch das Durchlaufen aller freien Blöcke, was einen höheren Aufwand bedeutet.

Speicherkomprimierung

Wenn die externe Fragmentierung problematisch wird, greift man auf folgende Maßnahmen zurück: SpeicherkomprimierungBei diesem Verfahren werden alle belegten Blöcke an ein Ende des Speichers (in der Regel an niedrigere Adressen) verschoben, um die freien Speicherbereiche zu einem einzigen Block oder wenigen großen Blöcken zusammenzufassen.

Durch Verdichtung wird die Rückgewinnung von großer zusammenhängender freier SpeicherplatzDies hat jedoch seinen Preis: Es handelt sich um einen langsamen Vorgang, da ganze Speicherblöcke kopiert und alle zugehörigen Referenzen oder Strukturen aktualisiert werden müssen. Daher wird versucht, diesen Vorgang durch die Implementierung geeigneter Allokationsrichtlinien so lange wie möglich hinauszuzögern.

Seitennummerierung: Unterbrechung der zusammenhƤngenden Abschnitte

Um zu verhindern, dass der freie Speicher in zusammenhängenden Blöcken vorliegen muss, wird Folgendes eingeführt: PaginierungIn diesem Modell wird der physische Speicher in Einheiten fester Größe, sogenannte Seitenrahmen, unterteilt, und der logische Speicher jedes Prozesses wird in ähnliche Weise in Seiten gleicher Größe unterteilt.

Jede Seite eines Prozesses kann gespeichert werden in beliebiger kostenloser SeitenrahmenDies ist mƶglich, ohne dass alle Frames physisch zusammenhƤngend sein müssen. Für jeden Prozess verwaltet das Betriebssystem eine Seitentabelle, die angibt, welche logische Seite sich in welchem ​​physischen Frame befindet. Dadurch nimmt das Programm seinen Speicher weiterhin als zusammenhƤngend wahr, obwohl er tatsƤchlich über den Arbeitsspeicher (RAM) verteilt ist.

Diese Technik eliminiert praktisch die äußere FragmentierungDenn zum Ausführen eines Prozesses wird nur eine bestimmte Anzahl freier Frames benötigt, unabhängig von deren Speicherort. Die interne Fragmentierung beschränkt sich auf den verbleibenden Speicherplatz im letzten einem Prozess zugewiesenen Frame; im Durchschnitt wird in diesem letzten Frame etwa die Hälfte der Seitengröße verschwendet.

Adressübersetzung in der Seitennummerierung

In einem Paging-System werden logische Adressen in zwei Teile unterteilt: die Seitenzahl und Versatz innerhalb dieser SeiteDie Seitenzahl dient als Index, um die Seitentabelle des Prozesses abzufragen und den zugehörigen physischen Frame zu ermitteln. Anschließend werden die Offsets verkettet oder summiert, um die endgültige physische Adresse zu erhalten.

Da diese Übersetzung in jeder SpeicherzugriffEine rein softwarebasierte Umsetzung wƤre unpraktisch. Daher wird spezielle Hardware (wie der TLB, Translation Lookaside Buffer) eingesetzt, um Zugriffe auf die Seitentabelle zu beschleunigen und die Leistungseinbußen zu minimieren. Das Betriebssystem verwaltet zudem eine globale Frame-Übersicht, die angibt, welche Frames frei, welche belegt und von welchem ​​Prozess genutzt werden.

Die Wahl der Seitengröße ist eine wichtige Entscheidung: mit kleine SeitenDie interne Fragmentierung wird reduziert, aber die Seitentabellen werden größer und verbrauchen dadurch zusätzlichen Speicherplatz. große SeitenFür die Tabellen wird weniger Speicher benötigt, aber die interne Fragmentierung nimmt zu, da der letzte Frame jedes Prozesses tendenziell mehr ungenutzten Speicherplatz hinterlässt.

Segmentierung: logische Organisation von Programmen und Daten

Im Gegensatz zur Paginierung, die aus einer rein technischen Perspektive resultiert, Segmentierung Der Fokus liegt stärker darauf, wie Programmierer und Benutzer Code und Daten strukturieren. Ein Programm kann als eine Menge logischer Komponenten unterschiedlicher Größe betrachtet werden: Funktionen, Module, Tabellen, Stacks, Datenbereiche usw.

Bei der Segmentierung erzeugt der Compiler eine Menge von Segmente, jedes mit einer Kennung, einem Startpunkt und einer GrößeDie vom Programm verwendeten logischen Adressen werden als Paar angegeben (Segmentnummer, Offset innerhalb des Segments). Das System stellt sicher, dass der Offset die deklarierte Segmentgröße nicht überschreitet, um Zugriffe außerhalb des gültigen Bereichs zu verhindern.

Ein wichtiger Vorteil ist die Fähigkeit, Segmente schützen und teilen mit hoher Granularität. So können beispielsweise Codeabschnitte als schreibgeschützt markiert, der Zugriff eines Moduls auf die Daten eines anderen Moduls verhindert oder ein Codeabschnitt zur Speichereinsparung von mehreren Prozessen gemeinsam genutzt werden. All dies wird über eine Tabelle mit Segmenten und ihren zugehörigen Schutzattributen gesteuert.

Wie beim Paging benötigt auch die Segmentierung einen Mechanismus für Logische Adressen in physische Adressen übersetzenIn diesem Fall enthält die Segmenttabelle die physikalische Basisadresse und die maximale Größe für jedes Segment. Die Hardware addiert den Offset zur Basisadresse und prüft, ob das Limit nicht überschritten wird, wodurch der Schutz gewährleistet wird.

Kombination aus Paginierung und Segmentierung

Viele moderne Systeme vereinen die Vorteile von Segmentierung und PaginierungAus der Sicht des Programmierers ist der Prozess weiterhin in logische Segmente (Code, Stack, Daten usw.) gegliedert, intern ist jedoch jedes dieser Segmente in Seiten fester Länge für ihren jeweiligen Speicherort unterteilt.

Bei diesem Ansatz verweist die Segmenttabelle nicht mehr direkt auf physische Adressen, sondern Jeder Eintrag verweist auf den Anfang der Seitentabelle, die mit diesem Segment verknüpft ist.Die logische Adresse besteht aus einer Segmentnummer und einem Offset; das System teilt diesen Offset durch die Seitengröße, um die Seitennummer innerhalb des Segments und den Offset innerhalb der Seite zu erhalten.

Das Ergebnis ist ein sehr flexibles Modell, das beides ermöglicht kohärente logische Organisation Als effiziente physische Zuweisung in festen Blöcken bietet sie Vorteile. Allerdings weist sie drei klare Nachteile auf: Der Übersetzungsprozess wird komplexer und verbraucht mehr Ressourcen, es wird mehr Speicherplatz für die Speicherung der mehreren Seitentabellen (eine pro Segment) benötigt, und die interne Fragmentierung kann aufgrund potenziell teilweise belegter Frames am Ende jedes Segments zunehmen.

Virtueller Speicher und dynamische Neuzuweisung

Alle bisher besprochenen Methoden setzten in der einen oder anderen Form voraus, dass ein Prozess … vollstƤndig in den Hauptspeicher geladen, um ausgeführt werden zu kƶnnenVirtueller Speicher umgeht diese EinschrƤnkung, indem er es ermƶglicht, dass nur ein aktiver Teil des Prozesses im RAM verbleibt, wƤhrend der Rest im SekundƤrspeicher (z. B. auf der Festplatte) gehalten und bei Bedarf abgerufen wird.

Virtueller Speicher wird üblicherweise ab dem Zeitpunkt implementiert, an dem Paging- oder Segmentierungsschemataoder eine Kombination aus beidem. Wenn ein Prozess auf eine Adresse zugreift, die sich nicht im Hauptspeicher befindet, tritt ein Seitenfehler auf. Das System sucht die entsprechende Seite auf der Festplatte, reserviert einen freien Frame im RAM und lädt diese. Sind keine freien Frames verfügbar, wird mithilfe eines Ersetzungsalgorithmus die Seite ausgewählt, die auf die Festplatte ausgelagert werden soll.

Während dieses gesamten Prozesses Der Prozess, der den Seitenfehler verursacht hat, ist blockiert.Die Seite wartet darauf, in den Speicher geladen zu werden. Die Seitentabelle enthält üblicherweise ein Präsenzbit, das angibt, ob sich die jeweilige logische Seite des Prozesses aktuell im Hauptspeicher oder nur auf der Festplatte befindet. Dadurch können Hardware und Betriebssystem schnell feststellen, ob ein Seitenzugriff gültig ist und ob die Seite geladen werden muss.

Dieses Modell ermƶglicht die Der Speicher wird viel besser genutztDies liegt daran, dass es sich darauf konzentriert, nur die aktiv genutzten Teile von Prozessen im Arbeitsspeicher zu halten. Durch die Mƶglichkeit, mehr Prozesse gleichzeitig auszuführen, wird die Prozessorauslastung verbessert. Treten jedoch übermäßig viele Seitenfehler auf, kommt es zu sprunghaften Anstiegen der Festplattenzugriffe und einem drastischen Leistungsabfall – ein PhƤnomen, das als Thrashing bekannt ist.

TauschvorgƤnge und ihre Beziehung zur Partitionierung

In mehreren der beschriebenen Speicherverwaltungsmodelle, insbesondere in feste Partitionen, variable Partitionen und PagingDas Auslagern von Prozessen (Swapping) ist eine gängige Praxis. Dabei werden blockierte Prozesse vorübergehend in den Sekundärspeicher verschoben, wodurch Hauptspeicher für neue Prozesse freigegeben oder bestehende Prozesse können wachsen.

Was ist der TWRP-Modus auf Android?
Verwandte Artikel:
Was ist TWRP, wie funktioniert es und wofür wird es auf Android verwendet?

Das für diese Aufgabe zuständige Modul, oft genannt IntercambiadorEs muss entscheiden, welche Prozesse auf die Festplatte ausgelagert und wann sie wieder in den Speicher geladen werden. Außerdem verwaltet es den für die Speicherung von Abbildern ausgelagerter Prozesse reservierten Sekundärspeicherbereich. In Kombination mit Verlagerungstechniken ermöglicht es, dass derselbe Prozess in einer anderen Partition oder einem anderen Frame-Satz als dem ursprünglichen in den Speicher zurückkehrt, solange die Adressübersetzung konsistent bleibt.

Interne Speicherumverteilung in bestimmten GerƤten

Dieses gesamte theoretische Rahmenwerk hat auch einen direkten Einfluss auf Verbrauchergeräte, wie z. B. Mobiltelefone mit MTK-Chipsätzen (MediaTek). Viele dieser Geräte organisieren die interner Speicher in logischen Partitionen separate Partitionen (z. B. eine für Benutzerdaten und eine andere für Anwendungen) führen mitunter dazu, dass eine Partition praktisch ungenutzt bleibt, wenn der Benutzer sie nicht für ihren eigentlichen Zweck verwendet.

Bei einigen Chipsatzmodellen und -generationen (zum Beispiel MTK657x vs MTK6582Benutzer haben nach Methoden gesucht, um diese internen Partitionen zusammenzuführen oder ihre Größe anzupassen, um den verfügbaren Speicherplatz besser zu nutzen. Diese Neuzuordnung erfordert die Ƅnderung von Partitionierungstabellen auf niedriger Ebene und verhƤlt sich in der Praxis Ƥhnlich wie die Ƅnderung des Partitionierungsschemas auf einem Desktop-System, mit allen damit verbundenen Risiken (Datenverlust, Startprobleme usw.).

Die tatsächliche Durchführbarkeit dieser Operationen hängt ab von wie der Hersteller die Partitionstabelle definiert hat und die für den jeweiligen Chipsatz verfügbaren Tools. Obwohl für einige MTK-Serien Anleitungen und spezielle Hilfsprogramme existieren, lassen sich dieselben Methoden nicht immer auf spätere Generationen übertragen. Daher ist äußerste Vorsicht geboten, da es sich nicht um eine einfache Operation auf hoher Ebene handelt, sondern um eine tiefgreifende Modifikation der internen Speicherstruktur.

Gute GedƤchtnismanagementpraktiken

Obwohl die meisten Details der Speicherverwaltung automatisch und transparent vom Betriebssystem abgewickelt werden, können Benutzer und Administratoren dennoch einige Maßnahmen ergreifen. einfache Entscheidungen zur Leistungsverbesserung des Systems. Die erste und offensichtlichste Voraussetzung ist eine ausreichende Menge an Arbeitsspeicher (RAM): Die von den Herstellern empfohlenen Mindestanforderungen sind in der Regel sehr konservativ.

Abgesehen von der Hardware ist Folgendes wichtig: Vermeiden Sie es, mehr Programme auszuführen als unbedingt notwendig. Gleichzeitig führt das Ɩffnen mehrerer Anwendungen, die nicht tatsƤchlich genutzt werden, nur dazu, dass Speicherplatz belegt wird und das System gezwungen ist, hƤufiger auf Auslagerungstechniken oder virtuellen Speicher zurückzugreifen, was die Festplattenzugriffe vervielfacht.

Wir müssen auch wachsam sein. Grafische Accessoires und Verzierungen Dazu gehören Animationen, Desktop-Gadgets, kleine Hintergrunddienste und Browsererweiterungen, die zwar harmlos erscheinen, aber Arbeitsspeicher und Rechenleistung verbrauchen. Auf Rechnern mit begrenzten Ressourcen sollten diese Elemente als Erstes deaktiviert werden, wenn ein deutlicher Leistungsabfall festgestellt wird.

Zusammenfassend lässt sich sagen, dass es wichtig ist zu verstehen, wie es funktioniert. Partitionierung und Neuzuordnung des internen Speichers Es hilft dabei, das Verhalten unserer Systeme besser zu interpretieren, geeignetere Konfigurationen auszuwählen und zu beurteilen, wann es sich lohnt, in mehr physischen Speicher zu investieren, Systemparameter anzupassen oder zu überdenken, wie wir die Prozesse und Dienste organisieren, die wir am Laufen halten. Teilen Sie die Informationen, damit mehr Nutzer mehr über das Thema erfahren können.


Android-Version wiederherstellen
Das kƶnnte Sie auch interessieren:
So stellen Sie eine frühere Version von Android wieder her
Folgen Sie uns auf Google News