Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
купить дешевый 
компьютер родом из Dhgate.com




Lines Club

Ищем достойных соперников.

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Цилюрик О.И. Модули ядра Linux
Назад Внутренние механизмы ядра Вперед

Время и диспетчирование в ядре

Диспетчеризация в Linux выполняется строго по системному таймеру, на основании динамически пересчитываемых приоритетов. Приоритетов 140 (MAX_PRIO): 100 реального времени + 40 приоритетов «обычной» диспетчеризации, называемые ещё приоритетами nice (параметр nice в диапазоне от -20 до +19 — максимальный приоритет -20). Процессы, диспетчируемые по дисциплинам реального времени в Linux, это в достаточной мере экзотика, и они могут быть запущены только специальным образом (используя API диспетчеризации). Каждому процессу с приоритетом nice на каждом периоде диспетчирования, в зависимости от приоритета процесса, назначается период активности (timeslice) — 10-200 системных тиков, который динамически в ходе выполнения этого проценсса может быть ещё расширен в пределах 5-800, в зависимости от характера интерактивности процесса. На этом построена схема диспетчирования процессов в Linux сложности O(1) - не зависящая по производительности от числа диспетчируемых процессов, которой очень гордятся разработчики ядра Linux (возможно, вполне оправдано). Но всё это уже далеко выходит за пределы нашего рассмотрения... Нам же здесь важно зафиксировать, что все диспетчируемые изменения состояний системы происходят строго в привязке к шкале системных тиков.


Предыдущий раздел: Оглавление Следующий раздел:
Часы реального времени (RTC)   Параллелизм и синхронизация

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

Комментарии отсутствуют