Взаимодействие процессов.
Совместно выполняемые процессы могут быть либо независимыми, либо взаимодействующими. При взаимодействии процессов создается совместный буфер для взаимного обмена данными. Взаимодействие заключается в передаче данных между процессами или совместном использовании ресурсов и реализуется с помощью таких механизмов, как транспортеры, очереди, сигналы, семафоры.
Транспортеры (каналы) – являются средством взаимодействия родственных процессов, представляют собой область памяти, имеющую файловую организацию, для которой обеспечивается запись и считывание данных в транспортере.
Очереди – эти механизмы могут обеспечивать передачу или использование общих данных без перемещения данных, а с передачей элемента очереди, содержащего указатель данных и объем массива данных.
Сигналы – являются механизмами передачи требования от одного процесса к другому на немедленное выполнение действия. Характер выполняемых действий при возникновении сигнала: обработка системной ошибки при появлении сигнала, блокирование сигнала, передача управления подпрограмме.
Семафоры – являются механизмами передачи сообщений от одного потока к другому о наступлении некоторого события. Различают семафоры системные и оперативной памяти.
В операционных системах 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;