συστήματα

Γνώση Υπολογιστών >> συστήματα >  >> Unix

Πώς λειτουργούν οι κλήσεις του συστήματος UNIX;

πώς το σύστημα Unix καλεί λειτουργεί

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

1. Αίτημα προγράμματος χρήστη:

* Ένα πρόγραμμα χρήστη, που εκτελείται στο χώρο των χρηστών, χρειάζεται μια συγκεκριμένη υπηρεσία, όπως η ανάγνωση ενός αρχείου, η δημιουργία μιας νέας διαδικασίας ή η πρόσβαση σε μια συσκευή.

* Το πρόγραμμα χρησιμοποιεί μια λειτουργία βιβλιοθήκης (π.χ., `open ()`, `fork ()`, `read ()`) για να υποβάλει το αίτημα.

2. Λειτουργία βιβλιοθήκης Κλήση:

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

* Αυτή η δομή μεταφέρεται στη συνέχεια στον πυρήνα χρησιμοποιώντας μια ειδική εντολή γνωστή ως διακοπή κλήσης (συχνά `int 0x80` ή` syscall ').

3. Χειρισμός πυρήνα:

* Η διακοπή προκαλεί έναν διακόπτη περιβάλλοντος, μεταφέροντας τον έλεγχο από το πρόγραμμα χρήστη στον πυρήνα.

* Ο πυρήνας προσδιορίζει την ζητούμενη κλήση συστήματος βάσει του αριθμού του.

* Ο πυρήνας επικυρώνει τα επιχειρήματα του συστήματος και τους ελέγχους για δικαιώματα.

* Ο πυρήνας εκτελεί την ζητούμενη υπηρεσία, ενδεχομένως με αλληλεπιδράσεις με το υλικό, το σύστημα αρχείων ή άλλες διαδικασίες.

4. Τιμή επιστροφής:

* Μόλις ο πυρήνας ολοκληρώσει την ζητούμενη υπηρεσία, επιστρέφει έναν κωδικό κατάστασης και ενδεχομένως δεδομένα στο πρόγραμμα χρήστη.

* Η λειτουργία της βιβλιοθήκης ερμηνεύει τον κωδικό κατάστασης και επιστρέφει ένα αποτέλεσμα στο πρόγραμμα χρήστη.

5. Απόκριση προγράμματος χρήστη:

* Το πρόγραμμα χρήστη λαμβάνει το αποτέλεσμα, το επεξεργάζεται και συνεχίζει την εκτέλεση του.

Βασικά σημεία:

* Οι κλήσεις συστήματος είναι τα θεμελιώδη δομικά στοιχεία για οποιοδήποτε λειτουργικό σύστημα που μοιάζει με UNIX.

* Παρέχουν μια τυποποιημένη, ασφαλή και ελεγχόμενη διεπαφή μεταξύ των προγραμμάτων χρηστών και του πυρήνα.

* Ο πυρήνας προστατεύει τους πόρους του συστήματος και διασφαλίζει ότι τα προγράμματα δεν μπορούν να αποκτήσουν πρόσβαση ή να τροποποιήσουν τα εξαρτήματα σε επίπεδο συστήματος χωρίς άδεια.

* Η διεπαφή κλήσης συστήματος είναι γενικά συνεπής σε διαφορετικά συστήματα τύπου UNIX, εξασφαλίζοντας τη φορητότητα των εφαρμογών.

Παράδειγμα:

Ας εξετάσουμε την κλήση "Read ()` System. Ένα πρόγραμμα μπορεί να χρησιμοποιήσει τη λειτουργία της βιβλιοθήκης `read ()` για να διαβάσει δεδομένα από ένα αρχείο. Αυτή η λειτουργία:

1. Δημιουργεί μια δομή κλήσης συστήματος με τον αριθμό λειτουργίας `read ()`, τον περιγραφέα αρχείων, τη διεύθυνση buffer και τον αριθμό των bytes για ανάγνωση.

2. Εκτελεί τη διακοπή της κλήσης συστήματος για να μεταφέρει τον έλεγχο στον πυρήνα.

3. Ο πυρήνας επικυρώνει τα επιχειρήματα, ανακτά τα δεδομένα από το αρχείο και τα αντιγράφει στο buffer που παρέχεται από το χρήστη.

4. Ο πυρήνας επιστρέφει τον αριθμό των bytes που διαβάζεται στο πρόγραμμα χρήστη.

5. Το πρόγραμμα χρήστη λαμβάνει το αποτέλεσμα και χρησιμοποιεί τα δεδομένα ανάλογα με τις ανάγκες.

Η κατανόηση του τρόπου λειτουργίας του συστήματος είναι απαραίτητη για την κατανόηση της εσωτερικής λειτουργίας των λειτουργικών συστημάτων που μοιάζουν με UNIX και των προγραμμάτων γραφής που αλληλεπιδρούν αποτελεσματικά με τον πυρήνα.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα