Linux-ის ოპერაციული სისტემის განვითარებაში მნიშვნელოვანი ცვლილებები იგეგმება. დეველოპერები ცდილობენ, მოძველებული და რესურსტევადი fork() და exec() მექანიზმი უფრო თანამედროვე გადაწყვეტილებით ჩაანაცვლონ. ეს წყვილი ათწლეულებია, რაც Linux-ში პროცესების მართვის სტანდარტად ითვლება, თუმცა მისი ეფექტურობა დღევანდელი მოთხოვნების ფონზე კითხვის ნიშნის ქვეშ დგება.
პრობლემა იმაშია, რომ fork() სისტემური გამოძახებისას სისტემა იძულებულია, სრულად დააკოპიროს მიმდინარე პროცესის მდგომარეობა, მათ შორის მეხსიერებაც. ხშირ შემთხვევაში, ამას მაშინვე მოსდევს exec(), რომელიც მანამდე ასე გულდასმით დაკოპირებულ მეხსიერებას შლის და ახალი ფაილით ანაცვლებს. ეს პროცესი ზედმეტად ძვირი და არაეფექტურია.
ცოტა ხნის წინ შემოთავაზებული იყო „შაბლონების“ (spawn templates) კონცეფცია, რომელიც დეველოპერებს საშუალებას მისცემდა, ხშირად გამეორებადი პროცესები წინასწარ დაეკონფიგურირებინათ. იდეა გულისხმობდა spawn_template_create() ფუნქციის გამოყენებას, რაც ბირთვს საშუალებას მისცემდა, შეენახა ინფორმაცია კონკრეტული ფაილის შესახებ და შეემცირებინა მისი მომავალში გაშვების დრო. ტესტებმა აჩვენა, რომ ამ მეთოდით მუშაობა დაახლოებით 2%-ით უფრო სწრაფია.
თუმცა, Linux-ის ბირთვის წამყვანი დეველოპერების ნაწილი, მათ შორის მატეუშ გუზიკი, ამ მიდგომას სკეპტიკურად უყურებს. გუზიკის განცხადებით, fork() და exec() იდიომა მოძველებულია და ის ფუნდამენტურად უნდა გამოირიცხოს. მისი აზრით, აქცენტი უნდა გაკეთდეს არა არსებულის ოპტიმიზაციაზე, არამედ „სუფთა“ პროცესის შექმნაზე, რომელიც არ მოითხოვს ზედმეტ კოპირებას.
კრისტიან ბრაუნერის ინიციატივა კიდევ უფრო შორს მიდის. ის გვთავაზობს ახალი API-ს შექმნას pidfd აბსტრაქციის ბაზაზე. ეს სისტემა fsconfig()-ის მსგავსად იმუშავებდა და დეველოპერებს საშუალებას მისცემდა, ეტაპობრივად დაეკონფიგურირებინათ ახალი პროცესი — გარემოს, სიგნალების და სხვა პარამეტრების ჩათვლით. ასეთი მიდგომა საბოლოოდ posix_spawn()-ის რეალურ, მომხმარებლის სივრცეში (user space) დანერგვის საშუალებასაც მოგვცემს.
| Index entries for this article | |
| Kernel | System calls/clone() |
| Kernel | System calls/execve() |
შედეგად, „შაბლონების“ იდეა, სავარაუდოდ, არ დაინერგება. მის ნაცვლად, დეველოპერები უფრო ფუნდამენტურ ცვლილებებზე ფოკუსირდებიან, რამაც შესაძლოა Linux-ში პროცესების მართვა რადიკალურად გაამარტივოს და დააჩქაროს.



დისკუსია
0 კომენტარი
ჯერ კომენტარი არ არის — იყავი პირველი.