logo

Minneshantering i operativsystem (OS)

I den här artikeln kommer vi att förstå minneshantering i detalj.

Vad menar du med minneshantering?

Minnet är den viktiga delen av datorn som används för att lagra data. Dess hantering är avgörande för datorsystemet eftersom mängden huvudminne som är tillgängligt i ett datorsystem är mycket begränsad. När som helst konkurrerar många processer om det. Dessutom, för att öka prestandan, exekveras flera processer samtidigt. För detta måste vi ha flera processer i huvudminnet, så det är ännu viktigare att hantera dem effektivt.

Minneshantering

Rollen för minneshantering

Följande är de viktiga rollerna för minneshantering i ett datorsystem:

  • Minneshanteraren används för att hålla reda på status för minnesplatser, oavsett om det är ledigt eller allokerat. Den adresserar primärminne genom att tillhandahålla abstraktioner så att programvaran uppfattar att ett stort minne är allokerat till det.
  • Minneshanteraren tillåter datorer med en liten mängd huvudminne att köra program som är större än storleken eller mängden tillgängligt minne. Det gör det genom att flytta information fram och tillbaka mellan primärminne och sekundärminne genom att använda konceptet att byta.
  • Minneshanteraren är ansvarig för att skydda minnet som allokerats till varje process från att skadas av en annan process. Om detta inte säkerställs, kan systemet uppvisa oförutsägbart beteende.
  • Minneshanterare bör möjliggöra delning av minnesutrymme mellan processer. Således kan två program finnas på samma minnesplats fast vid olika tidpunkter.

Minneshanteringstekniker:

Minneshanteringsteknikerna kan klassificeras i följande huvudkategorier:

  • Kontinuerliga minneshanteringsscheman
  • Icke-sammanhängande minneshanteringsscheman
Minneshantering

Kontinuerliga minneshanteringsscheman:

I ett sammanhängande minneshanteringsschema upptar varje program ett enda sammanhängande block av lagringsplatser, dvs. en uppsättning minnesplatser med konsekutiva adresser.

Enstaka sammanhängande minneshanteringsscheman:

Det enkla angränsande minneshanteringsschemat är det enklaste minneshanteringsschemat som används i den tidigaste generationen av datorsystem. I detta schema är huvudminnet uppdelat i två sammanhängande områden eller partitioner. Operativsystemen finns permanent i en partition, vanligtvis i det lägre minnet, och användarprocessen laddas in i den andra partitionen.

Fördelar med enstaka angränsande minneshanteringsscheman:

  • Enkel att implementera.
  • Lätt att hantera och designa.
  • I ett enda angränsande minneshanteringsschema, när en process väl har laddats, ges den full processortid och ingen annan processor kommer att avbryta den.

Nackdelar med enstaka sammanhängande minneshanteringsscheman:

  • Slöseri med minnesutrymme på grund av oanvänt minne eftersom processen sannolikt inte kommer att använda allt tillgängligt minnesutrymme.
  • CPU:n förblir inaktiv och väntar på att disken ska ladda den binära bilden i huvudminnet.
  • Det kan inte köras om programmet är för stort för att passa hela det tillgängliga huvudminnet.
  • Den stöder inte multiprogrammering, dvs den kan inte hantera flera program samtidigt.

Multipel partitionering:

Det enda Contiguous minneshanteringsschemat är ineffektivt eftersom det begränsar datorer att köra endast ett program åt gången, vilket resulterar i slöseri med minnesutrymme och CPU-tid. Problemet med ineffektiv CPU-användning kan övervinnas med hjälp av multiprogrammering som gör att mer än ett program kan köras samtidigt. För att växla mellan två processer måste operativsystemen ladda båda processerna i huvudminnet. Operativsystemet måste dela upp det tillgängliga huvudminnet i flera delar för att ladda flera processer i huvudminnet. Således kan flera processer finnas i huvudminnet samtidigt.

De multipla partitioneringsschemana kan vara av två typer:

  • Fast partitionering
  • Dynamisk partitionering

Fast partitionering

Huvudminnet är uppdelat i flera partitioner med fast storlek i ett minneshanteringsschema för fast partition eller statisk partitionering. Dessa partitioner kan vara av samma storlek eller olika storlekar. Varje partition kan innehålla en enda process. Antalet partitioner bestämmer graden av multiprogrammering, det vill säga det maximala antalet processer i minnet. Dessa partitioner görs vid tidpunkten för systemgenerering och förblir fixerade efter det.

Fördelar med minneshanteringsscheman för fixerad partitionering:

  • Enkel att implementera.
  • Lätt att hantera och designa.

Nackdelar med minneshanteringsscheman för fixerad partitionering:

  • Detta system lider av intern fragmentering.
  • Antalet partitioner anges vid tidpunkten för systemgenerering.

Dynamisk partitionering

Den dynamiska partitioneringen utformades för att övervinna problemen med ett fast partitioneringsschema. I ett dynamiskt partitioneringsschema upptar varje process bara så mycket minne som de kräver när de laddas för bearbetning. Begärda processer tilldelas minne tills hela det fysiska minnet är slut eller det återstående utrymmet är otillräckligt för att hålla den begärande processen. I det här schemat är de partitioner som används av varierande storlek, och antalet partitioner är inte definierat vid systemgenereringstiden.

Fördelar med minneshanteringsscheman för dynamisk partitionering:

  • Enkel att implementera.
  • Lätt att hantera och designa.

Nackdelar med minneshanteringsscheman för dynamisk partitionering:

  • Detta system lider också av intern fragmentering.
  • Antalet partitioner anges vid tidpunkten för systemsegmenteringen.

Icke-sammanhängande minneshanteringsscheman:

I ett icke-sammanhängande minneshanteringsschema är programmet uppdelat i olika block och laddas i olika delar av minnet som inte nödvändigtvis behöver ligga intill varandra. Detta schema kan klassificeras beroende på storleken på blocken och om blocken finns i huvudminnet eller inte.

Vad är personsökning?

Personsökning är en teknik som eliminerar kraven på kontinuerlig allokering av huvudminnet. I detta är huvudminnet uppdelat i block av fast storlek av fysiskt minne som kallas ramar. Storleken på en ram bör hållas samma som på en sida för att maximera huvudminnet och undvika extern fragmentering.

Fördelar med personsökning:

  • Sidor minskar extern fragmentering.
  • Enkel att implementera.
  • Minneseffektiv.
  • På grund av att ramarna är lika stora blir det mycket enkelt att byta.
  • Den används för snabbare åtkomst av data.

Vad är segmentering?

Segmentering är en teknik som eliminerar kraven på kontinuerlig allokering av huvudminnet. I detta är huvudminnet uppdelat i block av variabel storlek av fysiskt minne som kallas segment. Det är baserat på hur programmeraren följer för att strukturera sina program. Med segmenterad minnesallokering är varje jobb uppdelat i flera segment av olika storlekar, ett för varje modul. Funktioner, subrutiner, stack, array, etc. är exempel på sådana moduler.