Sobes.tech
Junior

Ի՞նչ է կոնտեքստի փոխանակումը։

sobes.tech AI

Պատասխան AI-ից

Կոնտեքստի փոխարկում (Context Switching) — դա է գործընթացը, երբ օպերացիոն համակարգը պահպանում է մեկ գործընթացի (կամ հոսքի) վիճակը և վերականգնում է մյուս գործընթացի (կամ հոսքի) վիճակը։ Սա թույլ է տալիս մի քանի գործընթացների բաժանել նույն պրոցեսորին:

Ալգորիթմը ներառում է հետևյալ քայլերը՝

  1. Ընթացիկ կոնտեքստի պահպանում: Պրոցեսորի ռեգիստրները, հրահանգների հաշվիչը (PC), ստեկի վիճակը և այլ տեղեկություններ ընթացիկ գործընթացի մասին պահվում են նրա նկարագրիչում (PCB - Процессի Կառավարման Բլոկ):
  2. Հաջորդ գործընթացի ընտրություն: Օպերացիոն համակարգի պլանավորիչը ընտրում է հաջորդ գործընթացը կատարելու համար:
  3. Կոնտեքստի վերականգնում: Ընտրված գործընթացի պահած վիճակը բեռնվում է նրա PCB-ից պրոցեսորի ռեգիստրների մեջ:

Կոնտեքստի փոխարկման ծախսերը (overhead) ներառում են՝

  • Վերջին վիճակի պահպանում և վերականգնում ժամանակը։
  • Էֆեկտիվության կորուստ cache misses-ների պատճառով, քանի որ մեկ գործընթացի տվյալներով լցված cache-ն այլ գործընթացի համար արդեն արդիական չէ։
  • Պլանավորողի հրահանգների կատարման ծախսերը։

Օրինակ՝

Ենթադրենք, որ ունենք երկու գործընթաց, A և B, որոնք աշխատում են մեկ CPU-կեղևում:

// սկզբում աշխատում է գործընթաց A
// գործընթաց A օգտագործում է CPU ռեսուրսները

// տեղի է ունենում իրադարձություն, որը պահանջում է փոխարկում, օրինակ, գործընթաց A-ի ժամանակի քվանտի ավարտը
// գործընթաց A-ի վիճակը (ռեգիստրներ, PC) պահվում է
// օպերացիոն համակարգը ընտրում է գործընթաց B-ին կատարելու համար
// գործընթաց B-ի վիճակը բեռնվում է
// գործընթաց B-ն սկսում է կատարվել

Կոնտեքստի փոխարկումը հիմնարար մեխանիզմ է օպերացիոն համակարգերի բազմագործառականության մեջ, որը թույլ է տալիս ստեղծել մի պատրանք, որ մի քանի գործընթացներ կատարվում են միաժամանակ մեկ ֆիզիկական պրոցեսորում։