Einführung Organisation Was ist ein Betriebssystem? Schnittstelle

Werbung
Einführung Organisation
Was ist ein Betriebssystem?
Ziel Betriebssystem?
Aufgaben von OS?
Vorteile
Schnittstelle zwischen Anwendersoftware und der Hardware.
Einfache und effiziente Nutzung von Rechnersystemen
Ressourcenverwaltung: Rechnerleistung, Speicher, I/O Geräte, Daten (Disk, Filesys)
Anbieter standardisierter Dienste: File-Zugriff, Networking, IO
Virtuelle Maschine, keine Gedanken über Ressourcen
Computersysteme
Rechnersystem: CPU, Hauptspeicher, I/O, Busse
CPU
Register:
Interrupt: - unterbricht aktuelle Instruktionsausführung
PSW, Instruktionsregister, IP, Flags, Adressregister,
Datenregister
Quellen:
Ablauf:
-
System Mode, User Mode
Synchrone (ProgrammException z.B. div/0, TRAP, Software-Int:
SystemCalls)
Asynchrone (Timer: anderes Program, I/O Device, Hardwarefehler:
Parity Fehler)
-
Instruktion zu Ende führen
PC, PSW, Register etc. speichern
Umschalten System Mode
Über InterruptNr Vektortabelle adresse von ISR Interuppt
Service routine)
ISR Instruktion ausführen
PC, PSW Register wiederherstellen
Umschalten User Mode
-
Instruktionen Programm fortsetzen
Ziel: System Protection HW Ressourcen und BS von
Benutzer schützen
System Mode (Kernel Supervisor): Zugriff kritische Res
IO Speicherverwaltung, Kontrollregister
User Mode: unkritische Ressoucen
Umschaltung: per Mode Bit im PSW
I/O Module
- Programmed IO / synchron IO: CPU wartet
- Interrupt Driven IO / asynchron IO: CPU anders
- Direct Memeory Access DMA: kein Umweg CPU
Memory/ Speicher
Wieso funktionierts:
Lokalitätsprinzip: räumlich (Speicherzugriffe nah
beieinander), zeitlich (gleiche Instruktionen mehrmals)
Basis für Cache Einsatz
Mittlere Zugriffszeit : 𝑇𝑎
Zugriffszeit Cache:
𝑇𝐶
Zugriffszeit Speicher: 𝑇𝑀
Hit Ratio:
ℎ
Stack
Mit. Zugriffszeit = Wahrscheinlichkeit Cache *
Cachezugriff + (1-Wkt Cache) * (Cachezugriff +
Memoryzugriff)
LIFO Verfahren, wächst zu tieferen Adressen
Anwendungen:
- ProzeduraufrufRücksprungadresse oder Parameter
- Temporäre Datenablage PUSH POP
- Speicherung Prozessorzustand bei Interrupt
Geschichte
Dienste des Betriebsystems
-
Werkzeug Programmerstellung: Editor, Compiler, Linker, Debugger
Programmausführung
File- und I/O Zugriffe
Systemzugriff: Zugriffsrechte, Mehrfachzugriffe
Interprozesskommunikation: Austausch zwischen Prozessen
Fehlererkennung: intere und externe HW Fehler
Fehlerbehandlung
- Accounting (Benutzerhandling)
Wesentliche Konzepte
-
Prozesse
Scheduling (Zuteilung Rechenzeit) und Ressoucenverwaltung
Speicherverwaltung (Memory Management File)
Schutz Sicherung Informationen
-
Systemarchitektur
Batchbetrieb und Monitor:
•
•
•
•
nur ein Job aus Batch im Speicher
Jobs werden sequentiell abgearbeitet
Monitor zur Steuerung, keine Interaktion mit Anwender
Nachteil: viel Wartezeit, schlechte CPU Auslastung
Multiprogrammed Batch System:
• mehrere Jobs im Speicher
• Scheduler notwendig
• Interrupt und Speicherverwaltung notwendig
Time Sharing System:
• mehrere interaktive Jobs werden „gleichzeitig“
abgearbeitet
• Schutz des Filesystems und Arbeitsspeichers notwendig
• Mutex (gegenseitiger Ausschluss) notwendig
, 100ms Antwortzeit akzeptabel, max 32 Users Schutz
im Filesystem notwendig
Prozesse: Programme in Ausführung
Besteht aus: Programmcode, Daten, Stack,
Ausführungsumgebung (Register)
Architektur: Umgang mit Komplexität  Aufteilung in
Schichten  Nachteil: Leistungseinbussen  Erste Wahl
Einfachheit
Ressoucenmanagement berücksichtigt:
-
Fairness
Differenzierte Behandlung (IO Priorität etc.)
- Effizienz (max Durchsatz, minimale Antwortzeit)
Scheduling benutzt Wartelisten:
-
Ready Queue: Prozesse die auf Ausführung warten
Short Term Queue: P im Speicher, warten an Reihe zu kommen
I/O Queue: P warten auf IO Gerät
Long term queue: neue Prozesse die warten System benutzen zu
können
Moderne Betriebsysteme
Architektur
Traditionell (Fat Kernel): Schichtenprinzip, änderungen Wirken sich
auf andere Schichten aus
Microkernel:
-
nur notweniges
restliches als Prozesse im UserMode (Filesystem, Treiber, Virtual
MemeryMan, Sicherheitsdienste)
Kernel: Kommunikation zwischen Prozessen
Vor-Nachteile:
Multiprocessing: Mehrere Prozessoren, gemeinsamer
Speicher und IO System
Virtual Machines: Illusion mehrere virtueller Rechner BS
auf einem system
-
Weniger Leistung wegen Interprozesskomunikation
Erweiterbar
Portabilität
Flexibilität
-
Jeder Prozessor eigener Cache
Vorteile: schneller und Ausfallsicherer
Nachteil: BS aufwändiger (Scheduler)
Vorteile: Schutz System Ressourcen (VMs
isoliert), Mittel für F&E von BS (Entwicklung
allgemein)
Nachteil: langsamer, schwierig HW vollständig
richtig nachzubilden
Müssen sofort auf Ereignisse reagieren bzw.
Resultat zur richtigen Zeit da sein.
Meist sehr HW nahe Implementierung
Meist eingeschränkte Funktinalität
Real-Time Betriebsysteme:
-
Systemadministration und Sicherheit
Ziele: Make Users happy, Sicherheit, gut
Lauffühig ohne grosse Aufwand
Aufgaben:
Tägliche: Notfälle, Systemüberwachung, Routineaufgaben
Planung: Policies, Anforderungen klären, Evaluation, Einkauf
Installation: Einspielen, Konfigurieren, Testing, Benutzerkonten
Unterhalt: Benutzeradministration, Disk Management, Backup, HW/SW Updates, Tuning, Troubleshooting
Sicherheit: Security Patches, Systemüberwachung
Support und Training Benutzer
Boot-Vorgang (Linux)
Prozessor startet BIOS
Runlevels:
-
BIOS testet System
BIOS lädt MBR (Master Boot Record, 512Byte)
MBR liest ersten Boot Record (Info BootLoader )
MBR startet Boot Loader (LILO, Grub)
Grub übernimmt und liest /boot/grub/menu.lst
Grub startet Kernel (vmlinuz-x.y.z in /boot)
Kernel lädt Module und stratet INIT Prozess
-
Jedem Runlevel bestimmte System-Dienste zugewiesen, nacheinander gestartet
Idee Sicherheitsstufen
0 Halt, 1: Einzelbenutzerbetrieb für einache Wartung, 2 Mehrnutzer ohne
Netzwerk 3: Multiuser-Mode mit Netzwerk, textuelles Login, 5 Multiuser-Mode
mit Benutzerobefläche, 6 Reboot
-
Init liest /etc/inittab, startet Scripts und bringt System
in einen Runlevel
/etc/rc.d: Init- Scripts die Dienste starten/stoppen (rc=run
command)
rc0.d-rc6.d: Links zu den Skripts im selben Verzeichnis
KxyName -> ../init.d/sshd
//Kills Reihenfolge
SxyName -> ../init.d/local
// Starts
rc: ruft die rc0.rc6 auf
manuell: /etc/init.d/smb start
Geordnetes Abschalten:
shutdown –h +20 bitte Arbeit beenden, System wird abgeschaltet
Konfigurationsdateien (Textdateien)
Ort: /etc oder /etc/sysconfig
Webtool: www.webadmin.com
Disk- und Dateisysteme
Partitionen : MBR, und bis 4 Primärpartitionen oder 3 Promär mit bis 12 Sekundärpartitionen
Partitionierung abhängig: mehrere BS, einfacher Backup, Felxibilität Wachstum, mehr Sicherheit
Linux minimal Partition: /boot (BS), / (root), swap (temp)
Werkzeuge : DiskDruid, fdisk, Acronis, PartitionMagic
Planung : Flexibilität (wachsen, backup, sicherheit), Backup (schneller, nach häufigkeit, system upgrades),
Performance (bessere Lastverteilung IO, kleine partitionen reduzieren seek der HD)
Trennung Datenbestände: konstante Daten (Anwendungen Systemanwendungen), wachsende Daten
(Benutzerdaten)
Befehle: df –h (zeigt Partitionen und Platzverbrauch/besetzt), du –s path (zeigt grösse einzelner Verzeichnisse an)
Dateisystem und Formatierung: ex2,ex3, ntfs etc. Kommando: mkfs,mke2fs
3 Filetypen: Files, Directories, Gerätedateien
Mount/Umount: hängt Partition Filestruktur in Directory
Baum (nur Superuser, ausnahmen in /etc/fstab)
Mount /dev/hda2 /home
Fstab:
-
/dev/hdb6
/boot
ext2 defaults
1 1
Momentan gemountet: /etc/mtab
Netzwerkfilesysteme NFS und Samba SMB
SMB: Server Message Block von Microsoft
Verteiltes Filesystem und Druckerdienste, Zugriffskontrolle
Verbindet Linux/Windowswelt
Zugriffsrechte sehr flexibel, Unixrechte nicht voll unterstützt
/etc/init.d/smb start
Mounten: mount –t smbfs –o username=kleinand //mustang/kleinand
/home/kleinand/must
NFS: Network File System von Sun
Networking
ifconfig: zeigt oder konfiguriert Netzwerkinterface
ifdown/ifup eth0: reneuern
ping IP: kontakt zu IP
netstat: zeigt Netz-Zustand an
nslookup: Info zu Rechner und IP-adresse
arp –a listet Ethernet HW Adr
rup: Broadcast an alle Unixrechner
Benutzeradministration
Muster Profile:
- .bshrc, .bash_profile : Shell
- Menueinträge Einstellungen
- Dateien in /etc/skel bereitstellen
Backup
Weil:
-
Fehler
Sicherheitsattacken
- Datenausfälle Geschäft gefährden
Strategie:
-
So einfach wie möglich
Zeiteffizient
Einfach Rückspielung
-
Portierbar auf verschiedene Maschinen
Automatisierung ShellScript/PerlScript
Auto Ausführen Scripts: at und cron
-
at: ausführen bestimmt Zeit
o
at 01.04.00 01:30 –f shellscript
o
Freigabe: /etc/at.allow deny
-
cron: wiederholtes ausführen in Abständen
o ist deamon
o vrontab –e //editieren
o corntab –l // auflisten
Vertraut Clients immer kein Passwort
Exportiert Dateibäume, die gemounted werden können
Konfiguration Server: /etc/exports, /etc/rc.d/init.d/nfs start
- /etc/host.deny oder allow kontrollieren
Konfiguration Client: User ID Client und Server gleich, Portmapper
muss laufen
Mounten: mount – t nfs dskt6283:/home/tha /home/tha/nfs
NIS Network Informaion Services: Datenbankdienst stellt Client
Informationen des Netzwerk zur Verfügung /etc/passwd
/etc/group
Alternativen : LDAP und Kerberos
Useradd
Userdel –r // löscht auch home verzeichnis
Vorgehen:
-
Welche Verzeichnisse
Welcher Typ: vollständig, partiell inkrementell
Häufigkeit: täglich wöchentlich monatlich etc
Medien und Geräte
-
Disks: Kurzzeitspeicher, physikalisch getrennt
Tapes:
CDs: permanent, kleine Datenmengen
Netzwerk
Programme-Tools
-
tar (ohne komprimierung)
cpio/afio  find . | cpio –o –v –O /dev/fd0H1440
dump und restore
-
dd disk to disk copy (legt partition in file)
Prozesse und Threads
Prozess: Programm in Ausführung, Einheit schedulierbar, Ressourcenbesitzer
Prozess-Kontext: Schnappschuss seiner Laufzeitumgebung
Aufgabe BS: Prozessverwaltung
Scheduling
Mechanismen für Synchronisation, IPC, Erzeugung/Terminierung
-
Dispatcher: teilt CPU zu
Scheduler: plant die Zuteilung mit Algorithmus
Ressourcen zur Verfügung stellen (Deadlocks vermeiden)
New:
Prozess erzeugt aber noch nicht gestartet
Ready:
Prozess kann ausgeführt werden
Running: Prozess läuft
Blocked: Prozess wartet auf Ereignis z.B. IO Operation
Suspend Blocked: wurde ausgleagert wartet auf Ereignis
Suspend Ready: ausgelagert und bereit
Auslagern bei zu vielen Prozessen im Speicher auf sekundärspeicher 
Swapping
BS- Kontrollstrukturen:
Memory Tabellen
IO Tabellen
File Tabellen
Prozess Tabellen
Nur Logisch jeder machts anders.
Prozessbeschreibung
Der Prozesskontrollblock PCB
Wichtige Datenstruktur im BS
Enthält: Prozesskontext
Process Identification:
PID: zeigt in Prozesstabelle
PPID: Parent PID Id des Elternprozesses
UID, GID, Benutzer oder Gruppe
Processor State Information:
Für Benutzer sichtbare Register
Kontroll/Steuerregister, Stackpointer
Processor Status Wort PSW-> Flags
Process Control Information:
Scheduling/Zustandsindormationen: Prozesszustand (running),
Priorität, Ereignis auf das P wartet
Speicherverwaltung: Zeiger auf Seiten- Segmenttabellen
Prozessprivilegien: Zugriff auf Speicherbereiche
Interprozesskommunikation: Flags und Signale für IPC
RessourcenAllokation: benutzte Ressourcen, offene Files, IO
Geräte
Info zu Datenstrukurierung Verwaltung: Zeiger auf andere PCB
 Warteschalngen, Eltern Kind Beziehung
