Разбиение - программа - Большая Энциклопедия Нефти и Газа, статья, страница 4
Теорема Гинсберга: Ты не можешь выиграть. Ты не можешь сыграть вничью. Ты не можешь даже выйти из игры. Законы Мерфи (еще...)

Разбиение - программа

Cтраница 4


В связи с требованиями, предъявляемыми конструкторами систем с разделением времени, проблема повторной загрузки в памяти стояла при развитии концепции виртуальной памяти столь же остро, как и проблема разбиения программы на части. Первый шаг в этом направлении был сделан фирмой IBM [ 18J и Массачусетсом технологическим институтом [19] при разработке совместимых систем с разделением времени. Во время выполнения этой программы содержимое регистра загрузки складывается с каждым исполнительным адресом для определения соответствующей ячейки основной памяти. Хотя использование регистра загрузки и помогает решить проблему загрузки в память, проблема разбиения программы на части остается нерешенной, поскольку программа пользователя должна полностью находиться в основной памяти.  [46]

При разработке первой очереди драйверных программ для программно-управляемых средств АСЭТ, применяемых в ИВК-7 и ИВК-8, с ориентацией в качестве типового ПО на интерпретатор ДС СМ ЭВМ и на расширенные версии ДС ИВК в качестве основных были приняты следующие положения: наличие драйверных функций, позволяющих обращаться к каждому прибору в отдельности, обеспечивающих большую гибкость; простота и наглядность при обращении к драйвер-ным функциям; наличие средств контроля правильности обращения к драйверным функциям с диагностикой возможных ошибок; слежение за текущим состоянием приборов с выдачей соответствующих диагностических сообщений в случае их сбоев или отказов; максимальное использование средств интерпретатора с целью экономии оперативной памяти; разбиение программ, реализующих драиверные функции, на модули для выделения частей общих программных, связанных с согласованием специальных форматов данных с типовым машинным форматом и независимых от применяемого типового ПО; применение, где это возможно, буферизации данных для исключения простоев процессора; введение драйверных функций по устойчивым алгоритмам массовых измерений, повышающих эффективность ИВК; возможность генерации набора драйверных функций для заданного состава приборов.  [47]

Другим аспектом структурного программирования является такое написание программы, которое позволило бы людям легко ее прочесть и понять. Разбиение программы на модули и присвоение каждому модулю и переменной имени, соответствующего выполняемой функции, помогает сделать программу более читабельной.  [48]

На этом этапе осуществляется разбиение общей задачи, которую необходимо решить, на отдельные фрагменты путем выделения взаимодействующих между собой программных модулей. Разбиение программ на модули может иллюстрироваться и документироваться блок-схемой, которая показывает взаимосвязи между модулями. После того как определена структура программы и структуры ее данных, можно приступить к детальной проработке алгоритмов и наборов данных.  [49]

Поэтому желательно, чтобы каждый оператор анализируемой схемы представлял достаточно крупное задание, например вычисление процедуры или подпрограммы. Такое естественное разбиение программы не всегда возможно, приходится разбивать программу на некоторые произвольные части.  [50]

Именно на таких читателей рассчитана эта книга, именно на такой подход к отладке указывает термин индивидуальная в названии книги. Вопросы разбиения программ на независимые части, особенности комплексной отладки затрагиваются лишь по отношению к работе одного программиста.  [51]

52 Структурная схема системы ПАРИС. [52]

Выбор такой структуры определяется, прежде всего, стремлением к максимальному использованию оперативной памяти машины. Метод разбиения программы на блоки ( или сегменты) появился в программировании как прием, позволяющий в определенной мере преодолеть ограничения на размеры памяти, с которыми приходится сталкиваться в процессе реализации больших систем. Ограниченные размеры пцмяти приводят к необходимости сегментации не только самой системы, но и исходной информации, так как все данные, подлежащие обработке, обычно не помещаются в МОЗУ одновременно. Следующий блок считывает эти данные в МОЗУ и выполняет свой этап преобразования, подготавливая материал для работы очередного блока. Так продолжается до тех пор, пока не будет решена вся задача. Само собой разумеется, что сами блоки системы не находятся в оперативной памяти и, в свою очередь, поочередно вызываются туда, так что никакие два блока одновременно в МОЗУ находиться не могут.  [53]

Перед программистом задача разбиения программы на части встает в том случае, когда объем его программы превосходит объем основной памяти. Часто используют схему разбиения программы на части [17], в которой объем основной памяти распределяется между отдельными сегментами программной иерархии.  [54]

Когда назначены уровни прерывания, разработчики могут перейти к распределению функций между подпрограммами. Существует две причины для разбиения программы на части или подпрограммы. Первая причина состоит в применении принципа разделяй и властвуй; сложные функции выполняются группой программ, реализующих частные задачи. Вторая причина заключается в том, что для реализации некоторых функций необходимо выполнение сходной последовательности операций, возможно, над различными исходными данными. Часто можно уменьшить затраты памяти, создав-подпрограммы, которые собирают все необходимые данные, а затем выполняют требуемые операции. В настоящем разделе излагаются соображения, влияющие на разделение программы на подпрограммы.  [55]

Разбиение программы на операторы не является однозначным; чрезмерное дробление операторов нецелесообразно, так как это усложняет логическую схему программы. Чаще всего выбирают такое разбиение программы на операторы, при котором логическая схема проще и требует меньших затрат труда программиста.  [56]

Бейсик не является модульным языком. Большинство версий Бейсика предусматривает разбиение программ на процедуры, называемые подпрограммами. Однако многие из этих версий требуют при этом, чтобы все подпрограммы обрабатывались одновременно с целью уменьшения потоков информации между подпрограммами. Таким образом, программа состоит из единственного модуля и все данные являются модульными по определению. Следовательно, описания модуля не требуется.  [57]

Для того чтобы структурное программирование достигло своей цели, программа должна иметь модульную струк туру. Модульное программирование заключается в разбиении программы на логические части и в последовательном программировании каждой части. После разделения большой монолитной задачи на меньшие логические части, которые более удобны для работы, ее легче понять, прочитать и запрограммировать.  [58]



Страницы:      1    2    3    4