Ο επεξεργαστής εκτελεί προγράμματα σε λειτουργία χρήστη ή πυρήνα. Όταν χρησιμοποιείτε τον υπολογιστή σας, ο επεξεργαστής αλλάζει συχνά μεταξύ αυτών των δύο τύπων λειτουργιών, ανάλογα με το τι κάνει. Τι είναι όμως το User Mode και το Kernel Mode; Ποια είναι η διαφορά μεταξύ αυτών των δύο τρόπων λειτουργίας; Γιατί χρειάζεται η CPU να αλλάζει μεταξύ αυτών των λειτουργιών.
Τι είναι η λειτουργία χρήστη στα Windows;

Λειτουργία χρήστη στα Windows
Όταν ξεκινάτε ένα πρόγραμμα στα Windows, αυτό το πρόγραμμα ξεκινά στη λειτουργία χρήστη. Κάθε φορά που ένα πρόγραμμα σε λειτουργία χρήστη θέλει να εκτελεστεί, τα Windows δημιουργούν μια διαδικασία για αυτό. Μια διεργασία είναι απλώς ένα πρόγραμμα που εκτελεί ένας επεξεργαστής ή ένα πρόγραμμα που τα Windows έχουν προγραμματίσει να εκτελέσουν. Και κάθε φορά που τα Windows δημιουργούν μια διαδικασία, δημιουργούν επίσης έναν εικονικό χώρο διευθύνσεων για αυτήν τη διαδικασία.
Ο χώρος εικονικών διευθύνσεων είναι το σύνολο των λογικών (μη φυσικών) διευθύνσεων που τα Windows εκχωρούν σε μια διεργασία. Οι διεργασίες μπορούν να χρησιμοποιήσουν αυτές τις διευθύνσεις για την αποθήκευση δεδομένων στη φυσική μνήμη.
Επιπλέον, ο χώρος εικονικών διευθύνσεων είναι απομονωμένος. Επομένως, ο εικονικός χώρος διευθύνσεων μιας διεργασίας δεν παρεμβαίνει στον χώρο διευθύνσεων μιας άλλης διεργασίας. Και επειδή τα προγράμματα στη λειτουργία χρήστη έχουν ξεχωριστούς χώρους διευθύνσεων, εάν ένα πρόγραμμα διακοπεί, αυτό το πρόγραμμα θα διακοπεί μόνο του και δεν θα επηρεάσει άλλα προγράμματα ή ολόκληρο το λειτουργικό σύστημα με τα εφέ του.
Ένας άλλος τρόπος για να περιγράψετε τις εφαρμογές Λειτουργίας χρήστη είναι να χρησιμοποιήσετε τον όρο "λιγότερο προνομιούχες". Τα Windows περιορίζουν τις εφαρμογές Λειτουργίας χρήστη από την άμεση πρόσβαση σε κρίσιμους πόρους του συστήματος, καθιστώντας τες λιγότερο προνομιούχες. Για παράδειγμα, εάν μια εφαρμογή θέλει να αποκτήσει πρόσβαση σε υλικό, πρέπει να περάσει από τον πυρήνα του λειτουργικού συστήματος χρησιμοποιώντας κλήσεις συστήματος (ένα στυλ προγραμματισμού στο οποίο ένα πρόγραμμα υπολογιστή ζητά μια υπηρεσία από τον πυρήνα του λειτουργικού συστήματος). εκτελείται).
Με απλά λόγια, τα προγράμματα εφαρμογών όπως τα βιντεοπαιχνίδια εκτελούνται σε λειτουργία χρήστη. Έχουν λίγα προνόμια, επομένως δεν έχουν απεριόριστη πρόσβαση στους πόρους του συστήματος. Κάθε εφαρμογή Λειτουργίας χρήστη έχει το δικό της χώρο διευθύνσεων. Μια εφαρμογή δεν μπορεί να αλλάξει τον χώρο διευθύνσεων μιας άλλης εφαρμογής. Επομένως, εάν μια εφαρμογή διακοπεί, δεν επηρεάζει άλλα προγράμματα που εκτελούνται στον υπολογιστή.
Τι είναι η λειτουργία πυρήνα στα Windows;

