Эволюция вычислительных систем кратко

Обновлено: 30.06.2024

Историю развития вычислительной техники условно делят на 5 поколений.

1-е поколение (1945-1954 гг.) — время становления машин с фон-неймановской архитектурой (Джон фон Нейман), основанной на записывании программы и ее данных в память вычислительной машины. В этот период формируется типовой набор структурных элементов, входящих в состав ЭВМ. Типичная ЭВМ должна состоять из следующих узлов: центральный процессор (ЦП), оперативная память (или оперативное запоминающее устройство — ОЗУ) и устройства ввода-вывода (УВВ). ЦП, в свою очередь, должен состоять из арифметико-логического устройства (АЛУ) и управляющего устройства (УУ). Машины этого поколения работали на ламповой элементной базе, из-за чего поглощали огромное количество энергии и были очень ненадежны. С их помощью, в основном, решались научные задачи. Программы для этих машин уже можно было составлять не на машинном языке, а на языке ассемблера.

2-е поколение (1955-1964 гг.). Смену поколений определило появление новой элементной базы: вместо громоздкой лампы в ЭВМ стали применяться миниатюрные транзисторы, линии задержки как элементы оперативной памяти сменила память на магнитных сердечниках. Это в конечном итоге привело к уменьшению габаритов, повышению надежности и производительности ЭВМ. В архитектуре ЭВМ появились индексные регистры и аппаратные средства для выполнения операций с плавающей точкой. Были разработаны команды для вызова подпрограмм. Появились языки высокого уровня — Algol, FORTRAN, COBOL, — создавшие предпосылки для появления переносимого программного обеспечения, не зависящего от типа ЭВМ. С появлением языков высокого уровня возникли компиляторы для них; библиотеки стандартных подпрограмм и другие хорошо знакомые нам сейчас вещи: Важное новшество — это появление процессоров ввода-вывода. Эти специализированные процессоры позволили освободить ЦП от управления вводом-выводом и осуществлять ввод-вывод с помощью специализированного устройства одновременно с процессом вычислений. Для эффективного управления ресурсами машины стали использоваться операционные системы (ОС).

3-е поколение (1965-1970 гг.). Смена поколений вновь была обусловлена обновлением элементной базы: вместо транзисторов в различных узлах ЭВМ стали использоваться интегральные микросхемы различной степени интеграции. Микросхемы позволили разместить десятки элементов на пластине размером в несколько сантимметров. Это, в свою очередь, не только повысило производительность ЭВМ, но и снизило их габариты и стоимость. Увеличение мощности ЭВМ сделало возможным одновременное выполнение нескольких программ на одной ЭВМ. Для этого нужно было научиться координировать между собой одновременно выполняемые действия, для чего были расширены функции операционной системы. Одновременно с активными разработками в области аппаратных и архитектурных решений растет удельный вес разработок в области технологий программирования. В это время активно разрабатываются теоретические основы методов программирования, компиляции, баз данных, операционных систем и т. д. Создаются пакеты прикладных программ для самых различных областей жизнедеятельности человека. Наблюдается тенденция к созданию семейств ЭВМ, то есть машины становятся совместимы снизу вверх на программно-аппаратном уровне. Примерами таких семейств была серия IBM System 360 и наш отечественный аналог — ЕС ЭВМ.

4-е поколение (1970-1984 гг.). Очередная смена элементной базы привела к смене поколений. В 70-е годы активно ведутся работы по созданию больших и сверхбольших интегральных схем (БИС и СБИС), которые позволили разместить на одном кристалле десятки тысяч элементов. Это повлекло дальнейшее существенное снижение размеров и стоимости ЭВМ. В начале 70-х годов фирмой Intel был выпущен микропроцессор (МП) i4004. И если до этого в мире вычислительной техники были только три направления (суперЭВМ, большие Э.ВМ (мэйнфреймы) и мини-ЭВМ), то теперь к ним прибавилось еще одно — микропроцессорное.

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

