Προστασία
Στενά συνδεδεμένο με την πρόσβαση στη μνήμη είναι το θέμα της προστασίας.
Μερικοί τύποι προστασίας που υλοποιούνται σε αρχιτεκτονικές είναι οι παρακάτω:
Όρια πρόσβασης σε περιοχές της μνήμης
Για προστασία μεταξύ των προγραμμάτων τα τμήματα ορίζουν την αρχή και
το μήκος τους.
Κάθε πρόσβαση έξω από τα όρια αυτά παγιδεύεται.
Πρόσβαση σε τύπους δεδομένων
Η συχνότερος διαχωρισμός είναι μεταξύ κώδικα και δεδομένων, αλλά έχουν
υπάρξει αρχιτεκτονικές που υποστηρίζουν πλήρες σύστημα τύπων δεδομένων
ανάλογο με αυτό των γλωσσών προγραμματισμού υψηλού επιπέδου.
Στις αρχιτεκτονικές αυτές τα δεδομένα περιέχουν και ορισμένα bit
που ορίζουν τον τύπο τους.
Επίπεδα προστασίας
Για την αποδοτική υλοποίηση λειτουργικών συστημάτων ορίζονται επίπεδα προστασίας.
Τυπικά το επίπεδο προστασίας Ν έχει πρόσβαση στα δεδομένα και τον κώδικα των
επιπέδων Μ όπου Μ > Ν αλλά όχι και το αντίστροφο.
Ένα παράδειγμα χρήσης πολλαπλών επιπέδων προστασίας παρουσιάζεται στην παρακάτω
εικόνα:
Η μετάβαση ανάμεσα σε επίπεδα προστασίας γίνεται μέσω παγίδων,
διακοπών, ή ειδικών δομών δεδομένων (π.χ. call gates).
Έλεγχος εντολών
Ορισμένα επίπεδα προστασίας μπορούν να επιτρέπουν ή να απαγορεύουν
την εκτέλεση συγκεκριμένων εντολών.
Μερικές κατηγορίες εντολών είναι οι παρακάτω:
- εντολές εισόδου εξόδου
- εντολες έλεγχου σελιδοποίησης και τμηματοποίησης,
- ελέγχου του επεξεργαστή (π.χ. HALT)
- ελέγχου κρυφής μνήμης
- πρόσβασης σε καταχωρητές αποσφαλματοποίησης
Με την παγίδευση της εκτέλεσης συγκεκριμένων εντολών μπορεί το λειτουργικό
σύστημα να υλοποιήσει
εικονικές μηχανές (virtual machines).