Տարբերություն Համակարգի կանչի և Ֆունկցիոնալ Զանգի միջև

Տարբերություն Համակարգի կանչի և Ֆունկցիոնալ Զանգի միջև
Տարբերություն Համակարգի կանչի և Ֆունկցիոնալ Զանգի միջև

Video: Տարբերություն Համակարգի կանչի և Ֆունկցիոնալ Զանգի միջև

Video: Տարբերություն Համակարգի կանչի և Ֆունկցիոնալ Զանգի միջև
Video: Ինչի՞ համար են նախատեսված համակարգչի այս կոճակները 2024, Հուլիսի
Anonim

Համակարգային զանգ ընդդեմ ֆունկցիոնալ զանգ

Տիպիկ պրոցեսորը կատարում է հրահանգները մեկ առ մեկ: Բայց կարող են լինել դեպքեր, երբ պրոցեսորը պետք է դադարեցնի ընթացիկ հրահանգը և կատարի որևէ այլ ծրագիր կամ կոդի հատված (բնակվում է մեկ այլ վայրում): Դա անելուց հետո պրոցեսորը վերադառնում է նորմալ գործարկման և շարունակում է այնտեղից, որտեղ դադարեցվել է: Համակարգային զանգը և գործառույթի կանչը նման դեպքեր են: Համակարգային զանգը զանգ է համակարգում ներկառուցված ենթածրագրին: Ֆունկցիայի կանչը զանգ է դեպի ծրագրի ներսում գտնվող ենթածրագրին:

Ի՞նչ է համակարգային զանգը:

Համակարգային զանգերը համակարգչում աշխատող ծրագրերին ապահովում են օպերացիոն համակարգի հետ խոսելու ինտերֆեյս:Երբ ծրագրին անհրաժեշտ է օպերացիոն համակարգի միջուկից ծառայություն խնդրել (որի համար նա ինքնուրույն դա անելու թույլտվություն չունի), այն օգտագործում է համակարգային զանգ: Օգտատիրոջ մակարդակի գործընթացները չունեն նույն թույլտվությունները, ինչ գործընթացները, որոնք անմիջականորեն փոխազդում են օպերացիոն համակարգի հետ: Օրինակ՝ արտաքին մուտքի/ելք սարքի հետ շփվելու կամ որևէ այլ գործընթացի հետ փոխազդելու համար ծրագիրն օգտագործում է համակարգային զանգեր։

Ի՞նչ է ֆունկցիայի կանչը:

Ֆունկցիայի կանչը կոչվում է նաև ենթածրագրային զանգ: Ենթակարգը (նաև հայտնի է որպես ընթացակարգ, գործառույթ, մեթոդ կամ ռեժիմ) ավելի մեծ ծրագրի մի մասն է, որը պատասխանատու է որոշակի առաջադրանքի իրականացման համար: Ավելի մեծ ծրագիրը կարող է մեծ ծանրաբեռնվածություն կատարել, իսկ ենթակարգը կարող է կատարել ընդամենը մի պարզ առաջադրանք, որը նույնպես անկախ է մնացած ծրագրի կոդավորումից: Ֆունկցիան կոդավորված է այնպես, որ այն կարող է կանչվել մի քանի անգամ և տարբեր վայրերից (նույնիսկ այլ գործառույթներից): Երբ ֆունկցիա է կանչվում, պրոցեսորը կարող է գնալ այնտեղ, որտեղ գտնվում է ֆունկցիայի կոդը և մեկ առ մեկ կատարել ֆունկցիայի հրահանգները:Գործառույթներն ավարտելուց հետո պրոցեսորը կվերադառնա հենց այնտեղ, որտեղ կանգ է առել և շարունակելու է կատարումը՝ սկսած հաջորդ հրահանգից: Ֆունկցիաները հիանալի գործիք են կոդի վերօգտագործման համար: Շատ ժամանակակից ծրագրավորման լեզուներ աջակցում են գործառույթներին: Գործառույթների հավաքածուն կոչվում է գրադարան: Գրադարանները հաճախ օգտագործվում են որպես ծրագրային ապահովման փոխանակման և առևտրի միջոցներ: Որոշ դեպքերում ամբողջ ծրագիրը կարող է լինել ենթածրագրերի հաջորդականություն (օրինակ՝ թելերով կոդերի հավաքում):

Ո՞րն է տարբերությունը System Call-ի և Function Call-ի միջև:

Համակարգային զանգը զանգ է համակարգում ներկառուցված ենթածրագրին, մինչդեռ ֆունկցիայի կանչը կանչ է ծրագրի ներսում գտնվող ենթածրագրին: Ի տարբերություն ֆունկցիոնալ զանգերի, համակարգային զանգերն օգտագործվում են, երբ ծրագիրը պետք է կատարի ինչ-որ առաջադրանք, որի համար նա արտոնություն չունի: Համակարգային զանգերը մուտքի կետեր են օպերացիոն համակարգի միջուկում և կապված չեն ծրագրի հետ (ինչպես ֆունկցիայի կանչերը): Ի տարբերություն համակարգային զանգերի, ֆունկցիոնալ զանգերը շարժական են: Համակարգային զանգի ժամանակի գերավճարն ավելին է, քան ֆունկցիայի կանչի գերավճարը, քանի որ պետք է անցում կատարվի օգտագործողի ռեժիմի և միջուկի ռեժիմի միջև:Համակարգային զանգերն իրականացվում են միջուկի հասցեների տարածությունում, մինչդեռ ֆունկցիայի կանչերը՝ օգտվողի հասցեների տարածությունում:

Խորհուրդ ենք տալիս: