Блокировки в вашем коде
Блокировки в вашем коде
Обеспечение безопасности кода при SMP-обработке — это не то, что можно откладывать на потом. Правильная синхронизация, блокировки без тупиковых ситуаций, масштабируемость и ясность кода- все это следует учитывать при разработке с самого начала и до самого конца. При написании кода ядра, будь то новый системный вызов или переписывание драйвера устройства, необходимо, прежде всего, позаботиться об обеспечении защиты данных от конкурентного доступа.
Обеспечение достаточной защиты для любого случая — SMP, вытеснение кода ядра и так далее — в результате приведет к гарантии того, что все данные будут защищены на любой машине и в любой конфигурации. В следующей главе будет рассказано о том, как это осуществить.
Теперь, когда мы хорошо подкованы в теории параллелизма, синхронизации и блокировок, давайте углубимся в то, какие существуют конкретные инструменты, предоставляемые ядром Linux, для того чтобы гарантировать отсутствие состояний конкуренции и тупиковых ситуаций в коде.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Никаких директив ifdef в исходном коде
Никаких директив ifdef в исходном коде Использование директив препроцессора ifdef в исходном коде категорически не рекомендуется. Никогда не следует делать чего-нибудь вроде следующего. ...#ifdef CONFIG_FOO foo();#endif ...Вместо этого, если макрос CONFIG_FOO не определен, необходимо
11.7.2. Изменения в коде
11.7.2. Изменения в коде Как только в parseCommand() будут правильно отражены структуры данных, то запуск команд в правильном порядке становится довольно простым при достаточном внимании к деталям. Прежде всего, мы добавляем цикл в parseCommand() для запуска дочерних процессов,
Поиск Google на вашем сайте
Поиск Google на вашем сайте В следующем листинге приведена форма, которая позволит искать информацию на вашем сайте. Чтобы все заработало, разместите этот HTML-код на своей странице и укажите свой адрес вместо mysite.com. Теперь посетители смогут искать интересующую их информацию
Приложение 2. Все о вашем трафике: Traffic Inspector
Приложение 2. Все о вашем трафике: Traffic Inspector П2.1. Программа Traffic Inspector Программа-брандмауэр Traffic Inspector, точнее ее разработчики, меня разочаровала. Сначала она была коммерческой и предназначалась для внутренних сетей коммерческих и производственных предприятий. Позже было
6. Варианты оплаты, которые должны быть на вашем сайте
6. Варианты оплаты, которые должны быть на вашем сайте Если у вас на сайте предусмотрен наложенный платеж, простая оплата с помощью банка для физических и юридических лиц, webmoney, системы Робокасса и РБК-money, то у вас есть все возможные способы оплаты. Ваш клиент не
Google Alerts – узнайте, что говорят о вашем сайте в Интернете
Google Alerts – узнайте, что говорят о вашем сайте в Интернете Вы никогда не задумывались о том, что пишут о вашем сайте в Интернете? Хотели бы вы мгновенно получать всю информацию о новинках в своей нише, о появившихся конкурентах и о том, какие значимые события происходят в
Закладки в программном коде
Закладки в программном коде Предположим, сейчас 3 часа ночи. Ваши глаза слипаются, и вас клонит ко сну, но сроки нещадно поджимают, и вы упорно отбиваете на клавиатуре строку за строкой довольно однообразный программный код. Вдруг - прилив вдохновения - вы понимаете, как
Приложение В. Посты из блога об инструментах и коде
Приложение В. Посты из блога об инструментах и коде В этом приложении приведено несколько постов из Google Testing
Символы форматирования в XML-коде комментариев
Символы форматирования в XML-коде комментариев Если открыть сгенерированный XML-файл, вы увидите, что элементы будут помечены такими символами, как "M", "T", "F" и т.п. Например:‹member name = "Т:ХmlDоcCar.Car"› ‹summary› Это тип Car, иллюстрирующий возможности
Роль меток в программном коде CIL
Роль меток в программном коде CIL Вы. конечно, заметили, что в каждой строке программного кода реализации содержится префикс в форме лексемы IL_XXX: (например, IL_0000: IL_0001: и т.д.). Эти лексемы называются метками кода, и они могут иметь любой вид, какой вы только пожелаете (лишь бы
Что это за странные конструкции $ifdef в коде?
Что это за странные конструкции $ifdef в коде? Все коды примеров, представленных в книге, за несколькими специальным образом помеченными исключениями, будут компилироваться в средах Delphi1, 2, 3, 4, 5 и 6, а также Kylix 1. (Впрочем, должны поддерживаться и будущие версии компиляторов.
Третье измерение теперь и в вашем доме Владимир Головинов
Третье измерение теперь и в вашем доме Владимир Головинов Samsung пока предлагает две модели 3D-панелей — с диагональю 46 и 55 дюймов, но уже в течение пары ближайших месяцев линейка таких устройств пополнится ещё тринадцатью аппаратами. Panasonic представила 50-дюймовый вариант
Кино и музыка на вашем компьютере
Кино и музыка на вашем компьютере Наш компьютер обладает еще одним замечательным достоинством. Он умеет показывать кино и прокручивать музыку. Для этого на нем установлено специальное устройство CD-ROM (или DVD-ROM), а у вас в красивой коробочке лежат