Обычные однонитевые драйверы не могут корректно работать в ядре, поддерживающем симметричную многопроцессорную обработку (SMP). Эти драйверы рассчитаны на то, что они обладают эксклюзивным доступом к структурам данных.
Также вам может показаться, что такая тема как http://fucker.kiev.ua/forum/thread29.html никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт fucker.kiev.ua. Тема travelgirl - travelgirls.com там представлена весьма широко. На том сайте можно узнать много интересного на тему travelgirl - travelgirls.com. Что означает вообще тема travelgirl - travelgirls.com, где найти travelgirl - travelgirls.com - про это написано на сайте fucker.kiev.ua. Это очень важная для многих людей тема - travelgirl - travelgirls.com. Спасибо сайту fucker.kiev.ua за информацию на тему travelgirl - travelgirls.com.
Защита таких структур построена на блокировке прерываний, что было эффективно только на однопроцессорных машинах [6]. Для нормальной работы в многопроцессорных средах необходима тщательная переработка однонитевых драйверов. Большинство глобальных данных необходимо защищать при помощи многопроцессорных примитивов синхронизации (МП- защита). Возможно, что потребуется защищать и регистры устройств, так как они могут оказаться доступными одновременно другим нитям драйвера.
Требование поддержки параллельности драйверов ничем не отличается от требований к остальной части ядра. Более подробно о параллельной работе читайте в разделе 7.10. Для реализации параллельности ядру необходимо экспортировать средства многопроцессорной синхронизации драйверам устройств. Кроме этого, возможно, потребуется изменить или полностью заменить функции, не обладающие МП-защитой, либо как-то ограничить их применение.
В системе SVR4/MP произведены некоторые изменения интерфейса DDI/ DKI. Во-первых, в него добавлен набор функций, позволяющий создателям драйверов использовать новые возможности синхронизации системы. В SVR4.2/MP поддерживаются три типа объектов многопроцессорной блокировки: простая блокировка, блокировка чтения-записи и блокировка сна. Эти объекты не рекурсивны, поэтому драйвер может войти в клинч при попытке получения уже удерживаемого объекта блокировки. Если объект простой блокировки или объект блокировки чтения-записи не может быть получен незамедлительно, вызывающий процесс способен перейти в состояние блокировки или ждущего цикла, в зависимости от реализации. В системе SVR4/MP также поддерживаются переменные синхронизации, сходные по функциям с условнъши переменными, описанными в разделе 7.7.
В раздел 3 был добавлен набор функций для выделения различных объектов синхронизации и работы с ними. В SVR4/MP также появились некоторые ограничения на уже существующие функции. В большинстве случаев эти ограничения не позволяют вызов функции во время удержания какого- либо одного, либо всех типов объектов блокировки.
В некоторых случаях в SVR4/MP была произведена замена функций на их эквиваленты, поддерживающие многопроцессорную обработку. При этом несколько изменился и интерфейс функций. Например, функция timeout() была заменена функцией itimeout(). Она имеет дополнительный параметр, в котором указывается уровень приоритета, с которым необходимо загрузить функцию. В систему добавлена новая функция dtimeout(), которая вызывает данную функцию на определенном процессоре. Функция timeout() сохранена из соображений обратной совместимости, но перенесена на второй уровень спецификации (дата переноса — 08.10.1991). Следовательно, необходимость поддержки этой функции утратила актуальность 8 октября 1994 года.
В SVR4/MP также был добавлен новый флаг D_MP параметра pre/irdevflag драйвера. Установка этого флага указывает на поддержку драйвером МП-защиты.
Если флаг сброшен, ядро обрабатывает все операции такого драйвера последовательно. Например, ядро может ассоциировать с драйвером объект глобальной блокировки и запрашивать его каждый раз при вызове любой процедуры драйвера.
Опубликовал katy
June 24 2015 16:50:09 ·
0 Комментариев ·
3006 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.