komponenta HPTimer (highprecisiontimer) zlobi :(

Slavomir Skopalik skopalik
Středa Březen 17 14:26:56 CET 2004


> To vim :) a je to logicke, ale mne slo o "thread aplikace" vs. operacni
> system. Asi by nedelalo dobre, kdyby mela aplikace "obecne" vyssi nebo
> stejnou (???) prioritu nez operacni system. Tedy spise si nedovedu takovou
> situaci realne predstavit ... woknousum by se to jiste navic nelibilo a
> podle meho by "po dostatecne dobe marnych pokusu se na urovni CPU cyklu
> prosadit" hodily vyjimku a nebo (a to jenom hadam) upravily realtivni
> prioritu threadu na nizsi (???) ...
> Existuje na urovni OS Windows vubec "absolutni" trida priority, ktery by
> byla nad OS ???

Ano, sam je pouzivam. Skutecne to zvedne prioritu Vasi aplikace, ale
pouze mezi sobe rovnynmi (aplikacemi), pokud si cas vezme kernel,
tak si jej vzal, s tim proste nic neudelate.

> 
> > Mikrosekunda je hooooooodne presne, je treba si uvedomit, ze windows
> prideluji
> > cas po 1 - 10 ms !!!!
> > Je treba si uvedomit, ze i PIII vykona za tu dobu max. 2000 instrukci v
> 32bit modu.
> > V DOSu to bude mnohem mene.
> > Dale by CPU nesmelo sahat na ISU, tam jsou obroska zpozdeni.
> > doporucuji bud kernel driver, nebo DOS, ale lepe HW, na tohle se PC
> nehodi.
> > Jinak pocitejte s cca 10us (tusim ze 12.5us) jako minimem.
> > Slavek
> 

No, pokusim se to zhrnout, aby jsme si zjednoduli budeme uvazovat pouze
1 CPU.

1. Kernel prideli aplikaci CPU
2. Aplikace si v klidu pocita, NEBO vrati rizeni kernelu.
3. Pokud aplikace nevrati rizeni, je ji odebrano (cca 5 - 10 ms)
4. Priorita stanovi pouze JAK casto ma prijit aplikace na radu

a v tech 5 - 10 ms je problem (ty jsou odvozeny od casovace).

muzeme si to predstavit asi takto:
kazda priorita je jeden soudecek.

do RT soudecku chodim, dokud v nem neco je,
pak jdu cca 999 do high a jednou se podivam dale
pak jdu cca 999 do normal a jednou se podivam dale
pak jdu cca 999 do low.
Pocty mohou byt u kazde verze OS jine (toto plati pro WinNT server)

Pokud mate WinNT, nebo Win2000(XP) tak si muzete napsat
takouvou malou testovaci aplikaci, ktere bude "zrat" vsechen CPU cas.
Tu spuste vicekrat a budete si hrat s pridelovanim priority, tak muzete
v casu CPU videt kolik ktera aplikace dostala.

Priority se projevy POUZE v pripade zatizeneho CPU.

	Slavek





Další informace o konferenci Hw-list