Κάθε εκτελέσιμο κομμάτι του κώδικα που μπορεί να φορτώσει στη μνήμη του συστήματος και να εκτελέσει ενέργειες είναι μια διαδικασία . Υπάρχουν διαδικασίες του συστήματος και των διαδικασιών των χρηστών . Μια διαδικασία πιρούνια ή γεννά μια διαδικασία παιδί . Εκτός από την αρχική διαδικασία OS , ονομάζεται η διαδικασία 0 σε Unix , όλες οι διαδικασίες που δημιουργούνται με αυτόν τον τρόπο και ως εκ τούτου έχουν μία γονική διεργασία . Μια διαδικασία παίρνει την προσοχή της CPU μόνο όταν ο πυρήνας επιτρέπει .
Εικόνων χρήστη και Kernel Modes
Η
Μια διαδικασία εκτελείται είτε σε τρόπο λειτουργίας χρήστη ή λειτουργίας πυρήνα και διατηρεί δύο χωριστές στοίβες κατά την εναλλαγή μεταξύ των τρόπων μεταφοράς . Ορισμένα λειτουργικά συστήματα μπορεί να έχουν περισσότερους τρόπους . Αν γράψεις ένα πρόγραμμα , να οικοδομήσουμε και να τρέξει , η διαδικασία που τρέχει είναι σε λειτουργία χρήστη . Τίθεται σε κατάσταση πυρήνα , όταν κάνει μια κλήση συστήματος ή λαμβάνει ένα σήμα διακοπής . Το σήμα μπορεί να προέλθει από μια άλλη διαδικασία χρήστη ή τον ίδιο τον πυρήνα . Μόλις μια διαδικασία είναι σε λειτουργία πυρήνα , ο πυρήνας κλιμακώνεται προτεραιότητα στο σύστημα προγραμματισμού . Επίσης, δεν προδικάζει την διαδικασία λειτουργίας πυρήνα μέχρι να ολοκληρωθεί το κριτικό έργο του συστήματος , μετά την οποία είναι πίσω σε λειτουργία χρήστη . Μια διαδικασία σε λειτουργία ο χρήστης μπορεί να έχει πρόσβαση μόνο δικές του οδηγίες και τα δεδομένα ή το διάστημα της διαδικασία. Η διαδικασία λειτουργίας πυρήνα μπορεί να αποκτήσει πρόσβαση σε διευθύνσεις στον πυρήνα . Ένα καλό παράδειγμα είναι ένα κομμάτι του κώδικα σε γλώσσα assembly που κάνει ένα άλμα σε μια διακοπή .
Η Συστήματος
καλεί
Όπως αναφέρθηκε προηγουμένως , είναι η κλήση του συστήματος , δεν έχει σημασία ποιος κάνει και πώς , που φέρνει μια διαδικασία σε λειτουργία πυρήνα . Μια κλήση συστήματος είναι μια επίκληση ενός χαμηλού επιπέδου λειτουργία του λειτουργικού συστήματος που έχει πρόσβαση και χειρίζεται χαμηλού επιπέδου φορείς της συσκευής και επιφυλάχθηκε περιοχές της μνήμης . Είναι πρακτικά κώδικα OS . Λειτουργίες που λειτουργούν σε συσκευές OS , όπως αρχεία , σωλήνες και σηματοφορείς είναι οι κλήσεις συστήματος . Open ( ) , close ( ) , read ( ) , write ( ) , κλειδαριά ( ) , ξεκλειδώσετε ( ) , η init ( ) , fork ( ) , τον ύπνο ( ) , επαναφορά ( ) και signal () είναι οι κλήσεις συστήματος . Ελέγχουν τους πόρους OS και διαδικασίες όπως ακριβώς ο πυρήνας θα. Σήμα και να διακόψει την επεξεργασία είναι επίσης η περιοχή του πυρήνα και όχι η διαδικασία χρήστη . Στη λειτουργία του πυρήνα , ο έλεγχος δίνεται στην κλήση συστήματος που κάνει εργασίες του συστήματος , ή το έργο που ο πυρήνας θα γίνει αλλιώς . Είναι κώδικα που έχει πρόσβαση σε ειδική μνήμη και μητρώα που προορίζονται για εργασίες OS .
Εικόνων Διακοπές και Προνομιακή Οδηγίες
Η
Μερικές οδηγίες του μηχανήματος είναι προνομιακή και θα οδηγήσει σε σφάλμα, εάν εκτελείται σε λειτουργία χρήστη . Για παράδειγμα , δεν πρέπει να επιτρέπεται μια διαδικασία σε κατάσταση λειτουργίας ενός χρήστη για να αλλάξετε το μητρώο κατάσταση της διαδικασίας . Μητρώα και προνομιακή μνήμη πυρήνα βοηθήσει τον πυρήνα στο έργο του ελέγχου της διαδικασίας . Αν κάποιος άλλος έρχεται και αλλάζει τους , τα αποτελέσματα μπορεί να είναι απρόβλεπτη . Όταν μια άλλη διαδικασία ή ο πυρήνας διακόπτει μια διεργασία χρήστη , ο πυρήνας αποθηκεύει την τρέχουσα κατάσταση της διαδικασίας για την στοίβα , καθορίζει την αιτία της διακοπής , οι υπηρεσίες της διακοπής και ελέγχου φέρνει πίσω σε ό, τι η διαδικασία να κάνει . Ο πυρήνας σκάει τη στοίβα διαδικασία, έτσι ώστε η διαδικασία ο χρήστης μπορεί να συνεχίσει από εκεί που σταμάτησε .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα