problem casovani programu bylo Re: ioperm - program

Ladislav Vaiz ziav na adela.fel.zcu.cz
Středa Leden 28 10:08:44 CET 2004


Trosku upresnim:

> Problem bude v tom, ze casovac kernelu v rade 2.4 bezi na 100Hz a proto
> tezko probudi proces, ktery se uspal pomoci nejake verze sleep
> dostatecne presne. Da se stahnout patch, ktery zvetsi HZ na 1000 a v

Tim je myslena symbolicka konstanta na zacatku souboru
include/asm-i386/param.h.
Pouzivejte radeji select misto usleep, chova se lepe (pri 100Hz casovaci
ceka 10ms, usleep ceka 20ms).

> rade 2.6 je to 1000 defaultne. Tim se trochu zlepsi odezva, ale pokud to
> potrebujes opravdu relativne presne, tak ti asi nezbyde nic jineho nez
> aktivne cekat v nejake smycce a cas merit treba pomoci tiku procesoru.

Muzete cist mikrosekundy pomoci gettimeofday a kdyz uplynou, tak smycku
ukoncit. To bude fungovat uspokojive, pokud vas proces pobezi sam.

Pokud by vam stacil seriovy port a jeho ctyri ridici vstupy, muzete napsat
jednoduchy ovladac do jadra a vyuzivat preruseni. Komunikovat s userspace
muzete treba pres znakove zarizeni. To by bylo nejcistsi a nejfunkcnejsi
reseni.

La'd"a




__... ...__  _.. .  ___ _._ .____ __.. .. ._

             (__)
             (oo)                U
      /-------\/             /---V
     / |     ||             * |--|                 .
    *  ||----||
       ^^    ^^
    Cow at 1 meter.  Cow at 100 meters.  Cow at 10,000 meters.


Další informace o konferenci Linux