Übersicht / Geschichte der Betriebssysteme

Werbung
Übersicht / Geschichte
Übersicht / Geschichte
der Betriebssysteme
Tanenbaum
Stallings
Glatz
1
Kap. 1.1, 1.2, 1.5, 1.7
Kap. 2.1 - 2.5
Kap. 1
ZHAW, BSy, M. Thaler
Dezember 16
1
Inhalt
Lehrziele
Geschichtliche Entwicklung
• Batch Systeme, Multiprogramming, Time Sharing Systeme,
Problemstellungen
Grundkonzepte aktueller Betriebssysteme
• Prozesse, Scheduling und Ressourcenverwaltung,
Speicherverwaltung, Schutz und Sicherheit,
Systemarchitektur
Aktuelle Betriebssysteme
• Microkernel Architektur, Virtualisierung, Real-Time BS,
Symmetrisches Multiprocessing, Multithreading,
2
ZHAW, BSy, M. Thaler
Dezember 16
2
Lehrziele
Sie können
• den Begriff Betriebsystem erklären
• die Begriffe Batchbetriebssystem, Uniprogramming,
Multiprogramming , Time Sharing erklären und diskutieren
• den Begriff Monitor erklären
• Problemstellungen bei frühen Betriebssystemen aufzählen
• grundlegende Konzepte von Betriebssystemen aufzählen und
diskutieren
• aktuelle Betriebssystemtypen aufzählen, erklären und diskutieren
• die Begriffe Multithreading und symmetrisches Multiprocessing
erklären und diskutieren
3
ZHAW, BSy, M. Thaler
Dezember 16
3
(R)Evolution bei Hardware
Entwicklung der Betriebssysteme
• eng verknüpft mit Entwicklung der Computer-Hardware
• seit 1953
Hardware Komponenten ca. um Faktor 109 besser
Typischer Rechner
1981
MIPS
Kosten/MIPS
Speicher
Disk
Netzwerk
Adressbits
4
1
150‘000
128
10
9600
16
Fr
KByte
MByte
Bit/s
Bit
2015
Faktor
150'0001)
150'000
50·106
130'000
300'000
11·106
4
0.5
16
3
100
64
Rp
GByte
TByte
GBit/s
Bit
1) Intel i7, Extreme Edition, 3.3GHz (1000$), Quelle Wikipedia
ZHAW, BSy, M. Thaler
Dezember 16
4
Geschichtliche Entwicklung: 5 Generationen
1945-1955
1955-1965
1965-1980
Röhren
Steckbretter
Transistoren
Batchsysteme
IC's
Multiprogramming
kein Betriebssystem
keine Software
"Monitor"
Assembler,
Fortran, Cobol,
Bibliotheken
Technologie
Betriebssysteme
Multics
OS/360
• Unix (Mini)
1972
1980Personal
Computer
1990Mobile
Computer
• MS-DOS 1.0 • WIN 3.0
• WIN NT
• MacOS
• OS/2 • Linux
UNIX (Micro)
iPhone
(2007)
Android
(2008)
SMPKommunikationsScheduling
protokolle
(Multicore)
Spooling Integrierte SchaltungenDistributed Computing
Transistoren
Multiprogramming
Personal Computer
Batchsysteme
Multiprogramming
Graphische
Schutzmechanismen
Benutzeroberflächen
Cloud
Time Sharing
Offene Systeme
Computing
Process Scheduling
MULTICS
UNIX (Mini)
UNIX (Micro)(OpenStack
"Monitor"
Memory Management
CPU
CPU
CPU
CPU
OS/360
2009)
• MS-DOS 1.0
• WIN 3.0
on-line File Systeme
Assembler, Fortran
Real-Time Systeme
• MacOS • WIN NT
Cobol, Programmbibliotheken
• OS/2
Bildschirmterminals
Lochstreifen, -Karten
Multicoreerste PC's
Prozessoren
Batchverarbeitung
KommunikationsVektor- und Mehr(2004)
prozessorsysteme
protokolle
Spooling
I/O Prozessoren
Multiprogramming
Verdrängung Mainframes
Common Level 3 Cache
Schutzmechnismen
Distributed
Computing
Befehlskompatible
durch PC's
und WS's
Touch
Rechnerfamilien
Screens
Vernetzung
zunehmende
(PDP-6/10/11...)
Bedeutung
Technologie
Röhren
Konzepte
Steckbretter
Betriebssysteme
kein Betriebssystem
no Software
GPU
Erkenntnisse
Eingabe über
Schalter
Hardware
DEC PDP-1
Intel i75 Haswell
PCI Express Controller
Batchverarbeitung
Memory ControllerZHAW, BSy, M. Thaler
Dezember 16
• 5 Generationen von elektronischen Comptern
- Röhren
Batchsysteme, Uniprogramming
- Transistoren
Batchsysteme, Multiprogramming
- Integrierte Schaltungen
Time Sharing
- Personal Computer
CP/M: Control Program for Microcomputers
DOS: Disk Operating Systems
- Mobile Computers
5
Geschichtliche Entwicklung: 5 Generationen
1945-1955
1955-1965
1965-1980
Röhren
Steckbretter
Transistoren
Batchsysteme
IC's
Multiprogramming
kein Betriebssystem
keine Software
"Monitor"
Assembler,
Fortran, Cobol,
Bibliotheken
Technologie
Betriebssysteme
Multics
OS/360
• Unix (Mini)
1972
1980Personal
Computer
• MS-DOS 1.0 • WIN 3.0
• WIN NT
• MacOS
• OS/2 • Linux
UNIX (Micro)
Spooling
Multiprogramming
Schutzmechanismen
Time Sharing
Process Scheduling
Memory Management
on-line File Systeme
Real-Time Systeme
Eingabe über
Schalter
Graphische
Benutzeroberflächen
Offene Systeme
Bildschirmterminals
erste PC's
Vektor- und Mehrprozessorsysteme
Lochstreifen, -Karten
Hardware
Mobile
Computer
Kommunikationsprotokolle
Distributed Computing
Batchverarbeitung
Konzepte
1990-
I/O Prozessoren
Befehlskompatible
Rechnerfamilien
(PDP-6/10/11...)
6
Verdrängung Mainframes
durch PC's und WS's
Vernetzung zunehmende
Bedeutung
ZHAW, BSy, M. Thaler
iPhone
(2007)
Android
(2008)
SMPScheduling
(Multicore)
Cloud
Computing
(OpenStack
2009)
MulticoreProzessoren
(2004)
Touch
Screens
Dezember 16
• 5 Generationen von elektronischen Comptern
- Röhren
Batchsysteme, Uniprogramming
- Transistoren
Batchsysteme, Multiprogramming
- Integrierte Schaltungen
Time Sharing
- Personal Computer
CP/M: Control Program for Microcomputers
DOS: Disk Operating Systems
- Mobile Computers
6
Batch-Systeme
7
• Erste Betriebssysteme
ZHAW, BSy, M. Thaler
Dezember 16
Batchsysteme:
- Mitte 50er Jahre, General Motors auf einer IBM 701
- Anwender übergibt Job (Lochkarten oder Band) an den Operator
- der Operator reiht mehrere Jobs sequentiell in einem Eingabegerät auf
Batch
- ein spezielles Programm, der Monitor, kontrolliert Ausführung der Jobs im Batch
(sequentielle Verarbeitung)
- der für die Steuerung wichtige Teil des Monitors
Monitor
immer im Speicher
Resident
- Hilfsprogramme werden nach Bedarf eingelesen
7
Der Monitor: ein Minimalsystem
Ein Programm
• bei Hardware-Reset des Prozessors gestartet
- HW-Reset
default HW settings
• intialisiert
- Interruptvektoren
falls vorhanden
- Kommunikation mit Anwender
- in komplexeren Systemen
Speicher- / IO-Schnittstellen, etc.
Cache, MMU, Disk-Controller, etc.
• stellt zur Verfügung
- Debugging-Hilfen, einfache Funktionen
Beispiele
• einfacher Monitor: CT, komplexer Monitor: BIOS bei PC's
8
ZHAW, BSy, M. Thaler
Dezember 16
• Initailisierung
- Interruptvektoren
setzt nicht gebrauchte Vektoren auf Default Wert → z.B. nur IRET
- einfache Kommunikation mit Anwender für
setzen und lesen von Parametern, Speicher, etc.
laden von Programmen (M86)
debuggen von Programmen (single step)
etc.
- einfache Schnittstellen, so dass HW nicht beschädigt wird
- einfachen bootloader starten, falls vorhanden (z.B. aus Flash)
• zusätzlich bei komplexen System (z.B. BIOS)
- Initialisierung von
weiteren HW Komponeneten
• Cache Controller
• Memory Management Unit (MMU)
Speicher
• Check auf korrekte Funktionalität
• wie viel Speicher ist vorhanden
• etc.
Disk IO
- ev. boot loader starten
8
... Batch-Systeme: Monitor
Speicherlayout
Interrupt
Processing
Monitor
Device
Drivers
Monitor
• liest Job um Job vom Eingabegerät
• legt Job im Anwenderprogramm-Bereich ab
Job
Sequencing
Monitor-Instruktionen
• starten Anwenderprogramm
• warten auf
- Instruktion "END OF PROGRAMM"
- oder Fehler
Contrl. Language
Interpreter
User Program
Area
Uniprogramming
• nur ein Programm im Speicher
9
ZHAW, BSy, M. Thaler
Dezember 16
Batch-Verabeitung
• Monitor
- resident Monitor: steuert den Ablauf steht immer im Speicher
- Hilfsfunktion, etc. werden nach Bedarf mit Anwenderprogrammen geladen
- wenn Job in Speicher geladen
- wenn Job terminiert
Kontrolle an Job
Kontrolle zurück an Monitor
End Of Program oder Fehler
- Resultate werden an entsprechende Ausgabegeräte weitergegeben
• Monitorsteuerung (gelb) und Programm (grau) z.B. auf Lochkarten
9
Batch Systeme: Uniprogramming
I/O Operationen
• sehr langsam im Vergleich zur Ausführung von Instruktionen
CPU oft idle
Programme mit viel I/O Operationen
• verbringen meiste Zeit mit Warten
• sehr schlechte CPU-Auslastung
Run
wait for I/O
Run
Run
wait for I/O
t
Zeit
10
ZHAW, BSy, M. Thaler
Dezember 16
10
Batch Systeme: Multiprogramming
Mehrere Programme im Speicher
• Programm wartet auf I/O Operation
• Monitor führt anderes Programm aus (interleaving, concurrent)
Multiprogramming bzw. Multitasking
Run
wait for I/O
Run
wait for I/O
Run
Run
wait for I/O
wait for I/O
Run
wait for I/O
Run
Run
wait for I/O
Run
Run
Run
Run
Run
wait for I/O
wait for I/O
t
11
ZHAW, BSy, M. Thaler
Dezember 16
• Benötigte Hardwareunterstützung
- I/O Interrupts und (wenn möglich) DMA
Instruktionen können während I/O Operationen ausgeführt werden
- Speicherverwaltung (memory management)
mehrere lauffähige Jobs im Speicher halten
• Softwareunterstützung
- Scheduling
welcher Job wird als nächstes ausgeführt
- Steuerung und Kontrolle des Zugriffs auf Ressourcen
Konflikte vermeiden, resp. lösen
11
MP: nowendige HW-Unterstützung
Interrupts
• Programmunterbruch
Programmumschaltung möglich
Timer
• verhindert, dass Job unendlich lange läuft
• time-out Interrupt
Rückkehr in Monitor
Speicherschutz
• Anwenderprogramm kann nicht versehentlich in Speicherbereich
des (residenten) Monitors schreiben
Privilegierte Instruktion
• nur vom Monitor ausführbar, z.B. I/O Instruktionen
• von den meisten modernen Prozessoren (und BS) unterstützt
12
ZHAW, BSy, M. Thaler
Dezember 16
12
Beispiel 3 Jobs: Uni- vs. Multiprogramming
CPU
CPU
97%
Memory
100%
Memory
20%
40%
30%
Disk
90%
Disk
100%
Terminal
Printer
10%
Printer
100%
40%
100%
Terminal
10%
70%
100%
JOB1
JOB2
JOB3
Jobs
Jobs
JOB1
0
5
JOB2
10
JOB3
15
20
25
25
0
5
10
15
Ressourcenauslastung in %
13
ZHAW, BSy, M. Thaler
Dezember 16
• 3 Jobs mit minimalen Konflikten beim Zugriff auf Ressourcen
- Annahme
Job 2 und 3 erhalten genügend CPU-Zeit für I/O Aktivitäten
Jobs können in minimaler Zeit ablaufen
- Ressourcenbedarf der Jobs
Job 1
Job 2
Job 3
heavy compute
heavy I/O
heavy I/O
5 Min.
15. Min
10. Min
50 K
100 K
80 K
Need disk
no
no
yes
Need terminal
no
yes
no
Need printer
no
no
yes
Type of job
Duration
Memory req.
- Ressourcenauslastung des Rechners durch Jobs
Uniprogramming
Multiprogramming
Processor use
17%
33%
Memory use
30%
67%
Disk use
33%
67%
Printer use
33%
67%
Elapsed time
30 Min.
15 Min.
Throughput rate
6 jobs/hr
12 jobs/hr
Av. turnaround time
17 Min.
10 Min.
13
Time Sharing Systeme (TSS)
Batch Multiprogramming
• keine Interaktion mit Anwender möglich
Time Sharing erweitert Multiprogramming
• gleichzeitige (concurrent) Ausführung mehrerer interaktiver
Programme
• CPU-Zeit auf mehrere Benutzer verteilt
• "gleichzeitiger" Zugriff durch mehrere Benutzer
Erstes Time Sharing System am MIT
• CTSS (compatible time sharing system)
• um 1962 auf IBM 709
14
ZHAW, BSy, M. Thaler
Dezember 16
• Wieso funktioniert es ?
- Mensch hat "lange" Reaktionszeiten
- benötigt ca. 2 sec. Rechenzeit pro Minute
- Anwender erhält Rechenleistung nur für gewisse Zeitdauer
• Fazit
- ca. 30 Anwender könnten ohne wahrnehmbare Verlängerung der Reaktionszeit
(≤ 100ms) das System gemeinsam nutzen
- Schutz des File Systems und Arbeitsspeichers notwendig (mehrere Benutzer)
• 100ms Reaktionszeit gilt als akzeptabel
• CTSS: sehr einfach im Vergleich zu heutigen TS-Systemen
- sehr einfach
Monitor klein
- Jobs immer vollständig in Speicherbereich geladen
- auslagern von suspendierten Jobs nur wenn notwendig
- maximal 32 Benutzer
14
Uni- vs. Multiprogramming vs. Time Sharing
Uniprogrammed Batch System
• ein Job aus Batch im Speicher
• sequentielle Verarbeitung der Jobs
• Monitor zur Steuerung, keine Interaktion mit Anwender
Multiprogrammed Batch System
• mehrere Jobs im Speicher
• benötigt
- Scheduler, Interrupts, Speicherverwaltung
Time Sharing System
• gleichzeitige Verarbeitung mehrerer interaktiver Jobs
• benötigt
- Schutz des Filesystems und Arbeitsspeichers
- Mutex (gegenseitiger Ausschluss), z.B. Zugriff auf Drucker
15
ZHAW, BSy, M. Thaler
Dezember 16
15
Frühe Betriebssysteme
Probleme mit
• nichtdeterministischem Programmverhalten
- Resultat der Berechnung abhängig von anderen aktiven
Programmen
• gegenseitigem Ausschluss
- mehr als ein Programm greift gleichzeitig auf Ressource zu
• Synchronisation
- Signale beim Warten verloren
• Deadlocks
- Programme warten gegenseitig, z.B. auf Freigabe von
Ressourcen
16
ZHAW, BSy, M. Thaler
Dezember 16
16
Grundkonzepte moderner BS
Lösung Probleme
fünf wesentliche Konzepte
1. Prozesse
2. Scheduling und Ressourcenverwaltung
3. Datenmangement
- Speicherverwaltung
- File-Systeme
4. Schutz und -Sicherheit
5. System-Architektur
17
ZHAW, BSy, M. Thaler
Dezember 16
17
... Grundkonzepte moderner BS
Prozess
• Programm in Ausführung ... "Sandbox"
Scheduling
• Zuteilung von Rechenleistung
• BS unterhält Queues (Wartelisten)
- Ready Queue
Prozesse warten im Speicher auf CPU
- Wait Queues
Prozesse warten auf entsprechendes I/O Gerät
oder I/O Operation
- Long Term Queue
Prozesse warten auf Zulassung zum System
lässt beschränkte Anzahl von Prozessen zu
18
ZHAW, BSy, M. Thaler
Dezember 16
18
... Grundkonzepte moderner BS
Ressourcenverwaltung
• Verwaltung und Zuteilung von Ressourcen
• berücksichtigt
- Fairness
alle Prozesse haben gleiche Zugriffsrechte
- differenzierte Behandlung
verschiedene Klassen von Prozessen berücksichtigen
globale Aspekte
z.B. Prozesse, die auf I/O Daten warten, sofort einplanen,
wenn Daten verfügbar
- Effizienz
maximaler Durchsatz, minimale Antwortzeit
möglichst viele Benutzer bedienen
19
ZHAW, BSy, M. Thaler
Dezember 16
19
... Grundkonzepte moderner BS
Speicherverwaltung
• Prozessisolation
- kein gegenseitiger Zugriff auf Speicher und Daten möglich
• automatische Speicherallokation
- Programmierer muss sich nicht um Speicher kümmern
- Betriebssystem weist Speicher nach Bedarf zu
• Schutz und Zugriffskontrolle
- Zugriffskontrolle und Schutz bei gemeinsamer Nutzung
des Speichers
- Lösung: z.B. virtueller Speicher
20
ZHAW, BSy, M. Thaler
Dezember 16
• Virtueller Speicher
- (virtueller) Addressraum grösser als physikalischer Adressraum
- Speicherblöcke (pages) im virtuellen Speicher werden auf Blöcke (frames) im
physikalischen Speicher abgebildet
- nur wirklich benötigte pages werden in den Speicher geladen
- Rest auf Disk ausgelagert
20
... Grundkonzepte moderner BS
File-Systeme
• Langzeitspeicherung von Daten auf Sekundärspeicher
• Informationsspeicherung in Files
- Objekte mit Namen (named objects)
- Einheit bezüglich Zugriff und Schutz
• Ablageorganisation der Files
- in Verzeichnissen (directories)
hierarchisch
- Verzeichnisse enthalten Files und Verzeichnisse
• Operationen auf Files
- Erzeugen, Löschen, Öffnen, Schliessen, Lesen, Schreiben,
Erweitern, Kopieren, Umbenennen, etc.
21
ZHAW, BSy, M. Thaler
Dezember 16
21
... Grundkonzepte moderner BS
Schutz und Sicherheit
• Zugriffskontrolle
- Systemzutritt nur für zugelassene bzw. registrierte Nutzer
- keine Zugriff auf nicht freigegebene Ressourcen
• Kontrolle des Informationsflusses
- innerhalb des Systems
- bei Auslieferung an Benutzer
• z.B. Firewalls, ACLs, etc.
Zugriffskontrolle
Ressource
Ressource
Kontrolle des
Informationsflusses
22
ZHAW, BSy, M. Thaler
Dezember 16
22
... Grundkonzepte moderner BS
System-Architektur
• Komplexität von Betriebssystemen
- CTSS, 1963, MIT
- OS/360, 1964, IBM
- Multics, 1975, MIT / Bell Labs
- Win/XP
• Lösungsansatz Schichtenmodell
32‘000 36-Bit Wörter
mehr als 106 Instruktionen
mehr als 20 ·106 Instr.
~30·106 Zeilen Code
Anwenderprogramme
Systemdienste
BS-Funktionen
prozessorunabhängig
Kernel
Hardware-Kontroller
prozessorabhängig
Hardware
23
ZHAW, BSy, M. Thaler
Dezember 16
• Schichtenmodell
- jede Schicht stellt eine Anzahl Funktionen zur Verfügung
- jede Schicht verwendet Funktionen aus der nächst unteren Schicht
- gut definierte Schnittstellen
Schicht kann modifiziert werden, ohne anderen Schichten zu beeinflussen
- Nachteil
Leistungseinbusse (performance loss)
- Vorteil
übersichtliche Struktur
Aufteilung in Teilsysteme
einfacher zu handhaben
• DOS
- Diretkzugriff auf Hardware war möglich
sehr gefährlich
23
Microkernel Architektur
User
Mode
I/O Device Mgmt.
Kernel
Mode
•••
Virtual Memory
IPC
File Server
User
Mode
Gerätetreiber
Filesystem
Client Prozess
Benutzer
Virtual Memory
Primitives Proz. Mgmt.
Microkernel
Kernel
Mode
Hardware
Traditionelle Architektur
Hardware
Micorkernel Architektur
monolithischer Kernel
24
ZHAW, BSy, M. Thaler
Dezember 16
• Traditionelle Betriebssysteme
- nach Schichtenmodell aufgebaut
- Schichten sind umfangreich
- grössere Änderungen in Schicht
ev. Auswirkung auf benachbarte Schichten
• Microkernel Architektur
- nur notwendigste Funktionen im Kernel, abhängig von aktueller Implementation
- restliche Dienste
Prozessen, die im User Mode laufen (Server)
typische ausgelagerte Funktionen: Filesystem, Treiber, Virtual Memory
Manager, Window System, Sicherheitsdienste, etc.
- Kernel: "Kommunikationsplattform zwischen Prozessen"
- Diskussion
zuverlässiger (weniger Code), leicht erweiterbar: neuer Dienst neuer Prozess
einheitliche Schnittstellen: Message Passing zwischen Prozessen
Flexibilität: nur benötigte Dienste laufen (anwendungs-spezifisch)
Portabilität: Kernel klein
schlank
HW-Anbindung klein
leicht geringere Leistung, wegen Interprozesskommunikation
SMPs und verteilte Systeme: Prozesse auf beliebige CPUs verteilbar
Beispiele: Mach (CMU) → Apple , Chorus
24
Virtualisierung
Virtual Machine Monitore (VMM)
• heute oft "Hypervisor" genannt
• ca. 40 Jahr alt: IBM Mainframes
Apps
Apps
Apps
Apps
OS1
OS2
OS3
OS4
Hypervisor Typ 1
HW
CPU Memory Disk Network
Apps
Apps
Apps
Apps
OS2
OS3
OS4
Hypervisor Typ 2
Host BS
HW
CPU Memory Disk Network
Typ 1: kein Host BS
Typ 2: Host BS
25
ZHAW, BSy, M. Thaler
Dezember 16
• IBM seit ca. 40 Jahren virtuelle Maschinen
• In PC-Welt ab 90er Jahren verschiedene Forschungsprojekte
- Disco (Stanford), Xen (Cambridge)
- daraus entstandene kommerzielle Produkte
VMWare, Xen, VirtualBox (Sun, Oracle), Hyper-V (Microsoft), etc.
• Moderne Prozessoren unterstützen zudem Virtualisierung
- notwendig wegen privilegierten Instruktionen und Interrupts
• Type 1 Hypervisor: "bare metal" oder native
- es gibt kein Host Betriebssystem
- Hypervisor beinhaltet Treiber für Ansteuerung der Hardware
• Type 2 Hypervisor: hosted
- Hypervisor setzt auf "vollem" Betriebssystem auf
- nutzt Filesystem und Treiber des Hosts für Hardwarezugriff
- benötigt meist Kernelmodul wegen privilegierten Instruktionen
• Vorteile
- mehrere Betriebssysteme laufen gleichzeitig auf einem Rechner
WEB-Hosting, Cloud-Computing
- ein "Problem" Betriebsystem beeinflusst die Funktionalität nihct
• Nachteile
- etwas langsamer
25
Real-Time Betriebssysteme
Real-Time Systeme
• in reale Umwelt eingebettet
• müssen auf Ereignisse reagieren
• z.B. Prozesssteuerungen, Flugzeugsteuerung, Einspritzung, etc.
Echzeitsysteme: zwei Bedingungen
• das Resultat muss logisch korrekt sein
• das Resultat muss zur richtigen Zeit abgeliefert werden
Beispiele
• Sie geben Gas zum Überholen: der Bordcomputer hat gerade
keine Zeit das Einspritzventil zu öffnen, na ja ...
• Flugzeug im Landeanflug: der Bordcomputer hat gerade
keine Zeit für die Steuerung, ....
26
ZHAW, BSy, M. Thaler
Dezember 16
• Nicht alle RT- Systeme mit so hohen Anforderungen
- z.B. sollte ein Editor Buchstaben innerhalb von 2s auf dem Bildschirm darstellen
- oder, die Bank sollte Buchungen innerhalb einer Woche durchführen
→ Soft RealReal-Time Systeme
• Real-Time Betriebssysteme
- i.A. eine sehr eingeschränkte Funktionalität
meist kein Virtual Memory und Sekundärspeicher oder nur sehr beschränkt:
Programme, etc. in ROM
- unterstützen nur die notwendigsten Funktionen
- sehr hardwarenahe implementiert → bessere Kontrolle über Zeitverhaltens
26
Symmetrisches Multiprocessing
Symmetrischer Multiprozessor (z.B. Multicore, ...)
• alle CPUs gleich
• gemeinsam: Speicher und I/O Subsystem
Scheduling
• BS muss Tasks auf allen CPU's einplanen können
CPU
Cache
Cache
Main
Memory
27
CPU
...
Cache
I/O Subsystem
CPU
ZHAW, BSy, M. Thaler
Dezember 16
• Ein Rechner mit mehreren Prozessoren
- Trend (Normalfall): mehrere CPUs auf einem Chip
- meist Level 1 und 2 Caches pro Prozessor, aber gemeinsamer Level 3 Cache
• Alle CPUs
- arbeiten selbständig
- gleiche Funktionalität, können alle Aufgaben bearbeiten
symmetrisch
- nutzen Hauptspeicher und I/O Geräte gemeinsam
- haben eigenes Cachesystem
Cache: Abbild des Hauptspeichers (einzelne Blöcke)
Cache Coherence Problem
• gleicher Block aus Speicher in mehreren Caches, eine CPU ändert Wort
in Cache
was sehen die anderen CPUs ?
• Lösungen meist auf Hardwareebene
• Echte Parallelität: das BS verteilt Prozesse und Threads auf alle Prozessoren
- für Anwender transparent
• Vorteile
- höhere Leistungsfähigkeit durch zusätzliche CPUs
- Verfügbarkeit: kein Stillstand bei Ausfall einer CPU, nur Leistungsreduktion
gilt für Multicores beschränkt
• Nachteil
- Betriebssystem aufwendiger (speziell Scheduler)
- Datenmanagement aufwendiger
27
Herausforderung bei BS
Tradeoff zwischen
Einfachheit und Leistungsfähigkeit
erste Wahl
Einfachheit
... "ausser es gibt einen überzeugenden Grund zu
glauben, dass akzeptable Leistung nur durch
Komplexität erreicht werden kann"
28
ZHAW, BSy, M. Thaler
Dezember 16
28
... Herausforderungen / Trends
Neue Hardwareentwicklungen
•
•
•
•
•
Multiprozessoren / Multicore-, Many-Core Prozessoren
keine schnelleren Prozessoren
Hochgeschwindigkeitsnetzwerke
grössere Speicher (RAM, Disk, etc.)
64-Bit Architekturen, mit/ohne x86 Instruktionssatz
Neue Softwareanforderungen
•
•
•
•
•
•
29
Mobile Computing
Eingebettete Systeme
Internet of Things
Cloud Computing (Client/Server Anwendungen)
Distributed/Parallel Computing
Multimedia Anwendungen
ZHAW, BSy, M. Thaler
Dezember 16
29
Zugehörige Unterlagen
Herunterladen