Κλήση συστήματος έναντι κλήσης λειτουργίας

Ένας τυπικός επεξεργαστής εκτελεί οδηγίες μία προς μία. Αλλά μπορεί να υπάρχουν περιστάσεις όπου ο επεξεργαστής πρέπει να σταματήσει την τρέχουσα οδηγία και να εκτελέσει κάποιο άλλο πρόγραμμα ή τμήμα κώδικα (που βρίσκεται σε κάποιο άλλο μέρος). Μετά από αυτό, ο επεξεργαστής επιστρέφει στην κανονική εκτέλεση και συνεχίζει από όπου έπαψε να λειτουργεί. Μια κλήση συστήματος και μια κλήση λειτουργίας είναι τέτοιες περιπτώσεις. Μια κλήση συστήματος είναι μια κλήση σε μια υπορουτίνα ενσωματωμένη στο σύστημα. Μια κλήση λειτουργίας είναι μια κλήση σε μια υπορουτίνα μέσα στο ίδιο το πρόγραμμα.

Τι είναι μια κλήση συστήματος;

Οι κλήσεις συστήματος παρέχουν στα προγράμματα που εκτελούνται στον υπολογιστή μια διεπαφή για να μιλήσετε με το λειτουργικό σύστημα. Όταν ένα πρόγραμμα χρειάζεται να ζητήσει μια υπηρεσία (για την οποία δεν έχει άδεια να το κάνει αυτό από μόνο του) από τον πυρήνα του λειτουργικού συστήματος, χρησιμοποιεί μια κλήση συστήματος. Οι διαδικασίες επιπέδου χρήστη δεν έχουν τα ίδια δικαιώματα με τις διαδικασίες που αλληλεπιδρούν άμεσα με το λειτουργικό σύστημα. Για παράδειγμα, για επικοινωνία με και εξωτερική συσκευή εισόδου / εξόδου ή για αλληλεπίδραση με άλλες διαδικασίες, ένα πρόγραμμα χρησιμοποιεί κλήσεις συστήματος.

Τι είναι μια κλήση λειτουργίας;

Μια κλήση λειτουργίας καλείται επίσης μια κλήση υπορουτίνας. Μια υπορουτίνα (επίσης γνωστή ως διαδικασία, λειτουργία, μέθοδος ή ρουτίνα) είναι μέρος ενός ευρύτερου προγράμματος που είναι υπεύθυνο για την εκτέλεση μιας συγκεκριμένης εργασίας. Το μεγαλύτερο πρόγραμμα μπορεί να εκτελέσει ένα μεγάλο φόρτο εργασίας και η υπορουτίνα μπορεί να εκτελεί απλά μια απλή εργασία, η οποία είναι επίσης ανεξάρτητη από την υπόλοιπη κωδικοποίηση του προγράμματος. Μια λειτουργία κωδικοποιείται με τέτοιο τρόπο ώστε να μπορεί να καλείται πολλές φορές και από διαφορετικά μέρη (ακόμη και μέσα από άλλες λειτουργίες). Όταν καλείται μια λειτουργία, ο επεξεργαστής μπορεί να πάει εκεί που βρίσκεται ο κώδικας της λειτουργίας και να εκτελέσει τις εντολές της λειτουργίας μία προς μία. Αφού ολοκληρώσετε τις λειτουργίες, ο επεξεργαστής θα επιστρέψει ακριβώς εκεί που παρέμεινε και θα συνεχίσει την εκτέλεση ξεκινώντας από την επόμενη εντολή. Οι λειτουργίες είναι ένα εξαιρετικό εργαλείο για την επαναχρησιμοποίηση του κώδικα. Πολλές σύγχρονες λειτουργίες υποστήριξης γλωσσών προγραμματισμού. Μια συλλογή λειτουργιών ονομάζεται βιβλιοθήκη. Οι βιβλιοθήκες χρησιμοποιούνται συχνά ως μέσο ανταλλαγής και εμπορίας λογισμικού. Σε ορισμένες περιπτώσεις, ολόκληρο το πρόγραμμα μπορεί να είναι μια ακολουθία υπορουτίνων (π.χ. σύνταξη κώδικα με σπείρωμα).

Ποια είναι η διαφορά μεταξύ κλήσης συστήματος και κλήσης λειτουργίας;

Η κλήση συστήματος είναι μια κλήση σε μια υπορουτίνα ενσωματωμένη στο σύστημα, ενώ μια κλήση λειτουργίας είναι μια κλήση σε μια υπορουτίνα μέσα στο πρόγραμμα. Σε αντίθεση με τις κλήσεις λειτουργίας, οι κλήσεις συστήματος χρησιμοποιούνται όταν ένα πρόγραμμα χρειάζεται να εκτελέσει κάποια εργασία, για την οποία δεν έχει το προνόμιο. Οι κλήσεις συστήματος είναι σημεία εισόδου στον πυρήνα του λειτουργικού συστήματος και δεν συνδέονται με το πρόγραμμα (όπως κλήσεις λειτουργίας). Σε αντίθεση με τις κλήσεις συστήματος, οι κλήσεις λειτουργιών είναι φορητές. Ο χρόνος λειτουργίας μιας κλήσης συστήματος είναι μεγαλύτερος από το γενικό κόστος μιας κλήσης λειτουργίας, επειδή πρέπει να πραγματοποιηθεί μια μετάβαση μεταξύ της λειτουργίας χρήστη και της λειτουργίας του πυρήνα. Οι κλήσεις συστήματος εκτελούνται στον χώρο διεύθυνσης του πυρήνα, ενώ οι κλήσεις λειτουργίας εκτελούνται στο χώρο διεύθυνσης χρήστη.