Vad är Memory Management?
Minneshantering är processen för att kontrollera och samordna datorminne, tilldela delar som kallas block till olika pågående program för att optimera systemets totala prestanda.
Det är den viktigaste funktionen för ett operativsystem som hanterar primärt minne. Det hjälper processer att flytta fram och tillbaka mellan huvudminnet och körningsdisken. Det hjälper OS att hålla reda på varje minnesplats, oavsett om det är allokerat till någon process eller om det förblir gratis.
I denna handledning för operativsystem lär du dig:
- Vad är Memory Management?
- Varför använda minneshantering?
- Minnehanteringstekniker
- Vad är att byta?
- Vad är minnestilldelning?
- Vad är personsökning?
- Vad är fragmenteringsmetod?
- Vad är segmentering?
- Vad är dynamisk laddning?
- Vad är dynamisk länkning?
- Skillnaden mellan statisk och dynamisk belastning
- Skillnaden mellan statisk och dynamisk länkning
Varför använda minneshantering?
Här finns skäl för att använda minneshantering:
- Det 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.
- Spårar när inventeringen frigörs eller inte fördelas. Enligt det kommer att uppdatera status.
- Det fördelar utrymmet till applikationsrutiner.
- Det ser också till att dessa applikationer inte stör varandra.
- Hjälper till att skydda olika processer från varandra
- Det placerar programmen i minnet så att minnet utnyttjas till fullo.
Minnehanteringstekniker
Här är några av de viktigaste teknikerna för minneshantering:
Enstaka angränsande tilldelning
Det är den enklaste tekniken för minneshantering. I den här metoden är alla typer av datorminne utom en liten del som är reserverad för operativsystemet tillgängligt för en applikation. Exempelvis allokerar MS-DOS operativsystem minne på detta sätt. Ett inbäddat system körs också på en enda applikation.
Delad fördelning
Det delar upp primärt minne i olika minnespartitioner, som mestadels är angränsande minnesområden. Varje partition lagrar all information för en specifik uppgift eller ett jobb. Den här metoden består av att tilldela en partition till ett jobb när det startar och inte tilldelas när det slutar.
Paged Memory Management
Denna metod delar upp datorns huvudminne i enheter med fast storlek, så kallade sidramar. Denna hanteringsenhet för maskinvaruminne mappar sidor i ramar som ska allokeras på sidbasis.
Segmenterad minneshantering
Segmenterat minne är den enda minneshanteringsmetoden som inte ger användarens program ett linjärt och angränsande adressutrymme.
Segment behöver hårdvarustöd i form av en segmenttabell. Den innehåller den fysiska adressen till sektionen i minne, storlek och andra data som åtkomstskydd bitar och status.
Vad är att byta?
Bytning är en metod där processen ska bytas tillfälligt från huvudminnet till lagringsutrymmet. Det kommer senare att tas tillbaka till minnet för fortsatt körning.
Backing store är en hårddisk eller någon annan sekundär lagringsenhet som borde vara tillräckligt stor för att rymma kopior av alla minnesbilder för alla användare. Det kan också erbjuda direkt åtkomst till dessa minnesbilder.
Fördelar med att byta
Här är stora fördelar / fördelar med att byta:
- Det erbjuder en högre grad av multiprogrammering.
- Tillåter dynamisk omplacering. Till exempel, om adressbindning vid exekveringstid används kan processer bytas på olika platser. Annars i händelse av bindningar för kompilering och laddning bör processer flyttas till samma plats.
- Det hjälper till att bättre utnyttja minnet.
- Minsta slöseri med CPU-tid efter avslutad så att den enkelt kan användas på en prioriteringsbaserad schemaläggningsmetod för att förbättra dess prestanda.
Vad är minnestilldelning?
Minnesallokering är en process genom vilken datorprogram tilldelas minne eller utrymme.
Här är huvudminnet uppdelat i två typer av partitioner
- Lågt minne - Operativsystemet finns i denna typ av minne.
- Högt minne - Användarprocesser lagras i högt minne.
Partition Allocation
Minne är uppdelat i olika block eller partitioner. Varje process fördelas enligt kravet. Partitionstilldelning är en idealisk metod för att undvika intern fragmentering.
Nedan följer de olika partitionstilldelningsschema:
- First Fit : I denna typpassning tilldelas partitionen, vilket är det första tillräckliga blocket från början av huvudminnet.
- Bästa passform: Det tilldelar processen till partitionen som är den första minsta partitionen bland de fria partitionerna.
- Värsta passform: Det tilldelar processen till partitionen, som är den största tillräckligt fritt tillgängliga partitionen i huvudminnet.
- Next Fit: Det liknar mest den första Fit, men denna Fit söker efter den första tillräckliga partitionen från den senaste tilldelningspunkten.
Vad är personsökning?
Personsökning är en lagringsmekanism som gör att OS kan hämta processer från sekundärlagring till huvudminnet i form av sidor. I Paging-metoden är huvudminnet uppdelat i små fysiska block med fast storlek, vilket kallas ramar. Storleken på en ram bör hållas densamma som storleken på en sida för att maximalt utnyttja huvudminnet och för att undvika extern fragmentering. Personsökning används för snabbare åtkomst till data, och det är ett logiskt koncept.
Vad är fragmentering?
Processer lagras och tas bort från minnet, vilket skapar ledigt minne, som är för litet för att användas av andra processer.
Efter ibland kallas processer som inte kan allokeras till minnesblock eftersom dess lilla storlek och minnesblock alltid förblir oanvända fragmentering. Denna typ av problem inträffar under ett dynamiskt minnesallokeringssystem när lediga block är ganska små, så det kan inte uppfylla någon begäran.
Två typer av fragmenteringsmetoder är:
- Extern fragmentering
- Intern fragmentering
- Extern fragmentering kan reduceras genom att omarrangera minnesinnehållet för att placera allt ledigt minne tillsammans i ett enda block.
- Den interna fragmenteringen kan minskas genom att tilldela den minsta partitionen, som fortfarande är tillräckligt bra för att bära hela processen.
Vad är segmentering?
Segmenteringsmetoden fungerar nästan på samma sätt som personsökning. Den enda skillnaden mellan de två är att segmenten har variabel längd, medan sidorna alltid har fast storlek i personsökningsmetoden.
Ett programsegment inkluderar programmets huvudfunktion, datastrukturer, verktygsfunktioner etc. OS har en segmenttabell för alla processer. Den innehåller också en lista över lediga minnesblock tillsammans med dess storlek, segmentnummer och dess minnesplatser i huvudminnet eller det virtuella minnet.
Vad är dynamisk laddning?
Dynamisk laddning är en rutin för ett program som inte laddas förrän programmet anropar det. Alla rutiner ska finnas på disken i ett flyttbart laddningsformat. Huvudprogrammet laddas in i minnet och körs. Dynamisk laddning ger också bättre minneutnyttjande.
Vad är dynamisk länkning?
Länkning är en metod som hjälper OS att samla och slå samman olika moduler av kod och data till en enda körbar fil. Filen kan laddas in i minnet och köras. OS kan länka systemnivåbibliotek till ett program som kombinerar biblioteken vid laddningstid. I dynamisk länkningsmetod länkas bibliotek vid körningstid, så programkodstorleken kan förbli liten.
Skillnaden mellan statisk och dynamisk belastning
Statisk laddning | Dynamisk laddning |
Statisk laddning används när du vill ladda ditt program statiskt. Vid tidpunkten för sammanställningen kommer hela programmet att länkas och sammanställas utan behov av någon extern modul eller programberoende. | I ett dynamiskt laddat program kommer referenser att tillhandahållas och laddningen kommer att göras vid tidpunkten för körningen. |
Vid laddningstiden laddas hela programmet i minnet och startar dess körning. | Rutinerna i biblioteket laddas bara i minnet när de krävs i programmet. |
Skillnaden mellan statisk och dynamisk länkning
Här är huvudskillnaden mellan statisk och dynamisk länk:
Statisk länkning | Dynamisk länkning |
Statisk länkning används för att kombinera alla andra moduler, som krävs av ett program, i en enda körbar kod. Detta hjälper OS att förhindra körning beroende. | När dynamisk länkning används behöver det inte länka den faktiska modulen eller biblioteket till programmet. Använd istället en referens till den dynamiska modulen som tillhandahölls vid tidpunkten för sammanställning och länkning. |
Sammanfattning:
- Minnehantering är processen för att kontrollera och samordna datorminne, tilldela delar som kallas block till olika pågående program för att optimera systemets totala prestanda.
- Det 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.
- I Single Contiguous Allocation är alla typer av datorminne utom en liten del som är reserverad för operativsystemet tillgängligt för en applikation
- Partitionerad fördelningsmetod delar upp primärt minne i olika minnespartitioner, vilket mestadels är angränsande minnesområden
- Paged Memory Management-metoden delar upp datorns huvudminne i enheter med fast storlek, så kallade sidramar
- Segmenterat minne är den enda minneshanteringsmetoden som inte ger användarens program ett linjärt och angränsande adressutrymme.
- Bytning är en metod där processen ska bytas tillfälligt från huvudminnet till lagringsutrymmet. Det kommer senare att tas tillbaka till minnet för fortsatt körning.
- Minnesallokering är en process genom vilken datorprogram tilldelas minne eller utrymme.
- Personsökning är en lagringsmekanism som gör att OS kan hämta processer från sekundärlagring till huvudminnet i form av sidor.
- Fragmentering avser tillståndet för en disk där filer delas in i bitar utspridda runt disken.
- Segmenteringsmetoden fungerar nästan på samma sätt som personsökning. Den enda skillnaden mellan de två är att segmenten har variabel längd, medan sidorna alltid har fast storlek i personsökningsmetoden.
- Dynamisk laddning är en rutin för ett program som inte laddas förrän programmet anropar det.
- Länkning är en metod som hjälper OS att samla och slå samman olika moduler av kod och data till en enda körbar fil.