From 37297a42663c69e57cd8e00b13e7e1b1e8c7916f Mon Sep 17 00:00:00 2001
From: Philip Kaludercic <philip.kaludercic@fau.de>
Date: Mon, 15 Jan 2024 12:19:13 +0100
Subject: [PATCH] Remove non-ASCII characters such ligatures and quotation
 marks

---
 ss16.q | 6 +++---
 ss18.q | 2 +-
 ss19.q | 2 +-
 ws21.q | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/ss16.q b/ss16.q
index 1f3e010..de0f92d 100644
--- a/ss16.q
+++ b/ss16.q
@@ -61,7 +61,7 @@
 0 Wozu dient der Maschinenbefehl _cas_ (compare-and-swap)? (Juli 2016)
 - Um bei Monoprozessorsystemen Interrupts zu sperren.
   Nein, das wäre auf x86 ein Befehl wie `cli`.
-+ Um auf einem Multiprozessorsystem einfache Modifikationen an Variablen ohne Sperren implementieren zu können.
++ Um auf einem Multiprozessorsystem einfache Modifikationen an Variablen ohne Sperren implementieren zu können.
   Ja, es ersetzt einen Wert atomar und transaktional, wenn der Wert sich nicht verändert hat.
 - Um bei der Implementierung von Schlossvariablen (Locks) aktives Warten zu vermeiden
   Nein, passives Warten braucht einen Scheduler, was man nicht direkt mit cas bekommt.
@@ -76,6 +76,6 @@
   Nein, der Deskriptor muss dahingehend angepasst werden, um anzudeuten dass die Seite wieder präsent ist.
 + Bei der Seitenersetzungsstrategie LRU wird die Seite ersetzt, welche am längsten nicht mehr referenziert wurde.
   Ja, _Least Recently Used_ wird die älteste unbenutzte Seite ausgelagert.
-- Beim Einsatz der Seitenersetzungsstrategie FIFO kann es nicht zu Seitenflattern kommen.
-  Doch, wenn die neuste Seite (_First In_) immer ausgelagert wird (_First Out_), dann werden bei hoher Last immer die gleichen Seiten ein- und ausgelagert, was man unter "Seitenflattern" versteht.
+- Beim Einsatz der Seitenersetzungsstrategie FIFO kann es nicht zu Seitenflattern kommen.
+  Doch, wenn die neuste Seite (_First In_) immer ausgelagert wird (_First Out_), dann werden bei hoher Last immer die gleichen Seiten ein- und ausgelagert, was man unter "Seitenflattern" versteht.
 .
\ No newline at end of file
diff --git a/ss18.q b/ss18.q
index 4dbe7c9..495bdfd 100644
--- a/ss18.q
+++ b/ss18.q
@@ -30,7 +30,7 @@
 0 Welche Aussage über das aktuelle Arbeitsverzeichnis (Current Working Directory) trifft zu? (Juli 2018)
 - Jedem UNIX-Benutzer ist zu jeder Zeit ein aktuelles Verzeichnis zugeordnet.
   Nein, weil ein aktuelles Verzeichnis wird einem Prozess zugeordnet.
-+ Pfadnamen, die nicht mit dem Zeichen ’/’ beginnen, werden relativ zu dem aktuellen Arbeitsverzeichnis interpretiert.
++ Pfadnamen, die nicht mit dem Zeichen `/` beginnen, werden relativ zu dem aktuellen Arbeitsverzeichnis interpretiert.
 - Mit dem Systemaufruf `chdir()` kann das aktuelle Arbeitsverzeichnis eines Prozesses durch seinen Vaterprozess verändert werden.
   Nein, das ändert den CWD von dem aufrufendem Prozess.
 - Besitzt ein UNIX-Prozess kein Current Working Directory, so beendet sich der Prozess mit einem Segmentation Fault.
diff --git a/ss19.q b/ss19.q
index 38c07ff..bf77792 100644
--- a/ss19.q
+++ b/ss19.q
@@ -44,7 +44,7 @@
 - Der Einsatz von nicht-blockierenden Synchronisationsmechanismen kann zu Verklemmungen (deadlocks) führen.
   Nein, bei einer Verklemmung müssen mehere Fäden passiv aufeinander warten, was bei nicht-blockierendeer Syncrhonisation nicht passieren kann.
 
-- Ein Anwendungsprozess muss bei der Verwendung von Semaphoren Interrupts sperren, um Probleme durch Nebenläufigkeit zu verhindern.
+- Ein Anwendungsprozess muss bei der Verwendung von Semaphoren Interrupts sperren, um Probleme durch Nebenläufigkeit zu verhindern.
   Nein, wenn nur weil ein Anwendungsprozess keine Interrupts selbst sperren kann.
 
 + Gibt ein Faden einen Mutex frei, den er selbst zuvor nicht angefordert hatte, stellt dies einen Programmierfehler dar; eine Fehlerbehandlung sollte eingeleitet werden.
diff --git a/ws21.q b/ws21.q
index fa4730c..fdd239c 100644
--- a/ws21.q
+++ b/ws21.q
@@ -71,7 +71,7 @@
   Nein, weil ein Interrupt nichts mit dem Programm zu tun hat, und
   daher dieses nicht (direkt) abbrechen sollte.
 
-- Bei einem Trap wird der gerade in Bearbeitung befindliche Maschinenbefehl immer noch vollständig zu Ende bearbeitet, bevor mit der Trapbehandlung begonnen wird.
+- Bei einem Trap wird der gerade in Bearbeitung befindliche Maschinenbefehl immer noch vollständig zu Ende bearbeitet, bevor mit der Trapbehandlung begonnen wird.
 
   Nein, bspw. wenn man versucht auf nicht lesbaren Speicher versucht
   zuzugreifen, muss es abgebrochen werden, bevor auf den Speicher
-- 
GitLab