Κλήση συστήματος στο λειτουργικό σύστημα (OperaΣύστημα ting): Τι είναι, Τύποι και Παραδείγματα
⚡ Έξυπνη Σύνοψη
Η κλήση συστήματος είναι η ελεγχόμενη διεπαφή που χρησιμοποιεί μια διεργασία για να ζητήσει υπηρεσίες πυρήνα, όπως πρόσβαση σε αρχεία, έλεγχο διεργασιών και επικοινωνία με συσκευές, μεταβαίνοντας με ασφάλεια την CPU από τη λειτουργία χρήστη σε λειτουργία πυρήνα με δικαιώματα.
Τι είναι η κλήση συστήματος Operating System;
A κλήση συστήματος είναι ένας μηχανισμός που παρέχει τη διεπαφή μεταξύ μιας διεργασίας και του λειτουργικού συστήματος. Είναι μια προγραμματική μέθοδος κατά την οποία ένα πρόγραμμα υπολογιστή ζητά μια υπηρεσία από τον πυρήνα του ΛΣ.
Η κλήση συστήματος προσφέρει τις υπηρεσίες του λειτουργικού συστήματος στα προγράμματα χρήστη μέσω API (Application Programming Interface). Οι κλήσεις συστήματος είναι τα μόνα σημεία εισόδου για το σύστημα πυρήνα.
Κλήσεις συστήματος Operating System
Παράδειγμα κλήσης συστήματος
Για παράδειγμα, για να γραφτεί ένα πρόγραμμα που διαβάζει δεδομένα από ένα αρχείο και τα αντιγράφει σε ένα άλλο, το πρόγραμμα χρειάζεται πρώτα τα ονόματα των δύο αρχείων: τα αρχεία εισόδου και εξόδου.
Σε ένα διαδραστικό σύστημα, αυτός ο τύπος εκτέλεσης προγράμματος απαιτεί ορισμένες κλήσεις συστήματος από το λειτουργικό σύστημα.
- Η πρώτη κλήση είναι να γράψετε ένα μήνυμα προτροπής στην οθόνη.
- Το δεύτερο είναι να διαβάσετε, από το πληκτρολόγιο, τους χαρακτήρες που ορίζουν τα δύο αρχεία.
Πώς λειτουργεί η κλήση συστήματος;
Ακολουθούν τα βήματα για μια κλήση συστήματος σε λειτουργικό σύστημα:
Archiδομή της κλήσης συστήματος
Όπως μπορείτε να δείτε στο διάγραμμα κλήσεων συστήματος παραπάνω:
Βήμα 1) Οι διεργασίες εκτελούνται σε λειτουργία χρήστη μέχρι να τις διακόψει μια κλήση συστήματος.
Βήμα 2) Μετά από αυτό, η κλήση συστήματος εκτελείται σε λειτουργία πυρήνα με βάση την προτεραιότητα.
Βήμα 3) Μόλις ολοκληρωθεί η εκτέλεση της κλήσης συστήματος, ο έλεγχος επιστρέφει σε λειτουργία χρήστη.
Βήμα 4) Η εκτέλεση των διεργασιών χρήστη συνεχίζεται, μεταβαίνοντας μεταξύ της λειτουργίας χρήστη και λειτουργία πυρήνα όπως απαιτείται.
Γιατί χρειάζεστε κλήσεις συστήματος στο λειτουργικό σύστημα;
Οι ακόλουθες περιπτώσεις απαιτούν κλήσεις συστήματος στο λειτουργικό σύστημα:
- Η ανάγνωση και η εγγραφή από αρχεία απαιτούν κλήσεις συστήματος.
- Εάν ένα σύστημα αρχείων θέλει να δημιουργήσει ή να διαγράψει αρχεία, απαιτούνται κλήσεις συστήματος.
- Οι κλήσεις συστήματος χρησιμοποιούνται για τη δημιουργία και τη διαχείριση νέων διεργασιών.
- Οι συνδέσεις δικτύου χρειάζονται κλήσεις συστήματος για αποστολή και λήψη πακέτων.
- Η πρόσβαση σε συσκευές υλικού όπως ένας σαρωτής ή ένας εκτυπωτής απαιτεί μια κλήση συστήματος.
Τύποι κλήσεων συστήματος
Ακολουθούν οι πέντε τύποι κλήσεων συστήματος σε λειτουργικά συστήματα:
- Ελεγχος διαδικασίας
- Διαχείριση αρχείων
- Διαχείριση συσκευών
- Συντήρηση Πληροφοριών
- Επικοινωνία
Τύποι κλήσεων συστήματος σε λειτουργικό σύστημα
Ελεγχος διαδικασίας
Αυτές οι κλήσεις συστήματος εκτελούν την εργασία δημιουργίας διεργασίας, τερματισμού διεργασίας κ.λπ.
λειτουργίες:
- Τέλος και Διακοπή
- Φόρτωση και εκτέλεση
- Δημιουργία διαδικασίας και τερματισμός διαδικασίας
- Περίμενε και Signal Συμβάν
- Εκχώρηση και ελεύθερη μνήμη
Διαχείριση αρχείων
Το σύστημα διαχείρισης αρχείων καλεί εργασίες χειρισμού αρχείων χειρισμού, όπως δημιουργία αρχείου, ανάγνωση και εγγραφή κ.λπ.
λειτουργίες:
- Δημιουργήστε ένα αρχείο
- Διαγραφή φακέλου
- Άνοιγμα και κλείσιμο αρχείου
- Διαβάστε, γράψτε και επανατοποθετήστε
- Λήψη και ρύθμιση χαρακτηριστικών αρχείων
Διαχείριση συσκευών
Η διαχείριση συσκευών κάνει τη δουλειά του χειρισμού της συσκευής όπως η ανάγνωση από τα buffer της συσκευής, η εγγραφή σε buffer συσκευών κ.λπ.
λειτουργίες:
- Συσκευή αιτήματος και αποδέσμευσης
- Λογική σύνδεση ή αποσύνδεση συσκευών
- Λήψη και ορισμός χαρακτηριστικών συσκευής
Συντήρηση Πληροφοριών
Χειρίζεται τις πληροφορίες και τη μεταφορά τους μεταξύ του λειτουργικού συστήματος και του προγράμματος χρήστη.
λειτουργίες:
- Λήψη ή ρύθμιση ώρας και ημερομηνίας
- Λάβετε χαρακτηριστικά διαδικασίας και συσκευής
Επικοινωνία
Αυτοί οι τύποι κλήσεων συστήματος χρησιμοποιούνται ειδικά για επικοινωνία μεταξύ διεργασιών.
λειτουργίες:
- Δημιουργία και διαγραφή συνδέσεων επικοινωνίας
- Αποστολή και λήψη μηνυμάτων
- Βοηθήστε το λειτουργικό σύστημα να μεταφέρει πληροφορίες κατάστασης
- Συνδέστε ή αποσυνδέστε απομακρυσμένες συσκευές
Κανόνες μεταβίβασης παραμέτρων για κλήση συστήματος
Ακολουθούν οι γενικοί κανόνες για τη διαβίβαση παραμέτρων στην κλήση συστήματος:
- Οι παράμετροι θα πρέπει να εισάγονται ή να εξάγονται από τη στοίβα από το λειτουργικό σύστημα.
- Οι παράμετροι μπορούν να περάσουν σε καταχωρητές.
- Όταν υπάρχουν περισσότερες παράμετροι από καταχωρητές, αυτές θα πρέπει να αποθηκεύονται σε ένα μπλοκ και η διεύθυνση του μπλοκ θα πρέπει να διαβιβάζεται σε έναν καταχωρητή.
Σημαντικές κλήσεις συστήματος που χρησιμοποιούνται στο λειτουργικό σύστημα
Περίμενε()
Σε ορισμένα συστήματα, μια διεργασία πρέπει να περιμένει να ολοκληρωθεί μια άλλη. Αυτό συμβαίνει όταν μια γονική διεργασία δημιουργεί μια θυγατρική και η γονική διεργασία παραμένει σε αναστολή μέχρι να ολοκληρωθεί η θυγατρική.
Η αναστολή του γονέα γίνεται αυτόματα με μια κλήση συστήματος wait(). Όταν το παιδί τερματίσει την εκτέλεση, ο έλεγχος επιστρέφει στον γονέα.
πιρούνι()
Οι διεργασίες χρησιμοποιούν αυτήν την κλήση συστήματος για να δημιουργήσουν διεργασίες που είναι αντίγραφα των ίδιων τους. Με τη βοήθεια της fork(), μια γονική διεργασία δημιουργεί μια θυγατρική διεργασία και η γονική διεργασία αναστέλλεται μέχρι να εκτελεστεί η θυγατρική διεργασία.
exec()
Αυτή η κλήση συστήματος εκτελεί ένα εκτελέσιμο αρχείο μέσα σε μια ήδη εκτελούμενη διεργασία, αντικαθιστώντας την παλαιότερη. Το αρχικό αναγνωριστικό διεργασίας παραμένει, καθώς δεν δημιουργείται καμία νέα διεργασία, αλλά η στοίβα, τα δεδομένα, ο σωρός κ.λπ. αντικαθίστανται από τη νέα διεργασία.
σκοτώνω()
Η κλήση συστήματος kill() χρησιμοποιείται από το λειτουργικό σύστημα για να στείλει ένα σήμα τερματισμού σε μια διεργασία, προτρέποντάς την να τερματίσει. Ωστόσο, μια κλήση συστήματος kill δεν σημαίνει απαραίτητα τερματισμό της διεργασίας και μπορεί να έχει διάφορες σημασίες.
έξοδος()
Η κλήση συστήματος exit() χρησιμοποιείται για τον τερματισμό της εκτέλεσης ενός προγράμματος. Ειδικά σε ένα περιβάλλον πολλαπλών νημάτων, αυτή η κλήση ορίζει ότι η εκτέλεση του νήματος έχει ολοκληρωθεί. Το λειτουργικό σύστημα ανακτά τους πόρους που χρησιμοποιούνται από τη διεργασία μετά την κλήση exit().





