XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004
1
Doba odezvy na vznik přerušení IRQ v závislosti na výkonu PC a operačním systému MS Windows NT/2000/XP FOJTÍK, David, Ing.,
Katedra ATŘ-352, VŠB-TU Ostrava, 17. listopadu, Ostrava - Poruba, 708 33
[email protected], http://fs1.vsb.cz/~foj74
Abstrakt: Tento příspěvek se zabývá změnou prodlevy zahájení obslužné rutiny ISR od vzniku hardwarového přerušení IRQ v operačních systémech rodiny MS Windows NT a to v závislosti na výkonu PC sestavy. Snahou je tak odhalit vliv volby počítačové sestavy především jejího hrubého výkonu na rozptyl této odezvy, která je v mnoha případech kritická s ohledem na provozování řídicích systémů vyžadující rychlé zpracování v reálném čase. Klíčová slova: PIC, 8259A, MS Windows NT/XP/2000, IRQ, IRQL
1 Cíl měření Počítače platformy PC jsou neustále v permanentním zájmu tvůrců řídicích systémů. Jejich poměrně nízká cena, neustálý růst výkonu, vysoká podpora moderních technologií, nepřeberné množství výrobců jsou vysokými argumenty pro jejich nasazení. Důležitým faktorem je také skutečnost, že dnes je již nezbytnou a mnohdy jedinou platformou podnikových informačních systémů. Nasazení počítačů PC v řízení technologických procesů tak nabízí snadnou možnost integrovat vlastní technologické procesy do celkového informačního systému podniku, což bezesporu přináší mnoho výhod. K tomu, aby se tento požadavek zdařilo zcela naplnit je však potřeba také sjednotit používané operační systémy. V tomto okamžiku nastává zcela legitimní požadavek na nasazení operačních systémů rodiny MS Windows NT k provozu řídicích systémů v reálném čase. Tohoto faktu je si vědom i samotný výrobce systému firma Microsoft, který již nějakou dobu nabízí specializované verze těchto operačních systémů a to MS Windows NT Embedded a MS Windows XP Embedded [MICROSOFT 2003]. Navíc díky velmi úzké spolupráci s firmou VenturCom lze jejich systémy rozšířit velmi kvalitním doplňkem reálného času RTX [O’KEEFE 2002]. V určitých případech však není výhodné doplněk RTX nasadit a mnohdy vystačíme s jiným levnějším řešením. Jedno řešení se opírá o možnost realizovat přesnou vzorkovací periodu regulátoru formou vnějších hardwarových časovačů multifunkční měřicí karty opakovaně generující přerušení IRQ [FOJTÍK 2004]. Na obsluhu tohoto přerušení je vykonán vlastní algoritmus na vysoké systémové prioritní úrovni. Také jiné požadavky mohou být provedené ihned v obsluze přerušení, čímž se výrazně zkracuje reakční čas k provedení příslušného úkonu. Z popisu je patrné, že reakční doba potřebná k zahájení obsluhy od vzniku hardwarového přerušení je velmi důležitá a může ovlivnit mnohé. Nejvíce nás zajímá nejdelší doba, do které můžeme s jistotou počítat, že příslušná obsluha bude zahájena. Vlivů, které mohou dobu reakce ovlivnit je hned několik. Především závisí na použitém operačním systému a typu použitého hardwarového řadiče přerušení. Také je možné jistými postupy mechanizmus správy přerušení operačních systémů NT architektury pozitivně ovlivnit [FOJTÍK 2004]. Cílem tohoto příspěvku je objasnit další možný vliv na uvedenou dobu a to je výkon počítačové sestavy.
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004
2
2 Princip měření Princip měření byl již podrobně publikován ve [FOJTÍK 2003A]. Zkráceně, princip měření spočívá ve vynesení požadavku generující přerušení IRQ v měřeném systému vnějším zdrojem, který současně vyhodnocuje dobu, za kterou je měřený systém schopen odeslat odpověď jako důsledek onoho přerušení. Principiální schéma metody měření je vyobrazeno na obrázku 1. Měřený systém: PC s MS Windows NT/2000/XP
Speciální ovladač paralelního portu
IRQ
Hardware počítače
Měřící systém: PC + MS DOS/Windows 98
Paralelní port Karta PCA1216
Algoritmus odezvy (Rutina – ISR)
Paralelní port
Trig. obv. Časovače A/D
Paměť RAM
Měřící program
Měřící algoritmus
Obrázek 1 – Schéma principu měření doby odezvy na vznik přerušení IRQ Po hardwarové stránce se měřicí systém skládá z počítače PC vybaveného měřicí kartou PCA1216 a propojovacích kabelů připojených k měřenému systému. Základním prvkem je měřicí karta PCA1216, která je vybavena schopností samostatně měřit jeden vstup s frekvencí až 1 MHz maximálně po dobu 1 sekundy. Za tímto účelem je vybavena 2MB pamětí RAM a interními 4MHz čítači, které dokážou opakovaně spouštět A/D převod zvoleného vstupu. Výsledky měření se zapisují do paměti RAM, kterou lze po ukončení měřicí sekvence přečíst. K využití těchto vlastností byl vytvořen jednoduchý program pro MS DOS a MS Windows 98, který opakovaně dle požadavků spouští měřicí sekvenci a po jejím ukončení naměřené hodnoty vyhodnocuje. Současně program také vznáší požadavek generující přerušení v měřeném systému. Tento požadavek je aplikován prostřednictvím paralelního portu měřicího počítače. Pro přesné měření doby od vzniku přerušení do zahájení obsluhy byl opět využit paralelní port, který je po příslušném nastavení schopen přímo generovat přerušení IRQ5 nebo IRQ7 jako důsledek TTL signálu na ACK pin konektoru. Měřený systém tudíž využívá paralelní port jako zdroj přerušení a současně přes něj přijímá i zasílá signál odezvy. Za tímto účelem byly vyhotoveny dva speciální ovladače paralelního portu zvlášť pro MS Windows NT a pro MS Windows 2000/XP.
3 Měřené systémy a jejich zatížení Vlastní měření se provádělo na třech základních typech v současnosti dostupných operačních systémů rodiny NT a to konkrétně na: • MS Windows NT 4.0 včetně servisního balíčku SP6a, • MS Windows 2000 Proffesional se servisním balíčkem SP3, • MS Windows XP Proffesional se servisním balíčkem SP1. Jako referenční byly zvoleny čtyři výkonnostně odlišné sestavy výhradně využívající standardní řadič přerušení 8259A (82C59). A. Pentium – 90 MHz: • CPU Intel Pentium 90 MHz, • takt sběrnice 66 MHz, • 64 MB RAM, • pevný disk o kapacitě 4 GB připojený přes SCSI řadič na sběrnici PCI (IRQ10).
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004
3
B. Celeron – 400 MHz: • CPU Intel Celeron A 400 MHz, • takt sběrnice 66 MHz, • 128 MB RAM, • pevný disk 8 GB připojený na primárním IDE. C. Celeron – 1100 MHz: • CPU Intel Celeron 1100 MHz, • takt sběrnice 100 MHz, • 512 MB RAM, • pevný disk o kapacitě 20 GB připojený přes řadič CMD PCI-0648 ultra DMA rozhraní IDE ATA 66 (IRQ9). D. Pentium 4 – 2000 MHz: • CPU Intel Pentium 4 – 2 GHz, • takt sběrnice 400 MHz, • 512 MB RAM, • pevný disk o kapacitě 60 GB připojený na primárním ID ATA 100. Pro každou kombinaci hardware a operačního systému bylo měření prováděno na kanálu IR 7 vždy nejprve pro standardní mechanizmus správy přerušení a poté s úpravami. Úpravy se týkají přeprogramování řadiče přerušení 8259A tak, aby zvolený kanál měl nejvyšší prioritu a změny úrovně IRQL zvýšením na hodnotu 31. Detailní popis úprav a jejich význam je uveden ve [FOJTÍK 2003B]. Aby naměřené výsledky odpovídaly situaci intenzivně používaného systému, byly během měření spuštěné dvě úlohy zatěžující systém především na systémové úrovni. Za tímto účelem byly vytvořeny dva programy intenzivně komunikující s pevným diskem a sériovými porty čímž se neustále generují požadavky na přerušení IRQ4 a IRQ10. Programy byly vytvořeny s možností volit zatížení v čase čímž se eliminují případné rozdíly v zatížení mezi výkonnostně rozdílnými systémy (viz obrázek 2). Podrobnější popis těchto programů je uveden ve [FOJTÍK 2003A].
Obrázek 2 – Nastavení zatěžujících programů během měření Každé měření bylo vždy prováděno opakovaně – pokaždé s téměř shodnými výsledky. Případné rozdíly ve sledovaných parametrech se týkaly výhradně doby nejpozději přijaté odezvy a vždy maximálně v řádu jednotek mikrosekund. Níže prezentované hodnoty tak odpovídají skupinám měření, jejíž doba nejpozději přijaté odezvy byla ze všech měření nejdelší.
4 Pentium: 90 MHz Na výkonově nejslabší sestavě nebyl vyhodnocován MS Windows XP především z důvodu malého výkonu stanice. Z grafů je patrný pozitivní vliv navržených úprav u obou měřených operačních systémů. Pokud porovnáme mezi sebou oba operační systémy zjistíme
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004
4
mírné prodloužení odezvy u MS Windows 2000 vůči MS Windows NT 4.0. Tento fakt odráží odlišnou správu přerušení s vyšší režií v neprospěch systému MS Windows 2000. Rozložení 600 000 vzorků podle času odezevy v MS Windows NT 4.0
117 806
Pentium 90 MHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
100 000
117 623
100
V 99,9% odezva přijata do 16 μs Všechny odezvy přijaty do 37 μs
10 000
Násobek odezvy
1 000
Pentium 90 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL31, max IR7, mask INTR Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 36 μs Všechny odezvy přijaty do 64 μs
10 000
Násobek odezvy
Rozložení 600 000 vzorků podle času odezevy v MS Windows NT 4.0 1 000 000
1 000 000
1 000
100
10
10
99,9%
99,9% 1
1
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Čas odezvy [μs]
Obrázek 3 – Reakční doby na IRQ sestavy Pentium 90 MHz s MS Windows NT 4.0 Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000
Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000 1 000 000
1 000 000
105 971
Pentium 90 MHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 40 μs Všechny odezvy přijaty do 77 μs
1 000
100
Pentium 90 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL 31, nejvyšší priorita IR7 Zatíženo programy IRQ_HD a COM To COM V 99,9% odezva přijata do 21 μs Všechny odezvy přijaty do 40 μs
10 000
Násobek odezvy
10 000
Násobek odezvy
116 695 100 000
10
1 000
100
10
99,9%
99,9%
1
1 1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Čas odezvy [μs]
Obrázek 4 – Reakční doby na IRQ sestavy Pentium 90 MHz s MS Windows 2000
5 Celeron: 400 MHz Na této stanici byly již testovány všechny tři operační systémy. I zde navržené úpravy zkrátily oba sledované parametry. Mírné odlišnosti mezi operačními systémy MS Windows 2000 a MS Windows XP dávají tušit, že i přes shodný mechanizmus správy přerušení se jádra systémů vůči sobě liší. Rozložení 600 000 vzorků podle času odezevy v MS Windows NT 4.0
Rozložení 600 000 vzorků podle času odezevy v MS Windows NT 4.0 1 000 000
1 000 000
195 054
167 728
Celeron 400 MHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 27 μs Všechny odezvy přijaty do 4209 μs
1 000
100
V 99,9% odezva přijata do 16 μs Všechny odezvy přijaty do 29 μs
10 000
Násobek odezvy
Násobek odezvy
10 000
Celeron 400 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL 31, max IR7, mask INTR Zatíženo programy IRQ_HD a COM To COM
100 000
1 000
100
10
10
99,9% 1
99,9% 1
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Obrázek 5 – Reakční doby na IRQ sestavy Celeron 400 MHz s MS Windows NT 4.0
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004
Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000 1 000 000
Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000 1 000 000
103 020 100 000
Celeron 400 MHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM V 99,9% odezva přijata do 41 μs Všechny odezvy přijaty do 64 μs
108 863 100 000
1 000
100
10
Celeron 400 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL31, nejvyšší priorita IR7 Zatíženo programy IRQ_HD a COM To COM V 99,9% odezva přijata do 32 μs Všechny odezvy přijaty do 55 μs
10 000
Násobek odezvy
10 000
Násobek odezvy
5
1 000
100
10
99,9%
99,9%
1
1
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Čas odezvy [μs]
Obrázek 6 – Reakční doby na IRQ sestavy Celeron 400 MHz s MS Windows 2000 Rozložení 600 000 vzorků podle času odezevy v MS Windows XP
Rozložení 600 000 vzorků podle času odezevy v MS Windows XP 1 000 000
1 000 000
158 857
157 528
Celeron 400 MHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 44 μs Všechny odezvy přijaty do 66 μs
1 000
100
V 99,9% odezva přijata do 34 μs Všechny odezvy přijaty do 58 μs
10 000
Násobek odezvy
Násobek odezvy
10 000
Celeron 400 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL31, nejvyšší priorita IR7 Zatíženo programy IRQ_HD a COM To COM
100 000
1 000
100
10
10
99,9%
99,9% 1
1 1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Obrázek 7 – Reakční doby na IRQ sestavy Celeron 400 MHz s MS Windows XP Velice zajímavě se zvýšení výkonu procesoru a tím intenzivnější zatížení podepsalo na neupravené správě přerušení v MS Windows NT, kde nejpozději přijaté odezvy sahaly až do 4,2 ms. Použitím úprav se parametr zkrátil na neuvěřitelný 29 μs. Z grafů je také možné vysledovat oproti předchozí sestavě prodloužení doby nejdříve přijaté odezvy. Zvýšené prodloužení je patrně zapříčiněno špatným odladěním a nižším výkonem použité čipové sady. Doba je také vyšší u operačních systémů MS Windows 2000/XP nežli u MS Windows NT a to z důvodu časově náročnější správy přerušení.
6 Celeron: 1100 MHz Také na sestavě s procesorem Intel Celeron 1100 MHz se projevily rozdíly mezi testovanými operačními systémy a použitými úpravami. Opět největší rozdíl mezi upraveným a standardním mechanizmem je patrný u operačního systému MS Windows NT. Oproti předchozí sestavě je však výrazně kratší doba první přijaté odezvy, to svědčí o kvalitě čipové sady (BX) a vyšší frekvenci sběrnice.
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004 Rozložení 600 000 vzorků podle času odezevy v MS Windows NT 4.0
Rozložení 600 000 vzorků podle času odezevy v MS Windows NT 4.0 1 000 000
1 000 000
179 113
163 363
Celeron 1100 MHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
100 000
100
V 99,9% odezva přijata do 14 μs Všechny odezvy přijaty do 21 μs
10 000
Násobek odezvy
1 000
Celeron 1100 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL 31, max IR7, mask INTR Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 20 μs Všechny odezvy přijaty do 941 μs
10 000
Násobek odezvy
6
1 000
100
10
10
99,9%
99,9%
1
1 1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Čas odezvy [μs]
Obrázek 8 – Reakční doby na IRQ sestavy Celeron 1100 MHz s MS Windows NT 4.0 Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000
Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000 1 000 000
1 000 000
153 412
146 533
Celeron 1100 MHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 23 μs Všechny odezvy přijaty do 42 μs
1 000
100
V 99,9% odezva přijata do 16 μs Všechny odezvy přijaty do 34 μs
10 000
Násobek odezvy
Násobek odezvy
10 000
Celeron 1100 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL31, nejvyšší priorita IR7 Zatíženo programy IRQ_HD a COM To COM
100 000
1 000
100
10
10
99,9%
99,9% 1
1 1
3
5
7
1
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Čas odezvy [μs]
Obrázek 9 – Reakční doby na IRQ sestavy Celeron 1100 MHz s MS Windows 2000 Rozložení 600 000 vzorků podle času odezevy v MS Windows XP 1 000 000
Rozložení 600 000 vzorků podle času odezevy v MS Windows XP 1 000 000
166 060
156 613
Celeron 1100 MHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 26 μs Všechny odezvy přijaty do 43 μs
1 000
100
10
V 99,9% odezva přijata do 19 μs Všechny odezvy přijaty do 38 μs
10 000
Násobek odezvy
Násobek odezvy
10 000
Celeron 1100 MHz, IRQ7 - paralelní port Všechny úpravy: IRQL31, nejvyšší priorita IR7 Zatíženo programy IRQ_HD a COM To COM
100 000
1 000
100
10
99,9%
99,9% 1
1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69
Čas odezvy [μs]
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Obrázek 10 – Reakční doby na IRQ sestavy Celeron 1100 MHz s MS Windows XP
7 Pentium 4: 2000 MHz Tato nejvýkonnější měřená stanice se od ostatních liší především použitou čipovou sadou Intel 82845 MCH a Intel 82801 DB ICH4 [INTEL CORPORATION 2002], která má standardně integrovaný řadič IOAPIC. Oproti předchozím sestavám tak implicitně používá ke správě přerušení technologii APIC. Z důvodu kompatibility je v čipové sadě samozřejmě také integrována dvojice řadičů 8259A, jejíž použití je možné volbou v BIOSu počítače (PIC/APIC) vynutit. Této skutečnosti bylo pochopitelně pro následující měření využito.
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004
7
Získané hodnoty se opět výrazně neliší od předchozích stanic. I zde se podepsaly rozdíly mezi testovanými operačními systémy a navržené úpravy opět (především ve Windows NT) citelně zkvalitnily determinovatelnost odezvy. Rozložení 600 000 vzorků podle času odezevy v MS Windows NT 4.0
Rozložení 600 000 vzorků podle času odezevy v MS Windows NT 4.0 1 000 000
1 000 000
315 700
312 614
Pentium 4 - 2 GHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 20 μs Všechny odezvy přijaty do 2 673 μs
1 000
100
V 99,9% odezva přijata do 12 μs Všechny odezvy přijaty do 61 μs
10 000
Násobek odezvy
Násobek odezvy
10 000
Pentium 4 - 2 GHz, IRQ7 - paralelní port Všechny úpravy: IRQL31, max IR7, mask INTR Zatíženo programy IRQ_HD a COM To COM
100 000
1 000
100
10
10
99,9%
99,9% 1
1 1
3
5
7
1
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Čas odezvy [μs]
Obrázek 11 – Reakční doby na IRQ sestavy Pentium 4 2000 MHz s MS Windows NT 4.0
Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000
Rozložení 600 000 vzorků podle času odezevy v MS Windows 2000 1 000 000
1 000 000
156 499
V 99,9% odezva přijata do 28 μs Všechny odezvy přijaty do 42 μs
1 000
100
Pentium 4 - 2 GHz, IRQ7 - paralelní port Všechny úpravy: IRQL31, nejvyšší priorita IR7 Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 20 μs Všechny odezvy přijaty do 38 μs
10 000
Násobek odezvy
10 000
Násobek odezvy
159 456
Pentium 4 - 2 GHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
100 000
1 000
100
10
10
99,9%
99,9% 1
1 1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Čas odezvy [μs]
Obrázek 12 – Reakční doby na IRQ sestavy Pentium 4 2000 MHz s MS Windows 2000
Rozložení 600 000 vzorků podle času odezevy v MS Windows XP
Rozložení 600 000 vzorků podle času odezevy v MS Windows XP 1 000 000
1 000 000
301 008
100 000
V 99,9% odezva přijata do 30 μs Všechny odezvy přijaty do 44 μs
1 000
100
10
Pentium 4 - 2 GHz, IRQ7 - paralelní port Všechny úpravy: IRQL31, nejvyšší priorita IR7 Zatíženo programy IRQ_HD a COM To COM
100 000
V 99,9% odezva přijata do 21 μs Všechny odezvy přijaty do 38 μs
10 000
Násobek odezvy
10 000
Násobek odezvy
296 397
Pentium 4 - 2 GHz, IRQ7 - paralelní port Standardní mechanizmus - bez úprav Zatíženo programy IRQ_HD a COM To COM
1 000
100
10
99,9%
99,9% 1
1 1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Čas odezvy [μs]
Obrázek 13 – Reakční doby na IRQ sestavy Pentium 4 2000 s MS Windows XP Zajímavým, ale zcela zdůvodnitelným zjištěním je poměrně vysoký nárůst doby prvně přijaté odezvy. Prakticky žádný vzorek nebyl přijat dříve nežli v deváté mikrosekundě. Tento
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004
8
stav je zapříčiněn mechanizmem doručování požadavků na přerušení. Zatímco v předchozích systémech byl výstup dvojice obvodů 8259A přímo propojen se vstupem INTR procesoru, v systémech APIC je výstup vyveden na předurčený vstup jednotky I/O APIC. V kompatibilním módu jsou tedy požadavky na přerušení nejprve zpracovány obvody 82C59 a následně předány jednotce I/O APIC. Odtud jsou po interní sběrnici odesílány jednotce Local APIC, která teprve přerušení realizuje.
8 Závěr Ze srovnání hodnot napříč měřených sestav vyplývá, že na době odezvy nemá samotný výkon procesoru významný vliv. Mezi sestavou s procesorem Celeron 1100 MHz a Pentiem 4 2000 MHz jsou jen nepatrné rozdíly. Srovnáním s nejslabší sestavou s procesorem Pentium 90 MHz kde je rozptyl odezvy mírně vyšší lze usoudit, že vzhledem k rozdílu ve výkonu procesoru je rozdíl v době odezvy zanedbatelný. Zajímavým zjištěním je, že na dobu odezvy se také podepisuje použitá čipová sada a celá vyladěnost hardwaru. Rozdíly, mnohdy významné, lze však spatřit mezi různými typy operačních systémů především v neupravené standardní verzi. Nejvíce je patrný odlišný mechanizmus správy přerušení mezi operačním systémem MS Windows NT 4.0 a systémy MS Windows 2000/XP. Zcela pozitivním zjištěním je jednoznačný vliv realizovaných úprav na sledované parametry, které se vždy (mnohdy velmi výrazně) projevily zkrácením nejpozději přijaté odezvy.
9 Použitá literatura FOJTÍK, D. 2003A Měření latence odpovědi na vznik přerušení v operačním systémech MS Windows NT/2000. In Workshop 2003 Fakulty strojní. Ostrava : VŠB-TU Ostrava, 17. 1. 2003, s. 109-112. ISBN 80-248-0233-3. FOJTÍK, D. 2003B Návrh a realizace úprav zvyšující determinovatelnost zpracování zvoleného požadavku IRQ v MS Windows NT/2000/XP využívající obvody PIC-8259A. In Proceedings of XXVIII Seminary ASR 2003 „Instruments and Control“. Ostrava : VŠBTU Ostrava, 6. 5. 2003, pp. 69-81. ISBN 80-248-0326-7. FOJTÍK, D. 2004 Tvorba systémových modulů pro podporu řízení v operačním systému MS Windows NT. Vědecké spisy Fakulty strojní, Edice: Autoreferáty disertačních prací. Ostrava : VŠB-TU Ostrava, Katedra ATŘ, 2004. ISBN 80-248-0568-5. INTEL
CORPORATION 2002. Intel® 82801DB I/O Controller Hub 4 (ICH4) [online]. Intel Corporation May 2002. PDF format. Available from WWW:
. Order Number 290744001.
MICROSOFT 2000. Microsoft Windows 2000 DDK. Redmond: Microsoft Corporation Redmond USA, June 28, 2000. MICROSOFT 2003. Microsoft Development Network - April. Redmond : Microsoft Corporation Redmond USA, 2003. O’KEEFE J, A. 2002. Venturcom RTX™ Enabling Microsoft® Windows® Windows XP and Windows XP Embedded for Hard Real-Time. [online]. Venturcom, Inc. 2002. PDF format. Available from WWW: .
XXIX. ASR '2004 Seminar, Instruments and Control, Ostrava, April 30, 2004
9
Informace pro zpracovatele příspěvku (nepublikují se): Použitý formát souboru s příspěvkem: (např. Microsoft Word 2000) Údaje jednotlivých autorů pro zpracování autorského rejstříku: Pořadí Příjmení Jméno Název organizace a stát Email 1 David Fojtík Technical University of [email protected] Ostrava, Czech Republic 2 3 … Příklad: 1
FARANA
Radim
Technical University of Ostrava, [email protected] Czech Republic