Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Нулевое поколение (1492-1945)

Поиск

 

Для полноты картины упомянем два события, произошедшие до нашей эры: пер­вые счеты — абак, изобретенные в древнем Вавилоне за 3000 лет до н. э., и их более «современный» вариант с косточками на проволоке, появившийся в Китае при­мерно за 500 лет также до н. э.

«Механическая» эра (нулевое поколение) в эволюции ВТ связана с механичес­кими, а позже — электромеханическими вычислительными устройствами. Основ­ным элементом механических устройств было зубчатое колесо. Начиная с XX века роль базового элемента переходит к электромеханическому реле. Не умаляя зна­чения многих идей «механической» эры, необходимо отметить, что ни одно из со­зданных устройств нельзя с полным основанием назвать вычислительной машиной в современном ее понимании. Чтобы подчеркнуть это, вместо термина «вычисли­тельная машина» будем использовать такие слова, как «вычислитель», «калькуля­тор» и т. п.

Хронология основных событий «механической» эры выглядит следующим об­разом.

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

1623 год. Вильгельм Шиккард (Wilhelm Schickard, 1592-1635), профессор уни­верситета Тюбингена, разрабатывает устройство на основе зубчатых колес («счи­тающие часы») для сложения и вычитания шестиразрядных десятичных чисел. Было ли устройство реализовано при жизни изобретателя, достоверно неизвест­но, но в 1960 году оно было воссоздано и проявило себя вполне работоспособным.

1642 год. Блез Паскаль (Blaise Pascal, 1623-1663) представляет «Паскалин» — первое реально осуществленное и получившее известность механическое цифро­вое вычислительное устройство. Прототип устройства суммировал и вычитал пя­тиразрядные десятичные числа. Паскаль изготовил более десяти таких вычисли­телей, причем последние модели оперировали числами длиной в восемь цифр.

1673 год. Готфрид Вильгельм Лейбниц (Gottfried Wilhelm Leibniz, 1646-1716) создает «пошаговый вычислитель» — десятичное устройство для выполнения всех четырех арифметических операций над 12-разрядными десятичными числами. Результат умножения представлялся 16 цифрами. Помимо зубчатых колес в уст­ройстве использовался новый элемент — ступенчатый валик.

1786 год. Немецкий военный инженер Иоганн Мюллер (Johann Mueller, 1746-1830) выдвигает идею «разностной машины» — специализированного калькулятора для табулирования логарифмов, вычисляемых разностным методом. Кальку­лятор, построенный на ступенчатых валиках Лейбница, получился достаточно не­большим (13 см в высоту и 30 см в диаметре), но при этом мог выполнять все четыре арифметических действия над 14-разрядными числами.

1801 год. Жозеф Мария Жаккард (Joseph-Marie Jacquard, 1752-1834) строит ткацкий станок с программным управлением, программа работы которого задается с помощью комплекта перфокарт.

1832 год. Английский математик Чарльз Бэббидж (Charles Babbage, 1792-1871) создает сегмент разностной машины, оперирующий шестиразрядными числами и разностями второго порядка. Разностная машина Бэббиджа по идее аналогична калькулятору Мюллера.

1834 год. Пер Георг Шутц (Per George Scheutz, 1785-1873) из Стокгольма, ис­пользуя краткое описание проекта Бэббиджа, создает из дерева небольшую разно­стную машину.

1836 год. Бэббидж разрабатывает проект «аналитической машины». Проект предусматривает три считывателя с перфокарт для ввода программ и данных, па­мять (по Бэббиджу – «склад») на пятьдесят 40-разрядных чисел, два аккумулятора для хранения промежуточных результатов. В программировании машины предус­мотрена концепция условного перехода. В проект заложен также и прообраз мик­ропрограммирования – содержание инструкций предполагалось задавать путем по­зиционирования металлических штырей в цилиндре с отверстиями. По оценкам автора, суммирование должно было занимать 3 с, а умножение и деление – 2 - 4 мин.

 

1843 год. Георг Шутц совместно с сыном Эдвардом (Edvard Scheutz, 1821-1881) строят разностную машину с принтером для работы с разностями третьего порядка.

1871 год. Бэббидж создает прототип одного из устройств своей аналитической машины — «мельницу» (так он окрестил то, что сейчас принято называть цент­ральным процессором), а также принтер.

 

