nanosleep

David Kuzela david na kuzela.cz
Pondělí Září 25 19:07:10 CEST 2000


Martin Petrak pise:
> Dobry den.
> 
> Potreboval by som vediet, s akym rozlisenim pracuje funkcia nanosleep z
> GNU C kniznice pod Linuxom na platforme i386.
> V dokumentacii som nasiel ze to zalezi od konkretneho systemu cize to
> nemusi byt v ns.

Precetl jste manual nanosleep(2)? Parametr se zadava jako struktura:

              struct timespec
              {
                      time_t  tv_sec;         /* seconds */
                      long    tv_nsec;        /* nanoseconds */
              };

       The value of the nanoseconds field must be in the range  0
       to 999 999 999.

A v seckci BUGS se dozvite:

       The current implementation of nanosleep is  based  on  the
       normal  kernel  timer mechanism, which has a resolution of
       1/HZ s (i.e, 10 ms on Linux/i386 and 1 ms on Linux/Alpha).
       Therefore, nanosleep pauses always for at least the speci­
       fied time, however it can take up to  10  ms  longer  than
       specified  until  the  process becomes runnable again. For
       the same reason, the value returned in case of a delivered
       signal  in *rem is usually rounded to the next larger mul­
       tiple of 1/HZ s.

       As some applications  require  much  more  precise  pauses
       (e.g.,  in  order to control some time-critical hardware),
       nanosleep is also capable of short high-precision  pauses.
       If  the process is scheduled under a real-time policy like
       SCHED_FIFO or SCHED_RR, then pauses of up to 2 ms will  be
       performed as busy waits with microsecond precision.

-- 
                                   David Kužela
==[Dawyd]======[icq]=[24470559]===================
 email:       kuzela na mbox.vol.cz   Student of VSE
 web:   http://penguin.cz/~dawyd   Czech republic
==================================================


Další informace o konferenci Linux