Разработка программной машины

Обычно из анализа программных машин, которые потенциально можно включить в большие системы, ясно, что определенные ресурсы ими используются согласно специальным правилам. В качестве примеров можно указать следующие: файловую систему (правила присвоения имени и организация внешней памяти, наиболее часто применяемые в программных цепочках), метод применения COMMON-блоков (вероятно, наиболее широко используемые базовые конструкции программного обеспечения САПР на Фортране совместно с правилами присвоения имен и организации разделяемой оперативной памяти), пакеты подпрограмм (организованные на основе правил присваивания имен процедурам и правил формирования списков их аргументов). Такие системы прекрасно функционируют только при их автономном использовании. Однако при объединении их в большую систему обычно возникают конфликты либо вследствие того, что некоторые «подсистемы» не допускают разделения определенных ресурсов, либо из-за конфликтующих правил использования разделяемых ресурсов. Для иллюстрации приведем несколько примеров. 1. Очевидно, что два независимых пакета подпрограмм нельзя использовать в одной программе, если для их совместной работы требуется объем памяти, больший того, который можно выделить программе. 2. Даже если каждый из пакетов имеет собственные средства динамического распределения памяти (как некоторые пакеты, написанные на Фортране, с подпрограммами на языке ассемблера), их совместное использование в произвольных сочетаниях может оказаться невозможным. Каждый из них может быть ограничен максимальным объемом памяти: право на использование ресурсов явно или неявно должно быть передано им с некоторого более высокого уровня организации программы. 3. Сказанное выше относится и к ресурсам специального вида, не поддающимся количественной оценке. Например, параллельная работа программных машин недопустима, если в каждой из них определенные глобальные имена (например, имена программ, файлов и COMMON-блоков) выбраны независимо. Предположим, что в одной программе используются два графических пакета: один — для представления данных, другой — для геометрического проектирования. Тогда, очевидно, конфликт неизбежен, так как вероятность того, что в оба пакета включены различные подпрограммы с одинаковыми именами, такими как, например, OPEN, CLOSE или PLOT, довольно высока.

Releated Post

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.