Changes for page B23 Betriebssysteme und Netzwerke
Last modified by Thomas Schwotzer on 2025/04/09 12:44
From version 203.4
edited by Thomas Schwotzer
on 2025/04/09 12:38
on 2025/04/09 12:38
Change comment:
There is no comment for this version
To version 189.1
edited by Thomas Schwotzer
on 2024/01/24 09:12
on 2024/01/24 09:12
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 11 removed)
-
Objects (1 modified, 0 added, 1 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,12 +1,12 @@ 1 1 Es ist enorm hilfreich, wenn Sie zuvor die Veranstaltung [[Praktische Grundlagen der Informatik>>url:http://christianherta.de/lehre/praktischeInformatik/praktischeInformatik.php||shape="rect"]] erfolgreich abschlossen. Ich gehe davon aus, dass Sie mit einen Rechner auch auf der Shell-Ebene arbeiten können. 2 2 3 -Betriebssysteme und Netzwerke werden in vielen Studiengängen in zwei getrennten Kursen gegeben. Dabei wurden die Betriebssysteme, mit denen wir arbeiten sehr stark von den Netzwerken beeinflusst. Den ersten [[drahtlosen Telegrafen entwickelte Gauss bereits 1833>>url:https://de.wikipedia.org/wiki/Carl_Friedrich_Gau%C3%9F#Magnetismus,_Elektrizit%C3%A4t_und_Telegrafie||shape="rect"]]. In der Zeit diskutierte und entwickelte man auch Programmiersprachen. Die Grundlagen unserer Betriebssysteme wurden aber 1940er Jahren gelegt. Multitaskingsysteme waren zwingend notwendig, um gleichzeitig Netzwerkverkehr und Eingaben von Menschen zu bearbeiten. 3 +Betriebssysteme und Netzwerke werden in vielen Studiengängen in zwei getrennten Kursen gegeben. Dabei wurden die Betriebssysteme, mit denen wir arbeiten sehr stark von den Netzwerken beeinflusst. Den ersten [[drahtlosen Telegrafen entwickelte Gauss bereits 1833>>url:https://de.wikipedia.org/wiki/Carl_Friedrich_Gau%C3%9F#Magnetismus,_Elektrizit%C3%A4t_und_Telegrafie||shape="rect"]]. In der Zeit diskutierte und entwickelte man auch Programmiersprachen. Die Grundlagen unserer Betriebssysteme wurden aber 1940er Jahren gelegt. Multitaskingsysteme waren zwingend notwendig, um gleichzeitig Netzwerkverkehr und Eingaben von Menschen zu bearbeiten. Wir folgen in diesem Kurs daher auch dieser Historie, fangen mit Netzwerken an und beschäftigen uns dann mit Betriebssystemen, wenn wir merken, dass single-threaded nicht ausreicht für das was wir tun wollen. 4 4 5 5 == {{id name="B23BetriebssystemeundNetzwerke-Prüfungsleistungen"/}}Prüfungsleistungen == 6 6 7 7 Am Ende der Veranstaltung steht eine **Klausur**. Sie werden eine schriftliche Arbeit schreiben. 8 8 9 -Als** semesterbegleitende Leistung** implementieren Sie ein kleines dezentrales Programm. Die Arbeit daran beginnt in der 1. Übung. Das Programm unterstützt Sie beim Lernen der Konzepte und zeigt umgekehrt, ob Sie sich mit den Themen während des Semesters beschäftigten. Am Ende des Semester sind Sie in der Lage, ein Programm zu schreiben, dass eine TCP-Verbindung zu einem anderen Prozess herstellt und mit diesem wohl definierte PDUs austauscht.Ihre Fortschrittein derÜbungwerdendurcheinen Programmiertest geprüftwerden. Diese TestwirdausmehrereTeilen(alsowenigstenszwei)bestehen.Diese9 +Als** semesterbegleitende Leistung** implementieren Sie ein kleines dezentrales Programm. Die Arbeit daran beginnt in der 1. Übung. Das Programm unterstützt Sie beim Lernen der Konzepte und zeigt umgekehrt, ob Sie sich mit den Themen während des Semesters beschäftigten. Am Ende des Semester sind Sie in der Lage, ein Programm zu schreiben, dass eine TCP-Verbindung zu einem anderen Prozess herstellt und mit diesem wohl definierte PDUs austauscht. Das wird am Ende der Vorlesungszeit in einem kleinen Programmiertest geprüft. **Diesen Test müssen Sie bestehen. Erst dann gibt es Punkte. Es gibt keine Punkte für eine nicht fertige Lösung.** Bestehen Sie den Test nicht, sind Sie auch nicht zur Klausur zugelassen. 10 10 11 11 Wir sind eine Hochschule für angewandte (!) Wissenschaften. Sie müssen grundlegende Dinge praktisch umsetzen können. Das ist auch gar kein Problem, wenn Sie sich aktiv an den Übungen beteiligen. Wirklich gar kein Problem. Es kann ein ernsthaftes Problem werden, wenn Sie die Übungen ignorieren. 12 12 ... ... @@ -36,7 +36,7 @@ 36 36 37 37 [[Einige Foliensätze habe ich kommentiert auch in die Mediathek gestellt>>url:https://mediathek.htw-berlin.de/album/view/aid/334||shape="rect"]]. 38 38 39 -(% class="relative-table wrapped" style="width:100.0%" %)39 +(% class="wrapped relative-table" style="width: 100.0%;" %) 40 40 |=((( 41 41 # 42 42 )))|=((( ... ... @@ -51,77 +51,6 @@ 51 51 |((( 52 52 1 53 53 )))|((( 54 -**Betriebssysteme - Einstieg** 55 -)))|((( 56 -Betriebssysteme - wozu dient alle das und wer hats erfunden. Wir beginnen mit der Keilschrift und hören bei UNIX auf. 57 -)))|((( 58 -[2] 1.1 - 1.4 59 - 60 -[[Algorithmen und Genies>>url:http://www.sharksystem.net/htw/Prog1/ImperativesProgrammierenVonNeumann.pdf||shape="rect"]] 61 - 62 -[[Mediathek>>url:https://mediathek.htw-berlin.de/album/video/Betriebssysteme-und-Netzwerke-Einstieg-Betriebssysteme/1cc396fd6ac3354b598b93915297a83a/334||shape="rect"]] 63 -)))|((( 64 -(% class="content-wrapper" %) 65 -((( 66 -Wir fangen an mit dem Bau einer verteilten Anwendung. Ein Spiel, ein Chat, mal schauen. Das wird das semesterbegleitende Projekt. Sie müssen immer mit machen, dann lernen Sie sicherlich eine Menge. 67 -))) 68 -))) 69 -|((( 70 -2 71 -)))|((( 72 -**Von Programmcode zum laufenden Prozess** 73 -)))|((( 74 -Ein Programm ist laufender Maschinecode. Den können wir im Prinzip direkt implementieren. Das ist nur enorm zeitaufwendig. Wir können mit Assembler anfangen. Liest sich besser, löst kein Problem. Wir können mit einer //Hochsprache// wie C anfangen. Gute Idee. Wie aber wird aus dem C-Code Maschinencode? Was ist ein Compiler und ein Compiler-Compiler? Was ist eine Shell, wie passt die Java Virtuelle Maschine (JVM) in all das ... und die Frage aller Fragen: was ist die Matrix? (Okay, die Matrix diskutieren wir leider nicht). Wir lernen aber bereits den Scheduler kennen, über den wir später noch einmal wieder treffen werden. 75 -)))|((( 76 -[2] 1.5.1, 2.1 77 - 78 -[[Assember, Maschinencode, Java und JVM>>url:http://www.sharksystem.net/htw/Prog1/Java.pdf||shape="rect"]] 79 - 80 -[[Mediathek>>url:https://mediathek.htw-berlin.de/video/Betriebssysteme-und-Netzwerke-Vom-Programmcode-zum-laufenden-Prozess/51827ebfe20ed06ba810758d1b71dbef||shape="rect"]] 81 - 82 -[11] start command 83 - 84 -[12] am Ende der Zeile "&" - launch background process 85 -)))|((( 86 -(% class="content-wrapper" %) 87 -((( 88 - 89 - 90 - 91 - 92 -))) 93 -))) 94 -|((( 95 -3 96 -)))|((( 97 -**Threads + Race Conditions** (Problembeschreibung) 98 -)))|((( 99 -Betriebssysteme sind schon sehr sehr lange in der Lage mehrere Prozesse (quasi-) parallel auszuführen. Anwendungsentwickler:innen kommen häufiger mit Threads in Kontakt, weshalb wir in den Übungen mit Threads arbeiten. Schnell aber kommt treten //Race Conditions (Wettlaufbedingungen)// auf. Die sind oft gar nicht so schnell zu erkennen. Es gibt einen Grund warum //Multithreading// schon eine Herausforderung ist. Wir beschäftigen uns mit Threads, wie wir die programmieren und welche Probleme dabei entstehen können, bis hin zum Deadlock. Wir erfahren was ein kritischer Abschnitt (//critical section//) ist. 100 -)))|((( 101 -[[Codebeispiel: Account Example (bad)>>url:https://github.com/thsc42/OperatingSystems/tree/master/src/raceConditions/accountExample/bad||shape="rect"]] 102 - 103 -[[LN:Threads mit Java>>url:http://www.sharksystem.net/htw/GMA/LN/Threads_Java_Android.pdf||shape="rect"]] 104 -)))|((( 105 - 106 -))) 107 -|((( 108 -4 109 -)))|((( 110 -**Synchronisation von Prozessen und Threads** 111 -)))|((( 112 -Nachdem wir uns mit den Herausforderungen gleichzeitig laufender Kontrollflüsse beschäftigten, kommen wir zu Lösungen. Wir reden über Semaphoren, Signale (technisch Interrupts), Mutex. 113 -)))|((( 114 -[2] 2.3.1 - 2.3.9, 2.4 115 - 116 -[2] 1.5.2, 3 117 - 118 -[[Codebeispiel: Synchronisation>>url:https://github.com/thsc42/OperatingSystems/tree/master/src/raceConditions||shape="rect"]] 119 -)))|((( 120 - 121 -))) 122 -|((( 123 -5 124 -)))|((( 125 125 **Punkt-zu-Punkt Datenübertragung** 126 126 )))|((( 127 127 Wir fangen mit den Netzwerken an. Und der Anfang ist prosaisch: Man nehme ein Kabel und verbinden zwei Parteien, die darüber nun Daten austauschen. Und damit fangen die interessanten Fragen bereits an. ... ... @@ -132,10 +132,12 @@ 132 132 133 133 [[Mediathek: Fehlerkorrektur und -erkennung>>url:https://mediathek.htw-berlin.de/album/video/Fehlererkennung-behebung-Hamming-Frames-Synchronisation-OSI-Layer-2/9d682f6b9ef2cac57be9795f35a57a29/334||shape="rect"]] 134 134 )))|((( 135 - 64 +Sie finde das [[NWAppTemplate>>url:https://github.com/thsc42/NWAppTemplate||shape="rect"]] auf Github. Wir nehmen das als Basis, um in streambasierte Netzwerkprogrammierung einzusteigen. Sie bekommen in der Übung ein Skeleton das wir schrittweise bis zum Ende des Semesters erweitern. 65 + 66 +Wir beschäftigen uns mit [[Streams>>url:https://mediathek.htw-berlin.de/album/video/Streams/ef694bc868aa397a1bb42507db7fc33d/334||shape="rect"]] und [[DataStreams>>url:https://mediathek.htw-berlin.de/album/video/DataStreams/55d82930517c4795a6089dce9512c409/334||shape="rect"]]. 136 136 ))) 137 137 |((( 138 - 669 +2 139 139 )))|((( 140 140 **Layer 2 (Medienzugriff, Fehlererkennung / - korrektur)** 141 141 )))|((( ... ... @@ -147,10 +147,10 @@ 147 147 148 148 [[Mediathek:CSMA>>url:https://mediathek.htw-berlin.de/video/Carrier-Sense-Multiple-Access-CSMA/dc16139e4522ef04e708c69ae0000abf||shape="rect"]] 149 149 )))|((( 150 - 81 +Wir beschäftigen uns mit Unit Tests, konkret JUnit. Der Einschub ist wichtig, weil unser Programm immer komplexer wird die Fehlersuche immer schwerer. Bei verteilten Systemen sowieso ein richtiges Problem. 151 151 ))) 152 152 |((( 153 - 784 +3 154 154 )))|((( 155 155 **Layer 2 (Ethernet)** 156 156 )))|((( ... ... @@ -166,11 +166,11 @@ 166 166 )))|((( 167 167 (% class="content-wrapper" %) 168 168 ((( 169 - 100 +{{view-file att--filename="AdderProtocolEngine.zip" display="thumbnail" height="250"/}}Wir implementieren eine Protokollmaschine. Hier das Beispiel, dass wir in der Vorlesung diskutieren. 170 170 ))) 171 171 ))) 172 172 |((( 173 - 8104 +4 174 174 )))|((( 175 175 **Layer 3 (Internet Protocol)** 176 176 )))|((( ... ... @@ -186,10 +186,10 @@ 186 186 187 187 [[Mediathek:IP>>url:https://mediathek.htw-berlin.de/album/video/Internet-Protocol-IP/dccfad000b93bacfe0d4563f583a42c5/334||shape="rect"]] 188 188 )))|((( 189 - 120 +\\ 190 190 ))) 191 191 |((( 192 - 9123 +5 193 193 )))|((( 194 194 **Layer 4 (TCP)** 195 195 )))|((( ... ... @@ -199,93 +199,111 @@ 199 199 200 200 [7] 201 201 202 -[[Mediathek>>url:https://mediathek.htw-berlin.de/album/video/tcp-udp/817fbf28e183c4fcc36a2cf914713285/334||shape="rect"]] 203 - 204 204 [[Mediathek: Layer1-4>>url:https://mediathek.htw-berlin.de/album/video/OSI-Layer-1-4/cfe6541e4a0ecb5092a4ffd650334182/334||shape="rect"]] 205 205 )))|((( 206 - 135 +\\ 207 207 ))) 208 208 |((( 209 - 10138 +6 210 210 )))|((( 211 -** Scheduling/Deadlocks**140 +**Verzeichnisdienste DNS**, LDAP, X.500 212 212 )))|((( 213 -Scheduler. Vielleicht kommen wir soweit und Sie wissen, was sich hinter dem Kommando shell Kommando //nice// auf verbirgt. 214 - 215 -Wir reden über verhungernde Philosophen etc. 142 +Wir diskutieren den Domain Name Service. 216 216 )))|((( 217 -[ 1] S.151,158ff + S. 192ff, 214, 239, 242ff144 +[4] S. 690ff 218 218 219 -[ 2] S.93-99, 150-166 + S.181, 186ff220 - 221 -[[ Mediathek:Scheduling>>url:https://mediathek.htw-berlin.de/video/Betriebssysteme-und-Netzwerke-Scheduling/394e546de01c41a388ac2afc2d9cdd6c||shape="rect"]]222 - 223 -[[ Mediathek:Deadlocks>>url:https://mediathek.htw-berlin.de/album/video/deadlocks/a74ffe24a122016f66a28e377b4de5ab/334||shape="rect"]]146 +[[https:~~/~~/www.icann.org/>>url:https://www.icann.org/||shape="rect"]] 147 +[[https:~~/~~/www.iana.org/>>url:https://www.iana.org/||rel="nofollow" shape="rect" class="external-link"]] 148 +[[https:~~/~~/datatracker.ietf.org/doc/html/rfc1035>>url:https://datatracker.ietf.org/doc/html/rfc1035||rel="nofollow" shape="rect" class="external-link"]] 149 +[[https:~~/~~/de.wikipedia.org/wiki/Nslookup>>url:https://de.wikipedia.org/wiki/Nslookup||rel="nofollow" shape="rect" class="external-link"]] 150 +[[https:~~/~~/www.denic.de/>>url:https://www.denic.de/||rel="nofollow" shape="rect" class="external-link"]] 224 224 )))|((( 225 - 152 +\\ 226 226 ))) 227 227 |((( 228 - 11155 +7 229 229 )))|((( 230 -**Verzeichnisdienste** 157 +**Betriebssysteme - Einstieg 158 +** 231 231 )))|((( 232 - Wir diskutierenden**DomainNameService(DNS)**160 +Betriebssysteme - wozu dient alle das und wer hats erfunden. Wir beginnen mit der Keilschrift und hören bei UNIX auf. 233 233 )))|((( 234 -[ 4]S.690ff162 +[2] 1.1 - 1.4 235 235 236 -[[https:~~/~~/www.icann.org/>>url:https://www.icann.org/||shape="rect"]] 237 -[[https:~~/~~/www.iana.org/>>url:https://www.iana.org/||rel="nofollow" shape="rect" class="external-link"]] 238 -[[https:~~/~~/datatracker.ietf.org/doc/html/rfc1035>>url:https://datatracker.ietf.org/doc/html/rfc1035||rel="nofollow" shape="rect" class="external-link"]] 239 -[[https:~~/~~/de.wikipedia.org/wiki/Nslookup>>url:https://de.wikipedia.org/wiki/Nslookup||rel="nofollow" shape="rect" class="external-link"]] 240 -[[https:~~/~~/www.denic.de/>>url:https://www.denic.de/||rel="nofollow" shape="rect" class="external-link"]] 164 +[[Algorithmen und Genies>>url:http://www.sharksystem.net/htw/Prog1/ImperativesProgrammierenVonNeumann.pdf||shape="rect"]] 241 241 242 -[[Mediathek>>url:https://mediathek.htw-berlin.de/album/video/ domain-name-service-dns/c411b9faba8a704eea698beef3254227/334||shape="rect"]]166 +[[Mediathek>>url:https://mediathek.htw-berlin.de/album/video/Betriebssysteme-und-Netzwerke-Einstieg-Betriebssysteme/1cc396fd6ac3354b598b93915297a83a/334||shape="rect"]] 243 243 )))|((( 244 - 168 +\\ 245 245 ))) 246 246 |((( 247 - 12171 +8 248 248 )))|((( 249 -** E-Mail**173 +**Von Programmcode zum laufenden Prozess** 250 250 )))|((( 251 - Wir schauenunsSMTPund ein wenigPOPundIMAPan. Wirwerfen abervor allem aucheinenBlickin dasFormat einer Mail;in demKontext entstand nämlichMIMEwasman dannauch inHTTPnutzte.175 +Ein Programm ist laufender Maschinecode. Den können wir im Prinzip direkt implementieren. Das ist nur enorm zeitaufwendig. Wir können mit Assembler anfangen. Liest sich besser, löst kein Problem. Wir können mit einer //Hochsprache// wie C anfangen. Gute Idee. Wie aber wird aus dem C-Code Maschinencode? Was ist ein Compiler und ein Compiler-Compiler? Was ist eine Shell, wie passt die Java Virtuelle Maschine (JVM) in all das ... und die Frage aller Fragen: was ist die Matrix? (Okay, die Matrix diskutieren wir leider nicht). Wir lernen aber bereits den Scheduler kennen, über den wir später noch einmal wieder treffen werden. 252 252 )))|((( 253 -[ [~[8~]>>url:http://www.sharksystem.net/paper/diplom_schwotzer.pdf||shape="rect"]]2.2 (POP und IMAP)177 +[2] 1.5.1, 2.1 254 254 255 -[ 4]S.708ff179 +[[Assember, Maschinencode, Java und JVM>>url:http://www.sharksystem.net/htw/Prog1/Java.pdf||shape="rect"]] 256 256 257 -[[https:~~/~~/www.rfc-editor.org/rfc/rfc5322>>url:https://www.rfc-editor.org/rfc/rfc5322#page-8||shape="rect"]] 258 -[[https:~~/~~/www.rfc-editor.org/rfc/rfc5321.html>>url:https://www.rfc-editor.org/rfc/rfc5321.html#page-10||shape="rect"]] 181 +[[Mediathek>>url:https://mediathek.htw-berlin.de/video/Betriebssysteme-und-Netzwerke-Vom-Programmcode-zum-laufenden-Prozess/51827ebfe20ed06ba810758d1b71dbef||shape="rect"]] 259 259 260 -[[Mediathek>>url:https://mediathek.htw-berlin.de/album/video/e-mail-pop-imap-smtp-base64-mime/c53f7fe8b966f7dd17068a2add09060c/334||shape="rect"]] 183 +[11] start command 184 + 185 +[12] am Ende der Zeile "&" - launch background process 261 261 )))|((( 262 - 187 +(% class="content-wrapper" %) 188 +((( 189 +Wir implementieren ein Multithreaded Java-Programm. 190 + 191 +{{view-file att--filename="ThreadTemplate.zip" display="thumbnail" height="250"/}} 192 + 193 +[[LN:Threads mit Java>>url:http://www.sharksystem.net/htw/GMA/LN/Threads_Java_Android.pdf||shape="rect"]] 263 263 ))) 195 +))) 264 264 |((( 265 - 13197 +9 266 266 )))|((( 267 - **HTTP**199 +Speichermanagement 268 268 )))|((( 269 - HTTP201 +Wir sprechen über Daten, der Speicherung und Verwaltung in einem laufenden Programm. Und endlich wissen wir was dieser legendäre Stackoverflow ist. Und wir werden sehen, dass wir es mit einer Stackmaschine zu tun haben. Und dann verstehen wir auch, warum wir ITler:innen als ersten Index immer die 0 nehmen und nicht die 1 wie diese eigenartigen anderen Menschen... 270 270 )))|((( 271 -[[ Mediathek>>url:https://mediathek.htw-berlin.de/album/video/http/2fd5decaa8938d672bd8bcc1f64472b9/334||shape="rect"]]203 +[[LN:Funktionsstack>>url:http://www.sharksystem.net/htw/Prog1/MethodenUndStack.pdf||shape="rect"]] , [[LN:Rekursion / Stack und Heap>>url:http://www.sharksystem.net/htw/Prog1/RekursionUndStack.pdf||shape="rect"]], [[LN:eindimensionale Arrays>>url:http://www.sharksystem.net/htw/Prog1/EindimensionaleArrays.pdf||shape="rect"]], [[LN:mehrdimensionale Arrays>>url:http://www.sharksystem.net/htw/Prog1/MehrdimensionaleArrays.pdf||shape="rect"]], 272 272 )))|((( 273 - 205 +Wir machen einmal Pause von unserem Projekt und implementieren ein simples rekursives Java-Programm das ein mehrdimensionales Array füllt und schauen uns Stack und Speicherstruktur einmal genauer an. 274 274 ))) 275 275 |((( 276 -1 3208 +10 277 277 )))|((( 278 -** Speichermanagement**210 +**Threads + Race Conditions** (Problembeschreibung) 279 279 )))|((( 280 - WirsprechenüberDaten,derSpeicherungundVerwaltungineinemlaufendenProgramm. UndendlichwissenwirwasdieserlegendäreStackoverflowist.Undwirwerden sehen,dasswiresmit einerStackmaschine zutunhaben.Unddannverstehenwirauch,warumwirITler:innen alserstenIndeximmer die0 nehmen undnicht die1 wie diese eigenartigen anderenMenschen...212 +Betriebssysteme sind schon sehr sehr lange in der Lage mehrere Prozesse (quasi-) parallel auszuführen. Anwendungsentwickler:innen kommen häufiger mit Threads in Kontakt, weshalb wir in den Übungen mit Threads arbeiten. Schnell aber kommt treten //Race Conditions (Wettlaufbedingungen)// auf. Die sind oft gar nicht so schnell zu erkennen. Es gibt einen Grund warum //Multithreading// schon eine Herausforderung ist. Wir beschäftigen uns mit Threads, wie wir die programmieren und welche Probleme dabei entstehen können, bis hin zum Deadlock. Wir erfahren was ein kritischer Abschnitt (//critical section//) ist. 281 281 )))|((( 282 -[[LN:Funktionsstack>>url:http://www.sharksystem.net/htw/Prog1/MethodenUndStack.pdf||shape="rect"]] , [[LN:Rekursion / Stack und Heap>>url:http://www.sharksystem.net/htw/Prog1/RekursionUndStack.pdf||shape="rect"]], [[LN:eindimensionale Arrays>>url:http://www.sharksystem.net/htw/Prog1/EindimensionaleArrays.pdf||shape="rect"]], [[LN:mehrdimensionale Arrays>>url:http://www.sharksystem.net/htw/Prog1/MehrdimensionaleArrays.pdf||shape="rect"]], 214 +[[Codebeispiel: Account Example (bad)>>url:https://github.com/thsc42/OperatingSystems/tree/master/src/raceConditions/accountExample/bad||shape="rect"]] 215 + 216 +\\ 283 283 )))|((( 284 - 218 +Wir versuchen Threads zu synchronisieren. 285 285 ))) 286 286 |((( 287 - 221 +11 288 288 )))|((( 223 +**Synchronisation von Prozessen und Threads** 224 +)))|((( 225 +Nachdem wir uns mit den Herausforderungen gleichzeitig laufender Kontrollflüsse beschäftigten, kommen wir zu Lösungen. Wir reden über Semaphoren, Signale (technisch Interrupts), Mutex. 226 +)))|((( 227 +[2] 2.3.1 - 2.3.9, 2.4 228 + 229 +[2] 1.5.2, 3 230 + 231 +[[Codebeispiel: Synchronisation>>url:https://github.com/thsc42/OperatingSystems/tree/master/src/raceConditions||shape="rect"]] 232 +)))|((( 233 +Wir diskutieren das Lese-Schreibe-Problem und den schlafenden Friseur, siehe Moodle. 234 +))) 235 +|((( 236 +\\ 237 +)))|((( 289 289 Inter Process Communications (IPC): Shared Memory 290 290 291 291 (optional) ... ... @@ -294,13 +294,43 @@ 294 294 )))|((( 295 295 [2] 2.3 296 296 297 - 246 +\\ 298 298 )))|((( 299 - 248 +\\ 300 300 ))) 301 301 |((( 302 - 251 +12.1 303 303 )))|((( 253 +**Scheduling** 254 +)))|((( 255 +Scheduler. Vielleicht kommen wir soweit und Sie wissen, was sich hinter dem Kommando shell Kommando //nice// auf verbirgt. 256 +)))|((( 257 +[1] S.151, 158ff 258 + 259 +[2] S.93-99, 150-166 260 + 261 +[[Mediathek>>url:https://mediathek.htw-berlin.de/video/Betriebssysteme-und-Netzwerke-Scheduling/394e546de01c41a388ac2afc2d9cdd6c||shape="rect"]] 262 +)))|((( 263 +\\ 264 +))) 265 +|((( 266 +12.2 267 +)))|((( 268 +**Deadlocks** 269 +)))|((( 270 +Wir reden über verhungernde Philosophen etc. 271 +)))|((( 272 +[1] S. 192ff, 214, 239, 242ff 273 + 274 +[2] S.181, 186ff 275 + 276 +[[Mediathek>>url:https://mediathek.htw-berlin.de/album/video/deadlocks/a74ffe24a122016f66a28e377b4de5ab/334||shape="rect"]] 277 +)))|((( 278 +\\ 279 +))) 280 +|((( 281 +\\ 282 +)))|((( 304 304 Dateinsysteme, Speicherverwaltung / Paging / Caching 305 305 )))|((( 306 306 spannend, aber optional ... ... @@ -307,22 +307,51 @@ 307 307 )))|((( 308 308 [2] 6 309 309 )))|((( 310 - 289 +\\ 311 311 ))) 312 312 |((( 313 - 292 +\\ 314 314 )))|((( 315 315 Virtualisierung 316 316 )))|((( 317 317 optional 318 318 )))|((( 319 - 298 +\\ 320 320 )))|((( 321 - 300 +\\ 322 322 ))) 323 323 |((( 324 - 303 +13 325 325 )))|((( 305 +E-Mail** 306 +** 307 +)))|((( 308 +Wir schauen uns SMTP und ein wenig POP und IMAP an. Wir werfen aber vor allem auch einen Blick in das Format einer Mail; in dem Kontext entstand nämlich MIME was man dann auch in HTTP nutzte.** 309 +** 310 +)))|((( 311 +[[~[8~]>>url:http://www.sharksystem.net/paper/diplom_schwotzer.pdf||shape="rect"]] 2.2 (POP und IMAP) 312 + 313 +[4] S.708ff 314 + 315 +[[https:~~/~~/www.rfc-editor.org/rfc/rfc5322>>url:https://www.rfc-editor.org/rfc/rfc5322#page-8||shape="rect"]] 316 +[[https:~~/~~/www.rfc-editor.org/rfc/rfc5321.html>>url:https://www.rfc-editor.org/rfc/rfc5321.html#page-10||shape="rect"]] 317 +)))|((( 318 +\\ 319 +))) 320 +|((( 321 +\\ 322 +)))|((( 323 +Einige Protokolle und Formate 324 +)))|((( 325 +HTTP, MQTT. 326 +)))|((( 327 +\\ 328 +)))|((( 329 +\\ 330 +))) 331 +|((( 332 +\\ 333 +)))|((( 326 326 Architekturen 327 327 )))|((( 328 328 monolithisch, zentralisiert, verteilt, wenigstens 3 Arten von P2P, Agenten. ... ... @@ -335,10 +335,10 @@ 335 335 336 336 [[Mediathek:Distributed Systems>>url:https://mediathek.htw-berlin.de/album/video/Verteilte-Anwendungsmuster-P2P-Client-Server-Agenten-SharkASAP/db6b10a1014fbda7eeb9b49eadead34b/329||shape="rect"]] 337 337 )))|((( 338 - 346 +\\ 339 339 ))) 340 340 |((( 341 - 349 +13 342 342 )))|((( 343 343 //Grundlagen der Verschlüsselung// 344 344 ... ... @@ -352,18 +352,18 @@ 352 352 353 353 [[Mediathek: Schlüsselverfahren PKI und Zertifikate>>url:https://mediathek.htw-berlin.de/album/video/SEPrinzipienKryptografie/20ac30ae9d0301ebc1e5c66b9c33bf18/253||shape="rect"]] 354 354 )))|((( 355 - 363 +\\ 356 356 ))) 357 357 |((( 358 - 366 +\\ 359 359 )))|((( 360 360 Virtuelle (private) Netze, TOR 361 361 )))|((( 362 362 optional 363 363 )))|((( 364 - 372 +\\ 365 365 )))|((( 366 - 374 +\\ 367 367 ))) 368 368 369 369 == {{id name="B23BetriebssystemeundNetzwerke-Literatur"/}}Literatur == ... ... @@ -403,26 +403,34 @@ 403 403 404 404 == {{id name="B23BetriebssystemeundNetzwerke-KlausurenvonVorsemestern"/}}Klausuren von Vorsemestern == 405 405 414 +\\ 406 406 407 407 {{view-file att--filename="BS_NW_22_1.pdf" display="thumbnail" height="250"/}}{{view-file att--filename="BS_NW_22_2.pdf" display="thumbnail" height="250"/}}{{view-file att--filename="BS_NW_22_23_1.pdf" display="thumbnail" height="250"/}} 408 408 409 -{{view-file att--filename="BN_23_24_2.pdf" display="thumbnail" height="250"/}}{{view-file att--filename="BN_23_24_1.pdf" display="thumbnail" height="250"/}} 410 - 411 411 {{view-file att--filename="BS_NW_23_1.pdf" display="thumbnail" height="250"/}} 412 412 420 +{{view-file att--filename="BS_NW_24_1.pdf" display="thumbnail" height="250"/}} 413 413 422 +\\ 414 414 424 +\\ 415 415 426 +\\ 416 416 428 +\\ 417 417 430 +\\ 418 418 432 +\\ 419 419 434 +\\ 420 420 436 +\\ 421 421 438 +\\ 422 422 440 +\\ 423 423 442 +\\ 424 424 425 - 426 - 427 - 428 - 444 +\\
- AdderProtocolEngine.zip
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -19.4 KB - Content
- BN_23_24_1.pdf
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -58.6 KB - Content
- BN_23_24_2.pdf
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -60.1 KB - Content
- BS_NW_22_1.pdf
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -41.5 KB - Content
- BS_NW_22_2.pdf
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -41.5 KB - Content
- BS_NW_22_23_1.pdf
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -41.5 KB - Content
- BS_NW_23_1.pdf
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -42.4 KB - Content
- BS_NW_24_1.pdf
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -58.6 KB - Content
- CLISkeletonWithConnection.zip
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -30.7 KB - Content
- FragenBS_NW.txt
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -3.7 KB - Content
-
... ... @@ -1,87 +1,0 @@ 1 -(10‘) Was ist Maschinencode? Erläutern Sie! 2 -- spezifisch für einen Prozessor. 3 -- kann direkt abgearbeitet werden in der CPU 4 -- Zusatz: Ziel des Compilers. 5 - 6 -Was ist ein Compiler? 7 - 8 -Worin unterscheiden sich der Output der Compiler von C und Java gründsätzlich? 9 - 10 -(10‘) Welche Elemente sind einem Prozess zugeordnet? Anders gefragt: Woraus besteht ein Prozess und welche Dinge ordnet das Betriebssystem zu? 11 -- Freispeicher (Heap), Stack(), 12 -- Instruction Pointer ggf 13 -- Teil der Prozessortabelle 14 - 15 -Welche Aufgaben hat ein Scheduler? 16 - 17 -Was ist ein Betriebssystem? 18 - 19 -Was ist ein Thread? 20 - 21 -Wozu dient der Stack in einem Prozess? 22 - 23 -(5‘) Nennen und beschreiben Sie zwei Prozesszustände! 24 -- wait: Prozess wartet auf externe Eingaben 25 -- running: Prozess wird abgearbeitet 26 -- bereit: Prozess ist bereit, ist aber gerade nicht zur Abarbeitung eingeteilt. 27 - 28 -Beschreiben Sie das Schedulingverfahren First-In-First-Out (FIFO)! 29 - 30 -Beschreiben Sie das Schedulingverfahren Round-Robin! 31 - 32 -(15‘) Schedulingverfahren lassen sich u.a. klassifizieren als in Batch-, Multitask- und Echtzeitverfahren. Nennen Sie für jedes Verfahren ein mögliches Einsatzgebiet und beschreiben Sie grob dessen Prinzip. 33 -- Batch: Banken. Job after Job wird ohne(!) Unterbrechung abgearbeitet. 34 -- Multitask: Rechnern mit Usern davor: Unterbrechbare Jobs 35 -- Echtzeit: Industrieanlagen: Garantie der Zeiten, setzte Kenntnis der Prozesse voraus. 36 - 37 -Nennen Sie eine Bedingung, die erfüllt sein muss, um einen Deadlock zu erzeugen. 38 -Begründen Sie, warum kein Deadlock eintreten kann, wenn eine solche Bedingung nicht 39 -vorliegt. 40 - 41 -Was ist ein Spooler? Nennen Sie ein Beispiel für einen Einsatz. 42 - 43 -(5‘) Wozu dienen Prüfsbits? 44 - 45 -(10‘) Was beschreibt die Hamming-Distanz? 46 - 47 -Wie groß muss die Hammingdistanz wenigstens sein, um Ein-Bit-Fehler zu erkennen? 48 - 49 -Was ist ein Frame im Kontext der unteren zwei ISO-OSI-Layer? 50 - 51 -(10‘) Aloha ist das wohl bekannteste ein Multiple-Access (MA) Verfahren: Mehrere Geräte greifen gleichzeitig auf das gleiche Medium zur Datenübertragung zu. MA-Verfahren wurden um die Fähigkeit Carrier-Sense und damit zu CSMA Verfahren erweitert. Beschreiben Sie diese Erweiterung und wozu sie dient! 52 -- erkennt ob das Medium in Nutzung ist 53 -- erlaubt damit das Warten des Sendens und verringert damit die Wahrscheinlichkeit der Kollision 54 -- erlaubt Erkennung von Kollisionen und damit eine mögliche Reaktion 55 - 56 -Es gibt Varianten mit Kollisionen im Layer 2 umzugehen: 57 -Ignorieren, Collission Detection (CD) und Collision Avoidance (CA). 58 -Beschreiben Sie wahlweise CSMA/CD oder CSMA/CA. Nennen Sie eine Einsatzgebiet. 59 - 60 -Beschreiben Sie ein|e [Hub | Bridge | Repeater | Switch], ordnen Sie diese Infrastrukturelemente einem 61 -OSI-Layer zu und begründen Sie diese Zuordnung! 62 - 63 -(15‘) Wozu dient das Address-Resolution-Protocol (ARP)? Beschreiben Sie wie es funktioniert? 64 -- Zuweisung einer logische (Layer3) Adresse zu Rechnern. 65 -- ARP erlaubt diese Rechner innerhalb eines Layer 2 Netzes zu finden. 66 -- Sendet BC und wartet auf Antwort 67 - 68 -(10‘) Was ist das Internet? 69 -- weltweiter Verbund von Layer3-Routern. 70 - 71 -Der OSI-Layer 3 kann prinzipiell auf zwei Arten realisiert werden: Virtual Circuit oder 72 -Datagramm. Beschreiben Sie ein Verfahren. 73 -Welcher Klasse kann man das Internet Protocol (IP) zuordnen? 74 - 75 -(10‘) Welche Aufgaben hat ein Layer-3 Router? 76 -- Entscheidung, wohin ein Paket gesendet werden soll - in das Layer2 Netz oder weiter routen? 77 -- Zusatz: Adaption an die Netzauslastung. 78 - 79 -TCP realisiert zwei Arten der Flusskontrolle: 1) Die Geschwindigkeit in die beiden 80 -Anwendungen Daten in den Layer 3 sende und 2) es passt die Datenmenge 81 -an den aktuellen Durchsatz des Layer 3 Netzes an. Beschreiben wie eine der Varianten realisiert wird. 82 - 83 - 84 - 85 - 86 - 87 -
- ThreadTemplate.zip
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze - Size
-
... ... @@ -1,1 +1,0 @@ 1 -7.9 KB - Content
- Confluence.Code.ConfluencePageClass[0]
-
- id
-
... ... @@ -1,1 +1,1 @@ 1 - 1393996641 +228589812 - url
-
... ... @@ -1,1 +1,1 @@ 1 -https://wiki.htw-berlin.de/spaces/fb4mobileapplicatio/pages/ 139399664/B23 Betriebssysteme und Netzwerke1 +https://wiki.htw-berlin.de/spaces/fb4mobileapplicatio/pages/228589812/B23 Betriebssysteme und Netzwerke
- XWiki.XWikiRights[0]
-
- allow
-
... ... @@ -1,1 +1,0 @@ 1 -Allow - levels
-
... ... @@ -1,1 +1,0 @@ 1 -edit - users
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.schwotze