Механизм опроса
Постановка задачи
Максимальное количество программ
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) Дальнейшее- зависит от программы обработки внешнего события, в зависимости от внешнего события она может вернуть управление прерванной программе, а может и нет.