სხვაობა შეფერხებასა და ხაფანგს შორის

სხვაობა შეფერხებასა და ხაფანგს შორის
სხვაობა შეფერხებასა და ხაფანგს შორის

ვიდეო: სხვაობა შეფერხებასა და ხაფანგს შორის

ვიდეო: სხვაობა შეფერხებასა და ხაფანგს შორის
ვიდეო: Real time Systems | Hard & Soft | Embedded Systems | Lec-21 | Bhanu priya 2024, ნოემბერი
Anonim

შეწყვეტა ხაფანგის წინააღმდეგ

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

რა არის შეფერხება?

ტერმინი Interrupt ჩვეულებრივ დაცულია ტექნიკის შეფერხებისთვის. ეს არის პროგრამის კონტროლის შეფერხებები, რომლებიც გამოწვეულია გარე აპარატურის მოვლენებით. აქ გარე ნიშნავს გარე პროცესორს. ტექნიკის შეფერხებები, როგორც წესი, მოდის მრავალი სხვადასხვა წყაროდან, როგორიცაა ტაიმერის ჩიპი, პერიფერიული მოწყობილობები (კლავიატურები, მაუსი და ა.შ.), I/O პორტები (სერიული, პარალელური და ა. ბარათი და ა.შ.). ეს ნიშნავს, რომ ტექნიკის შეფერხებები თითქმის არასოდეს ხდება განმახორციელებელ პროგრამასთან დაკავშირებული რაიმე მოვლენის გამო. მაგალითად, მოვლენამ, როგორიცაა მომხმარებლის მიერ კლავიატურაზე კლავიშის დაჭერა, ან შიდა აპარატურის ტაიმერის დროის ამოწურვა, შეიძლება გამოიწვიოს ასეთი სახის შეფერხება და შეიძლება აცნობოს პროცესორს, რომ გარკვეულ მოწყობილობას გარკვეული ყურადღება სჭირდება. ასეთ სიტუაციაში CPU შეწყვეტს ყველაფერს, რასაც აკეთებდა (ანუ შეაჩერებს მიმდინარე პროგრამას), უზრუნველყოფს მოწყობილობის მიერ მოთხოვნილ სერვისს და დაუბრუნდება ნორმალურ პროგრამას. როდესაც ტექნიკის შეფერხებები ხდება და CPU იწყებს ISR-ს, სხვა ტექნიკის შეფერხებები გამორთულია (მაგ.გ. 80×86 მანქანებში). თუ გჭირდებათ სხვა ტექნიკის შეფერხებები, როდესაც ISR მუშაობს, თქვენ უნდა გააკეთოთ ეს აშკარად შეწყვეტის დროშის გასუფთავებით (სტი ინსტრუქციით). 80×86 მანქანებში, შეფერხების დროშის გასუფთავება იმოქმედებს მხოლოდ ტექნიკის შეფერხებებზე.

რა არის ხაფანგი?

ხაფანგი შეიძლება განისაზღვროს, როგორც კონტროლის გადაცემა, რომელიც ინიცირებულია პროგრამისტის მიერ. ტერმინი Trap გამოიყენება ურთიერთშენაცვლებით ტერმინთან Exception (რაც არის ავტომატურად წარმოქმნილი პროგრამული შეწყვეტა). მაგრამ ზოგიერთი შეიძლება ამტკიცებდეს, რომ ხაფანგი უბრალოდ სპეციალური ქვეპროგრამის ზარია. ასე რომ, ისინი მიეკუთვნებიან პროგრამული უზრუნველყოფის გამოძახების შეფერხებების კატეგორიას. მაგალითად, 80×86 მანქანებში პროგრამისტს შეუძლია გამოიყენოს int ინსტრუქცია ხაფანგის დასაწყებად. იმის გამო, რომ ხაფანგი ყოველთვის უპირობოა, კონტროლი ყოველთვის გადაეცემა ტრაპთან დაკავშირებულ ქვეპროგრამას. ზუსტი ინსტრუქცია, რომელიც იწვევს ხაფანგთან დამუშავების რუტინას, ადვილად იდენტიფიცირებულია, რადგან მკაფიო ინსტრუქცია გამოიყენება ხაფანგის დასაზუსტებლად.

რა განსხვავებაა Interrupt-სა და Trap-ს შორის?

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

გირჩევთ: