Cтраница 2
В табл. 11 - 1 иллюстрируются действия планирующей программы по организации очереди целевых программ. [16]
Для установления очередности между выбранными для исполнения программами планирующая программа должна снова просмотреть заголовки целевых программ. Могут быть установлены различные критерии очередности. Следующей назначается программа с наибольшими требованиями к объему оперативной памяти. Если все условия равны, то выбирается программа с наименьшим номером. [17]
Один из интересных моментов связан с вопросом, когда планирующая программа должна прекращать работу. В таком плане каждый из операторов может дать любой из описанных исходов, и план при этом все-таки приведет к успеху. В этой ситуации мы знаем, что ни один из планов дерева не приведет к успеху независимо от исходов отдельных операторов. Вершина считается полностью развернутой, когда все возможные дочерние вершины включены в дерево. [18]
Каждая целевая программа снабжается заголовком, указывающим требуемый объем памяти, число и виды периферийных устройств, оценочное время прогона и другие параметры. Планирующая программа содержит список наличных вычислительных средств и, сверяя его с программными требованиями, определяет, какие программы должны начинать работать немедленно, какие должны быть поставлены на очередь к данным средствам. Очередь программ перепроверяется при каждой смене циклов активности, поскольку память, периферийные устройства и другие средства могут освобождаться. [19]
Активный цикл программы № 1 заканчивается в нашем примере требованием ввода-вывода. Планирующая программа должна поставить программу № 1 в очередь на ввод-вывод, но так как в данный момент в этой очереди нет других программ, планирующая программа немедленно вводит в действие программу управления периферийными устройствами. [20]
Каждая целевая программа снабжается заголовком, указывающим требуемый объем памяти, число и виды периферийных устройств, оценочное время прогона и другие параметры. Планирующая программа содержит список наличных вычислительных средств и, сверяя его с программными требованиями, определяет, какие программы должны начинать работать немедленно, какие должны быть поставлены на очередь к данным средствам. Очередь программ перепроверяется при каждой смене циклов активности, поскольку память, периферийные, устройства и другие средства могут освобождаться. [21]
Если планирующая программа находит какую-то неоспори-создать новую вершину для представления этого факта вместе с новым подтверждением для N3 в терминах этой новой вершины. [22]
Предшествовавшие планирующие программы включали операторы в план по мере их исполнения при обратном прохождении от целевых состояний. [23]
В качестве основного управляющего процесса в системе DENDRAL служит последовательность порождение и проверка. Кроме того, возникла необходимость в дополнительной планирующей программе, предназначенной для выработки ограничений, которые учитываются порождающей и проверяющей программами. Таким образом, полный цикл включает планирование-порождение-проверку. Перед началом анализа химик с помощью системы DENDRAL, используя планирующую программу, получает по масс-спектру соединения список нужных и запрещенных оснований. Такие списки помогают отобрать структуры, представ-ляемые порождающей программой. В результате сокращается количество возможных конфигураций, подлежащих проверке. [24]
В этом режиме, как и при параллельной обработке / имеющиеся в пакете программы выполняются поочередно, в течение некоторого отрезка времени, отводимого каждой программе. Длительность этого отрезка, как правило, меняется в зависимости от конкретной программы, что достигается с помощью специальной планирующей программы, входящей в состав операционной системы ЭВМ. Эта программа использует систему приоритетов, разрабатываемую таким образом, чтобы почти мгновенно реагировать на программы, связанные с коротким временем обслуживания, не слишком задерживая при этом выполнение длинных программ и обеспечивая тем самым оптимизацию времени ответа. Отметим, что при этом режим с разделением времени не является оптимальным с позиций производительности вычислительной машины. [25]
Активный цикл программы № 1 заканчивается в нашем примере требованием ввода-вывода. Планирующая программа должна поставить программу № 1 в очередь на ввод-вывод, но так как в данный момент в этой очереди нет других программ, планирующая программа немедленно вводит в действие программу управления периферийными устройствами. [26]
Опрос пультов программой обслуживания должен происходить достаточно часто, обычно несколько раз в секунду. Программа может просматривать состояние выходных шин пультов, либо система связи с пультами может быть организована так, что просматривается содержимое специально отведенной для данной цели ча: ти памяти, куда пульты записывают свои сообщения независимо от программы. До тех пор пока сообщения не окончены, программа обслуживания компонует их слог за слогом в некоторой другой части памяти; после окончания сообщения программа обслуживания информирует планирующую программу о запрошенном пультом действии. Использование системы прерывания позволяет организовать обслуживание пультов на приоритетной основе. В некоторых вычислительных системах применяются оба подхода: часть пультов обслуживается с помощью программного опроса, часть - с помощью прерывания. [27]
Рассмотренные программы, входящие в супервизор, обеспечивают диспетчирование работ, соответствующих основным программам, заранее подготовленным для выполнения. По мере окончания основных программ на их место должны вводиться новые программы, которые обеспечат необходимую последующую загрузку вычислителя и внешних устройств системы. Перед тем как программа будет подготовлена к выполнению, необходимо ввести программу в память, перевести программу на машинный язык с использованием транслятора и, возможно, подготовить исходные данные для программы путем их ввода в память системы. Для подготовки программ к их выполнению используется планирующая программа, которая является частью супервизора. [28]
По этой причине программа из списка подлежащих решению задач может включаться в список выполняемых работ не раньше, чем будет закончено выполнение ранее начатой программы. При наличии нескольких подлежащих решению задач встает вопрос о выборе одной из них для включения в работу. Выбор задачи производится из условия обеспечения загрузки всех устройств. С этой целью подлежащие решению задачи классифицируются планирующей программой по типу наиболее интенсивно используемых в них устройств, в результате чего определяются подсписки задач, составляющих потоки работ для устройств ввода-вывода, вычислителя и ВЗУ. Задачи, связанные с большим временем вычислений, помещают в подсписок работ для вычислителя, в то время как задачи, требующие небольшого объема вычислений, включаются в подсписок работ к некоторому периферийному устройству. При появлении новой очередной заявки на решение задачи заявка включается планирующей программой в наиболее подходящий для нее подсписок. [29]
В качестве основного управляющего процесса в системе DENDRAL служит последовательность порождение и проверка. Кроме того, возникла необходимость в дополнительной планирующей программе, предназначенной для выработки ограничений, которые учитываются порождающей и проверяющей программами. Таким образом, полный цикл включает планирование-порождение-проверку. Перед началом анализа химик с помощью системы DENDRAL, используя планирующую программу, получает по масс-спектру соединения список нужных и запрещенных оснований. Такие списки помогают отобрать структуры, представ-ляемые порождающей программой. В результате сокращается количество возможных конфигураций, подлежащих проверке. [30]