Производительность и реактивность при механизме опроса


Механизм опроса

Постановка задачи

Максимальное количество программ

1) Число векторов N в ТВП определено стандартом на процессор и системой команд.

 

2) Размер ТВП в N векторов означает, что в оперативную память ЭВМ не может быть одновременно загружено более N динамически вызываемых объектов.

 

3) Т.о. образом размер ТВП может серьезно ограничить возможности ЭВМ по одновременному выполнению большого числа программ, либо по выполнению очень мощных программ.

 

4) Размер ТВП некоторых ЭВМ:

а) IBM PC – 256;

б) Apple, Macintosh, многие рабочие станции – 4096-1024.

в) специализированные ЭВМ, которые работают с огромным числом подпрограмм – 64К.

 

 

3.15 Ввод/вывод. Механизм опроса.

1) Необходимо чтобы ЭВМ реагировала на внешние события, например на сигналы от внешних устройств о готовности ввести/вывести данные.

 

2) Реакция должна состоять в следующем:

а) приостановка выполнения текущей программы

б) вызов на выполнение соответствующей программы обработки внешнего события

 

3) Данная задача может решаться одним из двух способов: мех-м опроса или механизм прерываний.

 

4) Сначала будет рассмотрен более простой способ – механизм опроса.

 

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

 

2) Контроллер внешнего устройства выполняет:

а) в один из внешних управляющих регистров (А) в поле запроса прописывает 1

б) в другой внешний регистр (В) контроллер загружает номер вектора прерываний или адрес расположения в памяти нужной программы обработки внешнего события.

 

3) Программы, рассчитанные на механизм опроса, пишутся так, что периодически приостанавливают выполнение основного алгоритма и вызывают функцию ОС, называемую yelding – уступка управления.

 

4) ОС, получив управление, в порядке от самого приоритетного к менее приоритетным, проверяет биты запроса. Если при опросе обнаруживается установленный бит запроса, то из регистра В считывается номер вектора прерываний программы обработки внешнего события или ее адрес и запускается на выполнение.

 

5) Дальнейшее- зависит от программы обработки внешнего события, в зависимости от внешнего события она может вернуть управление прерванной программе, а может и нет.

 

 

Пусть максимальный промежуток времени между двумя yelding в прикладной программе tye, тогда время реакции на внешнее событие > tye.

1) Если программируем такую задачу, что tye велико снижается реактивность ЭВМ, поскольку внешние устройства долго дожидаются yelding.

 

2) Если tye мало, то слишком часто процессор отвлекается от выполнения основного алгоритма на проверку опросов. Падает производительность.

 

Вывод: приходиться выбирать tye и соответствующую политику yelding в программе, исходя из компромисса между производительностью и реактивностью.