- •Основы теории алгоритмов.
- •1.1. Подходы к определению понятия алгоритма
- •1.2. Формы представления алгоритмов
- •Правила применения символов:
- •Правила выполнения соединений:
- •Специальные условные обозначения:
- •1.3. Основные свойства алгоритма
- •1.4. Типы алгоритмов
- •1.5. Основные принципы и способы разработки алгоритмов
- •1.6. Методы построения алгоритмов
- •Эвм как исполнитель алгоритмов. Принципы программного управления
- •2.1. Основные понятия и принципы программного управления эвм и исполнением алгоритмов
- •2.2. Особенности программного и микропрограммного управления
Эвм как исполнитель алгоритмов. Принципы программного управления
2.1. Основные понятия и принципы программного управления эвм и исполнением алгоритмов
Автоматическое управление процессом решения задачи достигается на основе принципа программного управления, являющегося основной особенностью ЭВМ.
Программа (program, routine) — упорядоченная последовательность команд (инструкций) компьютера для решения задачи.
Программное обеспечение (software) — совокупность программ обработки данных и необходимых для их эксплуатации документов.
Программное управление — организация и контроль процесса вычисления и управление работой всей вычислительной машины посредством программного обеспечения.
Управляющая программа состоит из программы управления задачами (называемой также супервизором), программы управления заданиями и программы управления данными и ряда других программ.
Другим важнейшим принципом является принцип хранимой в памяти программы. Согласно этому принципу команды программы, закодированные в цифровом виде, хранятся в памяти наравне с числами. В команде указываются не сами участвующие в операциях числа, а адреса ячеек оперативной памяти, в которых они находятся, и адрес ячейки, куда помещается результат операции.
Поскольку программа хранится в памяти, одни и те же команды могут нужное число раз извлекаться из памяти и выполняться. Более того, так как команды представляются в машине в форме чисел, то над командами как над числами машина может производить операции («модификация команд»).
Программа работы машины, определяющая процесс обработки информации в ЭВМ, состоит из последовательности команд. Под командой ЭВМ понимается информация, обеспечивающая выработку управляющих сигналов для выполнения машиной определенного действия.
Команда машинной программы (машинная команда) — это элементарная инструкция машине, выполняемая автоматически без каких-либо дополнительных указаний.
Программа работы машины определяется алгоритмом переработки информации. Она кодируется в цифровую форму и помещается в память машины. Программа содержит в себе последовательность команд, указаний, выполнение которых обеспечивает получение требуемого результата.
Машинная команда — символьный оператор, опознаваемый и выполняемый техническими средствами машины.
Код команды обеспечивает выработку в ЭВМ электронных сигналов, требуемых для выполнения определенной операции машины над заданными числами. Информация в команде задается в виде предписаний. Топологическое расположение отдельных предписаний в коде называют форматом.
Формат команды — это структура команды, позволяющая распознавать ее составные части.
По структуре каждая машинная команда содержит операционную, адресную и служебную части.
Операционная часть команды — группа разрядов в команде, предназначенная для представления цифрового кода операции машины.
Адресная часть команды — группа разрядов в команде, в которых записываются коды адреса (адресов) ячеек памяти машины, предназначенных для оперативного хранения информации, иных объектов, используемых при выполнении команды. Эти адреса принято называть операндами, они представляют числа, которые участвуют в операции.
Адрес — это номер ячейки памяти, в которой записано участвующее в данной операции число (операнд).
Операнд — обобщенное понятие участвующих в операциях данных (слагаемых, вычитаемых, сомножителей, делителей и т.д.).
Принято классифицировать команды в зависимости от количества адресов на безадресные, одно-, двух- и трехадресные.
Типовая трехадресная команда включает:
-
код операции;
-
два адреса (а1, а2) ячеек (регистров), где расположено первое и второе числа, участвующие в операции;
-
один адрес (а3) ячейки (регистра) для размещения числа, полученного при выполнении операции.
Типовая двухадресная команда включает:
-
код операции;
-
адрес (а1) ячейки (регистра), где расположено первое из чисел, участвующих в операции, и в которую после окончания операции должен быть записан результат операции;
-
один адрес (а2) ячейки (регистра) для хранения второго, участвующего в операции числа.
Типовая одноадресная команда включает:
-
код операции;
-
адрес (а1) ячейки (регистра), который в зависимости от модификации команды используется для хранения одного из чисел, участвующих в операции, где расположено первое и второе числа, участвующие в операции, или для размещения числа, полученного в результате операции.
Безадресная команда включает только код операции, а данные для нее заранее помещаются в определенные регистры ЭВМ. Такая команда может использоваться только совместно с адресными командами.
Служебную часть команды используют для записи кодов, определяющих модификацию выполняемых команд в зависимости от тех или иных признаков.
Независимо от классов современных ЭВМ все множество автоматически выполняемых ими команд можно сгруппировать по выдам выполняемых операций:
-
операции пересылки данных ЭВМ;
-
арифметические операции надданными;
-
логические операции над данными;
-
операции обращения к внешним запоминающим устройствам ЭВМ;
-
операции передачи управления (безусловной, условной);
-
обслуживающие и вспомогательные операции.
Операции передачи управления (ветвления программы) служат для изменения естественного порядка выполнения команд.
Безусловная передача управления требует выполнения после данной команды не следующей по порядку, а той, адрес которой в явном или неявном виде указан в адресной части.
Условная передача управления требует тоже передачи управления по адресу, указанному в адресной части команды, но только тогда, когда выполняется некоторое заранее оговоренное условие, которое в явном или неявном виде указано в коде операции (в адресном поле команды). При невыполнении условия адрес следующей команды определяется содержимым счетчика команд.
Счетчик команд — совокупность электронных элементов ЭВМ, связанных между собой и предназначенных для хранения кодов и изменения их состояния на одну единицу (±1) при передаче внешних сигналов на соответствующие входы.
Последовательность команд для адресных форматов задается аппаратным способом, а для безадресных — задается в неявном виде последовательность команд и операндов с помощью организации вычислительного процесса на аппаратном уровне с использованием двух стековых последовательностей данных. Данные в стеки заполняются и освобождаются в определенном порядке. Использование в ЭВМ стековой адресации позволяет использовать язык высокого уровня, подобный внутреннему машинному языку высокого уровня, что снижает затраты на программирование.
Программное управление обеспечивает:
-
надежную и эффективную работу компьютера и вычислительной сети;
-
проведение диагностики и профилактики аппаратуры компьютера и вычислительной сети;
-
создание среды функционирования других программ;
-
выполнение вспомогательных технологических процессов.
Программы предназначены для машинной реализации задач.
Понятия задачи и приложения имеют очень широкое употребление в контексте информатики и программного обеспечения.
Задача (problem, task) — проблема, подлежащая решению.
Приложение (application) — программная реализация на компьютере решения задачи.
Отсюда задача означат проблему, подлежащую реализации с использованием средств информационных технологий, а приложение — реализованное на компьютере решение по задаче. Приложение, являясь синонимом слова «программа», считается более удачным термином и широко используется в информатике.
Существует большое число разнообразных классификаций задач. С позиций специфики разработки и вида программного обеспечения будем различать два класса задач — технологические и функциональные.
Технологические задачи ставятся и решаются при организации технологического процесса обработки информации на компьютере.
Технологические задачи являются основой для разработки сервисных программ, библиотек процедур и др., применяемых для обеспечения работоспособности компьютера, разработки других программ или обработки данных функциональных задач.
Функциональные задачи требуют решения при реализации функций управления в рамках информационных систем предметных областей. Функциональные задачи в совокупности образуют предметную область и полностью определяют ее специфику.
Предметная (прикладная) область (application domain) — совокупность связанных между собой функций, задан управления, с помощью которых достигается выполнение поставленных целей.
Процесс создания программ можно представить как последовательность действий, представленных на рис. 2.1.

Рис. 2.1. Схема процесса создания программ
Постановка задачи (problem definition) — это точная формулировка решения задачи на компьютере с описанием входной и выходной информации.
Постановка задачи — обобщенный термин, который означает определенность содержательной стороны обработки данных. Постановка задачи связана с конкретизацией основных параметров ее реализации, определением источников и структурой входной и выходной информации, запрашиваемой пользователем.
К основным характеристикам функциональных задач, уточняемым в процессе ее формализованной постановки, относятся:
-
цель или назначение задачи, ее место и связи с другими задачами;
-
условия решения задачи с использованием средств вычислительной техники;
-
содержание функций обработки входной информации при решении задачи;
-
требования к периодичности решения задачи;
-
ограничения по срокам и точности выходной информации;
-
состав и форма представления выходной информации;
-
источники входной информации для решения задачи;
-
пользователи задачи (кто осуществляет ее решение и пользуется результатами решения).
Обычно постановка задач выполняется в едином комплексе работ по созданию структуры внутримашинной базы данных, проектированию форм и маршрутов движения документов, изменению организации управления в рамках предметной области.
В алгоритме решения задачи отражается логика и способ формирования результатов решения с указанием необходимых расчетных формул, логических условий, соотношений для контроля достоверности выходных результатов. В алгоритме должны быть предусмотрены все ситуации, которые могут возникнуть в процессе решения комплекса задач.
Программирование базируется на комплексе научных дисциплин, направленных на исследование, разработку и применение методов и средств разработки программ (специализированного инструментария создания программ).
Программирование (programming) — теоретическая и практическая деятельность, связанная с созданием программ.
