სხვაობა შეწყვეტასა და გამონაკლისს შორის

სხვაობა შეწყვეტასა და გამონაკლისს შორის
სხვაობა შეწყვეტასა და გამონაკლისს შორის

ვიდეო: სხვაობა შეწყვეტასა და გამონაკლისს შორის

ვიდეო: სხვაობა შეწყვეტასა და გამონაკლისს შორის
ვიდეო: #3 ნაწ: იუსტიციის გენერალი ვახტანგ გვარამია აფხაზეთის ომსა და 1990-იანებზე, PKTV-ში. 17.02.23 2024, ივლისი
Anonim

შეწყვეტა გამონაკლისის წინააღმდეგ

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

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

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

რა არის გამონაკლისი?

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

რა განსხვავებაა შეფერხებასა და გამონაკლისს შორის?

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

გირჩევთ: