Tutorium 4

548 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
548
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Tutorium 4

  1. 1. Tutorium #4 26.4. bzw. 3.5. Bei dieser Ausarbeitung handelt es sich um keine offizielle Lösung des Lehrstuhls. Dies sind nur Lösungsansätze, welche keinen Anspruch auf Korrektheit oder Vollständigkeit erheben. c.deckert@me.com | twitter.com/cdeckert
  2. 2. tr.im/wifotut
  3. 3. Agenda • Aufgabe 1 HTTP • Aufgabe 2 Big/Little Endian • Aufgabe 3 ASN.1 • Aufgabe 4 ASN.1 • Aufgabe 5 ASN.1 • Aufgabe 6 Prozess • Aufgabe 7 Concurrency
  4. 4. Aufgabe 1 • Schreiben Sie einen einfachen „Webbrowser“ in Java, mit dem man eine beliebige Webseite abrufen und den HTML- Code als Text anzeigen kann.
  5. 5. 1 Lösung import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class Browser { public static void main(String[] args) { try{ URL url = new URL("http://bubblebase.net:80"); URLConnection conn = url.openConnection(); conn.setDoOutput(true); BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while((line = rd.readLine()) != null){ System.out.println(line);
  6. 6. Aufgabe 2 • Die Zahl 17254129 wird als 32-Bit-Wort im Hauptspeicher abgelegt.Tragen Sie die zugehörige Speicherlayout jeweils im Big Endian und Little Endian Format in die entsprechenden Tabellen ein.
  7. 7. Lösung 2 • 17254129 = 0000 0001 0000 0111 0100 0110 1111 0001
  8. 8. Big Endian 1. Byte 0000 0001 2. Byte 0000 0111 3. Byte 0100 0110 4. Byte 1111 0001
  9. 9. Little Endian 1. Byte 1111 0001 2. Byte 0100 0110 3. Byte 0000 0111 4. Byte 0000 0001
  10. 10. Aufgabe 3 • Beschreiben Sie den Unterschied zwischen den beiden folgenden Repräsentationen. Airlines ::= INTEGER { Lufthansa (1) AirFrance (2) KoreanAir (3) ProfBeckAir (27) } Airlines ::= ENUMERATED { Lufthansa (1) AirFrance (2) KoreanAir (3) ProfBeckAir (27) }
  11. 11. Lösung • Links Airline ist Integer / Namen für spezielle Werte (Werte wie 204 denkbar) • Rechts kann nur Werte annehmen, die mit “Worten” verknüpft sind. (1,2,3, 27) Airlines ::= INTEGER { Lufthansa (1) AirFrance (2) KoreanAir (3) ProfBeckAir (27) } Airlines ::= ENUMERATED { Lufthansa (1) AirFrance (2) KoreanAir (3) ProfBeckAir (27) }
  12. 12. Aufgabe 4 Flight ::= SEQUENCE { airline IA5String, flight NumericString, seats SEQUENCE { maximum INTEGER, occupied INTEGER, }, airport SEQUENCE { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE } Geben Sie eine gültige Instanz für die folgende Sequenz an:
  13. 13. Lösung 4 Flight ::= SEQUENCE { airline IA5String, flight NumericString, seats SEQUENCE { maximum INTEGER, occupied INTEGER, }, airport SEQUENCE { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE } { airline "Lufthansa", flight "1204", seats { 320, 307 }, airport { origin "MHG", destination "LAX" }, crewsize 10 } }
  14. 14. Andere Schreibweisen { airline "Lufthansa", flight "1204", seats { 320, 307 }, airport { origin "MHG", destination "LAX" }, crewsize 10} { "Lufthansa", "1204", { 320, 307 }, { "MHG", "LAX" }, 10}
  15. 15. Aufgabe 5 • Nehmen Sie an, dass Passenger vom Typ SEQUENCE ist und die folgenden Elemente hat: name, class, seat. (Name des Passagiers, Beförderungsklasse und Sitznummer). Schreiben Sie eine ASN.1 Notation für Passenger. Geben Sie eine gültige Instanz von Passenger an.
  16. 16. Lösung 5 Passenger ::= SEQUENCE{ name IA5String, class ENUMERATED { firstclass (1) businessclass (2) economyclass (3) } seat INTEGER} Passenger vom Typ SEQUENCE Name des PassengerKlasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer}
  17. 17. Lösung 5 (Instanz) Passenger ::= SEQUENCE{ name IA5String, class ENUMERATED { firstclass (1) businessclass (2) economyclass (3) } seat INTEGER} { “Klaus”, 2, 14}
  18. 18. Aufgabe 6 • Auf dem folgenden Bild aus derVorlesung sind drei mögliche Stati für Prozesse aufgeführt. • Obwohl dies sechs mögliche Übergänge impliziert, sind nur vier Übergange angegeben. • Gibt es Umstände unter denen die fehlenden zwei Übergänge denkbar sind?
  19. 19. Aufgabe 6
  20. 20. Lösung 6
  21. 21. Lösung 6 • Der Übergang von blocked nach running ist denkbar. • Wenn ein Prozess blockiert ist, weil er auf eine Ein- oder Ausgabe wartet und die CPU sonst nichts zu tun hat, so kann der Prozess direkt von blocked in running übergehen, sobald die Ein- bzw.Ausgabe beendet ist.
  22. 22. Lösung 6 • Der andere Übergang ist nicht möglich. Ein Prozess der ready ist, kann nichts tun, was ihn blockieren kann. Nur ein laufender Prozess kann blockieren.

×