• Купить ковры ручной работы

    Заказ новый раздел каталога, дизайн ковра ручной работы. Купить ковры ручной работы.

    www.sanamcarpet.com





Linux Kernel (Ядро линукса) (часть 1)


Программные таймеры и функции задержки

Таймер — это элемент программного обеспечения, который позволяет функциям стартовать в определенный момент в будущем, после истечения задан
ного интервала времени. Термин тайм-аут обозначает момент, в который истекает интервал времени, ассоциированный с таймером.

Таймеры широко применяются как ядром, так и процессами. Большинство драйверов устройств пользуется таймерами, чтобы распознать аномальные ситуации. Например, драйверы гибких дисков используют таймеры для отключения мотора устройства, если к дискете какое-то время нет обращений, а драйверы параллельных принтеров с помощью таймеров обнаруживают сбои в работе принтера.

Таймеры нередко используются и программистами для форсирования выполнения функций в определенный момент в будущем.

Реализовать таймер относительно легко. Каждый таймер имеет поле, показывающее, когда таймер должен сработать. Значение этого поля рассчитывается прибавлением соответствующего количества тиков к текущему значению переменной jiffies. Затем значение остается неизмененным. Всякий раз, когда ядро проверяет таймер, оно сравнивает поле срабатывания со значением jiffies в данный момент. Таймер срабатывает, когда переменная jiffies становится больше или равной сохраненному значению.

В Linux существует два типа таймеров: динамические таймеры и таймеры интервалов. Первые используются ядром, а таймеры интервалов могут быть созданы процессами в режиме пользователя.

Одно небольшое предостережение относительно таймеров в Linux: поскольку проверка таймеров всегда производится функциями отложенного выполнения, которые могут быть запущены через длительный промежуток времени после того, как были активированы, ядро не может гарантировать, что функции, запускаемые по таймеру, начнут работать сразу, как только время таймера истечет. Оно может лишь гарантировать, что они будут выполнены либо в указанное время, либо с задержкой до нескольких сотен миллисекунд. По этой причине таймеры не подходят для приложений реального времени, в которых время истечения интервала должно строго соблюдаться.

Кроме программных таймеров ядро пользуется также функциями задержки, которые выполняют плотный” цикл, пока не истечет заданный интервал времени.

Предыдущая страница | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | Следующая страница




Возможно, Вас также заинтересует:

ОС Knoppix - это Linux без проблем

ВведениеЕсли вы цените свое время, умеете считать деньги и знаете стоимость информации, то эта книга для вас. А так как к книге прилагается компакт- диск с готовой к работе операционной системой Knoppix Live CD, то лишь достаточно вставить его в привод и перегрузить компьютер,...

Linux Kernel (Ядро линукса) (часть 1)

Спин-блокировкаСпин-блокировка необходима в многопроцессорной системе, потому что могут возникнуть другие прерывания того же типа, и другие процессоры могут приступить к их обработке. Без спин-блокировки к главному дескриптору прерывания могли бы обратиться сразу несколько процессоров. Как мы...

Linux Kernel (Ядро линукса) (часть 2)

Копирование при записи В системах Unix первых поколений создание процесса было реализовано довольно неуклюже: получив системный вызов fork о, ядро в буквальном смысле дублировало все адресное пространство родителя и присваивало копию процессу-потомку. Такая операция...

Linux Kernel (Ядро линукса) (часть 3)

Буферы блоков и головы буферовУ каждого буфера есть дескриптор голова буфера, имеющий тип buffer head. Этот дескриптор содержит всю информацию, необходимую ядру для работы с блоком, так что перед обработкой блока ядро обязательно проверяет голову...