Λειτουργία πυρήνα στα Windows
Πριν συζητήσουμε τη λειτουργία πυρήνα, πρέπει πρώτα να γνωρίζουμε τι είναι ο "πυρήνας" και πώς λειτουργεί με τα Windows.
Ο πυρήνας είναι ο εγκέφαλος ενός λειτουργικού συστήματος. Είναι το βασικό στοιχείο λογισμικού στο οποίο βασίζονται όλα τα άλλα στοιχεία του λειτουργικού συστήματος. Ο πυρήνας διαχειρίζεται το υλικό του υπολογιστή, προγραμματίζει εκτελέσεις στον υπολογιστή και χειρίζεται τις αλληλεπιδράσεις μεταξύ υλικού και λογισμικού εφαρμογών.
Εν ολίγοις, ο πυρήνας είναι το πιο προνομιακό κομμάτι κώδικα που εκτελείται στο σύστημα, επειδή είναι ο κώδικας που αλληλεπιδρά απευθείας με το υλικό. Οποιοδήποτε άλλο πρόγραμμα θέλει να χρησιμοποιήσει πόρους υλικού πρέπει να ζητήσει πρόσβαση μέσω του πυρήνα.
Όταν ένα πρόγραμμα εφαρμογής εκτελείται σε λειτουργία χρήστη και θέλει να αποκτήσει πρόσβαση σε υλικό, όπως μια κάμερα web, πρέπει να ζητήσει τον πυρήνα χρησιμοποιώντας μια κλήση συστήματος. Για την εξυπηρέτηση αυτών των αιτημάτων, η CPU, τη στιγμή της εκτέλεσης του προγράμματος, θα αλλάξει από τη λειτουργία χρήστη στη λειτουργία πυρήνα.
Μόλις ολοκληρωθεί η εκτέλεση, η CPU επιστρέφει στη λειτουργία χρήστη και ξεκινά την εκτέλεση της επόμενης προγραμματισμένης διαδικασίας. Αυτό ονομάζεται "Εναλλαγή περιβάλλοντος" .
Ποια είναι η διαφορά μεταξύ της λειτουργίας χρήστη και της λειτουργίας πυρήνα;
Η κύρια διαφορά μεταξύ της λειτουργίας χρήστη και της λειτουργίας πυρήνα είναι το επίπεδο των προνομίων που παρέχει κάθε λειτουργία. Στη λειτουργία χρήστη, οι εφαρμογές έχουν λιγότερα προνόμια. Δεν έχουν άμεση πρόσβαση σε πόρους υλικού και δεν μπορούν να γράψουν στο χώρο διευθύνσεων άλλων εφαρμογών.
Ο κώδικας που εκτελείται σε λειτουργία πυρήνα έχει αυξημένα προνόμια. Όχι μόνο έχει άμεση πρόσβαση στο υλικό του υπολογιστή, αλλά όλα τα προγράμματα που εκτελούνται σε λειτουργία πυρήνα, συμπεριλαμβανομένου του λειτουργικού συστήματος, μοιράζονται επίσης έναν χώρο διευθύνσεων. Έτσι, εάν ένα πρόγραμμα σε λειτουργία πυρήνα διακοπεί, μπορεί να προκαλέσει διακοπή λειτουργίας ολόκληρου του λειτουργικού συστήματος. Για να διασφαλιστεί ότι δεν προκύπτουν τέτοια προβλήματα, τα Windows επιτρέπουν μόνο ορισμένες διεργασίες να εκτελούνται σε λειτουργία πυρήνα.
Τα Windows υιοθετούν μια πολυεπίπεδη προσέγγιση για να διαχωρίζουν τα προγράμματα των χρηστών από τους πόρους του συστήματος
Τα Windows χρησιμοποιούν ένα πολυεπίπεδο μοντέλο για να καθορίσουν τα επίπεδα προνομίων των διεργασιών. Οι εφαρμογές που βρίσκονται στο πιο εξωτερικό επίπεδο είναι οι εφαρμογές που έχουν δικαιώματα ενοικίασης. Ο πυρήνας αυτών των στρωμάτων είναι ο πυρήνας. Επομένως, ο πυρήνας έχει απεριόριστη πρόσβαση στους πόρους του λειτουργικού συστήματος.
Η πολυεπίπεδη προσέγγιση προστατεύει επίσης τη κρίσιμη λειτουργικότητα του λειτουργικού συστήματος. Όταν τα προγράμματα στο ανώτερο επίπεδο διακόπτονται τυχαία, δεν επηρεάζει το λειτουργικό σύστημα. Από την άλλη, όταν ο πυρήνας κολλάει, επηρεάζεται ολόκληρο το λειτουργικό σύστημα.