logo

Personsøking i OS (operativsystem)

I operativsystemer er personsøking en lagringsmekanisme som brukes til å hente prosesser fra sekundærlagringen inn i hovedminnet i form av sider.

Hovedideen bak personsøkingen er å dele hver prosess i form av sider. Hovedminnet vil også deles i form av rammer.

javascript søvn

Én side av prosessen skal lagres i en av rammene i minnet. Sidene kan lagres på forskjellige steder i minnet, men prioriteringen er alltid å finne de sammenhengende rammene eller hullene.

Sider av prosessen bringes inn i hovedminnet bare når de er nødvendige, ellers ligger de i sekundærlageret.

Ulike operativsystemer definerer forskjellige rammestørrelser. Størrelsene på hver ramme må være like. Med tanke på at sidene er tilordnet rammene i Paging, må sidestørrelsen være den samme som rammestørrelsen.


OS personsøking

Eksempel

La oss vurdere hovedminnestørrelsen 16 Kb og rammestørrelse 1 KB, derfor vil hovedminnet deles inn i samlingen på 16 rammer på 1 KB hver.

java trimstreng

Det er 4 prosesser i systemet som er P1, P2, P3 og P4 på 4 KB hver. Hver prosess er delt inn i sider på 1 KB hver slik at én side kan lagres i én ramme.

Til å begynne med er alle rammene tomme, derfor vil sider av prosessene lagres på en sammenhengende måte.

Rammer, sider og kartleggingen mellom de to er vist på bildet nedenfor.


Eksempel på OS-personsøking

La oss vurdere at P2 og P4 flyttes til ventetilstand etter en tid. Nå blir 8 rammer tomme, og derfor kan andre sider lastes inn på det tomme stedet. Prosessen P5 av størrelse 8 KB (8 sider) venter inne i klarkøen.

Gitt det faktum at vi har 8 ikke-sammenhengende rammer tilgjengelig i minnet og personsøking gir fleksibiliteten til å lagre prosessen på de forskjellige stedene. Derfor kan vi laste sidene til prosess P5 i stedet for P2 og P4.


OS-personsøkingseksempel 2

Minnestyringsenhet

Formålet med Memory Management Unit (MMU) er å konvertere den logiske adressen til den fysiske adressen. Den logiske adressen er adressen generert av CPU for hver side, mens den fysiske adressen er den faktiske adressen til rammen der hver side skal lagres.

git pull origin master

Når en side skal åpnes av CPU ved å bruke den logiske adressen, må operativsystemet skaffe den fysiske adressen for å få tilgang til siden fysisk.

Den logiske adressen har to deler.

javascript variabel global
  1. Side nummer
  2. Offset

Minneadministrasjonsenheten til OS må konvertere sidetallet til rammenummeret.

Eksempel

Med tanke på bildet ovenfor, la oss si at CPU-en krever 10. ord av 4. side i prosess P3. Siden sidenummer 4 i prosess P1 blir lagret ved rammenummer 9, vil derfor det 10. ordet i 9. ramme bli returnert som den fysiske adressen.