Sökning in Operating System (OS): Vad är, fördelar, exempel

⚡ Smart sammanfattning

Paging är en minneshanteringsteknik som lagrar processer i sidor med fast storlek och laddar dem till fysiska minnesramar av samma storlek, vilket gör att operativsystemet kan använda icke-sammanhängande minne, undvika extern fragmentering och komma åt data snabbare.

  • 📄 Definition: Personsökning delar upp logiskt minne i sidor med fast storlek och fysiskt minne i lika stora ramar, mappaping en sida till en ram.
  • 🗺️ Sidtabell: Operativsystemet använder en sidtabell för att översätta varje logiskt sidnummer till dess fysiska ramadress.
  • 🛡️ Skydd: En giltig/ogiltig bit på varje post i en sidtabell skyddar minnet och markerar vilka sidor en process får komma åt.
  • ✅ fördelar: Personsökning tar bort extern fragmentering och gör växlingping mellan lika stora sidor och ramar enkelt och snabbt.
  • ⚠️ Avvägningar: Paging kan orsaka intern fragmentering och overhead för sidtabeller, medan segmentering istället använder segment med variabel storlek som matchar programstrukturen.
  • 🤖 AI-vinkel: Maskininlärning finjusterar beslut om sidorsättning, och Copilot hjälper till att skriva kod för personsökning och adressöversättning.

Sökning in Operating System

Vad är personsökning i OS?

Personsökning är en lagringsmekanism som gör det möjligt för operativsystemet att hämta processer från sekundärlagring till huvudminnet i form av sidor. I växlingsmetoden delas huvudminnet in i små block av fysiskt minne med fast storlek, som kallas ramar. Storleken på en ram hålls densamma som en sida för att uppnå maximal användning av huvudminnet och för att undvika extern fragmentering. Växling används för snabbare åtkomst till data, och det är ett logiskt koncept.

Exempel på personsökning i OS

För att förstå hur sidor mappas till ramar kan vi ta ett enkelt exempel. Om huvudminnets storlek är 16 KB och ramstorleken är 1 KB, är huvudminnet uppdelat i en samling av 16 ramar på 1 KB vardera.

Det finns fyra separata processer i systemet, A1, A2, A3 och A4, på 4 KB vardera. Här är alla processer uppdelade i sidor på 1 KB vardera, så att operativsystemet kan lagra en sida i en ram.

I början av processen förblir alla ramar tomma, så alla sidor i processerna lagras sammanhängande.

Exempel på paging i operativsystem med sidor laddade sammanhängande

I det här exemplet kan du se att A2 och A4 flyttas till vänteläge efter en tid. Därför blir åtta ramar tomma, och andra sidor kan laddas in i dessa tomma block. Processen A5, med storleken 8 sidor (8 KB), väntar i redokön.

Exempel på personsökning i operativsystem med processer laddade i icke-sammanhängande ramar

Nu finns det åtta icke-sammanhängande ramar tillgängliga i minnet, och paging erbjuder flexibiliteten att lagra processen på olika platser. Detta gör att operativsystemet kan ladda sidorna från process A5 istället för A2 och A4.

Vad är personsökningsskydd?

Personsökningsprocessen skyddas genom att en extra bit som kallas giltig/ogiltig-biten infogas. Minnesskydd vid personsökning uppnås genom att associera skyddsbitar med varje sida. Dessa bitar är associerade med varje sidtabellpost och anger det skydd som tillåts på motsvarande sida.

Fördelar med personsökning

Här är fördelarna med att använda paging-metoden:

  • Det är en lättanvänd minneshantering algoritm.
  • Det finns inget behov av extern fragmentering.
  • Swapping är enkelt mellan lika stora sidor och sidramar.

Nackdelar med personsökning

Här är nackdelarna och nackdelarna med personsökning:

  • Det kan orsaka intern fragmentering.
  • Sidtabeller förbrukar ytterligare minne.
  • Sökning på flera nivåer kan leda till minnesreferenskostnader.

Vad är segmentering?

Segmentering fungerar nästan på samma sätt som paging. Den enda skillnaden mellan de två är att segmenten har variabel längd, medan sidorna i paging-metoden alltid har en fast storlek.

Ett programsegment inkluderar programmets huvudfunktion, datastrukturer, verktygsfunktioner och så vidare. Operativsystemet upprätthåller en segmentmappningstabell för alla processer. Den innehåller också en lista över lediga minnesblock, tillsammans med deras storlek, segmentnummer och minnesplatser i huvudminnet eller virtuellt minne.

Fördelar med segmentering

Här är fördelarna och fördelarna med segmentering:

  • Det erbjuder skydd inom segmenten.
  • Du kan uppnå delning genom att låta segment referera till flera processer.
  • Det orsakar inte intern fragmentering.
  • Segmenttabeller använder mindre minne än paging.

Nackdelar med segmentering

Här är nackdelarna och nackdelarna med segmentering:

  • I segmenteringsmetoden laddas och tas processer bort från huvudminnet. Därför separeras det lediga minnesutrymmet i små bitar, vilket kan skapa problem med extern fragmentering.
  • Det är en kostsam minneshanteringsalgoritm.

Vanliga frågor

Ett sidfel uppstår när en process begär en sida som för närvarande inte finns i huvudminnet. Operativsystemet pausar processen, hämtar sidan från sekundärminnet till en ledig bildruta och återupptar sedan körningen.

En sidtabell är en datastruktur som operativsystemet behåller för varje process. Den mappar varje logiskt sidnummer till den fysiska ram som innehåller den sidan, vilket möjliggör korrekt adressöversättning under körning.

TLB är en liten, snabb cache som lagrar den senaste sida-till-bildruta-kartanpings. Det snabbar upp adressöversättningen genom att undvika en fullständig sökning i minnet efter sidor som ofta besöks.

En sida är ett block med fast storlek i en process i det logiska minnet, medan en ram är ett block med samma storlek i det fysiska minnet. Paging laddar varje sida till exakt en ledig ram.

Begäran om sökning laddar en sida i minnet endast när processen faktiskt refererar till den, snarare än att hela processen laddas i förväg. Detta sparar minne och snabbar upp processstarten.

Intern fragmentering slösar bort utrymme inuti en allokerad ram när en sida inte fyller den helt. Extern fragmentering lämnar spridda fria mellanrum mellan allokeringar. Paging tar bort extern fragmentering men kan fortfarande orsaka intern fragmentering.

Maskininlärningsmodeller förutspår framtida sidreferenser för att vägleda beslut om sidbyte och förhämtning. Dessa AI-tekniker syftar till att minska sidfelfrekvensen och förbättra minnesanvändningen i datacenter och molnsystem.

Ja. GitHub Copilot kan generera FIFO-, LRU- och optimal sidbyteskod, plus sidbilagasimuleringar i C. Java, eller PythonVerifiera alltid antalet fel och kantfall innan du förlitar dig på utdata.

Sammanfatta detta inlägg med: