სხვაობა სისტემურ ზარსა და ფუნქციის ზარს შორის

სხვაობა სისტემურ ზარსა და ფუნქციის ზარს შორის
სხვაობა სისტემურ ზარსა და ფუნქციის ზარს შორის

ვიდეო: სხვაობა სისტემურ ზარსა და ფუნქციის ზარს შორის

ვიდეო: სხვაობა სისტემურ ზარსა და ფუნქციის ზარს შორის
ვიდეო: System Calls 2024, ნოემბერი
Anonim

სისტემური ზარი ფუნქციური ზარის წინააღმდეგ

ტიპიური პროცესორი სათითაოდ ასრულებს ინსტრუქციებს. მაგრამ შეიძლება იყოს შემთხვევები, როდესაც პროცესორმა უნდა შეაჩეროს მიმდინარე ინსტრუქცია და შეასრულოს სხვა პროგრამა ან კოდის სეგმენტი (სხვა ადგილას მცხოვრები). ამის შემდეგ პროცესორი უბრუნდება ნორმალურ შესრულებას და აგრძელებს იქიდან, სადაც შეჩერდა. სისტემური ზარი და ფუნქციის გამოძახება ასეთი შემთხვევებია. სისტემური ზარი არის ზარი სისტემაში ჩაშენებულ ქვეპროგრამაზე. ფუნქციის გამოძახება არის ზარი ქვეპროგრამაზე თავად პროგრამის ფარგლებში.

რა არის სისტემური ზარი?

სისტემური ზარები კომპიუტერზე გაშვებულ პროგრამებს აძლევს ინტერფეისს ოპერაციულ სისტემასთან სასაუბროდ.როდესაც პროგრამას სჭირდება სერვისის მოთხოვნა (რომელზეც მას არ აქვს ამის უფლება თავად გააკეთოს) ოპერაციული სისტემის ბირთვიდან, ის იყენებს სისტემურ ზარს. მომხმარებლის დონის პროცესებს არ აქვთ იგივე ნებართვები, როგორც პროცესებს, რომლებიც უშუალოდ მოქმედებენ ოპერაციულ სისტემასთან. მაგალითად, გარე I/O მოწყობილობასთან კომუნიკაციისთვის ან სხვა პროცესებთან ურთიერთობისთვის, პროგრამა იყენებს სისტემურ ზარებს.

რა არის ფუნქციის გამოძახება?

ფუნქციის გამოძახებას ასევე უწოდებენ ქვეპროგრამულ ზარს. ქვეპროგრამა (ასევე ცნობილია როგორც პროცედურა, ფუნქცია, მეთოდი ან რუტინა) უფრო დიდი პროგრამის ნაწილია, რომელიც პასუხისმგებელია კონკრეტული დავალების შესრულებაზე. უფრო დიდმა პროგრამამ შეიძლება შეასრულოს დიდი დატვირთვა, ხოლო ქვეპროგრამა შეიძლება შეასრულოს მხოლოდ მარტივი დავალება, რომელიც ასევე დამოუკიდებელია პროგრამის დარჩენილი კოდირებისგან. ფუნქცია დაშიფრულია ისე, რომ მისი გამოძახება შეიძლება მრავალჯერ და სხვადასხვა ადგილიდან (თუნდაც სხვა ფუნქციებიდან). როდესაც ფუნქციის გამოძახება ხდება, პროცესორს შეუძლია გადავიდეს იქ, სადაც არის ფუნქციის კოდი და სათითაოდ შეასრულოს ფუნქციის ინსტრუქციები.ფუნქციების დასრულების შემდეგ, პროცესორი დაბრუნდება ზუსტად იქ, სადაც შეჩერდა და განაგრძობს შესრულებას შემდეგი ინსტრუქციიდან. ფუნქციები შესანიშნავი ინსტრუმენტია კოდის ხელახალი გამოყენებისთვის. ბევრი თანამედროვე პროგრამირების ენა მხარს უჭერს ფუნქციებს. ფუნქციების კოლექციას ბიბლიოთეკა ეწოდება. ბიბლიოთეკები ხშირად გამოიყენება როგორც პროგრამული უზრუნველყოფის გაზიარებისა და ვაჭრობის საშუალება. ზოგიერთ შემთხვევაში, მთელი პროგრამა შეიძლება იყოს ქვეპროგრამების თანმიმდევრობა (მაგ. ხრახნიანი კოდის შედგენა).

რა განსხვავებაა სისტემურ ზარსა და ფუნქციურ ზარს შორის?

სისტემური ზარი არის ზარი სისტემაში ჩაშენებულ ქვეპროგრამაზე, ხოლო ფუნქციის გამოძახება არის ზარი პროგრამის ფარგლებში ქვეპროგრამაზე. ფუნქციური ზარებისგან განსხვავებით, სისტემური ზარები გამოიყენება მაშინ, როდესაც პროგრამას სჭირდება რაიმე დავალების შესრულება, რომლის პრივილეგიაც მას არ აქვს. სისტემური ზარები არის შესვლის წერტილები ოპერაციული სისტემის ბირთვში და არ არის დაკავშირებული პროგრამასთან (როგორც ფუნქციის ზარები). სისტემური ზარებისგან განსხვავებით, ფუნქციური ზარები პორტატულია. სისტემური ზარის დრო უფრო მეტია, ვიდრე ფუნქციის გამოძახების ხარჯი, რადგან უნდა მოხდეს გადასვლა მომხმარებლის რეჟიმსა და ბირთვის რეჟიმს შორის.სისტემური ზარები შესრულებულია ბირთვის მისამართების სივრცეში, ხოლო ფუნქციის ზარები შესრულებულია მომხმარებლის მისამართის სივრცეში.

გირჩევთ: