CS

Computersysteme

Computersysteme


Matthaeus Kuc
Diese Lernkarten behandeln grundlegende Konzepte der Informatik auf Universitätsniveau, mit Fokus auf Betriebssysteme, Prozesse, Speicherverwaltung und Hardware-Interaktionen. Sie decken Themen wie Multitasking, Scheduling-Verfahren, Dateisysteme, BIOS, UEFI und Hardware-Treiber ab. Besonders relevant für Studierende der Informatik, die ein tiefes Verständnis der Systemarchitektur und -funktionen erlangen möchten.
Karten
36
Lernende
1
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
30.01.2014 / 06.10.2014

Lernkarten

Arithmetische-logische Einheit (ALU)?

  • konkrete hardware
  • heute mehrere in CPU
  • Funktionen: Binär addieren, Logisches Nicht, Logisches Und/Oder...
  • 1 Bit Operationen
  • Später: mehrere zusammen schalten

Analog und Digital

  • Unbegrenzt genau
  • Ungenauigkeiten schlecht zu entdecken
  • Endliche Möglichkeiten  (einfacher zu erfassen, Vollständige Erfassung mögl.)
  • Fehler über Kodierung erkenn - und behebbar
  • 1 zu1 Übertragung

Logik vs- Schaltung?

  • für jede aussagenlogische Formeln existiert eine Schaltung und umgekehrt 
  • Schaltung hat Layout
  • Qualität einer Aussage nicht klar messbar (weniger Zeichen, weniger Klammern, weniger junktoren, alles mit NAND,...)
  • Schaltungsqualität hat praktische Kriterien (Geringe Größe, billige Bauteile, kurz/schnelle Verbindungen)

Signallaufzeit?

  • Wie viel Zeit vergeht, bis Ergebnis vorliegt (0,1 - 100ns) - Material/Temp Abhängig
  • Mehr Gatter nacheinander = langsamer
  • Mehr Gatter insgesamt = teuer

Mehrere Funktionen?

  • Signal "abzweigen"
  • Alle Optionen PARALLEL durchlaufen (Verschweingung? aber nicht mehr Zeit)
  • Anschließend aus beiden Ergebnissen gewünschtes Auswählen

Signalauswahl?

  • Über Steuerleitungen ("Ich will Fkt 0,1,2,..")
  • Multiplexer

Was machen CPU, Hauptspeicher und Peripherie?

    • CPU: kann Programme ausführen  
    • Hauptspeicher: kann Programme/Daten halten
    • Peripherie: kann Daten permanent speichern, Anzeigen, Drucken, Faxen, ... 

 

BIOS

  • kleines Programm auf einem (E)EPROM
  • Aufgaben: Power on self test (POST) - CPU, Grafikausgabe, Speicher, Tastatur, Hardware
  • ggf. Passwortabfrage
  • Konfigurationsmenü anbieten
  • Bootreihenfolge festlegen
  • Bootloader von Bootmedium ausführen
  • Bietet auch Treiber für Hardware an

Hardware im Bios?

  • BIOS muss nicht komplette Hardware kennen (keine Musik, Drucken, Internet)
  • Bildschirm zur Ausgabe 
  • Tastatur und evtl. Maus zur Eingabe 
  • Festplatte zum Starten des Bootleaders
  • CD/DVD/USB-Stick zum Booten?

Hardware Treiber im BIOS?

 

  • Hardwareansteuerung über „Treiber“
  •  Treiber = Software, die die Hardware „kennt“
  • Aufwändig zu aktualisieren (im Chip!)
  • Altes BIOS löschen, dann neues Schreiben
  • Stromausfall → Computer startet nicht mehr
  • Möglichst allgemeingültig
  • Nicht jede Hardware jedes Herstellers separat
  • Ein/wenige allgemeingültige/r Treiber
  • Nur Basisfunktionen, keine Besonderheiten 

 

Unified Extensible Firmware Interface (UEFI)?

  • Nur signierte Bootloader ("Secure Boot")
  • Netzwerk-Verfügbarkeit
  • Shell mit speziellen Programmen (*.efi)
  • Treiber als Module nachladbar (Einzeln zu deaktivieren für Fehlersuche)
  • Unterstützung für Festplatten > 2 TB
  • Kompatibilitätsmodus zu BIOS

EFI-Programme?

  • Teil der Festplatte reserviert für UEFI-Dateien (versteckt)
  • Eigener "Assembler": EFI Byte Code (Idee vergleichbar mit Java, EFI deutlich komplexer als BIOS)
  • .efi Programme sind unabhängig von Windows / MacOS / Linux

Hardware-Treiber in UEFi?

  • Ohne riskantes BIOS-Update installierbar
  • Einzelne Treiber aktualisier-und abschaltbar 
  • Netzwerkzugriff, hohe Auflösung schon beim Systemstart
  • Bieten Schnittstelle zum Betriebssystem (gibt es beim BIOS auch)
  • KEIN Ersatz für Treiber im Betriebssystem

Shell in UEFI

  • Dateien/Verzeichnisse navigieren (cd, ls, cp, mv, mkdir,...)
  • Treiber/Geräte aktivieren (mount, connect, divices)
  • Speicher untersuchen (dmem, memmap, mm,..)

Secure Boot?

  • Secure Boot startet nicht jeden Bootloader
  • Nur digital signierte Bootloader erlaubt (hardwareseitige Bindung, z.B. an Windows)
  • Starke Kritik von Linux Seite (Microsoft und Apple können sich entsprechende Signaturen leisten, Rechner ist anschließend auf System festgelegt, Freie (Linux) Bootloader ohen Signatur werden blockiert

Betriebssystem

  • Sammlung von Computer Programmen
  • Verwaltet Systemresourcen, wie Arbeitsspeicher, Festplatten, Ein-und Ausgabegeräte
  • ...und diese Anwendungsprogrammen zur Verfügung stellt 
  • Bildet Schnittstelle zwischen Hardwarekomponenten und Anwedungssoftware

Betriebssystem Abstraktion

  • Anwendungen müssen die konkrete Hardware nicht kennen (nicht hardwareabhängig, aber betriebssystemabhängig)
  • Stellt "Komfortfunktionen" bereit (Bsp. einheitliche grafische Oberfläche)

Betriebssystemfunktionen

  • Speicherverwaltung
  • Dateisystem
  • Multitasking
  • Sicherheit

Speicherverwaltung

  • BS kennt vorhandenen Speicher
  • Progs können BS Speicher anfordern
  • BS kümmert sich um Zuteilung der Adressbereiche

Paging

  • Physikalischen Speicher in "Rahmen" (frames) fester Größe aufteilen
  • Logischen Speicher in "Seiten" aufteilen
  • Seitentabelle sagt, welcher Rahmen zu welcher Seite gehört (in Hardware)
  • Anwendung sieht linearen, logischen Speicher - praktisch liegen Daten verteilt

Virtueller Speicher

  • Mehr logischen als physikalischen Speicher zur Verfügung stellen
  • "Fehlender" Speicher auf Festplatte
  • Bei Zugriff auf nicht vorhandenen Rahmen dessen Inhalt von der Festplatte lesen
  • Damit genug physik. Speicher frei ist, andere Seiten auf Festplatte auszulagern

 

Programm, Prozess, Thread

  • Programm/Anwendung ist Bitfolge auf einem Datenträger
  • Prozess = laufende Instanz des Programms (mehrfach starten = mehrere Prozesse, selbes Programm)
  • Thread = Ablaufstang innerhalb eines Prozesses

Prozess

  • Wird vom BS verwaltet
  • Speicher wird vom BS getrennt 
  • Andere Ressourcen gehören dem Prozess exklusiv (Bsp. nur 1 Prozess schickt Daten zum Drucker, sonst Fehler)

Thread (Faden)

  • Ein Prozess hat mindestens einen Thread
  • Mehrere Threads heute selbstverständlich (Grafik & Chat im Spiel)
  • Threads werden von ihrem Prozess verwaltet
  • Alle Threads eines Prozesses haben Zugriff auf Prozess-Ressourcen

Prozesskomunikation

  • Prozesse wollen geteilte Ressourcen exklusiv nutzen (mehrer Drucken, wer darf?)
  • BS erlaubt die Kommunikation zwischen Prozessen
  • Prozess kann z.B. eine Ressource für sich "blockieren" (lock)
  • Anderer Prozess wartet auf diese Ressource (monitor)

Deadlock

  • Unbegrenztes Halten von Ressourcen führt zu Problemen
  • Reihenfolge der Ressourcenanforderungen kann entscheident sein
    • Prozess P1 fordert Ressource R1 und dann R2
    • Prozess P2 fordert Ressource R2 und dann R1
    • P1 bekommt R1, P2 bekommt R2, beide warten jeweils auf andere

Starving

  • Auch wenn Ressourcen regelmäßig wieder frei werdnen, musssie jeder mal bekommen

Prozesse im BS?

  • Kann Deadlocks nicht grundsätzlich verhindern
  • BS stellt einfache Hilfsmittel zur Verfügung (lock, monitor)
  • BS kann Ressourcen bei langer Nichtbenutzung entziehen -> Fehler beim haltenden Prozess

Einfache Scheduling Verfahren

  • Welcher Prozess wird zuerst ausgeführt? 
  • In Eingangsreihenfolge
  • Schnellste Aufgabe zuerst
  • Nächste Fälligkeit zuerst
  • Nach Priorität (wächst mit Wartezeit)

 

Multitasking Idee

  • Ständig laufen mehrere Programme
  • Mehr Prozesse gleichzeitig als CPUs
  • Gleichzeitigkeit durch schnellen Prozesswechsel vortäuschen

Multitasking

  • Präemptives Multitasking
    • OS teilt Prozess CPU zu und entzieht ihn wieder
  • Kooperatives Multitasking
    • Prozese geben CPU selber frei
    • CPU evtl. lange blockiert - keine Gleichzeitigkeit
    • Prozess stürtzt ab?
  • Umschalten (context switch) kostet Zeit

Round Robin

  • Jeder Prozess bekommt die CPU für einen kurzen Zeitraum fester Länge (Zeitschlitz)
    • Ist ein Prozess in seinem Zeitschlitz nicht bereit, dann weiter zu nächsten
    • Jeder kommt dran
    • "Fair"
    • Priorisierung durch unterschiedlich große Zeitschlitze möglich

Completely Fair Scheduler

  • Von Linux verwendet
  • Prozesse gehören zu Gruppe
    • Bsp: eine Gruppe pro Benutzer
  • Gruppen und Prozesse zählen ihre Wartezeit
    • Prozess mit höchster Wartezeit bekommt CPU
  • Wartezeit wird auch gezählt wenn Prozess CPU gar nicht haben will

Dateisystem

  • Ist eine Abstraktion
  • Anwendungen müssen nicht konkrete Hardware kennen/ansprechen
  • BS bietet Schnittstelle zwischen Anwendungen und Dateisystem

Bekannte Dateisysteme?

  • Windows: FAT16/32, NTFS
  • Linux: ext2/3/4, ReiserFS
  • MacOS: HFS+, MFS

Dateisystem Abstraktion

  • Ziel: Daten menschenverständlich ablegen
  • Heute verbreitet: Hierarchie / Baum

Lernen