21 KiB
title | date | author |
---|---|---|
Betriebssysteme | Wintersemester 20/21 | Robert Jeutter |
Einführung
worauf es ankommt:
- Korrektheit
- Sicherheit
- Verfügbarkeit
- Skalierbarkeit
- Echtzeitfähigkeit
- Robustheit
- Sparsamkeit
Extrem breites Anwendungsspektrum
- funktionale Eigenschaften
- Authentisierung, Verschlüsselung
- Fahrzeug/Verkehrsmanagement
- Informationsmanagement
- Kommunikationsmanagement
- nichtfunktionale Eigenschaften
- Sicherheit
- Korrektheit
- Echtzeitfähigkeit
- Skalierbarkeit
- Offenheit
- Sparsamkeit
- Verfügbarkeit
- Robustheit
mit vielen Gemeinsamkeiten
- Architekturprinzipien
- Programmierparadigmen
voller individueller Strategien mit teils konfligierenden Zielen
- Performanz
\leftrightarrow
Robustheit - Echtzeitfähigkeit
\leftrightarrow
Effizienz
\Rightarrow
spezialisierte Betriebssystem-Familien1. Einführung
Funktionale und nicht-Funktionale Eigenschaften
Beispiel Essen:
- funktionale Eigenschaft: es soll satt machen
- nichtfunktional: Geschmack, Aussehen,...
Funktionale Eigenschaften (= Funktionen, Aufgaben)
- Betriebssysteme: sehr komplexe Softwareprodukte
- Ein Grund für diese Komplexität: besitzen Reihe von Aufgaben - also funktionale Eigenschaften
- Hauptaufgaben dabei:
- Verwalten der Resourcen des Systems (Hard-u. Software-Ressourcen)
- Transformation der „hässlichen“ Hardwareschnittstellen in angenehme nutzerfreundliche Schnittstelle (Betriebssystem als „Erweiterung“ der Maschine, auch Hardware + BS = „virtuelle Maschine“)
- Dabei für beide Aufgaben: Schaffung sinnvoller Abstraktionen(Prozess, Datei,...
\rightarrow
Softwareressourcen)
Nichtfunktionale Eigenschaften
Wie - mit welchen speziellen weiteren Eigenschaften sollen die funktionalen Eigenschaften realisiert werden. Z.B. schon genannt:
- Echtzeitfähigkeit: Betriebssystem-Komponenten, -Algorithmen usw. mit solchen Eigenschaften realisieren, dass Betriebssystem insgesamt echtzeitfähig ist
- Robustheit: Betriebssystem-Komponenten, -Algorithmen usw. mit solchen Eigenschaften realisieren, dass Betriebssystem insgesamt robust ist
- usw
Blick in Betriebssystem-Zoo
- Mainframe Betriebssystem
- performante E/A
- Massendatenverarbeitung
- Server Betriebssystem
- viele Klienten, permanente Kommunikation
- Web Server, Fileshare
- Parallelrechner Betriebssystem
- Number Crunching, parallele Algorithmen mit hohem Rechenbedarf
- schnelle IPC
- Desktop/Laptop Betriebssystem
- Interaktivität/Responsivität
- Echtzeit Betriebssystem
- Einhaltung zeitlicher Garantien, Safety
- Fahrzeug-, Anlagensteuerung
- Eingebettete Systeme
- in Fahrzeugen, Kaffeemaschinen, Telefonen...
- z.T. Spezialaufgaben
Grundbegriffe
- Wo sind Betriebssysteme zu finden?
- Welches Spektrum decken sie ab?
- Welche Arten von Betriebssystemen gibt es?
- Welche funktionalen und nichtfunktionalen Eigenschaften spielen dabei eine Rolle?
Prozessormanagement: Prozesse und Threads
Grundsätzliches
- Computer bearbeiten Aufgaben in wohldefinierten Arbeitsabläufen (beschrieben durch Programme/Algorithmen)
- bei abarbeitung von Programmen entstehen oft Wartesituationen
- Wartezeiten sind ~ relativ zur Prozessorgeschwindigkeit ~ gigantisch (1 Sek ~ 10 Milliarden Prozessorzyklen)
- statt zu warten, lässt sich besseres tun (parallele Ausführung mehrerer Aufgaben)
- Parallelität geht nicht immer (vorraussetzung Nebenläufigkeit)
Begriffe
- Aktivitäten heißen nebenläufig, wenn zwischen ihnen keine kausalen abhängigkeiten bestehen
- Aktivitäten heißen parallel, wenn sie zeitlich überlappend druchgeführt werden
Definition Prozess: Ein Prozess ist eine Abstraktion zur vollständigen Beschreibung einer sequenziell ablaufenden Aktivität
parallele Aktivitäten werden repräsentiert durch parallele Prozesse
Prozess = betriebssystem-Abstraktion zur Ausführung von programmen
Prozessmodelle: definieren konkrete Prozesseigenschaften
Prozessmanagement: Komponente eines Betriebssystems, die Prozessmodell dieses Betriebssystems implementiert
Aufgabe: präzise Definition der Betriebssystem-Abstraktion "Prozess" (definiert durch Semantik und nichtfunktionale Eigenschaften; implementiert durch Datenstrukturen/Algorithmen)
Prozesserzeugung: Erzeugen einer Programmablaufumgebung
Prozesserzeugung
Was geschieht bei der Prozesserzeugung
- Prüfen notwendiger Vorraussetzungen (Rechte, Ressoucenverfügbarkeit,...)
- Namensvergabe und "Stammbaumpflege"
- Allokation von Ressourcen (Arbeitsspeicher, Prozessorzeit)
- Anlegen von Managementstrukturen (belegte Ressourcen, Laufzetmanagement)
Prozesserzeugung: notwenige Vorraussetzungen
- Rechte: zur Prozesserzeugung und Ressourcenallokation (Kontingente)
- Ressourcenverfügbarkeit (Arbeitsspeicher, Rechenzeit, Kommunikation)
- Sicherheit (Authentizität und Integrität des auszuführenden Programms)
- bei Echtzeitbetriebssystem
- Erfüllung von Ressourcenanforderung
- Einhaltung gegebener Garantien
- Fairness (Quoten)
- robustheit/Überlastvermeidung (Lastsituation)
Prozesserzeugung: Namensvergabe
Identifikation ist positive ganze Zahl durch Vergabe Algorithmus. Kann nach Terminierung eines Prozesses erneut vergeben werden
- eindeutig: zu einem Zeitpunkt bzgl aller existierenden Prozesse
- nicht unbedingt eindeutig: für zeitlich nicht überlappende Prozesse
- erst recht nicht eindeutig: über Systemgrenze hinweg
Prozesserzeugung: Stammbaumpflege
Abstammungsbeziehung: definieren Eltern/Kind Hierarchie
- Prozess erzeugt weitere Prozesse: Kinder
- diese wiederum erzeugen weitere Prozesse usw -> baumartige Abstammungshierarchie Nutzung: Rechte und Verantwortlichkeiten
Verwaiste Prozesse -> Adoption (durch Urprozess)
Prozesserzeugung: Allokation (Zuordnung) von Ressourcen
- Arbeitsspeicher
- Größe: Wie viel Arbeitsspeicher benötigt der Prozess?
- Zeitpunkt: zu welchem Zeitpunkt? Echtzeiteigenschaften (Planbarkeit) oder Performanz (proaktivität)?
- Isolation: wie ist er geschützt? (Robustheit, Sicherheit, Korrektheit)
- Prozessorzeit
- in Prozessmodellen echtzeitfähiger Systeme: Größe und Zeitpunkt
- in Prozessmodellen ohne diese Eigenschaften: dynamisches ad-hoc-Scheduling
für richtige Initialisierung: präzise Formatvereinbarung zwischen
- Linker (Programmdatei-Produzent)
- Prozessmanagement des BS (Programmdatei Nutzer)
- das a.out-Format (veraltet; ursprünglich Unix Format)
- das Mach Object File Format (Mach-O; heutiger Standard für OS X, iOS)
- das Executable and Link(age/able) Format (ELF; heutiger Linux standard)
Prozesserzeugung: Management Datenstrukturen
Buchführung über sämtliche zum management notwendigen Informationen
- Prozessidentifikation
- Rechtemanagement
- Speichermanagement
- Prozessormanagement
- Kommunikationsmanagement
a. Prozessdeskriptor (process control block ~ PCB) b. Prozessdeskriptortabelle: Deskriptioren sämtlicher Prozesse
| Prozessormanagement (Prozessdeskriptor) | | | Identifikation | eindeutige Prozessbezeichnung; einordnung in Abstammungshierarchie | | Scheduling | Informationen für Schedulingalgorithmen | | Prozessorkontext | gesichert bei Verdrängung des Prozesses, restauriert bei Reaktivierung | | Ereignismanagement | what if... | | Accounting (Kontoführung) | zur Prioritätsbestimmung, Statisik, kostenberechnung | | Virtueller Adressraum | Beschreibung des Speicherlayouts | | Kernel Stack | Prozedurmanagement innerhalb des BS | | Rechtemanagement | | | Allgemeines Ressourcenmanagement | Filedeskriptoren, Socketdeskriptoren,... |
Aktionen des Prozessmanagements
- Prüfen notweniger Vorraussetzungen
- Namensvergabe und Stammbaum
- Allokation von Ressourcen
- Anlegen von Managementdatenstrukturen (Prozessdeskriptor)
Prozessterminierung
durch
- Aufgabe erledigt
- Fehler aufgetreten
- durch Nutzer/Eigentümer geschlossen
- ...
- Freigabe der Ressourcen
- Benachrichtigung der "Eltern"
- Adoption der "Kinder"
Threads
Naive Lösung: für jede nebenläufige Aktivität einen Prozess erstellen. Jedoch hat ein Prozess:
- Kosten des Managements
- kosten der isolation
- Kosten der Kommunikation
\rightarrow
Parallelität mittels Prozessen ist teuer (revidiertes Prozessmodell)
Daher suche nach kostengünstigerem Modell zur Parallelisierung nebenläufiger Aktivitäten
Definition Prozess: Ein (Multithread-) Prozess ist eine vollständige Beschreibung einer ablaufenden Aktivität. Dazu gehört insbesondere
- Das ablaufende Programm
- zugeordnete Betriebsmittel
- Rechte
- prozessinterne parallele Aktivitäten (Threads) und ihre Bearbeitungszustände
Definition Thread: ist eine sequenzielle Aktivität im Betriebsmittelkontext (d.h. innerhalb) eines Prozesses
parallele Aktivitäten innerhalb eines Prozesses werden durch parallele Threads repräsentiert.
Anmerkung:
- Eigentümer von Ressourcen und Rechten sind immer noch prozesse
- das Programm eines Prozesses kann nun Code für mehr als eine sequenzielle Aktivität enthalten
- Gegenstand der Prozesszuteilung sind nun Threads
- das ursprüngliche Prozessmodell ist eine Spezialisierung dieses Modells (ein Prozess mit genau einem Thread)
- ein Prozessdescriptor (PCB) eines Multithread-Prozessmodells enhält alle Informationen des PCBs eines Single-Thread-Prozessmodells plus Informationen über alle seine Threads
- ein TCB enthält lediglich den Threadszustand und den Ablaufkontext
Threads werden daher oft als Leichtgewichtprozesse bezeichnet
Threads treten in verschiedenen Varianten auf
- komfortabel (integriert in Programmiersprache)
- "zu Fuß" (durch Bibiliotheken oder API)
Implementierungsebenen
- Prozessmodell des Betriebssystems ist Multithread Modell
- Thread Implementierung im Betriebssystem
- das Betriebssystem hat Kenntnis über Threads
- Kernel Level Threads (KLTs)
- Prozessmodell des Betriebssystems ist Single-Thread-Modell
- Thread Implementierung auf Anwendungsebene
- nur auf Endbenutzer-Ebene ist Kenntnis über Threads
- User Level Thread (ULTs)
| Pro KLT | Pro ULT | | Performanz durch Parallelität | Performanz durch geringen Overhead | | Nutzung von Mehrprozessor/Mehrkernarchitektur | Thread Management ohne Systemaufrufe | | ein blockierender Systemaufruf in einem Thread blockiert nicht auch gleichzeitig alle anderen Threads des gleichen Prozesses | Thread Umschaltung ohne Mitwirkung des Betriebssystems | | | Individualität: anwendungsindividuelle Thread Schedulingstrategien möglich | | | Portabilität |
es gibt Work-Arounds: alle gefährlichen Systemaufrufe einpacken (in Pakete)
Wahl zwischen ULT- und KLT hängt ab von:
- Vorraussetzung: Prozessmodell des Betriebssystems Multithread Modell?
- Anwendungsprofil: E/A-Profil, Parallelität, Portabilität, Individualität
Scheduling
Das Problem
Anzahl der Aktivitäten >> Anzahl der Prozessoren
- nicht alle können gleichzeitig arbeiten
- eine Auswahl muss getroffen werden
- Auswahlstrategie: Schedunling-Strategie/Algorithmus
- die Betriebssystem Komponente Scheduler
- Ziel: Effizientes Ressourcenmanagement
Threads können
- aktiv sein (besitzt einen Prozessor)
- rechenbereit sein (Bsp. hätte gerne einen Prozessor)
- kurzfristig warten (Bsp. benötigt keinen Prozesoor aber Arbeitsspeicher)
- langfristig warten (Bsp. benötigt länger keinen Prozessor/Arbeitsspeicher)
Threadzustände im 3/5-Zustandsmodell
- bereit: kann aktiv werden, sobald Prozessor frei wird
- aktiv: besitzt einen Prozessor, arbeitet
- blockiert: wartet auf Ereignis (Timer Ablauf,...)
- frisch: erzeugt, Betriebsmittel/Rechte zum Ablauf fehlen noch
- beendet: Betriebsmittel in der Freigabephase
Folge: effizientes Ressourcenmanagement benötigt präzise Informationen über Threadzustände.
Aufgabe der Zustandsmodelle
Beschreibung:
- des Ablaufzustands von Threads (aktiv/bereit/wartend)
- der mögliche Zustandsübergänge (z.B. bereit->aktiv)
Nutzung
- jeder Thread ist zu jedem Zeitpunkt in genau einem dieser Zustände
- jeder Thread wechselt seinen Zustand gemäß der im Modell definierten Zustandsübergänge, hervorgerufen durch z.B. Zuteilung eines Prozessors
- Ressourcenmanagement: nutz Zustand als Informationsquelle für Entscheidungen
Beschreibungsmittel: endliche deterministische Automaten
- Menge der annehmbaren Zustände ist endlich
- Folgezustand ist immer eindeutig bestimmt
Scheduleraktivierung
Wann wird die letzte Scheduling-Entscheidung überprüft?
- Prozess/Thread erzeugung (neuer, rechenbereiter Thread)
- Threadterminierung, Threadblockierung (ein Prozessor wird frei)
- Ereigniseintritt (Thread wird rechenbereit)
- Wechsel von Prioritäten (in prioritätenbastierten Schedulingalgorithmen)
- periodisch (in zeitscheibenbasierten Schedulingalgorithmen)
Ein Kontextwechsel umfasst:
- bei Wechsel zwischen Threads desselben Prozesses
- Stackkontext
- Prozessorregister
- floating point unit (hohe Kosten)
- zusätzlicher Wechsel zwischen Threads verschiedener Prozesse
- Speicherlayout (sehr hohe Kosten)
- starke Auswirkungen auf
- Gesamtperformanz
- Reaktivität
- Echtzeiteigenschaften
Kostenfaktor FPU
- Kopieren des FPU-Kontexts: sehr viele Register (sofortkosten)
- Realisierung: "faul"
- Hardware hilft: FPU Protextion
- Auswirkung
- nur ein THread benutzt FPU: tatsächliches Sichern erfolgt nie
- wenige Threads benutzen FPU: tatsächliches Sichern minimiert
Scheduling Strategien
Strategische Ziele
- abhängig vom Einsatzfeld eines Betriebssystems
- Echtzeitsysteme: Einhaltung von Fristen
- interaktive Systeme: Reaktivität
- Serversysteme: Reaktivität, E/A-Performanz
- Batch-Verarbeitungssysteme: Durchsatz
- ergänzt durch allgemeine Ziele
- Fairness: Threads bekommen einen fairen Anteil an Rechenzeit
- Lastbalancierung: alle Systemkomponenten (CPUs, Speicher, E/A-Peripherie) sind gleichmäßig ausgelastet
- Overhead: z.B. wenig Prozesswechsel
- Ausbalancierung mehrerer Ziele
- multikriterielle Optimierungsaufgabe, i.d.R. NP-vollständig
- heuristische Scheduling-Algorithmen
Typische Muster aktiver Threadphasen:
- CPU lastig (mathematische Berechnung, Verschlüsselung,...)
- E/A lastig (interaktiver Prozess, ...)
- periodische Last (Echtzeitvideoverarbeitung, ...)
- chaotische Last (server mit inhomogenen Diensten)
Differenzierte Scheduling-Strategien
- nutzen Wissen über Lastmuster zur Optimierung, z.B.
- Einhaltung von Fristen
- Minimierung der Thread/Prozesswechsel
Batch-System („Stapelverarbeitungs“-System)
- Aufträge: in Gruppen („Stapel“) eingeteilt u. so verarbeitet
- Abarbeitung: ohne aktive Mitwirkung eines Benutzers (Gegensatz: interaktiv)
- ursprünglich: frühe Entwicklungsstufe von Betriebssystemen
Ziele hier
- Auslastung teurer Betriebsmittel (i.d.R. Maximierung der CPU-Auslastung)
- Minimierung der Scheduling-Kosten (wenig Prozesswechsel, kurze Laufzeit des Scheduling-Algorithmus)
- Maximierung des Durchsatzes (erledigte Arbeit / Zeit)
zwei der bekannteren:
- First Come, First Served (FCFS)
- in Reihenfolge, in der Threads rechenbereit werden
- extrem einfache Strategie, guter Durchsatz
- nicht immer sehr klug
- Shortest Remaining Time Next (SRTN)
- Prozessor erhält Thread mit voraussichtlich kürzester Restrechenzeit
- preemptiv* ) , d.h. Threads können von konkurrierenden Threads verdrängt werden
- (Schätzwert über) Restlaufzeit muss vorliegen
Interaktives System
- Benutzer: kann bei Programmabarbeitung in Aktivitäten des Computers eingreifen
- Abarbeitung: mit aktiver Mitwirkung eines Benutzers (Gegensatz: batch processing)
- fortgeschrittenere Betriebssystem-Technik
Ziele hier
- Minimierung von Reaktionszeiten (subjektiver Eindruck von Performanz)
- Fairness (mehrere Benutzer/Klienten)
Algorithmen: Round Robin Varianten
- jeder Thread: bekommt ein gleich großes Teil „des Kuchens“: die Zeitscheibe
- einfach zu implementieren (1 Warteschlange, Uhr)
- geringe Algorithmuskosten (O(1): FIFO-Warteschlange, Ring)
- schnelle Entscheidungen (O(1): Nr. 1 aus Warteschlange)
- notwendiges Wissen gering (CPU-Nutzungsdauer des aktiven Threads)
Einbeziehung von Prioritäten
Ziel: Ausdrucksmöglichkeit der Wichtigkeit von Threads
- niedrig: z.B.
- Dämonen (die z.B. im Hintergrund Emails abrufen)
- Putzarbeiten (z.B. Defragmentierung)
- hoch: z.B.
- auf Aufträge reagierende Threads (z.B. in Servern)
- auf Benutzereingaben reagierende Threads (z.B. aktives Fenster einer GUI)
- unter Echtzeitbedingungen arbeitende Threads (z.B. Motormanagement, DVD-Spieler)
Idee(n)
- jeder Thread: erhält individuelle Priorität
- Threads der höchsten Prioritäten: erhalten einen Prozessor
- zwischen Threads gleicher Priorität: Round-Robin
viele Varianten dieses Schemas
- statische Prioritäten, z.B. in
- planbaren Echtzeitsystemen (Autoradio: Reaktion auf Stationswechseltaste hat Vorrang vor Senderfeldstärkenüberwachung)
- kommerziellen Rechenzentren (wer mehr zahlt, ist eher an der Reihe)
- dynamische Prioritäten, abhängig z.B. von
- verbrauchter CPU-Zeit (Verhinderung der Dominanz)
- E/A-Intensität
- Wartegrund
Schedulingziele in Echtzeitsystemen
Finden einer Bearbeitungsreihenfolge (ein „Schedule“),
- die Fristen einhält
- deren Berechnung ökonomisch ist (Kosten des Scheduling-Algorithmus)
- die selbst ökonomisch ist (Minimierung der Threadwechsel)
- die sich (evtl.) an wechselnde Lastmuster anpasst
Verbreitete Algorithmen
- EDF: früheste Frist zuerst (earliest deadline first)
- für dynamische Lasten
- wird ein Thread rechenbereit, so „nennt“ er seine nächste Deadline (Frist)
- von allen bereiten Threads ist immer derjenige mit der frühesten Deadline aktiv (dringend=wichtig)
- Folglich
- arbeitet der Algorithmus mit dynamischen Prioritäten → adaptiv
- ist die Thread-Priorität um so höher, je näher dessen Frist liegt
- ist er preemptiv
- Voraussetzung: kausale und zeitliche Unabhängigkeit der Threads (keine wechselseitige Blockierung)
- RMS: Raten-monotones Scheduling (rate-monotonic scheduling)
- für periodische Lasten (z.B. Mischpult, DVD-Spieler, technische Prozesse)
- wird ein Thread rechenbereit, so „nennt“ er seine Periodendauer
- von allen bereiten Threads ist immer derjenige mit der kürzesten Periodendauer aktiv
- Folglich:
- arbeitet der Algorithmus mit statischen Prioritäten
- ist die Thread-Priorität um so höher, je kürzer die Periodendauer ist
- ist er preemptiv
- Voraussetzung: periodische Threads; kausale und zeitliche Unabhängigkeit der Threads
Zusammenfassung
Anzahl der Threads >> Anzahl der Prozessoren
- nicht alle können gleichzeitig rechnen
- eine Auswahl muss getroffen werden
- → Auswahlstrategie: Schedulingalgorithmen
Privilegierungsebenen
Problematik: Anwendungsprozesse und Betriebssystem nutzen gemeinsame (Hardware-)Ressourcen
Schutz vor fehlerbedingten oder bösartigen räumlichen/zeitlichen Wechselwirkungen
2 Konzepte
- private Adressräume
- Zugriffsschutz auf Arbeitsspeicherbereiche
Verhinderung zeitlicher Wechselwirkungen
- Ursache: Prozesse geben freiwillig keine Prozessoren auf
- Umgang damit
- periodische Aktivierungen preemptiver Scheduler (Uhr)
- Scheduler-Aktivierungen durch asynchrone Ereignisse
- kritisch also: Operationen zum Abschalten von
- Uhr
- Ereignismanagement (s. Kap. 5.4)
- weitere kritische Operationen
- Veränderung des Speicherlayouts
- Veränderung kritischer Prozessorkontrollregister
- Zugriff auf E/A-Geräte
- notwendig: Schutz kritischer Operationen des Instruktionssatzes
Lösungskonzept: Privilegierungsebenen ablaufender Aktivitäten, z.B.
- „kernel mode“ (≈ Betriebssystem-Modus)
- „user mode“ (Nutzer-Modus)
- ermöglichen: Durchsetzung von Regeln:
- „Nur eine im „kernel mode“ ablaufende Aktivität hat Zugriff auf ...“
- Privilegierungsebenen steuern Rechte ...
- zur Ausführung privilegierter Prozessorinstruktionen
- zur Konfiguration des Arbeitsspeicher-Layouts
- zum Zugriff auf Arbeitsspeicherbereiche
- zum Zugriff auf E/A-Geräte
Realisierung: abhängig von Prozessorarchitektur
- in Ringen 0 (höchste Priorität) bis 3 (niedrigste Priorität)
Implementierung: Hardware-Unterstützung
- aktuelle Privilegierungsebene ist
- Teil des Prozessor-Statusregisters: „Current Privilege Level“ (CPL)
- Grundlage der Hardware-Schutzmechanismen; permanente Überwachung
- der ausgeführten Instruktionen
- der Arbeitsspeicherzugriffe
- der E/A-Peripheriezugriffe
- Modifikation des CPLs nur
- durch privilegierte Instruktionen
- bei Beginn und Abschluss
- des Aufrufs von Systemdiensten
- einer Ereignisbehandlung
Botschaften
- jede auf Privilegierungsebene < 3 ablaufende Aktivität hat Zugriff auf kritische Ressourcen
- jede auf Privilegierungsebene 0 ablaufende Aktivität hat Zugriff auf
- sämtliche Ressourcen eines Prozessors
- sämtliche Instruktionen (z.B. HALT)
- sämtliche Prozessorregister (z.B. Prozessor-Status-Register (PSR) )
- MMU-Register zur Arbeitsspeicherkonfiguration
- sämtliche Register der E/A-Peripherie
Sämtliche Schutz- und Sicherheitsmechanismen von
- Anwendungsprozessen
- Betriebssystem beruhen elementar auf 2 Bits: „Current Privilege Level“ (CPL) im Prozessor-Status-Register (PSR)