русс | укр

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

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

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

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


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

Очереди сообщений


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


Лекция 9.

1. CREAT PIPE (WRITE HANDLE, READ HANDLE, PIPE SIZE)

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

2. READ (READ HANDLE, BYTESREAD)

Оператор чтения из канала указывает число байт, которое намереваются прочесть.

3. WRITE (WRITE HANDLE, BYTE WRITE)

 

Это механизм, предназначенный для передачи информации от одного процесса к другому.

 

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

С точки зрения реализации очередь и каналы различаются.

  1. В отличие от канала, в котором обмениваются сообщениями только 2 процесса, в очереди обмен может происходить между многими процессами.
  2. Если для организации канала используется файл PIPE, то в очередях выделяется сегмент оперативной памяти.
  3. Любой процесс «Читатель» может читать сообщения выборочно, т.е. не в том порядке в каком они стоят в очереди, при этом если канал работает по принципу FIFO, то очередь использует 4 разных принципа (FIFO, LIFO, приоритетной выборки, произвольная выборка)
  4. После того как сообщения, каким- либо процессом- читателем прочитано, оно не удаляется из очереди и может читаться этим процессом или другим.
  5. Если в каналах непосредственно передаются данные, т.е. сообщения, то в очереди в действительности передаются не сообщения, а только адреса местоположения этих сообщений, с указанием размеров, т. е. Длин сообщений.

 



Число и синтаксис операторов управления очередью резко отличаются в разных ОС. Перечислим возможные функции операторов:

  1. Создание новой очереди.
  2. Открыть существующую очередь (такой оператор используется «читателем» для установления связи с очередью).
  3. Читать без удаления.
  4. Читать с удалением из очереди.
  5. Добавление сообщений в очередь.
  6. Завершение использования очереди.
  7. Определение числа сообщений в очереди. И др. различные операторы.

В качестве параметров может быть большое разнообразие:

 

  1. Идентификатор процесса
  2. Адрес и длина переданного сообщения.
  3. Отметка о том, что должен ли процесс читатель ждать пока очередь пуста.
  4. Приоритет сообщения или семафора.

 

 

Понятие тупиковой ситуации и выполнение

параллельных вычислительных процессов.

 

На практике могут часто возникать ситуации, когда 2 и более процессов претендуют на один и тот же ресурс(ы). При этом все они оказываются в заблокированном состоянии (состоянии ожидания, когда освободится нужный ресурс). Однако при этом ресурсы им не предоставляются.

Такая ситуация, когда процессы бесконечно долго ждут нужный ресурс называется тупиковой или тупиком.

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

При рассмотрении проблемы тупиков вводится понятие классов ресурсов. Ресурсы разделяются на 2 класса: первый - ресурсы повторно используемые (SR), второй - расходуемые (CR).

 

- Повторно используемые это ресурсы со следующими свойствами:

1. число единиц ресурса постоянное.

2. Каждая единица ресурса доступна только одному процессу.

3. Процесс может освободить единицу ресурса, только если ранее он ее получил.

К ресурсам типа SR относятся: основная память, внешняя память, периферийные устройства, файлы данных и др.

- Расходуемые ресурсы имеют следующие свойства:

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

2. Единицы ресурса, которые приобретены (расходованы) в общем случае не возвращаются ресурсу.

К ресурсам класса CR относятся: синхронизирующие сигналы; передаваемые сообщения; данные, порождаемые как программами, так и аппаратурой.

 



<== предыдущая лекция | следующая лекция ==>
Почтовые ящики | Лекция 10.


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


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

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

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


 


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

 
 

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

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