Anbefalet, 2020

Redaktørens Valg

Forskel mellem intern og ekstern fragmentering

Når en proces er indlæst eller fjernet fra den fysiske hukommelsesblok, skaber den et lille hul i hukommelsesrummet, der kaldes fragment. På grund af fragmentering svigtes systemet ved tildeling af det tilstødende hukommelsesrum til en proces, selv om den har den ønskede mængde hukommelse, men på en ikke-sammenhængende måde. Fragmenteringen er yderligere klassificeret i to kategorier intern og ekstern fragmentering.

Både den interne og den eksterne klassifikation påvirker dataadgangens hastighed på systemet. De har en grundlæggende forskel mellem dem, dvs. intern fragmentering opstår, når hukommelsesblokke i fast størrelse er allokeret til processen uden at vedrøre størrelsen af ​​processen, og ekstern fragmentering opstår, når processerne tildeles memory dynamisk. Lad os gå videre og diskutere forskellene, årsagerne, løsningerne bag intern og ekstern fragmentering ved hjælp af sammenligningsdiagrammet vist nedenfor.

Sammenligningstabel

Grundlag for sammenligningIntern fragmenteringEkstern fragmentering
GrundlæggendeDet sker, når hukommelsesblokke i fast størrelse er allokeret til processerne.Det opstår, når der tildeles dynamiske processer til variable størrelser.
HændelseNår den hukommelse der er tildelt processen, er lidt større end den hukommelse, der efterspørges af processen, skaber dette ledig plads i den tildelte blok, der forårsager intern fragmentering.Når processen fjernes fra hukommelsen, skaber den det ledige plads i hukommelsen, der forårsager ekstern fragmentering.
OpløsningHukommelsen skal opdeles i blokke med variabel størrelse og tildele den bedste tilpasningsblok til processen.Komprimering, personsøgning og segmentering.

Definition af intern fragmentering

Intern fragmentering opstår, når hukommelsen er opdelt i blokke med fast størrelse . Når en procesforespørgsel til hukommelsen er tildelt den faste størrelse blok til processen. Hvis den hukommelse, der er tildelt processen, er noget større end den ønskede hukommelse, er forskellen mellem tildelt og anmodet hukommelse den interne fragmentering .

Dette resterende rum inde i den blokke med fast størrelse kan ikke allokeres til nogen proces, da det ikke ville være tilstrækkeligt til at tilfredsstille hukommelsesforespørgslen ved processen. Lad os forstå intern fragmentering ved hjælp af et eksempel. Hukommelsespladsen er opdelt i de faste størrelser af 18.464 byte. Lad os sige, at en procesanmodning for 18.460 bytes og en partitioneret fast størrelse blok på 18.464 bytes er tildelt processen. Resultatet er 4 bytes på 18.464 bytes forblev tom, hvilket er den interne fragmentering.

Overhead for at holde styr på internals hullet skabt på grund af intern fragmentering er væsentligt mere end antallet af indre huller. Problemet med intern fragmentering kan løses ved at opdele hukommelsen ind i blokke med variabel størrelse og tildele den bedste størrelse blok til en proces, der anmoder om hukommelsen. Alligevel vil det ikke helt eliminere problemet med intern fragmentering, men vil reducere det til en vis grad.

Definition af ekstern fragmentering

Ekstern fragmentering opstår, når der er tilstrækkelig plads i hukommelsen for at tilfredsstille hukommelsesanmodningen fra en proces. Men processens hukommelsesforespørgsel kan ikke opfyldes, da den tilgængelige hukommelse er uden sammenhæng. Enten du anvender den første tilpasning eller bedst egnet hukommelsesallokeringsstrategi, vil det medføre ekstern fragmentering.

Når en proces er indlæst og fjernet fra hukommelsen, skaber det ledige rum hullet i hukommelsesområdet, og der er mange sådanne huller i hukommelsesområdet, kaldes dette Ekstern fragmentering. Selvom den første pasform og den bedste pasform kan påvirke mængden af ​​ekstern fragmentering, kan den ikke helt elimineres. Komprimering kan være løsningen til ekstern fragmentering.

Komprimeringsalgoritmen blander alt hukommelsesindhold til den ene side og frigør en stor blok af hukommelse. Men komprimeringsalgoritmen er dyr. Der er en alternativ løsning til løsning af ekstern fragmentering problem, som vil gøre det muligt for en proces at erhverve fysisk hukommelse på en ikke-sammenhængende måde. Teknikkerne til at opnå denne løsning er personsøgning og segmentering.

Nøgleforskelle mellem intern og ekstern fragmentering

  1. Den grundlæggende årsag til forekomsten af ​​intern og ekstern fragmentering er, at intern fragmentering opstår, når hukommelsen er opdelt i blokker med fast størrelse, mens ekstern fragmentering opstår, når hukommelsen er opdelt i blokke med variabel størrelse .
  2. Når den hukommelsesblok, der tildeles processen, kommer ud til at være lidt større end den ønskede hukommelse, forårsager det ledige plads i den tildelte hukommelsesblok intern fragmentering. På den anden side, når processen fjernes fra hukommelsen, skaber den ledig plads, hvilket forårsager et hul i hukommelsen, som kaldes ekstern fragmentering.
  3. Problemet med intern fragmentering kan løses ved at opdele hukommelsen i blokke med variabel størrelse og tildele den bedste tilpasningsblok til forespørgselsprocessen. Imidlertid er løsningen til ekstern fragmentering komprimering, men det er dyrt at implementere, så processerne skal have lov til at erhverve fysisk hukommelse på en ikke-sammenhængende måde. For at opnå dette indføres teknikken til personsøgning og segmentering.

Konklusion:

Problemet med intern fragmentering kan reduceres, men det kan ikke helt elimineres. Paging og segmentering hjælper med at udnytte rummet frigjort på grund af ekstern fragmentering ved at tillade en proces at optage hukommelsen på en ikke-sammenhængende måde.

Top