5-е поколение можно назвать микропроцессорным. В 1976 году фирма Intel закончила разработку 16-разрядного микропроцессора i8086. Он имел достаточно большую разрядность регистров (16 бит) и системной шины адреса (20 бит), за счет чего мог адресовать до 1 Мбайт оперативной памяти. В 1982 году был создан i80286. Этот микропроцессор представлял собой улучшенный вариант i8086. Он поддерживал уже несколько режимов работы: реальный, когда формирование адреса производилось по правилам i8086, и защищенный, который аппаратно реализовывал многозадачность и управление виртуальной памятью, i80286 имел также большую разрядность шины адреса — 24 разряда против, 20 у i8086, и поэтому он мог адресовать до 16 Мбайт оперативной памяти. Первые компьютеры на базе этого микропроцессора появились в 1984 году. В 1985 году фирма Intel представила первый 32-разрядный микропроцессор i80386, аппаратно совместимый снизу вверх со всеми предыдущими микропроцессорами этой фирмы. Он был гораздо мощнее своих предшественников, имел 32-разрядную архитектуру и мог прямо адресовать до 4 Гбайт оперативной памяти. Микропроцессор i386 стал поддерживать новый режим работы — режим виртуального i8086, который обеспечил не только большую эффективность работу программ, разработанных для i8086, но и позволил осуществлять параллельную работу нескольких таких программ.

Мы будем рассматривать историю развития именно вычислительных, а не операционных систем , потому что 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-х стали бурно развиваться сети компьютеров, в том числе персональных, работающих под управлением сетевых или распределенных операционных систем .

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

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

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

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

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

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

• Первый период (1945 - 1955). Ламповые машины. Операционные систем отсутствовали.

