Grundlagen der Informatik III Winteremeter 2010/2011 Wolfgang Heene, Patrik Schmittat 8. Aufgabenblatt mit Löungvorchlag 10.01.2011 Hinwei: Der Schnelltet und die Aufgaben ollen in den Übunggruppen bearbeitet werden. Die Hauaufgaben ind in der Kalenderwoche 3 (17.01. bi 21.01.) bei den Tutoren in phyikalicher Form (handchriftlich oder gedruckt) abzugeben. Bei allen Abgaben it der Name de Tutor und die Übunggruppe deutlich anzugeben. Bei Teamabgaben wird nur eine Löung eingereicht, die alle Namen der Teammitglieder enthält. Schicken Sie Ihre Löungen von Programmieraufgaben zuätzlich zur chriftlichen Abgabe per E-Mail an Ihren Tutor. Kommentieren Sie Ihren Quellcode. Aufgabe 1: Schnelltet Fragen 1. Zur magnetichen Aufzeichnung werden 2. Die Leitungfähigkeit (Zugriffzeit) einer Fetplatte hängt von folgenden Faktoren ab. Antworten paramagnetiche Stoffe verwendet. diamagnetiche Stoffe verwendet. ferromagnetiche Stoffe verwendet. Such-Zeit Plattendurchmeer Rotationgechwindigkeit 3. PCM it ein Verfahren zur Kanalkodierung. 4. Wieviele Peudotetraden gibt e bei BCD-Zahlen? 5. Für einen 4-Bit Gray-Code gibt e nur eine einzig mögliche Kodierung. Übertragung-Zeit Ja Nein 4 5 6 7 Ja Nein Vielleicht 6. Mit einem Paritätbit laen ich 1 Bit Fehler erkennen. 7. Wie groß it die Hamming-Ditanze zwichen den beiden Code-Wörtern 00010100 und 00110100? 1 Bit Fehler beheben. 2 Bit Fehler erkennen. 0 1 2 4 Grundlagen der Informatik III - Winteremeter 2010/2011 1
Aufgabe 2: Fetplatten Bei den folgenden Berechnungen ollen, wie bei Fetplatten immernoch üblich, die SI-Voratzzeichen verwendet werden. Beipiel: kilo (k) k = 10 3 und nicht wie eigentlich richtig 2 10. a) Welche Kapazität (K) hat eine Fetplatte mit zwei Platten, 10000 Zylindern, durchchnittlich 400 Sektoren pro Spur und 512 Byte pro Sektor? K = 512 Byte 400 Sektoren Sektor Track K = 8.192.000.000 Byte 10000 Track Oberflaeche 2 Oberflaechen 2 Plat ten Plat te Dik b) Schätzen Sie die durchchnittliche Zugriffzeit auf einen Sektor für eine Fetplatte mit folgenden Parametern. Parameter Wert Umdrehungzahl 15.000 U/min T av geek 8 m Durchnittliche Anzahl Sektoren/Spur 500 Durchchnittliche Rotation-Latenz it T av g rotation = 1 2 T max rotation = 1 2 60 15.000 U/min 2 m 1, 000 m Die durchchnittliche Übertragung-Zeit it: T av g t ran f er = 60 15.000 U/min 1 500 ector/t rack 0, 008 m 1, 000 m Durchchnittliche Zugriffzeit it T acce = T av geek + T av grotation + T av g t ran f er = 8 m + 2 m + 0, 008 m 10 m Eine Solid State Dik (SSD) kann aufgrund der verwendeten Technologie (Floating Gate) nur eine betimmte Anzahl von Schreibzugriffen verarbeiten. Der Herteller garantiert da Schreiben von 1 Peta-Byte (10 15 Byte), bevor die SSD aufällt. Wie lange hält die SSD da Schreiben mit den folgenden Szenarien durch? Geben Sie die Dauer in Jahren an. Grundlagen der Informatik III - Winteremeter 2010/2011 2
c) Die SSD wird mit einer kontinuierlichen Datenrate von 170 MB/ gechrieben. Ein Peta-Byte ind 10 9 MB. Damit ergibt ich 10 9 (1/170) (1/(86.400 365)) 0, 2 Jahre d) Die SSD wird mit einer kontinuierlichen Datenrate von 14 MB/ gechrieben. Ein Peta-Byte ind 10 9 MB. Damit ergibt ich 10 9 (1/14) (1/(86.400 365)) 2, 25 Jahre e) Die SSD wird mit durchchnittlich 20 GB/Tag gechrieben. Ein Peta-Byte ind 10 9 MB. Damit ergibt ich 10 9 (1/20.000) (1/365)) 140 Jahre Aufgabe 3: Kodierung, Fehlererkennung und Fehlerkorrektur a) Ein Stereo-Audioignal wird mit 96 khz abgetatet. Die Quantiierung beträgt 24 Bit. Berechnen Sie Datenrate (D) in Byte pro Sekunde. D = 2 96.000/ 24 Bit = 4.608.000 Bi t/ = 576.000 B y te/ b) Betrachten Sie folgende Tabelle mit angegebenen Läng- und Querparitäten. Welche Paritätprüfung (odd, even) wird angewendet. Finden Sie da fehlerhafte Bit und korrigieren Sie e. Parität 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 Parität 1 0 0 0 0 0 1 0 0 Grundlagen der Informatik III - Winteremeter 2010/2011 3
E wird Even Parity verwenden. Parität 0 1 1 0 1 0 0 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 Parität 1 0 0 0 0 0 1 0 0 Im Folgenden wird da CRC-Verfahren betrachtet. E findet z. B. bei Ethernet Anwendung. Gegeben it folgende Generatorpolynom: G(x) = x 4 + x +1. Die zu übertragende (und zu ichernde) Information it 10111001. Der Sender hat darau (durch Polynomdiviion) die CRC 1001 berechnet. Die geendete Information hat alo die Form 10111001 1001. c) Durch Störungen auf dem Übertragungkanal (z. B. Bu) gibt e drei Fehler bei der Übertragung. Der Empfänger erhält folgende Information: 00101001 0001. Erkennt der Empfänger den Übertragungfehler? 00101001 0001 : 11110 11010 10010 11 Ret ungleich Null Übertragungfehler d) Durch andere Störungen auf dem Übertragungkanal gibt e drei andere Fehler bei der Übertragung. Der Empfänger erhält folgende Information: 00111011 0001. Erkennt der Empfänger den Übertragungfehler? 00111011 0001 : 11101 11100 11110 11010 0 Ret gleich Null Übertragungfehler nicht erkannt Grundlagen der Informatik III - Winteremeter 2010/2011 4
Hauaufgabe 1: Fetplatten (5 Punkte) Eine Firma möchte zum abendlichen Gechäftchlu die Daten auf der 100 MByte Fetplatte ihre PC ichern. Au Zeitgründen oll hierfür der Platteninhalt auf eine zweite, noch anzuchaffende, 100 MByte Fetplatte übertragen werden. Zur Auwahl tehen zwei gleichteure Platten: Platte A Platte B Kapazität 100 MByte 100 MByte Oberfläche 6 6 Zylinder 976 976 Sektoren/Spur 35 35 Byte/Sektor 512 512 Umdrehungzahl 3.600 U/min 4.500 U/min Tranferrate Mittlere Latenzzeit Maximale Latenzzeit Mittlere Poitionierungzeit 9 m 18 m Spur zu Spur 3 m 5 m a) Vervolltändigen Sie die Tabelle (Tranferrate, mittlere Latenzzeit, maximale Latenzzeit). Platte A Platte B Kapazität 100 MByte 100 MByte Oberfläche 6 6 Zylinder 976 976 Sektoren/Spur 35 35 Byte/Sektor 512 512 Umdrehungzahl 3.600 U/min 4.500 U/min Tranferrate 1,025 MByte/ 1,282 MByte/ Mittlere Latenzzeit 8,33 m 6,67 m Maximale Latenzzeit 16,67 m 13,33 m Mittlere Poitionierungzeit 9 m 18 m Spur zu Spur 3 m 5 m Zeiten baieren auf folgenden Überlegungen: Tranferrate: Platte A 35 Sektoren 512 Byte x Spur Sektor x 60 U = 1075200 Byte = 1, 025 MByte Platte B 35 Sektoren Spur 512 Byte x Sektor x 75 U = 1344000 Byte = 1, 282 MByte Mittlere Latenzzeit (halbe maximale Latenzzeit): Platte A 1 Platte B 2 1 2 60 x 1000 m x 3600 min U = x 60 x 1000 m x 4500 min U = x 60000 m 7200 U min 60000 m 9000 U min 8, 33 m 6, 67 m Grundlagen der Informatik III - Winteremeter 2010/2011 5
Die Berechnung der maximalen Latenzeit ergibt ich durch Multiplikation mit 2. b) Berechnen Sie die Zeiten, die zum Sichern benötigt werden. Mit welcher Platte it die Sicherung chneller durchgeführt? Platte A benötigt hierfür 113,8. Platte B 91,1. Die höhere Tranferrate von Platte B it hier vorteilhaft. Zeiten baieren auf folgenden Überlegungen: Wenn man nur davon augeht, da die Tranferrate der Fetplatte eine Rolle pielt, it klar, da Platte B chneller it. Allerding it auch zu beachten, da die Poitionierungzeit und die Zeit für da Wecheln der Spuren eine Rolle pielen. Folgende Flußdiagramm veranchaulicht den Leezugriff: Poitionieren Spur 1 Warten auf Sektor 1 Zylinder leen Warten auf Sektor 1 Spur 976 nein Spurwechel ja Ende Erläuterung: Neben der Tranferrate gibt e alo noch weitere Parameter, die berückichtigt werden müen. Man kann die Zeiten in folgender Tabelle zuammenfaen: Mittlere Poitionierungzeit 9 m 18 m Mittlere Latenzzeit 8,33 m 6,67 m Kapazität eine Zylinder/Tranferrate 100 m 80 m Spurwechel + Wartezeit = max. Latenzzeit 16,67 m 13,33 m Die Summe au 9 m + 8,33 m + (100 m x 975) + (16,67 m x 975) führt auf 113,8 für Platte A. Bei einer anderen Anwendung oll eine Platte für einen Multi-Uer-Betrieb eingeetzt werden. Mehrere Teilnehmer greifen abwechelnd auf die Platte zu. Im Mittel leen die Teilnehmer 1 kbyte große Blöcke von der Platte. Innerhalb eine olchen Zugriff it i. a. kein Spurwechel notwendig. c) Geben Sie den mittleren Zeitbedarf für 1.000 Zugriffe auf eine Platte al Gleichung an. Zeitbedarf für 1.000 zufällige Zugriffe auf 1 kbyte Blöcke: 1000 (mittlere Poitionierungzeit + mittlere Latenzzeit + 1 kbyte/tranferrate). d) Welche Werte ergeben ich für die Platten A und B? Platte A benötigt 18.25 und Platte B 25.46. Für diee Anwendung it Platte A aufgrund der kleineren Poitionierungzeit beer geeignet. Grundlagen der Informatik III - Winteremeter 2010/2011 6
Hauaufgabe 2: Fehlererkennung und Fehlerkorrektur (5 Punkte) a) Zur Sicherung einer Datenübertragung oll ein prüfbarer 4-Bit-Code verwendet werden. E kann davon augegangen werden, da auf der Übertragungtrecke nur ein 1-Bit-Fehler innerhalb eine Codeworte auftreten kann. Ein Codewort de 4-Bit-Code it bekannt. E lautet: 0000. Geben Sie alle Codewörter de 4-Bit-Code an. Beim Empfänger wird da fehlerhafte Datenwort 1110 empfangen. Au welchen Codewörtern könnte e durch einen 1-Bit-Fehler bei der Übertragung enttanden ein? Kann da fehlerhafte Datenwort korrigiert werden? Damit ein Code bei einem 1-Bit-Fehler prüfbar it, mu eine Mindet-Hamming-Ditanz D min 2 ein. Da da Codewort 0000 bekannt it, ind alle Datenwörter, die untereinander eine Hamming-Ditanz D 2 aufweien, al Codewörter zugelaen: 0000, 0011, 0101, 0110, 1001, 1010, 1100, 1111. Zwichen dieen Codewörtern ergibt ich damit eine Hamming-Ditanz D = 2 bzw. zwichen den Codewörtern 0000 und 1111 ogar D = 4. Da durch einen 1-Bit-Fehler verfälchte Datenwort 1110 it entweder au den zugelaenen Codewörtern 0110, 1010, 1100 durch eine Verfälchung der Ziffer 0 in die Ziffer 1 oder au dem zugelaenen Codewort 1111 durch eine Verfälchung der Ziffer 1 in die Ziffer 0 enttanden. Da fehlerhafte Datenwort 1110 kann auf Grund der Mindet-Hamming-Ditanz D min = 2 nicht korrigiert werden. Zur Korrektur it bei einem 1-Bit-Fehler eine Mindet- Hamming-Ditanz D min = 3 erforderlich. b) Zur Sicherung einer Datenübertragung oll ein 3-au-5-Code verwendet werden. Geben Sie die Codewörter de 3-au-5- Code an. Welche Mindet-Hamming-Ditanz beitzt der 3-au-5-Code? Durch einen 1-Bit-Übertragungfehler wird da Datenwort 10111 empfangen. Au welchen Codewörtern kann diee fehlerhafte Datenwort durch einen 1-Bit-Fehler enttehen? Kann da Datenwort korrigiert werden? Allgemein ergibt ich, da man au einem m-au-n-code die Anzahl Z an Codewörtern ableiten kann. n! Z = m! (n m)! Damit ergeben ich für einen 3-au-5-Code ingeamt zehn Codewörter. In jedem Codewort müen jeweil drei Zifferntellen die Ziffer 1 und zwei Zifferntellen die Ziffer 0 aufweien. Die zehn Codewörter de 3-au-5-Code lauten demnach: 00111, 01011, 01101, 01110,, 10101, 10110, 11001, 11010, 11100. Die Mindet-Hamming- Ditanz zwichen zwei Codewörtern de 3-au-5-Code beträgt D min = 2, o da ein 1-Bit-Übertragungfehler in einem Datenwortz erkannt werden kann. Da da durch einen 1-Bit-Fehler bei der Übertragung verfälchte Datenwort 10111 au den Codewörtern 00111,, 10101 oder 10110 durch die Verfälchung einer Ziffer 0 in die Ziffer 1 enttehen kann, it eine Korrektur nicht möglich. Da fehlerhafte Datenwörter de 3-au-5-Code nicht korrigiert werden können, ergibt ich auch au dem Wert der Mindet-Hamming-Ditanz D min = 2. Die Bitfolge 11010101 oll übertragen werden. Die Sicherung erfolgt mit dem CRC-Verfahren. Al Generatorpolynom wird G(x) = x 4 + x + 1 verwendet. c) Berechnen Sie den CRC für die gegebene Bitfolge und da gegebene Generatorpolynom. 1101.0101 0000 : 1001.1 0100.11 0100.11 0000.0001.0000 0000.0001.0011 0000.0000.0011 CRC = 0011 Grundlagen der Informatik III - Winteremeter 2010/2011 7
d) Der Empfänger nimmt die Bitfolge 10100101 CRC auf. Wird der Übertragungfehler erkannt? (Rechnung notwendig) 1010.0101 0011 : 1001.1 0011.110 0010.011 0001.1011 0001.0011 0000.1000.0 0000.1001.1 0000.0001.1011 0000.0001.0011 0000.0000.1000 Ret = 1000 => Fehler Gegeben it folgende C-Programm zur CRC-Berechnung. #include <tdio.h> #include <tdlib.h> #include <inttype.h> #define CRC32POLY 0x04C11DB7 /* CRC-32 Polynom */ int datatream[] = {1,0,0,0,1,1,0,1}; int databit = 8; uint32_t crc32 = 0; /* Schieberegiter */ /* int32 crc32 = 0; => for MS VS */ int main(void) { int i; for (i = 0; i < databit; ++i) if (((crc32 & 0x80000000)? 1 : 0)!= datatream[i]) crc32 = (crc32 << 1) ^ CRC32POLY; ele crc32 <<= 1; printf("0x%08x\n", crc32); return EXIT_SUCCESS; } e) Überetzen Sie die vorgegebene C-Implementierung der CRC-Berechnung in ein IA32-Aemblerprogramm. Die Bitfolge und da Generatorpolynom können im Datenteil vereinbart werden. Teten Sie Ihre Implementierung mit der vorgegebenen Bitfolge und dem vorgegebenen Generatorpolynom..data intout: # Fuer printf.tring "0x%08X\n" data: # Datentream.byte 1, 0, 0, 0, 1, 1, 0, 1 datalen: # Laenge de Datentream.long 8 GenPol: # Generatorpolynom.long 0x04C11DB7 Grundlagen der Informatik III - Winteremeter 2010/2011 8
.text.globl main main: movl $0, %eax # crc32 movl $0, %edi # i for: # if(((crc32 & 0x80000000)? 1 : 0)!= datatream[i]) movl %eax, %ebx andl $0x80000000, %ebx etnz %bl xorb data(, %edi, 1), %bl jz notif # crc32 = (crc32 << 1) ^ CRC32POLY hll $1, %eax xorl GenPol, %eax jmp endif notif: # crc32 <<= 1 hll $1, %eax endif: # ++i < databit incl %edi cmpl datalen, %edi jl for # Wert im %eax augeben puhl %eax puhl $intout call printf # Exit movl $1, %eax int $0x80 Grundlagen der Informatik III - Winteremeter 2010/2011 9