Գործընթաց ընդդեմ թեմայի
Որպեսզի համակարգիչները միաժամանակ կատարեն մեկից ավելի գործողություններ, և՛ պրոցեսը, և՛ շարանը հիանալի ծառայություն են մատուցում, սակայն նրանց միջև տարբերություն կա նրանց աշխատանքի ձևով: Համակարգչի վրա աշխատող բոլոր ծրագրերն օգտագործում են առնվազն մեկ պրոցես կամ շարանը: Գործընթացը և շարանը թույլ են տալիս պրոցեսորին սահուն անցնել մի քանի առաջադրանքների միջև՝ միաժամանակ կիսելով համակարգչի ռեսուրսները: Այսպիսով, ծրագրավորողի պարտականությունն է արդյունավետ կերպով օգտագործել թելերն ու պրոցեսները՝ բարձր արդյունավետությամբ պրոցեսոր ստեղծելու համար: Թելերի և գործընթացների իրականացումը տարբերվում է ըստ առկա օպերացիոն համակարգի:
Ի՞նչ է գործընթացը:
Գործընթացը, ընդհանուր առմամբ, գործողությունների շարունակական շարք է կոնկրետ արդյունքի հասնելու համար: Բայց համակարգիչների աշխարհում պրոցեսը համակարգչային ծրագրի կատարման օրինակ է: Այլ կերպ ասած, դա գործող համակարգչային ծրագրի մեկ դեպքի գաղափար է: Պարզապես պրոցեսները աշխատում են երկուականներ, որոնք պարունակում են մեկ կամ մի քանի շղթաներ:
Ըստ գործընթացում ներգրավված թելերի քանակի, գոյություն ունեն երկու տեսակի գործընթացներ: Դրանք միաթելային և բազմաթելային գործընթացներ են: Ինչպես ցույց է տալիս նրա անունը, մեկ թելային պրոցեսը գործընթաց է, որն ունի միայն մեկ շարանը: Հետևաբար, այս շարանը գործընթաց է, և միայն մեկ գործունեություն է տեղի ունենում. Բազմաթելային գործընթացում կան մեկից ավելի թելեր, և կան մեկից ավելի գործողություններ, որոնք տեղի են ունենում:
Երկու կամ ավելի գործընթացներ կարող են հաղորդակցվել միմյանց ներսում՝ օգտագործելով միջգործընթացային հաղորդակցությունը: Բայց դա բավականին բարդ է և ավելի շատ ռեսուրսների կարիք ունի: Նոր գործընթաց ստեղծելիս ծրագրավորողը պետք է անի երկու բան. Դրանք հանդիսանում են մայր գործընթացի կրկնօրինակում և հիշողության և ռեսուրսների բաշխում նոր գործընթացի համար: Այսպիսով, սա իսկապես թանկ է:
Ի՞նչ է թեմա?
ՏՏ աշխարհում թելը համակարգչային ծրագրի հրահանգների ամենափոքր կատարումն է, որը կարելի է ինքնուրույն կառավարել ըստ ժամանակացույցի: Թելը գործընթացի մեջ կատարման պարզ ուղի է: Թելը նույնքան հզոր է, որքան պրոցեսը, քանի որ շարանը կարող է անել այն ամենը, ինչ կարող է անել գործընթացը: Թելը թեթև գործընթաց է և պահանջում է ավելի քիչ ռեսուրսներ: Թելերը կարող են կարդալ և գրել նույն փոփոխականներից և տվյալների կառուցվածքի փոփոխականներից: Թեման կարող է հեշտությամբ հաղորդակցվել թելերի միջև:
Այսօր բազմաթելային աշխատանքը բնական մոտեցում է դարձել բազմաթիվ խնդիրների նկատմամբ: Մեծ աշխատանքը բաժանվում է մասերի և դրանցից յուրաքանչյուրին վերագրվում է կատարման միավոր, որը կոչվում է թել։ Սա պարզապես բազմաթելային է: Սա պահանջում է զգույշ ծրագրավորում, քանի որ շղթաները կիսում են տվյալների կառուցվածքները, որոնք միաժամանակ փոփոխվում են մեկ այլ շղթայի կողմից, ինչպես նաև այն պատճառով, որ շղթաները կիսում են հասցեների նույն տարածքը:Թելերի ևս մեկ առավելությունն այն է, որ թելերն ապահովում են զուգահեռության հասնելու արդյունավետ և արդյունավետ միջոց: Համակարգի թողունակությունը կարող է մեծանալ՝ թույլ տալով, որ մի քանի թելեր աշխատեն մի քանի պրոցեսորների վրա, քանի որ շարանը ինքնուրույն պլանավորվող միավոր է։
Mutli-threading
Ո՞րն է տարբերությունը Process-ի և Thread-ի միջև:
• Գործընթացները դժվար է ստեղծել, քանի որ այն պահանջում է մայր գործընթացի կրկնօրինակում և հիշողության բաշխում, մինչդեռ թելերը հեշտ է ստեղծել, քանի որ դրանք առանձին հասցեների տարածք չեն պահանջում:
• Թելերն օգտագործվում են պարզ առաջադրանքների համար, մինչդեռ գործընթացներն օգտագործվում են ծանր առաջադրանքների համար, ինչպիսիք են հավելվածի կատարումը:
• Գործընթացները չեն կիսում նույն հասցեի տարածքը, բայց նույն գործընթացի շղթաները կիսում են նույն հասցեի տարածքը:
• Գործընթացները միմյանցից անկախ են, բայց շղթաները փոխկապակցված են, քանի որ նրանք կիսում են նույն հասցեների տարածությունը:
• Գործընթացը կարող է բաղկացած լինել բազմաթիվ թելերից:
• Քանի որ շղթաները կիսում են հասցեների նույն տարածքը, վիրտուալացված հիշողությունը կապված է միայն գործընթացների, բայց ոչ թեմայի հետ: Սակայն հստակ վիրտուալացված պրոցեսորը կապված է յուրաքանչյուր թեմայի հետ:
• Յուրաքանչյուր գործընթաց ունի իր սեփական կոդը և տվյալները, մինչդեռ գործընթացների շարանը կիսում է նույն կոդը և տվյալները:
• Յուրաքանչյուր պրոցես սկսվում է հիմնական շղթայով, սակայն անհրաժեշտության դեպքում այն կարող է ստեղծել լրացուցիչ թելեր:
• Համատեքստի անցումը գործընթացների միջև շատ ավելի դանդաղ է, քան համատեքստի անցումը նույն գործընթացի թելերի միջև:
• Թեմաները կարող են ուղղակիորեն մուտք ունենալ դեպի իրենց տվյալների սեգմենտները, սակայն գործընթացներն ունեն տվյալների հատվածների իրենց սեփական պատճենը:
• Գործընթացներն ունեն ընդհանուր ծախսեր, բայց ոչ թելեր:
Ամփոփում՝
Գործընթաց ընդդեմ թեմայի
Գործընթացը և շարանը երկու տեխնիկա են, որոնք օգտագործվում են ծրագրավորողների կողմից՝ պրոցեսորը և համակարգչի վրա հրահանգների կատարումն արդյունավետ և արդյունավետ կերպով կառավարելու համար: Գործընթացը կարող է պարունակել մի քանի թելեր: Թելերը ապահովում են հիշողությունը կիսելու արդյունավետ միջոց, չնայած այն գործարկում է բազմաթիվ կատարումներ, քան գործընթացներ: Հետևաբար, թելերը այլընտրանք են բազմաթիվ գործընթացներին: Բազմամիջուկ պրոցեսորների նկատմամբ աճող միտումով թելերը կդառնան ամենակարևոր գործիքը ծրագրավորողների աշխարհում: