Jeg vil finne den totale eksterne og interne fragmenteringen. Det jeg forstår er at ekstern fragmentering oppstår når prosesser lastes inn og fjernes fra minnet, noe som får minnet til å bli brutt i små biter, og at intern fragmentering er det ubrukte minnet internt i en partisjon.
Som et eksempel, si at jeg hadde følgende minnehull: 50 KB, 400 KB, 130 KB, 300 KB, 150 KB og 70 KB (i den rekkefølgen). Nå har jeg følgende prosesser som trenger følgende minne (i rekkefølge): A = 230 KB, B = 180 KB, C = 130 KB, D = 120 KB, E = 200 KB.
Ved hjelp av first fit -metoden har jeg bestemt følgende tildeling:
50 KB hull tildeles 0 prosesser -> 50 KB gratis
400 KB hull tildeles prosesser A og C -> 40 KB gratis
130 KB hull tildeles prosess D -> 10 KB gratis
300 KB hull tildeles prosess B -> 120 KB gratis
150 KB hull tildeles 0 prosesser -> 150 KB gratis
70 KB hull tildeles 0 prosesser -> 70 KB gratis
Så, basert på min forståelse av definisjonene:
Total intern fragmentering = 50 KB + 150 KB + 70 KB = 270 KB
Total ekstern fragmentering = 40 KB + 10 KB + 120 KB = 170 KB
Er dette riktig? Takk.
Kommentarer
- Vi fraråder " vennligst sjekk om svaret mitt er riktig " spørsmål, da bare " ja / nei " svar er mulig, som vant ' t hjelpe deg eller fremtidige besøkende. Se her og her . Kan du redigere innlegget ditt for å spørre om et bestemt konseptuelt problem du ' er usikker på? Som en tommelfingerregel bør et godt konseptuelt spørsmål være nyttig selv for noen som ikke ' ikke ser på problemet du tilfeldigvis jobber med. Hvis du bare trenger noen til å sjekke arbeidet ditt, kan du oppsøke en venn, klassekamerat eller lærer.
- Ja, det konseptuelle problemet er å finne den totale eksterne og interne fragmenteringen. Det ' er tittelen på spørsmålet. Jeg ga et eksempel som et forsøk på å svare på mitt eget spørsmål.
- Hva måler " fragmenteringen " ? Jeg vet ikke ' ikke engang hvilke enheter som er passende for å beskrive en mengde med dette navnet – men det virker veldig usannsynlig at det bare ville være et antall byte dannet ved å summere størrelsen på hvert fragment, ganske enkelt fordi da " fragmenteringen " av et enkelt hull i størrelse 270KB ville være den samme som " fragmenteringen " på 270 hull, hver av størrelse 1KB, når det klart er et hvilket som helst meningsmål å tildele et større tall til sistnevnte.
Svar
I følge problemet er prosess A tildelt 400 KB minne, så minnet blir delt i to deler, en for å tilfredsstille forespørselen og gjenværende (170 KB) er typen ekstern fragmentering betegnet med (170 KB E).
Tilsvarende for prosess B ved bruk av 300 KB som resulterer i 120 KB E.
Tilsvarende for prosess c ved bruk av (170 KB E) -resultater (40 KB E).
Tilsvarende for prosess D us ing (130 KB) resultater (10 KB E) forespørsel om prosess E kan «ikke fullføres Så total ekstern fragmentering = 40 + 10 + 120 = 170 KB
Total intern fragmentering = 50 + 150 + 70 = 270 KB
Svar
NEI! Total intern fragmentering er 40 + 10 + 120 = 170 kB og total ekstern fragmentering er 50 +150 + 70 = 270 kB
Svar
Først og fremst må du spesifisere om partisjonene dine har fast størrelse eller variabel størrelse. Hvis de bruker dynamisk partisjonering (variabel størrelse), vil den interne fragmenteringen alltid være 0 siden den bare er definert for partisjonering med fast størrelse. Forutsatt at partisjoneringen din er statisk, vil total intern fragmentering være summen av alle interne fragmenteringer. Og for ekstern fragmentering er det lik det totale ledige minnet tilgjengelig (hull pluss sammenhengende ledig minne). Derfor vil ekstern fragmentering her være (50 + 40 + 10 + 120 + 150 + 70) KB = totalt ledig minne tilgjengelig = totalt ubrukt minne. Mens intern fragmentering vil være (40 + 10 + 120) KB, blir partisjonene som ikke brukes ikke telt siden de ikke er allokert til noen prosess. Ekstern fragmentering er et supersett av intern fragmentering i tilfelle partisjonering med fast størrelse.