Ներքին ընդդեմ արտաքին մասնատման
Ներքին և արտաքին մասնատման տարբերությունը շատերին հետաքրքրող թեմա է, ովքեր սիրում են բարելավել իրենց համակարգչային գիտելիքները: Նախքան այս տարբերությունը իմանալը, մենք պետք է տեսնենք, թե ինչ է մասնատումը: Fragmentation-ը մի երևույթ է, որը տեղի է ունենում համակարգչային հիշողության մեջ, ինչպիսիք են Random Access Memory (RAM) կամ կոշտ սկավառակները, ինչը հանգեցնում է ազատ տարածության վատնման և անարդյունավետ օգտագործման: Թեև առկա տարածքի արդյունավետ օգտագործումը խոչընդոտվում է, սա նաև աշխատանքի հետ կապված խնդիրներ է առաջացնում: Ներքին մասնատումը տեղի է ունենում, երբ հիշողության բաշխումը հիմնված է ֆիքսված չափի միջնորմների վրա, որտեղ փոքր չափի հավելված հատկացվելուց հետո այդ բնիկի մնացած ազատ տարածքը վատնում է:Արտաքին մասնատումը տեղի է ունենում, երբ հիշողությունը դինամիկ կերպով տեղաբաշխվում է, որտեղ մի քանի սլոտների բեռնումից և բեռնաթափումից հետո այստեղ և այնտեղ ազատ տարածքը բաշխվում է, այլ ոչ թե հարակից:
Ի՞նչ է ներքին մասնատումը:
Դիտարկենք վերը նշված նկարը, որտեղ կիրառվում է ֆիքսված չափի հիշողության բաշխման մեխանիզմ: Սկզբում հիշողությունը դատարկ է, և հատկացնողը հիշողությունը բաժանել է ֆիքսված չափի միջնորմների: Այնուհետև A, B, C անուններով երեք ծրագրեր բեռնվեցին առաջին երեք բաժանմունքներում, մինչդեռ 4-րդ բաժինը դեռ անվճար է:Ծրագիրը A-ն համապատասխանում է բաժանման չափին, ուստի այդ բաժանման մեջ վատնում չկա, բայց Ծրագիրը B և Ծրագիրը փոքր են բաժանման չափից: Այսպիսով, մաս 2-ում և 3-րդ մասում մնում է ազատ տարածություն: Այնուամենայնիվ, այս ազատ տարածքն անօգտագործելի է, քանի որ հիշողության հատկացուցիչը միայն լրիվ բաժանումներ է հատկացնում ծրագրերին, բայց ոչ դրա t մասերը: Ազատ տարածության այս վատնումն անվանում են ներքին մասնատում։
Վերոհիշյալ օրինակում դա հավասար չափի ֆիքսված միջնապատեր է, բայց դա կարող է տեղի ունենալ նույնիսկ այնպիսի իրավիճակում, երբ հասանելի են տարբեր ֆիքսված չափերի միջնորմներ: Սովորաբար հիշողությունը կամ ամենադժվար տարածությունը բաժանվում է բլոկների, որոնք սովորաբար ունեն 2 հզորության չափ, օրինակ՝ 2, 4, 8, 16 բայթ: Այսպիսով, ծրագիրը կամ 3 բայթանոց ֆայլը վերագրվելու է 4 բայթ բլոկին, բայց այդ բայթի մեկ բայթը կդառնա անօգտագործելի՝ առաջացնելով ներքին մասնատում:
Ի՞նչ է արտաքին մասնատումը:
Դիտարկենք վերևի նկարը, որտեղ հիշողության բաշխումը կատարվում է դինամիկ: Հիշողության դինամիկ տեղաբաշխման ժամանակ հատկացուցիչը հատկացնում է միայն այդ ծրագրի համար անհրաժեշտ չափը: Առաջին հիշողությունը լիովին անվճար է: Այնուհետև A, B, C, D և E տարբեր չափերի ծրագրերը բեռնվում են մեկը մյուսի հետևից և դրանք տեղադրվում են հիշողության մեջ՝ այդ հերթականությամբ։ Այնուհետև A և C ծրագիրը փակվում է, և դրանք բեռնաթափվում են հիշողությունից: Այժմ հիշողության մեջ կա երեք ազատ տարածություն, բայց դրանք հարակից չեն: Այժմ Ծրագիր F կոչվող մեծ ծրագիր է բեռնվելու, բայց ազատ տարածության բլոկներից ոչ մեկը բավարար չէ F ծրագրի համար: Բոլոր ազատ տարածքների ավելացումը միանշանակ բավարար է F ծրագրի համար, բայց հարևանության բացակայության պատճառով այդ տարածքը անօգտագործելի F ծրագրի համար. Սա կոչվում է Արտաքին մասնատում։
Ո՞րն է տարբերությունը ներքին և արտաքին մասնատման միջև:
• Ներքին մասնատումը տեղի է ունենում, երբ օգտագործվում է ֆիքսված չափի հիշողության բաշխման տեխնիկա: Արտաքին մասնատումը տեղի է ունենում, երբ օգտագործվում է դինամիկ հիշողության բաշխման տեխնիկա:
• Ներքին մասնատումը տեղի է ունենում, երբ ֆիքսված չափի միջնորմը վերագրվում է ավելի փոքր չափի ծրագրին/ֆայլին, քան այն բաժանումը, որը դարձնում է այդ բաժանման մնացած տարածքը անօգտագործելի: Արտաքին մասնատումը պայմանավորված է ծրագրերի կամ ֆայլերի բեռնումից և բեռնաթափումից հետո բավականաչափ հարակից տարածքի բացակայության պատճառով, քանի որ այնուհետև ամբողջ ազատ տարածքը բաշխվում է այստեղ և այնտեղ:
• Արտաքին մասնատումը կարող է արդյունահանվել խտացման միջոցով, որտեղ նշանակված բլոկները տեղափոխվում են մի կողմ, այնպես որ հարակից տարածք է ձեռք բերվում: Այնուամենայնիվ, այս գործողությունը ժամանակ է պահանջում, և նաև որոշ կարևոր նշանակված տարածքներ, օրինակ, համակարգի ծառայությունները չեն կարող ապահով տեղափոխվել: Մենք կարող ենք դիտարկել այս սեղմման քայլը, որը կատարվում է կոշտ սկավառակների վրա Windows-ում սկավառակի ապաֆրագմենտատորը գործարկելիս:
• Արտաքին մասնատումը կարելի է կանխել այնպիսի մեխանիզմներով, ինչպիսիք են հատվածավորումը և էջավորումը: Այստեղ տրված է տրամաբանական հարակից վիրտուալ հիշողության տարածք, մինչդեռ իրականում ֆայլերը/ծրագրերը բաժանվում են մասերի և տեղադրվում այստեղ-այնտեղ:
• Ներքին մասնատումը կարող է խեղվել՝ ունենալով մի քանի չափի միջնորմներ և նշանակելով ծրագիր՝ հիմնված լավագույն համապատասխանության վրա: Այնուամենայնիվ, դեռևս ներքին մասնատումը լիովին չի վերացվել:
Ամփոփում՝
Ներքին ընդդեմ արտաքին մասնատման
Եվ ներքին մասնատումը, և արտաքին մասնատումը երևույթներ են, որտեղ հիշողությունը վատնում է: Ներքին մասնատումը տեղի է ունենում ֆիքսված չափի հիշողության բաշխման ժամանակ, մինչդեռ արտաքին մասնատումը տեղի է ունենում դինամիկ հիշողության բաշխման ժամանակ: Երբ հատկացված միջնորմը զբաղեցնում է միջնորմից փոքր ծրագիր, մնացած տարածքը վատնում է` առաջացնելով ներքին մասնատում: Երբ ծրագրերը բեռնելուց և բեռնաթափելուց հետո բավականաչափ հարակից տարածք չի գտնվել, քանի որ ազատ տարածություն է բաժանվում այս ու այն կողմ, դա առաջացնում է արտաքին մասնատում:Մասնատումը կարող է առաջանալ ցանկացած հիշողության սարքում, ինչպիսիք են RAM-ը, կոշտ սկավառակը և ֆլեշ կրիչները: