- •Лекция 1. Организационно-экономическое управление - объект
- •2. Любая система, реализующая функции управления, называется системой управления (су).
- •3. В 18 веке объем человеческих знаний удваивался каждые 50 лет, а сейчас - каждые 2-3 года.
- •Лекция 2. Основы построения и функционирования эвм.
- •Лекция 3. Аппаратные и программные средства компьютерных систем.
- •3. А) Создание семейств эвм обеспечивает большую экономию по срав
- •3. Текстовые процессоры (текстовые редакторы). Наиболее используемые - лексикон, Word, Wordstar, Chiwriter.
- •1) Языки программирования низкого уровня; 2) языки программирования высокого уровня. Языки программирования, являющиеся относительно зависимыми
- •80% Денежных средств было выделено на испытание "Апполона" при полёте на Луну; но всё равно всех ошибок выявить не удалось.
- •2. Ммвк представляют такие вс, которые состоят из множества от
- •2) Через канал прямого управления (кпу); 3) через адаптер канал - канал соединяютсь ск двух эвм. Прямосвязанные комплексы позволяют осуществлять все способы
- •III) По характеру связи объединение эвм может осуществляться на принципах сателлитной связи.
- •3. Многопроцессорные вычислительные комплексы (мпвк) представ
- •2) Соединение с перекрёстной коммутацией (этот способ полностью лишён недостатков способа на основе общей шины);
- •3) Объединение мпвк через многовходовые озу.
- •4. Режим работы вычислительной системы определяется возмож
- •2) По характеру оперативности работы пользователя: а) пакетный режим, б) оперативный режим работы.
1) Языки программирования низкого уровня; 2) языки программирования высокого уровня. Языки программирования, являющиеся относительно зависимыми
от организации и принципов работы конкретной ЭВМ, являются языками низкого уровня. Как правило языки этого типа при программировании допускают указания конкретных физических средств (устройств), распределение пространства памяти, явное задание или определение внешних устройств и т. д. К этому классу относятся машиноориентированные и машинозависимые языки.
Языки высокого уровня - языки программирования, средства которых допускают описание проблемы в популярном легковоспроизводимом виде. Для этих языков характерны такие возможности, как написание выражений, символическая идентификация переменных, вызов функций. Как правило языки высокого уровня - машинонезависимые.
К машинозависимым языкам относятся в первую очередь машинный язык (все команды записываются в виде числовой последовательности) и машиноориентированные (использующие специальные мнемонические коды операций).
Языки символического кодирования (ЯСК), автокоды и ассемблеры ориентированы на конкретные ЭВМ, и программирование с их помощью требует знания не только сущности реализуемого алгоритма, но и технических особенностей конкретной ЭВМ и способов написания для нее программ (языки типа 1:1).
Машинонезависимые языки не требуют от пользователя знания специфики ЭВМ, на которой реализуется та или иная задача. Эти языки делятся на процедуроориентированные и проблемноориентированные.
Процедуроориентированные языки эффективны для описания алгоритмов решения отдельных классов задач. Наиболее распространенные - Фортран, COBOL, PL1 (ПЛ/1), Бейсик, Паскаль, Ада, Си (C), АПЛ.
Проблемноориентированные языки предназначены для описания процессов обработки информации в какой-либо узкой, специфичес
кой области. К этим языкам относится RPG (Report Program Generator) - генератор подготовки отсчетов, ЛИСТ - язык обработки списков, язык моделирования GPSS, язык обработки матриц АПЛ. Грань между процедуро- и проблемноориентированными языками "прозрачна".
Основное достоинство алгоритмических языков - возможность описания программ решения задач в форме, максимально удобной для восприятия человеком. Так как каждый язык имеет свои изобразительные средства, а машины имеют свой внутренний язык, то для перевода необходимо использовать трансляторы.
Трансляторы делятся на интерпретаторы и компиляторы. Интерпретатор - программа, осуществляющая пооператорную
трансляцию и выполнение исходной программы. При этом интерпретирующая программа или транслятор должна находиться в памяти ЭВМ в течение всего процесса трансляции.
Интерпретаторы используются в диалоговом режиме для разработки и отладки программ. Это позволяет составлять программы более эффективно; интерпретаторы легче разрабатывать, они дешевле.
Их недостаток - необходимость постоянного пребывания в оперативной памяти, использование снижает эффективность быстродействия машины.
В случае многократного решения задач целесообразно использовать компилятор.
Компилятор - программа, выполняющая трансляцию на машинный язык исходной программы, записанной на входном языке. После завершения трансляции компилятор не нужен.
Процесс трансляции и выполнения разделен во времени. Во 2-м случае получается программа, называемая объектным модулем, то есть программа представлена в машинных кодах, но не привязана к адресам оперативной памяти. Поэтому перед исполнением объектного модуля он должен быть преобразован редактором связи в загрузочный модуль, то есть модуль с конкретными адресами оперативной памяти. Загрузочный модуль может иметь простую, оверлейную или динамическую структуру.
Модуль простой структуры состоит из единственного загрузочного модуля, который целиком записывается в оперативную память и включает все необходимые команды. Модуль простой структуры наиболее эффективен с точки зрения исполнения, так как он требует минимального вмешательства управляющей программы ОС. Если программа сложная, то она реализуется в виде оверлейной структуры (не помещается в оперативной памяти).
OVL - модуль оверлейной структуры. Разные сегменты такого модуля могут повторно использоваться в одну и ту же область оперативной памяти. Оверлейная организация менее эффективна с точки зрения времени исполнения, но более эффективна с точки зрения расхода памяти.
Динамическая структура модулей: нужна более сложная ОС, но нет потерь времени, исполнение более эффективное, требуется более сложная управляющая программа; возможно параллельное решение задач.
Использование интерпретаторов-компиляторов позволило повысить производительность труда программистов на порядок, объем программ увеличился в 2-5 раз; быстродействие иногда меньше.
ЛЕКЦИЯ 6. ОСНОВЫ СОЗДАНИЯ ПРОГРАММНОГО ПРОДУКТА (ПП).
1. Понятие ПП. Этапы жизненного цикла ПП. 2. Основные этапы подготовки программных средств и решения
задач на ЭВМ. 3. Алгоритм. Понятие, свойства, основные типы алгоритмичес
ких структур. 4. Методы разработки программных средств. 1. Программный продукт (ПП) - это такая программа, которую в
любой момент можно пропускать на машине, отлаживать и расширять её функциональные возможности любым программистом /свойство отчуждения/.
Чтобы превратить программу в ПП, необходимо соблюсти следующие требования:
1) программа должна быть написана неким универсальным образом (общепринятым способом);
2) программу следует тщательно отлаживать, учитывая все влияющие на неё факторы;
3) наличие тщательно разработанной документации, чтобы любой мог использовать эту программу.
ПП по крайней мере в три раза дороже, чем отлаженная программа, выполняющая те же самые функции.
Этапы жизненного цикла ПП: 1) начало зарождения ПП, проектирование, разработка. 2) внесение изменений (сопровождение программы).
2. Основные этапы подготовки программных средств совпадают с
этапами жизненного цикла ПП, кроме сопровождения. Чтобы решить любую задачу на ЭВМ, человек должен составить
программу в виде последовательности команд. Чтобы разработать программу, надо реализовать следующие этапы:
1) постановка задачи; 2) математическая постановка задачи; 3) выбор метода решения; 4) разработка алгоритма; 5) составление программы; 6) тестирование и отлодка программы; 7) если программа разрабатывается вне данной организации, то
необходимы приёмо-сдаточные испытания; 8) решение задач на ЭВМ и анализ результатов. В этапы жизненного цикла входит сопровождение программы, т.
е. её модификация. Как правило, в процессе заключения договора с поставщиком программы пользователи оговаривают сопровождение программы в течение одного года.
(1) На этом этапе определяется цель решения задачи; подробно описывается её экономическое содержание или экономическая сущность;приводится описание исходных данных с детальной их спецификацией, характер и диапазон изменения этих данных, максимальный размер данных.
Ц - цифровая информация (N - numerical) С - символьная информация (C - character) D - отражение даты
Описывается форма выдачи результатов (графики, таблицы и т. п.), даётся контрольный пример, который должен быть максимально минимальным (он должен быть просчитан вручную) и учитывать все варианты реального примера.
Обычно постановку задачи осуществляет сам пользователь. Постановка задачи осуществляется профессиональным естественным языком. Постановка задачи должна быть корректной.
(2) Математическая постановка задачи требует владения языком экономико-математического описания.
На этом этапе проводится математическая формализация задачи, т. е. строится её экономико-математическая модель, используя различные формульные представления. Могут применятся различные разделы прикладной математики.
Для тех задач, для которых трудно найти адекватную экономико-математическая модель, используется логическое описание (схема) задачи. Задача может сочетать экономико-математическую модель и логическое описание (вывода списка, таблицы).
Имеется сложность следующего характера: часто тождественные по смыслу математическая и логическая модели могут привести к разным результатам.
(3) Необходимо осуществить выбор и обоснование метода решения задачи.
(4) ЯОА - язык описания алгоритма В соответствии с заданным численным методом или детальной
схемой составляется алгоритм решения задачи. Определяются и описываются абстрактные данные, которые необходимо обработать.
Эффективность зависит от типа и структуры данных. Алгоритм описывается одним из следующих способов: 1) словесный; 2) словесно-формульный; 3) описание алгоритма в виде блок-схем (в таком виде алго
ритм используется для проверки логики реализации задачи. (5) Составление (адаптация) программы.
Программа = алгоритм + данные (6) Под тестированием программы понимается целенаправленная
деятельность, ориентированная на выявление ошибок в этой программе.
Тестирование - планируемый процесс. После описания программы программист должен проверить рабо
тоспособность программы на контрольном примере, а также на большом наборе тестовых данных, которые должны подбираться с учётом всех критических участков программы.
Отладкой называется процесс обнаружения и устранения ошибок в программе.
Ошибки в программах бывают двух родов: 1) синтаксические; 2) логические.
Синтаксические ошибки выявляются автоматически в процессе трансляции (выдаются недопустимые языковые конструкции и формируются соответствующие сообщения).
Логические ошибки ведут к тому, что - программа может не работать вообще (повисание);
- программа работает, но не выдаёт результатов (зацикливается);
- программа выдаёт результаты, но они полностью или частично не совпадают с контрольными.
Логические ошибки выявляются с помощью тестовых данных. Программа считается отлаженной, если она безошибочно выполняется на представленном наборе данных. Процесс отладки трудоёмкий и дорогостоящий, поэтому состав
ЭВМ предполагает эту отладку; средства отладки: - средство генерации тестовых данных;
- средство трассировки программы;
- средства, позволяющие выводить промежуточные результаты;
- программы, обеспечивающие автоматизированную корректировку текста.