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 იწყებს შესრულებას
კონტექსტის გადართვა არის ძირითადი მექანიზმი ოპერაციული სისტემების მრავალშრიანობაში, რომელიც საშუალებას აძლევს შექმნას ილუზია მრავალ პროცესზე პარალელურად შესრულების.