Что требует защиты
Что требует защиты
Жизненно важно определить, какие данные требуют защиты. Так как любой код, который может выполняться параллельно, может потребовать защиты. Вероятно, легче определить, какие данные не требуют защиты, и работать дальше, отталкиваясь от этого. Очевидно, что все данные, которые доступны только одному потоку выполнения, не требуют защиты, поскольку только этот поток может обращаться к этим данным. Например, локальные переменные, которые выделяются в автоматической памяти (и те, которые находятся в динамически выделяемой памяти, если их адреса хранятся только в стеке), не требуют никаких блокировок, так как они существуют только в стеке выполняющегося потока. Точно так же данные, к которым обращается только одно задание, не требуют применения блокировок (так как один поток может выполняться только на одном процессоре в любой момент времени).
Что же тогда требует применения блокировок? Это — большинство глобальных структур данных ядра. Есть хорошее эмпирическое правило: если, кроме одного, еще и другой поток может обращаться к данным, то эти данные требуют применения какого-либо типа блокировок. Если что-то видно кому-то еще — блокируйте его. Помните, что блокировать необходимо данные, а не код.
Параметры КОНФИГУРАЦИИ ядра: SMP или UP
Так как ядро операционной системы Linux может быть сконфигурировано на этапе компиляции, имеет смысл "подогнать" ядро под данный тип машины. Важной функцией ядра является поддержка симметричной многопроцессорной обработки (SMP), которая включается с помощью параметра конфигурации ядра CONFIG_SMP. На однопроцессорной (uniprocessor, UP) машине исчезают многие проблемы, связанные с блокировками, и, следовательно, если параметр CONFIG_SMP не установлен, то код, в котором нет необходимости, не компилируется в исполняемый образ ядра. Например, это позволяет на однопроцессорной машине отказаться от накладных расходов, связанных со спин-блокировками. Аналогичный прием используется для параметра CONFIG_PREEMPT (параметр ядра, который указывает, будет ли ядро вытесняемым). Такое решение является отличным проектным решение, поскольку позволяет использовать общий четкий исходный код, а различные механизмы блокировок используются при необходимости. Различные комбинации параметров CONFIG_SMP и CONFIG_PREEMPT на различных аппаратных платформах позволяют компилировать в ядро различные механизмы блокировок.
При написании кода необходимо обеспечить все возможные варианты защиты для всех возможных случаев жизни и всех возможных сценариев, которые будут рассмотрены.
При написании кода ядра следует задать себе следующие вопросы.
• Являются ли данные глобальными? Может ли другой поток выполнения, кроме текущего, обращаться к этим данным?
• Являются ли данные совместно используемыми из контекста процесса и из контекста прерывания? Используют ли их совместно два обработчика прерываний?
• Если процесс во время доступа к данным будет вытеснен, может ли новый процесс, который запланирован на выполнение, обращаться к этим же данным?
• Может ли текущий процесс перейти в состояние ожидания (заблокироваться) на какой-либо операции? Если да, то в каком состоянии он оставляет все совместно используемые данные?
• Что запрещает освободить память, в которой находятся данные?
• Что произойдет, если эта же функция будет вызвана на другом процессоре?
• Как все это учесть?
Если коротко, то почти все глобальные данные требуют применения тех или других методов синхронизации, которые будут рассмотрены в следующей главе.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Глава 12 Сетевые защиты
Глава 12 Сетевые защиты БрандмауэрыБрандмауэры впервые появились на поездах. У паровозов, топившихся углем, в машинном отделении топливо находилось поблизости от топки. Машинист лопатой бросал уголь в топку. При этом образовывалась легко воспламеняющаяся угольная пыль.
1.2. Способы защиты в новой ОС
1.2. Способы защиты в новой ОС Контроль учетных записей пользователей (UAC)Механизм UAC (или UAP, что является синонимом) призван повысить общую защищенность операционной системы Windows Vista. Он позволяет запускать с пониженными правами приложения, требующие системных функций или
Уровни защиты
Уровни защиты AS/400 предназначены для широкого применения в различных областях человеческой деятельности. Соответственно, и требования к их защищенности варьируются от уровня ее полного отсутствия до уровня защиты, сертифицированной правительством. Задавая
Отсутствие защиты (уровень 10)
Отсутствие защиты (уровень 10) Уровень 10 означает самую низкую степень защищенности — отсутствие таковой. Для доступа к системе не требуется пароля и любому пользователю разрешен доступ ко всем системным ресурсам и объектам без ограничений. Единственное условие —
4.6. Дополнительные возможности защиты
4.6. Дополнительные возможности защиты Помимо прав доступа у любого файла есть еще и атрибуты, которые позволяют построить дополнительную стену безопасности на пути взломщика. Единственное условие — атрибуты могут использоваться только на файловых системах Ext2 и Ext3. Но
Средства защиты rlogind
Средства защиты rlogind Средства защиты всех утилит, реализующих r-команды, в лучшем случае могут считаться устаревшими. А если подходить к этому вопросу с позиции современных требований, следует признать, что защита в них вовсе отсутствует. В частности, работа сервера rlogind
Средства защиты Telnet
Средства защиты Telnet После отображения начального сообщения, содержащегося в файле /etc/issue.net, telnetd передает управление /bin/login либо программе, указанной с помощью опции -L. Программа /bin/login предоставляет возможность локальной и удаленной регистрации в текстовом режиме. Она
Вопросы защиты при использовании VPN
Вопросы защиты при использовании VPN Система VPN призвана повысить безопасность при обмене по сети. Однако она же может открыть злоумышленнику доступ к сетевым ресурсам. Взаимодействие компьютеров и сетей посредством VPN условно показано на рис. 26.1, 26.2 и 26.6. Однако из этих
6.19 Средства защиты и безопасность
6.19 Средства защиты и безопасность Все хотят получить максимальные преимущества от коммуникаций, но благоразумный сетевой администратор всегда принимает меры, чтобы защитить ресурсы компьютеров от воздействия извне, в первую очередь от хакеров. Маршрутизаторы со
П2.5. Включение защиты компьютера
П2.5. Включение защиты компьютера По умолчанию для всех интернет-соединений активен сетевой экран (брандмауэр). Но не мешало бы включить защиту от SYN-атак. Перейдите в разделTrafficInspector (LOCAL) консоли управления. Вы увидите список сетей (см. рис. П2.4). Нажмите ссылку Нет в графе
Меры защиты
Меры защиты С точки зрения того, кто занимается перехватом ПЭМИ, сам перехват при наличии соответствующей аппаратуры технически не представляет собой чего-то фантастического, а если учесть тот факт, что процесс перехвата не требует активного вмешательства со стороны
Ключи защиты и их установка
Ключи защиты и их установка Электронные ключи применяются для защиты программного обеспечения от нелицензионного использования. Программа может работать только на том компьютере, на который в данный момент установлен ключ. Без такого ключа программа просто не
Игра не запускается, требует обновления DirectX
Игра не запускается, требует обновления DirectX DirectX – это библиотека для работы с графикой и звуком, разработанная компанией Microsoft, используется для создания игр и других программ, активно использующих графику. Некоторые игры могут требовать самых последних версий DirectX.
Незащищённая медтехника вредит вашему здоровью: минздрав США требует оградить пациентов от киберугроз Евгений Золотов
Незащищённая медтехника вредит вашему здоровью: минздрав США требует оградить пациентов от киберугроз Евгений Золотов Опубликовано 21 июня 2013 Знаете, что самое приятное в регулярных теоретических разговорах о надвигающемся киберапокалипсисе
Стандартные программы защиты
Стандартные программы защиты В большинстве случаев вирус, заразивший компьютер, помогут обнаружить уже разработанные программы-детекторы. Они проверяют, имеется ли в файлах на указанном пользователем диске специфическая для данного вируса последовательность байт. При