Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы информатики_Савельев А.Я_Учебник_2001

.pdf
Скачиваний:
387
Добавлен:
16.01.2016
Размер:
4.68 Mб
Скачать

2 I ЭВМ как автомат

ВспомогагельньЕМИ устройствами автомата могут быть всевозможные дополнительные средства, улучшающие или расширяющие возможност!' ашомата.

Периферийные

устройства

Арифнетикз-

догическов ШВ^Информация устройство

Устройства

управлений

Рис. 2.2. Структурная схема ЭВМ

2. Э В М ирограммно-уиравлиемый цифровой автомат.

Эю положение подкрепляет две фундаментальные идеи. Первая состой-

втом, 'ПО ЭВМ — автомат для переработки и преобразования цифровог

wm

дискретной информации.

Это означает, что вся подаваемая на вхо^

Э В М

информация (текстовая,

графическая, числовая и т. п.) должна быт1

преобразована в набор цифр или чисел, представленных в выбранной сие теме счисления. Следовательно, выбор системы счисления является очен| ответствеииой задачей для разработчика. Вторая идея заключается в том что Э В М управляется специальной программой, которая может либо вво ди1ься в ЭВМ, либо храниться в ее памяти. Следует подчеркнуть очей: важ!1ые функции памяти ЭВМ .

[|амять (заиоминающее устройство) — функциональная часть ЭВМ предназначенная для хранения и (или) выдачи входной информации, про межуточных и окончательных результатов, вспомогательной информаци*- В памяти маин!ны находятся также программы решения задач, через ко манды коюрых осуществляется управление работой всей машины.

OciroBHbie параметры, характеризующие память, — емкость и врем обращения к памяш.

Емкость памяти — количество слов информации, которое можно за HHcaib в [1амя1и. flpn этом словом является упорядоченная последователь иос1Ь символов алфавита конечной длины. Ячейка памяти — часть ггамят^ содержапм1я слово.

f^MKOdb памяти можно выразить количеством содержащихся в не1 слои млн я'юск, ^1д1ина ячейки памяти измеряется количеством битов (оди1 би! равен одному двоичному разряду) или байтов (один байт содержит вс семь битов). Ячейка памяти может вмещать информацию разной длины ил: разной! формата. Формат измеряется словом, двойным словом или полу

2 Автомат как основной элемент информационных систем

словом в зависимости от принятого для данной ЭВМ способа представле­ ния информации.

Время обращения — интервал времени меж/^у началом и окончанием ввода (вывода) информации в память (из памяти). Оно характеризует затра­ ты времени на поиск места и запись (чтение) слова в память (из памяти).

Для построения запоминающих устройств в качестве физических эле­ ментов используют электронные схемы, ферритовые маг нитные материалы, магнитные ленты и диски, барабаны с магнитным покрытием, оптические запоминающие элементы и т. д.

Основным преобразователем цифровой информации являемся арифме­ тико-логическое устройство.

Арифметико-логическое устройство (АЛУ) — функциональная часть ЭВМ, которая выполняет логические и арифметические ;^ейс1вия, нсобходимь[е для переработки информации, хранящейся в памяти. Оно характеризует­ ся временем выполнения элементарных операций; средним быстродействи­ ем^ т. е. количеством арифметических или логических действий (операций), вьиюлняемых в единицу времени (секунду); набором элементарр|ы.ч дейст­ вий, которые оно выполняет. Важной характеристикой AJfy является также система счисления, в которой осуществляются все действия.

Всовременных вычислительных,устройствах основным исполгн11ельиым элементом является процессор (П) или микропроцессор (МП), коюрый содери^ит в себе АЛУ, память (как правило, оперативную намять), блок управления.

Вмикропроцессорах важную роль ифают шины данных и адресные пш- \\ь\ или адреснь!е магистрали. Структурная схема микропроцессора представ­ лена на рис. 2.3. Числа в скобках указывают разрядность шин и устройств.

Вычислительные машины, построенные на основе микропроцессора, называются микроЭВМ [18] и отличаются тем, что обычно имеют два вида памяти: RAM (Random-Access-Memory) — память с нроизвольтгой выбор­ кой (ППВ) и ROM (Read-Oiily-Memory) — постоянная память (ПИ) па HFIтетральных схемах. В постоянную память можно вложить уже ютовый транслятор с алгоритмического язь!ка или готовый пакет программ, выпол­ няющий определенную функцию. Это позволяет расширить возможности микроэвм путем изготовления модулей расширения в виде ROM. C^ipyKгуртшя схема микроЭВМ представлена на рис. 2.4.

Наличие входного и выходного каналов, а также сре;^ств и методов взаимодействия (интерфейса) ЭВМ с внешними устройствами тюзволяет существенно повысить скорость работы всего комплекса от ввода инфор­ мации в машину до вывода ее. Фактически для осуществления подобного

32

< автомат

принципа работы необходимо иметь несколько ЭВМ, выполняющих разные функции: управление рабагой всего комплекса устройств, выполнение ариф­ метических и логических действий, ввод и вывод информации. Все уто свидегельствуе! о существенном усложнении структуры Э В М , и эта тенденция сохраняется для персональных ЭВМ, к которым уже в полной мере можно применять термин «вычислительные сисгемы» (рис. 2.5).

 

 

АЗресная шина

(fS)

 

 

 

 

 

 

Шина Ванных (S)

 

 

 

 

 

 

Cf6)

 

 

 

 

 

Щ

 

 

 

 

 

 

(б)

Арифметика-

 

 

 

 

 

 

яогичесное

 

Регистр

(^"У

(el

программный

 

г?1устройство

 

адреса данных

 

 

 

 

 

 

с четчин

 

 

 

 

 

 

 

ш

 

 

 

 

 

 

 

 

 

Регистр

(Q)

 

 

 

 

М-

 

номамо

 

 

 

 

 

 

 

 

 

 

Ра мять

 

 

 

 

Влон

управления

 

 

 

 

ёаак

 

и синхронизации

К

компонентам

 

pezacrpoi

 

 

Рис. 2.J. Структурная схема микропроцессора

 

 

Синхроге-

 

 

 

 

 

 

 

нератер

 

 

 

 

 

 

 

 

 

Адресная

магистраль

 

Интер.

 

Микро •

Ж

 

Интер'

 

 

 

 

31£

 

 

 

ароцес

 

 

 

'eSo

фейЬ

 

сор

 

ггт

 

ш

 

выхода

 

 

 

 

ПТ

иг

 

 

 

Числовая магистраль

^--^

 

 

 

 

 

Управление

 

 

 

Рис. 2.4. Структурная схема микроЭВМ

2. Автомат как основной элемент информационных систем

Рис. 2.S. Структурная схема вычисли гсльной системы

2.2. Абстрактные автоматы н понятие алгоритма

Классические примеры абстрактных автоматов -— машины Тьюрит а или машины Поста*. Как правило, такая машина содержит бесконечную ленгу, разделенную на отдельные секции (ячейки), в кш-орые можно либо заносить мегку, либо счтывать метку с 1юмощью записываготсн

Автомат

или считывающей головки (рис. 2.6). Лента (или головка)

Поста

может передвигаться в левую или правую С1ороны на

wmT\

один шаг в зависимости от комаши>1- Лента всегда осга-

навливается так, чтобы напротив головки находилась

секция (ячейка). Команды абстрактного автомата обычно

Рис. 2.6. Струк­

включают в себя одно из следующих действий (на при­

турная схема авто­

мере машины Поста); движение головки вправо, движе­

мата Поста

ние головки влево, запись метки, стирание метки, пере­

 

дача управления, остановка (стоп).

Каждая команда имеет свой номер /. Стрелка указывает направле­ ние движения. Второе число 7, стоящее в конце команды, называется

*Английский математик А. М. Тьюринг в работе «О вычислимых числах с приложением

кпроблеме разрешения» и американский математик Э, X, Пост в работе «Финитные комби­ наторные процессы» почти одновременно в 1936 г. дали уточнения понятия «алгори1м» на примере гипотетической машины с бесконечной лентой, Машина Тьюринга отличается от машины Поста тем, что ячейки заполняются не просто меткой, а символами из заданною множества.

2 2, Абстрактные автоматы и понятие алгоритма

отсылкой. У команды передачи управления могут быть две отсылки. Поэтому программа абстрактного автомата должна обладать двумя свой­ ствами;

1)на первом месте в списке всегда стоит команда с номером I, на вто­ ром месте — с номером 2 и т. д.;

2)отсылка любой из команд всегда находится в списке команд про­ граммы.

После передвижения ленты влево или вправо головка считывает со­ стояние секции (пустая или записана метка). Информация о том, какие сек­ ции пусты, а какие отмечены, образует состояние ленты или состояние автомата. Таким образом, обладая указанным выше набором команд, ав­ томат может осуществлять определенные действия, KOTopbie будут зада­ ваться программой. Программой абстрактного автомата будем называть ко­ нечный непустой список команд.

Для «работы» абстрактного автомата необходимо задать программу и начальное состояние, т. е, положение головки и состояние ячеек ленты. По­ сле э ю г о автомат приступает к выполнению команды номер I. Все секции (ячейки) ленты нумеруются в определенном порядке. Порядок нумерации ячеек моисет совпадать с порядком, в котором расположены натуральные целые числа.

Каждая команда выполняется за один шаг, после чего начинается вы­ полнение комаи;^ы, номер которой указан в отеь!лке. Если эта команда име­ ет две отсылки, то команда с номером верхней отсылки выполняется, если под головкой находится пустая ячейка. Если исе под головкой находится ячейка с меткой, то'выполняется команда с номером нижней отсылки. Вы­ полнение команды передачи управления не изменяет состояния автомата (ни одна из меток не уничтожается и не ставится, и лента остается непод­ вижной). При запуске автомата может возникнуть одна из следующих си­ туаций:

автомат дошел до выполнения невыполнимой команды (запись метки в заня1ую ячейку, стирание метки в пустой ячейке); выполнение программы прекращается, автомат останавливается (назовем это состояние поломкой автомата), происходит безрезультатная остановка;

автомат дошел до команды стоп, программа считается выполненной, происходи! результатная остановка;

автомат не доходит ни до результатной, ни до безрезультатной оста1ювки, происходит бесконечная работа (автомат «завис»).

Рассмотрим работу автомата, начальное состояние которого задано рис. 2.7 при выполнении следующей программы:

2Автомат как основной элемент информационных систем

1.- > 3;

2.^ 4;

3.V 2;

5. стоп.

Если начш!ьное состояние соответствует рис. 2.7, а, то выполнение про­ граммы приводит к результатной остановке. Если же исходное состояние автомата соответствует рис. 2.7, б, то программа не дает результата, авто­ мат «зависает». Таким образом, начальное состояние

II

11 Kl III

автомата влияет на результативность его работы.

 

a

С другой стороны, различные программы, приме­

i l l

1 l l ' l l l

ненные к одному и тому же начальному сосюяииго,

дают разный результат.

"На таких элементарных автоматах, как машина

Рис. 2.7. Началь-

Поста или машина Тьюринга, можно проводить раз­

ное состояние

личные действия над числами. Для этого необходимо

ainoMaia

^

 

Представлять числа в абстрактном автомаге.

Назовем последовательность секций (ячеек), содержащих метку, мас­ сивом, а число секций в нем — длиной массива. Условимся число п пред­ ставлять на ленте массивом длины и + I. Тогда этот массив будем называть aatmfMitmiihiM иа/бра.желием числа, f [апример, MHCjra 6, 3 и 2 преде гавлепь!

соответственно на рис. 2.8 автоматными

1 1Т1Т1Т1Т1У1Т1У1 i I T N T I T I 1ТЫУ1 \

 

изображениями.

 

„ - о ,

^

 

Представим

себе,

что иа машине

Рис. 2.8. Лшоматнос

изображение

"^

^

^

.„^^.gj,

 

 

Поста надо прибавить

I к любому числу.

 

 

Для этого требуется написать программу

1ЩЙ машины Поста, обладающую следующим свойством: для любого числа /;, записанного на ленте, программа должна дать результатную остарювку с записью числа и +1 в произвольном месте лепты.

I [рограмма может выглядеть следующим образом:

1-й вариант

2-й вариант

1 . ^ 2

1. < - 2

 

 

2.

7С]

3.

V 4

3.

V 4;

4.

стоп.

4. стоп.

В качестве начального состояния может быть выбрано любое состоя­ ние, при котором головка находится на одной из отмеченных ячеек ленты

2 2 Абстрактные автоматы и понятие алгоритма

(т. е. над набором числа). Если же головка будет находиться в произволь­ ном месте ленты, то программа усложнится. Читателю предлагается самостоягельно написать такую программу.

С помощью абстрактного автомата можно реализовать и другие преоб­ разования числовой информации. Рассмотрим, например, сложение двух чи­ сел. В самой обнйй постановке эта задача формулируется так: составить про­

грамму сложения двух чисел щ

и nj записанных на ленте иа произвольном

расстоянии друг от друга. Начальное со-

-г, п *1

п,*1

стояние авюмата показано на рис. 2.9.

i I |т|т|т|т|т|

I M T I T I I T T I

/1ля

написания

программы можно,

 

~

например, передвигать левый массив иа-

Рис. 2.9. Начальное состояние

право

до

слияния

с правым

массивом.

автомата для программы

у

''•

 

I

 

сложения чисел

Передвижение массива осуществляется перенесением (стиранием) самой левой метки в ближайшую пустую сек­

цию справа (команды № f и № 7 программы, приведенной ниже). Когда массивы сольются (команды № 5 и № 6), то оказывается, что результат ра­ вен + /?2 + 2. Значит, надо стереть одну лишнюю метку (команда № 4). В окоича1ель!юм состоянии головка стоит левее образовавшейся суммы.

1.

3

2;

4.

3

5;

7.

V

8;

10.

<-

If;

2.

^

3;

5.

->

6;

8.

^

9;

,

^

2

3

v-^12.

6

7^*^.

9

7^'*^-

•""'*^'

 

^ 4 -

"•

- ^ 5 '

 

•'^12'

12.

стоп.

11редс1авленные

примеры

программ

машины

Поста

не

исчерпывают

всех ее возможностей. Можно составить программы для умножения, деле­ ния чисел. Есть ли ограничения на вычисления, производимые на машине Поста? Ответ на этот вопрос был сформулирован самим Э. Постом в сле­

дующем виде: «Задача иа составление

программы, приводящей

от исход-

иого даипого

к результирующему числу, тогда

и только

тогда

имеет

ре­

шение, когда

имеется какой-нибудь

общий

способ,

позволяющий

по

проиюолыюму

и одному данному выписать результирующее число».

 

Формулировка постулата Поста подводит к понятию алгоритма*. Сущсс1вуег М1ЮГО определений термина «алгоритм». Например, по определе­ нию акад. Л, if. Колмогорова, алгоритм или алгорифм это всякая сис-

' Л ермим «алгоритм)) произошел от имени узбекского математика Аль-Хорезми, который С1Г1С н IX п (;(|н>рмулиро1«1л правила m.iiJOjmeHHfl чаырёх арифмегических действий. Появишиееся несколько позже слово «алгорифм)» связано с Евклидом, древнегреческим матема1ИК0М. сформулировавшим правила нахождения наибольшего общего делителя двух чисел.

R (.-онреметгной ма|емагике угсогребляют термин «алгоритм»,

37

2 Автомат как основной элемент информационных систем

тема вычислений, выполняемых по строго определенным правилам, кото­ рая после какого-либо числа шагов заведомо приводит к решению поставлеинай задачи.

В инженерной практике часто используется следующее онре;^елеиие; алгоритм — конечная совокупность точно сформулированных правид ре­ шения какой-то задачи [I].

По форме задания алгоритмы могут быть словесными и математиче­ скими. Пример словесной формы алгоритма — алгоритм Евклида для на­ хождения наибольшего общего делителя двух чисел а и Ь.

1.Обозревая два числа av\b, переходи к следующему пункту.

2.Сравни обозреваемые числа равно Ь, а меньше, больше Ь) и пере­ ходи к следующему пункту.

3.Если а vib равны, то прекрати вычисление: каждое из чисел даег ис­ комый результат. Если числа не равны, то переходи к следующему пункту.

4.Если первое число меньше второго, то переставь их местами и пере­ ходи к следующему пункту.

5.Вычти второе число из первого и сделай обозрение двух чисел: вы­ читаемого и остатка; переходи к п. 2.

По указаниям этого алгоритма можно найти наибольший общий дели­ тель для любой пары целых чисел.

Характеристиками алгоритма являются:

детерминированность, определяющая однозначное [ь peiyjibiara решения задачи при заданных исходных данных;

дискретность определяемого алгоритмом процесса, означающая расчлененность его на отдельные элементарные шаги;

массовость, позволяющая применять один и тот же алгоритм AJIA некоторого множества однотипных задач.

Эти характеристики не дают точного описания алгоритма, а лишь объ­ ясняют смысл этого термина в математике.

Пример алгебраической формы алгоритма — любая математическая формула для нахождения какой-то величины. Например, значение корней

уравнения вида ах -¥bx-¥c = 0 можно найти по формуле л:, ^ =

= (-/j± ^j{b^ ~ 4ас))/2а, которая представляет собой алгоритм нахождения этих корней. Однако для того, чтобы реализовать математическую (|)орму алгоритма, требуется дать еще ряд словесных указаний, показать обласгь применения алгоритма.

Детерминированный алгоритм — алгоритм, имеющий место при чегкой и ясной системе правил и указаний и однозначных действиях.

38

2 3 Основные понятия алгебры логики

Случайный алгоритм — алгоритм, предусматривающий возможность случайного выбора тех или иных правил.

Алгоритм должен обеспечивать получение результата через конечное число шагов для любой задачи определенного класса. В противном случае задача неразрешима. Нахождение алгоритма решения задачи называется алгор um.Mmaijueи.

Процесс выполнения алгоритма называется алгоритмическим процес­ сом- Для некоторых исходных данных он заканчивается получением иско­ мого результата после конечного числа шагов. Однако возможны случаи, когда искомьЕЙ результат не достигается или безрезультатно обрывается. Тогда говорят, что к таким исходным данным алгоритм неприменим.

Таким образом, алгоритм дает возможность ответить на вопрос «что делать?» в каждый момент времени, однако создать алгоритм не всегда возмоисно.

Численный алгоритм — алгоритм, соответствующий решению постав­ ленной задачи с помощью арифметических действий.

Логический алгоритм — алгоритм, используемый в случае, если при решении задачи приходится применять некоторые логические действия.

Процесс решения задачи на ЭВМ прежде всего должен быть выражен каким-то ajriopHTMoM. Разработка алгоритмов решения задач — задача проipaMMHCia, а разработка алгоритмов функционирования цифрового автома­ га ДJiя решения 1юставлениых задач — задача инженера-разработчика.

2 3 . Основные понятия алгебры логики

11опятие автомата бь!Ло введено в гл. I в качестве модели для описания функционирования устройств, предназначенных для переработки дискрет­ ной информации.

Для формального описания цифрового автомата широко применяют аг|[1арат ш!гебры логики, являющейся одним из важных разделов математи­ ческой логики*.

Основное понятие алгебры логики — высказывание. Высказывание — некоторое предложение, о котором можно утверждать, что оно истинно или ложно. Например, высказывание «Земля — это планета Солнечной системы» ИС1ИННО, а о высказывании «на улице идет дождь» можно ска-

СЧядатель алтебры логики — английский математик Дж. Буль (!815-1864), Поэтому ал!ебру логики пазывшот 1акже алгеброй Буля. В последние годы алгебра Буля получила зпачшельиое развитие блаюдаря работам таких ученых, как Э. Посг, К. Шейной, 1 Л Шестаков. R М. Глушкон [6], С. В. Яблонский [21] и др.

39

2 Автомат как основной элемент информационных систем

зать, истинно оно или ложно, если указаны дополнительные сведения о погоде в данный момент.

Любое высказывание можно обозначить символом х и считать, что X = I, если высказывание истинно, а х = О — если высказывание ложно.

Логическая {булева) переменная — такая величина х, которая может принимать только два значения: х = {0,1}.

Высказывание абсолютно истинно, если соответствующая ей логиче­ ская величина принимает значение х = 1 при любых условиях. Пример абсолютно истинного высказывания — высказывание «Земля -— планета Солнечной системы».

Высказывание абсолютно ложно, если соответствующая ей логическая величина принимает значение х = О при любых условиях.

Например, высказывание «Земля — спутник Марса» абсолютно ложно.

Логическая функща (функция алгебры логики) — функция /(х,, Х2,..-,

X,,), принимающая значение, равное нулю или единице на наборе логиче­ ских переменных Х|, Xj, ..., Х„ .

Логические функции от одной переменной представлены в таблице 2.1,

Т а б л и ц а 2,1

X

/|(«)

/2(-1)

М')

/Л')

0

1

0

0

1

1

1

0

1

0

в соответствии с введенными определениями функция /|(х) является абсолютно истинной (константа единицы), а функция fiix) — абсолютно ложной функцией (константа нуля).

Функция /^{х), повторяющая значения логической переменной, — тождественная функция [/з(х) = х], а функция f^(x), принимающая зна­ чения, обратные значениям х, —логическое отрицание, или функция НЕ

Логические функции от двух переменных представлены в таблице 2.2.

Дизъюнкция {логическое слож:ение) — функция /7(х,, Х2), которая ис­ тинна тогда, когда истинны или х,, или х^, или обе переменные.

Дизъюнкцию часто называют также функцией ИЛИ и условно обозна­ чают так: fi (Xj, Xj) - X, + Xj = Xj V Х2.

40