SlideShare a Scribd company logo
1 of 22
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
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);
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
{
Lufthansa (1)
AirFrance (2)
KoreanAir (3)
ProfBeckAir (27)
}
Airlines ::= ENUMERATED
{
Lufthansa (1)
AirFrance (2)
KoreanAir (3)
ProfBeckAir (27)
}
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)
}
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:
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
}
}
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 ::= 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}
Lösung 5 (Instanz)
Passenger ::= SEQUENCE{ name
IA5String, class ENUMERATED
{ firstclass
(1) businessclass
(2) economyclass
(3) } seat
INTEGER}
{ “Klaus”, 2, 14}
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?
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.

More Related Content

Viewers also liked

Entwurf einer Enterprise 2.0- Organisationsarchitektur
Entwurf einer Enterprise 2.0- OrganisationsarchitekturEntwurf einer Enterprise 2.0- Organisationsarchitektur
Entwurf einer Enterprise 2.0- Organisationsarchitektur
Communardo Software GmbH
 
Aviación comercial
Aviación comercialAviación comercial
Aviación comercial
satsestv
 
Ofertas y funcionalidades - Analisis 12 Aerolineas internacionales
Ofertas y funcionalidades - Analisis 12 Aerolineas internacionalesOfertas y funcionalidades - Analisis 12 Aerolineas internacionales
Ofertas y funcionalidades - Analisis 12 Aerolineas internacionales
Arquinauta Consulting
 
Cib Steinke 09 09 19
Cib Steinke 09 09 19Cib Steinke 09 09 19
Cib Steinke 09 09 19
aloahe2
 
Educação fisica
Educação fisicaEducação fisica
Educação fisica
147856
 
Taller transporte 21010102201
Taller transporte 21010102201Taller transporte 21010102201
Taller transporte 21010102201
paula salazar
 

Viewers also liked (18)

Entwurf einer Enterprise 2.0- Organisationsarchitektur
Entwurf einer Enterprise 2.0- OrganisationsarchitekturEntwurf einer Enterprise 2.0- Organisationsarchitektur
Entwurf einer Enterprise 2.0- Organisationsarchitektur
 
Grenzenlose freiheit
Grenzenlose freiheitGrenzenlose freiheit
Grenzenlose freiheit
 
Relacionamento Agencias x Clientes
Relacionamento Agencias x ClientesRelacionamento Agencias x Clientes
Relacionamento Agencias x Clientes
 
SPICE MODEL of 2SC6077 in SPICE PARK
SPICE MODEL of 2SC6077 in SPICE PARKSPICE MODEL of 2SC6077 in SPICE PARK
SPICE MODEL of 2SC6077 in SPICE PARK
 
Aviación comercial
Aviación comercialAviación comercial
Aviación comercial
 
Erste Bank und ihre Entwicklung
Erste Bank und ihre EntwicklungErste Bank und ihre Entwicklung
Erste Bank und ihre Entwicklung
 
j
jj
j
 
Ofertas y funcionalidades - Analisis 12 Aerolineas internacionales
Ofertas y funcionalidades - Analisis 12 Aerolineas internacionalesOfertas y funcionalidades - Analisis 12 Aerolineas internacionales
Ofertas y funcionalidades - Analisis 12 Aerolineas internacionales
 
Cib Steinke 09 09 19
Cib Steinke 09 09 19Cib Steinke 09 09 19
Cib Steinke 09 09 19
 
Slipe 2013
Slipe 2013Slipe 2013
Slipe 2013
 
Generator Hostels Fakten.pdf
Generator Hostels Fakten.pdfGenerator Hostels Fakten.pdf
Generator Hostels Fakten.pdf
 
Educação fisica
Educação fisicaEducação fisica
Educação fisica
 
Reputation p leroux_bio_qc_2014
Reputation p leroux_bio_qc_2014Reputation p leroux_bio_qc_2014
Reputation p leroux_bio_qc_2014
 
