K1 & K2 - Einführung in Webtechnologien

FHWS Würzburg - WINF - 2. Semester E-Commerce bei Steffen Heinzel - SS 2015 Teil 1 - Netzwerkgrundlagen, Betriebssysteme und Nebenläufigkeit

FHWS Würzburg - WINF - 2. Semester E-Commerce bei Steffen Heinzel - SS 2015 Teil 1 - Netzwerkgrundlagen, Betriebssysteme und Nebenläufigkeit


T. S.
Diese Karteikarten bieten eine Einführung in die Grundlagen von Webtechnologien auf Universitätsniveau. Sie behandeln Themen wie Prozesse, Threads, Kontextwechsel und Parallelität, insbesondere im Zusammenhang mit Java-Programmierung. Die Karteikarten erklären auch die Unterschiede zwischen Programmen und Prozessen, die Zustände von Threads und Prozessen sowie die Funktionsweise von Betriebssystemen. Sie richten sich an Studierende der Informatik, die ein tieferes Verständnis der Webtechnologien und deren Implementierung in Java erlangen möchten.
Flashcards
16
Students
2
Language
German
Category
Computer Science
Level
University
Created / Updated
24.07.2015 / 17.03.2021

Flashcards

Was ist das TCP und welche Eigenschaften zeichnen es aus?

Transmission Control Protocol

  • Verbindung rein software-technisch (virtuell)
  • TCP-Nachrichten werden zur Übertragung in IP-Datagramme gekapselt
  • Keine TCP-Implementierung auf Zwischensystemen nicht erforderlich
  • TCP übermittelt Daten zuverlässig (Reihenfolge und erneute Übertragung bei Fehlern)
  • 3-Way-Handshake (C -syn-> S -syn,ack-> C -ack-> S)
  • Vollduplexübertragung
    • bidirektionale Ende zu Ende Datenübertragung
    • Sender und Empfänger können gleichzeitig Daten senden
    • Nachrichten werden als fortlaufender Byte-Strom übertragen
  • Flußsteuerung
    • Anpassung der Länge der übertragenen Nachrichten an die Netzwerklast
  • Überlastprotokolle
    • schwierig, da das IP-Protokoll keine Informationen über zurückliegende Ereingisse liefern kann
    • Wird indirekt erschlossen

Was ist das UDP und was zeichnet es aus? Warum und wozu wird es gebraucht?

User Datagram Protocol (OSI -> Transportschicht)

  • UDP Datagramme können verloren gehen
  • Datagramme können ungeordnet geliefert werden -> Unzuverlässig!
  • Datagramme werden unabhänig voneinadner geliefert

Da es keinen Verbindungsaufbau hat, keine Daten zwischenspeichert und einen kleineren Head als TCP hat wird es zum Beispiel für Livestreams genutzt.

Was zeichnet ein Betriebssystem aus?

  • verwaltet Hardware des Rechners (Arbeitsspeicher, Festplatten, Ein- und Ausgabegeräte)
  • verwaltet auszuführende Programme
  • regelt Zugriff auf Netzwerke
  • regelt Zuteilung und Entzug von Betriebsmitteln (Speicher, Prozessor ...)
  • regelt Unterbrechungsbehandlung
    • Ablauf einer Zeitscheibe
    • Ende einer Ein- oder Ausgabe
    • Anforderung eines Systemdienstes
    • Division durch Null ...
  • erlaubt (quasi-) paralelle Ausfürhung von Programmen
  • stellt Entwicklern eine Schnittstelle zur Benutzung der Hardware zur Verfügung

Was ist ein Kontext-Switch?

Bei einem Kontext-Switch wird der Kontext eines aktuellen Prozesses gespeichert, um ihn später wiederherzustellen. Ein anderer, gespeicherter Kontext wird geladen und ausgeführt.

Beschreiben Sie das Timesharing/Multitasking im Mehrprogrammbetrieb.

  • Endgerät bearbeitet abwechseld mehrere Aufgaben (quasi-) parallel
  • Jede Aufgabe erhält für bestimmte Zeit Prozessor, Hauptspeicher etc.
  • Betriebssystem verdrängt Programm nach Ablauf einer bestimmten Zeit (Zeitscheibe)
  • Zeitscheibe liegt zwischen 10 und 200 ms
  • Dem Nutzer wird Parallelität vorgegaukelt

Was ist der Unterschied zwischen einem Programm und einem Prozess?

 

  • Ein Programm ist eine statische Folge von Anweisungen (.exe, .elf ...)
     
  • Ein Prozess ist eine dynamische Abfolge von Aktionen und Zuständsänderungen
    • führt ein Programm auf einem Prozessor aus
    • bestizt eignen Adressraum
    • kann weitere Kind-Prozesse erstellen
    • besitzt Anteile am virtuellen Speicher

Welche Zustände kann ein Prozess einnehmen?

  1. new
  2. ready
  3. running
  4. waiting
  5. terminated

Welche Aussagen lassen sich über die Parallelität von Netzwerkprogrammen treffen?

  • Ein Endgerät kann seine Funktionalität durch Netzwerkzugriffe erweitern (Web Browser, E-Mail Client ...)
  • Programme, die auf ein Netzwerk zugreifen laufen quasi parallel -> Ein Programm hat meherere Ausführungsfäden -> Threads

Was genau ist ein Thread?

  • Ein Thread ist ein sequentieller Ausführungsfaden innerhalb eines Prozesses und gekennzeichnet durch.
    • Anfangspunkt
    • sequentiellen Ablauf
    • Endpunkt
  • Jeder Prozess erhält bei seiner Erzeugung einen Steuerungs-Thread, der weiter parallele Threads erzeugen kann

Wie kann Nebenläufigkeit bzw. Parallelität erzeugt werden?

  1. Multiprocessing
    1. Bei einem Kontext-Switch (Umschalten des OS von einem Prozess auf den nächsten) muss ein größerer Kontext neu geladen werden als beim Multithreading
    2. Beim Absturz eines Prozesses bleiben die anderen Prozesse unberührt
  2. Multithreading
    1. weniger Kontext
    2. Kontext-Switch günstiger
    3. Daten im Speicher sind dem Prozess zugeordnet
    4. Alle Threads innerhalb des Prozesses können auf die gleichen Daten zugreifen

Welche Zustände Kann ein Thread besitzen und wie werden diese mittels Java-Methoden aufgerufen?

Create - new Thread() - zu Zustand: ready

start() - zu Zustand: running - ruft run()-Methodedes neuen Objektes auf

run() - teilt Thread mit welche Anweisungen parallel ausgeführt werden sollen

sleep() - legt aktuellen Thread schlafen - zu Zustand: blocked

notify(), notifyAll() - weckt schlafende Threads wieder auf - zu Zustand: running

Sobald ein Thread abgearbeitet ist geht er in den Zustand terminated über
 

Wie kann es zu Konsistenzproblemen kommen und wie können diese vermieden/behoben werden?

Konsitenzprobleme können auftreten, wenn mehrere parallele Threads auf die selbe Variable zugreifen oder voneinander abhänige Threads einander überholen. 

In diesen Fällen spricht man von kritischen Fehlern.

Lösung: 

  • deterministischer Ablauf (globale Ereignisse sind unabhänig von der Ablaufreihenfolge)
  • Threads müssen durch Beeinflussung koordiniert werden
  • wechselseitiger Ausschluss von Betriebsmitteln
  • synchronisation (Threads werden in eine zeitliche Reihenfolge gebracht

Wann sind parallele Programme "korrekt"?

  • sequentielle Programme sobald sie ein richtiges Ergebnis liefern
  • parallele Programme wenn sie folgende Eigenschaften erfüllen:
    • Sicherheit - begrenzte Anzahl an Threads im krit. Bereich & partiell korrekt
    • Lebendigkeit - alle Zustände treten ein (überhaupt und endlich) - Deadlocks

Wie kann ein Deadlock entstehen?

  • Circular-Wait
  • Exclusive-User
  • Hold-and-Wait
  • No-Preemption

Was ist ein Monitor und mit welchem Schlüsselwort wird er in Java aufgerufen?

  • ist eine Klasse, die Zugriff auf ihre Funktion durch mehrere Prozesse/Treads nur sequentiell erlaubt
  • synchronisiert Zugriffe der Prozesse/Treads durch Ausschlussverfahren
  • Wartende Prozesse/Treads in Warteschlange
  • schützt Variablen vor direktem Zugriff
  • übernimmt itialisierung der Variablen
  • realisiert Synchronisation über Signalisierungsmechanismus wait() und signal()
  • synchronized(this)

Wann und warum kann das Erzeuger/Verbraucher-Problem auftreten?

  • Anforderungen
    • ein Prozess/Thread erzeugt Daten und ein anderer verarbeitet die Daten
    • Porzesse/Threads werden über gemeinsamen Puffer gekoppelt
    • Erzeuger darf nicht in vollen Puffer schreiben
    • Verbraucher darf nicht aus leerem Puffer lesen
       
  • ausgetauschte Signale
    • Wenn erzeugte Daten zur Verfügung stehen soll der Verbraucher ein Signal bekommen
    • Wenn der Buffer leer ist, soll der Erzeuger ein Signal bekommen

Study