Minneshantering i operativsystem: Sammanhängande, Swapping, Fragmentering
⚡ Smart sammanfattning
Minneshantering är operativsystemets process för att kontrollera och koordinera datorminne, och tilldela block till program som körs för att optimera prestanda. tracregistrerar varje minnesplats, flyttar processer mellan huvudminne och disk och skyddar processer från varandra.

Vad är minneshantering?
Minneshantering är processen att styra och koordinera datorminne, tilldela delar som kallas block till olika program som körs för att optimera systemets övergripande prestanda.
Det är den viktigaste funktionen i ett operativsystem som hanterar primärminnet. Det hjälper processer att röra sig fram och tillbaka mellan huvudminnet och exekveringsdisken. Det hjälper operativsystemet att hålla track för varje minnesplats, oavsett om den är allokerad till någon process eller om den förblir ledig.
Varför använda minneshantering?
Här är anledningarna till att använda minneshantering:
- Den låter dig kontrollera hur mycket minne som behöver allokeras till processer som bestämmer vilken processor som ska få minne vid vilken tidpunkt.
- Tracks närhelst inventering frigörs eller avallokeras och uppdaterar statusen därefter.
- Det tilldelar utrymmet till applikationsrutiner.
- Det säkerställer också att dessa applikationer inte stör varandra.
- Hjälper till att skydda olika processer från varandra.
- Den placerar programmen i minnet så att minnet utnyttjas till fullo.
Minneshanteringstekniker
Här är några av de viktigaste minneshanteringsteknikerna:
Enkel sammanhängande allokering
Det är den enklaste tekniken för minneshantering. Med den här metoden är alla typer av datorminne, förutom en liten del som är reserverad för operativsystemet, tillgängligt för en applikation. Till exempel allokerar operativsystemet MS-DOS minne på detta sätt. Ett inbyggt system körs också på en enda applikation.
Partitionerad tilldelning
Den delar upp primärminnet i olika minnespartitioner, vilka mestadels är sammanhängande minnesområden. Varje partition lagrar all information för en specifik uppgift eller ett jobb. Denna metod består av att allokera en partition till ett jobb när det startar och avallokera det när det slutar.
Sidad minneshantering
Denna metod delar upp datorns huvudminne i enheter med fast storlek som kallas sidramar. Denna minneshanteringsenhet för hårdvara mappar sidor till ramar som bör tilldelas på sidbasis.
Segmenterad minneshantering
Segmenterat minne är den enda minneshanteringsmetoden som inte förser användarens program med ett linjärt och sammanhängande adressutrymme.
Segment behöver hårdvarustöd i form av en segmenttabell. Den innehåller den fysiska adressen för sektionen i minne, storlek och andra data som åtkomstskyddsbitar och status.
Vad är swapping?
Swapping är en metod där en process tillfälligt ska flyttas från huvudminnet till backingminnet. Den kommer senare att återföras till minnet för fortsatt exekvering.
Backup-minnet är en hårddisk eller någon annan sekundär lagringsenhet som bör vara tillräckligt stor för att rymma kopior av alla minnesbilder för alla användare. Den kan också erbjuda direkt åtkomst till dessa minnesbilder.
Fördelar med byteping
Här är de största fördelarna/fördelarna med byteping:
- Den erbjuder en högre grad av multiprogrammering.
- Tillåter dynamisk omlokalisering. Om till exempel adressbindning vid exekveringstid används kan processer bytas till olika platser. Annars, vid bindningar vid kompilering och laddningstid, bör processer flyttas till samma plats.
- Det hjälper till att få bättre utnyttjande av minnet.
- Minimalt slöseri med CPU-tid vid slutförande, så den kan enkelt tillämpas på en prioritetsbaserad schemaläggningsmetod för att förbättra dess prestanda.
Vad är minnesallokering?
Minnestilldelning är en process genom vilken datorprogram tilldelas minne eller utrymme.
Här är huvudminnet uppdelat i två typer av partitioner:
- Lågt minne - Den Operatingssystem finns i denna typ av minne.
- Högt minne – Användarprocesser lagras i högt minne.
Partitionstilldelning
Minnet är uppdelat i olika block eller partitioner. Varje process tilldelas enligt kraven. Partitionsallokering är en idealisk metod för att undvika intern fragmentering.
Nedan följer de olika partitionsallokeringsschemana:
- Första passformen: I denna typ av anpassning allokeras den partition som är det första tillräckliga blocket från början av huvudminnet.
- Bästa passform: Den allokerar processen till den partition som är den minsta tillräckliga partitionen bland de lediga partitionerna.
- Sämsta passform: Den allokerar processen till den partition som är den största tillräckligt fritt tillgängliga partitionen i huvudminnet.
- Nästa passform: Den liknar mestadels den första anpassningen, men denna anpassning söker efter den första tillräckliga partitionen från den sista allokeringspunkten.
Vad är personsökning?
Paging är en lagringsmekanism som gör det möjligt för operativsystemet att hämta processer från sekundärlagringen till huvudminnet i form av sidor. I paging-metoden delas huvudminnet upp i små block av fysiskt minne med fast storlek, som kallas ramar. Storleken på en ram bör hållas densamma som en sida för att maximalt utnyttja huvudminnet och för att undvika extern fragmentering. Personsökning används för snabbare tillgång till data, och det är ett logiskt koncept.
Vad är fragmentering?
Processer lagras i och tas bort från minnet, vilket skapar lediga minnesutrymmen som är för små för att användas av andra processer.
Efter en tid kan dessa processer inte allokeras till minnesblock på grund av sin lilla storlek, och minnesblocken förblir alltid oanvända. Detta kallas fragmentering. Denna typ av problem uppstår under ett dynamiskt minnesallokeringssystem när de lediga blocken är ganska små, så de kan inte uppfylla någon begäran.
Två typer av fragmenteringsmetoder är:
- Extern fragmentering
- Intern fragmentering
- Extern fragmentering kan minskas genom att omarrangera minnesinnehållet för att samla allt ledigt minne i ett enda block.
- Intern fragmentering kan minskas genom att tilldela den minsta partitionen, vilken fortfarande är tillräckligt bra för att genomföra hela processen.
Vad är segmentering?
Segmenteringsmetoden 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 pagingmetoden alltid har en fast storlek.
Ett programsegment inkluderar programmets huvudfunktion, datastrukturer, hjälpfunktioner etc. OS upprätthåller en segmentkartatabell för alla processer. Den innehåller också en lista över lediga minnesblock tillsammans med dess storlek, segmentnummer och dess minnesplatser i huvudminnet eller virtuellt minne.
Vad är dynamisk laddning?
Dynamisk laddning är en rutin i ett program som inte laddas förrän programmet anropar den. Alla rutiner bör finnas på en disk i ett flyttbart laddningsformat. Huvudprogrammet kommer att laddas in i minnet och köras. Dynamisk laddning ger också bättre utnyttjande av minnesutrymmet.
Vad är dynamisk länkning?
Länkning är en metod som hjälper operativsystemet att samla in och sammanfoga olika moduler av kod och data till en enda körbar fil. Filen kan läsas in i minnet och köras. Operativsystemet kan länka systemnivåbibliotek till ett program som kombinerar biblioteken vid laddningstid. I den dynamiska länkningsmetoden länkas bibliotek vid körningstid, så programkodstorleken kan förbli liten.
Skillnaden mellan statisk och dynamisk laddning
| Statisk laddning | Dynamisk laddning |
|---|---|
| Statisk laddning används när du vill ladda ditt program statiskt. Vid kompileringstillfället länkas och kompileras hela programmet utan behov av någon extern modul eller programberoende. | I ett dynamiskt laddat program kommer referenser att tillhandahållas och inläsningen kommer att ske vid exekveringstillfället. |
| Vid laddningstid laddas hela programmet in i minnet och startar dess exekvering. | Rutiner för biblioteket laddas in i minnet endast när de krävs i programmet. |
Skillnaden mellan statisk och dynamisk länkning
Här är de viktigaste skillnaderna mellan statisk och dynamisk länkning:
| Statisk länkning | Dynamisk länkning |
|---|---|
| Statisk länkning används för att kombinera alla andra moduler som krävs av ett program till en enda körbar kod. Detta hjälper operativsystemet att förhindra beroenden vid körning. | När dynamisk länkning används behöver den inte länka själva modulen eller biblioteket till programmet. Istället använder den en referens till den dynamiska modul som tillhandahålls vid tidpunkten för kompilering och länkning. |

