logo

Personsökning i OS (operativsystem)

I operativsystem är personsökning en lagringsmekanism som används för att hämta processer från det sekundära minnet till huvudminnet i form av sidor.

Huvudtanken bakom personsökningen är att dela upp varje process i form av sidor. Huvudminnet kommer också att delas i form av ramar.

järv vs grävling

En sida av processen ska lagras i en av ramarna i minnet. Sidorna kan lagras på olika platser i minnet men prioritet är alltid att hitta de sammanhängande ramarna eller hålen.

Sidor av processen förs in i huvudminnet endast när de krävs, annars finns de i det sekundära minnet.

Olika operativsystem definierar olika ramstorlekar. Storleken på varje ram måste vara lika. Med tanke på att sidorna är mappade till ramarna i Paging måste sidstorleken vara lika stor som ramstorleken.


OS-sökning

Exempel

Låt oss betrakta huvudminnets storlek 16 Kb och ramstorleken är 1 KB, därför kommer huvudminnet att delas upp i samlingen av 16 ramar på 1 KB vardera.

trädpassering

Det finns 4 processer i systemet som är P1, P2, P3 och P4 på 4 KB vardera. Varje process är uppdelad i sidor om 1 KB vardera så att en sida kan lagras i en ram.

Inledningsvis är alla ramar tomma, därför kommer sidor av processerna att lagras på ett sammanhängande sätt.

Ramar, sidor och kartläggningen mellan de två visas i bilden nedan.


OS-personsökningsexempel

Låt oss tänka på att P2 och P4 flyttas till vänteläge efter en tid. Nu blir 8 ramar tomma och därför kan andra sidor laddas på den tomma platsen. Processen P5 av storlek 8 KB (8 sidor) väntar inne i klarkön.

Med tanke på det faktum att vi har 8 icke sammanhängande ramar tillgängliga i minnet och personsökning ger flexibiliteten att lagra processen på de olika platserna. Därför kan vi ladda sidorna i process P5 i stället för P2 och P4.


OS-sökningsexempel 2

Minneshanteringsenhet

Syftet med Memory Management Unit (MMU) är att konvertera den logiska adressen till den fysiska adressen. Den logiska adressen är adressen som genereras av CPU:n för varje sida medan den fysiska adressen är den faktiska adressen till ramen där varje sida kommer att lagras.

java avgränsare

När en sida ska nås av CPU:n genom att använda den logiska adressen, behöver operativsystemet erhålla den fysiska adressen för att komma åt sidan fysiskt.

Den logiska adressen har två delar.

hur man returnerar en array java
  1. Sidonummer
  2. Offset

Minneshanteringsenheten i OS måste konvertera sidnumret till ramnumret.

Exempel

Med tanke på bilden ovan, låt oss säga att CPU:n kräver 10:e ordet av 4:e sidan i process P3. Eftersom sidnummer 4 i process Pl lagras vid ramnummer 9 kommer därför det tionde ordet i den nionde ramen att returneras som den fysiska adressen.