Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемwww3.msiu.ru
1 Часы и таймеры
2 Типы таймеров относительный таймер абсолютный таймер периодический таймер однократный таймер
3 Схемы уведомления Послать сигнал Создать поток Послать импульс
4 Таймеры, посылающие сигналы struct sigevent event; timer_t timer_id; SIGEV_SIGNAL_INIT(&event, SIGUSR1); timer_create(CLOCK_REALTIME, &event, &timer_id);
5 Таймеры, создающие потоки struct sigevent event; timer_t timer_id; SIGEV_THREAD_INIT(&event, m_func, NULL); timer_create(CLOCK_REALTIME, &event, &timer_id);
6 Таймеры, посылающие импульсы struct sigevent event; timer_t timer_id; int chid = ChannelCreate(0); int coid = ConnectAttach(0,0, chid, 0,0); SIGEV_PULSE_INIT(&event, coid, SIGEV_PULSE_PRIO_INHERIT, CODE_TIMER, 0); timer_create(CLOCK_REALTIME, &event, &timer_id);
7 Установка времени int timer_settime( timer_t timer_id, int flags, // 0 / TIMER_ABSTIME struct itimerspec * value, struct itimerspec * oldvalue);
8 struct timespec { long tv_sec, tv_nsec; // < 1000,000,000 }; struct itimerspec { struct timespec it_value, it_interval; };
9 POSIX Timers #include int getitimer(int which, struct itimerval *value); int setitimer(int which, const struct itimerval *restrict value, struct itimerval *restrict ovalue); unsigned alarm(unsigned seconds);
10 POSIX Timers ITIMER_REAL Decrements in real time. A SIGALRM signal is delivered when this timer expires. ITIMER_VIRTUAL Decrements in process virtual time. It runs only when the pro- cess is executing. A SIGVTALRM signal is delivered when it expires. ITIMER_PROF Decrements both in process virtual time and when the system is running on behalf of the process. It is designed to be used by interpreters in statistically profiling the execution of inter- preted programs. Each time the ITIMER_PROF timer expires, the SIGPROF signal is delivered.
11 clock functions #include int clock_getres( clockid_t clock_id, // CLOCK_REALTIME struct timespec *res); int clock_gettime(clockid_t clock_id, struct timespec *tp); int clock_settime(clockid_t clock_id, const struct timespec *tp);
12 WatchDog Программируемый сторожевой (контрольный) таймер, будильник. аппаратно или программно реализованная схема контроля за зависанием системы. В его счётчик загружается некоторое значение, соответствующее заданному временному интервалу. После инициализации таймер начинает обратный отсчёт времени, равный этому временному интервалу. Если до конца заданного интервала процессор не перезагрузит счётчик таймера, то последний через прерывание вызовет процедуру обработки данной ситуации, например перезагрузку системы.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.