
- •Кафедра управления и информатики в технических системах
- •Информатика
- •Учебное пособие для студентов всех специальностей
- •Москва 2010
- •3. Логические основы построения компьютеров
- •Аппаратная часть
- •Программная часть
- •Процессоры компьютеров
- •Оперативное запоминающее устройство
- •Устройства ввода
- •10. Вычислительные сети
- •Типы вычислительных сетей
- •10. Программное обеспечение
- •Данные могут быть введены в таблицу несколькими способами.
- •Программирование
- •10 Rem разветвленная программа, Иванов в.В. 310286
- •12. Вычислительная техника и биотехнологии
В.П. Зинкевич
МГОУ
Кафедра управления и информатики в технических системах
Информатика
Учебное пособие для студентов всех специальностей
Москва 2010
1. ВВЕДЕНИЕ
Настоящее учебное пособие предназначено для студентов всех специальностей технического профиля и написано в соответствии с учебными планами и программами.
Целью данной дисциплины является освоение начальных навыков работы в области информатики, информационных технологий и технических средств вычислительной техники.
В результате изучения дисциплины «Информатика» студент должен освоить:
понятие информатики и информации; способы преобразования информации;
арифметические основы современных цифровых устройств, в том числе и компьютеров;
принципы построения и алгоритмы работы основных блоков современных компьютеров (процессоров, запоминающих устройств, устройств ввода-вывода и др.);
программное обеспечение компьютеров, работу с основными прикладными программами;
программирование инженерных задач на каком-либо алгоритмическом языке.
Студенты также должны иметь представление о современных тенденциях развития технических и программных средств вычислительной техники.
Под информатикой понимается наука об обработке информации, т.е. о ее преобразовании, передаче, запоминании и воспроизведении. А информация – это то, что может иметь отношение к решаемой задаче. В отличие от информации, знание – это то, что необходимо для решения данной задачи (без чего нельзя задачу решить).
Особенностью современного состояния цивилизации является повсеместное использование или ближайшие перспективы использования информационных технологий и их основных аппаратных средств – вычислительных устройств. Другой особенностью данной дисциплины по сравнению с многими другими – является ее непрерывное ускоряющееся обновление даже в некоторых фундаментальных понятиях. Поэтому некоторые учебники и учебные пособия по информатике и вычислительной технике десятилетней и даже пятилетней давности становятся устаревшими и не отвечающими реалиям современности. Электронные учебные пособия позволяют более динамично решать эту проблему и быть более доступными непосредственно студентам.
Еще недавно, 20 - 30 лет назад, вычислительные машины, как основное средство по обработке информации было принято делить на аналоговые и цифровые. В аналоговых вычислительных машинах обрабатываемая переменная представлена в виде непрерывного параметра, например, напряжения. Стрелочные измерительные приборы дают представление о такого рода устройствах. В настоящее время цифровые вычислительные устройства являются доминирующими. В них обрабатываемая переменная представлена в виде кода. Чаще всего используется двоичная система счисления, в которой любое число представлено двумя знаками - 0 и 1. Нельзя сказать при этом, что аналоговая вычислительная техника окончательно умерла, тем более что развитие цивилизации дает нам множество примеров последующего возвращения интереса к ушедшим было объектам и принципам (что сейчас наблюдается при создании так называемых нейронных сетей и в моделях искусственной жизни (ИЖ), использующих аналоговые принципы обработки сигналов).
Необходимость в вычислениях сопровождает нашу цивилизацию с момента ее возникновения. Интересно отметить, что слова «калькулятор», «калькуляция» происходят от латинского слова “calculu”, что означает камень, кости. Т.е. камень (или кости) был одним из первых вспомогательных предметов для проведения вычислений. А слово компьютер существует уже около 2000 лет и состоит из двух частей: com («вместе») и putare («считать, рассчитывать»). В VI веке computare в основном использовали для обозначения специфических расчетов, связанных с определением даты праздника Пасхи.
В древние века на ближнем востоке появился абак – дощечка, порытая воском и разделенная вертикальной линией пополам для целых и дробных чисел. 17–ый век оказался особенно урожайным на новшества в области вычислений. Здесь и логарифмы, позволяющие процедуру умножения свести к операции сложения; и логарифмическая линейка, в усовершенствовании которой участвовали Уатт и Ньютон, и первые вычислительные механизмы Леонардо де Винчи и Б. Паскаля. Урожайным оказался и 19-ый век. В начале этого века английский ученый Ч. Бэбидж разработал принцип и создал первую механическую вычислительную машину, выполняющую автоматически, и что важно по программе, математические операции. Удивительным в этой машине было то, что она состояла из механических блоков, которые и сейчас, уже в электронном исполнении, используются в компьютерах – устройства управления, арифметического устройства, запоминающего устройства. Для этой машины Бэбиджа впервые писались программы и в честь первой программистки Ады Лавлейс (дочь поэта Байрона) назван один из современных алгоритмических языков программирования – Ада. В середине 19-го века английский математик Д. Буль разработал алгебру логики (алгебру высказываний), являющийся до настоящего времени теоретической основой функционирования вычислительных машин. В конце 19-го века американский инженер Г. Холлерит разработал перфорационные вычислительные машины, которые впервые нашли массовое применение при подсчете результатов переписи населения США. Созданная Холлеритом фирма после некоторых слияний и преобразований стала известной фирмой IBM (1911 г.). В начале 20-го века (1918 г. – М.А. Бонч-Бруевич) был создан основной элемент современной вычислительной техники – триггер, который и до настоящего времени сохраняет свои важные, доминирующие позиции в информационных технологиях.
Современная вычислительная техника, использующая электронику, зародилась в 30-ые гг. 20-го столетия как ответ на запрос надвигающихся военных событий. Реакция человека не поспевала за возросшими скоростями военных объектов и потребовались новые подходы для ликвидации этого пробела. Так начали возникать первые вычислительные устройства для ведения огня зенитной артиллерии (для расчета артиллерийских таблиц), которые в дальнейшем развились в универсальные вычислительные комплексы.
В 1937 г. Дж. Атанасов – профессор университета штата Айова (США) - разработал принципы построения электронной автоматической вычислительной машины. Им же были запатентованы некоторые из основных функциональных электронных устройств вычислительных машин – регистры, счетчики, сумматоры и т.п. Позже, в 60-70-ые гг. судебные власти США признали за Дж. Атанасовым авторство первого электронного компьютера.
Первое электронное вычислительное устройство с применением двоичной арифметики было создано в 1939 - 1940 гг. Атанасовым и Берри. Называлось оно АВС (Atanasoff Berry Computer).
Первые электромеханические (на электромагнитных реле) вычислительные машины были созданы во время II-ой мировой войны, В Германии К.Цузе разработал серию релейных машин, одна из которых Z3 проработала до 1957 г. В США в 1944 г. была создана электромеханическая вычислительная машина Марк-1 (Г.Айкен, Гарвардский Университет).
Первая электронная машина ЭНИАК (ENIAC - Electronic Numerical Integrate And Computer) с программой вычислений хранимой в памяти, созданная в 1946 г. (14 февраля – день св. Валентина) в университете штата Пенсильвания (Дж. Моучли и Д.Эккерт) содержала 20 тыс. электронных ламп. Она предназначалась для расчета траекторий полета артилерийских снарядов. В качестве основного электронного элемента использовался триггер на электронных лампах. Характерной особенностью этой машины (по сравнению с последующими) было применение десятичной системы счисления. Эксплуатация машины показала крайнюю неэффективность десятичной системы и позволила математику фон Нейману сформулировать основные принципы (постулаты) построения вычислительных машин. Среди них – использование двоичной системы счисления и хранимой в памяти программы.
Первая вычислительная машина, построенная на принципах фон Неймана, ЭДСАК была создана в Великобритании в 1949 г. (Кембриджский Университет).
Первая коммерческая машина (для продажи) ЮНИВАК (UNIVAC) была создана в 1951 г. Дж. Моучли и Д. Эккертом.
В Советском Союзе первая вычислительная машина МЭСМ (Малая электронная счетная машина) была построена в 1951 г. С. Лебедевым, а в 1953 г. им же создана машина БЭСМ (Институт точной механики и вычислительной техники, Москва).
В 1954 г. корпорация RAND приступила к созданию вычислительной машины JOHNIAC, названной так в честь Джона фон Неймана. На этом компьютере впервые была апробирована память на магнитных сердечниках и использовался некий прототип операционной системы JOSS (принцип использования ферритовой памяти на кольцевых сердечниках впервые был преложен Эном Вангом из Гарвардской Вычислительной лаборатории в 1949 г., а в 1951 г. была подана заявка Джеем Форрестором из Массачусетского Технологического Института на изобретение ферритовой памяти для компьютера).
Первой машиной, построенной на германиевых транзисторах, был компьютер компании Control Data Corporation CDC1604 в 1957 г. под руководством Сеймура Крея (в дальнейшем он основал компанию по разработке и производству суперкомпьютеров).
Компьютеры до настоящего времени принято разделять на группы (поколения), внутри которых имеется общая элементная база и архитектура.
I – ое поколение: ламповые элементы. До 1960 г.(условно).
II – ое поколение: транзисторные элементы. До 1970 г.
III – е поколение: интегральные схемы. До 1975 г.
IV – ое поколение: большие интегральные схемы (БИС). До настоящего времени.
Создание компьютеров V – го поколения, проект которых был впервые опубликован в 1982 г. в Японии, продолжается до настоящего времени. Отличительная черта этих компьютеров не столько в элементной базе, сколько в обрабатываемой и получаемой информации. Эти компьютеры должны обрабатывать знания и выдавать новые знания.
.
2. СИСТЕМЫ СЧИСЛЕНИЯ КОМПЬЮТЕРОВ
Математические основы современных компьютеров были сформулированы в начале XIX в. Ч. Бэббиджом, который предложил принцип программного управления вычислительным процессом. Сущность такого управления состоит в том, что вычислительная машина автоматически решает поставленную задачу по заранее составленной программе. Эта программа определяет последовательность простейших арифметических и логических действий, которые необходимо выполнить, чтобы прийти к решению. Вводимые в вычислительную машину исходные данные задачи преобразуются в искомый результат путем выполнения определенной последовательности элементарных операций (сложения, вычитания, умножения, деления и др.) [ 1 ].
Многие свойства компьютера определяются системой счисления, которая принята для реализации математических процедур. Под системой счисления понимается способ представления (записи) чисел с помощью знаков – т.е. это набор правил и знаков для записи чисел. Количество знаков, используемое для записи чисел, называется основанием а этой системы.
Система счисления, в которой значение знака не зависит от его положения в числе, называется непозиционной. Известный пример такой системы счисления – римская система счисления. В ней, например, значения знака Х не зависит от его положения в числе. Недостатки такой системы очевидны – в ней трудно или даже невозможно производить математические операции: сложения, вычитания, умножения, деления, возведения в степень и т.п.
Если же значение знака зависит от его положения (позиции) в числе, то такая система называется позиционной. Привычная для нас десятичная система счисления, в которой используется десять знаков, является примером позиционной системы. Например, знак 2 в младшем целом разряде означает две единицы, но в следующем старшем разряде (например, числа 20) означает два десятка.
Система счисления, используемая в настоящее время в Китае, содержит в себе как элементы позиционной системы счисления, так и непозиционной системы счисления.
В десятичной системе счисления, широко применяемой в мире в настоящее время, как известно, используется 10 знаков: 0,1,2,3,4,5,6,7,8,9. В восьмеричной – 8 знаков: 0,1,2,3,4,5,6,7. В двоичной системе, нашедшей наибольшее применение в вычислительной технике, два знака: 0 и 1.
Для физического представления чисел в вычислительном устройстве необходимы элементы, способные находиться в одном из нескольких устойчивых состояний. Каждое состояние может характеризоваться определенным уровнем какого-то параметра, например, напряжением. Число таких состояний должно быть равно основанию принятой системы счисления. Тогда каждое состояние будет соответствовать определенному знаку (цифре) данной системы счисления. В момент создания первых электронных вычислительных машин в 40-ые гг. ХХ в. был известен только один электронный элемент, отвечающий таким требованиям - триггер (как отмечалось выше, М.А. Бонч-Бруевич – 1918 г.). Это двухпозиционный (двоичный) элемент, способный находиться в одном из двух устойчивых состояний - 0 или 1 (нет напряжения на выходе элемента – это 0; есть напряжение на выходе – это 1). Это и обусловило распространение в вычислительных машинах двоичной системы счисления.
В приведенной ниже таблице можно увидеть соответствие и запись некоторых чисел трех систем счисления.
Табл. 2.1.
Десятичная |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Восьмерич. |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
Двоичная |
1 |
10 |
11 |
100 |
101 |
110 |
111 |
1000 |
1001 |
1010 |
Здесь следует напомнить правило перехода от одного числа к другому, на единицу большего предыдущего. Этим правилом приходиться часто пользоваться при построении подобной таблицы. Если число оканчивается на старшую цифру в данной системе счисления, то старшая цифра заменяется на младшую, а к соседнему старшему разряду добавляется 1. Эту процедуру особенно часто (через раз) приходится выполнять в двоичной системе счисления. Например, в восьмеричной системе счисления за числом 467 следует число 470.
В компьютере числа представлены в двоичной системе счисления. Вместе с тем исходная информация задается в привычной для человека десятичной системе счисления. Поэтому уже внутри компьютера производится преобразование исходной информации в двоичную систему счисления. Такое преобразование, как для целых, так и для дробных чисел можно представить себе в виде бесконечной таблицы, наподобие Табл. 2.1. Однако практическая реализация такой таблицы и ее использование не кажутся разумными. На практике в компьютере такое преобразование производится математически, путем выполнения стандартных математических процедур. Покажем это на примере преобразования числа 13 в десятичной системе счисления в соответствующее ему число в двоичной системе счисления. Процедура эта производится путем деления числа 13 на основание двоичной системы счисления 2.
13
2.
12
6 2
1
6 3 2
0
2 1
1
Таким образом (13)10 = (1101)2 . А результат считывается по подчеркнутым наклонным жирным цифрам в направлении, указанном стрелкой.
Аналогичным образом выполняется процедура преобразования числа 13 десятичной системы счисления в соответствующее ему число восьмеричной системы счисления
13
8
8 1
5
Из полученного видно, что (13)10 = (15)8. В этом можно убедиться, например, продлив соответствующим образом Табл. 2.1.
Перевод целых чисел из десятичной системы счисления в двоичную и обратно не вызывает каких либо проблем. Проблемы возникают при переводе вещественных чисел, точнее, при переводе дробной части десятичного числа в двоичную дробь и обратно.
Рассмотрим пример перевода десятичного числа 0,8125 в двоичный эквивалент. Процедура перевода заключается в умножении исходной десятичной дроби на 2 до появления в дробной части одних нулей. При этом умножению подвергается только дробная часть.
Результат считывается по наклонным жирным цифрам в направлении стрелки, т.е.
0,
8125
__2___
1, 6250
__2___
1, 2500
__2___
0, 5000
__2___
1, 0000
Таким образом
(0,8125)10 = (0,1101) 2 .
Рассмотрим пример перевода другого дробного числа 0,15 в двоичную систему счисления.
0,
15
__2__
0, 30
__ 2__
0, 60
_2__
1, 20
__2__
0, 40
_ _ _2_
0, 80
__ 2__
1, 60
__2__
1, 20
…….
Далее нет смысла умножать, поскольку число 1,20 было выше. Это означат, что десятичное число 0,15 не имеет точного эквивалента в двоичной системе счисления, т.е.
(0,15)10 = (0,0010011…)2.
Отсутствие точного двоичного эквивалента для значительного количества десятичных вещественных (имеющих дробную часть) чисел вынуждает повышать разрядность запоминающих и арифметических устройств компьютеров (для повышения точности вычислений) и предусматривать в некоторых случаях применение специальных программных средств, поскольку погрешность от вычислений может стать недопустимо большой. Разрядность же современных процессоров в основном – 32 или 64 двоичных разряда (бита).
Любое вещественное число в двоичной системе счисления может быть преобразовано в десятичное число в виде суммы целых степеней ее основания а=2, умноженных на соответствующие коэффициенты Ki (0 или 1 для двоичной системы счисления), т.е.
M
(N)2 = Ki *2i-1 ,
I = -n
где М- общее количество разрядов числа, i – номер разряда, в котором находится данная цифра.
В соответствие с этой формулой двоичное число
(1101)2 = 1*23 + 1*22 + 0*21 +1*20 = 8 + 4 + 0 + 1 = 13
Аналогично, для двоичной дроби
(0,1101)2 = 1*2-1 +1*2-2 + 0*2-3 +1*2-4 = 0,5+ 0,25+ 0+ 0,0625 = 0,8125
Сравнение двоичной и десятичной систем счисления показывает, что двоичная запись числа в 3,32 раза длиннее (имеет больше разрядов) десятичной. Кроме того, использование двоичной системы счисления в компьютерах предусматривает перевод чисел из десятичной системы в двоичную, а после решения задачи результат переводится из двоичной системы в десятичную.
Выбор системы счисления для компьютеров определяется наряду с удобствами использования и еще тем, насколько велики затраты на оборудование. В первой электронной вычислительной машине ЭНИАК (1946 г.) использовалась десятичная система счисления с ее реализацией на двоичных триггерах. Каждый десятичный разряд содержал десять триггеров. В каждом десятичном разряде при такой реализации можно было отобразить десять состояний (10 десятичных знаков от 0 до 9). В то же время десять двоичных триггеров используемых в двоичной системе счисления позволяют отобразить 210 = 1024 состояния. Это показывает насколько двоичная система эффективнее десятичной, если для ее реализации используются двоичные триггеры. В начале 40-ых гг. ХХ в только такие триггеры и были. Именно поэтому одним из основных постулатов Дж. Фон Неймана при построении электронной вычислительной машины было использование двоичной системы счисления.
Для сравнения систем с различным основанием а по расходу электронного оборудования (транзисторов в двоичных триггерах) построим таблицу, в которой расход оборудования для двоичной системы принят за 1 [1 ].
Табл.2.2
а |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Расх. оборуд.. |
1 |
0,946 |
1 |
1,078 |
1,148 |
1,247 |
1,333 |
1,42 |
1,505 |
Из Табл. 2.2 следует, что наиболее экономичной системой счисления при использовании двоичного триггера является троичная система. Это обстоятельство послужило причиной создания в конце 50-ых гг. ХХ в. в Московском Государственном Университете единственной в мире электронной машины “Сетунь” с троичной системой счисления. Однако неудобства, связанные с необходимостью состыковки троичных вычислительных и запоминающих устройств с двоичной внешней памятью (на перфокартах, перфолентах и магнитных носителях) свели на нет все преимущества троичной системы счисления.
Вместе с тем в СССР в конце 50-ых гг. развилось другое, более успешное направление – разработка многозначных элементов. Под такими элементами понимаются электронные схемы, имеющие более двух устойчивых состояний, причем количество состояний в них не зависит (или мало зависит) от количества используемых транзисторов [ 1 ]. Формально это свойство может означать, что на двух транзисторах может быть получено, например, 3, 8 или 16 состояний. Реализация этих идей привела к применению многозначных элементов в измерительной аппаратуре, специальных приборах и в интегральных счетных микросхемах.
Один двоичный разряд в компьютере, который реализуется, например, двоичным триггером и может принимать значения 0 или 1, называется битом (binary digit). В современных компьютерах в качестве минимальной адресуемой (передаваемой) и обрабатываемой единицы принят байт (bite), содержащий 8 двоичных разрядов, т.е. 8 бит. К 8-ми информационным разрядам каждого байта в компьютере добавляется 9-ый контрольный разряд, дополняющий до нечетности сумму информационных разрядов (Табл. 2.3).
Табл. 2.3.
Бит контроля на нечетность
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Кроме байта используют полуслово (2 байта), слово (4 байта) и двойное слово (8 байт).
Точность представления числа в компьютере определяется количеством разрядов, отведенную под дробную его часть. Для обычной точности выделяется 7 десятичных разрядов, а для удвоенной точности 16 десятичных разрядов.
С помощью байта, содержащего 8 двоичных разрядов, может быть закодировано 28 = 256 символов. Например, знак А может быть представлен в стандартном коде ASCII как 10000001, а знак В - 10000010. Остальные знаки и функции соответствующим набором нулей и единиц в байте.