Բազմաթիվ պրոցեսորների պլանավորում օպերացիոն համակարգում


Համակարգի ընդհանուր արդյունավետությունը բարձրացնելու համար ժամանակակից համակարգչային համակարգերում հաճախ օգտագործվում են բազմաթիվ պրոցեսորներ կամ միջուկներ: Օպերացիոն համակարգը պետք է կարողանա արդյունավետորեն պլանավորել տարբեր պրոցեսորների վրա կատարվող գործընթացները, սակայն այդ ռեսուրսները լավագույնս օգտագործելու համար:

Բազմաթիվ պրոցեսորների պլանավորումը ներառում է որոշում, թե որ պրոցեսները պետք է վերագրվեն, թե որ պրոցեսորին կամ միջուկին, և որքան ժամանակ պետք է թույլատրվի աշխատել: Ապահովելով, որ բոլոր գործընթացները արդարացիորեն և պատշաճ կերպով առաջնահերթություն ստանան, նպատակն է հասնել առկա պրոցեսորների արդյունավետ օգտագործմանը:

Այս հոդվածում մենք կքննարկենք բազմակի պրոցեսորների պլանավորումը, օգտագործվող տարբեր մոտեցումները, օպերացիոն համակարգերում բազմակի պրոցեսորների ժամանակացույցի տեսակները և մի քանի դեպքեր:

Բազմաթիվ պրոցեսորների ժամանակացույց

Բազմաթիվ պրոցեսորների պլանավորման նպատակը, որը նաև հայտնի է որպես բազմապրոցեսորային պլանավորում, համակարգի պլանավորման գործառույթի ստեղծումն է, որն օգտագործում է մի քանի պրոցեսորներ: Բազմապրոցեսորային պլանավորման ժամանակ մի քանի պրոցեսորներ բաժանում են ծանրաբեռնվածությունը (բեռնվածության բաշխումը)՝ մի քանի գործընթացների միաժամանակյա կատարումը հնարավոր դարձնելու համար: Համեմատած մեկ պրոցեսորային պլանավորման հետ, բազմապրոցեսորային պլանավորումն ընդհանուր առմամբ ավելի բարդ է: Բազմապրոցեսորային պլանավորման համակարգում կան բազմաթիվ միանման պրոցեսորներ, որոնք մեզ թույլ են տալիս ցանկացած պահի կատարել ցանկացած գործընթաց:

Համակարգի բազմաթիվ պրոցեսորները հաճախ են շփվում և կիսում են ընդհանուր ավտոբուսը, հիշողությունը և այլ ծայրամասային սարքերը: Արդյունքում, ասում են, որ համակարգը ամուր կապված է: Այս համակարգերն օգտագործվում են ամեն անգամ, երբ մեծ քանակությամբ տվյալներ պետք է մշակվեն, և դրանք հիմնականում օգտագործվում են արբանյակային, եղանակի կանխատեսման և այլնի համար:

Մի քանի պրոցեսորային պլանավորման որոշ դեպքերում պրոցեսորների աշխատանքը միատարր է կամ նույնական: Հերթի ցանկացած գործընթաց կարող է գործարկվել ցանկացած հասանելի պրոցեսորի վրա:

Բազմապրոցեսորային համակարգերը կարող են լինել միատարր (նույն պրոցեսոր) կամ տարասեռ (տարբեր տեսակի պրոցեսորներ): Կարող են կիրառվել պլանավորման հատուկ սահմանափակումներ, ինչպիսիք են սարքերը, որոնք միացված են մեկ պրոցեսորին մասնավոր ավտոբուսի միջոցով:

Մեկ պրոցեսոր ունեցող համակարգի համար պլանավորման իդեալական մեթոդը չի կարող որոշվել որևէ կանոնով կամ քաղաքականությամբ: Չկա նաև իդեալական պլանավորման ռազմավարություն մի քանի պրոցեսորներով համակարգի համար:

Բազմակի պրոցեսորների պլանավորման մոտեցումներ

Գոյություն ունեն երկու տարբեր ճարտարապետություններ, որոնք օգտագործվում են բազմապրոցեսորային համակարգերում

Սիմետրիկ բազմամշակում

SMP համակարգում յուրաքանչյուր պրոցեսոր համեմատելի է և ունի նույն հասանելիությունը դեպի հիշողություն և մուտքի/ելք ռեսուրսներ: CPU-ները միացված չեն master-slave եղանակով, և նրանք բոլորն օգտագործում են նույն հիշողությունը և I/O ենթահամակարգերը: Սա հուշում է, որ հիշողության յուրաքանչյուր տեղ և մուտքի/ելք սարքը հասանելի է յուրաքանչյուր պրոցեսորի համար առանց սահմանափակումների: Օպերացիոն համակարգը կառավարում է SMP համակարգի պրոցեսորների միջև առաջադրանքների բաշխումը, ինչը թույլ է տալիս յուրաքանչյուր գործողություն կատարել ցանկացած պրոցեսորի կողմից:

Ասիմետրիկ բազմամշակում

AMP ասիմետրիկ ճարտարապետության մեջ մեկ պրոցեսոր, որը հայտնի է որպես հիմնական պրոցեսոր, ունի ամբողջական մուտք դեպի համակարգի բոլոր ռեսուրսները, մասնավորապես հիշողությունը և I/O սարքերը: Հիմնական պրոցեսորը պատասխանատու է մյուս պրոցեսորներին առաջադրանքների բաշխման համար, որոնք հայտնի են նաև որպես ստրուկ պրոցեսորներ: Յուրաքանչյուր ստրուկ պրոցեսոր պատասխանատու է առաջադրանքների որոշակի փաթեթ կատարելու համար, որոնք գլխավոր պրոցեսորն իրեն հանձնարարել է: Գլխավոր պրոցեսորը օպերացիոն համակարգից առաջադրանքներ է ստանում, որոնք այնուհետև գլխավոր պրոցեսորը բաշխում է ենթակա պրոցեսորներին։

Բազմապրոցեսորային ժամանակացույցի ալգորիթմների տեսակները

Օպերացիոն համակարգերը օգտագործում են մի շարք բազմապրոցեսորային պլանավորման ալգորիթմներ: Առավել բնորոշ տեսակներից են −

Round-Robin Scheduling − Շրջանակային պլանավորման ալգորիթմը հատկացնում է ժամանակի քվանտ յուրաքանչյուր պրոցեսորին և կարգավորում գործընթացները, որպեսզի յուրաքանչյուր պրոցեսորի վրա գործարկվեն շրջանաձև ռեժիմով: Քանի որ այն ապահովում է, որ յուրաքանչյուր գործընթաց ստանում է CPU-ի համարժեք ժամանակ, այս ռազմավարությունը կարող է օգտակար լինել համակարգերում, որտեղ բոլոր ծրագրերն ունեն նույն առաջնահերթությունը:

Առաջնահերթության պլանավորում − Այս մեթոդով գործընթացներին տրվում են առաջնահերթության մակարդակներ, և ավելի մեծ առաջնահերթություններ ունեցողները պետք է գործարկվեն առաջինը: Այս տեխնիկան կարող է օգտակար լինել այնպիսի համակարգերում, որտեղ որոշ աշխատանքներ, ինչպիսիք են իրական ժամանակում առաջադրանքները, պահանջում են ավելի բարձր առաջնահերթություն:

Առաջին պլանավորումը ամենակարճ աշխատանքի միջոցով (SJF) − Այս ալգորիթմը պլանավորում է առաջադրանքները՝ ըստ այն ժամանակ, երբ դրանք պետք է ավարտվեն: Նախատեսվում է, որ սկզբում կատարվի ամենակարճ աշխատանքը, ապա հաջորդ ամենափոքր աշխատանքը և այլն։ Այս տեխնիկան կարող է օգտակար լինել շատ արագ գործընթացներ ունեցող համակարգերում, քանի որ այն կարող է կրճատել բնորոշ արձագանքման ժամանակը:

Արդար բաժնետոմսերի պլանավորում - Այս տեխնիկայում պրոցեսորների թիվը և յուրաքանչյուր գործընթացի առաջնահերթությունը որոշում են, թե յուրաքանչյուրին որքան ժամանակ է հատկացվում: Քանի որ այն ապահովում է, որ յուրաքանչյուր գործընթաց ստանում է մշակման ժամանակի արդար բաժին, այս տեխնիկան կարող է օգտակար լինել երկար և կարճ գործընթացների խառնուրդ ունեցող համակարգերում:

