nanosleep()

Tom Mazouch mazouch na ica.cz
Úterý Září 29 09:44:33 CEST 1998


Smolik Daniel wrote:
> 
> Dobry den,
> Portuji pod Linux svuj universalni programator cehokoli, je pripojeny na
> paralelni port a potrebuji cekat po presne definovany cas usek.
> Nejkratsi cas co mi staci je
> 1ms. Koukl jsem a pouzil funkci nanosleep. Predtim jsem pomoci
> sched_setscheduler()
> nastavil prioritu na 99 na scheduler na FIFO_SCHED. Casy jako 1ms a 2ms
> sly v pohode, ale jake bylo moje prekvapeni kdyz jsem zjistil ze cas od
> 3 do 10ms trva vzdy 20ms. Netusite nekdo cim to je ?
> 
>                                             Dan
Hm...tak tohle jsem resil asi dva roky zpet (mozna by se to dalo vyhrabat v archivu, thread se
jmenoval "10ms"). Dopadl jsem asi tak, ze jsem se za-mlockall()oval, pomoci iopl() zvedl, zatrhnul
preruseni a primo na casovaci odmeril potrebne. Nejdelsi cas delam 10ms. Spinavost, ale chodi to
presne. 
Zakazovat preruseni je sice humus, ale mam v masine Adaptec AVA1502+SCSI ZIP+vypalovacku a kdyz se
nahrava modul aha152x, tak je preruseni zakazany asi tak 4 (slovy ctyri!!!) sekundy. Coz me trochu
uklidnilo :-)
  Tom


Další informace o konferenci Linux