
Программное управление работой ВС.
Режимы работы ВС
(Слайд 1)
1. Программное управление — основа автоматизации вычислительного процесса
2. Алгоритмические языки.
3. Команды.
4. Состав машинных команд.
5. Режимы работы компьютеров.
5.1. Однопрограммный режим.
5.2.Многопрограммный режим.
6. Система прерываний программ в ПК.
1. Программное управление — основа автоматизации вычислительного процесса
Решение задач в ВС реализуется программным способом путем выполнения последовательно во времени отдельных операций над информацией, предусмотренных алгоритмом решения задачи.
Алгоритм — точно определенная последовательность действий, которые необходимо выполнить над исходной информацией, чтобы получить решение задачи - одно из важнейших понятий математики, т.к. назначение математики - разработка рациональных алгоритмов решения задач. Один из разделов математики — теория алгоритмов, занимающаяся разработкой методов и форм построения алгоритмов решения задач. Алгоритм решения задачи в ВС — это частный случай математического алгоритма.
Основными свойствами правильно построенного алгоритма являются (Слайд 2):
результативность — алгоритм дает конкретное конструктивное решение, а не указывает на возможность решения вообще;
достоверность — алгоритм соответствует сущности задачи и формирует верные, не допускающие неоднозначного толкования решения;
реалистичность — возможность реализации алгоритма при заданных ограничениях: временных, программных, аппаратных;
массовость — алгоритм пригоден для решения всех задач определенного класса на всем множестве допустимых значений исходных данных;
детерминированность (определенность) — алгоритм содержит набор точных и понятных указаний, не допускающих неоднозначного толкования;
дискретность — допустимость расчленения алгоритма на отдельные этапы с возможностью последовательной их реализации на машине;
экономичность — алгоритм обеспечивает необходимую и достаточную точность решения задачи.
доступность - алгоритм должен быть понятен (доступен) пользователю и / или ВС.
Доступность означает, что алгоритм должен отображаться посредством конкретных формализованных изобразительных средств, понятных пользователю - способов записи (Слайд 3):
словесный способ - содержание последовательных этапов алгоритма описывается в произвольной форме на естественном языке;
формульный способ - строго формализованное аналитическое задание необходимых для исполнения действий;
табличный способ - отображение алгоритма в виде таблиц, использующих аппарат реляционного исчисления и алгебру логики для задания подлежащих исполнению взаимных связей между данными, содержащимися в таблице;
операторный способ - использование для отображения алгоритма условного набора специальных операторов: арифметических, логических, печати, ввода данных и т. д.; операторы снабжаются индексами и между ними указываются необходимые переходы, а сами индексированные операторы описываются чаще всего в табличной форме;
графическое отображение - блок-схемы — самый распространенный способ. Графические символы, отображающие выполняемые процедуры, стандартизованы. Наряду с основными символами используются и вспомогательные, поясняющие процедуры и связи между ними;
алгоритмы могут быть записаны и в виде команд какого-либо языка программирования. Если это макрокоманды, то алгоритм читаем и пользователем-программистом, и вычислительной машиной, имеющей транслятор с соответствующего языка.
2. Алгоритмические языки.
Алгоритмические языки, представляющие алгоритмы в виде последовательности читаемых программистом (не двоично-кодированных) команд, подразделяются (Слайд 4):
Машинно-ориентированные языки относятся к языкам программирования низкого уровня — программирование на них наиболее трудоемко, но позволяет создавать оптимальные программы, максимально учитывающие функционально-структурные особенности конкретного компьютера. Программы на этих языках, при прочих равных условиях, будут более короткими и быстрыми. Большинство команд таких языков при трансляции (переводе) на машинный (двоичный) язык генерируют одну машинную команду.
Процедурно-ориентированные и проблемно-ориентированные языки относятся к языкам высокого уровня, использующим макрокоманды, которые при трансляции генерируют:
процедурно-ориентированная макрокоманда - десятки машинных команд,
проблемно-ориентированная макрокоманда - сотни машинных команд.
Процедурно-ориентированные языки программирования — самые используемые (Basic, Pascal, C++, PL, ALGOL, COBOL и др.). При их использовании программист должен описывать всю процедуру решения задачи, тогда как проблемно-ориентированные языки (их называют также непроцедурными) позволяют лишь формально идентифицировать проблему и указать состав, структуры представления и форматы входной и выходной информации для задачи. В настоящее время значение такие языки потеряли актуальность. Доминируют пакеты прикладных программ и специальные приложения.
Все языки программирования (машинно-ориентированные и высокого уровня), для их восприятия компьютером требуют наличия программ перевода — трансляторов на машинный язык (Слайд 5).
Транслятор (translator) — программа, преобразующая программу, написанную на одном языке, в программу, представленную на другом языке. Транслятор воспринимает предложения (операторы) одного языка и вырабатывает соответствующие предложения (операторы) другого языка. Если вторым является язык процессора, то транслятор именуют компилятором. Например, компилятор берет программу, написанную на языке С, и преобразует ее в программу на языке ассемблера
Транслятор, который последовательно анализирует предложения языка и немедленно их выполняет, а не компилирует, называют интерпретатором.
Т.о., алгоритм непосредственно воспринимается и исполняется компьютером, если он представлен в двоичном коде на машинном языке.
3. Команды.
Алгоритм решения задачи, заданный в виде последовательности команд на языке ЭВМ (в кодах машины), называется машинной программой.
Адреса
КОП
Операционная часть команды (КОП - код операции) - это группа разрядов в команде, предназначенная для представления кода операции машины.
Адресная часть команды (адреса) - это группа разрядов в команде, в которых записываются коды адреса (адресов) ячеек памяти машины предназначенных для оперативного хранения информации, или иных объектов, задействованных при выполнении команды. Часто эти адреса называются адресами операндов, то есть чисел, участвующих в операции. По количеству адресов (Аl, А2, АЗ,...), записываемых в команде, команды делятся на безадресные, одно-, двух- и трехадресные.
КОП
А1
А2
А3
Типовая структура трехадресной команды:
Аl и А2 — адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции, АЗ — адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.
КОП
А1
А2
Типовая структура двухадресной команды:
Аl — это обычно адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции, и куда после завершения операции должен быть записан результат операции; А2 — обычно адрес ячейки (регистра), где хранится второе участвующее в операции число.
КОП
Т
А1
Аl —в зависимости от модификации команды может обозначать либо адрес ячейки (регистра), где хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра ), куда следует поместить число — результат операции.
Безадресная команда содержит только код операции, а информация для нее должна быть заранее помещена в определенные регистры машины (безадресные команды могут использоваться только совместно с командами другой адресности).