 
  
  
   
 Next:  Планирование
Up: Linux & POSIX.1b
 Previous:  Синхронный ввод - 
 
 
-  Вместо старого BSD стиля gettimeofday()/ settimeofday() вызовов,
    POSIX.1b определяет clock_gettimer(), clock_settimer() и
     clock_getres(). Они предлагают наносекундную точность вместо микросекунд как со старыми
    запросами BSD (по крайней мере на Pentium-ах доступно разрешение таймера
    существенно
    меньше микросекунды). Кроме того, вы теперь можете подвергнуть сомнению
    фактическую точность таймера с помощью clock_getres().
 
-  Новая функция nanosleep() позволяет ``заснуть" также меньше чем на секунду (
    старый sleep() имел только секундную точность). Кроме того, nanosleep не
    будет конфликтовать с SIGALRM и в случае EINTR, который возвращает
    затраченное время, так что вы можете легко продолжать цикл ожидания.
 
-  POSIX.1b определяет также itimers, однако вместо того,
    что существующий BSD
    поддерживает itimers, вы теперь можете иметь дело с несколькими таймерами
    (по крайней мере 32 на процесс) и вы имеете снова теоретическую точность
    до одной
    наносекунды. Старые функции itimer могут быть все еще легко выполнены
    в libc, поскольку совместимы с использующими новый POSIX-стиль itimer
    системных вызовов.
Состояния выполнения: POSIX часы и itimers системные вызовы
еще  не были
осуществлены, хотя много функциональных возможностей уже доступны в форме BSD
таймеров и их добавление должно быть весьма простым.  Очереди сигналов должны
быть осуществлены сначала для itimers. Nanosleep() уже доступен в Linux, но
в настоящее время поддерживается только до 10 ms рарешение и это может
приводить к произвольным кратковременным ожиданиям продолжительностью до 2 ms.
Работа на более высокоточных таймерных механизмах для Linux описана на
  URL: http://hegel.ittc.ukans.edu/projects/utime/.
 
Vladimir Chernenkov 
Fri Jun 13 10:57:19 MSD 1997