Jag vill hitta den totala externa och interna fragmenteringen. Vad jag förstår är att extern fragmentering inträffar när processer laddas och tas bort från minnet, vilket gör att minnet bryts i små bitar, och att intern fragmentering är det oanvända minnet internt i en partition.

Som ett exempel, säg att jag hade följande minneshål: 50 KB, 400 KB, 130 KB, 300 KB, 150 KB och 70 KB (i den ordningen). Nu har jag följande processer som behöver följande minnesutrymme (i ordning): A = 230 KB, B = 180 KB, C = 130 KB, D = 120 KB, E = 200 KB.

Med metoden

har jag bestämt följande fördelning:

50 KB hål tilldelas 0 processer -> 50 KB gratis
400 KB hål tilldelas processer A och C -> 40 KB gratis
130 KB hål tilldelas process D -> 10 KB gratis
300 KB hål tilldelas process B -> 120 KB gratis
150 KB hål tilldelas 0 processer -> 150 KB gratis
70 KB hål tilldelas 0 processer -> 70 KB gratis

Så baserat på min förståelse av definitionerna:

Total intern fragmentering = 50 KB + 150 KB + 70 KB = 270 KB
Total extern fragmentering = 40 KB + 10 KB + 120 KB = 170 KB

Är det korrekt? Tack.

Kommentarer

  • Vi avskräcker " kontrollera om mitt svar är korrekt " frågor, eftersom endast " ja / nej " svar är möjliga, vilket vann ' t hjälper dig eller framtida besökare. Se här och här . Kan du redigera ditt inlägg för att fråga om ett specifikt konceptuellt problem som du ' är osäker på? Som en tumregel bör en bra konceptuell fråga vara användbar även för någon som inte ' tittar på det problem du råkar arbeta med. Om du bara behöver någon att kontrollera ditt arbete kan du söka efter en vän, klasskamrat eller lärare.
  • Ja, den konceptuella frågan är att hitta den totala externa och interna fragmenteringen. Det är ' titeln på frågan. Jag gav ett exempel som ett försök att svara på min egen fråga.
  • Vad mäter " fragmenteringen " ? Jag vet inte ' inte ens vilka enheter som är lämpliga för att beskriva en mängd med detta namn – men det verkar mycket osannolikt att det helt enkelt skulle vara ett antal byte bildas genom att summera storleken på varje fragment, helt enkelt för att sedan " fragmenteringen " av ett enda hål i storlek 270KB skulle vara detsamma som " fragmenteringen " på 270 hål, vardera i storlek 1KB, när uppenbarligen vilket meningsfullt mått som helst skulle tilldela den senare ett större antal.

Svar

Enligt problemet tilldelas process A till 400 kB minne, så minnet delas i två delar, en för att tillgodose begäran och återstående (170 KB) är typ av extern fragmentering betecknad med (170 KB E).

På samma sätt för process B med 300 KB som resulterar i 120 KB E.

På samma sätt för process c med (170 KB E) resultat (40 KB E).

På samma sätt för process D us ing (130 KB) resultat (10 KB E) begäran av process E kan ”t slutföras Så total extern fragmentering = 40 + 10 + 120 = 170 KB

Total intern fragmentering = 50 + 150 + 70 = 270 KB

Svar

NEJ! Den totala interna fragmenteringen är 40 + 10 + 120 = 170 kB och den totala externa fragmenteringen är 50 +150 + 70 = 270 kB

Svar

Först och främst måste du ange om dina partitioner har fast storlek eller variabel storlek. Om de använder dynamisk partitionering (variabel storlek) kommer den interna fragmenteringen alltid att vara 0 eftersom den endast definieras för partitionering med fast storlek. Om du antar att din partitionering är statisk, blir total intern fragmentering summan av alla interna fragmenteringar. Och för extern fragmentering är det lika med det totala lediga minnet tillgängligt (hål plus sammanhängande ledigt minne). Därför kommer extern fragmentering här att vara (50 + 40 + 10 + 120 + 150 + 70) KB = det totala lediga minnet tillgängligt = totalt oanvänt minne. Medan intern fragmentering kommer att vara (40 + 10 + 120) KB räknas inte de partitioner som inte används eftersom de inte allokeras till någon process. Extern fragmentering är en uppsättning av intern fragmentering vid partitionering med fast storlek.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *