Junior
Ի՞նչ է կոնտեքստի փոխանակումը։
sobes.tech AI
Պատասխան AI-ից
Կոնտեքստի փոխարկում (Context Switching) — դա է գործընթացը, երբ օպերացիոն համակարգը պահպանում է մեկ գործընթացի (կամ հոսքի) վիճակը և վերականգնում է մյուս գործընթացի (կամ հոսքի) վիճակը։ Սա թույլ է տալիս մի քանի գործընթացների բաժանել նույն պրոցեսորին:
Ալգորիթմը ներառում է հետևյալ քայլերը՝
- Ընթացիկ կոնտեքստի պահպանում: Պրոցեսորի ռեգիստրները, հրահանգների հաշվիչը (PC), ստեկի վիճակը և այլ տեղեկություններ ընթացիկ գործընթացի մասին պահվում են նրա նկարագրիչում (PCB - Процессի Կառավարման Բլոկ):
- Հաջորդ գործընթացի ընտրություն: Օպերացիոն համակարգի պլանավորիչը ընտրում է հաջորդ գործընթացը կատարելու համար:
- Կոնտեքստի վերականգնում: Ընտրված գործընթացի պահած վիճակը բեռնվում է նրա PCB-ից պրոցեսորի ռեգիստրների մեջ:
Կոնտեքստի փոխարկման ծախսերը (overhead) ներառում են՝
- Վերջին վիճակի պահպանում և վերականգնում ժամանակը։
- Էֆեկտիվության կորուստ cache misses-ների պատճառով, քանի որ մեկ գործընթացի տվյալներով լցված cache-ն այլ գործընթացի համար արդեն արդիական չէ։
- Պլանավորողի հրահանգների կատարման ծախսերը։
Օրինակ՝
Ենթադրենք, որ ունենք երկու գործընթաց, A և B, որոնք աշխատում են մեկ CPU-կեղևում:
// սկզբում աշխատում է գործընթաց A
// գործընթաց A օգտագործում է CPU ռեսուրսները
// տեղի է ունենում իրադարձություն, որը պահանջում է փոխարկում, օրինակ, գործընթաց A-ի ժամանակի քվանտի ավարտը
// գործընթաց A-ի վիճակը (ռեգիստրներ, PC) պահվում է
// օպերացիոն համակարգը ընտրում է գործընթաց B-ին կատարելու համար
// գործընթաց B-ի վիճակը բեռնվում է
// գործընթաց B-ն սկսում է կատարվել
Կոնտեքստի փոխարկումը հիմնարար մեխանիզմ է օպերացիոն համակարգերի բազմագործառականության մեջ, որը թույլ է տալիս ստեղծել մի պատրանք, որ մի քանի գործընթացներ կատարվում են միաժամանակ մեկ ֆիզիկական պրոցեսորում։