Intermarket-Analyse (Seminarwochenende - Amsterdam 28-30.09.2012)
Intermarket-Analyse (Seminarwochenende - Amsterdam 28-30.09.2012)Intermarket-Analyse (Seminarwochenende - Amsterdam 28-30.09.2012)
Intermarket-Analyse (Seminarwochenende - Amsterdam 28-30.09.2012)
 
Taller transporte 21010102201
Taller transporte 21010102201Taller transporte 21010102201
Taller transporte 21010102201
 
Como vender na internet e vencer as grandes lojas.
Como vender na internet e vencer as grandes lojas. Como vender na internet e vencer as grandes lojas.
Como vender na internet e vencer as grandes lojas.
 
Referenzen j&c
Referenzen j&cReferenzen j&c
Referenzen j&c
 
Bel Air
Bel AirBel Air
Bel Air
 

Similar to Tutorium 4

Workshop: Besseres C#
Workshop: Besseres C#Workshop: Besseres C#
Workshop: Besseres C#
Rainer Stropek
 

Similar to Tutorium 4 (20)

Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010
 
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
 
Tutorium 4
Tutorium 4Tutorium 4
Tutorium 4
 
Tutorium 4
Tutorium 4Tutorium 4
Tutorium 4
 
Webapplikationen mit Node.js
Webapplikationen mit Node.jsWebapplikationen mit Node.js
Webapplikationen mit Node.js
 
SOLID Prinzipien, Designgrundlagen objektorientierter Systeme
SOLID Prinzipien, Designgrundlagen objektorientierter SystemeSOLID Prinzipien, Designgrundlagen objektorientierter Systeme
SOLID Prinzipien, Designgrundlagen objektorientierter Systeme
 
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeGo - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
 
Workshop: Besseres C#
Workshop: Besseres C#Workshop: Besseres C#
Workshop: Besseres C#
 
Modern angular 02_angular_mit_type_script
Modern angular 02_angular_mit_type_scriptModern angular 02_angular_mit_type_script
Modern angular 02_angular_mit_type_script
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1
 
jQuery & CouchDB - Die zukünftige Webentwicklung?
jQuery & CouchDB - Die zukünftige Webentwicklung?jQuery & CouchDB - Die zukünftige Webentwicklung?
jQuery & CouchDB - Die zukünftige Webentwicklung?
 
Java und Go im Vergleich
Java und Go im VergleichJava und Go im Vergleich
Java und Go im Vergleich
 
Malte Wessel - Google web toolkit
Malte Wessel - Google web toolkitMalte Wessel - Google web toolkit
Malte Wessel - Google web toolkit
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Skalierbare Anwendungen mit Google Go
Skalierbare Anwendungen mit Google GoSkalierbare Anwendungen mit Google Go
Skalierbare Anwendungen mit Google Go
 
Forms Community Server
Forms Community ServerForms Community Server
Forms Community Server
 
Einsteiger Workshop
Einsteiger WorkshopEinsteiger Workshop
Einsteiger Workshop
 
JavaServer Faces - Ein schneller Schnelleinstieg
JavaServer Faces - Ein schneller SchnelleinstiegJavaServer Faces - Ein schneller Schnelleinstieg
JavaServer Faces - Ein schneller Schnelleinstieg
 
Codesmells
CodesmellsCodesmells
Codesmells
 

Tutorium 4

  • 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
  • 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);
  • 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 { Lufthansa (1) AirFrance (2) KoreanAir (3) ProfBeckAir (27) } Airlines ::= ENUMERATED { Lufthansa (1) AirFrance (2) KoreanAir (3) ProfBeckAir (27) }
  • 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. 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. 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. Andere Schreibweisen { airline "Lufthansa", flight "1204", seats { 320, 307 }, airport { origin "MHG", destination "LAX" }, crewsize 10} { "Lufthansa", "1204", { 320, 307 }, { "MHG", "LAX" }, 10}
  • 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. 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. Lösung 5 (Instanz) Passenger ::= SEQUENCE{ name IA5String, class ENUMERATED { firstclass (1) businessclass (2) economyclass (3) } seat INTEGER} { “Klaus”, 2, 14}
  • 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?
  • 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. 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.