Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Исследование дискет на наличие вируса в среде антивирусной программы.






1. Исполнители алгоритмов: человек, автомат, ро­бот, компьютер. Компьютер как формальный испол­нитель алгоритмов (программ). Схема выполнения программы компьютером.

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

Сразу подчеркнем, что исполнители алгоритмов нео­бычайно разнообразны. Все словесные алгоритмы (ин­струкции) пишутся для человека, следовательно, в дан­ном случае он и будет являться исполнителем подобных алгоритмов. Многие окружающие нас автоматические устройства тоже действуют в соответствии о определенными алгоритмами. Вспомните простейшие из них — выключающийся по достижении определен­ной температуры воды электрический чайник или турникет в метро, а также более сложные автоматы, на­пример, современная многопрограммная стиральная машина или CD-проигрыватель с возможностью пере­ключения 3—5 дисков. Вершиной автоматических уст­ройств являются роботы, т.е. устройства, способные выполнять ту или иную работу без участия человека. Термин " робот" ввел чешский писатель Карел Чапек в 1920 году в своей фантастической пьесе в качестве на­звания механических рабочих, заменивших людей на тя­желых физических работах. Современные роботы своим внешним видом совсем не похожи на рабочего, но, тем не менее, прекрасно справляются с его обязанностями на производстве. Едва ли человек сможет так быстро, безо­шибочно и качественно собрать плату сложнейшего ком­пьютера, как это делает робот-манипулятор на автомати­зированном производстве. Уже всерьез ведутся разгово­ры о роботах-хирургах, а японские роботы-музыканты и скульпторы давно являются непременным атрибутом всех международных выставок. Большой популярностью в быту пользуются сейчас автоматические собачки и прочая домашняя, с позволения сказать, " живность".

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

Итак, мы видели, что исполнители алгоритмов нео­бычайно разнообразны. Есть ли у них какие-то общие черты, которые делают их похожими? Разумеется, есть!

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

Во-вторых, для управления исполнителем и организа­ции необходимых изменений в его среде имеется соб­ственный строго определенный набор команд. В учеб­никах такой набор обычно называют системой команд исполнителя, или сокращенно СКИ. Исполнитель не способен выполнить ни одной команды, которая не по­падает в его СКИ, даже если введенная команда отлича­ется от существующей всего лишь единственной непра­вильно написанной буквой.

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

Очень четкую СКИ, часто представляемую в форме таблицы, имеет каждый процессор.

Вся таблица 16 х 16 за­полнена разнообразными командами, лишь немногие места в таблице не заняты. Четко просматривается на­личие закономерностей в СКИ: коды 40—7F образуют " слой" команд переписи MOV, затем следуют ряды ариф­метических операций (ADD — сложение, SUB — вычи­тание), логических и т.д. Для нас сейчас наиболее инте­ресно то, что приведенная система команд построена по определенным правилам и четко структурирована.

Типичный контроллер дисковода IBM PC умеет испол­нять 15 команд; наиболее понятными для неподготовлен­ного читателя будут следующие: чтение идентификатора сектора, чтение данных, запись данных, чтение дорожки, форматирование дорожки и др. подобные команды рабо­ты с диском (сведения взяты из книги: Букмин А.В., Безру­кий Ю.Л. Дисковая подсистема IBM-совместимых персо­нальных компьютеров. M.: Бином, 1993, 284 с.).

Завершая разговор о роли СКИ, подчеркнем, что исполнитель отказыва­ется исполнять не толь­ко те команды, которые отсутствуют в списке. Даже синтаксически правильная команда при некоторых услови­ях не может быть вы­полнена. Например, невозможно выполнить команду деления, если делитель равен нулю; нельзя осуществить команду движения вперед, когда робот уперся в стену; невозможно произвести запись в сектор с несуществую­щим номером или на неотформатированную дискету (в; последнем случае на дискете вообще нет никаких секто­ров). Как бы не выглядела формулировка отказа исполнителя, ее кратко можно сформулировать как " Не могу": (в отличие от " Не понимаю" в случае синтаксической ошибки в записи команды). Более строго вывод должен звучать так: каждая команда 6 СКИ должна иметь чет­ко оговоренные условия ее выполнения; все случаи ава­рийного прерывания команды из-за нарушения этих ' условий должны быть четко оговорены и корректно реализованы. Интересный пример нарушения этого правила связан с ошибкой в процессоре Pentium, обна­руженной осенью 1997 года. Оказалось, что при попытке сравнить 32-битный операнд с 64-битным процессор; не только не обеспечивал стандартной реакции на ошибочную инструкцию, как это ожидалось в подобном слу­чае, но при некоторых неблагоприятных условиях мог даже полностью прекратить работу! Эта ошибка, на­званная " Pentium FO bug", имеется во всех процессорах Pentium и Pentium MMX; в более поздних процессорах ее нет.

Третьей важной особенностью исполнителей часто выделяют его режим работы. Перечень режимов для каждого исполнителя, естественно, свой. Так, для гра­фического редактора это рисование геометрических при­митивов, стирание, выделение и т.д. Телевизор, помимо обычного режима работы, имеет дежурный режим, в котором ожидает, когда его включат для просмотра. Процессор Pentium также имеет несколько режимов работы: режим реальной адресации (реальный режим), защищенный режим виртуальной адресации (защищен­ный режим), режим виртуального процессора 8086 (V86) и режим системного управления (SMM). Их раз­бор выходит далеко за рамки нашего обсуждения; с точ­ки зрения рассматриваемого вопроса важен сам факт существования нескольких режимов работы.

Для большинства несложных учебных исполнителей особо выделяют режимы непосредственного и про­граммного управления. В первом случае исполнитель ожидает команд от человека и каждую немедленно вы­полняет. Наглядным примером работы в таком режиме является устройство управления телевизором. Во вто­ром случае исполните­лю сначала задается пол-ный список команд (программа), а затем он исполняет все эти команды в автоматиче­ском режиме — в та­ком режиме работает компьютер.

Как вы, наверное, догадались, режимы непосредственного и программного управления не являются всеобщими. Уже упоминавшиеся теле­визор и компьютер имеют только один из этих режи­мов, и, честное слово, никаких трудностей это не созда­ет. Телевизор добросовестно исполняет принимаемые с пульта управления команды телезрителя, удовлетворяя сиюминутные желания и прихоти своего владельца (на­пример, включить другой канал на время рекламы). Что же касается компьютера, то он, наоборот, специально был создан для работы в программном режиме, Имен­но в этом состояло и состоит его основное преимуще­ство перед микрокалькулятором, производящим вычис­ления в зависимости от скорости нажатия кнопок чело­веком.

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

И последний наглядный пример, который обязатель­но хочется здесь привести. Уже упоминавшийся выше исполнитель Бейсик может немедленно совершить дейст­вия, записанные в строке, когда она не имеет номера. Строка, содержащая номер, напротив, запоминается в общую программу и исполняется позднее после ввода команды run. А вот Паскаль всегда работает в программ­ном режиме — особенности языка делают реализацию его отдельно взятого оператора невозможной.

Примечание. То, что Бейсик первоначально был интерпрета­тором, а Паскаль всегда реализуется как компилятор, в обсуждае­мой ситуации не представляется принципиально важным. Вспом­ните Quick Basic, который является компилятором, но сохраняет поддержку режима непосредственного исполнения строки команд.

Таковы наиболее общие свойства исполнителей. Ос­тается рассмотреть последнюю часть вопроса о компью­тере как специфическом исполнителе алгоритмов.

Рассматривая свойства алгоритмов в билете № 13, мы убедились, что они могут исполняться формально, а зна­чит, это вполне под силу машине. ЭВМ — это универ­сальный исполнитель алгоритмов; иными словами, она может выполнять самые разнообразные алгоритмы (программы). Как мы уже видели, компьютер имеет соб­ственную систему команд. Ее главное достоинство со­стоит в том, что машинные операции достаточно уни­версальны: арифметические и логические операции, перепись информации, переходы, сдвиги кодов — вот почти весь набор. Комбинируя их между собой, можно получить программу практически для любой области, по­добно тому, как из одинаковых кирпичей можно сло­жить самые разнообразные строения.

Итак, благодаря универсальной СКИ компьютер спосо­бен быть различными исполнителями в зависимости от того, какая программа введена и запущена в нем в данный момент. Диапазон исполнителей очень широк — от графичёского редактора до преобразователя из одного вида коди­ровки в другой. Важным для нас случаем являются програм­мы, реализующие на компьютере различных учебных ис­полнителей. Среди них одним из самых известных является Черепашка, выполняющая команды языка Лого, придуман­ная Сеймуром Пейпертом. Широкое распространение у нас в стране также получили исполнители из Роботландии, раз­работанные группой авторов из Переславля-Залесского. На рисунке приведены некоторые из этих исполнителей: Пере-ливашка, помогающий решать логические задачи на пере­ливание жидкости из одного сосуда в другой; Перевозчик, переправляющий на лодке известных персонажей волка, козу и капусту, и " высокоинтеллектуальный" Кукарача, умею­щий двигать кубики по клетчатой доске.

Во многих школьных учебниках также описываются другие исполнители: Вычислитель, Чертежник, Робот-манипулятор [2], Робот, еще один Чертежник, Стеко­вый калькулятор, Счетчик [4], Паркетчик [5] — и многие другие. Кроме упоминающихся в учебниках, имеются также и другие исполнители, такие, как, на­пример, этот симпатичный Кенгуренок Ру.

Наконец, отдельную группу исполнителей образуют модели учебных ЭВМ Кроха [2], Нейман [3] и Ма­лютка [5]. Совсем новую учебную модель современно­го RISC-компьютера предложил недавно известный чи­тателю по серии книг " Искусство программирования на ЭВМ" профессор Дональд Кнут; он назвал ее MMIX.

После прочтения внушительного перечня программных компьютерных исполнителей у внимательного читателя, наверное, возник вопрос: а есть ли у компьютера собственный алгоритм работы, благодаря которому он является таким универсальным исполнителем? Конечно, есть! Не только собственная система команд, о которой мы уже говорили раньше, но и свой алгоритм работы. Рассмотрим подробнее, как компьютер выполняет отдельные опера­ции и как реализуется вся программа в целом.

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

Каждая программа состоит из отдельных машинных команд. Каждая машинная команда, в свою очередь, делится на ряд элементарных унифицированных состав­ных частей, которые принято называть тактами (пом­ните термин " тактовая частота процессора"? Он проис­ходит именно отсюда!). В зависимости от сложности команды, она может быть реализована за разное коли­чество тактов. Например, пересылка информации из одного внутреннего регистра процессора в другой вы­полняется за несколько тактов, а для перемножения двух целых чисел тактов требуется примерно на порядок боль­ше. Существенное удлинение команды происходит, если обрабатываемые данные не находятся внутри процессо­ра и их приходится считывать из ОЗУ.

При выполнении каждой команды ЭВМ проделывает определенные стандартные действия, описанные ниже.

1. Согласно содержимому счетчика адреса команд счи­тывается очередная команда программы. Ее код обычно заносится на хранение в специальный ре­гистр УУ, который носит название регистра команд.

2. Счетчик команд автоматически изменяется так, что­бы в нем содержался адрес следующей команды. В простейшем случае для этой цели достаточно к те­кущему значению счетчика прибавить некоторую константу, определяющуюся длиной команды.

3. Считанная в регистр команд операция расшифро­вывается, извлекаются необходимые данные и над ними выполняются требуемые действия и, если это предусмотрено операцией, запись результата в ОЗУ.

4. Все описанные действия циклически повторяются сп. 1.

Рассмотренный основной алгоритм работы ЭВМ позволяет шаг за шагом выполнить хранящуюся в ОЗУ линейную программу. Если же требуется изменить по­рядок вычислений для реализации развилки или цикла, достаточно в счетчик команд занести требуемый адрес (именно так происходит условный или безусловный переход).

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.