SlideShare ist ein Scribd-Unternehmen logo
1 von 60
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.
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 Prozess
• Aufgabe 7 Concurrency
Aufgabe 1

• Schreiben Sie einen einfachen
  „Webbrowser“ in Java, mit dem man eine
  beliebige Webseite abrufen und den HTML-
  Code als Text anzeigen kann.
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){}
	    }
}
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.
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           0000 0001
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)

}                           }
Lösung
Airlines ::= INTEGER      Airlines ::= ENUMERATED
{                         {
     Lufthansa   (1)           Lufthansa   (1)
     AirFrance   (2)           AirFrance   (2)
     KoreanAir   (3)           KoreanAir   (3)
     ProfBeckAir (27)          ProfBeckAir (27)

}                         }
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)
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
                          }
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
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       }
}
Andere Schreibweisen
 {
     airline    "Lufthansa",
     flight     "1204",
     seats      { 320, 307 },
     airport    { origin "MHG", destination   "LAX" },
     crewsize   10
 }
Andere Schreibweisen
    {
        airline    "Lufthansa",
        flight     "1204",
        seats      { 320, 307 },
        airport    { origin "MHG", destination   "LAX" },
        crewsize   10
    }




{
Andere Schreibweisen
    {
            airline    "Lufthansa",
            flight     "1204",
            seats      { 320, 307 },
            airport    { origin "MHG", destination   "LAX" },
            crewsize   10
    }




{
        "Lufthansa", "1204", { 320, 307 }, { "MHG", "LAX" }, 10
Andere Schreibweisen
    {
            airline    "Lufthansa",
            flight     "1204",
            seats      { 320, 307 },
            airport    { origin "MHG", destination   "LAX" },
            crewsize   10
    }




{
        "Lufthansa", "1204", { 320, 307 }, { "MHG", "LAX" }, 10
}
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.
Lösung 5

   Passenger vom Typ SEQUENCE

   Name des Passenger
   Klasse unterschieden wird zwischen
   firstclass, businessclass, economyclass




   Sitzplatznummer
   }
Lösung 5

Passenger ::= SEQUENCE      Passenger vom Typ SEQUENCE

                            Name des Passenger
                            Klasse unterschieden wird zwischen
                            firstclass, businessclass, economyclass




                            Sitzplatznummer
                            }
Lösung 5

Passenger ::= SEQUENCE      Passenger vom Typ SEQUENCE
{
                            Name des Passenger
                            Klasse unterschieden wird zwischen
                            firstclass, businessclass, economyclass




                            Sitzplatznummer
                            }
Lösung 5

Passenger ::= SEQUENCE       Passenger vom Typ SEQUENCE
{
    name     IA5String,      Name des Passenger
                             Klasse unterschieden wird zwischen
                             firstclass, businessclass, economyclass




                             Sitzplatznummer
                             }
Lösung 5

Passenger ::= SEQUENCE       Passenger vom Typ SEQUENCE
{
    name     IA5String,      Name des Passenger
    class    ENUMERATED      Klasse unterschieden wird zwischen
                             firstclass, businessclass, economyclass




                             Sitzplatznummer
                             }
Lösung 5

Passenger ::= SEQUENCE       Passenger vom Typ SEQUENCE
{
    name     IA5String,      Name des Passenger
    class    ENUMERATED      Klasse unterschieden wird zwischen
                 {           firstclass, businessclass, economyclass




                             Sitzplatznummer
                             }
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
                                          }
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
                                           }
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
                                           }
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
                                           }
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
                                           }
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
}                                          }
Lösung 5 (Instanz)


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

Passenger ::= SEQUENCE



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

Passenger ::= SEQUENCE
{


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

Passenger ::= SEQUENCE
{
    name     IA5String,

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

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                            {
                                “Klaus”, 2, 14
                            }
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {          {
                                “Klaus”, 2, 14
                            }
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {                        {
                       firstclass   (1)       “Klaus”, 2, 14
                                          }
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {                         {
                       firstclass    (1)       “Klaus”, 2, 14
                       businessclass (2)   }
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {                         {
                       firstclass    (1)       “Klaus”, 2, 14
                       businessclass (2)   }
                       economyclass (3)
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {                         {
                       firstclass    (1)       “Klaus”, 2, 14
                       businessclass (2)   }
                       economyclass (3)
                 }
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {                         {
                       firstclass    (1)       “Klaus”, 2, 14
                       businessclass (2)   }
                       economyclass (3)
                 }
    seat     INTEGER
Lösung 5 (Instanz)

Passenger ::= SEQUENCE
{
    name     IA5String,
    class    ENUMERATED
                 {                         {
                       firstclass    (1)       “Klaus”, 2, 14
                       businessclass (2)   }
                       economyclass (3)
                 }
    seat     INTEGER
}
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?
Aufgabe 6
Lösung 6
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.
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.

Weitere ähnliche Inhalte

Andere mochten auch

Presbymergent Presentation - North Puget Sound Presbytery
Presbymergent Presentation - North Puget Sound PresbyteryPresbymergent Presentation - North Puget Sound Presbytery
Presbymergent Presentation - North Puget Sound PresbyterySeth Thomas
 
Presentatie 2010 02 28
Presentatie 2010 02 28Presentatie 2010 02 28
Presentatie 2010 02 28Duffelaar
 
MECO3602 2014 Week 3, Participatory Media and Convergence
MECO3602 2014 Week 3, Participatory Media and ConvergenceMECO3602 2014 Week 3, Participatory Media and Convergence
MECO3602 2014 Week 3, Participatory Media and ConvergenceUniversity of Sydney
 
üZleti KommunikáCió
üZleti KommunikáCióüZleti KommunikáCió
üZleti KommunikáCiókacsandineeva
 
Going Liturgical - North Puget Sound Presbytery Presentation
Going Liturgical - North Puget Sound Presbytery PresentationGoing Liturgical - North Puget Sound Presbytery Presentation
Going Liturgical - North Puget Sound Presbytery PresentationSeth Thomas
 

Andere mochten auch (8)

Surviving Hell
Surviving HellSurviving Hell
Surviving Hell
 
Tugas lplk
Tugas lplkTugas lplk
Tugas lplk
 
Presbymergent Presentation - North Puget Sound Presbytery
Presbymergent Presentation - North Puget Sound PresbyteryPresbymergent Presentation - North Puget Sound Presbytery
Presbymergent Presentation - North Puget Sound Presbytery
 
Tutorium 4
Tutorium 4Tutorium 4
Tutorium 4
 
Presentatie 2010 02 28
Presentatie 2010 02 28Presentatie 2010 02 28
Presentatie 2010 02 28
 
MECO3602 2014 Week 3, Participatory Media and Convergence
MECO3602 2014 Week 3, Participatory Media and ConvergenceMECO3602 2014 Week 3, Participatory Media and Convergence
MECO3602 2014 Week 3, Participatory Media and Convergence
 
üZleti KommunikáCió
üZleti KommunikáCióüZleti KommunikáCió
üZleti KommunikáCió
 
Going Liturgical - North Puget Sound Presbytery Presentation
Going Liturgical - North Puget Sound Presbytery PresentationGoing Liturgical - North Puget Sound Presbytery Presentation
Going Liturgical - North Puget Sound Presbytery Presentation
 

Tutorium 4

  • 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.
  • 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?
  • 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.

Hinweis der Redaktion