1885 год. Дорр Фельт (Dorr E. Felt, 1862-1930) из Чикаго строит свой «комп­тометр» — первый калькулятор, где числа вводятся нажатием клавиш.

1890 год. Результаты переписи населения в США обрабатываются с помощью перфокарточного табулятора, созданного Германом Холлеритом (Herman Hollerith, 1860-1929) из Массачусетсского технологического института.

1892 год. Вильям Барроуз (William S. Burroughs, 1857-1898) предлагает уст­ройство, схожее с калькулятором Фельта, но более надежное, и от этого события берет старт индустрия офисных калькуляторов.

1937 год. Джорж Стибитц (George Stibitz, 1904-1995) из Bell Telephone Labo­ratories демонстрирует первый однобитовый двоичный вычислитель на базе элек­тромеханических реле.

1937 год. Алан Тьюринг (Alan M. Turing, 1912-1954) из Кембриджского уни­верситета публикует статью, в которой излагает концепцию теоретической упро­щенной вычислительной машины, в дальнейшем получившей название машины Тьюринга.

1938 год. Клод Шеннон (Claude E. Shannon, 1916-2001) публикует статью о реа­лизации символической логики на базе реле.

 

1938 год. Немецкий инженер Конрад Цузе (Konrad Zuse, 1910-1995) строит механический программируемый вычислитель Z1 с памятью на 1000 бит. В послед­нее время Z1 все чаще называют первым в мире компьютером.

1939 год. Джордж Стибитц и Сэмюэль Вильяме (Samuel Williams, 1911-1977) представили Model I — калькулятор на базе релейной логики, управляемый с по­мощью модифицированного телетайпа, что позволило подключаться к калькуля­тору по телефонной линии. Более поздние модификации допускали также опре­деленную степень программирования.

1940 год. Следующая работа Цузе — электромеханическая машина Z2, основу которой составляла релейная логика, хотя память, как и в Z1, была механической.

1941 год. Цузе создает электромеханический программируемый вычислитель Z3. Вычислитель содержит 2600 электромеханических реле. Z3 — это первая по­пытка реализации принципа программного управления, хотя и не в полном объеме (в общепринятом понимании этот принцип еще не был сформулирован). В част­ности, не предусматривалась возможность условного перехода. Программа храни­лась на перфоленте. Емкость памяти составляла 64 22-битовых слова. Операция умножения занимала 3-5 с.

1943 год. Группа ученых Гарвардского университета во главе с Говардом Айке-ном (Howard Aiken, 1900-1973) разрабатывает вычислитель ASCC Mark I (Automa­tic Sequence-Controlled Calculator Mark I) — первый программно управляемый вычислитель, получивший широкую известность. Длина устройства составила 18м, а весило оно 5 т. Машина состояла из множества вычислителей, обрабатывающих свои части общей задачи под управлением единого устройства управления. Ко­манды считывались с бумажной перфоленты и выполнялись в порядке считыва­ния. Данные считывались с перфокарт. Вычислитель обрабатывал 23-разрядные числа, при этом сложение занимало 0,3 с, умножение — 4 с, а деление — 10 с.

1945 год. Цузе завершает Z4 — улучшенную версию вычислителя Z3. По архи­тектуре у Z4 очень много общих черт с современными ВМ: память и процессор представлены отдельными устройствами, процессор может обрабатывать числа с плавающей запятой и, в дополнение к четырем основным арифметическим опера­циям, способен извлекать квадратный корень. Программа хранится на перфоленте и считывается последовательно.

 

Не умаляя важности каждого из перечисленных фактов, в качестве важнейшего момента «механической» эпохи все-таки выделим аналитическую машину Чарльза Бэббиджа и связанные с ней идеи.

 

Первое поколение(1937-1953)

 

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

Первой электронной вычислительной машиной чаще всего называют специа­лизированный калькулятор ABC (Atanasoff-Berry Computer). Разработан он был в период с 1939 по 1942 год профессором Джоном Атанасовым (John V. Atanasoff, 1903-1995) совместно с аспирантом Клиффордом Берри (Clifford Berry, 1918-1963) и предназначался для решения системы линейных уравнений (до 29 уравне­ний с 29 переменными). ABC обладал памятью на 50 слов длиной 50 бит, а запо­минающими элементами служили конденсаторы с цепями регенерации. В качестве вторичной памяти использовались перфокарты, где отверстия не перфорирова­лись, а прожигались. ABC стал считаться первой электронной ВМ, после того как судебным решением были аннулированы патенты создателей другого электрон­ного калькулятора — ENIАС (Electronic Numerical Integrator and Computer — электронный цифровой интегра­тор и вычислитель). Необходимо все же отметить, что ни ABC, ни ENIАС не являются вычислительным машинами в современном понимании этого терми­на и их правильней классифицировать как калькуляторы.

Вторым претендентом на первенство считается вычислитель Colossus, постро­енный в 1943 году в Англии в местечке Bletchley Park близ Кембриджа. Изобрета­телем машины был профессор Макс Ньюмен (Max Newman, 1987-1984), а изгото­вил его Томми Флауэрс (Tommy Flowers, 1905-1998). Colossus был создан для расшифровки кодов немецкой шифровальной машины «Лоренц Шлюссель-цузат-40». В состав команды разработчиков входил также Алан Тьюринг. Машина была выполнена в виде восьми стоек высотой 2,3 м, а общая длина ее составляла 5,5 м. В логических схемах машины и в системе оптического считывания информации использовалось 2400 электронных ламп, главным образом тиратронов. Информа­ция считывалась с пяти вращающихся длинных бумажных колец со скоростью 5000 символов/с.

Наконец, третий кандидат на роль первой электронной ВМ — уже упоминав­шийся программируемый электронный калькулятор общего назначения ENIAC. Идея калькулятора, выдвинутая в 1942 году Джоном Мочли (John J. Mauchly, 1907-1980) из университета Пенсильвании, была реализована им совместно с Преспером Эккертом (J. Presper Eckert, 1919-1995) в 1946 году. С самого начала ENIAC активно использовался в программе разработки водород­ной бомбы. Машина эксплуатировалась до 1955 года и применялась для генериро­вания случайных чисел, предсказания погоды и проектирования аэродинамичес­ких труб. ENIAC весил 30 тонн, содержал 18 000 радиоламп, имел размеры 2,5 х 30 м и обеспечивал выполнение 5000 сложений и 360 умножений в секунду. Использо­валась десятичная система счисления. Программа задавалась схемой коммутации триггеров на 40 наборных полях. Когда все лампы работали, инженерный персонал мог настроить ENIAC на новую задачу, вручную изменив подключение 6000 проводов. При пробной эксплуатации выяснилось, что надежность машины чрезвы­чайно низка – поиск неисправностей занимал от нескольких часов до нескольких суток. По своей структуре ENIAC напоминал механические вычислительные ма­шины. 10 триггеров соединялись в кольцо, образуя десятичный счетчик, который исполнял роль счетного колеса механической машины. Десять таких колец плюс два триггера для представления знака числа представляли запоминающий регистр. Всего в ENIAC было 20 таких регистров. Система переноса десятков в накопите­лях была аналогична предварительному переносу в машине Бэббиджа.

При всей важности каждой из трех рассмотренных разработок основное собы­тие, произошедшее в этот период, связано с именем Джона фон Неймана. Амери­канский математик Джон фон Нейман (John von Neumann, 1903-1957) принял участие в проекте ENIAC в качестве консультанта. Еще до завершения ENIAC Эккерт, Мочли и фон Нейман приступили к новому проекту — EDVAC (Electronic Discrete Variable Automatic Computer), главной особенностью которого стала идея хранимой в памяти программы.

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

Несмотря на свою примитивность, машины первого поколения оказались весьма полезными для инженерных целей и в прикладных науках. Так, Атанасофф под­считал, что решение системы из восьми уравнений с восемью переменными с по­мощью популярного тогда электромеханического калькулятора Маршана заняло бы восемь часов. В случае же 29 уравнений с 29 переменными, с которыми кальку­лятор ABC справлялся менее чем за час, устройство с калькулятором Маршана затратило бы 381 час. С первой задачей в рамках проекта водородной бомбы ENIAC справился за 20с, в противовес 40 часам, которые понадобились бы при использо­вании механических калькуляторов.

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

В 1952 году Эккерт и Мочли создали первую коммерчески успешную машину UNIVAC (UNIVersal Automatic Computer). Именно с помощью этой ВМ было предсказано, что Эйзенхауэр в ре­зультате президентских выборов победит Стивенсона с разрывом в 438 голосов (фактический разрыв составил 442 голоса).

Также в 1952 году в опытную эксплуатацию была запущена вычислительная машина М-1 (И. С. Брук, Н. Я. Матюхин, А. Б. Залкинд). М-1 содержала 730 элек­тронных ламп, оперативную память емкостью 256 25-разрядных слов, рулонный телетайп и обладала производительностью 15-20 операций/с. Впервые была при­менена двухадресная система команд. Чуть позже группой выпускников МЭИ под руководством И. С. Брука создана машина М-2 с емкостью оперативной памяти 512 34-разрядных слов и быстродействием 2000 операций/с.

В апреле 1953 года в эксплуатацию поступила самая быстродействующая в Ев­ропе ВМ БЭСМ. Построена на электронных лампах (5000 ламп). Опытная эксплуатация началась с 1952 года. Быстродействие БЭСМ составило 8—10 тыс. оп./с. Внешняя память была реализована на магнитных барабанах (2 барабана по 512 слов) и магнитных лентах (4 по 30 000 слов). Имела параллельное 39-разрядное АЛУ с плавающей запятой, выполнявшее 20 операций. Была создана только одна машина этого типа. Главный конструктор — Сергей Алексеевич Лебедев. В 1953 году на БЭСМ была опробована оперативная память на ртутных трубках (1024 слова), в начале 1955 года — на потенциалоскопах (1024 слова), в 1957 году — на ферритных сердечниках (2047 слов).

На 1953 год (октябрь — международная конференция в Дармштадте) эта машина оказалась самой производительной в Европе.

Примерно в то же время выпущена ламповая ВМ «Стрела». Разработана в СКБ-245 (с 1986 г. это — НИИ «Аргон»), г. Москва. Главный конструктор — Юрий Яковлевич Базилевский. В числе помощников был Борис Рамеев, генеральный конструктор ЭВМ серии Урал. Разработка завершена в 1953 году. «Стрела» выпускалась серийно на Московском заводе счетно-аналитических машин (САМ), с 1953 по 1956 гг. Всего было выпущено семь машин, которые были установлены в вычислительном центре Академии наук СССР, в МГУ, в вычислительных центрах нескольких министерств. Быстродействие машины составило 2000 оп/с. Элементарная база — 6200 электровакуумных ламп, 60 000 полупроводниковых диодов. Оперативная память на электронно-лучевых трубках, 2048 слов. Длина слова — 43 двоичных разряда (из них — 35 бит на мантиссу и 6 на экспоненту). Постоянное ЗУ на полупроводниковых диодах. Внешнее ЗУ — два накопителя на магнитной ленте. Ввод данных осуществлялся с перфокарт и с магнитной ленты. Вывод данных — на магнитную ленту, на перфокарты и на широкоформатный принтер. Последний вариант «Стрелы» использовал память на магнитном барабане (4096 слов), вращающемся со скоростью 6000 об/мин.

 

Второе поколение (1954-1962)

 

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

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

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

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

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

Третье значимое нововведение в архитектуре ВМ – появление в составе вы­числительной машины процессоров ввода/вывода, позволяющих освободить цен­тральный процессор от рутинных операций по управлению вводом/выводом и обеспечивающих более высокую пропускную способность тракта «память — уст­ройства ввода/вывода» (УВВ).

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

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

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

Наконец, нельзя не отметить значительные события в сфере программного обес­печения, а именно создание языков программирования высокого уровня: Фортра­на (1956), Алгола (1958) и Кобола (1959).

Третье поколение (1963-1972)

 

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

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

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

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

В сфере программного обеспечения необходимо отметить создание в 1970 году Кеном Томпсоном (Kenneth Thompson) из Bell Labs языка В, прямого предшествен­ника популярного языка программирования С, и появление ранней версии опера­ционной системы UNIX.



Поделиться:


Последнее изменение этой страницы: 2016-09-18; просмотров: 1103; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.147.12 (0.012 с.)