• Второй период (1955 - Начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы

• Третий период (Начало 60-х - 1980). Компьютеры на основе интегральных микросхем. Первые многозадачные ОС.

• Четвертый период (1980 – настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы.

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

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

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

Роль операционной системы в организации мультипрограммирования

Интерфейс между прикладной программой и ОС был организован при помощи набора системных вызовов.

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

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

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

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

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

Основные функции классических операционных:

• Планирование заданий и использования процессора.

• Обеспечение программ средствами коммуникации и синхронизации.

• Управление файловой системой.

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

Основные понятия ОС

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

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

Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode). Поэтому системные вызовы иногда еще называют программными прерываниями в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.

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

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

Прерывания

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

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

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

Исключительные ситуации

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

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

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

Файлы

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

Главная задача файловой системы (file system) скрыть особенности ввода-вывода и дать программисту простую абстрактную модель файлов, независимых от устройств. Для чтения, создания, удаления, записи, открытия и закрытия файлов также имеется обширная категория системных вызовов (create, delete, open, close, read, write ).

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

История развития вычислительной техники

Основные этапы

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

Механическая счетная машина

  1. Ручной. Это самый длительный этап. Он начался в глубокой древности, а завершился в середине XVII столетия. За это время были созданы различные ручные средства для подсчета, например, финикийские фигурки, логарифмическая линейка и т. д.
  2. Механический этап развития. Длился более двух столетий (вторая половина XVII — конец XIX века). Это время характеризуется быстрым развитием науки, что привело к появлению механических счетных машин. Они могли выполнять простые арифметические операции.
  3. Электромеханический. Среди всех этапов эволюции вычислительных устройств он оказался самым коротким. Его длительность составила лишь 60 лет. Начало электромеханическому этапу положило создание первого табулятора (1887), а завершился период в 1946 году. Созданные на этом временном отрезке устройства использовали электрический привод и реле. С их помощью скорость и точность вычислений существенно увеличились.
  4. Электронный этап начался в середине XX столетия и продолжается сегодня. Первые компьютеры имели большие размеры и существенно отличались от современных ПК.

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

Простейшие устройства

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

  • в Индии использовалась десятичная;
  • вавилоняне применяли шестидесятеричную систему.

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

Логарифмическая линейка

В XVII веке математик Непер из Шотландии открыл логарифмы, основываясь на работе шотландского ученого, Гантер (Англия) смог создать логарифмическую линейку. Это устройство используется и сегодня, хотя его первоначальная конструкция претерпела серьезные изменения.

Изобретение Гантера позволяла выполнять следующие операции:

  • находить логарифмы;
  • операции деления и умножения;
  • находить тригонометрические функции;
  • возводить в степень.

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

Механические машины

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

Через 2 столетия французский математик Ксавье Тома де Кальмар, основываясь на работах Лейбница, изготовил арифмометр. Эта машина уже могла делить и перемножать числа. Английский ученый Бэббидж через 2 года начал создавать устройство, способное выполнять вычисления с точностью до 20 знаков после запятой. Однако этот проект так и не был завершен.

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

Компьютерная техника

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

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

Дифференциальный анализатор (Ванновар Буш из США)

  • 1930 — дифференциальный анализатор (Ванновар Буш из США);
  • 1936 — создана концепция вычислительной машины (Алан Тьюринг из Англии);
  • 1937 — разработана электромеханическая машина для двоичного сложения (Джордж Стибиц из США);
  • 1938 год — сформулированы принципы работы логического устройства вычислительной машины (Клод Шеннон из США).

Начало эры

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

Машина немецкого инженера — Z4

Однако первым функционирующим компьютером следует считать новую машину немецкого инженера — Z4. Он же разработал и первый язык программирования под названием Планкалкюль. В 1942 году 2 американских исследователя (Джон Атанасов и Клиффорд Берри) создали машину, работающую на вакуумных трубках. Она использовала двоичный код и выполняла ряд логических операций.

При поддержке правительства Англии в 1943 году была построена первая ЭВМ — Колосс. Работы над этим устройством велись в условиях максимальной секретности.

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

Работа над архитектурой

Прообраз архитектуры современного ПК был создан в 1945 году американским ученым фон Нейманом. Он первым предложил записывать программу в форме кода непосредственно в память вычислительного устройства. В те времена в США активно работали над созданием первого компьютера, способного решать различные задачи — ENIAC. Эта машина весила порядка 30 тонн, а для ее размещения требовалось около 170 м² площади.

Компьютер ENIAC

В состав конструкции машины входило 18000 ламп. В течение 1 секунды она выполняла 5000 операций сложения либо 300 умножения. На европейском континенте первый универсальный компьютер был создан в СССР. Команда под руководством Сергея Лебедева в 1950 году сконструировала МЭСМ (малая электронная счетная машина). Для ее работы требовалось порядка 6000 ламп, а быстродействие компьютера составляло 50 операций в секунду. Эта же группа ученых через 2 года создала большую электронную счетную машину. Ее быстродействие составляло 10000 операций в секунду.

Создание полупроводниковых приборов

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

  • занимали мало места;
  • низкое энергопотребление;
  • более продолжительный срок службы.

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

Машина семейства SYSTEM 360

Появление микросхем дало новый толчок к развитию ЭВМ. В 1964 году корпорация IBM представила первую машину семейства SYSTEM 360. В СССР первый компьютер на микросхемах был разработан в 1972 году, а назывался он ЕС. В его основе лежали разработки американской компании IBM. Одновременно с развитием компьютеров начинает активно совершенствоваться и программное обеспечение (софт). В 1964 году был разработан язык Бейсик, предназначенный для начинающих программистов. В 1969 году появился Паскаль, с помощью которого можно было решать различные прикладные задачи.

Персональные компьютеры

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

Одним из первых массовых компьютеров стала машина, созданная компанией Apple. Произошло это в 1976 году. В разработке ПК принимали участие Стив Возняк и Стив Джобс. Его стоимость составляла лишь 500 долларов. В 1977 году вышла вторая модель этого компьютера — Apple II. Роль этих личностей в развитии компьютерной техники сложно переоценить.

Первый ПК от американского концерна

Быстрое распространение недорогих компьютеров привело к значительному падению прибыли компании IBM. Это факт вызвал беспокойство у ее руководства, и в 1979 году на рынке появился первый ПК от американского концерна. В нем был установлен процессор от Интел 8088, ОЗУ в объеме 64 Кбайт и дисковод для дискет. Специально для него компания Микрософт разработала новую операционную систему, в которой все было понятно даже новичку.

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

Поколение Элементная база Быстродействие, операций в секунду ПО Применение Примеры
I (1946−1959) Электронные лампы Не более 20000 Машинные языки Расчетные задачи ЭНИАК и МЭСМ
II (1960−1969) Полупроводниковые приборы От 100 до 500 тысяч Алгоритмические языки Экономические, инженерные и научные задачи БЭСМ-4, IBM 701
III (1970−1979) ИМС (интегральные микросхемы) Около 1 миллиона Операционные системы САПР, научные и технические задачи, АСУ ЕС 1060, IBM 360
IV (с 1980 и до настоящего времени) Микропроцессоры и БИС Минимум десятки миллионов Базы данных (БД) АРМ, работа с графикой и текстами Серверы и ПЭВМ
V (с 1990 до настоящего времени) СБИС Более миллиарда Мощные вычислительные системы, искусственный интеллект Все области Ноутбуки, рабочие станции

Сейчас компьютер можно найти практически в каждом доме, а жизнь современного человека сложно представить без ПК.

Читайте также: