Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по информатике.doc
Скачиваний:
19
Добавлен:
15.04.2015
Размер:
306.69 Кб
Скачать

II Вычислительные машины (hardware)

1. Общая структура ЭВМ

1) Принципы

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

Каждый отдельный разряд может хранить минимальную единицу информации - 1 бит. Обычно несколько разрядов (триггеров) объединяются в отдельную ячейку памяти (регистр), имеющую уникальный адрес (номер). Размер ячейки - 9 разрядов, из которых 8 разрядов (байт) служат для хранения информации, а 1 разряд - для контроля правильности хранения и операций обменов. Большая часть ячеек-регистров составляет линейно-адресуемую память, в которой располагаются обрабатываемые данные и цепочки машинных команд, часть регистров образует арифметическо-логическое устройство - процессор, работающий по законам булевой алгебры.

Такое строение ЭВМ называется фон-неймановской архитектурой.

2) Архитектура и структура пэвм

а. структура (общая шина)

Архитектура ЭВМ - это общее описание ЭВМ с точки зрения организации в ней потоков информации и способов ее обработки. В отличии от больших универсальных ЭВМ, структура которых организована по иерархическому принципу, ПЭВМ строятся на принципах "магистрално-модульной организации", включающей стандартный интерфейс, конструктивную совместимость, единое программное обеспечение и опирающихся на понятие "общей шины".

Интерфейс (Interface) -граница раздела двух систем, устройств или программ, а также элементы соединения и вспомогательные схемы управления, используемые для соединения устройств. Классифицируются по различным признакам: внешние - внутренние, последовательные - параллельные, синхронные - асинхронные, универсальные - специализированные и т.д.

Иерархическая структура подразумевает жесткое централизованное управление потоками информации от источника к приемнику по отдельным магистралям передачи данных. На верхнем уровне управление принадлежит центральному процессору, который определяет, какой специализированный процессор ввода/вывода (канал) должен выполнять процесс передачи данных. Управление и данные передаются этому каналу, который в свою очередь определяет, какое устройство управления руководит нужным устройством (источником или приемником данных), и пытается задействовать его в операции обмена. Решение о выборе объекта управления принимает всегда "вышестоящее" управляющее устройство.

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

Первым наиболее характерным представителем такого класса ЭВМ была ПЭВМ IBM PC, выпущенная фирмой IBM в 1981 г. Это была машина, которую можно было модифицировать и расширять программными и аппаратными средствами, разрабатываемыми как самой фирмой IBM, так и другими разработчиками.

б. классы ПЭВМ

Можно по-разному классифицировать ПЭВМ, в частности опираясь на характеристики тех или иных устройств. В качестве таких устройств часто выбирают или системную шину или тип процессора.

Например, по разрядности системной шины рассматриваются 8, 16, 24, 32 и 64 разрядные ПЭВМ.

Другой способ классификации - по "цвету" сборки. Говорят о машинах "красной" сборки - выполненной в России, "желтой" сборки - в восточной Азии, "белой" сборки - в странах Европы и Северной Америки. Последнее время появились т.н. "зеленые" ПЭВМ - энергосберегающие ЭВМ, потребляющие не более 30 вт. в режиме холостого хода, не использующие токсичных материалов и допускающие 100% утилизацию по истечении срока службы. (Название произошло от названия национальной программы энерго- и ресурсосбережения Германии - Green Point. В США аналогичная программа носит название Energy Star).

Выделяют также машины "brand name" - серийно выпускаемые известными фирмами и имеющие сертификат ISO (Международной организации по стандартизации), а также их противоположность - машины класса "noname" – собранные неизвестными производителями.

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

3) Конструктивные блоки

Конструктивно ПЭВМ могут состоять как из одного блока - notebook, так и из нескольких отдельных частей, соединенных специальными кабелями. Обычно ПЭВМ содержит в своем составе системный блок, клавиатуру и монитор. Часто присутствуют ручной манипулятор ввода "мышь", принтер. Реже - другие устройства ввода/вывода или внешней памяти в отдельных конструктивах.

По форме системного блока ПЭВМ называют "desktop", "footprint", "slimline", "mini-", "midi-" и "big-tower". Первые три типа - настольные с горизонтальным расположением системной (материнской) платы, для формы "башня" - tower - размещение платы вертикальное. Такая форма занимает меньше места на столе и может ставиться на пол. Чем меньше корпус системного блока, тем меньше возможностей по расширению системы путем включения дополнительных устройств. Такие внутренние устройства выполняются обычно в нескольких габаритах (типо-размерах). Стандартными являются размеры 5-ти дюймовых дисководов и 3.5 дюймовых дисководов для сменных флоппи- дисков (дискет).

Обычно в корпусе типа mini-tower (наиболее распространенных корпусах) имеется 4-6 мест для внутренних блоков - накопителей. Наряду с системной (материнской) платой, дополнительными (дочерними) платами и блоками накопителей (внешней памятью) в системном блоке располагается блок питания.

Чем больше устройств можно поместить внутрь корпуса, тем большую мощность должен обеспечивать блок питания.

В среднем, мощность БП варьируется от 100 Вт (для slimline) до 350 Вт (дляbig-tower).

Устройство других конструктивных блоков ПЭВМ будет рассмотрено ниже.

2. Средства обработки данных - процессоры

/См. А.Борзенко. IBM PC: устройство, ремонт, модернизация. "Компьютер пресс", М.,1996 /

1) Процессоры / см. Питер Абель. Язык Ассемблера для IBM PC и программирования. "В.Ш.", М.,1992/

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

В составе процессора имеются арифметическо-логическое устройство (АЛУ) и блок управления. Процессор характеризуется тактовой частотой, внутренней и внешней разрядностью, архитектурой и набором команд. В процессор по шине данных поступают исходные и выходят обработанные данные, а по адресной шине – осуществляется связь с нужными ячейками памяти, где расположены команды программы и данные. И команды и данные должны находиться в оперативной памяти. Существуют также шины управления, обеспечивающие синхронизирующие сигналы и другую специальную управляющую информацию.

История развития процессоров начинается с появлением в 1971 году первых микрокомпьютеров на 4-х разрядном процессоре Intel 4004. К 1974г. появилось второе поколение микропроцессоров общего назначения - уже 8-ми разрядных, с названием Intel 8080. В 1978 фирма Intel выпустила процессор третьего поколения (не путать с поколениями ЭВМ!) под обозначением Intel 8086 и его разновидность Intel 8088, который и был использован фирмой IBM для создания ее персональных компьютеров первого поколения в 1981 году.

В последствии фирма Intel разрабатывает новые поколения микропроцессоров: в 1982 г. - Intel 80286 (который лег в основу компьютера IBM AT 1984 г.), в 1985 г. - Intel 80386 первый 32-х разрядный процессор. В 1989 - Intel 486, а в 1993 - фирма Intel объявила о выпуске процессора Pentium, первоначально разрабатываемого как Intel 586 или Р5. Наконец, в ноябре 1995 г. началась коммерческая поставка процессоров нового поколения Pentium Pro, называемого еще Р6.

В 1997 году появляется разновидность процессора Pentium, предназначенная для мультимедийных ПЭВМ. Этот процессор получил название Pentium MMX. Он имел ряд дополнительных команд, предназначенных для работы с графическими изображениями и цифровой обработки звука. В 1998 году появляется процессор Pentium II, в 1999 - Pentium III, а в 2001 - Pentium IV.

Если рассматривать работу процессора более подробно, необходимо ознакомиться с некоторыми понятиями.

Архитектура микропроцессора описывает систему адресации памяти, организацию стековой (безадресной) памяти, перечень внутренних регистров, список команд и типы обрабатываемых процессором данных. В общем случае может быть 4 принципиально различных типа: числовые, логические, символьные и адресные данные. По длине (разрядности) данные делятся на битовые (1 разряд), байтовые (8 разрядов), размером в машинное слово (16 разрядов), двойное слово (32 разряда), длинное слово (64 разряда) и поля данных (произвольные длины, кратные 8 разрядам). Любой процессор должен выполнять арифметические команды над целочисленными данными, логические команды, команды считывания и пересылки данных, команды передачи управления (команды условных и безусловных переходов).

Данные, как правило, должны находиться в ячейках оперативной памяти, однако процессор может обмениваться информацией и с периферийными устройствами (т.е. устройствами ввода/вывода) через специальные регистры ввода/вывода, которые называются портами.

Каждый порт представляет собой один или несколько регистров с фиксированным адресом, не совпадающим с адресами ячеек памяти. В любой ПЭВМ имеется несколько портов, например до 4-х последовательных, параллельный, и, возможно, игровой. Микросхемы портов обычно расположены на материнской плате и подключены к внешней шине процессора.

Обычно через порты процессор связывается с устройствами последовательного доступа, однако в ПЭВМ возможен и режим прямого доступа (DMA-directmemoryaccess). Он осуществляется как между процессором и оперативной памятью, так и между оперативной памятью и внешним устройством прямого доступа, например, таким как жесткий диск. В этом режиме большие объемы информации за короткое время передаются между внешней и внутренней памятью, минуя регистры процессора.

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

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

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

Например, для любой команды можно выделить этапы выборки, декодирования, выполнения и записи результата. Таким образом, в любой момент в процессоре может выполняться одновременно четыре последовательные команды.

Одним из важнейших параметров процессора является размер внешней адресной шины (ее разрядность). Эта величина определяет теоретический объем непосредственно адресуемой оперативной памяти. Если шина адреса - 16 разрядов, адресное пространство равно 2 в степени 16, т.е. 65536 байт. Эта величина носит название страницы памяти. Для 24-х разрядной шины доступны уже 16 мегабайт, для 32-х разрядной - 4 гигабайта памяти.

Производительность процессора определяется в первую очередь тактовой частотой и разрядностью внутренней шины. Если тактовая частота, задаваемая кварцевым генератором, расположенным на материнской плате за время развития новых поколений процессоров выросла с 4.77 МГц (у первой ПЭВМ IBM PC c Intel8088) до 4 ГГц (у Pentium). За то же время разрядность процессора выросла с 8 до 64 разрядов.

Быстродействие процессоров измеряется несколькими способами. Одной из таких характеристик выступает количество MIPS (миллионов коротких операций в секунду). У IBM PC эта величина составляла примерно 0.3, до 2 тысяч MIPS (у 64-х разрядной версии P7).

Другой характеристикой выступает количество миллионов операций в секунду над вещественными числами - MFLOP. Часто используют некоторые индексы - смеси операций с разными весами - смесь Гиббсона, индекс iCOMP и т.д. Следует отличать быстродействие процессора и ПЭВМ в целом - очевидно, что последняя величина меньше.

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

Обозначения процессоров обычно содержат название фирмы (например символ i - Intel); номер версии, например 486; размер внешней шины данных (SX - 16 разрядов, DX - 32 разряда); пониженное напряжение питания - особенно важно для "notebooks" - (обозначение SL); наличие "умножения частоты" - когда тактовая частота внутренней работы процессора в несколько раз выше, чем основная частота работы остальных узлов материнской платы. Это отображается наличием цифры после символов шины, например DX2. В конце обозначения обычно указывается тактовая частота.

2) Сопроцессоры

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

Поэтому процессоры i86, i286, i386 и i486SX предназначались только для работы с целочисленной арифметикой (с возможностью выполнять работу с вещественными числами по подпрограммам). Однако, если такой процессор использовался для сложных научных расчетов или для программ с движущимися графическими объектами, такие процессоры не обеспечивали требуемой производительности.

Для таких случаев, разработчики ПЭВМ предусмотрели на материнской плате специальные гнезда для вставления дополнительного процессора "расширенной арифметики". Этот процессор, получивший название сопроцессора, выполнял только команды над числами с плавающей точкой по указанию основного процессора. Сопроцессоры разрабатывались под соответствующий основной процессор, и носили имя с номером на единицу больше чем основной: для i8086 - i8087, для i286 - i287, для i396 - i387 и т.д. Начиная с i486DX сопроцессор встраивался внутрь основного процессора.

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

3. Внутренняя память

И программа и данные, непосредственно участвующие в преобразовании информации должны находиться во внутренней памяти компьютера, т.к. процессор работает с линейно-адресованной памятью. Вся внутренняя память перенумерована (каждый байт, начиная с номера 0), причем разные "отрезки" адресного пространства относятся к различным видам внутренней памяти. По своему назначению обычно выделяют такие виды внутренней памяти, как оперативная, постоянная, энергонезависимая CMOS RAM и кэш. По возможностям записи информации в память выделяют т.н. RAM (Random Access Memory - память произвольного доступа), ROM (Read Only Memory - память только для чтения) и некоторую модификацию ROM - программируемую память PROM. Для RAM используют как динамическую, дешевую память, хранящую единицу в виде заряда конденсатора, так и статическую, реализованную на триггерах. Последняя содержит 4-6 транзисторов на 1 разряд (динамическая - 1-2 транзистора), поэтому дороже, но в несколько раз быстрее первой. Рассмотрим основные виды внутренней памяти.

1) Оперативная память

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

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

Оперативная память реализована в форме плат-модулей SIMM (SingleInlineMemoryModule)cодносторонним расположением микросхем, или DIMM (Dual In line ...) - с микросхемами памяти с обоих сторон платы. Модули вставляются в специальные разъемы материнской платы. Существуют модули с 30-контактными и 72-контактными разъемами. Первые бывают емкостью 256Кбайт, 1Мбайт, 4Мбайт и 16Мбайт. Большинство микросхем рассчитано на 9 разрядный байт (с 1 битом контроля четности), однако современные микросхемы имеют высокую степень надежности - средняя наработка на отказ - несколько десятков лет, поэтому можно встретить память без такого контроля. Для 32-разрядных ПЭВМ обязательно ставить по 4 или по 8 SIMM в системную плату.

72-контактные выпускаются емкостью 1 - 64 Мбайт (кратные степеням 2), используются в основном на Pentium платах и иногда на 486-х. Вставлять в системную плату можно и 1 SIMM.

В настоящее время используются только модули DIMM.

Начальные 640 Кбайт ОП называются базовой (основной, стандартной) памятью. Программы DOS могут работать только в базовой памяти. Память от 640 Кбайт до 1 Мбайт может использоваться для специальных целей операционной системой. Эта память носит название "верхней" (UMB - Upper Memory Blocks). Во-первых эти адреса используются для видеопамяти, во-вторых для ROM BIOS и в-третьих для загрузки туда дополнительных драйверов.

Если в ПЭВМ больше 1 Мбайт оперативной памяти, она (за пределами 1 Мбайт) называется "расширенной" (extended). Эта память может использоваться процессорами 386 и более мощными либо при наличии специальных драйверов, либо при работе в операционных системах Windows, OS/2 или UNIX.

2) Постоянная память

Постоянная память нужна в ПЭВМ для нескольких целей. Во-первых, она нужна для загрузки операционной системы с диска в момент включения ПЭВМ. В этот момент в ОП нет никакой информации, и функционирование процессора выполняется под управлением программ ПЗУ.

Во-вторых, в ПЗУ записаны программы начального тестирования основных узлов ПЭВМ, что должно выполняться, прежде чем будет загружаться с диска ОС. Кроме того, ПЗУ хранит стандартные характеристики структуры ПЭВМ, записанные фирмой-производителем.

В-третьих в постоянной памяти могут находиться часто используемые набольшие стандартные подпрограммы. Постоянная память носит название BIOS (Базовая система ввода/вывода). Реализована обычно на 2-х микросхемах, вставленных в специальные разъемы - "кроватки". Объем составляет несколько десятков килобайт.

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

3) энергонезависимая программируемая память CMOS.

Постоянная память не позволяет внести изменения в описание фактической структуры ПЭВМ (объем ОП, типы устройств внешней памяти) и не позволяет поддерживать работу таймера при отключенном питании. Для этих целей на материнской плате имеется специальная микросхема постоянно запитанная от небольшого аккумулятора и/или внешнего источника (батареек). Эта микросхема хранит настройку BIOS и поддерживает работу встроенных часов и календаря. Внесение изменений в данные этой памяти может быть выполнено только программой "Setup CMOS", хранящейся в BIOS.

Запуск этой программы может производиться только перед загрузкой ОС. Аккумулятор подзаряжается при включении ПЭВМ в сеть, его заряда сначала хватало на 2-3 суток для моделей ПЭВМ класса ХТ, и на 7-10 суток для ПЭВМ на 386-486 процессорах. У современных моделей аккумулятор может работать автономно около года.

4) Кэш

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

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

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

Не всякая кэш-память равнозначна. Большое значение имеет тот факт, как много информации может содержать кэш-память. Чем больше кэш-память, тем больше информации может быть в ней размещено, а следовательно, тем больше вероятность, что нужный байт будет содержаться в этой быстрой памяти. Очевидно, что самый лучший с точки зрения быстродействия вариант - это когда объём кэш-памяти соответствует объёму всей оперативной памяти. Но в этом случае вся остальная память становится не нужной.

Противоположная ситуация - совсем маленький кэш - тоже не имеет практического значения, так как вероятность того, что нужная информация окажется в этой быстрой памяти, стремится к нулю. Практически, диапазон используемой кэш-памяти колеблется в пределах 256-2048К.

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

Целостность памяти, однозначность информации в ней – это одна из самых больших проблем работы с кэш-памятью. Для преодоления этих проблем была создана отдельная микросхема - кэш-контроллер.

Следует отметить, что для программиста работа с кэш-памятью практически "прозрачна" (т.е. невидима). Заполнение кэш-памяти выполняется аппаратными средствами, автоматически и производится отдельными блоками, называемыми строками. Если в кэш не оказывается нужной информации (очередной команды программы или ячейки с данными), целый блок оперативной памяти вместе с нужной командой или данными переписывается в ту строку кэш, к которой меньше всего обращались за последнее время. Есть и другие способы организации работы с кэш-памятью.

4. Средства хранения информации (внешняя память)

1) классификация, история развития

Хранение информации в ПЭВМ осуществляется в устройствах внешней памяти, называемых еще накопителями. Их емкость обычно на 2-3 порядка превышает емкость оперативной памяти. Накопители могут размещаться внутри центрального блока ПЭВМ или выполняться в виде отдельных конструктивов, присоединяемых к машине специальными кабелями.

Накопители состоят из устройств - приводов и собственно носителей информации. Носители могут быть сменными (съемными) и несменными. По способу доступа к информации они делятся на устройства прямого и последовательного доступа. В ПЭВМ устройствами прямого доступа являются различные диски, последовательного - магнитные ленты.

По принципам записи/чтения носители делятся на магнитные, оптические и магнито-оптические.

По видам носителей внешняя память разделяется на:

- накопители на флоппи-дисках (дискетах);

- накопители на несъемных жестких дисках (винчестерах);

- накопители на сменных жестких дисках;

- накопители на CD-ROM;

- накопители на магнитооптических дисках;

- накопители на бобинных магнитофонных лентах;

- стримеры.

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

магнитной ленте, которые с середины 50-х годов используются для хранения цифровой информации. История применения жестких дисков начинается с 1973 г., когда фирмой IBM был выпущен первый несъемный жесткий диск общей емкостью 16 Кбайт, содержащий 30 дорожек по 30 секторов на каждой. Его обозначение 30/30 совпадало с обозначением американской автоматической винтовки марки "Винчестер", откуда и пошло название для диска. Кстати, до разработки магнитных дисков, на ЭВМ использовались магнитные барабаны, информация на которых записывалась на боковой цилиндрической поверхности.

Массовое применение жестких дисков началось только после 1980 г., когда был выпущен винчестер 5.25" емкостью 5 Мбайт. Эти жесткие диски широко использовались в ПЭВМ первых поколений.

Накопители на сменных гибких дисках (флоппи-дисках или дискетах) первоначально использовались на мини-ЭВМ. Они имели диаметр 8" и были заключены в пластиковом конверте, внутри которого могли свободно вращаться. В 1976 г. появились односторонние дискеты диаметром 5.25" (133 мм) емкостью 160

Кбайт. Позднее магнитный слой стали наносить с двух сторон, емкость была доведена до 360 Кбайт, а с переходом на высокую плотность записи - до 1.2 Мбайт.

В 1980 г. фирма Sony разработала 3.5" дисковод и соответствующую дискету емкостью 720 Кбайт. Этот стандарт был принят американскими (ANSI), а затем и международными (ISO) организациями. С 1987 г. эти накопители стали устанавливаться в ПЭВМ фирмой IBM. Почти сразу емкость этих дискет была доведена до 1.44 Мбайт.

В 1992 г был разработан метод сверхвысокой плотности записи (VHD), позволяющий записывать на специальные гибкие дискеты по 20 Мбайт, а с середины 1995 г. три крупные фирмы начали совместную разработку накопителей на магнитных дискетах емкостью 120 Мбайт.

Идея создания стримера была предложена фирмой IBM в 1978 г. В ее основе заложен принцип инерционного режима работы лентопротяжного механизма. В отличие от старт-стопного режима, используемого на бобинных (катушечных) магнитофонах, где участки магнитной ленты между записями (19 мм) должны обеспечивать останов и разгон магнитофона для чтения (записи) очередного блока, в стримерах эти участки существенно уменьшены, а при остановках осуществляется прогон ленты назад, чтобы попасть на начало очередного блока. Это позволило значительно повысить емкость ленты и скорость передачи информации (правда при условии, что данные передаются большими порциями).

В 1983 г. появляются стримеры с накопителями на 8 и 4-х мм магнитной ленте в специальных кассетах - картриджах. Их емкость сначала составляла 40 Мбайт, но уже в 1993 г. фирмами Sony и 3M начинают выпускаться стримеры емкостью соответственно 4 и 1.3 Гбайт для 8 и 4 мм ленты, а с 1997 г. фирма 3М выпускает картриджи емкостью 15 Гбайт.

В настоящее время размеры картриджей достигают нескольких сотен Гбайт.

Использование эффекта Бернулли, уменьшающего давление в быстрых потоках, позволило разработать накопители с очень маленькими расстояниями между головкой чтения/записи и магнитным покрытием дискеты. Зазоры в 0.003 мкм позволили достигнуть уже в 1986 г. емкости носителей в 20 Мбайт, еще через 6 лет – 150 Мбайт, а в настоящее время - 230 Мбайт (при диаметре 5.25") и 100

Мбайт для 3.5" носителей.

Наряду с развитием накопителей со сменными гибкими дисками, начиная с 1982 г. идет активная разработка устройств со сменными жесткими дисками. Здесь принято 3 стандартных типоразмера: 5.25", 3.5" и 1.8" (последние - в спецификации PCIMCIA для notebook).

Емкость таких сменных дисков составляет от 44 Мбайт до 650 и даже 1300 Мбайт.

2) накопители на гибких магнитных данных (дискетах)

Накопители на гибких магнитных дисках, или иначе приводы дискет появились уже на самых первых ПЭВМ и устанавливаются до сих пор. В нем имеется два двигателя: один для вращения дискеты со скоростью 300-360 об/мин, другой для шагового перемещения головок чтения/записи с дорожки на дорожку в радиальном направлении. Головки касаются поверхности дискеты, в отличие от головок винчестера. По диаметру дискеты накопители делятся на 5.25" и 3.5". По количеству дорожек - на 40 и 80-ти дорожечные. В настоящее время они всегда двухсторонние, причем 5.25" уже не ставят в ПЭВМ.

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

3) дискеты

Дискеты для накопителей, упомянутых выше, представляют собой тонкий гибкий пластиковый диск покрытый с обоих сторон магнитным слоем. Этот диск помещен в гибкий (для 5.25") или жесткий (3.5") конверт, в котором имеется большое отверстие для закрепления диска на шпинделе привода вращения, овальное отверстие или прикрытая заслонкой прорезь для головок чтения/записи, отверстие для синхронизации начала дорожек (для 5.25") и прорезь или отверстие для закрытия дискеты от записи.

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

Дискеты маркируются на предмет плотности записи (емкости).

Для этого используются обозначения DS/DD или DS/HD (Double Sided - двусторонние, Double Dencity - двойная плотность, High Dencity - высокая плотность). Часто указывается количество дорожек на дюйм (tpi - track per inch): 48 tpi - для 40-дорожечного дисковода, 96 tpi для 80-ти дорожечного, изредка указывается плотность записи в единицах bpi (bit per inch).

Емкость дискет определяется не только количеством дорожек, но и количеством секторов на каждой дорожке. Современные дискеты 3.5 дюйма имеют 80 дорожек по 18 секторов на дорожке и плотность записи по радиусу - 135 tpiи по дорожке – 17500bpi. Это обеспечивает емкость 1440 Кбайт.

Логическая структура дискеты состоит из 4-х областей:

- загрузочный (boot) сектор - 0 номер.

- Таблица FAT(с копией) – 1..18 сектора

- Корневой каталог (Root) – 19..32 сектора

- область данных – 33..2879 сектора

Отметим, что дискеты и дисководы 3.5" емкостью 720 Кб в нашей стране почти не использовались, а 5.25" в настоящее время в компьютеры не ставятся, хотя их иногда можно встретить в старых моделях.

4) накопители на жестких дисках

Накопители на несъемных жестких дисках (винчестерах) являются в настоящее время основными устройствами внешней памяти ПЭВМ. Они устанавливаются на всех, без исключения, моделях. До последнего времени, конструкции ПЭВМ и операционные системы предусматривали установку 1 или 2-х винчестеров на компьютер.

Каждый винчестер можно рассматривать как пакет дисков, жестко закрепленных на общей оси (шпинделе), вращающийся со скоростью от 3600 до 10000 об/мин (рекордная скорость для середины 2000 г. - 15000 об/мин.). В зазорах между дисками перемещаются рычаги, на концах которых находятся электромагнитные головки считывания и записи данных. Все рычаги соединены в общий пакет, перемещение которого выполняется аналогично движению звукоснимателя стереопроигрывателя с помощью отдельного соленоидального двигателя (раньше - шагового двигателя).

Пластины дисков изготовляются из алюминия, стекла и даже пластмассы с напыленным специальным металлическим покрытием. Количество дисков в пакете - от 1 до 5, рабочими являются поверхности каждого диска с обоих сторон (иногда крайние поверхности не используются). Размеры дисков бывают нескольких стандартов: 5.25, 3.5, 2.5 и 1.8 дюйма.

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

Первые создают магнитное поле (сохраняемое в доменах металлизированного покрытия) за счет переменного тока, а вторые регистрируют изменение сопротивления чувствительного элемента при изменении магнитного поля. Головки винчестера находятся на расстоянии порядка 0.13 мкм от поверхности вращающегося диска.

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

Малые зазоры, большая скорость вращения и высокая плотность записи (в настоящее время - до 15 Гбит на квадратный дюйм) позволяют на небольшом устройстве хранить огромный объем информации и передавать его с высокой скоростью. Типичная емкость современных винчестеров - 40-60 Гбайт, а рекордная (для середины 2002 г.- 200 Гбайт) для ПЭВМ и 10-100 тбайт для больших универсальных машин (mainframe'ов).

Если говорить о лабораторных образцах винчестеров, то здесь показатели еще более впечатляющие. К апрелю 2000 года фирма Hitachi преодалела барьер 50 Гбит/кв.дюйм (т.е. почти 10 Мбайт/мм2). На одном квадратном миллиметре такого диска можно держать содержание примерно 20 книг среднего размера. Следует, однако, отметить, что существует теоретический предел поверхностной плотности магнитной записи, который в настоящее время оценивается величиной порядка 100 Гбит/кв.дюйм.

Второй важной характеристикой винчестера является среднее время доступа - время, в течении которого винчестер находит данные.

5) накопители на оптических дисках (CD ROM –R-RW)

Первые оптические лазерные диски появились в 1972 году и продемонстрировали большие возможности по хранению информации. Объемы хранимой на них информации позволяли использовать их для хранения огромных массивов данных (таких как базы данных, энциклопедии, коллекции видео и аудио-данных). Легкая замена этих дисков позволяла, переносить с машины на машину все материалы, требуемые для работы. Оптические диски имели очень высокую надежность и долговечность, что позволяло использовать их для архивного хранения информации.

Диски типа CD-ROMизготовляются методами штамповки на специализированных заводах. Они не перезаписываются.

CD-Rмогут однократно записываться на пишущих приводах персональных компьютеров. ДискиCD-RWмогут перезаписываться на пишущих приводах ПЭВМ до 1000 раз.

Стандартная емкость оптических СDсоставляет 640-800 Мбайт.

6) магнитооптические диски

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

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

Впервые МО диски появились в 1988 году и соединили в себе компактность гибких дисков и накопителя Bernoulli Box, скорость среднего жесткого диска, надежность стандартного Компакт Диска и емкость, сравнимую с DAT лентами. Но широкому распространению МО дисков мешает сравнительно дорогая стоимость и конкуренция современных жестких дисков. По сравнению с современными жесткими дисками, они работают медленнее и уступают им по максимальным объемам хранимой информации. Это делает невозможным применение МО дисков вместо традиционных винчестеров. При этом МО диски имеют большие перспективы как вторичные накопители, применяемые для резервного хранения информации.

Принципы работы МО накопителя.

МО накопитель построен на совмещении магнитного и оптического принципа хранения информации. Запись информации производится при помощи луча лазера и магнитного поля, а считывание при помощи одного только лазера.

В процессе записи на МО диск лазерный луч нагревает определенные точки диска, снижая сопротивляемость изменению полярности для нагретой точки, что позволяет магнитному полю изменить ее полярность. После окончания нагрева сопротивляемость перемагничиванию снова увеличивается и полярность нагретой точки остается зафиксированной.

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

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

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

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

Для МО дисков очень выгодным использованием является резервное копирование жестких дисков или баз данных. В отличии от традиционно применяемых для этих целей стримеров, при хранение резервной информации на МО дисках, существенно увеличивается скорость восстановления данных после сбоя. Это объясняется тем, что МО диски являются устройствами с произвольным доступом, что позволяет восстанавливать только те данные, в которых обнаружился сбой. Кроме этого при таком способе восстановления нет необходимости полностью останавливать систему до полного восстановления данных. Эти достоинства в сочетании с высокой надежностью хранения информации делают применение МО дисков при резервном копировании выгодным, хотя и более дорогим по сравнению со стримерами.

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

6) накопители на магнитных лентах

Накопители на магнитной ленте использовались начиная с ЭВМ 2-го поколения. Их назначение - длительное хранение любой информации. До них на ЭВМ применялась для этих целей перфорированная бумажная лента или непрозрачная фотопленка. Так как магнитофоны - устройства последовательного доступа, они оказались слишком медленными для оперативной работы, и скоро стали использоваться для хранения больших объемов данных и резервных копий программного обеспечения.

Все накопители на МЛ делятся на бобинные (катушечные) и кассетные.

Первый тип возник раньше, в настоящее время используется только на больших ЭВМ и мини-ЭВМ. Кассетные накопители в виде стримеров используются и на ПЭВМ.

Достоинством катушечных МЛ является их совместимость для различных универсальных ЭВМ, поэтому они часто использовались для переноса информации с машину на машину. На персональных ЭВМ не используются.

Носителями информации катушечных магнитофонов являются бобины магнитной ленты шириной 0.5 дюйма и длиной 730 (реже - 360) метров. На ленте информация записывается байт за байтом параллельно по 9 дорожкам (одна - для контрольной суммы) с плотностью записи 800, 1600, 3200 или 6250 байт на дюйм МЛ (бит на дюйм дорожки).

Записи на ленте должны быть не менее 12 байт (иначе считаются шумом), расстояние между записями около 20 мм, поэтому обычно логические записи объединяются в блоки (физические записи). Размер блока не может превышать 64К. Типичные размеры блока - от 1 до 10К.

7) стримеры

Под стримерами обычно понимаются накопители на кассетных магнитных лентах (картриджах), работающие в инерционном режиме. Инерционный режим предполагает, что участок МЛ, который проходит мимо головки магнитофона при остановке больше, чем интервал между записями. В этом случае, для чтения следующей записи после остановки необходимо перемотать МЛ назад. (При "старт-стопном" режиме обычного магнитофона интервал между записями превышает "тормозной путь".) Это позволяет обеспечивать более плотное заполнение МЛ информацией, но при малых размерах записей частое позиционирование головки (занимающее 0.1-2 секунды) приводит к большим временным потерям. Поэтому стримеры используются только для резервных копий жестких дисков или их частей. При этом размеры записей составляют десятки и даже сотни Кбайт.

Носителями информации в стримерах являются кассеты, содержащие МЛ шириной 0.5 дюйма, 8 мм или 4 мм.

5. Средства ввода информации в ЭВМ

1) клавиатура

Современные клавиатуры представляют собой сложные электронные устройства, имеющие собственный процессор. Работа клавиатуры заключается в постоянном циклическом опросе всех клавиш (с частотой 10-30 Гц) и сообщении главному процессору о случаях всякого изменения состояния (нажато-ненажато) любой клавиши. Каждая клавиша имеет свой уникальный скан-код, который и передается в ЭВМ. В машине поступающие скан-коды преобразуются в коды символов или управляющие коды и поступают в специальный буфер (рассчитанный на 15 кодов), образуя в нем очередь. Как только главный процессор сможет, он выбирает символы из очереди и обрабатывает их в соответствии с исполняемой программой: возможно, отображает их на экране, преобразует к числам, размещает в памяти.

Если главный процессор по какой-то причине не может изъять символы из буфера, то после его заполнения клавиатура последующие коды не вводит, издавая характерные звуки пропуска кода.

Все клавиши клавиатуры делятся на несколько групп. Обычно выделяют следующие группы:

1. Символьные клавиши.

2. Функциональные (программируемые) клавиши.

3. Управляющие клавиши.

4. Регистровые клавиши.

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

Вообще, клавиатура является системным устройством ввода (т.е. через нее передаются команды операционной системе). Поэтому, если клавиатура не подключена или неисправна, загрузка ОС останавливается и работа на ПЭВМ невозможна.

2) ручные манипуляторы относительного перемещения

а) "мышь"

Наиболее распространенный ручной манипулятор ввода относительного перемещения "мышь" был изобретен в 1963 г. в Стенфорде. До начала 70-х годов это было устройство с аналоговым сигналом, получаемым за счет переменных сопротивлений, управляемых двумя взаимно перпендикулярно расположенных колесика, вращающихся при движении конструкции по плоскому столу. Затем по заданию фирмы Xerox была разработана первая цифровая "мышь", а в 1975 г. Дж. Хали предложил первый стандарт на цифровые мыши. С появлением ПЭВМ многие фирмы начали выпускать свои варианты "мышей". Так в 1982 г. появилась первая PC-Mouse (Genius). Чуть позже начинает выпускать "мыши" фирма Logitech, которая снабжала своей продукцией ПЭВМ от Olivetti, Apple, Wang. С 1983 г. фирма Microsoft предложила конструкцию, включающую резинометаллический шарик, передающий свое вращение при движении двум взаимно-прерпендикулярным роликам. На корпусе были предусмотрены две кнопки зеленого цвета. Эта мышь была связана кабелем с ПЭВМ через последовательный порт.

