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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Пусть имеется совокупность процессов, каждый из которых в своем контексте содержит общий объект (процессор, буфер, принтер и др.), но в каждый момент времени его может использовать только один из процессов. В этом случае говорят, что данный объект представляет для процессов критический ресурс или процессы находятся в состоянии конкуренции за обладание ресурсом. Например, в рассмотренной схеме 2 процессор является критическим ресурсом для процессов p и q. Поставим в соответствие каждому реальному критическому ресурсу столько воображаемых копий этого ресурса, сколько имеется процессов, конкурирующих за обладание им. Каждая из этих копий называется виртуальным ресурсом. Например, для реализации выполнения процессов p и q имеем два виртуальных процессора. Введение виртуальных ресурсов позволяет перенести проблему взаимного исключения при организации доступа к соответствующим физическим ресурсам на организацию механизма выделения ресурсов.

 

 

 


Синхронизация процессов.

Процесс синхронизации процессов строится на основе двух основополагающих ограничениях:

1.
 

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

 

2. На условие, разрешающее переход некоторых точек трасс, на определенные процессы. Пусть даны N процессов p1…pn. Определим для них общую точку встречи, пока все другие процессы не достигнут ее.

 

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

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

Механизм, осуществляющий синхронизацию выполнения процессов, называется монитором. Блокировка и активизация процессов выражаются в процедурах с помощью условий.


Связь программ и данных.

Существует две, принципиально различные схемы выполнения программ: интерпретация (1) и компиляция (2).

Интерпретируемая программа
 

 

Компилируемая программа

 

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

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


Функционирование загрузчика

Основная функция загрузчика – представление объектной перемещаемой программы в абсолютной форме. Она состоит в замене всех адресов по отношению к началу модуля на абсолютные адреса. Для этого проводится предварительная работа на основе на фазе трансляции: записи, которые составляют объектный модуль, получают отметки, указывающие, содержаться ли в них перемещаемые адреса(r). В общем виде перемещаемый объектный модуль имеет вид:

 

 

В записи тела модуля указывается:

АДР – относительный адрес записи в модуле;

n – размер записи в байтах;

r – (1 – перемещаемый код)

(0 – неперемещаемый код)

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

Алгоритм загрузчика имеет следующие параметры вызова:

· имя файла;

· абсолютный адрес загрузки;

· идентификатор точки входа.

Загрузчик осуществляет подстановку: каждый относительный адрес А замещает на абсолютный А + НАЧ, где НАЧ – абсолютный адрес загрузки модуля.



4.2 Функционирование редактора связей.

Редактор связи получает на входе совокупность перемещаемых объектных модулей и строит из них абсолютный загрузочный модуль. Для этого необходимо:

1) Определить его адрес размещения;

2) Произвести модификацию перемещаемой информации;

3) Реализовать связь внешних ссылок;

Обычно составная программа имеет сложную систему ссылок. Так модуль А вызывает модули А1 и А2. В свою очередь модуль А1 вызывает модули А11 и А12. Кроме этого, все модули составной программы могут использовать модули стандартной библиотеки (например, использование мат. Функций sin, cos и др.). В соответствии со структурой составной программы строится система внешних ссылок.

При редактировании связей применяется двухпроходной алгоритм. На первой проходе строится план размещения модулей, и определяются абсолютные адреса всех внешних объектов, на втором обрабатываются ссылки на эти объекты.

После обработки редактором связей формат объектных модулей дополняется таблицей внешних ссылок, которая содержит идентификаторы всех внешних объектов, используемых модулем.

 

 


 

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

Входными параметрами редактора связей являются:

· адрес загрузки выполняемого модуля;

· имена файлов, содержащих связываемые модули;

· библиотеки для поиска неудовлетворённых ссылок.


Система управления файлами



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 47; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.168.172 (0.006 с.)