Առաջին վերջնաժամկետի (EDF) պլանավորում − Այս ալգորիթմի յուրաքանչյուր գործընթացին տրվում է վերջնաժամկետ, և ամենավաղ վերջնաժամկետ ունեցող գործընթացն այն է, որն առաջինը կկատարվի: Իրական ժամանակի գործողություններ ունեցող համակարգերում, որոնք ունեն խիստ ժամկետներ, այս մոտեցումը կարող է օգտակար լինել:

Պլանավորում՝ օգտագործելով բազմամակարդակ հետադարձ կապի հերթ (MLFQ) − Օգտագործելով բազմաշերտ հետադարձ կապի հերթ (MLFQ), գործընթացներին տրվում է առաջնահերթության մի շարք մակարդակներ և կարող են առաջնահերթության մակարդակները վեր կամ վար շարժվել՝ ելնելով իրենց վարքագծից: Այս ռազմավարությունը կարող է օգտակար լինել կարճ և երկար գործընթացների խառնուրդ ունեցող համակարգերում:

Օգտագործեք օպերացիոն համակարգում բազմակի պրոցեսորների պլանավորման դեպքեր

Այժմ մենք կքննարկենք օպերացիոն համակարգերում բազմակի պրոցեսորային պլանավորման օգտագործման դեպքերից մի քանիսը

  • Բարձր արդյունավետության հաշվարկ − Բազմաթիվ պրոցեսորների պլանավորումը շատ կարևոր է բարձր արդյունավետությամբ հաշվողական (HPC) միջավայրերում, որտեղ կատարվում են լայնածավալ գիտական սիմուլյացիաներ, տվյալների վերլուծություն կամ բարդ հաշվարկներ: Գործընթացների արդյունավետ պլանավորումը մի քանի պրոցեսորների միջև հնարավորություն է տալիս զուգահեռ կատարմանը, ինչը հանգեցնում է ավելի արագ հաշվարկների և համակարգի ընդհանուր կատարողականի բարձրացման:

  • Սերվերի վիրտուալացում − Վիրտուալացված միջավայրերում, որտեղ մի քանի վիրտուալ մեքենաներ (VM) աշխատում են մեկ ֆիզիկական սերվերի վրա՝ բազմաթիվ պրոցեսորներով, արդյունավետ պլանավորումն ապահովում է ռեսուրսների արդար բաշխում VM-ներին: Այն հնարավորություն է տալիս օպտիմալ օգտագործել մշակող հզորությունը՝ միաժամանակ պահպանելով կատարողականի մեկուսացումը և ապահովելով, որ յուրաքանչյուր VM ստանա պրոցեսորի ժամանակի իր հատկացված բաժինը:

  • Իրական ժամանակի համակարգեր - Իրական ժամանակի համակարգերը, ինչպիսիք են օդատիեզերական, պաշտպանական և արդյունաբերական ավտոմատացման մեջ օգտագործվող համակարգերը, ունեն ժամանակի խիստ պահանջներ: Բազմաթիվ պրոցեսորների ժամանակացույցի ալգորիթմները, ինչպիսիք են «Առաջին վերջնաժամկետը» (EDF), ապահովում են, որ վերահաս վերջնաժամկետներով կարևոր առաջադրանքները կատարվեն անմիջապես՝ երաշխավորելով ժամանակին արձագանքման և ժամանակի խիստ սահմանափակումների կատարումը:

  • Մուլտիմեդիա մշակում − Մուլտիմեդիա հավելվածները, ինչպիսիք են վիդեո վերարտադրումը կամ աուդիո մշակումը, հաճախ պահանջում են զգալի հաշվողական հզորություն: Բազմաթիվ պրոցեսորների միջոցով պրոցեսների պլանավորումը թույլ է տալիս զուգահեռ կատարել մուլտիմեդիա առաջադրանքները՝ հնարավորություն տալով ավելի արագ մշակման և իրական ժամանակի հարթ կատարման:

  • Բաշխված հաշվարկ − Բաշխված հաշվողական համակարգերում առաջադրանքները բաշխվում են բազմաթիվ պրոցեսորների կամ հանգույցների միջև՝ համատեղ մշակման համար: Արդյունավետ պլանավորման ալգորիթմներն ապահովում են բեռի հավասարակշռում, սխալների հանդուրժողականություն և ռեսուրսների արդյունավետ օգտագործում բաշխված ենթակառուցվածքում՝ բարելավելով համակարգի ընդհանուր արդյունավետությունը և մասշտաբայնությունը:

  • Cloud Computing - Ամպային ծառայություններ մատուցողները օգտագործում են բազմաթիվ պրոցեսորներ՝ միաժամանակ սպասարկելու բազմաթիվ հաճախորդի հարցումներ: Պլանավորման ալգորիթմները օպտիմալացնում են վիրտուալ մեքենաների և բեռնարկղերի տեղաբաշխումը հասանելի պրոցեսորների միջև՝ ապահովելով արդարություն, մասշտաբայնություն և ռեսուրսների արդյունավետ օգտագործում ամպային հաշվողական միջավայրերում:

  • Մեծ տվյալների մշակում - Մեծ տվյալների վերլուծությունը ներառում է տվյալների հսկայական ծավալների մշակում և վերլուծություն: Բազմակի պրոցեսորների պլանավորումը հնարավորություն է տալիս զուգահեռ կատարել տվյալների մշակման առաջադրանքները, ինչպիսիք են տվյալների կլանումը, փոխակերպումը և վերլուծությունը՝ զգալիորեն նվազեցնելով տվյալների մշակման համար պահանջվող ժամանակը և հնարավորություն տալով իրական ժամանակում կամ գրեթե իրական ժամանակում պատկերացումներ ստանալ:

  • Գիտական մոդելավորում և մոդելավորում − Թվային սիմուլյացիաները և գիտական մոդելավորումը հաճախ պահանջում են հաշվողական մեծ ռեսուրսներ: Բազմաթիվ պրոցեսորների պլանավորումը թույլ է տալիս զուգահեռ կատարել սիմուլյացիոն առաջադրանքները՝ արագացնելով արդյունքներ ստանալու համար պահանջվող ժամանակը և հնարավորություն տալով հետազոտողներին ուսումնասիրել բարդ երևույթները և կատարել ավելի ճշգրիտ սիմուլյացիաներ:

  • Խաղեր − Ժամանակակից խաղային համակարգերում մի քանի պրոցեսորներ օգտագործվում են բարդ գրաֆիկայի արտապատկերման, ֆիզիկայի սիմուլյացիաների և AI հաշվարկների համար: Արդյունավետ պլանավորումն ապահովում է սահուն խաղ, նվազագույնի է հասցնում հետաձգումը և առավելագույնի է հասցնում հասանելի վերամշակման հզորության օգտագործումը` խաղային ըմբռնող փորձ ապահովելու համար:

  • Ներկառուցված համակարգեր − Բազմաթիվ պրոցեսորներով ներկառուցված համակարգերը, ինչպիսիք են ավտոմոբիլային համակարգերը, IoT սարքերը կամ ռոբոտաշինությունը, պահանջում են արդյունավետ պլանավորում՝ ապահովելու ժամանակին արձագանքը, իրական ժամանակի վերահսկումը և տարբեր պրոցեսորների վրա կատարվող տարբեր առաջադրանքների համակարգումը։ . Պլանավորման ալգորիթմները առաջնահերթություն են տալիս կարևոր առաջադրանքներին և կառավարում են ռեսուրսների բաշխումը համակարգի պահանջները բավարարելու համար:

Եզրակացություն

Բազմակի պրոցեսորների պլանավորումը հիմնական հասկացությունն է օպերացիոն համակարգերում և էական նշանակություն ունի բազմաթիվ պրոցեսորներով համակարգերում գործողությունների կատարման ընթացքը կառավարելու համար: Հաշվողական հզորության աճող անհրաժեշտության պատճառով բազմապրոցեսորային համակարգերը դառնում են ավելի լայն տարածում, և անհրաժեշտ են արդյունավետ պլանավորման տեխնիկա՝ համակարգի ռեսուրսների բաշխումը կառավարելու համար: