Tutorium #4
                         26.4. bzw. 3.5.




       c.deckert@me.com | twitter.com/cdeckert
Bei dieser Ausarbe...
tr.im/wifotut
Agenda
• Aufgabe 1 HTTP
• Aufgabe 2 Big/Little Endian
• Aufgabe 3 ASN.1
• Aufgabe 4 ASN.1
• Aufgabe 5 ASN.1
• Aufgabe 6 Pr...
Aufgabe 1

• Schreiben Sie einen einfachen
  „Webbrowser“ in Java, mit dem man eine
  beliebige Webseite abrufen und den H...
1 LÖSUNG

import   java.io.BufferedReader;
import   java.io.InputStreamReader;
import   java.net.URL;
import   java.net.UR...
Aufgabe 2

• Die Zahl 17254129 wird als 32-Bit-Wort
  im Hauptspeicher abgelegt. Tragen Sie die
  zugehörige Speicherlayou...
Lösung 2


• 17254129 =
  0000 0001 0000 0111 0100 0110 1111
  0001
Big Endian
1. Byte          0000 0001

2. Byte          0000 0111

3. Byte          0100 0110

4. Byte          1111 0001
Little Endian
1. Byte           1111 0001

2. Byte           0100 0110

3. Byte           0000 0111

4. Byte           000...
Aufgabe 3
    • Beschreiben Sie den Unterschied zwischen
      den beiden folgenden Repräsentationen.


Airlines ::= INTEG...
Lösung
Airlines ::= INTEGER      Airlines ::= ENUMERATED
{                         {
     Lufthansa   (1)           Luftha...
Lösung
Airlines ::= INTEGER      Airlines ::= ENUMERATED
{                         {
     Lufthansa   (1)           Luftha...
Aufgabe 4
                          Flight ::= SEQUENCE

   Geben Sie eine         {
                                airli...
Lösung 4
Flight ::= SEQUENCE
{
      airline   IA5String,
      flight    NumericString,
      seats     SEQUENCE
        ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,
      flight    N...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Lösung 4
Flight ::= SEQUENCE
{                                              {
      airline   IA5String,                  ...
Andere Schreibweisen
 {
     airline    "Lufthansa",
     flight     "1204",
     seats      { 320, 307 },
     airport   ...
Andere Schreibweisen
    {
        airline    "Lufthansa",
        flight     "1204",
        seats      { 320, 307 },
   ...
Andere Schreibweisen
    {
            airline    "Lufthansa",
            flight     "1204",
            seats      { 320...
Andere Schreibweisen
    {
            airline    "Lufthansa",
            flight     "1204",
            seats      { 320...
Aufgabe 5

• Nehmen Sie an, dass Passenger vom Typ
  SEQUENCE ist und die folgenden Elemente
  hat: name, class, seat. (Na...
Lösung 5

   Passenger vom Typ SEQUENCE

   Name des Passenger
   Klasse unterschieden wird zwischen
   firstclass, busine...
Lösung 5

Passenger ::= SEQUENCE      Passenger vom Typ SEQUENCE

                            Name des Passenger
         ...
Lösung 5

Passenger ::= SEQUENCE      Passenger vom Typ SEQUENCE
{
                            Name des Passenger
        ...
Lösung 5

Passenger ::= SEQUENCE       Passenger vom Typ SEQUENCE
{
    name     IA5String,      Name des Passenger
      ...
Lösung 5

Passenger ::= SEQUENCE       Passenger vom Typ SEQUENCE
{
    name     IA5String,      Name des Passenger
    cl...
Lösung 5

Passenger ::= SEQUENCE       Passenger vom Typ SEQUENCE
{
    name     IA5String,      Name des Passenger
    cl...
Lösung 5

Passenger ::= SEQUENCE                    Passenger vom Typ SEQUENCE
{
    name     IA5String,                  ...
Lösung 5

Passenger ::= SEQUENCE                     Passenger vom Typ SEQUENCE
{
    name     IA5String,                 ...
Lösung 5

Passenger ::= SEQUENCE                     Passenger vom Typ SEQUENCE
{
    name     IA5String,                 ...
Lösung 5

Passenger ::= SEQUENCE                     Passenger vom Typ SEQUENCE
{
    name     IA5String,                 ...
Lösung 5

Passenger ::= SEQUENCE                     Passenger vom Typ SEQUENCE
{
    name     IA5String,                 ...
Lösung 5

Passenger ::= SEQUENCE                     Passenger vom Typ SEQUENCE
{
    name     IA5String,                 ...
Lösung 5 (Instanz)


             {
                 “Klaus”, 2, 14
             }
Lösung 5 (Instanz)

Passenger ::= SEQUENCE



                            {
                                “Klaus”, 2, 14...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{


                            {
                                “Klaus”, 2, 1...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,

                            {
                      ...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                            {...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {          {...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {           ...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {           ...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {           ...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {           ...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {           ...
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {           ...
Aufgabe 6
• Auf dem folgenden Bild aus der Vorlesung
  sind drei mögliche Stati für Prozesse
  aufgeführt.
• Obwohl dies s...
Aufgabe 6
Lösung 6
Lösung 6
•    Der Übergang von blocked nach running
    ist denkbar.
• Wenn ein Prozess blockiert ist, weil er auf
    ein...
Lösung 6

• Der andere Übergang ist nicht möglich. Ein
  Prozess der ready ist, kann nichts tun, was
  ihn blockieren kann...
Upcoming SlideShare
Loading in...5
×

Tutorium 4

266
-1

Published on

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

  • Be the first to like this

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

No notes for slide























































  • Tutorium 4

    1. 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. 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); } }catch(Exception e){} } }
    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 Airlines ::= ENUMERATED { { Lufthansa (1) Lufthansa (1) AirFrance (2) AirFrance (2) KoreanAir (3) KoreanAir (3) ProfBeckAir (27) ProfBeckAir (27) } }
    11. 11. Lösung Airlines ::= INTEGER Airlines ::= ENUMERATED { { Lufthansa (1) Lufthansa (1) AirFrance (2) AirFrance (2) KoreanAir (3) KoreanAir (3) ProfBeckAir (27) ProfBeckAir (27) } }
    12. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 27. Andere Schreibweisen { airline "Lufthansa", flight "1204", seats { 320, 307 }, airport { origin "MHG", destination "LAX" }, crewsize 10 }
    28. 28. Andere Schreibweisen { airline "Lufthansa", flight "1204", seats { 320, 307 }, airport { origin "MHG", destination "LAX" }, crewsize 10 } {
    29. 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. 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. 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. 32. Lösung 5 Passenger vom Typ SEQUENCE Name des Passenger Klasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer }
    33. 33. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE Name des Passenger Klasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer }
    34. 34. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { Name des Passenger Klasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer }
    35. 35. Lösung 5 Passenger ::= SEQUENCE Passenger vom Typ SEQUENCE { name IA5String, Name des Passenger Klasse unterschieden wird zwischen firstclass, businessclass, economyclass Sitzplatznummer }
    36. 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. 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. 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. 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. 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. 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. 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. 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. 44. Lösung 5 (Instanz) { “Klaus”, 2, 14 }
    45. 45. Lösung 5 (Instanz) Passenger ::= SEQUENCE { “Klaus”, 2, 14 }
    46. 46. Lösung 5 (Instanz) Passenger ::= SEQUENCE { { “Klaus”, 2, 14 }
    47. 47. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, { “Klaus”, 2, 14 }
    48. 48. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { “Klaus”, 2, 14 }
    49. 49. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { “Klaus”, 2, 14 }
    50. 50. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 }
    51. 51. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) }
    52. 52. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) } economyclass (3)
    53. 53. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) } economyclass (3) }
    54. 54. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) } economyclass (3) } seat INTEGER
    55. 55. Lösung 5 (Instanz) Passenger ::= SEQUENCE { name IA5String, class ENUMERATED { { firstclass (1) “Klaus”, 2, 14 businessclass (2) } economyclass (3) } seat INTEGER }
    56. 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. 57. Aufgabe 6
    58. 58. Lösung 6
    59. 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. 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.
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×