Anbefalt, 2024

Redaksjonens

Forskjellen mellom intern og ekstern fragmentering

Når en prosess er lastet eller fjernet fra den fysiske minnesblokken, oppretter det et lite hull i minnesområdet som kalles fragment. På grunn av fragmentering, mislykkes systemet i å tilordne det sammenhengende minnesrommet til en prosess, selv om den har den ønskede mengde minne, men på en ikke-sammenhengende måte. Fragmenteringen er ytterligere klassifisert i to kategorier intern og ekstern fragmentering.

Både intern og ekstern klassifisering påvirker datatilgangshastigheten til systemet. De har en grunnleggende forskjell mellom dem, dvs. intern fragmentering oppstår når minnesblokker med fast størrelse blir tildelt prosessen uten å angi størrelsen på prosessen, og ekstern fragmentering oppstår når prosessene tildeles minne dynamisk. La oss gå videre og diskutere forskjellene, årsakene, løsningene bak intern og ekstern fragmentering ved hjelp av sammenligningsdiagrammet som er vist nedenfor.

Sammenligningstabel

Grunnlag for sammenligningIntern fragmenteringEkstern fragmentering
grunn~~POS=TRUNCDet oppstår når minneblokker med fast størrelse er tilordnet prosessene.Det oppstår når minnesplass i variabel størrelse tildeles prosessene dynamisk.
HendelseNår minnet som er tilordnet prosessen, er litt større enn minnet som blir forespurt av prosessen, oppretter dette ledig plass i den tildelte blokk som forårsaker intern fragmentering.Når prosessen er fjernet fra minnet, oppretter den ledig plass i minnet som forårsaker ekstern fragmentering.
LøsningMinnet må deles i blokker med variabel størrelse og tilordne den beste tilpasningsblokken til prosessen.Komprimering, personsøking og segmentering.

Definisjon av intern fragmentering

Intern fragmentering oppstår når minnet er delt inn i blokker med fast størrelse . Når en prosessforespørsel for minnet blir tildelt den faste størrelsesblokken til prosessen. Hvis minnet som er tilordnet prosessen, er noe større enn det ønskede minnet, er forskjellen mellom tilordnet og forespurt minne, den interne fragmenteringen .

Denne gjenværende plass i den faste størrelsesblokken kan ikke tilordnes noen prosess, da det ikke ville være tilstrekkelig til å tilfredsstille minneforespørselen ved prosessen. La oss forstå intern fragmentering ved hjelp av et eksempel. Minneplassen er delt inn i de faste størrelse blokkene på 18.464 byte. La oss si at en prosessforespørsel for 18.460 byte og partisjonert fast størrelse blokk på 18.464 byte er allokert til prosessen. Resultatet er 4 byte med 18.464 byte forblir tomme som er den interne fragmenteringen.

Overhead for å holde oversikt over internals hullet opprettet på grunn av intern fragmentering er vesentlig mer enn antall interne hull. Problemet med intern fragmentering kan løses ved å partisjonere minnet i blokkblokken med variabel størrelse og tildele den best-sized blokk til en prosess som ber om minnet. Likevel vil det ikke helt eliminere problemet med intern fragmentering, men vil redusere den til en viss grad.

Definisjon av ekstern fragmentering

Ekstern fragmentering oppstår når det er tilstrekkelig mengde plass i minnet for å tilfredsstille minneforespørselen til en prosess. Men prosessens minneforespørsel kan ikke tilfredsstilles, ettersom det tilgjengelige minnet er på en ikke-sammenhengende måte. Enten du bruker førstepasset eller best egnet minneallokeringsstrategi, vil det forårsake ekstern fragmentering.

Når en prosess er lastet og fjernet fra minnet, oppretter det ledige rommet hullet i minnet, og det er mange slike hull i minnet, dette kalles Ekstern fragmentering. Selv om den første passformen og den beste passformen kan påvirke mengden ekstern fragmentering, kan den ikke elimineres helt. Komprimering kan være løsningen for ekstern fragmentering.

Komprimeringsalgoritmen blander alt minneinnhold til en side og frigjør en stor blokk med minne. Men komprimeringsalgoritmen er dyr. Det er en alternativ løsning for å løse ekstern fragmenteringsproblem som vil tillate en prosess å skaffe fysisk minne på en ikke-sammenhengende måte. Teknikkene for å oppnå denne løsningen er personsøking og segmentering.

Viktige forskjeller mellom intern og ekstern fragmentering

  1. Den grunnleggende årsaken til forekomsten av intern og ekstern fragmentering er at intern fragmentering oppstår når minnet deles inn i faste størrelser, mens ekstern fragmentering oppstår når minnet deles inn i variabelstørrelsesblokker .
  2. Når minnebrikken tildelt prosessen kommer ut til å være litt større enn ønsket minne, forårsaker ledig plass i den tildelte minneblokken intern fragmentering. På den andre siden, når prosessen er fjernet fra minnet, oppretter det ledig plass som forårsaker et hull i minnet som kalles ekstern fragmentering.
  3. Problemet med intern fragmentering kan løses ved å partere minnet i blokker med variabel størrelse og tildele den beste tilpasningsblokken til forespørselsprosessen. Imidlertid er løsningen for ekstern fragmentering komprimering, men det er dyrt å implementere, slik at prosessene må ha lov til å skaffe fysisk minne på en ikke-sammenhengende måte. For å oppnå dette blir teknikken for personsøking og segmentering innført.

Konklusjon:

Problemet med intern fragmentering kan reduseres, men det kan ikke elimineres helt. Personsøkingen og segmenteringen bidrar til å utnytte plassen frigjort på grunn av ekstern fragmentering ved å tillate en prosess å okkupere minnet på en ikke-sammenhengende måte.

Top