Diskuze: Přesné časování ve Windows?

Windows Windows Přesné časování ve Windows?

Avatar
Mircosoft
Redaktor
Avatar
Mircosoft:

Tenhle dotaz patří spíš do programátorské části, ale jde mi o obecný princip, ne o konkrétní jazyk. Takže:
Je pod Windows možné spolehlivě měřit časové intervaly v řádu mikrosekund? A dají se takhle ryche číst vstupní linky sériového portu?
Konkrétně jde o odlišení 28us impulsu od 70us. V Dosu je to triviální, tam má program pro sebe celý procesor a může měřit pomocí jednoduché inkrementační smyčky. Moderní počítače údajně mají mít hardwarový časovač s přesností na 100 ns nebo tak nějak, jenže co s ním, když OS může v rámci multitaskingu kdykoli můj program přerušit (díky přesnému časovači se sice dozvím, jak dlouho jsem byl mimo, ale už nezjistím, kolik impulsů mi mezitím uteklo). Obvykle používané řešení je postavit a naprogramovat převodník z nějakého jednočipu, ale to je spousta práce navíc. Je možné dát vláknu vyšší prioritu, než má samotný OS?

Ptám se víceméně čistě teoreticky, v Dosu mi to funguje a víc nepotřebuju. Jenom by mě zajímaly další možnosti.

 
Odpovědět 10.6.2014 22:58
Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:

Tak pokud potřebuješ vyšší přesnost, tak celá věc umí být poměrně složitá. Ve zkratce je potom nejpřesnější jednotkou tick, který je závisí na frekvenci a ty se ptáš systému kolik tiků uběhlo od nějaké výchozí pozice. A rozdílem od minulého dotazu jsi schopen s obrovskou přesností počítat čas. Tedy se dozvíš kolik impulsů uběhlo.

Co se týká - chci řídit to jak často se můžu ptát systému aby si mě všimnul, tak k tomu slouží nastavování priority procesů, kterou můžeš nastavit programově nebo ve správci úloh. Nemyslím si, že vagón může být rychlejší než lokomotiva, ale myslím si že hodnota pojmenovaná reálný čas by ti mohla stačit.

Sáhodlouhé pojednání najdeš tady

http://msdn.microsoft.com/…top/dn553408(v=vs.85).aspx

 
Nahoru Odpovědět  +1 11.6.2014 8:46
Avatar
mkub
Redaktor
Avatar
Odpovídá na Mircosoft
mkub:

vo Windowse nikdy nedosiahnes presne casovanie, tak ani v inych systemoch beziacich na desktope, na aplikacie, kde su potrebne presne casove slucky treba Realtime OS

 
Nahoru Odpovědět 12.6.2014 2:55
Avatar
Mircosoft
Redaktor
Avatar
Mircosoft:

OK, díky moc. To pojednání jsem si přečetl a asi je to opravdu tak: čas můžu pomocí QPC měřit na zlomky mikrosekund přesně, ale nemůžu mít jistotu, že budu online zrovna v tom okamžiku, kdy začíná nebo končí ten impuls, který chci změřit.

 
Nahoru Odpovědět 12.6.2014 16:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.