Prozesssteuerung
Prozessausführung
ausführen, erzeugen, umschalten
Prozesserzeugung
-
User Mode:
Anwendungen
-
System Mode:
Betriebsystem (Sicherheitsgründe: PCB,
AllocationTables. IO)
Prozessumschaltung (nur möglich wenn BS Kontroll CPU
erhält)
-
System Call: Aufruf des Anwenderprogramms
Interrupt: äussere Ursache IO- oder DMA beendet), Timer Interrupt
- Trap: Fehler der letzten Instruktion Division /0
Möglichkeiten:
-
Mode Switch: UserModeSystem Mode : Interrupts
Context/Prozess Switch: Prozess ändert  Timer Interrupt (immer 2
Mode Switches)
Short-term scheduler, alle 10ms aufgerufen
-
Prozess erzeugt oder beendet
Prozesszustand zu blocked
- Interrupt bzw. Timer
Ziele: Antowrtzeit minimieren, Dursatz maximieren, Faire Zuteilung
-
Prozessidentifikator erzeugen
Speicherraum Prozess Image allozieren
PCB initailisieren (Defaultwerte)
- In Queue einfügen
Mode Switch (2 wechsel)
-
-
Nur Prozessorzustand muss gespeichert werden
Interrupt Service Routine ISR im gleichen Prozess aber im
System Mode ausgeführt  BS-Code im virtuellen ProzessSpeicherbereich
Weniger Overhead: weil nicht ganzes PCB gespeichert
ContextSwitch (4 wechsel)
-
Prozessorzustand Register Speichern, PCB aufdatieren
Kostspielige Operation
Prozessausführung
Mikrokernel: wichtig schnelle Interprozess-Kommunikation
Lauter kleine Prozesse
Vorteile: modulare BS, unkritische Funktionen als Prozesse, gut für
Unix SVR4 Prozessmanagement
2 Kategorien von Prozessen
- Systemprozesse: Kernel Mode
- Anwenderprozesse: UserMode
Prozesse spalten über fork()
Zombies sind Kinder auf die nicht gewartet(wait())
wurde aber terminiert sind.
Prozess mit neuem Program überlagern: exec()
Multiprozessing, schlanker Kernel, leicht erweiterbar
Nachteil: hohe Interprozess-Kommunikation
Threads
Teilt: Adressraum, Daten, Betriebssystemressourcen
Hat eigene: lokale Variablen, Register, PC, Stack
Speichert Kontext wenn er nicht läuft
-
SingleThreading: BS kennt kein Threadkonzept  DOS
Multithreading: unterstützt mehrere Threads in Prozess  Solaris
- UNIX kennt mehrere Prozesse aber kein Threading
Vorteil:
-
billiger „light weight Process“ weil teilen sich Datenbereich
schnelles erzeugen und beenden 10x schneller Kernel
weniger Ressourcen
keinen neuen Adressraum, Datenbereich, Programmcode, oder BS
Ressourcen
#include <pthread.h>
void *print_message_function(void* ptr) {
printf("%s: %d\n", (char *) ptr, ++aVar);
}
main () {
pthread_t thread1, thread2;
char *message1 = "Hello";
char *message2 = "World";
pthread create(&thread1, NULL, print_messag_ function, (void*)message1);
pthread_thread1, NULL, print_message_function, pthread_create(&thread2,
NULL, print_message_function, (void*)message2);
Nachteil:
-
pthread_join (thread1, NULL); // warte bis Thread fertig
pthread_join (thread2, NULL);
exit(0);
kein Schutz zwischen Threads
Kommunikation:
-
globale Variablen  Synchronisiert (mutex, Moitor)
Verhalten:
Typen:
-
-
Swapping: Prozess mit allen Threads warden suspendiert
Prozess terminiert  alle Threads terminieren
Blockiert Thread  UserLevalThread: ganzer Prozess blockiert,
KernelLevelThreads: nur Thread blockiert
User-Level Threads (ULT): laufen in Benutzerbereich, Kernel weiss
nichts, Bibliothek realisiert blockiert bei System-Call ganzen
Prozess
o
Vor/Nachteil: läuft auf allen BS, schnell einfach,
involviert Kernel nicht, Systemcalls blockieren
Kernel-Level Threads (KLT): Kernel stellt Systemfkt zur Verfügung,
Kernel kennt Threads, leight weight Process
o
Vor/Nachteil: Scheduling auf Thread Basis,
Threadumschaltung kostet 2 ModeSwitches, benötigt
Thread Control Block TCB, langsam bei einer CPU
}
Prozess-Scheduling
Klassifizierung
Long-Term: welche Prozesse zulassen (New, Exit)
o
-
Steuert Grad des Multiporgramming,
Zulassungskriterien: kurze, interaktive oder
CPU-und IO bound Mix bevorzugen
Medium-Term: welche auslagern reinholen
(Suspends)
o
Entscheid swap out/in, Verantwortlich
Memory Managment Software
-
Short-Term: welche als nächstes ausführen (Ready,
Blocked, Running)  Dispatcher
o Teilt Rechenleistung zu
o
Prozess-Verhalten
Alle Prozesse laufen in einem CPU – I/O Burst
Zyklus (abwechselndes IO rechnen)
-
CPU-bound: lange CPU bursts z.B: Batch Jobs alle 8ms
-
I/O-bound: kurze CPU burst z.B: interactive Jobs
Grundidee: Blockierung Prozess durch IO-Operation, kann
anderer Prozess CPU nutzen
Ziele (schnell effizient): hohe Prozessorauslast, hoher
Durchsatz, faire Behandlung, kleine Ausführungszeit, kleine
Wartezeit, niedrige Antwortzeit
Anwendungsumgebungen (je nach Situation
anders)
Batch Systeme
-
Ziel: max Durchsatz, min Ausführungszeit, CPU-Nutzung
Keine Anwender
Verarbeitung am Stück
Meist non-preemptive Scheduling (keine Unterbrechung
ausser blockiert)
Interaktive Systeme
-
Ziel: kleine Antwortzeit, Erwartungen erfüllen
Anwender warten auf Antwort
Umschalten zwischen Prozessen notwendig
Preemptive Scheduling (Prozesse arbeiten während ihrem
Time Slice)
Real-time Systeme + embedded
-
Ziele: Deadline(kein Datenverlust), Vorhersagbarkeit
Resultat muss zur richtigen Zeit verfügbar sein
- Oft periodische Jobs
- Beispiel Film (1/25 Bild rendern)
Preemptive Scheduling PS
-
Active Prozesse können vom Scheduler unterbrochen
werden
Bei unterbruch in Ready Queue
-
Aufwändiger aber effektiver Gesamthaft
Round Robin RR
- Gleich wie FIFO, neue Prozesse Vorrang
Vergleich von Scheduling-Verfahren
Auslastung CPU/Processor Utilization: Anteil Prozessorzeit Nutzungsgrad,
Ziel 100% meist 40-90%
Durchsatz: Anzahl Jobs pro Zeiteinheit
Faire Behandlung: kein Aushungern und mittlere gleiche CPU-Zeit
Ausführungszeit/Turnaround Time (𝑻𝒂 ): Zeit zwischen
Aufgabe und Terminierung Prozess (𝑻𝒒 = 𝑷𝒓𝒐𝒛𝒆𝒔𝒔𝒅𝒂𝒖𝒆𝒓 + (𝑻𝒘) +
(𝑻𝒊𝒐 ) + (𝑻𝒘𝒂𝒊𝒕 𝒕𝒐 𝒈𝒆𝒕 𝒕𝒐 𝒎𝒆𝒎𝒆𝒐𝒓𝒚 ))
Antwortzeit/Response Time (𝑻𝒓 ): Zeit zwischen Aufgabe und
erster Antwort
Waiting Time (𝑻𝑾 ): Summe aller Wartezeiten in Ready Queue
Bedienzeit (𝑻𝒃 )= Rechenzeit: CPU bursttime: interaktiv:
Ausführungszeit bis IO; Batch: Ausführungszeit bis terminierung
Non-Preemtive Scheduling NPS
-
Scheduling nur wenn Prozess Kontrolle abgibt (blockiert oder terminiert)
Prozess kann CPU nur für sich beanspruchen
NPS: FIFO + (kurze zuerst)
Vorgehen genau einhalten: Bis Strich (Dispatcher)
-
Kommt ein neuer  setze an Queue
Setze vordersten hinten an Queue
Male verdersten(neu)
Gehe zu nächstem TimeSlice
Antwortzeit: gut für kurze Prozesse
Durchsatz: abhängig von TimeSlice: zu kurz  viele Context
Switches, zu lang  FIFO verhalten
Fairness: Benachteiligung IO bound Prozesse
Verhungern: nicht möglich
Overhead: klein
Grösse des TimeSlice q
-
Grösser als CLock, Interrupt und Dispatching
Grösser als typische Interaktion 100ms aber nicht viel
grösser wegen IO
Multilevel Scheduling (mehrere Ready Queue) ML
-
Prio 0: Systemprozesse
Prio 1: Interaktive Jobs
Prio 2: Allgemeine Jobs
- Prio 3. Rechenintensive Jobs
Jobs mit höchster Priorität zuerst  Aushungern
möglich deshalb MLF
Antwortzeit: mittel-lang(bei unterschiedlich langen Prozessen)
Durchsatz: kein Thema
Fairness: lange CPU-bound Prozesse favorisiert, schlechte IO Ausnutzung
Verhungern: nicht möglich
Overhead: minimal
Mittlere Bedienzeit: 𝑻𝒃 = 𝑫𝒖𝒓𝒄𝒉𝒔𝒄𝒉𝒏𝒊𝒕𝒕 𝒂𝒍𝒍𝒆𝒓 𝑩𝒆𝒅𝒊𝒆𝒏𝒛𝒆𝒊𝒕𝒆𝒏
Wartezeit: 𝑻𝑾 = 𝒁𝒆𝒊𝒕 𝒂𝒍𝒍𝒆𝒓 𝑩𝒆𝒅𝒊𝒆𝒏𝒛𝒆𝒊𝒕𝒆𝒏 𝒗𝒐𝒓𝒉𝒆𝒓𝒊𝒈𝒆𝒓 𝑷𝒓𝒐𝒛𝒆𝒔𝒔𝒆 −
𝑨𝒏𝒌𝒖𝒏𝒇𝒇𝒕𝒔𝒛𝒆𝒊𝒕
Mittlere Wartezeit: 𝑻𝑾 = 𝑫𝒖𝒓𝒄𝒉𝒔𝒄𝒉𝒏𝒊𝒕𝒕 𝒂𝒍𝒍𝒆𝒓 𝑾𝒂𝒓𝒕𝒆𝒛𝒆𝒊𝒕𝒆𝒏
Turnaround: 𝑻𝒂 = 𝑩𝒆𝒅𝒊𝒆𝒏𝒛𝒆𝒊𝒕𝒆𝒏 𝒂𝒍𝒍𝒆𝒓 𝒗𝒐𝒓𝒈𝒆𝒉𝒆𝒏𝒅𝒆𝒏 𝒖𝒏𝒅 𝒆𝒊𝒈𝒆𝒏𝒆𝒓 −
𝑨𝒏𝒌𝒖𝒏𝒇𝒕𝒔𝒛𝒆𝒊𝒕
Mittlere Turnaround: 𝑻𝒂 = 𝑫𝒖𝒓𝒄𝒉𝒔𝒄𝒉𝒏𝒊𝒕𝒕 𝒂𝒍𝒍𝒆𝒓 𝑻𝒖𝒓𝒏𝒂𝒓𝒓𝒐𝒖𝒏𝒅𝒔
NPS: Shortest Job First (SJF/SPN)
Benötigte Rechenzeit muss geschätzt werden
-
Bedienzeit: Durchschnitt aller vorgehenderAusführngszeit CPU burst
Oder besser: Schätzwert = konstante * Ausführungszeit des letzten + (1 konstante)* letzte Schätzung wobei konstante zwischen 0 und 1
Zweites bewertet nahe Vergangenheit stärker
Mulilevel Feedback (MLF: dynamische Prio)
- Viel CPU verbrauch: Prio senken
- Lange Wartezeit: prio erhöhen
- Verschieden grosse Time-Slices
Antwortzeit: gut für kurze Prozesse, lange müssen warten, verbessert mittlere
Wartezeit
Bestes Verfahren: je nach dem sehr viele
Faktoren
-
Unix Scheduling SVR3 und 4.3 BSD
Verfahren:
-
MLF und RR innerhalb jeder Queue, dyn Prio
Basispriorität: Benutzer und Systemprozesse
Rescheduling: alle 100ms (10x pro sek)
Prio Neuberechnung alle Sekunde
SVR4: vollständig überarbeitet: auch RealTime
Prio SVR3:
- Swapper, Block IO Device, FileManipulation, Character IO,
User Prio0..n
Prio SVR4 160 Priostufen
- 3 Klassen RealTime100-159, Kernel60-99,
Durchsatz: hoch
Fairness: bestraft lange Prozesse
Verhungern: möglich für lange Prozesse
Overhead: relativ hoch: Schätzung der Bedienzeit
NPS: Priority Scheduling
- Jeder Prozess hat Priorität (bei gleicher FIFO)
- Reiht an richtige Stelle in ReadyQueue oder
- Hat mehrere ReadyQueues nach Priorität
Verhungern: möglich bei tiefer Priorität  Abhilfe: regelmässig
Prio erhöhen (dynamische Prioritäten)
Windows 2000 Scheduling
- Scheduler und Dispatcher getrennt
- Ausschliesslich Thread Scheduling
- ML (MLF) 32 Priostufen 2 Klassen
o 16-31: RealTime, RR Queue
o 0-15: Varible Prio MLF
- Unterstützt symmetrisches Multiprocessing
TimeSharing0-59 (Preemtion Point im Kernel =
unterbrechung möglich)
-
Real-Time: läuft bis höhere prio kommt, oder
abgibt/blockiert  FIFO oder RR pro Queue
-
TimeSharing: laufen wenn keine RealTime bereit  MLF
dyn Prio
- IO Priorisiert, CPU schnell 0 Prio
Fair-Share Scheduling (Erweiterung auf ganze
Gruppe)
-
Prozess wird Gruppe zugeteilt (damit jede Gruppe gleich)
-
Priorität sinkt wenn Gruppe Prozess CPU intensiv nutzt
Real-Time Scheduling
-
Gehört zu RMS
Aufgaben Ereignisse der äusseren Welt, reele Zeit
System muss schnell reagieren
Richtigkeit hängt ab von: logischem Resultat + Zeitpunkt
Meisst periodische Tasks
Shorttime Scheduler wichtigste Komponente
Klassifizierung:
o
Hard: Zeit muss eingehalten werden
o Soft : Zeitbedinung in Etwa einhalten
Strategien:
Rate Monotonic Scheduling (RMS): Preemtives periodisch
unterprechbar,voneinander unabhängige Tasks
-
-
Idee: Priorität proportional zur Repetitionsrate des Jobs
Diskussion: konservativ, preemtiv mit fest Prio, u < 70
sicher einplanbar
Earliest Deadline Scheduling
- Idee: Dyn Prio basiernd auf Fristablauf
- Prozess meldet Präsenz und Deadline
- Scheduler sortiert ReadyQueue nach kürzester Deadline
(wer muss als nächstes fertig sein)
- Bei gleicher Deadline weitere statische Prio
Theoretisch 100% Aulastung möglich (kompliziert)
Concurrency Synchronisation
Zusammenarbeit von Prozessen
-
Konkurrenz: Prozesse wissen nichts voneinander
Kooperation: wissen von Prozess kennen ihn aber nicht 
gemeinsame Ressource
- Kooperation2: wissen voneinander lösen gemeinsam Aufgaben
Kritischer Abschnitt muss über MUTEX Mutual Exclusion
gesichert werden.
Lösungen:
-
Softwarlösung: unahägig von anderen Bedingungen
Hardwarlösungen HW Unterstützung: Maschineninstruktionen
Mit Hilfe BS: Funktionen, Semaphore Mutexes
Zusammen mit Programmiersprache: Monitor
Hardware Lösungen
-
Ermöglichen einfache SpinLocks
Einfache Software
Gleiche Nachteile wie Sotwarelösungen
Prinzip: verhindern das Programm beliebig unterbrochen werden kann
-
Interrupt ausschalten
-
Atomare Instruktionen (testAndSet): Anfrage und Sperren dürfen
nicht unterbrochen werden
Interrupt ausschalten
-
Idee: nur Interrupt unterbrechen Code abschalten
Nur Uniprozessoren möglich, Nachteil: Performance
Monitore
Monitor-Methode: läuft nur einmal gleichzeitig, und durch, zugriff auf die
Sensiblen Daten
Prozesse auch in Warteschlangen gehalten wait, notifiy
Vorteile:
Nicht selbst programmieren
Gemeinsame Daten geschützt
Nachteile:
Synchronisation liegt beim Programmierer
Software Lösungen
Lösungsansatz mit Fehler
bool besetzt = false;
do {
while(besetzt) { }; // busy wait
besetzt = true;
… kritischer Abschnitt…
besetzt = false;
} while (!finished);
Lösungsansatz 2
//Prozess 1
//Prozess 2
while (true) {
while (true) {
while (dran != 1) {};
while (dran != 2) {};
kritischerAbschnitt()
kritischerAbschnitt()
dran = 2;
dran = 1;
…
…
}
}
Problem: Prozesse nur Abwechslungsweise, busy wait/spinlock konsumiert
Rechenzeit
Semaphore (Bahn-Ampel) oben=offen unten=geschlossen
Vorteile:
-
Kein busywait (normalerweise)
Wartende Prozesse in ReadyQueue und Semaphore Warteliste
Nachteil:
-
Up/down in unterschiedlichen Prozessen böswillig Zusammenarbeit
vereiteln
Glossar: Priority Inversion
P(S): testen, V(S) erhöhen
semWait(S): down
semSignal(S): up
Struct
typedef struct {
int count;
ListOfProcess queue;
} semaphore;
semaphore S;
Funktionsweise
Vor kritischem Abschnitt down = sperren
Nachher up = öffnen
Semphore Zusätzliches
Reihenfolge: Abwechelnd  2 Semaphore
Producer Consumer Problem
Deadlocks
Klassen von Ressourcen
- Preemptable: entziehbar ohne probleme CPU
- Nonpremptable: Probleme CD, Drucker
Starvation(Verhungern): Prozess erhält keinen Zugriff auf Ressource
Deadlock(Verklemmung): Prozesse warten gegenseitig auf Freigabe
von Resource
Bedingung:
MUTEX: Min eine Ressouce exklusiv reserviert
Hold and Wait: min 1 Prozess hat reserviert und wartet auf andere
schlechte Ressourcennutzung, sequenz Ablauf
No preemption: reservierte Res kann nicht entzogen werden
wenn P warten muss, alle Resourcen freigeben, oder prüfen ob
anderer hat (freigeben oder warten)
-
Circular wait: jeder wartet au einen anderen
Ressourcen in vorgegebener Reihenfolge allozieren
Umgang:
-
Prevention (verhindern)
siehe Bedingungen
Avoidance (vermeiden)
überprüfen ob Deadlock eintreten könnte, schwierig
Detection(zulassen) lösen
Prüfen wenn: CPU Auslstung sehr tief, alle Stunde
Lösen: alle beteiligten Prozesse stoppen, nacheinander bis
gelöst (wenigste CPU nutzer, wenigsten Output, kleinste Prio)
-
Ignorieren (Ostrich algorithm) meiste OS
Interprozess-Kommunikation IPC  Datenaustausch
Gründe für Zusammenarbeit:
-
Parallelarbeit: Leistungssteigerung
Vereinfachung der Struktur
Echtzeitsystem: unterschiedliche Wiederholraten
- Informationsaustausch benötigt: authetifizierung
Interaktion erfordert:
-
Synchronisation: Ausschluss und Reihenfolge
- Kommunikation
Man unterscheidet:
-
Kommunikations-Art: innerhalb System oder Netzwerk
BS muss Mechanismen bereitstellen
Kommunikation-Modell: Erzeuger/Verbraucher
-
IPC-Technik: Gemeinsamer Buffer, Message Passing MP, Object
Stream(Pipes/Sockets)
Unterschied: IPC und Synchronisation
-
Synchro: nur einer darf machen
- IPC: einer nimmt entgegen und macht es
IPC in Unix
System V: ältere API, flexible, leistungsfähiger, komplex
- POSIX: Portable Operation System Interface for Unix API
Standard, nicht auf jedem Unix, weniger flexible, einfacher zum
Verwenden
IPC-Techniken
Message Passing (MP)
-
Häufigstes Verfahren
Strukturierte Daten
BS: stellt Zugriffsfunktion, Verwaltungsaufgaben
Anwender: verantwortlich für Verpacken der Daten
Aufwendiger, langsamer, einfach zu benutzen, auch verteilte
Systeme alternativ socket und pipes
Bsp: Message Queues
Shared Objects (Shared Memory)
-
Meist innerhalb System
BS: stellt gemeinsamen Speicherberich
Einfach, schnell, synchonisation verwaltet von Anwender
Bsp: Shared Memory, memory mapped files
Object Streams
-
Sequenz von Bytes (unstrukturiert)
BS: stellt FIFO Queue zur Verfügung
-
Bsp: Pipes, Sockets
IPC Ressourcen: System V
Erzeugen: msgget(), shmget(), semget()
Verwenden: msgsnd(), msgrcv()…
Freigeben: shmctl  sonst blockiert
Resource verfügt: ID und Schlüssel (IPC_PRIVATE kein
Schlüssel)
key_t key;
path = "/tmp/key1_file.001";
int projID = 4559;
key = ftok(path, projID);
Shared Memory (schnellste Form)
Shared Memeory Tabelle: enhält alle
Segmentbeschreibungen
Erzeugen:
IDs austauschen: abmachen, ftok, File, fork vererben
Message Queues
-
msgget() erzeugt oder öffnet Message Queue
msgsnd() sendet Nachricht (sizeof(myMessg))
msgrcv() empfängt Nachricht, erste Nachricht mit
übereinstimmendem Typ
msgctl() Steuerung der Message Queue, z.B. löschen der Queue,
etc
(( shmctl(id, IPC_RMID, NULL); // löschen
Zugriff:
Pipes
- FIFO Buffer mit fester Grösse
- Vom Kernel verwaltet
- Halbduplex
- Ähnlich Message Passing aber unstrukturiert
Lesen Schreiben:
- read(filedescriptor ,*buffer ,anzahl_bytes)
- write(filedescriptor ,*buffer ,anzahl_bytes)
Typen:
- Named Pipes: Spezialdatei erzeugt
- Unnamed Pipes: Paar Filedescriptor: nur verwandte Prozesse
Unnamed Pipes Beipspiel
Message Passing
-
Synchron asynchtron: warten aufeinander
Send/receive(dest/source/msg)
Mailbox oder port: gehört BS, gehört Prozess
-
Aufbau: Header (MType, DestinationID, SourceID, Length, Control
Info), Body (MessageContent)
Named Pipes Beispiel
Sockets
Socketverbindung: Server und Client IP Adresse + Port
Protokolle: UDP verbindungslos, TCP verbindungsorientiert
TCP/IP Sockets: IP und Port
Unix Domain Socket: Adresse über Pfadname File, binden mit bind
Shared Files
Memory Mapped Files
-
Kommunikation über Files
Sehr einfach
Eher langsam
-
Files im Speicherbereich abgebildet
Schneller
Keine Synchronisation
-
Keine Synchroniation
-
User verantowrtlich für zurückschreiben
Semaphore POSIX V System
Memory Management
Einfaches Memory Management
-
Ganzer Prozess im Speicher
Einfaches Paging
Einaches Segmentation
Bsp: Mobiles, Palm, emmbedded Systems
Verfahren: fixed Partitioning, dynamic Partitioning, paging,
segmentation
Logische und Physische Adressen
-
Compiler erzeugt Code mit relativen Adressen
Referenzen unabhängig von tatsächlich Physischen Adressen
Swapping
-
Nicht alle Prozesse Platz im Speicher
Auslagern von Prozess/Teil zu Disk
Prozessstruktur im Speicher
-
Prozesskontrollblock
Programm
Datenbereich
- Stack
Fixed Partitioning
-
Aufteilung Speicher in mehrere Partitionen
Prozessanzahl damit vorgegeben
Auslagern falls mehr Prozesse
Falls Prozess zu gross Overlays realisieren
Nicht volle Partition  internal fragmentation
Nutzung: ineffizient
-
Verbesserung: verschieden grosse Partitionen  mehr Swapping:
weil Partitionen bleiben leer wenn kein Prozess passt
Virtual Memeory
MM Aufgaben
-
Relocation: verschieben an beliebigen Ort Swaping Compaction
Protection: gegenseitige beeinflussung von Prozessen verhindern
Sharing: gemeinsame Bereiche bereitstellen
Logical Organisation: lineare Folge und Segmente (Programm,
Daten, Stack)
- Physical Organisation: Realisierung in Haupt und Sekundärspeicher
Virtual Memory
-
Nur aktiver Teil im Speicher rest sekundär Speicher
Paging
Hard und Softwareunterstützung notwendig
Bsp: Workstation, Server, PCs
Funktionsweise
-
Prozessor referenziert virtuelle Adresse
 Page in Speicher ok
nicht im Speicher blockiert Prozess, holt Page von Disk
VM basiert auf Lokalitätsprinzip (Raum,Zeit)
Adressübersetzung
-
PageTable aufwändiger
Grosse Tabellen: PTable selbst virt. Speicher, Multilevel
Organisation, Hash Page Table, Inverted Page Table
Dynamic Partitioning
-
Grösse und Anzahl variabel (Partition)
Nachteil: bilden sich Löcher compaction: verschieben von
Prozessen
Dyn Part: Placment Algorithmus
-
First-fit: sucht ersten Platz Speicheranfang: bester
Next-fit: sucht Platz am Schluss Speicher
Best-fit: sucht kleinsten passenden Block: schlecht
- Nichts gefunden Auslagern
Dyn Part: Buddy System Unix verwendet Variante
-
Multilevel Organisation
-
Mehrere Hierarchische Tabellen: directory, page
Zwischen fixed und dynamisch
Schnelle allocation und deallokation
Solange Blöcke halbieren bis noch knapp passt
Modifikation: lazy recombination  wartet mit zusammenführen
Paging (nicht mehr zusammenhängende Speicherbereiche)
-
Prozesse in Blöcke teilen  Pages
Speicher in gleichgrosse Blöcke teilen  Frames
Beliebig Pages an Frames zuweisen
Konsequenz: Prozesse müssen nicht mehr zusammenhängen
- Übliche Pagegrösse: 1KB, 4KB, 8KB
- Pro Prozess: Page-Tabelle
- Zusatztabelle: Freie Blöcke
Adressumwandlung (Logisch Physisch)
-
Logische Adresse besteht aus Pagenummer und Offset
Pagenummer wird mit Framenummer ersetzt
Pagetabelle hat max für jede Page Eintrag
Hashed Page Table: PageNummer als HashWert verwendet, Liste mit
Pagenummer und Framenummer
Invertierte Page Tabelle: pro Frame ein Eintrag mit PID und
PageNummer
Resident Set Management: Menge der einem Prozess zugeteilten Frames
bestimmen
Working Set: letzter Zeit zugewiesene Frames
BuddySystem: Sequenz  siehe links
Segmentation
-
Anwenungsprogramme bestehen aus Segmenten (Programm,
Daten, Stack)
Zusammenhängender Adressraum, exteren Frag.
-
Aufwändig, schutzfunktion, braucht Segmenttabelle
Filesysteme
-
Stellt Mechanismen zur permanenten Speicherung zur verfügung
Einfache Zugriff auf Informationen durch File Abstraktion (File
Konzept: FileName, Logische Struktur)
File Protection: Regelung des Zugriffs
Abbildung von Files in Physischem Gerät
-
übernimmt BS
Interpretation ist Sache der Applikation
Anforderungen:
-
Einfache Benutzbarkeit
Effizient: DiskSpace ausnutzung gut
Geschwindigkeit
Schutz: berechtigungen Benutzer
Operationen
-
Erzeugen, löschen, ändern, lesen schreiben, Zugriffsart festlegen
File System Organisation
File-Organisation (Baumstruktur)
-
Partitionen
Directories (Files mit Referenzen auf Dir,File)
Directory Operationen
-
File suchen,erzeugen,löschen, umbenennen
Inhalt auflisten
Rekursiv traversieren/durchlaufen
Directory Implementation
-
Linerare Liste: Unix suche aufwändig
Bäume/Graph: Mac/Windows
Hashtable: effizient aber kollisionen
File Organisation Zugriff
FileAttribute
-
In FileControlBlock gespeichert: FCB im I-Node Win: Master File
Table
Name, Typ (falls unterscheidet), Size, Besitzer, Protection, Date, Links
BS hat OpenFileTable und jeder Prozess hat FileTable
File Control Block
-
Permissions
File dates: create access write
Besitzer, Gruppe
Filesize
- File data blocks
File-Typen: signalisieren interne Struktur
-
Directories
System Files: Gerätedateien, named pipes, links
Ausführbare Programme
Regular Files: alle anderen
Unterscheidung: Dateiendung, bits im zugriffsrecht UNIX, Magic
Numbers (Zahl in ersten Byte), FileHeader
Interne Filestruktur
-
File hat logisch Struktur != physikalische DiskBlöcke
Zugriffsarten Records
-
Sequenziell access read write : lesen bis richtige Stelle
Direkter Zugrif (random access): Berechnung mit seek
File besteht aus logisch numerierten Records
-
Fileoperation braucht zusätzlich RecordNummer (Offset zum Anfang)
Naming
-
Jedes File eindeutiger PfadName
File Sharing und Schutzmechanismen
Zugriffsschutz
-
Basiert auf Benutzeridentität
Traditionell: 3Typen user, group, other
Heute: ACL Access Control Lists z.B. NTFS Linux2.6  Jede Datei
kann ACL haben
Konsitenzsemantik
-
Unix: sofort sichtbar
Andrew File System: Caching, noch nicht sofort sichtbar
-
Immutable Shared Files (Read Only)
File Systeme und File Management
Record Locking
-
Mehrfachnutzung denkbar
Mutex auf Files notwendig
Exklusiver Zugriff
-
Ganze Datei sperren: ineffizient
Record-Locking: nur Teile sperren
BS unterstützung notwendig: fcntl()
Datenbanken
-
Eigene Fileverwaltung
Journaling
-
Verhindert Inkonsitenz bei Crashes
Änderungen am Filesystem über Transaktionen
Modern BS  Journaling bsp ext3 NTFS
Modi: ordered (nur Metadaten), writeback, journal (Daten auch)
Quotas
-
File System Implementation
Speicherung in Blöcken
(32Bytes-4096 oft 512)
Virtuelles File System VFS
-
Vereinheitlicht Zugriff
unterschiedlicher FS (ex3, ex2,
NTFS, FAT)
File Allocation
-
Contingous: Blöcke
kontinuierlich hintereinander (kleine Files)
 Unterstütz: sequential + direct access
Problems: exterene Fragmentation, freien Platz finden, Wieviel
Platz bei neuen Files
Linked: Blöcke bilden verkettete Liste
 Start Ende bekannt, Block weiss wie weiter
Problem: Ineffizient kein direct access, Zeigerverlust FAT16/32
Grenzen für Disk Usage: normalerweise pro Anwender (max
Speicherplatz)
Free Space Management
-
Bitmap: Block entspricht Bit 1 / 0 Abfolge frei besetzt
LinkedList: ineffizient multiple blocks
Grouping: erster Block Liste freier Blöcke, letzte Adresse weiterer
Block
Counting: Zeigt auf Block und wieviele ab da frei
 verbesserung durch clustering
Indexed: Speichert Blockzeiger in einem IndexBlock (grosse Files)
 Vorteile: keine externen Fragmente, effizienter Direct Access
Problem: Zeigerblock braucht Speicher
 Blöcke wiederum Linken(Linked Schema) oder zu anderen Linked Blöcken
Multilevel
Beispiele Unix Windows DOS
-
Bootblock: Code zum starten von BS
Superblock: beschreibt Aufbau FS (Grösse, Anz Datei, freier Platz, Inode info)
Inode Liste: enthalten Informationen zu Files
Datenblöcke: echte Daten
Verwaltung I-Nodes
-
Superblock hat Array von freien Inodes, keine mehr sucht im
Speicher
-
Mksfs
Maximale Filegrösse direkt 10K, 1 indirekt 256K doppelt 64M triple 16G
FAT File Allocation Table Zahl für Zeigergrösse bit
-
Verkettete Listen
File: folge von Clustern
Redundant
Max Disk: FAT12 2GB,
FAT32 2TB
NTFS NT Filesystem
-
-
Wiederherstellbar (Journaled FS)
Daten in Clustern (512, 1KB, 2KB, 4KB)
Defekte Cluster erkennen und marieren
Sichert bootsektor
MasterFileTable MFT Array von 1KB Records ähnlich I-Nodes
1Record pro File
MFT-Record: Sammlung Attribut-Wert Paar
 kleine Files direkt im Databereich
grosse Files indexed allocation
Jedes File hat ACL Liste (Berechtigung)
Features: Bereitstellungspunkte: mounten von Beliebigen
Dateisystemen in Ordner, Quotas (Datenträgerkontingente)
Virtual Cluster Nr.
Logical Cluster Nr.
Input / Output
-
Hauptaufgaben Computer: I/O und Processing
BS: verwalten und steuern Geräten
-
Entwicklungen: Standards: USB, FireWire, PCI, Vielfalt von I/O
Peripherie Busse
-
AGP: schneller Zugriff Hauptspeicher für Grafik
PCI: universeller Peripheriebus
SCSI: Disks, RAIDs, Scanner
IDE: Disks, CD, DVD, etc.
- Expansion: USB, Parallel Seriell Ports
Interaktion zwischen Prozessor und Gerät
-
Polling (busywait, synchron)
Interrupt (asynchron)
- DMA (hintergrund asynchron)
Ziele IO Software
-
Geräte unabhängigkeit
Einheitliche Namensgebung
Fehlerbehandlung: möglichst HW nahe
Asynchron/synchron IO
Bufferung: Vorverarbeitung
- Sharing: gemeinsam genutzt Geräte
Kernel stellt Services zur Verfügung
-
I/O Scheduling
Buffering: gibt nicht gleichschnell an UserProzess weiter
Caching: z.B. Disk Cache
Spooling: Speicher für Device  Drucker
- Reservation: Zugriffsreservation
Error-Handling
-
Temporäre und permanente Fehler
IO Charakteristiken
-
Zugriffsmethode: sequenziell: feste Reihenfolge; random:
Anwender sagt was
Blocking vs Non-Blocking IO
- Meiste Blocking System Calls
- Typische non-blocking: Maus,Keyboard, Video
Interface
Linux
Treiber werden als Module geladen, gehören zum Kernel
- Mknod /dev/MyDev c 127 0 verbindet Device
File mit Major Nr.
- Register_chrdev(127, „MyDriver“, &myFileOps):
registriert Treiber im BS
Disks
Windows
-
Disk Zugriff
-
Grosser Einfluss auf Performance
Zugriffssequenz
-
Anfrage durch Prozess: warte auf Gerät 𝑡𝑤 , warte auf Kanal 𝑡𝑘 ,
Zugriff: 𝑡𝐴
Kopf positionieren seek time
Warte bis Sektor unter Kopf  rotation latency
- Datentransfer
Seek Time 𝑡𝑆 : 1/3max Positionierungsstrecke + mechanischs
Einschwingen mittlere Poszeit: 7-12ms
Rotations Latency 𝑡𝐷 : Zeit ½ Drehung
Data TransferTime 𝑡𝑇 : 𝑡𝑇 = 𝑡𝑅 ∙ 𝑏/𝑁 //b = bytes lesen N bytes pro
Track
Mittlere Zugriffszeit: 𝑡𝐴 =
𝑡𝑆 + 𝑡𝐷 + 𝑡𝑇
Disk Scheduling
-
RAID Redundant Array of Independent Disks
-
Disk unzuverlässig MTBF 20-100 Jahre N Disks N mal kleiner
Idee: mehrere Disks als zuverlässiger Massenspeicher
Mit HotSpares (Ersatzplatten) Reparaturzeit nahezu Null
Prinzip
-
Rechner sendet Daten in Blöcken
RAID Controller stückelt Daten (Striping Einheiten)und verteilt sie
an Disks mit Schutzdaten
Striping Einheite: Bit, Byte, Wort, Block
Levels:
-
0: Verteilt auf mehrer Disks (grössere Disk)
 schnell schreiben und lesen, kein Datenschutz
1: gespiegelt
 kein Datenausfall, paralleles Lesen, Schreiben langsamer,
doppelte Disks
5: Parity auf Disks
Random Acces für Filezugriff schlecht
Zugriff über zusammenliegenden Blöcken besser
Lösung
Zusammenliegende Blöcke: Clustering
-  Intelligente Zugriffsreihenfolge: Diskscheduling
Scheduling Verfahren:
-
FIFO: Auftragsreihenfolge, hin und herschwingen
SSTF (Shortest Seek Time First), kürzester Weg zu Block
SCAN (Scanning: hin und her): Annahme Anfragen gleich verteilt
-
C-SCAN(Circular Scanning ): verbessert mittlere Wartezeit im
Vergleich zu SCAN
Welches Scheduling SSTF oder SCAN
-
Abhängig von Typ und Anzahl
Einflussfaktor: Allocation Methode
contigous und cluster: Blöcke beieinander
-
 Linked oder indexed: Blöcke verteilt
- Daten noch verfügbar, aber leichte Schreibleistungseinbusse
Realisierungsformen
-
Software: über SCSI Interface, von meisten BS angeboten
 RAID über Bootplatte geladen, was wenn vorher crashed
Interne Hardware: PCI RAID Controller
-
Externe Hardware: SCSI Interface zu RAID Controller
Glossar
Kernel
Herz des OS, nimmt Hauptaufgaben war. Stellt Anwendungen Grunddienste über SystemCalls zur verfügung. (Filemanagement, Security, IO, MemoryManagement, MultiUser)
System-Calls
Befehle die von Applikation aufgerufen werden können und zum Aufruf von Kerneldiensten
führen
Shell
Normales Programm mit Befehlen die Kernelinterface aufrufen.
Treiber/DeviceDriver Geräteansteuerung das in Kernel eingebunden wird, um mit denselben System-Calls
angesteuert zu werden.
Interrupts
HW sagt Kernel mittels Interrupts das, es Daten vom I/O HW jetzt einlesen soll. Aktuelle
Ausführungen werden unterbrochen. Bieten möglichekti CPU für merhere Programme zu
nutzen.
PC / IP
Programmzähler: Adresse der nächsten Instruktion
Instruktionsregister
Aktuelle Instruktion
Processor Status
Zustandsinformationen, Interrupt enabled/disabled, Systemmode oder UserMode Bit
Word
Polling
Busy-Wait: Wartet ab bis Datenwert gedruckt im Gegensatz zu Interrupt wo CPU anders
weiterarbeitet
DMA Direct Memory CPU richtet Anfrage an DMA Einheit, diese gibt Datenblöcke direkt an/aus Speicher
Acces
Cache
Beschleunigt Speicher indem Daten nicht vom Speicher sondern Cache geholt werden
können. Speichert bsp Daten die schon Zugegriffen wurden
Cache Miss
Hit Ratio h
Monitor
Uniprogramming
Virtueller Speicher
Scheduling
Thread
BIOS
MBR
Boot Record
Boot Loader
Interleaving
Prozessimage
ISR
Dispatcher
Time-slice
Bedienzeit=
Bursttime
Race Condition
Kritischer Abschnitt
MUTEX
Priority Inversion
Starvation
Internal
fragmentation
Rendez Vous
Sektor
Cluster
I-Node
MTBF
Daten nicht im Cache gefunden
Wahrscheinlichkeit, dass Speicherzugriff die Daten im Cache findet
Primitives OS, reiht Auftrag an Auftrag
Nur ein Programm läuft
Fortlaufender Speicherberiech dessen (Pages) auf dem Physikalischen Speicher abgebildet
werden (Frames) bzw. auch Swap File
Rechenzeit Zuteilung an Prozesse
Luaffähiger eigenständiger Programmabschnitt, haben untereinander auf selbe Daten Zugriff,
braucht daher keine Umschaltung
Basic Input Output System
Enthält Informationen zum Starten eines Boot Loaders
Linux: LILO oder Grub
Scheinbares paralleles ablaufen von Prozessen, aber kleine stücke hintereinander
Prozesse werden unterbrochen und später weitergeführt
Prozess und Kontext Programm Daten Stack, etc.
Interrupt Service Routine: Bei interrupt springt man in diesen Programteil
Short Time Scheduler: Teilt Rechenleistung zu
Zeit die einem Prozess zur verfügung steht um die CPU zu nutzen
Ausführungszeit bis nächste IO
Prozesse/Trheads gemeinsame Daten lesen schreiben und Resultat von
Ausführungsreihenfolge abhängt
Greift ein Prozess auf gemeinsame Daten zu befindet er sich in einem kritischen Abschnitt.
Der Aufenthalt im kritischen Auschnitt muss gegenseitig ausgeschlossen sein. MUTUAL
EXCLUSION
Gegenseitiger Ausschluss: nur ein Prozess befindet sich im kritischen Abschnitt
Prozess setzt semaphore ruft weiteren prozess auf der selbes Semaphore setzen müsste
Block Lösung Priority Inheritance (parent vererbt )
Verhungern: weil man ewig wartet  Deadlock oder Scheduling
Wenn Partition nicht vollständig gefüllt wird von Prozess, Extern Frag: wenn Lücken
entstehen die zusammen genügen würden aber nicht gesamter Block.
Strafe Synchronisation wird so genannt warten aufeinander send und receive befehl warten
Teilstück Disk auf einer Runde
Mehrere Sektoren nebeneinander
FileDescriptor: Eintrag in Unix-Dateisystem für eine Datei  Pfad zeigt auf Inode, Inode zeigt
auf Speicherplatz unter Windows FileRecords ähnlich
Mean Time Between Failure
Herunterladen