Iekšējā vai ārējā sadrumstalotība
Iekšējās un ārējās sadrumstalotības atšķirība ir tēma, kas interesē daudzus, kuriem patīk uzlabot zināšanas par datoru. Pirms zināt šo atšķirību, mums jāskatās, kas ir sadrumstalotība. Sadrumstalotība ir parādība, kas rodas datora atmiņā, piemēram, brīvpiekļuves atmiņā (RAM) vai cietajos diskos, kas izraisa izšķērdēšanu un neefektīvu brīvās vietas izmantošanu. Kaut arī tiek kavēta efektīva pieejamās vietas izmantošana, tas rada arī veiktspējas problēmas. Iekšējā sadrumstalotība rodas, ja atmiņas piešķiršana balstās uz fiksēta izmēra nodalījumiem, kur pēc tam, kad slotā tiek piešķirta maza izmēra lietojumprogramma, tiek izniekota atlikusī brīvā vieta šajā slotā. Ārējā sadrumstalotība rodas, kad atmiņa tiek dinamiski piešķirta, kur pēc vairāku laika nišu ielādēšanas un izkraušanas šeit un tur brīvā vieta tiek sadalīta, nevis blakus.
Kas ir iekšējā sadrumstalotība?
Apsveriet iepriekš redzamo attēlu, kur tiek ievērots fiksēta izmēra atmiņas piešķiršanas mehānisms. Sākotnēji atmiņa ir tukša, un sadalītājs ir sadalījis atmiņu fiksēta lieluma nodalījumos. Tad vēlāk trīs programmas ar nosaukumu A, B, C ir ielādētas pirmajos trīs nodalījumos, kamēr 4. nodalījums joprojām ir brīvs. A programma atbilst nodalījuma lielumam, tāpēc šajā nodalījumā nav atkritumu, bet B un C programma ir mazāka par nodalījuma lielumu. Tātad daļēji 2. un 3. nodalījumā ir brīva vieta. Tomēr šī brīvā vieta nav izmantojama, jo atmiņas sadalītājs programmām piešķir tikai pilnus nodalījumus, bet ne t daļas. Šo brīvās vietas izšķērdēšanu sauc par iekšējo sadrumstalotību.
Iepriekš minētajā piemērā tas ir vienāda izmēra fiksētās starpsienas, bet tas var notikt pat situācijā, kad ir pieejamas dažāda fiksēta izmēra starpsienas. Parasti atmiņa vai cietākā vieta tiek sadalīta blokos, kuru lielums parasti ir 2, piemēram, 2, 4, 8, 16 baiti. Tātad programma vai 3 baitu fails tiks piešķirts 4 baitu blokam, bet viens šī bloka baits kļūs neizmantojams, izraisot iekšēju sadrumstalotību.
Kas ir ārējā sadrumstalotība?
Apsveriet attēlu iepriekš, kur atmiņas piešķiršana tiek veikta dinamiski. Dinamiskās atmiņas piešķiršanā piešķīrējs piešķir tikai precīzu nepieciešamo izmēru šai programmai. Pirmā atmiņa ir pilnīgi brīva. Tad dažāda lieluma programmas A, B, C, D un E tiek ielādētas viena pēc otras, un tās secīgi tiek ievietotas atmiņā. Tad vēlāk programma A un programma C aizveras un tiek izkrauta no atmiņas. Tagad atmiņā ir trīs brīvas vietas apgabali, taču tie nav blakus. Tagad tiks ielādēta liela programma, ko sauc par programmu F, taču programmai F nepietiek ne ar vienu no brīvās vietas blokiem. Programmai F noteikti pietiek ar visu brīvo vietu pievienošanu, taču blakus esošās vietas trūkuma dēļ vietas ir neizmantojams F programmai. To sauc par ārējo sadrumstalotību.
Kāda ir atšķirība starp iekšējo un ārējo sadrumstalotību?
• Iekšējā sadrumstalotība rodas, ja tiek izmantota fiksēta izmēra atmiņas piešķiršanas tehnika. Ārējā sadrumstalotība rodas, ja tiek izmantota dinamiskā atmiņas piešķiršanas tehnika.
• Iekšējā sadrumstalotība rodas, ja fiksēta izmēra nodalījums tiek piešķirts programmai / failam, kura izmērs ir mazāks nekā nodalījums, padarot pārējo šī nodalījuma vietu nelietojamu. Ārējā sadrumstalotība rodas tāpēc, ka pēc programmu vai failu ielādēšanas un izkraušanas kādu laiku trūkst pietiekami daudz blakus esošas vietas, jo tad visa brīva vieta tiek sadalīta šeit un tur.
• Ārējo sadrumstalotību var iegūt, blīvējot, kad piešķirtie bloki tiek pārvietoti uz vienu pusi, lai iegūtu blakus esošo vietu. Tomēr šī darbība prasa laiku, un arī noteiktas kritiski nozīmētās zonas, piemēram, sistēmas pakalpojumus, nevar droši pārvietot. Mēs varam novērot šo blīvēšanas soli, kas izdarīts uz cietajiem diskiem, palaižot diska defragmentētāju sistēmā Windows.
• Ārēju sadrumstalotību var novērst ar tādiem mehānismiem kā segmentēšana un peidžeru meklēšana. Šeit tiek dota loģiska blakusesoša virtuālās atmiņas telpa, bet patiesībā faili / programmas tiek sadalīti daļās un izvietoti šeit un tur.
• Iekšējo sadrumstalotību var sabojāt ar vairāku izmēru starpsienām un piešķirot programmu, pamatojoties uz labāko piemērotību. Tomēr joprojām iekšējā sadrumstalotība nav pilnībā novērsta.
Kopsavilkums:
Iekšējā vai ārējā sadrumstalotība
Gan iekšējā, gan ārējā sadrumstalotība ir parādības, kurās tiek izšķiesta atmiņa. Iekšējā sadrumstalotība notiek fiksēta izmēra atmiņas piešķiršanā, bet ārējā fragmentācija notiek dinamiskās atmiņas piešķiršanā. Kad piešķirto nodalījumu aizņem programma, kas ir mazāka par nodalījumu, atlikusī vieta tiek izšķiesta, izraisot iekšēju sadrumstalotību. Ja pēc programmu ielādēšanas un izkraušanas nevar atrast pietiekami daudz blakus esošās vietas, jo šeit un tur tiek sadalīta brīva vieta, tas izraisa ārēju sadrumstalotību. Sadrumstalotība var notikt jebkurā atmiņas ierīcē, piemēram, RAM, cietajā diskā un Flash diskdziņos.