Реферат: Редакционно-издательским советом Томского политехнического университета Издательство Томского политехнического университета 2011 ббк 32. 973. 2я73
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Т.Е. Мамонова
И Н Ф О Р М А Т И К А
Общая информатика. Основы языка C++
Рекомендовано в качестве учебного пособия
Редакционно-издательским советом
Томского политехнического университета
Издательство
Томского политехнического университета
2011
ББК 32.973.2я73
УДК 681.3(075.8)
М22
М22
Мамонова Т.Е.
Информатика. Общая информатика. Основы языка C++: учебное пособие / Т.Е. Мамонова; Томский политехнический университет. – Томск: Изд-во Томского политехнического университета, 2011. – 206 с.
^ В авторской редакции
В учебном пособии в краткой форме изложены теоретические вопросы курса «Информатика», в том числе основные определения и основные технологии кодирования информации и программирования. Выделены важнейшие положения по программированию на языке высокого уровня C++. По каждой теме представлено большое количество тренировочных задач, включен справочный материал.
Пособие подготовлено на кафедре интегрированных компьютерных систем управления, соответствует программе дисциплины и предназначено для студентов ИДО, обучающихся по направлению 220700 «Автоматизация технологических процессов и производств».
ББК 32.973.2я73
УДК 681.3(075.8)
Рецензенты
Доктор технических наук,
профессор кафедры интегрированных
компьютерных систем управления ИК ТПУ
А.М. Малышенко
Кандидат технических наук,
доцент кафедры интегрированных
компьютерных систем управления ИК ТПУ
^ В.Н. Шкляр
© ФГБОУ ВПО НИ ТПУ, 2011
© Мамонова Т.Е., 2011
© Оформление. Издательство Томского политехнического университета, 2011
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 6
^ 1. ОБЩИЕ ВОПРОСЫ ИНФОРМАТИКИ 8
1.1. Определение информатики 8
1.2. Технические средства информатики 9
1.2.1. История развития вычислительной техники 9
1.2.2. Поколения ЭВМ 11
1.2.3. Архитектура ЭВМ 13
1.2.3.1. Классическая архитектура ЭВМ и принцип фон Неймана 14
1.2.3.2. Совершенствование и развитие внутренней структуры ЭВМ 16
1.2.3.3. Основной цикл работы ЭВМ 16
1.2.3.4. Система команд ЭВМ и способы обращения к данным 17
1.2.4. Типы и назначение компьютеров 19
1.2.5. Магистрально-модульный принцип построения
компьютера 22
1.2.6. Периферийные и внутренние устройства 23
1.2.6.1. Центральный процессор 24
1.2.6.2.Оперативная память 25
1.2.6.3. Устройства хранения информации 26
1.2.6.4. Устройства ввода 27
1.2.6.6. Устройства связи 29
1.2.7. Программный принцип управления компьютером 29
^ 1.3. Компьютерные вирусы 30
1.3.1. Основные признаки появления в системе вируса 32
1.3.2. Правовая охрана программ и GPL 33
1.4. Операционные системы и сети 35
1.4.1. Операционные системы 35
1.4.1.1. Операционная система MS DOS 36
1.4.1.2. Microsoft Windows 39
1.4.1.3.Операционная система Linux 40
1.5. Обработка документов 41
1.5.1. Текстовый процессор MS Word 42
1.6 Вопросы для самоконтроля 55
^ 2. АРИФМЕТИЧЕСКИЕ ОСНОВЫ
ПОСТРОЕНИЯ ЭВМ 56
2.1. Единицы измерения информации 56
2.2. Системы счисления 58
2.2.1. Двоичная система счисления 59
2.2.2. Восьмеричная и шестнадцатеричная системы счисления 62
2.2.3. Перевод чисел из одной системы счисления в другую 63
2.3. Двоичное кодирование информации 66
2.4 Вопросы для самоконтроля 70
^ 3. ОСНОВЫ ТЕХНОЛОГИИ
ПРОГРАММИРОВАНИЯ ЗАДАЧ 72
3.1. Технология программирования
и основные этапы её развития 72
3.2. Источники ошибок в программных средствах 76
3.2.1. Интеллектуальные возможности человека 76
3.2.2. Неправильный перевод как причина ошибок
в программных средствах 77
3.2.3. Основные пути борьбы с ошибками 80
^ 3.3. Понятие алгоритма, свойства алгоритмов 81
3.4. Языки программирования 83
3.5. Структурное программирование 85
3.6. Объектно-ориентированное программирование 87
3.6.1. История 87
3.6.2. Основные понятия 88
3.6.3. Основные концепции ООП 89
3.6.4. Особенности реализации 92
3.6.5. Подходы к проектированию программ в целом 94
3.6.6. Родственные методологии 95
3.6.7. Производительность объектных программ 96
3.6.8. Критика ООП 98
3.6.9. Объектно-ориентированные языки 99
^ 3.7. Обобщённое программирование 100
3.7.1. Общий механизм 101
3.7.2. Способы реализации 102
3.7.3. Обобщённое программирование в языке C++ 103
3.8 Вопросы для самоконтроля 103
^ 4. ОСНОВЫ ЯЗЫКА C++ 104
4.1. Типичная среда C++ программирования 106
4.2. Структура программы на C++ 107
4.3. Базовые средства языка C++ 110
4.3.1. Состав языка C++ 110
4.3.1.1. Константы в C++ 111
4.3.2. Типы данных в C++ 113
4.3.3. Переменные 115
4.3.4. Знаки операций в C++ 117
4.3.5. Выражения 119
4.3.6. Ввод и вывод данных 120
^ 4.4. Основные операторы языка C++ 122
4.4.1. Базовые конструкции структурного программирования 122
4.4.2. Оператор «выражение» 122
4.4.3. Составные операторы 123
4.4.4. Операторы выбора 123
4.4.5. Операторы циклов 125
4.4.6. Операторы перехода 127
^ 4.5. Примеры решения задач
с использованием основных операторов C++ 128
4.5.1. Программирование ветвлений 130
4.5.2. Программирование арифметических циклов 132
4.5.3. Итерационные циклы 134
4.5.4. Вложенные циклы 136
^ 4.6. Составные типы данных в C++ 137
4.6.1. Массивы 137
Определение массива в C/C++ 137
4.6.2. Указатели 147
4.6.3. Ссылки 152
4.6.4. Указатели и массивы 153
^ 4.7. Символьная информация и строки 157
4.8. Функции в C++ 162
4.8.1. Объявление и определение функций 163
4.8.2. Прототип функции 166
4.8.3. Параметры функции 166
4.8.4. Локальные и глобальные переменные 169
4.8.5. Функции и массивы 170
4.8.5.1. Передача одномерных массивов как параметров функции 170
4.8.5.2. Передача строк в качестве параметров функций 172
4.8.5.3. Передача многомерных массивов в функцию 173
4.8.6. Функции с начальными (умалчиваемыми)
значениями параметров 174
4.8.7. Подставляемые (inline) функции 175
4.8.8. Функции с переменным числом параметров 175
4.8.9. Перегрузка функций 177
4.8.10. Шаблоны функций 178
4.8.11. Указатель на функцию 181
4.8.12. Ссылки на функцию 183
^ 4.9. Типы данных, определяемые пользователем 184
4.9.1. Переименование типов 184
4.9.2. Перечисления 184
4.9.3. Структуры 185
4.9.5. Битовые поля 188
4.9.6. Объединения 188
^ 4.10. Динамические структуры данных 189
4.10.1. Линейный однонаправленный список 190
4.10.2. Работа с двунаправленным списком 194
4.11. Ввод-вывод в C++ 198
4.11.1. Потоковый ввод-вывод 198
4.11.1.1 Открытие и закрытие потока 199
4.11.2. Стандартные файлы и функции для работы с ними 201
4.11.3. Символьный ввод-вывод 201
4.11.4. Строковый ввод-вывод 202
4.11.5. Блоковый ввод-вывод 203
4.11.6. Форматированный ввод-вывод 205
4.11.6.1 Прямой доступ к файлам 206
4.11.6.2 Удаление и добавление элементов в файле 207
^ 4.12 Вопросы для самоконтроля 208
Список литературы 209
ПРИЛОЖЕНИЕ 210
ВВЕДЕНИЕ
Данное учебное пособие предназначено для изучения курса «Информатика» для студентов ИДО, обучающихся по классической форме обучения (КЗФ) и с использованием дистанционных образовательных технологий (ДОТ) направления 220700 «Автоматизация технологических процессов и производств». В данном пособии представлены также дополнительные материалы, которые могут использоваться при выполнении лабораторных и курсовой работы по дисциплине «Информатика».
В этом пособии рассматриваются основные понятия и определения информатики, приведен материалы для изучения систем счисления, используемых в ЭВМ, привелдены практические примеры, при решении которых студент подготовится к сдаче зачёта по дисцииплине «Информатика». Также в данном пособии представлены примеры написания программ на языке программирования C++.
Весь материал разбит на разделы, в первом из которых описаны основы общие вопросы по информатике, включающие в свой состав такие вопросы, как история развития вычислительной техники, устройство и принцип работы компьютера. Во втором разделе представлен материал об арифметико-логическом устройстве, устройствах управления, память, логическое устройство компьютера, а также программное обеспечение ЭВМ. В третьем разделе кратко описаны основные технологии программирования, их достоинства и недостатки. Последний раздел посвящён основам программирования на языке высокого уровня C++, данный раздел предназначен для знакомства с языком и приобретения практических навыков для выполнения лабораторных и курсовой работ.
Настоящее пособие посвящено изучению «Информатики» – новой научной дисциплины и новой информационной индустрии, связанных с использованием персональных компьютеров и сети Интернет. Развитие бизнеса, образования, промышленности и общества в целом учеными, политиками, бизнесменами во многом связывается с широким использованием информационных ресурсов Интернет и нарастающими интеллектуальными возможностями вычислительных машин.
Наиболее распространенным видом современной вычислительной техники стали персональные компьютеры IBM PC. По этим причинам в пособии изучаются основные возможности наиболее современных программных средств персональных компьютеров IBM PC – операционной системы Windows, а также редактора текстов Word.
Представление информатики как научной дисциплины связано с рассмотрением проблем организации вычислений и обработки информации с помощью ЭВМ и внутри ЭВМ.
Особенностью информатики как учебной дисциплины является практикум на ЭВМ, который может проводиться в вузе или дома. Для прохождения такого практикума необходимо иметь персональный компьютер или доступ к нему, а также необходимые пакеты программ – редакторы текстов, базы данных, электронные таблицы и др.
Настоящее пособие построено так, что по нему можно изучать информатику даже дома с использованием персональной ЭВМ, и последующей сдачей зачета с помощью Интернет (для студентов, обучающихся с применением ДОТ). Такая возможность требует наличия на домашних ЭВМ перечисленных пакетов программ с операционными системами, редакторами текстов и системами программирования.
^ 1. ОБЩИЕ ВОПРОСЫ ИНФОРМАТИКИ 1.1. Определение информатики
Информатика – это техническая наука, систематизирующая приёмы создания, хранения, воспроизведения, обработки и передачи данных средствами вычислительной техники, а также принципы функционирования этих средств и методы управления ими [1].
Информатика – молодая научная дисциплина, изучающая вопросы, связанные с поиском, сбором, хранением, преобразованием и использованием информации в самых различных сферах человеческой деятельности. Генетически информатика связана с вычислительной техникой, компьютерными системами и сетями, так как именно компьютеры позволяют порождать. Хранить и автоматически перерабатывать информацию в таких количествах, что научный подход к информационным процессам становится одновременно необходимым и возможным [9].
Рассмотрим состав ядра современной информатики [9]. Каждая из этих частей может рассматриваться как относительно самостоятельная научная дисциплина; взаимоотношения между ними примерно такие же, как между алгеброй, геометрией и математическим анализом в классической математике – все они хоть и самостоятельные дисциплины, но, несомненно, части одной науки.
^ Теоретическая информатика – часть информатики, включающая часть математических разделов. Она опирается на математическую логику и включает такие разделы как теория алгоритмов и автоматов, теория информации и теория кодирования, теория формальных языков и грамматик, исследование операций и др. Этот раздел информатики использует математические методы для изучения процессов обработки информации.
^ Вычислительная техника – раздел информатики, в котором разрабатываются принципы построения вычислительных систем. Речь идёт не о технических деталях и электронных схемах (это лежит за пределами информатики как таковой), а о принципиальных решениях на уровне так называемой архитектуры вычислительных (компьютерных) систем, определяющей состав назначение, функциональные возможности и принципы взаимодействия устройств. Примеры принципиальных, ставших классическими решений в этой области – неймановская архитектура компьютеров первых поколений, шинная архитектура ЭВМ старших поколений, архитектура параллельной (многопроцессорной) обработки информации.
Программирование – деятельность, связанная с разработкой систем программного обеспечения. Например, это – создание системного программного обеспечения и создание прикладного программного обеспечения. Среди системного – разработка новых языков программирования и компиляторов к ним, разработка интерфейсных систем, (пример – общеизвестная операционная оболочка и система Windows). Среди прикладного программного обеспечения – системы обработки текстов, электронные таблицы, системы управления базами данных.
^ 1.2. Технические средства информатики 1.2.1. История развития вычислительной техники
Всё началось с идеи научить машину считать или хотя бы складывать многоразрядные целые числа. Ещё около 1500 г. Леонардо да Винчи разработал эскиз 13-разрядного суммирующего устройства, что явилось первой дошедшей до нас попыткой решить указанную задачу [4].
1642 г. – француз Блез Паскаль (физик, математик, инженер) построил 8-разрядную суммирующую машину – прообраз арифмометров, использовавшихся вплоть до середины 70-х годов ХХ века.
1822 г.– английский математик Чарльз Бэббидж сконструировал и почти 30 лет строил машину, которая вначале называлась «разностной», а затем – «аналитической». В эту машину были заложены принципы, ставшими фундаментальными для вычислительной техники:
1) автоматическое выполнение операций;
2) автоматический ввод программы (записывалась на перфокарты);
3) наличие специального устройства (памяти) для хранения данных.
На основе механической техники эти идеи реализовать не удалось.
1944 г. – под руководством Говарда Айкена (американского математика и физика) на фирме IBM (International Business Machines) была запущена машина «Марк-1», впервые реализовавшая идеи Бэббиджа. Для представления чисел в ней были использованы механические элементы (счётные колёса), для управления – электромеханические.
1945–1946 гг. – под руководством Джона Моучли и Преспера Эккерта в США создана первая электронная вычислительная машина (ЭВМ) ENIAC. В ней использовалось 18000 электронных ламп, энергопотребление равнялось 150 кВт.
1949 г. – в Великобритании была построена первая ЭВМ с хранимой программой (EDSAC). Принцип хранимой программы требует, чтобы программы закладывались в память машины так же, как в неё закладывается исходная информация.
^ 1951 г. – в СССР под руководством Сергея Александровича Лебедева создана МЭСМ – малая электронно-счётная машина.
1964 г. – появление интегральных схем
1965 г. – первый миникомпьютер
При создании компьютеров используются специалисты различных направлений – математики, физики, техники, программисты и т.д.
В этом смысле информатика определялась как совокупность дисциплин изучающих свойства информации, а так же процессы передачи, накопления, обработки информации с помощью технических средств.
Выделяется часть науки, которая занимается проблемами применения средств вычислительной техники для работы с информацией. В Англии и США это Computer Science (наука о вычислительной технике), во Франции – informatique (информатика). В 60-е годы происходит становление информатики, как фундаментальной естественной науки изучающей процессы обработки, передачи и накопления информации. Данная дисциплина создана на стыке точных и естественных наук. Ядро информатики – информационные технологии.
^ Информационная технология – совокупность технических и программных средств, с помощью которых обрабатывается информация. Центральное место в информационных технологиях занимает компьютер.
^ 1970-е г. – создание БИС (большой интегральной схемы).
1970 г. – создана саморазмножающаяся программа для одной из первых компьютерных сетей – ARPnet. Программа Creepeer, которая по некоторым данным была написана Бобом Томасом, путешествовала по сети, обнаруживая свое появление сообщением «Я КРИППЕР... ПОЙМАЙ МЕНЯ, ЕСЛИ СМОЖЕШЬ».
^ 1971 г. – создан первый микрокомпьютер Kenback1
1972 г. – 31-летний специалист по системному программированию из фирмы Bell Labs Деннис Ритчи разработал язык программирования С.
1972 г. – опубликована работа Эдсгера Дайкстры «Заметки по структурному программированию», содержащая блестящее описание основных идей структурного программирования
1973 г. – швейцарский специалист по программированию Никлаус Вирт опубликовал «Пересмотренное сообщение», определившее точный стандарт языка Pascal. Строгий стиль языка Pascal был с восторгом принят приверженцами структурного программирования.
^ 1975 г. – год образования фирмы Microsoft.
1977 г. – первый микрокомпьютер Уозняка и Джобса, выпущенный фирмой Apple.
1980 г. – создан центральный процессор на одном кремниевом кристалле.
1980-е г. – появление СБИС.
ЭВМ – это программируемое электронное устройство обработки и накопления информации [4].
^ 1.2.2. Поколения ЭВМ
В истории вычислительной техники существует периодизация ЭВМ по поколениям. В её основу был положен физико-технологический принцип: машину относят к тому или иному поколению в зависимости от используемых в ней физических элементов или технологии их изготовления. Границы поколений во времени размыты, так как в одно и то же время выпускались машины разного уровня. Когда приводят даты, относящиеся к поколениям, то скорее всего имеют в виду период промышленного производства.
В настоящее время физико-технологический принцип не является единственным при определении принадлежности той или иной ЭВМ к поколению. Следует считаться и с уровнем программного обеспечения, с быстродействием, другими факторами, основные из которых сведены в таблицу (Приложение).
Опишем поколения ЭВМ более подробно [5]:
1 поколение (1944–1958). Ламповые машины с быстродействием порядка 10–20 тыс. операций в секунду, программы писались на машинном языке (рис. 1).
Рис. 1. ЭВМ EDSAC
2 поколение (1959 – 1963). Полупроводниковые машины на транзисторах. Быстродействие 100 тыс. операций в секунду. Имеются программы перевода с алгоритмических языков на машинный язык. Есть набор стандартных программ (рис. 2).
Рис. 2. ЭВМ ENIAK
3 поколение (1964 – 1970). Миникомпьютеры на интегральных схемах (рис. 3). Отличаются большей надежностью и малыми размерами. Быстродействие 10 млн. оп/с. Образуют системы программно-совместимых устройств.
Рис. 3. Миникомпьютер
на интегральных схемах
4 поколение (1971 – до сегодняшнего дня). Вычислительные системы на больших интегральных схемах (БИС). Имеют большой объем памяти, позволяют подключать большое количество устройств ввода и вывода информации (рис. 4). Для ввода данных и команд используется клавиатура. Микропроцессор, разработанный, в 1971 году позволил создать центральный процессор на одном чипе.
Рис. 4. Миникомпьютер «Электроника» на БИС
5 поколение (настоящее и будущее). Еще создается, предполагается развитие искусственного интеллекта на основе оптико-лазерных технологий и применения СБИС. Планируется создать компьютер с большим быстродействием, огромным по мощности процессором и неограниченной виртуальной памятью.
В качестве основного элемента для электрических цепей будет использован арсенид галия. Работа этих компьютеров будет основана на параллельных вычислениях.
При определении признаков пятого поколения среди специалистов нет единодушия. В середине 80-х годов считалось, что основной признак этого будущего поколения – полновесная реализация принципов искусственного интеллекта. Эта задача оказалась значительно сложнее, чем виделось в то время. И ряд специалистов снижают планку требований к этому этапу (и даже утверждают, что он уже состоялся). Указанные в верхней строчке таблицы даты соответствуют первым годам выпуска ЭВМ.
^ 1.2.3. Архитектура ЭВМ
Архитектура – это наиболее общие принципы построения ЭВМ, реализующие программное управление работой и взаимодействие основных её функциональных узлов [9].
Наиболее общие принципы построения ЭВМ, которые относятся к архитектуре:
1) структура памяти ЭВМ;
2) способы доступа к памяти и внешним устройствам;
3) возможность изменения конфигурации компьютера;
4) система команд;
5) организация интерфейса.
^ 1.2.3.1. Классическая архитектура ЭВМ и принцип фон Неймана
Основы учения об архитектуре вычислительной машины заложил американский математик Джон фон Нейман. В 1946 г. он с соавторами изложил свои принципы построения вычислительных машин в статье «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства».
В статье обосновывается использование двоичной системы для представления чисел (ранее все ВМ хранили обрабатываемые числа в десятичном виде). В дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации – текстовую, графическую, звуковую и др., но двоичное кодирование данных по-прежнему составляет информационную основу компьютера.
Революционным является предложенный Нейманом принцип «хранимой программы». Первоначально программа задавалась путём установки перемычек на специальной коммутационной панели. Это было трудоёмким занятием (изменение программы для машины ENIAC требовало несколько дней). Нейман догадался, что программа может также храниться в виде набора нулей и единиц, причём в той же самой памяти, что и обрабатываемое ею число. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений.
Фон Нейман не только выдвинул принципы логического устройства ЭВМ, но и предложил её структуру, которая воспроизводилась в течение первых двух поколений ЭВМ. Основными блоками по Нейману являются устройство управления (УУ) и арифметико-логическое устройство (АЛУ) (обычно объединённые в центральный процессор), память, внешняя память, устройства ввода и вывода. Схема устройства такой ЭВМ представлена на рис. 5.
Рис. 5. Архитектура ЭВМ, построенной по принципам фон Неймана.
УУ и АЛУ в современных компьютерах объединены в один блок – процессор, являющийся преобразователем информации, поступающей из памяти и внешних устройств. Сюда относятся выборка команд из памяти, кодирование и декодирование, Выполнение различных, в том числе и арифметических, операций, согласование работы узлов компьютера.
Память (ЗУ) хранит информацию (данные) и программы. Запоминающее устройство у современных компьютеров «многоярусно» и включает:
– ОЗУ, хранящее ту информацию, с которой компьютер работает непосредственно в данное время (исполняемая программа, часть необходимых для неё данных, некоторые управляющие программы);
– ВЗУ гораздо большей ёмкости, чем ОЗУ, но с существенно более медленным доступом.
На ОЗУ и ВЗУ классификация устройств памяти не заканчивается. Определённые функции выполняют и сверхоперативное запоминающее устройство (СОЗУ), и постоянное запоминающее устройство (ПЗУ), и другие виды компьютерной памяти.
В построенной по описанной схеме ЭВМ происходит последовательное считывание команд из памяти и их выполнение. Номер (адрес) очередной ячейки памяти, из которой будет извлечена следующая команда программы, указывается специальным устройством – счётчиком команд в УУ. Его наличие также является одним из характерных признаков рассматриваемой архитектуры.
Подавляющее большинство вычислительных машин на сегодняшний день имеют фон-неймановскую архитектуру. Исключение составляют отдельные разновидности систем для параллельных вычислений, в которых отсутствует счётчик команд, не реализована классическая концепция переменной и т.д.
По-видимому, значительное отклонение от фон-неймановской архитектуры произойдёт в результате развития идея машины пятого поколения, в основе обработки информации в которых лежат не вычисления, а логические выводы.
^ 1.2.3.2. Совершенствование и развитие внутренней структуры ЭВМ
Появление третьего поколения ЭВМ было обусловлено переходом от транзисторов к интегральным микросхемам. Возникло противоречие между высокой скоростью обработки информации внутри машины и медленной работой устройств ввода-вывода, в большинстве своём содержащих механические движущиеся части. Процессор, руководивший работой внешних устройств, значительную часть времени был бы вынужден простаивать в ожидании информации из «внешнего мира». Для решения этой проблемы возникла тенденция к освобождению центрального процессора от функций обмена и к передаче их специальным электронным схемам управления работой внешних устройств – контроллерам.
Наличие интеллектуальных контроллеров внешних устройств стало важной отличительной чертой машин третьего и четвёртого поколений.
Контроллер можно рассматривать как специализированный процессор, управляющий работой внешнего устройства по специальным встроенным программам обмена.
^ 1.2.3.3. Основной цикл работы ЭВМ
Каждая программа состоит из отдельных машинных команд. Каждая машинная команда делится на ряд элементарных унифицированных составных частей, которые принято называть тактами. В зависимости от сложности команды она может быть реализована за разное число тактов.
При выполнении каждой команды ЭВМ проделывает определённые стандартные действия:
1. Согласно содержимому счётчика адреса команд, считывается очередная команда программы. Её код обычно заносится на хранение в специальный регистр УУ, который носит название регистра команд.
2. Счётчик команд автоматически изменяется так, чтобы в нём содержался адрес следующей команды. В простейшем случае для этой цели достаточно к текущему значению счётчика прибавить некоторую константу, определяющуюся длиной команды.
3. Считанная в регистр команд операция расшифровывается, извлекаются необходимые данные и над ними выполняются требуемые действия.
Затем во всех случаях, за исключением команды останова или наступления прерывания, все описанные действия циклически повторяются.
Если требуется изменить порядок вычислений для реализации развилки или цикла, достаточно в счётчик команд занести требуемый адрес.
^ 1.2.3.4. Система команд ЭВМ и способы обращения к данным
Система команд любой ЭВМ обязательно содержит следующие группы команд обработки информации [8].
1. Команды передачи данных (перепись), копирующие информацию из одного места в другое.
2. Арифметические операции. К основным арифметическим действиям обычно относятся сложение и вычитание. Умножение и деление во многих ЭВМ выполняются по специальным программам.
3. Логические операции, позволяющие компьютеру анализировать обрабатываемую информацию (И, ИЛИ, НЕ, < и т.д.).
4. Сдвиги двоичного кода влево или вправо.
5. Команды ввода и вывода информации для обмена с внешними устройствами.
6. Команды управления, реализующие нелинейные алгоритмы, например, условный и безусловный переход.
Команда ЭВМ обычно состоит из двух частей – операционной и адресной. Операционная часть (иначе она ещё называется кодом операции КОП) указывает, какое действие необходимо выполнить с информацией. Адресная часть описывает, где используемая информация хранится. У нескольких команд адресная часть может отсутствовать, например, в команде останова. Операционная часть имеется всегда.
Код операции можно представить как некоторый условный номер в общем списке системы команд, например, команда 010 – сложение. Адресная часть обладает значительно бóльшим разнообразием.
Команды могут быть одно- , двух- и трёхадресные в зависимости от участвующих в них операндов.
Первые ЭВМ имели наиболее простую и наглядную трёхадресную систему команд. Например,
010 А1 А2 А3
означает, что надо взять числа из адресов памяти А1 и А2, сложить их и сумму поместить в адрес А3. Если для операции требовалось меньшее число адресов, то лишние просто не использовались. Например, в операции переписи указывались лишь ячейки источника и приёмника информации А1 и А3, а содержимое А2 не имело никакого значения.
Трёхадресная команда легко расшифровывалась и была удобна в использовании, но с ростом объёмов ОЗУ её длина становилась непомерно большой. Длина команды складывается из длины трёх адресов и кода операции. Отсюда следует, например, что для ОЗУ из 1024 ячеек только для записи адресной части одной команды требуется 3*10=30 двоичных разрядов, что для технической реализации не очень удобно. Поэтому появились двухадресные машины, длина команды в которых сокращалась за счёт исключения адреса записи результата. В таких ЭВМ результат операции оставался в специальном регистре (сумматоре) и был пригоден для использования в последующих вычислениях. В некоторых машинах результат записывался вместо одного из операндов.
Дальнейшее упрощение команды привело к созданию одноадресных машин. Рассмотрим систему команд такой ЭВМ на примере. Пусть надо сложить числа, хранящиеся в ячейках с адресами ОЗУ А1 иА2, а сумму поместить в ячейку с адресом А3. Для решения этой задачи одноадресной машине потребуется выполнить три команды:
1) извлечь содержимое ячейки А1 в сумматор;
2) сложить сумматор с числом из А2;
3) записать результат из сумматора в А3.
Рассмотрим теперь вопрос об адресации элементов ОЗУ более подробно. Наиболее просто была организована память в ЭВМ первых двух поколений. Она состояла из отдельных ячеек, содержимое каждой из которых считывалось или записывалось как единое целое. Каждая ячейка памяти имела свой номер, который и получил название адреса. Адреса соседних ячеек ОЗУ являются последовательными числами, т.е. отличаются на единицу. В рассмотренных ЭВМ использовались данные только одного типа (вещественные числа), причём их длина равнялась длине машинной команды и совпадала с разрядностью памяти (36 двоичных разрядов) и всех остальных устройств машины.
Очень часто программа предназначалась для обработки по одним и тем же формулам определённого количества содержимого последовательно расположенных ячеек (массивов). В ЭВМ первых двух поколений были предусмотрены особые механизмы циклической обработки массивов. С этой целью в машинных командах помимо обычных адресов можно было использовать модифицируемые, у которых специальный управляющий бит был установлен в единицу. К помеченным таким образом модифицируемым адресам при выполнении команды прибавлялось значение из специальных индексных ячеек. Меняя содержимое индексных ячеек, можно было получить доступ к различным элементам массива. Формирование результирующего адреса осуществлялось в УУ в момент исполнения команды, поэтому исходная команда в ОЗУ сохранялась без изменений.
Описанный механизм модификации адресов существенно упрощал написание циклических программ, таких как нахождение суммы последовательных ячеек ОЗУ, копирование отдельных участков памяти и т.д.
В ЭВМ третьего поколения идеология построения памяти существенно изменилась: минимальная порция информации для обмена с ОЗУ была установлена равной 8 двоичных разрядов, т.е. один байт. Стало возможным обрабатывать несколько типов данных: символы текста (1 байт), целые числа (2 байта), вещественные числа обычной или двойной точности (4 или 8 байт соответственно). В связи с этим была введена новая условная единица измерения информации – машинное слово. Оно равнялось 4 байтам и соответствовало длине стандартного вещественного числа. Все объёмы информации начали измеряться в единицах, кратных слову: двойное слово, полуслово и т.п. Естественно, что адрес (номер ячейки ОЗУ) в машинах с байтовой организацией стал относиться к отдельному байту. Байты памяти имеют возрастающие на единицу номера. Слово состоит из нескольких последовательно расположенных байтов. В качестве адреса слова удобно принимать адрес одного из образующих его байтов (обычно используется младший байт, имеющий наименьший номер). Таким образом, адреса слов меняются уже не через единицу. Их приращение зависит от длины машинного слова в байтах и равняется четырём.
^ 1.2.4. Типы и назначение компьютеров
Существование различных типов компьютеров определяется различием задач, для решения которых они предназначены. С течением времени появляются новые типы задач, что приводит к появлению новых типов компьютеров. Поэтому приведенное ниже деление очень условно [12].
Различают:
1) суперкомпьютеры;
2) специализированные компьютеры-серверы;
3) встроенные компьютеры-невидимки (микропроцессоры);
4) персональные компьютеры.
Для выполнения изначального назначения компьютеров – вычислений – на рубеже 60–70-х годов были созданы специализированные ЭВМ, так называемые суперкомпьютеры.
Суперкомпьютеры – специальный тип компьютеров, создающихся для решения предельно сложных вычислительных задач (составления прогнозов, моделирования сложных явлений, обработки сверхбольших объемов информации). Принцип работы суперкомпьютера заключается в том, что он способен выполнять несколько операций параллельно.
Одной из ведущих компаний мира в производстве суперкомпьютеров является компания Cray Research. Ее основатель, человек-легенда Сеймур Крей, уже в середине 70-х годов построил компьютер Cray-1, который поражал мир своим быстродействием: десятки и даже сотни миллионов арифметических операций в секунду.
Как известно, скорость распространения любого сигнала не превышает скорости света в вакууме – 300 тысяч километров в секунду, или 300 миллионов метров в секунду. Если компьютер выполняет 300 миллионов операций в секунду, то за время выполнения одной операции сигнал успевает пройти не более одного метра. Отсюда следует, что расстояние между частями суперкомпьютера, выполняющими одну операцию, не может превосходить нескольких десятков сантиметров. И действительно, суперкомпьютеры компании Cray были очень компактны и выглядели как «бублик» диаметром менее двух метров. Этот «бублик» занимался только вычислениями. Для общения с человеком и доставки данных для вычислений к «бублику» были подключены несколько достаточно производительных обычных компьютеров.
Компьютер, работающий в локальной или глобальной сети, может специализироваться на оказании информационных услуг другим компьютерам, на обслуживании других компьютеров. Такой компьютер называется сервером от английского слова serve (в переводе – обслуживать, управлять). В локальной сети один из компьютеров может выполнять функции файлового сервера, т.е. использоваться для долговременного хранения файлов.
Основная задача, решаемая файловыми серверами, – организация хранения, доступа и обмена данными (информацией) между компьютерами, людьми и другими источниками и поставщиками информации. Требования к серверам иные, чем к суперкомпьютеру. Важно наличие у них устройств хранения информации (типа магнитных дисков) большой емкости, скорость же обработки информации не столь критична.
В классе серверов выделяется подкласс суперсерверов, необходимых в тех случаях, когда, с одной стороны, желательна централизация данных, а с другой стороны, к этим данным необходимо обеспечить доступ очень большому количеству потребителей.
Кроме привычных компьютеров с клавиатурами, мониторами, дисководами, сегодняшний мир вещей наполнен к
еще рефераты
Еще работы по разное
Реферат по разное
Открытое акционерное московское общество Завод имени И. А
18 Сентября 2013
Реферат по разное
Влен ряд услуг, таких как: парикмахерская, маникюр, педикюр, массаж, услуги косметолога, солярий, консультации стилиста, профессиональная комплектация гардероба
18 Сентября 2013
Реферат по разное
Менеджмента качества в современном университете
18 Сентября 2013
Реферат по разное
А. И. Осипов «Путь разума в поисках истины»
18 Сентября 2013