310 likes | 481 Views
Vorlesung Echtzeitbetriebssysteme VII. Leistungsbewertung von Echtzeitbetriebssystemen. Dr.-Ing. Frank Golatowski. Ziele der Vorlesung. Gliederung. Vergleichende Betrachtungen. Reaktionszeiten Systemfunktionen Entwicklungsumgebung Netzwerkintegration. Echtzeit-Benchmarks.
E N D
VorlesungEchtzeitbetriebssysteme VII. Leistungsbewertung von Echtzeitbetriebssystemen Dr.-Ing. Frank Golatowski
Vergleichende Betrachtungen • Reaktionszeiten • Systemfunktionen • Entwicklungsumgebung • Netzwerkintegration
Echtzeit-Benchmarks • feinkörnige Benchmarks • applikationsorientierte Benchmarks • simulationsbasierende Benchmarks
Benchmarks • Rhealstone (Kar,Porter 1987) • Rabindra Kar, K. Porter „Rhealstone - a real-time benchmarking proposal”Dr. Dobb’s Journal, February 1989 • Rabindra Kar, “Implementing the rhealstone real-time benchmark”Dr. Dobb’s Journal, April 1990 • Furht et al. Real-Time Unix Systems Design and Applications, Kluwer 1991 • Hartstone (Weidermann 1991) • Ballista: COTS Software Robustness Testing • 1997 EDN Embedded Microprocesor Benchmarking Consortium (EEMBC)www.eembc.com
Embedded Microprocessor Benchmark • Die im April 1997 gegründete Organisation «EDN Embedded Microprocessor Benchmarking Consortium» EEMBC (www.eembc.org) hat es sich zur Aufgabe gemacht, trotz der vielfältigen Prozessor-Landschaft eine Standard-Benchmark-Suite für Embedded Prozessoren zu entwickeln. Inzwischen sind 28 Hersteller Mitglieder der EEMBC, unter ihnen alle wichtigen und einflußreichen Hersteller von Mikrocontrollern und Prozessoren. EEMBC hat sich auf die Fahnen geschrieben, Benchmarks für Prozessoren und Controller von 8 bit bis 64 bit zu entwickeln, inklusive Digitaler Signalprozessoren. Fünf Arbeitsgruppen widmen sich den folgenden Test-Kategorien:
Embedded Microprocessor Benchmark • Automotive/Industrial: Benchmarks für Steuerung und Regelung wie FFT, Table Lookup oder Matrixoperationen. • Consumer: Bildinterpolation, IrDa-Protokoll, JPEG-Kompression und -Dekompression. • Networking: Route Lookup. • Office Automation: Bezier-Kurven, String-Verarbeitung, Bitmap-Manipulation. • Telecommunications.
Embedded Microprocessor Benchmark • Die Benchmarks befinden sich derzeit im Versionsstand 0.9. Zum Telekommunikations-Benchmark gibt es noch keine Informationen, während der Automotive-Benchmark mit 16 Testroutinen am weitesten gediehen ist. Die Testprogramme sind in ANSI-C geschrieben, damit die Portabilität auf alle Toolketten für Embedded Prozessoren und DSPs gewährleistet ist. Getestet wird nicht der Prozessorkern alleine, sondern die Gesamtheit aus Prozessor und Entwicklungssoftware. • Ein Zeichen dafür, daß die EEMBC Benchmark Suite noch in einem frühen Entwicklungsstadium ist, ist die Tatsache, daß trotz der 28 EEMBC-Mitglieder nur Benchmark-Ergebnisse für zehn Prozessoren existieren. Dabei stellt Infineon mit dem C167CS den einzigen 16-bit-Prozessor. Alle anderen sind 32- oder 64-bit-CPUs. Der Automotive-Benchmark wurde für fünf Prozessoren veröffentlicht. Die Ergebnisse sind in der Tabelle wiedergegeben.
EEMBC: Test-Kategorien: • Automotive/Industrial: Benchmarks für Steuerung und Regelung wie FFT, Table Lookup oder Matrixoperationen. • Consumer: Bildinterpolation, IrDa-Protokoll, JPEG-Kompression und -Dekompression. • Networking: Route Lookup. • Office Automation: Bezier-Kurven, String-Verarbeitung, Bitmap-Manipulation. • Telecommunications.
Automotive #1 - Table Lookup & Interpolation#2 - Angle to Time Conversion#3 - Pulse Width Modulation (PWM) #4 - CAN Remote Data Request #5 - Tooth to Spark #6 - Road Speed Calculation #7 - Infinite Impulse Response (IIR) Filter #8 - Bit Manipulation #9 - Basic Integer and Floating Point #10 - Pointer Chasing #11 - Matrix Arithmetic #12 - Cache ‘Buster’ #13 - Inverse Discrete Cosine Transform (iDCT) #14 - Fast Fourier Transform (FFT) #15 - Inverse Fast Fourier Transform (iFFT) #16 - Finite Impulse Response (FIR) Filter
Consumer #1 - Compress JPEG#2 - Decompress JPEG#3 - High Pass Grey-scale Filter#4 - RGB to CMYK Conversion#5 - RGB to YIQ Conversion
Networking #1 - Open Shortest Path First/Dijkstra#2 - Patricia#3 - Packet Flow
Office Automation #1 - Bezier Curve Calculation#2 - Dithering#3 - Image Rotation#4 - Text Processing
Telecommunication #1 - Autocorrelation#2 - Bit Allocation#3 - Inverse Fast Fourier Transform (iFFT)#4 - Fast Fourier Transform (FFT)#5 - Viterbi Decoder#6 - Convolutional Encoder
Rhealstone • Task switching time tTS • Interrupt latency time tIL • Preemption Time tP • Semaphore shuffling time tSS • Deadlock breaking time tDB • Datagram throughput [kBytes/s] Rhealstone- Wert R = f1 + f2 + f3 + f4 + f5 + f6 Gewichteter Rhealstone- Wert RW = c1f1 + c2f2 + c3f3 + c4f4 + c5f5 + c6f6
Task Switching TimeTaskumschaltzeit Task number Task 3 Task 2 Task1 Time t1 t2 t3
Bestimmung der Taskumschaltzeit Task 1 PAUSE loops for > 1ms PAUSE wait for 1ms ready Task 2 loops for > 1ms PAUSE ready wait for 1ms ready t1 t2 t3
Preemption Time Task number Task 3 (high) Task 2 (medium) Task1 (low) Time t1 t2
Bestimmung der Preemption Time Task 1 PAUSE PAUSE wait for 1ms wait for 1ms (high priority) Task 2 loops for > 1ms loops for > 1ms ready ready (low priority) t1 t2 t3
Semaphore shuffling time Task number Task 1 Task 1 Semaphor Ownership Task 2 Task 2 Task 1 Time = task requests semaphor t1 t2 = task relinquishes semaphor
Semaphore shuffling time Task 1 loops for > 1ms PAUSE loops for > 1ms PAUSE loops for > 1ms wait for 1ms ready wait for 1ms ready Task 2 loops for > 1ms loops for > 1ms PAUSE loops for > 1ms PAUSE ready wait for 1ms ready Task 1 Semaphor Ownership Task 2 Task 1 loops for > 1ms tsf PAUSE loops for > 1ms rsf loops for > 1ms PAUSE wait for 1ms ready ready wait for 1ms ready Task 2 loops for > 1ms tsf loops for > 1ms PAUSE rsf loops for > 1ms PAUSE ready wait wait for 1ms ready t1 t2
Interrupt latency time Interrupt handler Task Time t Note: CPU receives interrupt at time "t" t1 Interrupt latency time = t1
Deadlock Task number Task 2 Semaphor Ownerchip 2 Task 1 Semaphor Ownerchip 1 Task 2 Task 1 Time Deadlock = task requests semaphor 1 = task requests semaphor 2
Deadlock breaking time Task number Task 1 Semaphor Ownerchip Task 2 Task 3 (high priority) Task 2 (medium priority) Task 1 (low priority) Time Tb = task requests semaphor = task relinquishes semaphor
Deadlock breaking time II Critical Ressource Owner Task 1 Task 3 Task3 (high priority) ? Task2 (medium priority) Task1 (low priority) Time t1 t2 = task requests semaphor = task relinquishes semaphor Deadlock breaking time = t1 + t2 = task preemption
Bestimmung der Deadlock breaking time Semaphor Task 1 Ownership Task 2 Task 1 tsf loops for > 1ms rest of loops rsf ready ready ready (low priority) Task 2 loops for > 1/4ms PAUSE ready wait for 1ms ready (medium) Task 3 PAUSE tsf rsf wait for 1ms wait for sem_t (high) inherent priority Task 1 priority of task 3 Priority t1 t2
Datagram throughput Task number Task 2 (message) Task1 Time t