Таймери та управління часом

тслежіваніе ходу часу дуже важливо для ядра Велика кількість функцій, які виконує ядро, управляються часом (time driven), на відміну

від тих функцій, які виполянются по подіях

(Event driven) Деякі з

цих функцій виконуються періодично, як, наприклад, балансування черг виконання планувальника або оновлення вмісту екрану Такі функції викликаються відповідно з постійним планом, наприклад 100 разів на секунду Інші функції, такі як відкладені дискові операції введення-виподят, ядро ​​планує на виконання в деякий відносний момент часу в майбутньому Наприклад, ядро ​​може запланувати роботу на виконання в момент часу, який настане пізніше поточного на 500 мілісекунд Нарешті, ядро ​​повинно обчислювати час роботи системи (uptime), а також поточну дату і час

Слід звернути увагу на різницю між відносним і абсолютним часом Планування виконання деякої роботи через 5 секунд в майбутньому не вимагає врахування абсолютного часу, а тількивідносного (Наприклад, через пять секунд від поточного моменту часу) У розглянутій ситуації розрахунок поточної дати і часу вимагає від ядра не тільки обліку ходу часу, а й абсолютного вимірювання часу Обидві концепції є важливими для управління часом

Також слід звернути увагу па відмінності між подіями, які виникають періодично, і подіями, які ядро ​​планує на виконання в певний фіксований момент часу в майбутньому Події, які виникають періодично, скажімо кожні 10 мілісекунд, управляються системним, таймером Системний таймер – це програмований апаратний пристрій, який генерує апаратне переривання з фіксованою частотою Оброблювач цього переривання, який називається перериванням таймера (timer interrupt), оновлює значення системного часу і виконує періодичні дії Системний таймер і його переривання є важливими для роботи оператщонной системи Linux, і в поточній чолі їм приділяється головне увагу

1 Якщо бути точними, то функції, які е управляються часом, також управляються і подіями У цьому випадку подія відповідає ходу часу У цей й главі будуть розглянуті, в основному, події, керованими часом, так як вони зустрічаються дуже ь часто і є важливими для ядра

Крімтого, вэтойглавебудутрассмотреныдінаміческіетаймери (dynamictimers)– Засоби, що дозволяють планувати події, які виконуються один раз, після того як закінчився деякий інтервал часу Наприклад, драйвер накопичувача на гнучких магнітних дисках використовує таймер, щоб зупинити двигун дисковода, якщо дисковод неактивний протягом деякого періоду часу У ядрі можна динамічно створювати й ліквідувати таймери У цьому розділі розповідається про реалізацію динамічних таймерів, а також про інтерфейс, який доступний для використання в програмному коді

Джерело: Лав, Роберт Розробка ядра Linux, 2-е видання : Пер з англ – М: ТОВ «ІД Вільямс »2006 – 448 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*