КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Таймер
Работа в режиме реального времени. Таймер. Диспетчеризация процессов Ядро предоставляет процессу ресурсы центрального процессора на интервал времени квант, по истечению которого выгружает этот процесс и запускает другой, а также периодически меняет порядок в очереди процессов. Ядро пересчитывает приоритеты и переключает контекст на процесс с наивысшим приоритетом. Время в системе поддерживается с помощью аппаратного таймера, который посылает центральному процессору прерывание с фиксированной частотой. Планирование и выполнение процессов. Действия планировщика. 1. Выбирается процесс с наивысшим приоритетом из находящихся в состояниях резервирования и готовность к выполнению. 2. Если таких процессов несколько, то выбирается тот, который дольше всех находится в очереди. 3. Если таких процессов нет, то ждем следующего прерывания по таймеру (тика). 4. Удаляем выбранный из очереди готовых к выполнению. 5. Переключение на контекст выбранного процесса.
Когда процессы ждут прерывания, они находятся в режиме сна. Приходит прерывание => процессы переходят в режим готовности к запуску. Режим реального времени подразумевает возможность обеспечения достаточной скорости при обработке внешних прерываний и выполнении отдельных процессов в темпе, соизмеримом с частотой возникновения вызывающих прерывания событий. Системные операции, связанные со временем. stime ≈ устанавливает системное время в секундах, начиная с семидесятого года; time ≈ выдать время в секундах, начиная с семидесятого года; times ≈ возвращает суммарное время выполнения процесса и всех его потомков. alarm ≈ процесс посылает себе сигнал будильника; (Пример будильника:) main () { extern wakeup (); signal (SIGALARM, wakeup); while (1); { alarm (5); pause (); } } Опишем wakeup, обрабатывающий сигнал будильника: wakeup () { printf (“Я проснулся”); } В цикле заряжаем будильник на пять секунд. Процесс приостанавливается. Через пять секунд приходит сигнал будильника SIGALARM, и мы вызываем wakeup. Функции программы обработки прерываний по таймеру: 1. Перезапуск часов для выполнения, следующего тика. 2. Вызов на выполнение функций ядра, использующих встроенные часы. 3. Поддержка возможности выполнения процессов. time prog1 Программа prog1 вызывается на выполнение, и после выполнения выдается, сколько секунд она выполнялась. 4. Сбор статистики о системе и протекающих в ней процессах. 5. Слежение за временем. 6. Посылка процессом сигналов будильника по запросу. 7. Периодическое возобновление процесса подкачки. 8. Управление диспетчеризацией процессов.
Дата добавления: 2014-01-05; Просмотров: 319; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |