Cтраница 2
В приложении А мы даем обзор с пояснениями всех стандартных библиотечных функций; в приложении Б даем таблицу приоритетов и ассоциативности операций; приложение В содержит набор кодов ASCII для символов; в приложении Г обсуждаются двоичные, восьмеричные, десятичные и шестнадцатеричные системы счисления. Книга содержит обширный предметный указатель, позволяющий читателю найти в тексте любой термин или понятие по ключевым словам. [16]
В нескольких приложениях приводится ценный справочный материал. В частности, в приложении А мы представляем сводку синтаксиса С; сводка всех функций стандартных библиотек С приводится в приложении Б; таблица приоритетов и ассоциации операций дана в приложении В; приложение Г содержит таблицу ASCII-кодов символов; и, наконец, в приложении Д проводится обсуждение двоичной, десятичной, восьмеричной и шестнадцатеричной систем счисления. В основу приложения Б положен, с письменного разрешения Американского института национальных стандартов, документ стандарта ANSI; приложение является детальным, очень ценным для практического программиста материалом. Приложение Д является учебным пособием по системам счисления, в которое входят контрольные вопросы и упражнения. [17]
![]() |
Структура информации в зонах программы-диспетчера. [18] |
Для размещения информации, обеспечивающей работу данной программы, в оперативной памяти ЦВМ выделяются две зоны. В одной из них хранится таблица установленного приоритета основных подпрограмм. [19]
Поиск проблемной задачи осуществляется другим образом. Так как приоритет проблемных задач может изменяться динамически и позиция проблемной задачи в Таблице задач не определяет ее приоритета, то просмотр Таблицы задач нельзя осуществлять последовательно. Приоритет проблемных задач определяется по Таблице приоритетов, адрес которой находится в Таблице адресов. В этой таблице проблемные задачи располагаются в порядке их приоритетов. [20]
Просмотр Таблицы задач для поиска проблемной задачи ведется в соответствии с Таблицей приоритетов. Если критерий выполнен, то проблемная задача считается выбранной. Если критерий не удовлетворен, обрабатывается следующая задача из Таблицы приоритетов. [21]
В отличие от приоритета системных задач приоритет проблемных задач не зависит от номеров занимаемых ими входов и может быть изменен во время выполнения по отношению к другим проблемным задачам. При этом изменение приоритета проблемной задачи не означает физического перемещения входа внутри Таблицы задач. Фиксация приоритета проблемных задач с соответствующим перемещением осуществляется с помощью Таблицы приоритетов задач. [22]
Трансляция инфиксных выражений в постфиксные. Один из обычных методов трансляции выражений состоит в том, что инфиксные выражения сначала транслируются в постфиксную ( обратную польскую) запись. Затем обратная польская запись сразу или после оптимизации транслируется в машинные команды. Процесс трансляции в обратную польскую запись основан на использовании стека и таблицы приоритетов. [23]
Таблица адресов является одной из основных управляющих таблиц Супервизора. Она предназначена для организации быстрого доступа к любой управляющей таблице и содержит адреса основных таблиц, используемых Супервизором и другими компонентами операционной системы, а также некоторую информацию, характеризующую текущее состояние этих таблиц. Структура и размер Таблицы адресов зависят от мощности операционной системы ( наличия тех возможностей, которые предоставляются программисту), числа таблиц, используемых Супервизором. В ней хранятся адреса Таблицы информации об устройствах, Таблицы задач, Списка распределенной памяти, Очередей каналов, Указателя памяти, Таблицы приоритетов проблемных задач, Списка сообщений оператора, Области связи с Супервизором, флаги состояния таблиц, число Р2 программ в данной конкретной конфигурации Супервизора, полученной при генерации операционной системы, номер задачи, которой Супервизор передал управление, и другая информация. [24]
В процессе работы системы отдельные подпрограммы могут записывать в шкалу приоритетов условные и безусловные заявки на работу тех или иных подпрограмм, в том числе и на самих себя. При записи заявок в шкалу приоритетов применяется непрямая адресация через таблицу приоритетов, обращение в которую выполняется по порядковому номеру / вызываемой подпрограммы. Выбор очередной подпрограммы для включения в счет в данный момент времени осуществляется диспетчером путем последовательного анализа кодов заявок в шкале приоритетов. Анализ ведется в порядке убывания приоритетности заявок и начинается всегда с заявки самого высокого приоритета. Заявки равного приоритета анализируются в порядке их поступления, а их количество учитывается в отдельной буферной зоне памяти. Как только найдена ячейка с безусловной заявкой, эта заявка стирается и включается в счет соответствующая ей основная подпрограмма. Для выполнения перехода к этой подпрограмме используется ее начальный адрес AJ, хранящейся в таблице приоритетов. [25]