Взаимодействие процессов.

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

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

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

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

Семафоры – являются механизмами передачи сообщений от одного потока к другому о наступлении некоторого события. Различают семафоры системные и оперативной памяти.

 

В операционных системах OS/2 и Microsoft Windows существует специальный механизм для взаимодействия процессов в реальном масштабе времени. Этот механизм называется DDE (Dynamic Data Exchange – динамический обмен данными). Он стандартизирует процесс обмена командами, сообщениями и объектами для обра­ботки между задачами. Наиболее распространенным процессом, для которого используется DDE, является печать.

Другим интерфейсом для обмена данными является OLE (Object Linking and Embedding – связывание и встраивание объектов). Этот Интерфейс позволяет хранить объекты, созданные одной програм­мой, в объектах, созданных другой программой, а также редактиро­вать (печатать) их без нарушения целостности информации и свя­зей.

Одним из наиболее простых, удобных и интуитивных интерфей­сов межпрограммного взаимодействия является буфер обмена – Clipboard. Буфер обмена может содержать в себе один информаци­онный объект – фрагмент текста, рисунок и т.д. С помощью сис­темного вызова процесс может получить копию информации, со­держащейся в буфере обмена, или сам поместить объект в буфер, при этом старое содержимое буфера теряется. Таким образом, про­граммы получают простой, но эффективный способ обмена инфор­мацией в процессе своей работы.

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

Стратегии планирования процессора

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

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

3. Приоритетное планирование. Описанные ранее стратегии мо­гут рассматриваться как частные случаи стратегии приоритетного планирования. Эта стратегия предполагает, что каждому процессу приписывается приоритет, определяющий очередность предоставления ему ЦП. Обычно приоритет – это целое положительное число, находящееся в некотором диапазоне, например от 0 до 7 или от 0 до 1024. Будем считать, что чем меньше значение числа, тем выше приоритет процесса. Приоритеты назначаются, исходя из совокупности внутренних и внешних по отношению к операционной системе факторов.

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

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

Главный недостаток приоритетного планирования заключается в возможности блокирования на неопределенно долгое время низкоприоритетных процессов. Известен случай, когда в 1973 году в Массачусетском институте при остановке компьютера IBM 7094 в очереди готовых процессов были обнаружены процессы, представленные в 1967 году и все еще не выполненные.

4. «Карусельная» стратегия планирования – применяется в системах разделения времени. Процессы циклически перемещаются по очереди, получая ЦП на время, равное одному кванту. Новый процесс добавляется в хвост очереди. Если процесс не завершился в пределах выделенного ему кванта времени, его работа принудительно прерывается, и он перемещает­ся в хвост очереди.

5. Планирование с использованием многоуровневой очереди. Эта стратегия разработана для ситуа­ции, когда процессы могут быть легко классифицированы на не­сколько групп, например часто процессы разделяют на две группы: интерактивные (процессы переднего плана) и пакетные (фоновые). Стратегия многоуровневой очереди разделяет очередь готовых процессов на несколько очередей, в каждой из которых находятся процессы с одинаковыми свойствами. Взаимодействие очередей осуществляется по следующим прави­лам: ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях с более высоким приоритетом. Работа процесса из очереди с более низким приоритетом может быть приостановлена, если в одной из, очередей с более высоким приоритетом появился процесс.

6. Использование многоуровневой очереди с обратными связями. Обычная многоуровневая очередь не допускает перемещения процессов между очередями. Многоуровневая очередь с обратными связями предполагает, что процессы при определенных условиях могут перемещаться между очередями. Данная система наиболее быстро обслуживает все короткие по времени обслуживания запро­сы. Недостаток системы заключается в затратах времени на переме­щение запросов из одной опереди в другую. Данная стратегия является универсальной и сочетает в себе свойства всех рассмотренных раньше стратегий.

7. Приоритетная многочередная дисциплина обслуживания. Вновь поступающие в систему запросы устанавливаются не обязательно в 1-ю очередь, а в очередь в соответствии с имею­щимися приоритетами, которые определяются параметрами обслу­живания процессов.

Прерывания

Аппаратные прерывания

На уровне аппаратных средств, поддерживающих MS-DOS, есть система прерываний от аппаратных средств, каждое из которых ассоциировано с конкретным устройством. Каждое устройство, ожидающее обслуживания процессором, посылает контроллеру прерываний, который планирует обработку прерываний, запрос на прерывание. Каждое устройство имеет некоторый приоритет. Устройство с высшим приоритетом первым получает доступ к процессору раньше менее важных устройств. Когда контроллер прерываний решает, что прерывание может быть обработано, он посылает на устройство сообщение "подтверждение приема прерывания", блокирует все остальные прерывания и генерирует прерывание. В ответ на конкретное аппаратное прерывание, процессор ищет адрес обработки прерывания в таблице векторов прерываний (IVT). Эта таблица занимает 256 двойных слов (1024 байта) памяти. Каждая ее строка содержит адрес подпрограммы обработки прерывания (ISR).

Процессор запоминает текущие флаги и программный счетчик (CS:IP) и начинает обслуживание прерывания. ISR делает все необходимое для обслуживания прерываний. В некоторый момент ISR посылает сообщение о конце прерывания (EOI) контроллеру 8259, означающее, что он готов принять запрос на обслуживание следующего прерывания. Контроллер прерываний не будет принимать прерывания от этого или других устройств с более низким приоритетом, пока не получит этого сообщения. После того, как ISR сделала свою работу, она выполняет команду IRET, которая восстанавливает флаги и первоначальный CS:IP.








Дата добавления: 2016-02-13; просмотров: 8098;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.