Adressierung
Bei unseren Experimenten mit dem Bus sind wir auf folgendes Problem gestoßen: Die Bitfolge, die ein Rechner sendet, wird von allen anderen Rechnern am Bus empfangen. Wie erkennen die Rechner, für welchen Empfänger die Bitfolge bestimmt ist?
Aufgabe 1
Ein ähnliches Problem kann tritt auch bei der Kommunikation zwischen mehreren Personen auf: Anna, Bernd, Christian und Diana sitzen an einem Tisch. Anna möchte mit Christian ins Kino gehen. Sie fragt: „Möchtest du mit mir ins Kino gehen?“ Christian antwortet nicht.(a) Begründe, weshalb Christian nicht antwortet.
(b) Formuliere Annas Aussage, so dass Christian erkennt, dass er angesprochen wird.
Wir das Problem, indem wir jedem Rechner am Bus einen Namen zuweisen. Diesen Namen nennen wir Adresse. Da wir auf dem Bus lediglich die Werte 0 und 1 übertragen können, verwenden wir Binärzahlen mit 4 Bit als Adressen. Diese Binärzahlen können wir auch im Zehnersystem angeben:
Wir erweitern unser Bitübertragungsprotokoll um die Adresse des Absenders und des Empfängers. Die gesamte Bitfolge, die ein Rechner sendet (einschließlich Adressen, Start- und Stoppbit und Paritätsbit), nennen wir Datenpaket (kurz: Paket). Das folgende Datenpaket wird von dem Rechner mit der Adresse 0000 an den Rechner mit der adresse 0010 gesendet. Es enthält die Bitfolge 0010 0001. Bei der Berechnung des Paritätsbits werden auch die Adressen berücksichtigt, das Start- und Stoppbit jedoch nicht.
Aufgabe 2
Anna, Bernd, Christian und Diana haben ihre Rechner über ein Buskabel verbunden. Sie haben folgende Adressen vereinbart:
Name | Adresse des Rechners |
---|---|
Anna | 0000 |
Bernd | 0001 |
Christian | 0010 |
Diana | 0011 |
(a) Anna möchte Bernd die Bitfolge 0011 1100 schicken. Gib das Paket an, das sie senden muss.
(b) Diana möchte Christian die Bitfolge 1100 1101 schicken. Gib das Paket an, das sie senden muss.
(c) Auf dem Bus werden die folgenden Pakete übertragen. Gib jeweils den Sender, den Empfänger und die Bitfolge an. Untersuche außerdem, ob es zu einem Übertragungsfehler gekommen ist. Wir gehen davon aus, das höchstens ein Bit verändert wurde.
- 1 0010 0001 10100101 1 0
- 1 0011 0000 11000010 0 0
Übertragen von Zeichenketten
Nun soll ein Buchstabe übertragen werden. Dazu muss der Buchstabe in eine Binärzahl umgewandelt werden. Mit dem Befehl ord('A') kannst in einem Python-Dialog die Unicode-Zahl zu deinem Zeichen ermitteln. Anschließend kann diese Zahl in eine Binärzahl umgewandelt werden. Dazu kannst du das folgende Tool benutzen Zahlensysteme umrechnen auf inf-schule verwenden. Mit dem Python-Befehl chr(65) kann die Unicode-Zahl wieder in ein Zeichen umgewandelt werden.
Aufgabe 3
(a) Bernd möchte Diana das Zeichen '?' schicken. Gib das Paket an, das Anna senden muss.
(b) Auf dem Bus wird das Paket folgende übertragen. Gib den Sender, den Empfänger und das übertragene Zeichen an.
1 0011 0000 00100001 0 0
Aufgabe 4
Nun möchte Christian den Text "Hi" an Anna übertragen.(a) Begründe, dass man für jedes Zeichen ein eigenes Paket benötigt.
(b) Gib die Pakete an, die Christian senden muss.
Aufgabe 5
(a) Auf dem Bus übertragen wir die Adresse des Senders und des Empfängers. Begründe, weshalb es sinnvoll ist, auch die Adresse des Senders zu übertragen.
(b) Begründe, weshalb Anna in Aufgabe 1 ihren Namen nicht übertragen musste.
Aufgabe 6 (schwierig)
Schreibe eine Python-Funktion, die einen Text, eine Absenderadresse und eine Empfängeradresse als Parameter erhält und den Text auf dem Bus sendet.
Aufgabe 7 (schwierig)
Schreibe ein Programm, das dauerhaft den Bus beobachtet. Falls ein Zeichen auf dem Bus übertragen wird, die für den Rechner, gedacht ist, soll das Programm das Zeichen ausgeben.