Что характерно для первых программ предназначенных для компьютера
Мы будем рассматривать историю развития именно вычислительных, а не операционных систем , потому что hardware и программное обеспечение эволюционировали совместно, оказывая взаимное влияние друг на друга. Появление новых технических возможностей приводило к прорыву в области создания удобных, эффективных и безопасных программ, а свежие идеи в программной области стимулировали поиски новых технических решений. Именно эти критерии – удобство, эффективность и безопасность – играли роль факторов естественного отбора при эволюции вычислительных систем.
Первый период (1945–1955 гг.). Ламповые машины. Операционных систем нет
Мы начнем исследование развития компьютерных комплексов с появления электронных вычислительных систем (опуская историю механических и электромеханических устройств).
Первые шаги в области разработки электронных вычислительных машин были предприняты в конце Второй мировой войны. В середине 40-х были созданы первые ламповые вычислительные устройства и появился принцип программы, хранящейся в памяти машины (John Von Neumann , июнь 1945 г.). В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не регулярное использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об операционных системах не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. За пультом мог находиться только один пользователь. Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно с помощью панели переключателей.
Вычислительная система выполняла одновременно только одну операцию (ввод-вывод или собственно вычисления). Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. В конце этого периода появляется первое системное программное обеспечение: в 1951–1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat Rochester разрабатывает Ассемблер для IBM-701.
Существенная часть времени уходила на подготовку запуска программы, а сами программы выполнялись строго последовательно. Такой режим работы называется последовательной обработкой данных. В целом первый период характеризуется крайне высокой стоимостью вычислительных систем, их малым количеством и низкой эффективностью использования.
Второй период (1955 г.–начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы
С середины 50-х годов начался следующий период в эволюции вычислительной техники, связанный с появлением новой технической базы – полупроводниковых элементов . Применение транзисторов вместо часто перегоравших электронных ламп привело к повышению надежности компьютеров. Теперь машины могут непрерывно работать достаточно долго, чтобы на них можно было возложить выполнение практически важных задач. Снижается потребление вычислительными машинами электроэнергии, совершенствуются системы охлаждения. Размеры компьютеров уменьшились. Снизилась стоимость эксплуатации и обслуживания вычислительной техники. Началось использование ЭВМ коммерческими фирмами. Одновременно наблюдается бурное развитие алгоритмических языков (LISP, COBOL, ALGOL-60, PL-1 и т.д.). Появляются первые настоящие компиляторы, редакторы связей, библиотеки математических и служебных подпрограмм. Упрощается процесс программирования. Пропадает необходимость взваливать на одних и тех же людей весь процесс разработки и использования компьютеров. Именно в этот период происходит разделение персонала на программистов и операторов, специалистов по эксплуатации и разработчиков вычислительных машин.
Изменяется сам процесс прогона программ. Теперь пользователь приносит программу с входными данными в виде колоды перфокарт и указывает необходимые ресурсы. Такая колода получает название задания. Оператор загружает задание в память машины и запускает его на исполнение. Полученные выходные данные печатаются на принтере, и пользователь получает их обратно через некоторое (довольно продолжительное) время.
Смена запрошенных ресурсов вызывает приостановку выполнения программ, в результате процессор часто простаивает. Для повышения эффективности использования компьютера задания с похожими ресурсами начинают собирать вместе, создавая пакет заданий.
Появляются первые системы пакетной обработки , которые просто автоматизируют запуск одной программы из пакета за другой и тем самым увеличивают коэффициент загрузки процессора . При реализации систем пакетной обработки был разработан формализованный язык управления заданиями , с помощью которого программист сообщал системе и оператору, какую работу он хочет выполнить на вычислительной машине. Системы пакетной обработки стали прообразом современных операционных систем , они были первыми системными программами, предназначенными для управления вычислительным процессом.
Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ОС
Следующий важный период развития вычислительных машин относится к началу 60-х – 1980 г. В это время в технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам . Вычислительная техника становится более надежной и дешевой. Растет сложность и количество задач, решаемых компьютерами. Повышается производительность процессоров .
Повышению эффективности использования процессорного времени мешает низкая скорость работы механических устройств ввода-вывода (быстрый считыватель перфокарт мог обработать 1200 перфокарт в минуту, принтеры печатали до 600 строк в минуту). Вместо непосредственного чтения пакета заданий с перфокарт в память начинают использовать его предварительную запись, сначала на магнитную ленту, а затем и на диск. Когда в процессе выполнения задания требуется ввод данных, они читаются с диска. Точно так же выходная информация сначала копируется в системный буфер и записывается на ленту или диск, а печатается только после завершения задания. Вначале действительные операции ввода-вывода осуществлялись в режиме off-line, то есть с использованием других, более простых, отдельно стоящих компьютеров. В дальнейшем они начинают выполняться на том же компьютере, который производит вычисления, то есть в режиме on-line. Такой прием получает название spooling (сокращение от Simultaneous Peripheral Operation On Line) или подкачки-откачки данных. Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.
Магнитные ленты были устройствами последовательного доступа , то есть информация считывалась с них в том порядке, в каком была записана. Появление магнитного диска, для которого не важен порядок чтения информации, то есть устройства прямого доступа, привело к дальнейшему развитию вычислительных систем. При обработке пакета заданий на магнитной ленте очередность запуска заданий определялась порядком их ввода. При обработке пакета заданий на магнитном диске появилась возможность выбора очередного выполняемого задания. Пакетные системы начинают заниматься планированием заданий: в зависимости от наличия запрошенных ресурсов, срочности вычислений и т.д. на счет выбирается то или иное задание.
Дальнейшее повышение эффективности использования процессора было достигнуто с помощью мультипрограммирования. Идея мультипрограммирования заключается в следующем: пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при однопрограммном режиме, а выполняет другую программу. Когда операция ввода-вывода заканчивается, процессор возвращается к выполнению первой программы. Эта идея напоминает поведение преподавателя и студентов на экзамене. Пока один студент (программа) обдумывает ответ на вопрос (операция ввода-вывода), преподаватель ( процессор ) выслушивает ответ другого студента (вычисления). Естественно, такая ситуация требует наличия в комнате нескольких студентов. Точно так же мультипрограммирование требует наличия в памяти нескольких программ одновременно. При этом каждая программа загружается в свой участок оперативной памяти, называемый разделом, и не должна влиять на выполнение другой программы. (Студенты сидят за отдельными столами и не подсказывают друг другу.)
Появление мультипрограммирования требует настоящей революции в строении вычислительной системы. Особую роль здесь играет аппаратная поддержка (многие аппаратные новшества появились еще на предыдущем этапе эволюции), наиболее существенные особенности которой перечислены ниже.
- Реализация защитных механизмов. Программы не должны иметь самостоятельного доступа к распределению ресурсов, что приводит к появлению привилегированных и непривилегированных команд. Привилегированные команды, например команды ввода-вывода, могут исполняться только операционной системой . Говорят, что она работает в привилегированном режиме. Переход управления от прикладной программы к ОС сопровождается контролируемой сменой режима. Кроме того, это защита памяти, позволяющая изолировать конкурирующие пользовательские программы друг от друга, а ОС – от программ пользователей.
- Наличие прерываний . Внешние прерывания оповещают ОС о том, что произошло асинхронное событие, например завершилась операция ввода-вывода. Внутренние прерывания (сейчас их принято называть исключительными ситуациями ) возникают, когда выполнение программы привело к ситуации, требующей вмешательства ОС , например деление на ноль или попытка нарушения защиты.
- Развитие параллелизма в архитектуре. Прямой доступ к памяти и организация каналов ввода-вывода позволили освободить центральный процессор от рутинных операций.
Не менее важна в организации мультипрограммирования роль операционной системы . Она отвечает за следующие операции.
- Организация интерфейса между прикладной программой и ОС при помощи системных вызовов .
- Организация очереди из заданий в памяти и выделение процессора одному из заданий потребовало планирования использования процессора .
- Переключение с одного задания на другое требует сохранения содержимого регистров и структур данных, необходимых для выполнения задания, иначе говоря, контекста для обеспечения правильного продолжения вычислений.
- Поскольку память является ограниченным ресурсом, нужны стратегии управления памятью, то есть требуется упорядочить процессы размещения, замещения и выборки информации из памяти.
- Организация хранения информации на внешних носителях в виде файлов и обеспечение доступа к конкретному файлу только определенным категориям пользователей.
- Поскольку программам может потребоваться произвести санкционированный обмен данными, необходимо их обеспечить средствами коммуникации.
- Для корректного обмена данными необходимо разрешать конфликтные ситуации, возникающие при работе с различными ресурсами и предусмотреть координацию программами своих действий, т.е. снабдить систему средствами синхронизации.
Мультипрограммные системы обеспечили возможность более эффективного использования системных ресурсов (например, процессора , памяти, периферийных устройств), но они еще долго оставались пакетными . Пользователь не мог непосредственно взаимодействовать с заданием и должен был предусмотреть с помощью управляющих карт все возможные ситуации. Отладка программ по-прежнему занимала много времени и требовала изучения многостраничных распечаток содержимого памяти и регистров или использования отладочной печати.
Появление электронно-лучевых дисплеев и переосмысление возможностей применения клавиатур поставили на очередь решение этой проблемы. Логическим расширением систем мультипрограммирования стали time-sharing системы, или системы разделения времени 1 Реальная эволюция операционных систем происходила не так гладко и планомерно, как это представлено в данном обзоре. Так, например, первая система с разделением времени Joss была реализована еще на ламповой машине Joniac безо всякой аппаратной поддержки. . В них процессор переключается между задачами не только на время операций ввода-вывода, но и просто по прошествии определенного времени. Эти переключения происходят так часто, что пользователи могут взаимодействовать со своими программами во время их выполнения, то есть интерактивно. В результате появляется возможность одновременной работы нескольких пользователей на одной компьютерной системе. У каждого пользователя для этого должна быть хотя бы одна программа в памяти. Чтобы уменьшить ограничения на количество работающих пользователей, была внедрена идея неполного нахождения исполняемой программы в оперативной памяти. Основная часть программы находится на диске, и фрагмент, который необходимо в данный момент выполнять, может быть загружен в оперативную память, а ненужный – выкачан обратно на диск. Это реализуется с помощью механизма виртуальной памяти. Основным достоинством такого механизма является создание иллюзии неограниченной оперативной памяти ЭВМ.
В системах разделения времени пользователь получил возможность эффективно производить отладку программы в интерактивном режиме и записывать информацию на диск, не используя перфокарты, а непосредственно с клавиатуры. Появление on-line-файлов привело к необходимости разработки развитых файловых систем.
Параллельно внутренней эволюции вычислительных систем происходила и внешняя их эволюция. До начала этого периода вычислительные комплексы были, как правило, несовместимы. Каждый имел собственную операционную систему , свою систему команд и т. д. В результате программу, успешно работающую на одном типе машин, необходимо было полностью переписывать и заново отлаживать для выполнения на компьютерах другого типа. В начале третьего периода появилась идея создания семейств программно совместимых машин, работающих под управлением одной и той же операционной системы . Первым семейством программно совместимых компьютеров, построенных на интегральных микросхемах , стала серия машин IBM/360. Разработанное в начале 60-х годов, это семейство значительно превосходило машины второго поколения по критерию цена/производительность. За ним последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала PDP-11.
Сила "одной семьи" была одновременно и ее слабостью. Широкие возможности этой концепции (наличие всех моделей: от мини-компьютеров до гигантских машин; обилие разнообразной периферии; различное окружение; различные пользователи) порождали сложную и громоздкую операционную систему . Миллионы строчек Ассемблера, написанные тысячами программистов, содержали множество ошибок, что вызывало непрерывный поток публикаций о них и попыток исправления. Только в операционной системе OS/360 содержалось более 1000 известных ошибок. Тем не менее идея стандартизации операционных систем была широко внедрена в сознание пользователей и в дальнейшем получила активное развитие.
Четвертый период (с 1980 г. по настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
Следующий период в эволюции вычислительных систем связан с появлением больших интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и снижение стоимости микросхем. Компьютер, не отличающийся по архитектуре от PDP-11, по цене и простоте эксплуатации стал доступен отдельному человеку, а не отделу предприятия или университета. Наступила эра персональных компьютеров. Первоначально персональные компьютеры предназначались для использования одним пользователем в однопрограммном режиме, что повлекло за собой деградацию архитектуры этих ЭВМ и их операционных систем (в частности, пропала необходимость защиты файлов и памяти, планирования заданий и т. п.).
Компьютеры стали использоваться не только специалистами, что потребовало разработки "дружественного" программного обеспечения.
Однако рост сложности и разнообразия задач, решаемых на персональных компьютерах, необходимость повышения надежности их работы привели к возрождению практически всех черт, характерных для архитектуры больших вычислительных систем.
В середине 80-х стали бурно развиваться сети компьютеров, в том числе персональных, работающих под управлением сетевых или распределенных операционных систем .
В сетевых операционных системах пользователи могут получить доступ к ресурсам другого сетевого компьютера, только они должны знать об их наличии и уметь это сделать. Каждая машина в сети работает под управлением своей локальной операционной системы , отличающейся от операционной системы автономного компьютера наличием дополнительных средств (программной поддержкой для сетевых интерфейсных устройств и доступа к удаленным ресурсам), но эти дополнения не меняют структуру операционной системы .
Распределенная система , напротив, внешне выглядит как обычная автономная система. Пользователь не знает и не должен знать, где его файлы хранятся – на локальной или удаленной машине – и где его программы выполняются. Он может вообще не знать, подключен ли его компьютер к сети. Внутреннее строение распределенной операционной системы имеет существенные отличия от автономных систем.
В дальнейшем автономные операционные системы мы будем называть классическими операционными системами .
Просмотрев этапы развития вычислительных систем, мы можем выделить шесть основных функций, которые выполняли классические операционные системы в процессе эволюции:
- Планирование заданий и использования процессора .
- Обеспечение программ средствами коммуникации и синхронизации.
- Управление памятью.
- Управление файловой системой.
- Управление вводом-выводом.
- Обеспечение безопасности
Каждая из приведенных функций обычно реализована в виде подсистемы, являющейся структурным компонентом ОС . В каждой операционной системе эти функции, конечно, реализовывались по-своему, в различном объеме. Они не были изначально придуманы как составные части операционных систем , а появились в процессе развития, по мере того как вычислительные системы становились все более удобными, эффективными и безопасными. Эволюция вычислительных систем, созданных человеком, пошла по такому пути, но никто еще не доказал, что это единственно возможный путь их развития. Операционные системы существуют потому, что на данный момент их существование – это разумный способ использования вычислительных систем. Рассмотрение общих принципов и алгоритмов реализации их функций и составляет содержание большей части нашего курса, в котором будут последовательно описаны перечисленные подсистемы.
Перед тем как мы расскажем, в каком году и как появилась первая компьютерная программа, стоит упомянуть о появлении первого компьютера, ведь программирование является прикладной наукой и используется совместно с вычислительной техникой. В 1833 году Чарлз Бэббидж представил миру свою «Аналитическую машину», которая по совместительству стала первым в мире компьютером. Главная функция изобретения заключалась в умении производить вычисление по указаниям, которые задавались извне. Впрочем, из-за недостатка технических возможностей, в реальности Чарлз так и не имел возможности построить данную машину.
История первой программы
Спустя один год после изобретения английский математик выступил с докладом о своей аналитической машине и, к своему удивлению, получил от юной девушки много вопросов. Бэббидж понял, что девушка отлично понимала устройство его машины; его заинтересовали такие познания, и они начали работать вместе.
Этой девушкой оказалась Ада Августа Лавлейс. Практически сразу же после рождения Ады её отец лорд Байрон покинул свою семью и больше никогда не встречался с ребёнком. Мать Анабелла привила ребёнку интерес к музыке и математике. В сотрудничестве с Бэббиджэм Ада ввела множество удивительных для того времени понятий о хранилище (памяти), рабочей переменной, цикле, «мельнице» (процессоре). Также девушка высказалась об абсолютно удивительном для 19 века заключении – о том, что машина не сможет создать что-либо новое, она будет выполнять заданные человеком команды. По её мнению, потенциал машины не должен был заканчиваться исключительно на вычислениях. Она рассказала о том, что изобретение сможет создавать и музыку.
Язык для создания программ АДА
Удивительное событие произошло в 1978 году в ходе проведения эксперимента на вычислительной машинке БЭСМ-6. На испытаниях, проходивших в Ирландии (Дублин), программисты закодировали программу Ады на Фортране. В процессе отладки выявили по одной опечатке и ошибке. При этом программа Ады Августы Лавлейс нуждалась в минимальном количестве перфокарт, а также способствовала экономии памяти.
Ада Августа Лавлейс умерла в 36-летнем возрасте и о её работах забыли практически на 130 лет. Однако с началом развития компьютеров, в 1980 году, её имя вновь всплыло и стал использоваться язык программирования на основе её заметок. Более того, в Соединённых Штатах Америки был создан язык программирования АДА, который был назван как раз таки в честь самой первой программистки в мире. При этом день рождения Ады (10 декабря) сегодня называют Днём программистов, и отмечается он во всём мире.
Многие из нас задавались вопросом: на чём и каким образом была написана самая первая программа, когда писать было ещё не на чем. И что появилось первее: программа или среда разработки? Спойлер: сначала появилась программа.
Итак, 19 век. С этого времени начинается история программирования. Ада Ла́влейс и Чарльз Бэббидж . С этих имён и начинается история программирования!
Не буду углубляться в биографию, если интересно, можете о ней узнать из видео, скажу лишь, что Чарльз был весьма талантливым математиком. Первый его проект выглядел вот так:
Суть данного изобретения в том, что оно позволяло автоматизировать вычисление различных математических формул, функций, логарифмов посредством перемещения скомбинированных между собой шестерёнок.
Вторым его проектом по счёту, но не по значимости, была Аналитическая машина . Это огромный механизм на паровом двигателе, назначением которого являлось исполнение основных математических операций: сложение, вычитание, деление, умножение. Данное устройство давало возможность работать с большими числами, с большой точностью и большой скоростью (по крайней мере для того времени)
Инструкции по её программированию были написаны Адой Лавлейс. Они-то и являлись по факту первыми программами в мировой истории.
Программирование же в том виде, в котором мы привыкли его видеть сегодня (то есть ввод команд с клавиатуры в среду разработки, затем компиляция и выполнение) появилось только в 20-м веке, когда вычислительные машины научились работать с электричеством. И стали по праву называться Электронными Вычислительными Машинами - ЭВМ. Сначала программирование производилось лишь перепадами напряжения. Наличие напряжения = 1. Отсутствие напряжения = 0. Так и появился двоичный код. После всем двоичным командам присвоили "имена" в виде конкретных слов. Например в двоичном коде команда сложения выглядела как: 000010. А после она обозначалась лишь словом ADD. Так и появился первый язык Ассемблера.
Каждая вычислительная машина программировалась на своём уникальном языке, что было не очень удобно. Дабы привести программирование к единому формату на всех платформах, был изобретён язык Fortran. После чего уже начинается история языков программирования высокого уровня.
Более подробно о первом программировании и первых программистах я рассказываю в своём ролике. Можете его посмотреть или просто послушать, если не хочется читать вышеприведённый текст.
Приятного просмотра :)
Электронные вычислительные машины того времени представляли из себя массивные конструкции весом в несколько тонн. Каждый новый этап развития ЭВМ был связан не только с техническим прогрессом, но и с программным. Взять хотя бы Windows, который пришел на смену "бездушному" DOS.
Именно IBM, годом основания которой считается 1889 год, внесла огромный вклад в развитие компьютерной техники. Ее прародительница, корпорация CTR (Computing Tabulating Recording) включала в себя сразу три компании и выпускала самое различное электрическое оборудование: весы, сырорезки, приборы учета времени. После смены директора в 1914 году компания начала специализироваться на создании табуляционных машин (для обработки информации). Спустя 10 лет CTR поменяло свое название на International Business Machines или IBM.
Еще в 1888 году инженер Герман Холлерит, основатель IBM, создал первую электромеханическую счетную машину - табулятор, который мог считывать и сортировать данные, закодированные на перфокартах (бумажных карточках с отверстиями). Его даже использовали при переписи населения в 1890 году в США.
При этом история компьютеров IBM началась спустя более полувека, в 1941 году, когда был разработан и создан первый программируемый компьютер "Марк 1" весом порядка 4,5 тонн, 17 метров в длину, 2,5 метра – в высоту. Президент IBM вложил в него 500 тысяч долларов. Впервые "Марк 1" был запущен в Гарвардском университете в 1944 году. Чтобы понять, насколько сложна была конструкция машины, достаточно сказать, что общая длина проводов составила 800 км. При этом компьютер осуществлял три операции сложения и вычитания в секунду.
Первое поколение ЭВМ
Первая ЭВМ, основанная на ламповых усилителях, под названием "Эниак" была создана в США в 1946 году. По размерам она была больше, чем "Марк 1": 26 метров в длину, 6 метров в высоту, а ее вес составлял около 30 тонн. При этом по производительности "Эниак" в 1000 раз превышала "МАРК-1", а на ее создание ушло почти 500 тысяч долларов. Но у нее были существенные недостатки: очень мало памяти для хранения данных и долгое время перепрограммирования – от нескольких часов и до нескольких дней.
Кстати, среди создателей "Эниак" был ученый Джон фон Нейман, предложивший архитектуру ЭВМ, заложенную в компьютерах с конца 1940-х до середины 1950-х годов. Именно он осуществил переход к двоичной системе счисления и хранению полученной информации.
В 1951 году появился первый коммерческий компьютер UNIVAC, и уже в 1952 году вышел "IBM 701". Это был первый крупный ламповый научный коммерческий компьютер, причем создали его достаточно быстро – в течение двух лет. Его процессор работал значительно быстрее, чем у UNIVAC - 2200 операций в секунду против 455. В одну секунду процессор "IBM 701" мог выполнять почти 17 тысяч операций сложения и вычитания.
Второе поколение ЭВМ
Второе поколение ЭВМ использовало в своей основе транзисторы, созданные в 1947 году. Это была очередная революция, в результате которой существенно уменьшились размеры и энергопотребление компьютеров, так как сами биполярные транзисторы в разы меньше вакуумных ламп.
В 1959 году появились первые компьютеры IBM на транзисторах. Они были надежны, и ВВС США стали использовать их в системе раннего оповещения ПВО. А в 1960 году IBM разработала мощную систему Stretch или "IBM-7030". Она была и вправду сильна – создатели добились 100-кратного увеличения быстродействия. В течение трех лет он был самым быстрым компьютером в мире. Однако со временем IBM уменьшила его стоимость, а вскоре и вовсе сняла с производства.
Третье поколение ЭВМ
Третье поколение компьютеров связано с использованием интегральных схем (в которых используется от десятков до сотен миллионов транзисторов), впервые изготовленных в 1960 году американцем Робертом Нойсом.
В 1964 году IBM объявила о начале работы над целой линейкой IBM System/360.
System/360 хорошо продавалась даже спустя шесть лет после анонса системы. За 6 лет IBM выпустила более 30 тысяч машин. Однако затраты на разработку System/360 были очень велики - около пяти миллиардов долларов. Таким образом, System/360 заложила фундамент для следующих поколений, первым из которых был System/370.
Четвертое поколение ЭВМ
Четвертое поколение связано с использованием микропроцессоров. Первый такой микропроцессор под названием "Intel-4004" был создан в 1971 году компанией Intel, до сих пор остающейся в лидерах. Спустя 10 лет IBM выпустила первый персональный компьютер, который так и назывался IBM PC. Самая дорогая конфигурация стоила 3000 долларов и предназначалась для бизнеса, а конфигурация за 1500 долларов – для дома.
Процессор Intel 8088 работал на частоте 4,77 МГц (сейчас этот показатель в тысячи раз больше), а объем ОЗУ - 64 кбайта (сейчас – в миллионы раз больше). Для хранения информации использовались 5,25-дюймовые флоппи-дисководы. Жесткий диск нельзя было установить из-за недостаточной мощности блока питания.
Интересно, что разработкой компьютера занимались всего четыре человека. Причем IBM не запатентовала ни операционную систему DOS, ни BIOS, что породило огромное количество клонов. Уже в 1996 году IBM уступило первое место по продажам ПК на ею же основанном рынке.
Несмотря на то, что современные гаджеты сильно отличаются по характеристикам от своего предшественника, все они относятся к тому же поколению ЭВМ.
Основные толчки для развития компьютеров дала наука (появление ламп, а затем транзисторов). В настоящее время распространяется ввод информации с голоса, общения с машиной на человеческом языке (приложение Siri в iPhone) и активная работа над роботами. Основное мнение, что будущее – за квантовыми компьютерами, которые будут использовать в своей основе молекулы и нейрокомпьютерами, использующими центральную нервную систему человека и непосредственно его мозг. Однако для того, чтобы эти технологии появились, необходимо досконально изучить эти системы.
К первому поколению обычно относят машины, созданные на рубеже 50-х годов. В их схемах использовались электронные лампы. Эти компьютеры были огромными, неудобными и слишком дорогими машинами, которые могли приобрести только крупные корпорации и правительства. Лампы потребляли огромное количество электроэнергии и выделяли много тепла.
Электронная
лампа
Компьютер "Эниак".
Первое поколение
Набор команд был небольшой, схема арифметико-логического устройства и устройства управления достаточно проста, программное обеспечение практически отсутствовало. Показатели объема оперативной памяти и быстродействия были низкими. Для ввода-вывода использовались перфоленты, перфокарты, магнитные ленты и печатающие устройства.
Быстродействие порядка 10-20 тысяч операций в секунду.
Но это только техническая сторона. Очень важна и другая - способы использования компьютеров, стиль программирования, особенности математического обеспечения.
Перфокарта
Программы для этих машин писались на языке конкретной машины. Математик, составивший программу, садился за пульт управления машины, вводил и отлаживал программы и производил по ним счет. Процесс отладки был наиболее длительным по времени.
Несмотря на ограниченность возможностей, эти машины позволили выполнить сложнейшие расчёты, необходимые для прогнозирования погоды, решения задач атомной энергетики и др.
Опыт использования машин первого поколения показал, что существует огромный разрыв между временем, затрачиваемым на разработку программ, и временем счета.
ЭВМ "Урал"
Эти проблемы начали преодолевать путем интенсивной разработки средств автоматизации программирования, создания систем обслуживающих программ, упрощающих работу на машине и увеличивающих эффективность её использования. Это, в свою очередь, потребовало значительных изменений в структуре компьютеров, направленных на то, чтобы приблизить её к требованиям, возникшим из опыта эксплуатации компьютеров.
Отечественные машины первого поколения: МЭСМ (малая электронная счётная машина), БЭСМ, Стрела, Урал, М-20.
3.5. Какие компьютеры относятся ко второму поколению?
Транзистор
БЭСМ-6. Второе поколение
Второе поколение компьютерной техники - машины, сконструированные примерно в 1955-65 гг. Характеризуются использованием в них как электронных ламп, так и дискретных транзисторных логических элементов. Их оперативная память была построена на магнитных сердечниках. В это время стал расширяться диапазон применяемого оборудования ввода-вывода, появились высокопроизводительные устройства для работы с магнитными лентами, магнитные барабаны и первые магнитные диски.
Память на магнитных
сердечниках
Быстродействие - до сотен тысяч операций в секунду, ёмкость памяти - до нескольких десятков тысяч слов.
Появились так называемые языки высокого уровня , средства которых допускают описание всей необходимой последовательности вычислительных действий в наглядном, легко воспринимаемом виде.
Программа, написанная на алгоритмическом языке, непонятна компьютеру, воспринимающему только язык своих собственных команд. Поэтому специальные программы, которые называются трансляторами , переводят программу с языка высокого уровня на машинный язык.
Появился широкий набор библиотечных программ для решения разнообразных математических задач. Появились мониторные системы, управляющие режимом трансляции и исполнения программ. Из мониторных систем в дальнейшем выросли современные операционные системы.
Операционная система - важнейшая часть программного обеспечения компьютера, предназначенная для автоматизации планирования и организации процесса обработки программ, ввода-вывода и управления данными, распределения ресурсов, подготовки и отладки программ, других вспомогательных операций обслуживания. |
Таким образом, операционная система является программным расширением устройства управления компьютера.
Для некоторых машин второго поколения уже были созданы операционные системы с ограниченными возможностями.
Машинам второго поколения была свойственна программная несовместимость, которая затрудняла организацию крупных информационных систем. Поэтому в середине 60-х годов наметился переход к созданию компьютеров, программно совместимых и построенных на микроэлектронной технологической базе.
3.6. В чем особенности компьютеров третьего поколения?
Компьютер IBM-360.
Третье поколение
Машины третьего поколения созданы примерно после 60-x годов. Поскольку процесс создания компьютерной техники шел непрерывно, и в нём участвовало множество людей из разных стран, имеющих дело с решением различных проблем, трудно и бесполезно пытаться установить, когда "поколение" начиналось и заканчивалось. Возможно, наиболее важным критерием различия машин второго и третьего поколений является критерий, основанный на понятии архитектуры .
Интегральная схема
Машины третьего поколения - это семейства машин с единой архитектурой, т.е. программно совместимых. В качестве элементной базы в них используются интегральные схемы, которые также называются микросхемами.
Машины третьего поколения имеют развитые операционные системы . Они обладают возможностями мультипрограммирования, т.е. одновременного выполнения нескольких программ. Многие задачи управления памятью, устройствами и ресурсами стала брать на себя операционная система или же непосредственно сама машина.
Примеры машин третьего поколения - семейства IBM-360, IBM-370, ЕС ЭВМ (Единая система ЭВМ), СМ ЭВМ (Семейство малых ЭВМ) и др.
Быстродействие машин внутри семейства изменяется от нескольких десятков тысяч до миллионов операций в секунду. Ёмкость оперативной памяти достигает нескольких сотен тысяч слов.
-
1. Разработчики с помощью компьютера создают электрическую схему новой микросхемы. Для этого они вводят в компьютер перечень свойств, которыми должна обладать микросхема, а компьютер с помощью специальной программы разрабатывает детальную структуру соединений и конструкций всех взаимодействующих элементов микросхемы.
2. Компьютер создаёт схемы расположения элементов на поверхности полупроводникового кристалла кремния. По этим схемам изготавливаются фотошаблоны - стеклянные пластинки со штриховым рисунком. Через фотошаблоны специальными лампами или источниками рентгеновского излучения, а иногда, и электронными пучками, освещают (засвечивают) нанесённый на поверхность кристалла кремния слой фото- или, соответственно, рентгеночувствительного лака.
3. Засвеченные (или, наоборот, незасвеченные) участки лака меняют свои свойства и удаляются специальными растворителями. Этот процесс называется травлением. Вместе с лаком с поверхности кристалла кремния удаляется и слой окисла, и эти места становятся доступными для легирования - внедрения в кристаллическую решётку кремния атомов бора или фосфора. Легирование обычно требует нагрева пластинки в парах нужного элемента до 1100 - 1200 °С.
4. Последовательно меняя шаблоны и повторяя процедуры травления и легирования, создают один за другим слои будущей микросхемы. При этом на одной пластинке кристалла кремния создаётся множество одинаковых микросхем.
5. Каждая микросхема проверяется на работоспособность. Негодные выбраковываются.
6. После завершения всех операций пластинки разрезаются на отдельные кристаллики с микросхемами, к ним присоединяют выводы и устанавливают в корпуса.
3.7. Что характерно для машин четвёртого поколения?
Четвёртое поколение - это теперешнее поколение компьютерной техники, разработанное после 1970 года.
Наиболее важный в концептуальном отношении критерий, по которому эти компьютеры можно отделить от машин третьего поколения, состоит в том, что машины четвёртого поколения проектировались в расчете на эффективное использование современных высокоуровневых языков и упрощение процесса программирования для конечного пользователя.
В аппаратурном отношении для них характерно широкое использование интегральных схем в качестве элементной базы, а также наличие быстродействующих запоминающих устройств с произвольной выборкой ёмкостью в десятки мегабайт.
C точки зрения структуры машины этого поколения представляют собой многопроцессорные и многомашинные комплексы, работающие на общую память и общее поле внешних устройств. Быстродействие составляет до нескольких десятков миллионов операций в секунду, ёмкость оперативной памяти порядка 1 - 64 Мбайт.
Для них характерны:
- применение персональных компьютеров ;
- телекоммуникационная обработка данных; ;
- широкое применение систем управления базами данных ;
- элементы интеллектуального поведения систем обработки данных и устройств.
3.8. Какими должны быть компьютеры пятого поколения?
Разработка последующих поколений компьютеров производится на основе больших интегральных схем повышенной степени интеграции, использования оптоэлектронных принципов (лазеры, голография).
Развитие идет также по пути "интеллектуализации" компьютеров, устранения барьера между человеком и компьютером. Компьютеры будут способны воспринимать информацию с рукописного или печатного текста, с бланков, с человеческого голоса, узнавать пользователя по голосу, осуществлять перевод с одного языка на другой.
В компьютерах пятого поколения произойдёт качественный переход от обработки данных к обработке знаний . Архитектура компьютеров будущего поколения будет содержать два основных блока. Один из них - это традиционный компьютер. Но теперь он лишён связи с пользователем. Эту связь осуществляет блок, называемый термином "интеллектуальный интерфейс". Его задача - понять текст, написанный на естественном языке и содержащий условие задачи, и перевести его в работающую программу для компьютера.
Будет также решаться проблема децентрализации вычислений с помощью компьютерных сетей, как больших, находящихся на значительном расстоянии друг от друга, так и миниатюрных компьютеров, размещённых на одном кристалле полупроводника.
Читайте также: