авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:     | 1 |   ...   | 2 | 3 || 5 | 6 |

«Введение Цели, задачи, структура курса Несколько слов о месте курса «История и методология информати- ки и вычислительной техники» в образовательной программе магистра- ...»

-- [ Страница 4 ] --

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

Сюда можно отнести несколько направлений. Нейронные сети ис пользуются для решения нечтких и сложных проблем, таких как распо знавание геометрических фигур или кластеризация объектов. Генетиче ский подход основан на идее, что некий алгоритм может стать более эффективным, если позаимствует лучшие характеристики у других ал горитмов («родителей»). Относительно новый подход, где ставится за дача создания автономной программы — агента, взаимодействующего с внешней средой, называется агентным подходом.

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

5.4 Особенности развития информатики в России История информатики в нашей стране (сначала СССР, а затем Рос сии) насыщена драматическими коллизиями и резкими изменениями приоритетов [43]. До этого совокупность научных направлений, назы ваемых теперь информатикой, именовалась по-разному. Сначала объе диняющим названием был термин кибернетика, затем на роль общего названия той же области исследований стала претендовать прикладная математика. Следы этой разноголосицы хорошо видны в наименовании высших учебных заведений и научных институтов. Факультет в МГУ, готовящий специалистов в области информатики, носит название Вы числительная математика и кибернетика, а институты, ведущие иссле дования в данной области, могут называться и Институт кибернетики Национальной АН Украины, и Институт прикладной информатики РАН, и Институт прикладной математики РАН. Поэтому, говоря об ис тории информатики в бывшем СССР и теперешней России, по сути, на до излагать историю отечественной кибернетики и частично приклад ной математики и вычислительной техники.

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

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

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

Идеологическая борьба против информатики/кибернетики началась в 15-х гг. Первой ласточкой стала статья, помещенная на страницах идеологического официоза Вопросы философии в марте 1950 года. В ней критике были подвергнуты некоторые теоретические положения математической логики, противоречащие, по мнению авторов статьи, догмам материализма. В четвертом издании Краткого философского словаря (1954) в статье Кибернетика эта наука была определена как реакционная лженаука, возникшая в США после второй мировой вой ны и получившая широкое распространение и в других капиталистиче ских странах;

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

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

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

К 1959 г. в СССР возникла инфраструктура, поддерживающая но вое научное направление. Своим возникновением она обязана А.И. Бер гу, чей талант организатора науки позволил преодолеть все препоны и рогатки бюрократического государства. В лице адмирала Берга, в 1953– 1957 годах занимавшего пост заместителя министра обороны СССР по радиоэлектронике, кибернетика обрела того человека, который обеспе чил этой науке условия для ее становления и расцвета.

Продолжались разработка новых вычислительных машин и разви тие методов решения на них разнообразных задач. Теоретические ис следования активно проводились в Московском, Ленинградском и Ки евском университетах, Институте автоматики и телемеханики АН СССР, в созданном в 1955 году Вычислительном центре АН СССР.

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

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

В 1952–1953 годах А.А. Ляпуновым был предложен операторный метод для описания программ. Практически впервые был создан способ представления программ на обозримом уровне. Вместо неэффективного для человека задания программ в машинных кодах А.А. Ляпунов пред ложил формализованное представление высокого уровня. Особенно важным было то, что операторный метод позволял создать теорию син таксических структур программ.

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

К середине 50-х годов у ведущих специалистов в области вычисли тельной техники было ясное представление о путях развития отечест венной информатики. Примером может служить статья В.М. Глушкова, работавшего тогда в лаборатории вычислительной техники Института математики АН УССР в Киеве. В середине 1957 года автор статьи четко определяет направления стратегических исследований в области ин форматики. По мнению В.М. Глушкова, основой прогресса развития вычислительных машин должны стать теория их работы, разработка ме тодов автоматизации проектирования ЭВМ и развитие методов автома тизации программирования. Он подчеркивает важную роль исследова ний в области теории алгоритмов и теории конечных детерминирован ных и стохастических автоматов, принципиальное значение разработки методов символьных преобразований на ЭВМ (аналитических преобра зований, доказательства теорем, машинного перевода), отмечает цен тральную роль, которую играет задача оптимизации программ (особен но для управляющих машин), а также указывает на обратное влияние развития вычислительных машин на дальнейшие работы в области вы числительной математики.

6 История и методология вычислительной техники.

В формальном определении понятия "вычислительная техника", приведенном в разделе "Введение", подчеркнуто двоякое понимание данного термина: с одной стороны, это – совокупность технических средств, используемых для механизации и автоматизации процессов вычислений и обработки информации;

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

В последнее время вопросы развития ВТ стали предметом особо пристального внимания ученых, свидетельством чего служит активно развивающаяся новая область знаний, получившая название «Теория эволюции компьютеров» (Computer evolution theory) [44]. Создатели теории обратили внимание на сходство закономерностей эволюции вы числительной техники и эволюции в биологии. В основу новой науки положены следующие постулаты:

поступательное продвижение по древу эволюции – от протопро цессорных (однопроцессорных) вычислительных машин к поли процессорным (многопроцессорным) вычислительным систе мам;

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

отмирание устаревших технологий в результате естественного отбора;

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

Закон Мура – эмпирическое наблюдение, сделанное в 1965 году Гордоном Муром, одним из основателей Intel. Мур высказал предполо жение, что число транзисторов на кристалле будет удваиваться каждые 24 месяца;

при сохранении этой тенденции мощность вычислительных устройств растет экспоненциально [45].

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

6.1 Поколения вычислительных машин Попытки облегчить, а в идеале автоматизировать процесс вычисле ний имеют давнюю историю, насчитывающую порядка 5000 лет, а по мнению некоторых исследователей – значительно больше. Археологами была обнаружена так называемая "вестоницкая кость" с зарубками, ко торая позволяет предположить, что уже за 30 тысяч лет до н.э. наши предки были знакомы с зачатками счета. С развитием науки и техноло гий средства автоматизации вычислений непрерывно совершенствова лись. Современное состояние вычислительной техники (ВТ) являет со бой результат многолетней эволюции.

В традиционной трактовке эволюцию вычислительной техники представляют как последовательную смену поколений ВТ.

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

Появление термина «поколение» относится к 1964 году, когда фирма IBM выпустила серию компьютеров IBM 360, назвав эту серию «компьютерами третьего поколения». Сам термин имеет разные опре деления, наиболее популярными из которых являются:

Наибольшее распространение получила классификация вычисли тельных систем (ВС) по поколениям, опирающаяся на моменты смены технологий [44, 46]. Принято говорить о «механической» эре (нулевое поколение) и последовавших за ней пяти поколениях вычислительных систем. Первые четыре поколения традиционно связывают с элемент ной базой вычислительных систем.

6.1.1 Нулевое поколение (1492–1945) 6.1.1.1 Доэлектронная эпоха развития вычислительных устройств Для полноты картины упомянем два события, произошедшие до нашей эры: первые счеты – абак, изобретенные в древнем Вавилоне за 3000 лет до н. э., и их более «современный» вариант с косточками на проволоке, появившийся в Китае примерно за 500 лет также до н. э.

«Механическая» эра в эволюции ВТ связана с механическими, а позже – электромеханическими вычислительными устройствами. Авто матизировать процесс вычислений пытались многие ученые, сталкива ясь с необходимостью произвести большое количество сложных расче тов.

Эту идею пытался воплотить в жизнь и Леонардо да Винчи (1452– 1519) Он создал эскиз суммирующего устройства с десятизубчатыми шестернями. Считается, что первая машина, способная автоматически выполнять четыре арифметических действия была создана в 1623 году Вильгельмом Шиккардом.

Джон Непер создал устройство для облегчения выполнений дейст вий умножения и деления, а в 1622 году, используя принцип действия этого устройства, Вильям Оугтред (William Oughtred) разработал лога рифмическую линейку, которая в 19–20 веках стала основным инстру ментом инженеров.

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

В 1673 году немецкий философ, математик, физик Готфрид Виль гейм Лейбниц (1646–1716) создал счетную машину, позволяющую складывать, вычитать, умножать, делить, извлекать квадратные корни.

Эта машина являлась прототипом арифмометра, использующегося с 1820 года до 60-х годов ХХ века.

Считается, что первым ученым, предложившим использовать принцип программного управления для автоматического выполнения арифметических вычислений, был английский профессор математики Чарльз Бэббидж (1791–1871), который разработал полностью автомати ческую вычислительную машину с программным управлением [47]. Хо тя аналитическая машина Бэббиджа не была построена, работая над ней Бэббидж определил основные черты современного компьютера. Анали тическая машина включала в себя:

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

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

К 1900 году ранние механические калькуляторы, кассовые аппара ты и счтные машины были перепроектированы с использованием элек трических двигателей с представлением положения переменной как по зиции шестерни. С 1930-х такие компании как Friden, Marchant и Monro начали выпускать настольные механические калькуляторы, которые могли складывать, вычитать, умножать и делить. В ходе Манхэттенско го проекта, будущий Нобелевский лауреат Ричард Фейнман был управ ляющим целой команды «вычислителей», многие из которых были женщинами-математиками, обрабатывающими дифференциальные уравнения, которые решались для военных нужд.

В 1936 г. английским математиком Аланом Тьюрингом было раз работано понятие абстрактной цифровой вычислительной машины, по лучившей впоследствии название машины Тьюринга, способной имити ровать (при наличии соответствующей программы) любую машину, действие которой заключается в переходе от одного дискретного со стояния к другому [48]. В практическом плане Тьюринг в ходе своих работ убедился в неэффективности построения специализированных машин для решения конкретных логических задач и пришел к идее уни версальной электронной вычислительной машины.

6.1.1.2 Z-серия Конрада Цузе В 1936 году в Германии Конрад Цузе начал работу над своим пер вым вычислителем серии Z, имеющим память и возможность програм мирования. Созданная в основном на механической основе, но уже на базе двоичной логики, модель Z1 была завершена в 1938 году. Она так и не заработала достаточно наджно из-за недостаточной точности вы полнения составных частей. В 1939 году Цузе создал второй вычисли тель (Z2), но схемы и фотографии этой машины были уничтожены при бомбардировке во время Второй Мировой войны, поэтому о ней почти ничего не известно. Следующая машина Цузе (Z3), была завершена в 1941 году. Она была построена на телефонных реле и работала вполне удовлетворительно. Z3 стала первой программно-управляемой вычис лительной машиной. Во многих отношениях Z3 была подобна совре менным ЭВМ. В ней впервые был представлен ряд новшеств, таких, как арифметика с плавающей запятой. Выбор двоичной системы счисления вместо более сложной десятичной позволил сделать машины Цузе более простыми и наджными;

считается, что это одна из причин того, что Цузе преуспел там, где Бэббидж потерпел неудачу.

Программы для Z3 хранились на перфорированной плнке. Услов ные переходы отсутствовали, однако, как позднее было теоретически доказано, Z3 является универсальным компьютером. В двух патентах 1936 года Конрад Цузе упоминал, что машинные команды могут хра ниться в той же памяти, что и данные – предугадав тем самым то, что позже стало известно как один из основных принципов фон Неймана построения архитектуры ЭВМ.

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

Код немецкой шифровальной машины Lorenz SZ 40/42 использовалась для армейской связи высокого уровня. Первые перехваты передач с та ких машин были зафиксированы в 1941 году. Для взлома этого кода в Британии была создана машина «Колосс» (Colossus). «Колосс» стал первым полностью электронным вычислительным устройством. В нм использовалось большое количество электровакуумных ламп, ввод ин формации выполнялся с перфоленты. «Колосс» можно было настроить на выполнение различных операций булевой логики, но он не являлся тьюринг-полной машиной. Информация о существовании этой машины держалась в секрете до 1970-х гг. Уинстон Черчилль лично подписал приказ о разрушении машины. Из-за своей секретности «Колосс» не упомянут во многих трудах по истории вычислительной техники, а опи сание деталей его архитектуры отсутствует.

6.1.1.4 Американские разработки 1930–40 гг.

В 1937 году Клод Шеннон показал, что существует соответствие «один-к-одному» между концепциями булевой логики и некоторыми электронными схемами, которые получили название «логические вен тили». Он продемонстрировал, что комбинационные схемы – логиче ские вентили, объединенные связями, – эквивалентны выражениям бу левой алгебры. воей работой «A Symbolic Analysis of Relay and Switching Circuits» он создал основу для практического проектирования цифровых схем.

В ноябре 1937 года Джорж Стибиц завершил в Bell Labs создание компьютера «Model K» на основе релейных переключателей.

В 1939 году в Endicott laboratories в IBM началась работа над Harvard Mark I. Официально известный как Automatic Sequence Controlled Calculator, Mark I был электромеханическим компьютером общего назначения, созданного с финансированием IBM и при помощи со стороны персонала IBM, под руководством гарвардского математика Ховарда Айкена (Howard Aiken). Mark I был перенесн в Гарвардский университет и начал работу в мае 1944 года.

6.1.2 Первое поколение (1937–1953) На роль первой в истории электронной вычислительной машины в разные периоды претендовало несколько разработок. Общим у них бы ло использование схем на базе электронно-вакуумных ламп вместо электромеханических реле. Предполагалось, что электронные ключи будут значительно надежнее, поскольку в них отсутствуют движущиеся части. Однако технология того времени была настолько несовершенной, что по надежности электронные лампы оказались ненамного лучше, чем реле. У электронных компонентов имелось одно важное преимущество:

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

Первой электронной вычислительной машиной чаще всего назы вают специализированный калькулятор ABC (Atanasoff–Berry Computer). Разработан он был в период с 1939 по 1942 год профессором Джоном Атанасовым (John V. Atanasoff). ABC обладал памятью на слов длиной 50 бит, а запоминающими элементами служили конденса торы с цепями регенерации. В качестве вторичной памяти использова лись перфокарты, где отверстия не перфорировались, а прожигались.

Другой кандидат на роль первой ЭВМ – программируемый элек тронный калькулятор общего назначения ENIAC (Electronic Numerical Integrator and Computer – электронный цифровой интегратор и вычисли тель). Идея калькулятора, выдвинутая в 1942 году Джоном Мочли (John J. Mauchly) из университета Пенсильвании, была реализована им совме стно с Преспером Эккертом (J. Presper Eckert) в 1946 году. В калькуля торе использовалась десятичная система счисления. Программа задава лась схемой коммутации триггеров на 40 наборных полях. При пробной эксплуатации выяснилось, что надежность машины чрезвычайно низка:

поиск неисправностей занимал от нескольких часов до нескольких су ток.

В 1947 году под руководством С. А. Лебедева начаты работы по созданию малой электронной счетной машины (МЭСМ). Эта ЭВМ была запущена в эксплуатацию в 1951 году и стала первой ЭВМ в СССР и континентальной Европе.

В 1952 году Джон Экерт и Джон Мокли (Eckert J. Presper и John William Mauchly) создали первую коммерчески успешную машину UNIVAC. В том же году в опытную эксплуатацию была запущена вы числительная машина М-1 (И. С. Брук, Н. Я. Матюхин, А. Б. Залкинд).

М-1 содержала 730 электронных ламп, оперативную память емкостью 256 25-разрядных слов, рулонный телетайп и обладала производитель ностью 15–20 операций/с. Впервые была применена двухадресная сис тема команд. Чуть позже группой выпускников МЭИ под руководством И. С. Брука создана машина М-2 с емкостью оперативной памяти 34-разрядных слов и быстродействием 2000 операций/с.

В апреле 1953 года в эксплуатацию поступила самая быстродейст вующая в Европе ЭВМ БЭСМ (С. А. Лебедев). Ее быстродействие со ставило 8000–10 000 операций/с. Примерно в то же время выпущена ламповая ВМ «Стрела» (Ю. А. Базилевский, Б. И. Рамееев) с быстро действием 2000 операций/с.

6.1.3 Второе поколение (1954–1962) Второе поколение характеризуется рядом достижений в элемент ной базе, структуре и программном обеспечении. Принято считать, что поводом для выделения нового поколения ВМ стал переход от элек тронных ламп к полупроводниковым диодам и транзисторам со време нем переключения порядка 0,3 мс.

Первой ВМ, выполненной полностью на полупроводниковых дио дах и транзисторах, стала TRADIC (TRAnisitor DIgital Computer), по строенная в Bell Labs по заказу военно-воздушных сил США как прото тип бортовой ВМ. Машина состояла из 700 транзисторов и 10 000 гер маниевых диодов. За два года эксплуатации TRADIC отказали только полупроводниковых элементов, что говорит о прорыве в области на дежности элементной базы по сравнению с электронными лампами.

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

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

Ко второму поколению относятся и две первые суперЭВМ, разра ботанные для ускорения численных вычислений в научных приложени ях: LARC (Livermore Atomic Research Computer) и IBM 7030. Помимо прочего, в этих ВМ нашли воплощение еще две новинки: совмещение операций процессора с обращением к памяти и простейшие формы па раллельной обработки данных.

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

Шестидесятые годы XX века стали периодом бурного развития вы числительной техники в СССР. За этот период разработаны и запущены в производство вычислительные машины «Урал-1», «Урал-4», «Урал 11», «Урал-14», БЭСМ-2, М-40, «Минск-1», «Минск-2», «Минск-22», «Минск-32». В 1960 году под руководством В. М. Глушкова и Б. Н. Ма линовского разработана первая полупроводниковая управляющая ма шина «Днепр».

6.1.4 Третье поколение (1963–1972) Третье поколение ознаменовалось резким увеличением вычисли тельной мощности ЭВМ, ставшим следствием больших успехов в об ласти архитектуры, технологии и программного обеспечения. Основные технологические достижения связаны с переходом от дискретных полу проводниковых элементов к интегральным микросхемам и началом применения полупроводниковых запоминающих устройств, начинаю щих вытеснять ЗУ на магнитных сердечниках.

В первых ВМ третьего поколения использовались интегральные схемы с малой степенью интеграции (small-scale integrated circuits, SSI), где на одном кристалле размещается порядка 10 транзисторов. Ближе к концу рассматриваемого периода на смену SSI стали приходить инте гральные схемы средней степени интеграции (medium-scale integrated circuits, MSI), в которых число транзисторов на кристалле увеличилось на порядок. К этому же времени относится повсеместное применение многослойных печатных плат. Все шире востребуются преимущества параллельной обработки, реализуемые за счет множественных функ циональных блоков, совмещения во времени работы центрального про цессора и операций ввода/вывода, конвейеризации потоков команд и данных.

В 1964 году Сеймур Крей (Seymour Cray) построил вычислитель ную систему CDC 6600, в архитектуру которой впервые был заложен функциональный параллелизм. Благодаря наличию 10 независимых функциональных блоков, способных работать параллельно, и 32 незави симых модулей памяти удалось достичь быстродействия в 1 MFlops (миллион операций с плавающей запятой в секунду). Пятью годами позже Крей создал CDC 7600 с конвейеризированными функциональ ными блоками и быстродействием 10 MFlops. CDC 7600 называют пер вой конвейерной вычислительной системой (конвейерным процессо ром). Революционной вехой в истории ВТ стало создание семейства вы числительных машин IBM 360, архитектура и программное обеспечение которых на долгие годы служили эталоном для последующих больших универсальных ВМ (mainframes). В машинах этого семейства нашли во площение многие новые для того периода идеи, в частности: предвари тельная выборка команд, отдельные блоки для операций с фиксирован ной и плавающей запятой, конвейеризация команд, кэш-память. К третьему поколению ВС относятся также первые параллельные вычис лительные системы: SOLOMON корпорации Westinghause и ILLIAC IV – совместная разработка Иллинойского университета и компании Burroughs.

Среди вычислительных машин, разработанных в этот период в СССР, прежде всего необходимо отметить «быстродействующую элек тронно-счетную машину» – БЭСМ-6 (С. А. Лебедев) с производитель ностью 1 млн операций/с. Продолжением линии М-20 стали М-220 и М 222 с производительностью до 200 000 операций/с. Под руководством В. М. Глушкова была создана оригинальная ЭВМ для инженерных рас четов «Мир-1». В качестве входного языка этой ЭВМ использован язык программирования высокого уровня «Аналитик», во многом напоми нающий язык Алгол.

6.1.5 Четвертое поколение (1972–1984) Отсчет четвертого поколения обычно ведут с перехода на инте гральные микросхемы большой (large-scale integration, LSI) и сверх большой (very large-scale integration, VLSI) степени интеграции. К пер вым относят схемы, содержащие около 1000 транзисторов на кристалле, в то время как число транзисторов на одном кристалле VLSI имеет по рядок 100 000. Конец 70-х и начало 80-х годов – это время становления и последующего победного шествия микропроцессоров и микроЭВМ.

Одним из наиболее значимых событий в области архитектуры ЭВМ стала идея вычислительной машины с сокращенным набором команд (RISC, Redused Instruction Set Computer), выдвинутая в 1975 году и впервые реализованная в 1980 году. В упрощенном изложении суть концепция RISC заключается в сведении набора команд ВМ к наиболее употребительным простейшим командам. Это позволяет упростить схе мотехнику процессора и добиться резкого сокращения времени выпол нения каждой из «простых» команд. Более сложные команды реализу ются как подпрограммы, составленные из быстрых «простых» команд.

В ЭВМ и ВС четвертого поколения память строится из полупро водниковых запоминающих устройств (ЗУ).

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

6.1.6 Пятое поколение (1985 – ???) Компьютеры пятого поколения – широкомасштабная правительст венная программа Японии по развитию компьютерной индустрии и ис кусственного интеллекта, предпринятая в 1980-е годы. Целью програм мы было создание суперкомпьютера c мощными функциями искусст венного интеллекта. Если предыдущие поколения совершенствовались за счт увеличения количества элементов на единицу площади (миниа тюризации), компьютеры пятого поколения должны были интегриро вать огромное количество процессоров.

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

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

Технологии 80-х годов быстро перескочили те барьеры, которые перед началом проекта считались «очевидными» и непреодолимыми.

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

6.2 Принципы фон Неймана и эволюция ЭВМ В качестве узловых моментов, определяющих появление нового поколения ВТ, обычно выбираются революционные идеи или техноло гические прорывы, кардинально изменяющие дальнейшее развитие средств автоматизации вычислений. Одной из таких идей принято счи тать концепцию построения ЭВМ, сформулированную Джоном фон Нейманом [49]. Взяв ее за точку отсчета, историю развития ВТ можно представить в виде трех этапов:

донеймановского периода;

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

постнеймановской эпохи – эпохи параллельных и распреде ленных вычислений.

Принципы Фон-Неймана тесно связаны с понятием архитектуры ЭВМ.

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

К архитектуре относятся:

структура памяти ЭВМ;

способы доступа к памяти и внешним устройствам;

возможность изменения конфигурации компьютера;

система команд;

форматы данных;

организация интерфейса.

Впервые термин «архитектура вычислительной машины» (computer architecture) был употреблен фирмой IBM при разработке машин семей ства IBM 360 для описания тех средств, которыми может пользоваться программист, составляя программу на уровне машинных команд [50].

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

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

Принципы фон Неймана [49]:

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

однородность памяти: как программы (команды), так и данные хранятся в одной и той же памяти;

над командами можно вы полнять такие же действия, как и над данными;

адресуемость памяти: основная память состоит из пронумеро ванных ячеек;

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

последовательное программное управление: программа состоит из набора команд, которые располагаются в памяти и выполня ются процессором друг за другом в определенной последова тельности, одна после завершения другой;

принцип условного перехода: в определенных ситуациях после довательное исполнение команд может быть нарушено.

Первыми пятью компьютерами, в которых были реализованы ос новные особенности архитектуры фон Неймана, были:

Манчестерский Марк I. Прототип – Манчестерская малая экспе риментальная машина. Университет Манчестера (англ. The University of Manchester), Великобритания, 21 июня 1948 года;

EDSAC. Кембриджский университет (англ. The Cambridge University), Великобритания, 6 мая 1949 года;

BINAC. США, апрель или август 1949 года;

CSIR Mk 1. Австралия, ноябрь 1949 года;

SEAC. США, 9 мая 1950 года.

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

В частности, в результате расположения программ и данных в од ной и той же памяти при выполнении одной команды процессор выну жден обращаться к памяти дважды: для чтения команды и (как правило) для чтения данных. Работа с памятью изначально была и во многом ос тается проблемной областью вычислительных машин, а реализация по добного подхода еще более обостряла ситуацию. Описанная же фон Нейманом возможность обработки кода программы, как данных, и соз дание самомодифицирующихся программ широкого распространения не получили. Альтернативным вариантом являлась гарвардская архи тектура – архитектура ЭВМ, отличительным признаком которой явля ется раздельное хранение и обработка команд и данных. Архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвард ском университете. В настоящее время большинство вычислительных систем реализует гибридную архитектуру, когда на уровне ОЗУ вычис лительной машины реализован принцип фон Неймана, а на уровне кри сталла реализуется раздельная кэш-память команд и данных.

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

6.3 Параллельные вычислительные системы.

Предполагают, что первое упоминание о принципе параллелизма в проекте вычислительного устройства обнаружено в публикации аме риканского генерала Менебриа под названием "Набросок аналитиче ской машины, изобретенной Чарльзом Бэббиджем", датируемой октяб рем 1842 г., где прозвучала следующая мысль: " В случае выполнения серии идентичных вычислений, подобных операции умножения и не обходимых для формирования цифровых таблиц, машина может быть введена в действие с целью выдачи нескольких результатов одновре менно, что очень существенно сократит весь объем процессов". Спо собность выполнять параллельные вычисления не была реализована в окончательном варианте машины Бэббиджа. Идея параллельной органи зации вычислений возникла почти на 100 лет раньше, чем техника достигла такого состояния, когда ее реализация стала возможной. Ак тивность исследований в области всегда была неравномерной. Каждый революционный скачок в развитии вычислительной техники вызывал ощущение того, что вот-вот, в ближайшем будущем, вычислительная техника станет широко распространенной и общедоступной. Возможно, именно это приводило к всплеску активности исследований в области параллельных вычислительных систем, поиску эффективных вариантов их архитектур и организации параллельных вычислений. При попытке же перейти к практической реализации наработанных идей исследова тели раз за разом упирались в несовершенство материальной базы и дороговизну разработки и создания вычислительной техники ориги нальной архитектуры. Преодолеть это препятствие удавалось лишь еди ницам;

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

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

С момента возникновения идеи параллельной обработки информа ции и до настоящего времени было разработано огромное количество способов ее реализации;

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

Неоднократно предпринимались попытки систематизировать ар хитектуры параллельных вычислительных систем (ПВС). Наиболее час то упоминаемой является фактически первая классификация архитектур ПВС, предложенная в 1966 г. М. Флинном (Flynn) [51]. Классификация Флинна базируется на понятии потока и на описании того, как в вычис лительной системе увязываются потоки команд и обрабатываемых дан ных.

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

Один поток команд – один поток данных, ОКОД (single instruc tion – single data, SISD) – обычная последовательная ЭВМ фон Нейма на, в которой имеется один поток команд (и практически одно устрой ство обработки команд) и каждая арифметическая команда инициирует одну операцию с одним потоком данных (рисунок 6.1).

I D R ВМ I – поток команд D –поток данных R –результат ВМ –вычислительный модуль Рисунок 6.1 – Архитектура «Один поток команд – один поток дан ных»

Один поток команд – много потоков данных, ОКМД (single in struction – multiple data, SIMD) – в таких системах сохраняется один поток команд, распределяемый между несколькими исполняющими устройствами (процессорными элементами) (рисунок 6.2) [52].

I УУ R D1 D R ВМ1 ВМ R R2 D D ВМ ВМ RN R D3 DN ВМ3 ВМN I – поток команд D –поток данных R –результат ВМ – вычислительный модуль УУ – устройство управления Рисунок 6.2 – Архитектура «Один поток команд – много потоков данных»

Много потоков команд – один поток данных, МКОД (multiple instruction – single data, MISD) – этот класс в настоящее время мало развит. Предполагается, что в машинах такого типа несколько потоков команд одновременно работают с одним элементом данных. В ряде ра бот, посвященных архитектурам ПВС, этот класс рассматривается, как синоним конвейерной ЭВМ, но такой подход не является общеприня тым (рисунок 6.3) [53].

I1 I2 In D1 D2 D3 R ВМ1 ВМ2 ВМN I – поток команд D –поток данных R –результат ВМ – вычислительный модуль УУ – устройство управления Рисунок 6.3 – Архитектура «Много потоков команд – один поток данных»

Много потоков команд –много потоков данных, МКМД (multiple instruction – multiple data, MIMD) – много потоков команд предусмат ривают существование нескольких устройств обработки команд, и, следовательно, и нескольких потоков данных [54].

Этот класс включает в себя все формы мультипроцессорных кон фигураций. Параллельные ВС класса МКМД нуждаются в более де тальной классификации Существует практически общепризнанная сис тематика, которая опирается на способы организации памяти в вычис лительной системе (рисунок 6.4) [51].

Параллельные вычислительные системы Мультикомпьютеры Мультипроцессоры Массивно параллельные SMP PVP Кластеры (MPP) Рисунок 6.4 – Классификация архитектур «Много потоков команд – много потоков данных»

6.3.1 Мультипроцессорные вычислительные системы Использование единой общей памяти служит основой для построе ния параллельно-векторных суперкомпьютеров (Parallel Vector Processor, PVP) и симметричных мультипроцессоров (Symmetric MultiProcessor, или SMP) (рисунок 6.5).

ВМ1 ВМ2 ВМN Процессор Устройства Коммутирующая среда ввода- ввода вывода вывода Оперативная память Рисунок 6.5 – Архитектура мультипроцессорной вычислительной системы Симметричные мультипроцессоры состоят из совокупности про цессоров, обладающих одинаковыми возможностями доступа к памяти и внешним устройствам и функционирующих под управлением единой операционной системы (ОС). Все процессоры этого типа имеют разде ляемую общую память с единым адресным пространством.

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

Параллельно-векторные суперкомпьютеры (Parallel-Vector Processor, PVP) характеризуются наличием специальных векторно конвейерных процессоров, в которых предусмотрены команды одно типной обработки векторов независимых данных, эффективно выпол няющиеся на конвейерных функциональных устройствах. Как правило, несколько таких процессоров работают одновременно над общей памя тью (аналогично SMP) в рамках многопроцессорных конфигураций.

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

6.3.2 Мультикомпьютеры Мультикомпьютеры (системы с распределенной памятью) не обеспечивают общий доступ ко всей имеющейся в системах памяти.

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

ВМ1 ВМ2 ВМN ЦП ЦП ОЗУ ОЗУ ЦП ОЗУ Процессор Коммутирующая среда Ввода-вывода Устройства ввода-вывода Рисунок 6.6 – Архитектура мультикомпьютерной вычислительной системы Данный подход используется при построении двух важных типов многопроцессорных вычислительных систем: кластеров (clusters) и мас сивно-параллельных систем (Massively Parallel Processor, MPP).

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

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

Архитектурно MPP очень близки к кластерным ВС, но имеют более скоростные (как правило, специализированные) каналы связи между модулями и широкие возможности по масштабированию.

6.4 Суперкомпьютеры Суперкомпьютер (суперЭВМ) – это штучно или мелкосерийно выпускаемая вычислительная система, производительность которой многократно превосходит производительность массово выпускаемых компьютеров [50].

В течение некоторого периода развития вычислительной техники понятия «параллельная вычислительная система» и «суперкомпьютер»

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

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

В современно мире ПВС существует признанный «табель о рангах»

– ранжированный по реальной производительности список 500 самых мощных вычислительных систем в мире – ТОР-500.

Главной характеристикой ПВС, которая определяет не только по ложение ВС в TOP-500, но и ее потребительские свойства, является производительность – количество операций, производимых системой за единицу времени. Различают пиковую и реальную производитель ность.

Пиковая производительность – величина, равная произведению пиковой производительности одного процессора на число таких процес соров в рассматриваемой вычислительной системе.

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

Для того чтобы оценить эффективность работы вычислительной системы на реальных задачах, были разработаны различные наборы тес тов. Наиболее известным из них является LINPACK – программа, пред назначенная для решения системы линейных алгебраических уравнений с плотной матрицей с выбором главного элемента по строке. Именно LINPACK используется для формирования списка TOP-500.

Анализируя историю ТОР-500, можно выявить основные законо мерности развития суперкомпьютеров [55].

По географической принадлежности в течение всей истории рей тинга доминирует США, но в последнее время резко активизировался прирост вычислительных мощностей в азиатском регионе, прежде всего за счет Китая и – в последней версии списка – Японии.

ВС, стоящие ниже 250–280 позиции списка, как правило, не попа дают в следующую редакцию, т. е. список каждый раз обновляется на 45–50 %.

Суммарная производительность систем в TOP-500 за полгода вы растает на 35–45%. Эти темпы роста также являются устойчивыми.

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

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

В течение длительного времени можно было наблюдать увеличе ние числа кластерных ВС, входящих в список. В настоящее время доля кластеров составила около 90% всех позиций ТОР-500 и практически стабилизировалась. Оставшуюся часть списка составляют MPP системы различных производителей.


Коммуникационные подсистемы современных суперкомпьютеров в основном базируются на стандартных технологиях, в частности, на Ethernet, которая является лидеров в течение долгого времени, и Infini Band, которая постепенно отвоевывает позиции. Вместе с тем присутст вуют системы, базирующиеся на специализированных коммуникацион ных подсистемах. Как правило, число таких систем невелико, но они обеспечивают значительную долю суммарной производительности рей тинга ТОР-500.

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

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

6.5 Cети ЭВМ Сети ЭВМ являются результатом эволюции двух важнейших науч но-технических отраслей современной цивилизации – компьютерных и телекоммуникационных технологий [56].

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

Средства обмена данными между компьютерами в автоматическом режиме были разработаны позднее;

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

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

Советские учные из ИТМиВТ АН СССР создавали сети компью терной связи с 1952 года в рамках работ по созданию автоматизирован ной системы противоракетной обороны (ПРО). Специалисты под руко водством Сергея Лебедева организовали обмен данных между ЭВМ для вычисления траектории противоракеты. Как пишет один из создателей системы Всеволод Бурцев, «в экспериментальном комплексе противо ракетной обороны» центральная машина М-40 «осуществляла обмен информацией по пяти дуплексным и асинхронно работающим радиоре лейным каналам связи с объектами, находящимися от не на расстоянии от 100 до 200 километров;

общий темп поступления информации через радиорелейные линии превышал 1 МГц». В 1956 году западнее озера Балхаш советскими учными и военными был создан большой полигон, где разрабатываемая система ПРО, вместе с сетью ЭВМ, проходила ис пытания.

В 1969 году министерство обороны США инициировало работы по объединению в общую сеть суперкомпьютеров оборонных и научно исследовательских центров. Эта сеть, получившая название ARPANET объединяла компьютеры разных типов, работавшие под управлением различных ОС с дополнительными модулями, реализующими коммуни кационные протоколы, общие для всех компьютеров сети.

В 1974 году компания IBM объявила о создании собственной сете вой архитектуры для своих мэйнфреймов, получившей название SNA (System Network Architecture, системная сетевая архитектура). В это же время в Европе активно велись работы по созданию и стандартизации сетей X.25.

Таким образом, хронологически первыми появились глобальные сети (Wide Area Networks, WAN), то есть сети, объединяющие террито риально рассредоточенные компьютеры, возможно, находящиеся в раз личных городах и странах. Именно при построении глобальных сетей были впервые предложены и отработаны многие основные идеи и кон цепции современных вычислительных сетей, такие, например, как мно гоуровневое построение коммуникационных протоколов, технология коммутации пакетов и маршрутизация пакетов в составных сетях.

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

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

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

Типичным примером таких сетей являются сети X.25, разработанные еще в начале 70-х, когда низкоскоростные аналоговые каналы, арендуе мые у телефонных компаний, были преобладающим типом каналов, со единяющих компьютеры и коммутаторы глобальной вычислительной сети.

С конца 60-х годов в телефонных сетях все чаще стала применяться передача голоса в цифровой форме, что привело к появлению высоко скоростных цифровых каналов, соединяющих АТС и позволяющих од новременно передавать десятки и сотни разговоров. Была разработана специальная технология плезиохронной цифровой иерархии (Plesiochronous Digital Hierarchy, PDH), предназначенная для создания так называемых первичных, или опорных, сетей. Такие сети не предос тавляют услуг конечным пользователям, они являются фундаментом, на котором строятся скоростные цифровые каналы "точка-точка", соеди няющие оборудование другой (так называемой наложенной) сети, кото рая уже работает на конечного пользователя.

Появившаяся в конце 80-х годов технология синхронной цифровой иерархии (Synchronous Digital Hierarchy, SDH) расширила диапазон ско ростей цифровых каналов до 10 Гбит/c, а технология спектрального мультиплексирования DWDM (Dense Wave Division Multiplexing) – до сотен гигабит и даже нескольких терабит в секунду.

В начале 70-х годов произошло важное событие, непосредственно повлиявшее на эволюцию компьютерных сетей – появление и быстрое широкое распространение мини-компьютеров. Таким образом, появи лась концепция распределения компьютерных ресурсов по всему пред приятию. Однако при этом все компьютеры одной организации по прежнему продолжали работать автономно. В середине 80-х годов по ложение дел в локальных сетях стало меняться. Утвердились стандарт ные технологии объединения компьютеров в сеть – Ethernet, Arcnet, Token Ring, Token Bus, несколько позже – FDDI. Все стандартные тех нологии локальных сетей опирались на тот же принцип коммутации, который был с успехом опробован и доказал свои преимущества при передаче трафика данных в глобальных компьютерных сетях – принцип коммутации пакетов.

Стандартные сетевые технологии сделали задачу построения ло кальной сети почти тривиальной. Для создания сети достаточно было приобрести сетевые адаптеры соответствующего стандарта, например Ethernet, стандартный кабель, присоединить адаптеры к кабелю стан дартными разъемами и установить на компьютер одну из популярных сетевых операционных систем, например Novell NetWare. После этого сеть начинала работать, и последующее присоединение каждого нового компьютера не вызывало никаких проблем – естественно, если на нем был установлен сетевой адаптер той же технологии.

В 80-е годы были приняты основные стандарты на коммуникаци онные технологии для локальных сетей: в 1980 году – Ethernet, в 1985 – Token Ring, в конце 80-х – FDDI. Это позволило обеспечить совмести мость сетевых операционных систем на нижних уровнях, а также стан дартизировать интерфейс ОС с драйверами сетевых адаптеров.

Конец 90-х выявил явного лидера среди технологий локальных се тей – семейство Ethernet, в которое вошли классическая технология Ethernet 10 Мбит/c, а также Fast Ethernet 100 Мбит/c и Gigabit Ethernet 1000 Мбит/c. Простые алгоритмы работы предопределили низкую стоимость оборудования Ethernet. Широкий диапазон иерархии скоро стей позволяет рационально строить локальную сеть, применяя ту тех нологию, которая в наибольшей степени отвечает задачам предприятия и потребностям пользователей. Важно также, что все технологии Ethernet очень близки друг другу по принципам работы, что упрощает обслуживание и интеграцию построенных на их основе сетей.


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

6.6 Распределенные вычислительные системы Распределенная вычислительная система (РВС) – это набор со единенных каналами связи независимых компьютеров, которые с точки зрения пользователя некоторого программного обеспечения выглядят единым целым [57].

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

Предпосылками возникновения РВС являются:

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

широкое распространение стандартов аппаратного, так и для программного обеспечения;

инструментальные программные средства, обеспечивающие кроссплатформенность;

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

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

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

в дальнейшем мы рассмотрим более подробно отличительные признаки распределенной вычислительной системы.

6.6.2 GRID-системы Грид-вычисления (англ. grid – рештка, сеть) – это форма распре делнных вычислений, в которой «виртуальный суперкомпьютер» пред ставлен в виде кластера соединнных с помощью сети, слабосвязанных компьютеров, работающих вместе для выполнения огромного количе ства заданий (операций, работ).

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

Термин «грид-вычисления» появился в начале 1990-х гг., как мета фора о такой же лгкости доступа к вычислительным ресурсам, как и к электрической сети (англ. power grid) в сборнике под редакцией Яна Фостера и Карла Кессельмана «The Grid: Blueprint for a new computing infrastructure» [58].

Идея создания распределенных вычислительных систем подобного типа возникла, прежде всего, в научном сообществе и опиралась на сле дующие наблюдения. К настоящему моменту человечеством накоплены колоссальные вычислительные мощности, причем речь идет об отдель ных рабочих станциях, персональных компьютерах и т.д., каждый из которых далеко не суперкомпьютер, но суммарная вычислительная мощность этих устройств впечатляет. Большинство из них имеет доступ к той или иной сети обмена информацией, значит, теоретически воз можна организация их совместной деятельности, направленной на ре шение какой-либо задачи. И – немаловажный фактор – большинство этих мощностей простаивают! Кому-то это утверждение покажется спорным, но как показали исследования, при работе со стандартными офисными приложениями средняя загрузка процессора составляет 5– 7%.

Идеи грид-системы (включая идеи из областей распределнных вычислений, объектно-ориентированного программирования, использо вания компьютерных кластеров, веб-сервисов и др.) были собраны и объединены Иэном Фостером, Карлом Кессельманом и Стивом Тики.

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

Использование свободного времени процессоров и добровольного компьютинга стало популярным в конце 1990-х годов после возникно вения проектов волонтрских вычислений GIMPS в 1996 году, distributed.net в 1997 году и SETI@home в 1999 году. Эти первые проек ты добровольного компьютинга использовали мощности подсоединн ных к сети компьютеров обычных пользователей для решения исследо вательских задач, требующих больших вычислительных мощностей.

Грид-технология применяется для моделирования и обработки данных в экспериментах на Большом адронном коллайдере (грид ис пользуется и в других задачах с интенсивными вычислениями). На платформе BOINC в настоящее время ведутся активные вычисления бо лее 60 проектов. Например, проект Fusion (юг Франции, разработка ме тода получения электричества с помощью термоядерного синтеза на экспериментальном реакторе ITER) также использует грид (EDGeS@Home). Под названием CLOUD начат проект коммерциализа ции грид-технологий, в рамках которого небольшие компании, институ ты, нуждающиеся в вычислительных ресурсах, но не могут себе позво лить по тем или иным причинам иметь свой суперкомпьютерный центр, могут покупать вычислительное время грида.

6.6.3 Агентные распределенные системы.

Большинство распределенные ВС осуществляют взаимодействие между компонентами за счет передачи данных. Однако существуют за дачи, которые могут эффективно решаться с использованием переноса исполняемого кода программы на узлы распределенной ВС перед (или даже непосредственно во время) ее исполнения. Одним из следствий развития идеи организации распределенных вычислений за счет перено са исполняемого кода стало возрастание интереса к т.наз. программным агентам и технологиям их использования [59].

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

Таненбаум [57] приводит классификацию агентов, в которой выделяют ся следующие основные типы.

Стационарные и мобильные агенты. Мобильные агенты способ ны перемещаться с одного узла ВС на другой.

Кооперативные и конкурирующие. Кооперативный агент – спо собный объединяться с другими агентами для решения общей задачи.

Конкурирующий – способен конкурировать с другими агентами с целью защиты интересов своего владельца (например, торговые агенты на бирже).

Агенты могут применяться при решении следующих задач:

Мобильные вычисления. Клиент подсоединяется к постоянной се ти на короткий промежуток времени с мобильной платформы, отправ ляет агента для выполнения задачи и отсоединяется;

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

Второй вариант – сервер, на который должен переместиться агент, под соединяется к сети, а затем отсоединяется. В этом случае агент должен уметь переместиться на такой временно подсоединяемый сервер и вер нуться в постоянную сеть.

Задачи управления информацией:

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

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

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

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

это эффективнее, чем ис пользовать статического агента, посылающего запросы источ нику данных);

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

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

предполагалось, что современные суперкомпьютеры преодолеют рубеж производительности в 1 PFlops к 2010 году. На самом деле этот рубеж был преодолен в 2006 г., а сейчас, в 2011 г., уже запущена ВС с произ водительностью 8,8 PFlops, а ближайшие несколько недель ожидается запуск суперкомпьютера с производительностью не ниже 10 PFlops.

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

7 История и методология программного обеспечения 7.1 История развития ПО Программное обеспечение, ПО – совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации этих программ [60].

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

По функциональному признаку различают три категории ПО:

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

системное, выполняющее функции управления ресурсами ком пьютера;

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

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

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

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

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

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

Кроме мнемокодов, язык ассемблера позволяет использовать сим волические метки вместо адресов ячеек памяти, которые при ассембли ровании заменяются на автоматически рассчитываемые абсолютные или относительные адреса, а также так называемые директивы (коман ды, не переводящиеся в процессорные инструкции, а выполняемые са мим ассемблером) [62].

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

Но в силу машинной ориентации языка ассемблера человеку слож нее читать и понимать программу на нм по сравнению с языками про граммирования высокого уровня;

программа состоит из слишком «мел ких» элементов – машинных команд, соответственно, усложняются про граммирование и отладка, растт трудомкость, велика вероятность внесения ошибок.

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

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

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

Язык высокого уровня – язык программирования, понятия и струк тура которого удобны для восприятия человеком [60].

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

Развиваются языки высокого уровня (Алгол60, Кобол, Фортран) и трансляторы к ним. Расширяется номенклатура прикладного программ ного обеспечения и круг решаемых задач.

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

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

Операционная система, ОС (англ. operating system, OS) – ком плекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислитель ной системы и прикладными программами, а с другой стороны – пред назначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации наджных вычис лений [63].

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

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

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



Pages:     | 1 |   ...   | 2 | 3 || 5 | 6 |
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

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