Your SlideShare is downloading. ×
0
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Tutorium 4
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tutorium 4

241

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
241
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide























































  • Transcript

    • 1. Tutorium #4 26.4. bzw. 3.5. c.deckert@me.com | twitter.com/cdeckert 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.
    • 2. tr.im/wifotut
    • 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. 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. 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); } }catch(Exception e){} } }
    • 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. Lösung 2 • 17254129 = 0000 0001 0000 0111 0100 0110 1111 0001
    • 8. Big Endian 1. Byte 0000 0001 2. Byte 0000 0111 3. Byte 0100 0110 4. Byte 1111 0001
    • 9. Little Endian 1. Byte 1111 0001 2. Byte 0100 0110 3. Byte 0000 0111 4. Byte 0000 0001
    • 10. Aufgabe 3 • Beschreiben Sie den Unterschied zwischen den beiden folgenden Repräsentationen. Airlines ::= INTEGER Airlines ::= ENUMERATED { { Lufthansa (1) Lufthansa (1) AirFrance (2) AirFrance (2) KoreanAir (3) KoreanAir (3) ProfBeckAir (27) ProfBeckAir (27) } }
    • 11. Lösung Airlines ::= INTEGER Airlines ::= ENUMERATED { { Lufthansa (1) Lufthansa (1) AirFrance (2) AirFrance (2) KoreanAir (3) KoreanAir (3) ProfBeckAir (27) ProfBeckAir (27) } }
    • 12. Lösung Airlines ::= INTEGER Airlines ::= ENUMERATED { { Lufthansa (1) Lufthansa (1) AirFrance (2) AirFrance (2) KoreanAir (3) KoreanAir (3) ProfBeckAir (27) ProfBeckAir (27) } } • 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)
    • 13. Aufgabe 4 Flight ::= SEQUENCE Geben Sie eine { airline IA5String, flight NumericString, gültige Instanz für die seats SEQUENCE { folgende Sequenz an: maximum INTEGER, occupied INTEGER, }, airport SEQUENCE { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 14. 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 }
    • 15. 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 }
    • 16. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", 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 }
    • 17. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE { maximum INTEGER, occupied INTEGER, }, airport SEQUENCE { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 18. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE seats { { maximum INTEGER, occupied INTEGER, }, airport SEQUENCE { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 19. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE seats { { 320, maximum INTEGER, occupied INTEGER, }, airport SEQUENCE { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 20. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE seats { { 320, maximum INTEGER, 307 occupied INTEGER, }, airport SEQUENCE { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 21. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE seats { { 320, maximum INTEGER, 307 occupied INTEGER, }, }, airport SEQUENCE { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 22. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE seats { { 320, maximum INTEGER, 307 occupied INTEGER, }, }, airport { origin "MHG", airport SEQUENCE { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 23. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE seats { { 320, maximum INTEGER, 307 occupied INTEGER, }, }, airport { origin "MHG", airport SEQUENCE destination "LAX" { origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 24. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE seats { { 320, maximum INTEGER, 307 occupied INTEGER, }, }, airport { origin "MHG", airport SEQUENCE destination "LAX" { }, origin IA5String, destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 25. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE seats { { 320, maximum INTEGER, 307 occupied INTEGER, }, }, airport { origin "MHG", airport SEQUENCE destination "LAX" { }, origin IA5String, crewsize 10 destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE }
    • 26. Lösung 4 Flight ::= SEQUENCE { { airline IA5String, airline "Lufthansa", flight NumericString, flight "1204", seats SEQUENCE seats { { 320, maximum INTEGER, 307 occupied INTEGER, }, }, airport { origin "MHG", airport SEQUENCE destination "LAX" { }, origin IA5String, crewsize 10 destination IA5String }, crewsize ENUMERATED { six (6), eight (8), ten (10) }, cancel BOOLEAN DEFAULT FALSE } }
    • 27. Andere Schreibweisen { airline "Lufthansa", flight "1204", seats { 320, 307 }, airport { origin "MHG", destination "LAX" }, crewsize 10 }
    • 28. Andere Schreibweisen { airline "Lufthansa", flight "1204", seats { 320, 307 }, airport { origin "MHG", destination "LAX" }, crewsize 10 } {
    • 29. Andere Schreibweisen { airline "Lufthansa", flight "1204", seats { 320, 307 }, airport { origin "MHG", destination "LAX" }, crewsize 10 } { "Lufthansa", "1204", { 320, 307 }, { "MHG", "LAX" }, 10
    • 30. Andere Schreibweisen { airline "Lufthansa", flight "1204", seats { 320, 307 }, airport { origin "MHG", destination "LAX" }, crewsize 10 } { "Lufthansa", "1204", { 320, 307 }, { "MHG", "LAX" }, 10 }
    • 31. 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.
    • 32. Lösung 5 Passenger vom Typ SEQUENCE Name des Passenger Klasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer }
    • 33. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE Name des Passenger Klasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer }
    • 34. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { Name des Passenger Klasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer }
    • 35. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger Klasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer }
    • 36. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger class ENUMERATED Klasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer }
    • 37. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger class ENUMERATED Klasse unterschieden wird zwischen { firstclass, businessclass, economyclass Sitzplatznummer }
    • 38. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger class ENUMERATED Klasse unterschieden wird zwischen { firstclass, businessclass, economyclass firstclass (1) Sitzplatznummer }
    • 39. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger class ENUMERATED Klasse unterschieden wird zwischen { firstclass, businessclass, economyclass firstclass (1) businessclass (2) Sitzplatznummer }
    • 40. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger class ENUMERATED Klasse unterschieden wird zwischen { firstclass, businessclass, economyclass firstclass (1) businessclass (2) economyclass (3) Sitzplatznummer }
    • 41. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger class ENUMERATED Klasse unterschieden wird zwischen { firstclass, businessclass, economyclass firstclass (1) businessclass (2) economyclass (3) } Sitzplatznummer }
    • 42. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger class ENUMERATED Klasse unterschieden wird zwischen { firstclass, businessclass, economyclass firstclass (1) businessclass (2) economyclass (3) } seat INTEGER Sitzplatznummer }
    • 43. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger class ENUMERATED Klasse unterschieden wird zwischen { firstclass, businessclass, economyclass firstclass (1) businessclass (2) economyclass (3) } seat INTEGER Sitzplatznummer } }
    • 44. Lösung 5 (Instanz) { “Klaus”, 2, 14 }
    • 45. Lösung 5 (Instanz) Passenger ::= SEQUENCE { “Klaus”, 2, 14 }
    • 46. Lösung 5 (Instanz) Passenger ::= SEQUENCE { { “Klaus”, 2, 14 }
    • 47. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, { “Klaus”, 2, 14 }
    • 48. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { “Klaus”, 2, 14 }
    • 49. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { “Klaus”, 2, 14 }
    • 50. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 }
    • 51. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) }
    • 52. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) } economyclass (3)
    • 53. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) } economyclass (3) }
    • 54. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) } economyclass (3) } seat INTEGER
    • 55. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) } economyclass (3) } seat INTEGER }
    • 56. Aufgabe 6 • Auf dem folgenden Bild aus der Vorlesung 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?
    • 57. Aufgabe 6
    • 58. Lösung 6
    • 59. 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.
    • 60. 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.

    ×