русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Сигналы.


Дата добавления: 2013-12-23; просмотров: 828; Нарушение авторских прав


Критическая секция

Параллельные процессы

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

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

Для того, чтобы избежать этой ситуация придуман и используется в различных языках программирования механизм блокировок «критическая секция», который гарантирует что только один поток/процесс находится в этом состоянии, остальные же потоки находятся в заблокированном состоянии и ожидают выхода процесса из этой части программы.

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

Примером асинхронного сигнала является сигнал с терминала – например нажатие CTRL-C для снятия процесса с выполнения. В результате нажатия этой комбинации клавиш ОС вырабатывает сигнал и направляет его активному процессу. В данном случае реакцией на сигнал является безусловное завершение процесса.



В системе может быть определен набор сигналов. Программный код процесса, которому поступил сигнал, может либо:

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

 

Наиболее часто используемые сигналы:

9 (KILL) – принудительное уничтожение процесса

15 (TERM) - программное завершение процесса

1 (HUP) - сигнал отбоя. Многие системные процессы при получении этого сигнала перечитывают свои конфигурационные файлы.

Иногда, правда, редко, процессы впадают в такие состояния, что их нельзя "убить" даже выдав команду kill -9 <pid>.

За сигналами SIGUSR1, SIGUSR2 не закреплено системных функций, они доступны для использования под любые цели.



<== предыдущая лекция | следующая лекция ==>
Алгоритмы планирования процессов | Процессы Windows


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.399 сек.