б) трекбол

в) джойстик

г) ручные манипуляторы "touchpad"

3) дигитайзер

4) сканер

6. Средства вывода информации из ЭВМ

1) дисплей

а) мониторы

б) адаптеры

2) принтеры

а) буквопечатающие (барабанные, "сферические", "ромашки")

б) матричные (игольчатые, струйные)

в) лазерные

3) плоттеры

а) планшетные

б) барабанные

4) "звуковой вывод"

Использование звука в ЭВМ началось сравнительно недавно, и нельзя еще говорить о широком его применении в современных ПЭВМ, но перспективность этого средства вывода информации требует отметить ряд моментов. Еще до появления специальных электронных средств синтеза звука, в IBM PC/XT и PC/AT позволяли выдавать звуковые сигналы через встроенный динамик. В языках программирования появлялись функции и подпрограммы выдачи сигналов с заданными характеристиками. Однако серьезно ПЭВМ начали "звучать" только с появлением аудиокарт SoundBlaster и Covox. Первые видеокарты позволяли создавать монозвучание в диапазоне частот до 8-10 КГц. Современные системы "мультимедиа" позволяют получать стереозвук с частотами дискретизации до 44 КГц для обеспечения высокого качества звучания. Первые синтезаторы работали на методах синтеза звуковых сигналов с помощью частотной модуляции, современные - имеют систему записи, хранения и воспроизведения звуков в оцифрованном виде.

7. Сетевые средства ввода/вывода

1) история развития связи между ЭВМ

2) локальные сети (назначение, архитектура, электронные и

программные средства)

3) удаленные (глобальные) сети (назначение, каналы свзи,

электронные средства- модемы, факс-модемы).

8. Перспективы развития Hardware.

1)архитектура рассчитывается на параллельные вычисления. Параллельность обработки на нескольких уровнях, обусловлена программным параллелизмом:

- независимые задания, шаги задания, программы и подпрограммы реализуются с помощью мультипроцессирования (многопроцессорных ЭВМ);

- распараллеливание циклов и итераций реализуется "векторной обработкой" - процессором, выполняющим одновременно одну и ту же операцию над группой данных;

- параллельное выполнение операторов и команд выполняется процессором, в котором для каждого вида команд есть своя электронная схема, и тем самым одновременно можно выполнять одно сложение, одно умножение, одно деление и т.д.;

-распараллеливание выполнения одной команды (особенно - сложной) может реализоваться процессором - "конвейером команд", когда в нем одновременно выполняется первая фаза одной команды, вторая фаза другой, и т.д., так, что в идеале с каждым тактом завершается очередная команда.

2) сетевое распределение ресурсов (данных, процессорного времени, памяти, внешних устройств)

3) оптико-волоконные средства передачи сигналов

4) средства аудио ввода и вывода

5) голографические средства вывода

Алгоритмизация

1. Этапы решения задач с помощью ЭВМ

Решения задачи обработки информации с помощью ЭВМ складывается из нескольких этапов. Обычно выделяют:

1 - Корректную постановку задачи.

2 - Выбор метода решения задачи.

3 - Построение алгоритма реализации выбранного метода решения.

4 - Кодирование алгоритма для выполнения решения с помошью ЭВМ (написание программы).

5 - Перевод программы в программу в машинных кодах (трансляция)

6 - Отладка программы.

7 - Выполнение расчетов (обработка данных созданной программой)

В этом разделе рассматриваем этап построения алгоритмов.

2. Основные определения

АЛГОРИТМОМ НАЗЫВАЕТСЯ КОНЕЧНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ТОЧНЫХ ПРЕДПИСАНИЙ, ОДНОЗНАЧНО ОПРЕДЕЛЯЮЩАЯ ПРОЦЕСС ОБРАБОТКИ ДАННЫХ В РЕЗУЛЬТАТЕ РЕШЕНИЯ ЗАДАЧИ.

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

3. Основные свойства алгоритмов

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

1 - ДИСКРЕТНОСТЬ - представимость алгоритма в виде отдельных шагов, каждый из которых описывает некоторое законченное действие.

2 - КОНЕЧНОСТЬ - достижение поставленной цели за ограниченное число шагов.

3 - ОДНОЗНАЧНОСТЬ - получение одних и тех же результатов при одних и тех же исходных данных, сколько бы раз алгоритм не выполнялся.

4 - МАССОВОСТЬ - применимость алгоритма к некоторому множеству наборов исходных данных.

4. Способы изображения алгоритмов

Существует три способа изображения (записи) алгоритмов.

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

Недостатки – неточность в деталях из-за многозначности человеческих языков, плохая обозримость подробных алгоритмов. Обычно этим способом описания

пользуются для укрупненных (обобщенных) алгоритмов, особенно на функциональном уровне описания.

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

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

Обычно этот способ используют для описания подпрограмм или функций в сборниках алгоритмов.

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

5. Графический способ

Рассмотрим подробнее графический способ, как наиболее часто используемый.

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

Основные элементы блок-схем Таблица 1.

Обозначение

Наименование

Назначение, примечания

Процесс

Основной блок обработки данных. В укрупненной блок-схеме - для описания любых процессов, в детальных - для присваивания переменным значений выражений

Предопределенный процесс

Обращение (вызов) предопределенных алгоритмов(подпрограмм) Внутри указывается имя п/п.

Ввод/Вывод

Чтение и запись данных в файлы на магнитных носителях. Часто используется для обозначения только процесса ввода данных с любого устройства ввода

Ввод файла

Раньше использовался для ввода данных с перфокарт. Может применяться для любого ввода, в том числе ручного ввода с клавиатуры

Печатный документ

Применяется для обозначения вывода результатов пользователю на принтер или на дисплей

Решение

Выбор одного из двух альтернативных путей. Внутри - логическое выражение, у выходов обозначения "да" и "нет" (по истинности и ложности значения)

Модификатор

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

Начало алгоритма

Начало программы или подпрограммы (для п/п внутри - имя)

Конец алгоритма

Конец программы или выход из подпрограммы (для п/п внутри ставится слово "возврат")

Межстраничный и внутристраничный соединитель

Передача управления на блок, расположенный на другой или на той же странице. N - номер страницы, n - номер соединителя на странице

6. Правила построения блок-схем

Любой алгоритм можно изобразить используя только блоки "начало", "процесс", "решение" и "конец", хотя размер блок-схемы при этом может сильно возрасти. Использование модификаторов, переключателей (не показанных в таблице) и особенно предопределенных процессов существенно сокращает блок-схему.

Блоки изображаются в габаритах блока процесс, кроме начала, конца и модификатора, которые имеют половинную высоту. У каждого блока может стоять номер, используемый не для указания последовательности выполнения блоков, а для удобства ссылок на них в пояснениях. Нумерация обычно возрастает сверху вниз и слева направо. Номер ставится либо слева вверху над блоком, либо в разрыве линии контура блока (см. ниже).

5

5

При изображении блоков в алгоритме следует придерживаться следующих правил:

- всякий блок кроме "начала" и "модификатора" имеет только один вход;

- всякий блок, кроме "решения", "модификатора", "переключателя" и "конца" имеет только один выход;

- "решение" имеет один вход и два выхода (по истинности и ложности условия в момент проверки);

- "модификатор" имеет основной вход, основной выход, внутренний вход и выход;

- "переключатель" имеет один вход и несколько выходов.

Линии передачи управления могут соединяться (сливаться) но не могут разъединяться или пересекаться. Для исключения пересечения используются соединители. На линиях могут ставиться стрелки, хотя направления сверху вниз и слева направо обычно не помечаются.

В алгоритмах не должно быть тупиков, зацикливаний, должен быть один вход и один выход. От входа к выходу каждый блок должен принадлежать какому-либо из путей (ветвей алгоритма).

7. Понятия структурного программирования

Построение алгоритма определяется не только объективными факторами (описываемым методом), но и субъективными - привычками и квалификацией программиста - и не может быть полностью формализовано. Для облегчения построения сложных алгоритмов разработаны некоторые правила и приемы, объединенные названием "Структурное программирование". Ими пользоваться не обязательно, но в сложных больших программных проектах этот подход позволяет избежать многих ошибок и облегчить процесс отладки программы.

При разработке алгоритма могут выдвигаться различные критерии его качества. Еще недавно такими критериями выступали экономия памяти ЭВМ и времени вычислений. Но лет 15 назад разработка программ перешла от кустарного метода к промышленному производству. Появилась задача сопровождения. Приходилось разбираться в программе спустя длительное время после ее изготовления и часто другим программистом. В качестве основного критерия стала выступать легкость сопровождения. Чтобы программа легко читалась, она должна быть "прозрачной" - понятной.

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

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

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

Мы будем рассматривать методы первого пути. Все принципы можно разделить на технологические и организационные.

К технологическим относятся: а) модульное программирование; б) нисходящее проектирование, кодирование и тестирование системы алгоритмов; в) структурное программирование.

К организационным относятся: а) работа коллектива программистов по принципу группы главного программиста; б) создание и поддержка библиотеки; в) формирование структурной документации.

Некоторые моменты требуют пояснения. Например бригадная работа связана с тем, что обычная производительность программистов - 5-8 отлаженных кодов (операторов) в день, но встречаются специалисты, отлаживающие до 200 кодов в день. Бригада в этом случае работает на ведущего программиста, и общая производительность повышается в 3-4 раза. Кроме ведущего программиста в бригаде есть его заместитель, есть

"библиотекарь", который ведет библиотеку проекта, есть специалист по документации, по операционной системе, языку и т.д.

Под модульным программированием понимается проектирование программного проекта в виде системы модулей. Модулем называется последовательность логически связанных элементов, оформленных в виде отдельной, независимой части алгоритма или программы.

Основные свойства модуля: один вход и один выход; функциональная завершенность (желательно); слабые информационные и логические связи с другими модулями.

Этого можно добиться используя следующие рекомендации.

- Отделением ввода исходных данных от вычислений и от вывода результатов.

- Максимальным использованием стандартных подпрограмм и функций.

- Выделением модуля из общего алгоритма таким образом, чтобы в его описании был только один глагол.

- Такими размерами модуля, чтобы его программное описание было обозримым - помещалось на одну страницу, т.е. составляло 40-60 операторов.

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

Рис. 1. Проектирование алгоритма методом декомпозиции.

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

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

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

Принцип структурного программирования заключается в конкретизации метода декомпозиции на этапе построения алгоритма. Он предлагает уточнять (детализировать) любой блок алгоритма с помощью одной из 3-х стандартных элементарных структур (см. рис. 2).

Рис. 2. Стандартные элементарные структуры.

а) следование, б) ветвление, в) цикл с предусловием, г) цикл с постусловием.

Все стандартные структуры имеют один вод и один выход, внутри не имеют тупиков, могут заменить блок с одним входом и одним выходом. Если последовательно применять такие формы детализации к разрабатываемому модулю начиная с блок-схемы, изображенной на рис. 3, получим формально непротиворечивый алгоритм.

Рис. 3. Исходная блок-схема алгоритма.

8. Общие рекомендации построения алгоритмов

При разработке блок-схемы желательно иметь несколько уровней подробности изображения алгоритма. Начинают с обобщенной блок- схемы, в которой отражаются общие принципы ее функционирования. Затем на каждый блок обобщенного алгоритма строится уточненная блок-схема. Каждую блок-схему сопровождает краткое описание, для чего используют комментарии. Последние на блок-схемах в соответствии с ГОСТОМ изображаются, как показано на рис. 4

Рис. 4. Сопроводительные пояснения в блок-схемах алгоритмов.

Следует отметить, что на функциональных схемах блоками часто изображаются не только действия, но и объекты (например оперативная память, монитор), виды представления данных (файл на магнитной ленте, файл на магнитном диске) и даже способы получения информации (например передача по каналам связи и т.д.).

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

Рекомендуемая последовательность работ при разработке алгоритма.

1). Описание общего замысла алгоритма и выбор путей его построения. Желательно построить несколько вариантов структуры алгоритма и провести их анализ. Цель - найти наиболее простой путь решения задачи.

2). Математическая формализация задачи. Необходимо подробно выписать соотношения между входными и выходными данными - т.е. записать математическую модель. При выборе математической модели стараться использовать стандартные методы.

3). Разработка обобщенной схемы алгоритма. Согласование входов, выходов, логических связей укрупненных блоков (модулей) алгоритма.

4). Определение возможности использования стандартных процедур.

5). Разработка подробной блок-схемы.

6). Разработка блоков логического контроля для защиты алгоритма от различных недопустимых ситуаций (в основном - контроль входной информации). Обычно такой контроль включает:

- недостаточность или избыточность входной информации;

- диапазон изменения входной информации;

- заданную последовательность входной информации.

7).Стыковка отдельных блоков алгоритма (проверка функциональной и информационной увязки отдельных блоков).

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

Рис. 6. Типовые схемы алгоритмов расчетных задач.

V Программное обеспечение ЭВМ

1. Общая классификация

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

VII. Системы программирования

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

1. Языки программирования

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

а) классификация

Существует много принципов классификации языков программирования. Наиболее общим является подход, разделяющий этапы решения задач. Так как решение предполагается с помощью ЭВМ, а формулировка задачи остается за человеком, все языки можно разделить на машинные, машинно-зависимые, машинно-независимые и естественные человеческие языки. Мы не будем рассматривать здесь человеческие языки, так как на них человек только осознает задачу, а для ее решения, она должна быть записана на конкретном машинном языке.

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

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

Машинно-зависимые языки носят название ассемблеров.

Примерами реализаций машинно-зависимых языков для ПЭВМ являются макроассемблеры MASM (Microsoft) и TASM (Borland).

Строение ассемлеров опирается на архитектуру и наборы команд каждого типа ЭВМ.

Из машинно-независимых языков, реализованных на ПЭВМ можно отметить Бэйсик, Паскаль, Си, Фортран-77, Пролог, Лисп, Смолток, Модула-2, Ада. Наибольшее распространение получили первые 4 из этого списка.

б) история развития

Развитие языков программирования определялось в первую очередь изменениями потребностей пользователей (что выражалось в распределении затрат на разные этапы решения задачи с помощью ЭВМ).

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

С конца 50-х годов возрастание размеров программ, написанных на машинно-зависимых языках приводит к большим затратам на отладку программ. Для сокращения текстов программ и повышения их наглядности постепенно происходит переход на языки 2-го поколения, больше подходящие для описания решения задачи, а не ориентированные на возможности ЭВМ. Такие языки получают название "алгоритмических". В качестве примеров можно назвать ФОРТРАН (название произошло от "Формульного Транслятора"), АЛГОЛ-60, ЛИСП и др. Первую версию языка ФОРТРАН разработал Дж.Бэкус и фирма IBM в 1956, а первый транслятор с ФОРТРАНа начал работать в 1958 году. В 1962 году сформировался вариант языка с обозначением ФОРТРАН-IV, долгое время являвшимся самым распространенным языком в мире.

Общее количество языков, разработанных к середине 60-х годов, составляло порядка трех тысяч, хотя большинство из них использовалось только разработчиками и их ближайшими знакомыми.

С середины 60-х годов происходит интеграция накопленного "языкового" опыта в универсальных языках высокого уровня (относящихся к 3-му поколению) , таких как ПЛ/1, АЛГОЛ-68, СИМУЛА. В них сделана попытка объединить возможности всех ранее разработанных языков с целью перехода к единому языку программирования. На этих языках, казалось, можно было написать любую программу. Например, в язык ПЛ/1 были включены практически все используемые в прикладных задачах простые типы данных и возможности построения любых составных конструкций.

Хотя этот язык сильно критиковали за сложность, вседозволенность, следует отметить, что за 25 лет с момента его создания он практически не изменялся (в отличие от, например, ФОРТРАНА). Системные программисты, а также прикладные программисты, работающие в новых областях науки активно использовали этот язык, но ему не удалось вытеснить старые языки ФОРТРАН или КОБОЛ из-за огромного объема ранее разработанных программных продуктов, библиотек подпрограмм и из-за консерватизма непрофессиональных программистов.

Важнейшей особенностью этого периода являлось появление очень больших по объему программ, создаваемых коллективами авторов. Написание программ становилось менее сложным делом, чем их отладка и документальное сопровождение. Всякая модификация программ приводила к появлению все новых ошибок. Поэтому, несмотря на интенсивное развитие инструментальных средств, производительность труда программистов с начала 70-х годов перестала расти. Срывались сроки разработки, программы становились дороже и ненадежнее. Увеличение ресурсов (денег, людей) не приводило к ускорению работы. Эта ситуация получила название "кризиса программирования".

Преодоление кризиса началось с работы Боэма "Программная инженерия", вышедшая в 1976 году, в которой было показано, что основные затраты на программный продукт приходятся на сопровождение, а не на разработку. Поэтому важнейшими аспектами становятся технология программирования и "прозрачность" ПО. На смену "хитроумным" программам написанным на громоздких языках приходят простые понятные библиотеки подпрограмм, часто в виде исходных текстов на таких языках как Паскаль, Си, Бейсик. Этому способствует переход на ПЭВМ, на которых просто невозможно реализовать трансляторы с мощных универсальных языков ПЛ или АЛГОЛ-68.

Языками программирования 80-х годов стали языки, реализованные на персональных ЭВМ. К ним в первую очередь относятся Си, Паскаль, Форт, Бейсик, ФОРТРАН-77. Все они относятся к классическим алгоритмическим проблемно-ориентированным операторным языкам, хотя и сильно отличаются друг от друга. Эти языки программирования относят к 4 поколению.

Язык Си был разработан Д.Ритчи в 1972 году и предназначался в первую очередь для переноса программ с одной ЭВМ на другую. Он стал активно применяться после того, как очередная версия операционной системы UNIX была написана на Си. В этом языке сочетаются возможности языка высокого уровня с доступностью адресации аппаратных средств ЭВМ и отсутствием многих ограничений, присущих другим языкам, поэтому он является в настоящее время основным языком системного программирования.

Процедурно ориентированный язык Паскаль был разработан Н.Виртом в 1971 году. Первоначально он использовался для обучения студентов принципам программирования, но в силу ясности, выразительности и высокой эффективности разработанных трансляторов, стал широко применяться для решения вычислительных и информационно-логических задач, а иногда и для вопросов системного программирования. Оказался очень удобен для реализации графики на ПЭВМ.

Язык ФОРТ разрабатывался исключительно для микро-ЭВМ и ориентирован на создание очень эффективных программ в условиях малых аппаратных ресурсов. Система ФОРТ очень компактна, например интерпретатор и словарь системных слов занимают всего 8 Кбайт. Особенностью языка является хранение операндов в стеке, а сама программа имеет вид строк в обратной польской записи. Программист может любую программную строку обозначить заданным символом, который затем может использовать наравне с системными операторами. Это позволяет на основе языка ФОРТ строить специализированные языки для конкретных приложений, поэтому его называют гибким расширяемым языком. Недостатком является непривычная форма записи программ и сложность использования в больших программных комплексах.

ФОРТРАН-77 представляет версию расширенного языка ФОРТРАН, широко используемый в научных расчетах. До языка ФОРТРАН-77 наиболее распространенным языком был ФОРТРАН-66, чаще называемый ФОРТРАН-IV. Следующим годом пересмотра стандарта ФОРТРАНа стал 1986 год, хотя внесенные изменения оказались уже не столь существенными и ФОРТРАН-86 не сумел вытеснить предыдущую версию.

Язык БЕЙСИК был первоначально разработан группой студентов Дартмутского колледжа в 1963 году для обучения программированию. Широкое распространение получил с появлением ПЭВМ, так как на первых машинах являлся единственным алгоритмическим языком программирования. До последнего времени являлся очень простым языком с ограниченными возможностями. Реализовывался в форме интерпретатора, работающего в интерактивном режиме. К сожалению, не имел и практически не имеет стандарта, поэтому на разных ЭВМ имеет различные диалекты, часто несовместимые (и, соответственно, не переносимые с машины на машину). В настоящее время на IBM-совместимых ПЭВМ есть версии БЕЙСИКа с мощными оболочками, включающими интерпретаторы, компилятор, отладчики и прочие составляющие системы программирования.

Это четвертое поколение алгоритмических языков широко распространено и в настоящее время, хотя и вытесняется следующим поколением языков, начавших активно внедряться с начала 90-х годов.

Современные языки программирования, хотя и выросли в недрах языков четвертого поколения (и часто имеют то же название, но более старшую версию), опираются на совершенно иной подход к программированию. В их основе лежит подход к обрабатываемым данным как основе программы. В центр ставятся понятия объектов, объединенных в классы данных, а программа представляет собой описания связей между объектами. Такой подход называется "объектным программированием". В качестве примеров языков этого поколения можно назвать Турбо Паскаль 7-ой версии, С++, Ада, Модула 2, Турбо Пролог.