Ішкі және сыртқы фрагментация
Ішкі және сыртқы фрагментация арасындағы айырмашылық компьютерлік білімін жетілдіргісі келетіндердің көпшілігін қызықтырады. Бұл айырмашылықты білмес бұрын, біз фрагментацияның не екенін білуіміз керек. Фрагментация - бұл кездейсоқ кіру жады (RAM) немесе қатты дискілер сияқты компьютер жадында орын алатын, бос орынды бос орынның ысырапты және тиімсіз пайдаланылуын тудыратын құбылыс. Қол жетімді кеңістікті тиімді пайдалану кедергі болғанымен, бұл өнімділік мәселелерін де тудырады. Ішкі фрагментация жадты бөлу бекітілген өлшемді бөлімдерге негізделген кезде орын алады, мұнда шағын өлшемді қолданба слотқа тағайындалғаннан кейін сол слоттың қалған бос кеңістігі ысырап болады. Сыртқы фрагментация жад динамикалық түрде бөлінгенде орын алады, мұнда бірнеше ұяшықтарды жүктегеннен және түсіргеннен кейін бос орын іргелес емес, таратылады.
Ішкі фрагментация дегеніміз не?
Жоғарыдағы суретті қарастырыңыз, мұнда белгіленген өлшемді жадты бөлу механизмі орындалады. Бастапқыда жад бос және бөлуші жадты белгіленген өлшемді бөлімдерге бөлді. Содан кейін A, B, C деп аталатын үш бағдарлама бірінші үш бөлімге жүктелді, ал 4-ші бөлім әлі бос. А бағдарламасы бөлімнің өлшеміне сәйкес келеді, сондықтан бұл бөлімде ысырап болмайды, бірақ В бағдарламасы мен С бағдарламасы бөлім өлшемінен кішірек. Сонымен, 2-бөлімде және 3-бөлімде бос орын қалды. Дегенмен, бұл бос орын жарамсыз, өйткені жад бөлгіші бағдарламаларға тек толық бөлімдерді тағайындайды, бірақ оның t бөлігі жоқ. Бұл бос кеңістікті ысырап ету ішкі фрагментация деп аталады.
Жоғарыдағы мысалда бұл тең өлшемді бекітілген бөлімдер, бірақ бұл әртүрлі бекітілген өлшемдегі бөлімдер қол жетімді болған жағдайда да орын алуы мүмкін. Әдетте жад немесе ең қиын кеңістік әдетте 2, 4, 8, 16 байт сияқты 2 қуат өлшемін құрайтын блоктарға бөлінеді. Осылайша, бағдарлама немесе 3 байт файл 4 байт блокқа тағайындалады, бірақ бұл блоктың бір байты жарамсыз болып, ішкі фрагментацияға әкеледі.
Сыртқы фрагментация дегеніміз не?
Жоғарыдағы суретті қарастырыңыз, мұнда жадты бөлу динамикалық түрде орындалады. Динамикалық жадты бөлу кезінде бөлгіш тек сол бағдарлама үшін нақты қажетті өлшемді бөледі. Бірінші жады толығымен бос. Содан кейін әртүрлі өлшемдегі A, B, C, D және E бағдарламалары бірінен соң бірі жүктеледі және олар жадқа сол ретпен қатар орналасады. Кейінірек A бағдарламасы мен С бағдарламасы жабылады және олар жадтан босатылады. Енді жадта үш бос кеңістік аймағы бар, бірақ олар іргелес емес. Енді F бағдарламасы деп аталатын үлкен бағдарлама жүктеледі, бірақ бос кеңістік блогының ешқайсысы F бағдарламасы үшін жеткіліксіз. Барлық бос орындарды қосу F бағдарламасы үшін сөзсіз жеткілікті, бірақ көршілестіктің болмауына байланысты бұл кеңістік F бағдарламасы үшін жарамсыз. Бұл сыртқы фрагментация деп аталады.
Ішкі және сыртқы фрагментацияның айырмашылығы неде?
• Ішкі фрагментация бекітілген өлшемді жадты бөлу әдісі пайдаланылғанда орын алады. Сыртқы фрагментация динамикалық жадты бөлу әдісі пайдаланылғанда орын алады.
• Ішкі фрагментация бекітілген өлшемді бөлім бөлімнен кішірек өлшемді бағдарламаға/файлға тағайындалған кезде орын алады, бұл бөлімдегі бос орынның қалған бөлігін жарамсыз етеді. Сыртқы фрагментация бағдарламаларды немесе файлдарды біраз уақыт жүктегеннен және түсіргеннен кейін жеткілікті іргелес кеңістіктің болмауына байланысты, өйткені содан кейін барлық бос орын осында және сол жерде таратылады.
• Сыртқы фрагментацияны тығыздау арқылы алуға болады, онда тағайындалған блоктар бір жаққа жылжытылады, осылайша іргелес кеңістік пайда болады. Дегенмен, бұл әрекет уақытты қажет етеді, сонымен қатар белгілі бір маңызды аймақтарды, мысалы, жүйелік қызметтерді қауіпсіз жылжыту мүмкін емес. Біз Windows жүйесінде дискіні дефрагментациялау құралын іске қосқан кезде қатты дискілерде орындалатын бұл тығыздау қадамын байқай аламыз.
• Сыртқы фрагментацияны сегменттеу және пейджинг сияқты механизмдер арқылы болдырмауға болады. Мұнда логикалық іргелес виртуалды жад кеңістігі беріледі, ал шын мәнінде файлдар/бағдарламалар бөліктерге бөлініп, осында және сол жерде орналастырылады.
• Ішкі фрагментацияны бірнеше өлшемді бөлімдерге ие болу және ең жақсы сәйкестікке негізделген бағдарламаны тағайындау арқылы бұзуға болады. Дегенмен, ішкі фрагментация әлі де толық жойылған жоқ.
Қорытынды:
Ішкі және сыртқы фрагментация
Ішкі бөлшектену де, сыртқы фрагментация да жадтың босқа кететін құбылыстары. Ішкі фрагментация тіркелген өлшемді жадты бөлуде, ал сыртқы фрагментация динамикалық жадты бөлуде орын алады. Бөлінген бөлімді бөлімнен кішірек бағдарлама алған кезде, қалған кеңістік ішкі фрагментацияны тудыратын босқа кетеді. Бағдарламаларды жүктегеннен және түсіргеннен кейін жеткілікті шектес орын табылмағанда, бос орын осында және сол жерде таратылатындықтан, бұл сыртқы фрагментацияны тудырады. Фрагментация жедел жад, қатты диск және флэш-дискілер сияқты кез келген жад құрылғысында болуы мүмкін.