Состояния конкуренции, связанные с таймерами

Состояния конкуренции, связанные с таймерами

Так как таймеры выполняются асинхронно по отношению к выполняемому в данный момент коду, то потенциально могут возникнуть несколько типов состояний конкуренции за ресурсы. Во-первых, никогда нельзя использовать следующий код, как замену функции mod_timer().

del_timer(my_timer);

my_timer->expires = jiffies + new_delay;

add_timer(my_timer);

Во-вторых, практически во всех случаях следует использовать функцию del_timer_sync(), а не функцию del_timer(). В противном случае нельзя гарантировать, что обработчик таймера в данный момент не выполняется. Представьте себе, что после удаления таймера код освободит память или каким-либо другим образом вмешается в ресурсы, которые использует обработчик таймера. Поэтому синхронная версия более предпочтительна.

Наконец, необходимо гарантировать защиту всех совместно используемых дан- пых, к которым обращается функция-обработчик таймера. Ядро выполняет эту функцию асинхронно по отношению к другому коду. Совместно используемые данные должны защищаться так, как рассматривалось в главах 8 и 9.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.16.2 Поводы для конкуренции

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

5.16.2 Поводы для конкуренции Поводов для конкуренции при выполнении системной функции unlink очень много, особенно при удалении имен каталогов. Команда rmdir удаляет каталог, убедившись предварительно в том, что в каталоге отсутствуют файлы (она считывает каталог и проверяет


Связанные документы

Из книги Реестр Windows автора Климов Александр

Связанные документы В последних версиях Windows появилось понятие сопоставленных файлов. Например, если вы собираетесь переместить или удалить html-документ, то будут также перемещены или удалены и сопоставленные с этим документом файлы, которые содержаться в папке


Проблема конкуренции и роль синхронизации потоков

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Проблема конкуренции и роль синхронизации потоков Одним из множества "преимуществ" (читайте источников проблем) многопоточного программирования является то, что вы имеете очень узкие возможности контроля в отношении использования потоков операционной системой и


Связанные файлы

Из книги Adobe InDesign CS3 автора Завгородний Владимир

Связанные файлы В связи с тем что в профессиональной графике файлы изображений могут достигать большого размера – действительно большого, десятки и сотни мегабайт, – многие программы макетирования и верстки не включают файлы изображений в документ. Так поступает и


48 Связанные объекты

Из книги Человеческий фактор в программировании автора Константин Ларри Л

48 Связанные объекты Что делает тот или иной предмет легким для понимания? Что делает тот или иной предмет простым в использовании? Что превращает совокупность объектов — не отдельных, а представленных в определенном контексте — в набор рабочих инструментов? Возьмем


Ошибки, связанные с сетью

Из книги Очень хороший самоучитель пользователя компьютером. Как самому устранить 90% неисправностей в компьютере и увеличить его возможности автора Колисниченко Денис Николаевич

Ошибки, связанные с сетью Большинство ошибок, связанных с сетью (табл. 6.2), под силу исправить только администратору сети. Вам лишь нужно понимать, что произошло. Ведь не всегда нужно жаловаться администратору. Например, ошибка 1215 – это сугубо пользовательская ошибка:


У15.5 Связанные стеки

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

У15.5 Связанные стеки Основываясь на классах STACK и LINKED_LIST, постройте класс LINKED_STACK, описывающий реализацию стека как связного


1.7.4 Связанные документы

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

1.7.4 Связанные документы Серия RFC не содержит спецификаций протоколов и была опубликована как отдельный набор документов For Your Information (FYI — К вашему сведению). Например: RFC 1325 Answers to commonly asked "new Internet user" questions (Ответы на наиболее распространенные вопросы новых пользователей


Зачем выходить из ценовой конкуренции

Из книги Удвоение продаж в интернет-магазине автора Парабеллум Андрей Алексеевич

Зачем выходить из ценовой конкуренции Для интернет-магазина ценовая конкуренция – прямой путь к банкротству (насколько быстрый – другой вопрос). Ее могут позволить себе только крупные фирмы за счет своих гигантских оборотов.Нужно понимать, что в любой нише Интернета


Бонус № 3. Принцип УТП, гарантированно повышающий эффективность рекламы независимо от конкуренции

Из книги MySQL 5.0. Библиотека программиста автора Гольцман Виктор Иосифович

Бонус № 3. Принцип УТП, гарантированно повышающий эффективность рекламы независимо от конкуренции В современных условиях интернет-бизнеса трудно предложить потребителю то, чего еще не предлагали ваши конкуренты. С каждым днем все сложнее вырабатывать свою, отличную от


6.4. Проблемы, связанные с блокировками

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

6.4. Проблемы, связанные с блокировками В этом разделе мы рассмотрим только внутренние блокировки, используемые сервером MySQL при совместной работе нескольких потоков с одними и теми же данными, и не коснемся внешних блокировок, обеспечивающих координацию работы сервера


Параметры, связанные с коммуникацией

Из книги Домашний доктор для вашего ПК автора Виноградов Алексей Степанович

Параметры, связанные с коммуникацией ConnectionTimeoutВерсия 1.5 и более поздние.connection_timeoutВерсии, предшествующие Firebird 1.5.Задает количество секунд ожидания до прекращения попытки соединения. Значение по умолчанию 180.DummyPacketlntervalВерсия 1.5 и более поздние.dummy_packet_intervalВерсии,


5.3 Мониторинг состояния системы, устранение ошибок, восстановление утерянных файлов и защита данных Анализ состояния аппаратной части системы

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Введение Как и всякая техника, персональный компьютер нуждается в техническом обслуживании, настройке и наладке. Небрежное отношение к своей машине приводит к тому, что работа компьютера становится нестабильной и не эффективной. А потом происходит сбой, и компьютер


23.11. Управление таймерами

Из книги Разработка ядра Linux автора Лав Роберт

23.11. Управление таймерами Протокол SCTP имеет множество численных пользовательских параметров. Все они устанавливаются через параметры сокетов, рассмотренные в разделе 7.10. Далее мы займемся рассмотрением нескольких параметров, определяющих задержку перед объявлением об


Критические участки и состояние конкуренции за ресурсы

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

Критические участки и состояние конкуренции за ресурсы Ветки кода, которые получают доступ к совместно используемыми данным и манипулируют ими, называются критическими участками (critical region). Обычно небезопасно нескольким потокам выполнения одновременно обращаться к


Задания, связанные с ЕГЭ по информатике

Из книги автора

Задания, связанные с ЕГЭ по информатике Начиная с версии 4.10, задачник Programming Taskbook включает набор групп заданий, связанных с ЕГЭ по информатике и ИКТ. Эти группы начинаются с префикса Exam; они доступны для программных сред языков Pascal (в том числе PascalABC.NET) и C++.В базовый набор