Мы будем рассматривать историю развития именно вычислительных, а не операционных систем, потому что hardware и программное обеспечение эволюционировали совместно, оказывая взаимное влияние друг на друга. Появление новых технических возможностей приводило к прорыву в области создания удобных, эффективных и безопасных программ, а свежие идеи в программной области стимулировали поиски новых технических решений. Именно эти критерии — удобство, эффективность и безопасность — играли роль факторов естественного отбора при эволюции вычислительных систем.
Первый период (1945-1955 гг.). Ламповые машины.
Операционных систем нет
Мы начнем исследование развития компьютерных комплексов с появления электронных вычислительных систем (опуская историю механических и электромеханических устройств).
Первые шаги в области разработки электронных вычислительных машин были предприняты в конце Второй Мировой войны. В середине 1940-х годов были созданы первые ламповые вычислительные устройства и появился принцип программы, хранящейся в памяти машины (John Von Neumann, июнь 1945 г.). В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не регулярное использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об операционных системах не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. За пультом мог находиться только один пользователь. Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно — с помощью панели переключателей.
Вычислительная система выполняла одновременно только одну операцию (ввод-вывод или собственно вычисления). Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. В конце этого периода появляется первое системное программное обеспечение: в 1951-1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat Rochester разрабатывает Ассемблер для 1ВМ-701.
Существенная часть времени уходила на подготовку запуска программы, а сами программы выполнялись строго последовательно. Такой режим работы называется последовательной обработкой данных. В целом первый период характеризуется крайне высокой стоимостью вычислительных систем, их малым количеством и низкой эффективностью использования.
Второй период (1955 г.-начало 1960-х гг.). Компьютеры на основе транзисторов. Пакетные операционные системы
С середины 1950-х годов начался следующий период в эволюции вычислительной техники, связанный с появлением новой технической базы — полупроводниковых элементов. Применение транзисторов вместо часто перегоравших электронных ламп привело к повышению надежности компьютеров. Теперь машины могли непрерывно работать достаточно долго, чтобы на них можно было возложить выполнение практически важных задач. Снизилось потребление вычислительными машинами электроэнергии, усовершенствовались системы охлаждения. Размеры компьютеров уменьшились. Снизилась стоимость эксплуатации и обслуживания вычислительной техники. Началось использование ЭВМ коммерческими фирмами. Одновременно наблюдается бурное развитие алгоритмических языков (LISP, COBOL, ALGOL-6O, PL-1 и т.д.). Появляются первые настоящие компиляторы, редакторы связей, библиотеки математических и служебных подпрограмм. Упрощается процесс программирования. Пропадает необходимость взваливать на одних и тех же людей весь процесс разработки и использования компьютеров. Именно в этот период происходит разделение персонала на программистов и операторов, разработчиков вычислительных машин и специалистов по эксплуатации.
Изменяется сам процесс прогона программ. Теперь пользователь приносит программу с входными данными в виде колоды перфокарт и указывает необходимые ресурсы. Такая колода получает название задания. Оператор загружает задание в память машины и запускает его на исполнение. Полученные выходные данные печатаются на принтере, и пользователь получает их обратно через некоторое (довольно продолжительное) время.
Смена запрошенных ресурсов вызывает приостановку выполнения программ, в результате процессор часто простаивает. Для повышения эффективности использования компьютера задания с похожими ресурсами начинают собирать вместе, создавая пакет заданий.
Появляются первые системы пакетной обработки, которые просто автоматизируют запуск одной программы из пакета задругой и тем самым увеличивают коэффициент загрузки процессора. При реализации систем пакетной обработки был разработан формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какую работу он хочет выполнить на вычислительной машине. Системы пакетной обработки стали прообразом современных операционных систем, они были первыми системными программами, предназначенными для управления вычислительным процессом.
Третий период(начало 1960-х — 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ОС
Следующий важный период развития вычислительных машин относится к началу 1960-х — 1980 г. В это время в технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам. Вычислительная техника становится более надежной и дешевой. Растет сложность и количество задач, решаемых компьютерами. Повышается производительность процессоров.
Повышению эффективности использования процессорного времени мешает низкая скорость работы механических устройств ввода-вывода (быстрый считыватель перфокарт мог обработать 1200 перфокарт в минуту, принтеры печатали до 600 строк в минуту). Вместо непосредственного чтения пакета заданий с перфокарт в память, начинают использовать его предварительную запись, сначала на магнитную ленту, а затем и на диск. Когда в процессе выполнения задания требуется ввод данных, они читаются с диска. Точно так же выходная информация сначала копируется в системный буфер и записывается на ленту или диск, а печатается только после завершения задания. Вначале действительные операции ввода-вывода осуществлялись в режиме off-line, то есть с использованием других, более простых, отдельно стоящих компьютеров. В дальнейшем они начинают выполняться на том же компьютере, который производит вычисления, то есть в режиме on-line. Такой прием получает название spooling (сокращение от Simultaneous Peripheral Operation On Line) или подкачки-откачки данных. Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.
Магнитные ленты были устройствами последовательного доступа, то есть информация считывалась с них в том порядке, в каком была записана. Появление магнитного диска, для которого не важен порядок чтения информации, то есть устройства прямого доступа, привело к дальнейшему развитию вычислительных систем. При обработке пакета заданий на магнитной ленте очередность запуска заданий определялась порядком их ввода. При обработке пакета заданий на магнитном диске появилась возможность выбора очередного выполняемого задания. Пакетные системы начинают заниматься планированием заданий: в зависимости от наличия запрошенных ресурсов, срочности вычислений и т. д. на счет выбирается то или иное задание.
Дальнейшее повышение эффективности использования процессора было достигнуто с помощью мультипрограммирования. Идея мультипрограммирования заключается в следующем: пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при однопрограммном режиме, а выполняет другую программу. Когда операция ввода-вывода заканчивается, процессор возвращается к выполнению первой программы. Эта идея напоминает поведение преподавателя и студентов на экзамене. Пока один студент (программа) обдумывает ответ на вопрос (операция ввода-вывода), преподаватель (процессор) выслушивает ответ другого студента (вычисления). Естественно, такая ситуация требует наличия в комнате нескольких студентов. Точно так же мультипрограммирование требует наличия в памяти нескольких программ одновременно. При этом каждая программа загружается в свой участок оперативной памяти, называемый разделом, и не должна влиять на выполнение другой программы. (Студенты сидят за отдельными столами и не подсказывают друг другу.)
Появление мультипрограммирования требует настоящей революции в строении вычислительной системы. Особую роль здесь играет аппаратная поддержка (многие аппаратные новшества появились еще на предыдущем этапе эволюции), наиболее существенные особенности, которой перечислены ниже.
Реализация защитных механизмов. Программы не должны иметь самостоятельного доступа к распределению ресурсов, что приводит к появлению привилегированных и непривилегированных команд. Привилегированные команды, например команды ввода-вывода, могут исполняться только операционной системой. Говорят, что она работает в привилегированном режиме. Переход управления от прикладной программы к ОС сопровождается контролируемой сменой режима. Кроме того, это защита памяти, позволяющая изолировать конкурирующие пользовательские программы друг от друга, а ОС — от программ пользователей.
Наличие прерываний. Внешние прерывания оповещают ОС о том, что произошло асинхронное событие, например, завершилась операция ввода-вывода. Внутренние прерывания (сейчас их принято называть исключительными ситуациями) возникают, когда выполнение программы привело к ситуации, требующей вмешательства ОС, например деление на ноль или попытка нарушения защиты.
Развитие параллелизма в архитектуре. Прямой доступ к памяти и организация каналов ввода-вывода позволили освободить центральный процессор от рутинных операций.
Не менее важна в организации мультипрограммирования роль операционной системы. Она отвечает за следующие операции:
Организация интерфейса между прикладной программой и ОС при помощисистемных вызовов.
Организация очереди из заданий в памяти и выделение процессора одному из заданий требуетпланирования использования процессора.
Переключение с одного задания на другое требует сохранения содержимого регистров и структур данных, необходимых для выполнения задания, иначе говоря, контекста для обеспечения правильного продолжения вычислений.
Поскольку память является ограниченным ресурсом, нужны стратегии управления памятью, то есть требуется упорядочить процессы размещения, замещения и выборки информации из памяти.
Организация хранения информации на внешних носителях в виде файлов и обеспечение доступа к конкретному файлу только определенным категориям пользователей.
Поскольку программам может потребоваться произвести санкционированный обмен данными, необходимо их обеспечить средствами коммуникации.
Для корректного обмена данными необходимо разрешать конфликтные ситуации, возникающие при работе с различными ресурсами, и предусмотреть координацию программами своих действий, т. е. снабдить систему средствами синхронизации. Мультипрограммные системы обеспечили возможность более эффективного использования системных ресурсов (например, процессора, памяти, периферийных устройств), но они еще долго оставались пакетными. Пользователь не мог непосредственно взаимодействовать с заданием и должен был предусмотреть с помощью управляющих карт все возможные ситуации. Отладка программ по-прежнему занимала много времени и требовала изучения многостраничных распечаток содержимого памяти и регистров или использования отладочной печати.
Появление электронно-лучевых дисплеев и переосмысление возможностей применения клавиатур поставили на очередь решение этой проблемы. Логическим расширением систем мультипрограммирования стали time-sharing системы, или системы разделения времени. В них процессор переключается между задачами не только на время операций ввода-вывода, но и просто по прошествии определенного времени. Эти переключения происходят так часто, что пользователи могут взаимодействовать со своими программами во время их выполнения, то есть интерактивно. В результате появляется возможность одновременной работы нескольких пользователей на одной компьютерной системе. У каждого пользователя для этого должна быть хотя бы одна программа в памяти. Чтобы уменьшить ограничения на количество работающих пользователей, была внедрена идея неполного нахождения исполняемой программы в оперативной памяти. Основная часть программы находится на диске и фрагмент, который необходимо в данный момент выполнять, может быть загружен в оперативную память, а ненужный — выкачан обратно на диск. Это реализуется с помощью механизма виртуальной памяти.
Основным достоинством такого механизма является создание иллюзии неограниченной оперативной памяти ЭВМ.
В системах разделения времени пользователь получил возможность эффективно производить отладку программы в интерактивном режиме и записывать информацию на диск, не используя перфокарты, а непосредственно с клавиатуры. Появление файлов привело к необходимости разработки развитых файловых систем.
Параллельно внутренней эволюции вычислительных систем происходила и внешняя их эволюция. До начала этого периода вычислительные комплексы были, как правило, несовместимы. Каждый имел собственную операционную систему, свою систему команд и т. д. В результате программу, успешно работающую на одном типе машин, необходимо было полностью переписывать и заново отлаживать для выполнения на компьютерах другого типа. В начале третьего периода появилась идея создания семейств программно-совместимых машин, работающих под управлением одной и той же операционной системы. Первым семейством программно совместимых компьютеров, построенных на интегральных микросхемах, стала серия машин IBM/360. Разработанное в начале 1960-х годов, это семейство значительно превосходило машины второго поколения по критерию цена/производительность. За ним последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала PDP-11.
Сила «одной семьи» была одновременно и ее слабостью. Широкие возможности этой концепции (наличие всех моделей: от мини-компьютеров до гигантских машин; обилие разнообразной периферии; различное окружение; различные пользователи) порождали сложную и громоздкую операционную систему. Миллионы строчек Ассемблера, написанные тысячами программистов, содержали множество ошибок, что вызывало непрерывный поток публикаций о них и попыток исправления. Только в операционной системе OS/360 содержалось более 1ООО известных ошибок. Тем не менее, идея стандартизации операционных систем была широко внедрена в сознание пользователей и в дальнейшем получила активное развитие.
Четвертый период (с 1980 г. по настоящее время) Персональные компьютеры. Классические, сетевые и распределенные системы
Следующий период в эволюции вычислительных систем связан с появлением больших интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и снижение стоимости микросхем. Компьютер, не отличающийся по архитектуре от PDP-11, по цене и простоте эксплуатации стал доступен отдельному человеку, а не только отделу предприятия или университета. Наступила эра персональных компьютеров. Первоначально персональные компьютеры предназначались для использования одним пользователем в однопрограммном режиме, что повлекло за собой деградацию архитектуры этих ЭВМ и их операционных систем (в частности, пропала необходимость защиты файлов и памяти, планирования заданий и т. п.).
Компьютеры стали использоваться не только специалистами, что потребовало разработки «дружественного» программного обеспечения.
Однако рост сложности и разнообразия задач, решаемых на персональных компьютерах, необходимость повышения надежности их работы привели к возрождению практически всех черт, характерных для архитектуры больших вычислительных систем.
В середине 1980-х годов стали бурно развиваться сети компьютеров, в том числе персональных, работающих под управлением сетевых или распределенных операционных систем.
В сетевых операционных системах пользователи могут получить доступ к ресурсам другого сетевого компьютера, только они должны знать об их наличии и уметь это сделать. Каждая машина в сети работает под управлением своей локальной операционной системы, отличающейся от операционной системы автономного компьютера наличием дополнительных средств (программной поддержкой для сетевых интерфейсных устройств и Доступа к удаленным ресурсам), но эти дополнения не меняют структуру операционной системы.
Распределенная система, напротив, внешне выглядит как обычная автономная система. Пользователь не знает и не должен знать, где хранятся его файлы — на локальной или удаленной машине — и где его программы выполняются. Он может вообще не знать, подключен ли его компьютер к сети. Внутреннее строение распределенной операционной системы имеет существенные отличия от автономных систем.
В дальнейшем автономные операционные системы мы будем называть классическими операционными системами.
Просмотрев этапы развития вычислительных систем, мы можем выделить шесть основных функций, которые выполняли классические операционные системы в процессе эволюции:
планирование заданий и использования процессора;
обеспечение программ средствами коммуникации и синхронизации;
управление памятью;
управление файловой системой;
управление вводом-выводом;
обеспечение безопасности.
Каждая из приведенных функций обычно реализована в виде подсистемы, являющейся структурным компонентом ОС. В каждой операционной системе эти функции, конечно, реализовывались по-своему, в различном объеме. Они не были изначально придуманы как составные части операционных систем, а появились в процессе развития, по мере того как вычислительные системы становились все более удобными, эффективными и безопасными. Эволюция вычислительных систем, созданных человеком, пошла по такому пути, но никто еще не доказал, что это единственно возможный путь их развития. Операционные системы существуют потому, что на данный момент их существование — это разумный способ использования вычислительных систем. Рассмотрение общих принципов и алгоритмов реализации их функций и составляет содержание большей части данного учебного пособия.
Основные понятия, концепции ОС
В процессе эволюции возникло несколько важных концепций, которые стали неотъемлемой частью теории и практики ОС. Рассмотрим и опишем некоторые из них.
Операционная система, как уже было сказано ранее это — совокупность программ, выполняющие ранее рассмотренные функции. Для того чтобы для задач отвести как можно больший объем памяти, операционная система строится таким образом, чтобы постоянно в оперативной памяти располагалась только самая нужная ее часть. Эту часть операционной системы стали называть ядром.
Функции ядра:
Обработка прерываний.
Создание/уничтожение процесса.
Переключение процесса из состояния в состояние.
Диспетчеризация (регулировка).
Приостановка и активизация.
Синхронизация процесса.
Организация взаимодействия между процессами.
Манипулирование БУП.
Поддержка операций ввода/вывода.
Поддержка распределения и перераспределения памяти.
Поддержка работы файловой системы.
Системные вызовы
В любой операционной системе поддерживается механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. В операционных системах наиболее известной советской вычислительной машины БЭСМ-6 соответствующие средства «общения» с ядром назывались экстракодами, в операционных системах IBM они назывались системными макрокомандами и т. д. В ОС Unix такие средства называют системными вызовами.
Системные вызовы (system calls) — это интерфейс между операционной системой и пользовательской программой. Они создают, удаляют и используют различные объекты, главные из которых — процессы и файлы. Пользовательская программа запрашивает сервис у операционной системы, осуществляя системный вызов. Имеются библиотеки процедур, которые загружают машинные регистры определенными параметрами и осуществляют прерывание процессора, после чего управление передается обработчику данного вызова, входящему в ядро операционной системы. Цель таких библиотек — сделать системный вызов похожим на обычный вызов подпрограммы.
Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode). Поэтому системные вызовы иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.
В этом режиме работает код ядра операционной системы, причем исполняется он в адресном пространстве и в контексте вызвавшей его задачи. Таким образом, ядро операционной системы имеет полный доступ к памяти пользовательской программы, и при системном вызове достаточно передать адреса одной или нескольких областей памяти с параметрами вызова и адреса одной или нескольких областей памяти для результатов вызова.
В большинстве операционных систем системный вызов осуществляется командой программного прерывания (INT). Программное прерывание — это синхронное событие, которое может быть повторено при выполнении одного и того же программного кода.
Прерывания
Прерывание (hardware interrupt) — это событие, генерируемое внешним (по отношению к процессору) устройством. Посредством аппаратных прерываний аппаратура либо информирует центральный процессор о том, что произошло какое-либо событие, требующее немедленной реакции (например, пользователь нажал клавишу), либо сообщает о завершении асинхронной операции ввода-вывода (например, закончено чтение данных с диска в основную память). Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Т.е. прерывание – это принудительная передача управления от выполняемой программы к системе (а через нее – к соответствующей программе обработки прерывания), происходящая при возникновении определенного события.
Основная цель введения прерываний – реализация асинхронного режима функционирования и распараллеливание работы отдельных устройств вычислительного комплекса. Механизм прерываний реализуется аппаратно-программными средствами. Структуры систем прерываний (в зависимости от аппаратной архитектуры) могут быть самыми разными, но все они имеют одну общую особенность — прерывание непременно влечет за собой изменение порядка выполнения команд процессором.
Механизм обработки прерываний подразумевает за собой независимо от архитектуры вычислительной системы выполнение некоторой последовательности шагов:
установление факта прерывания (прием сигнала запроса на прерывание) и идентификация прерывания;
запоминание состояния прерванного процесса вычислений;
управление аппаратно передается на подпрограмму обработку прерывания;
сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью аппаратуры;
выполнение программы, связанной с обработкой прерывания. Эта работа может быть выполнена той же подпрограммой, на которую было передано управление на шаге 3, но в операционных системах достаточно часто она реализуется путем последующего вызова соответствующей подпрограммы;
восстановление информации, относящейся к прерванному процессу;
возврат на прерванную программу.
Шаги 1-3 реализуются аппаратно, шаги 4-7 – программно.
Прерывания, возникающие при работе вычислительной системы, можно разделить на два основных класса: внешние (их иногда называют асинхронными) и внутренние (синхронные). Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса, например:
— прерывания от таймера;
— прерывания от внешних устройств;
— прерывания по нарушению питания;
— прерывания с пульта оператора вычислительной системы.
Внутренние прерывания вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями. Примерами являются следующие запросы на прерывание:
— при нарушении адресации (в адресной части выполняемой команды указан запрещенный или несуществующий адрес;
— при делении на ноль;
— от средств контроля (например, вследствие обнаружения ошибки четности, ошибок в работе различных устройств).
Таблица 1. Основные классы прерываний
Программное прерывание | Генерируется в некоторых ситуациях, возникающих в результате выполнения команд. Такими ситуациями могут быть арифметическое переполнение, деление на ноль, попытка выполнить некорректную команду и ссылка на область памяти, доступ к которой пользователю запрещен. |
Прерывание по таймеру | Генерируется таймером процессора. Это прерывание позволяет операционной системе выполнять некоторые свои функции периодически, через заданные промежутки времени. |
Прерывание ввода-вывода | Генерируется контроллером ввода-вывода. Сигнализирует о нормальном завершении операции или о наличии ошибок. |
Аппаратное прерывание | Генерируется при возникновении таких аварийных ситуаций, как, например, падение напряжения в сети иди ошибка контроля четности памяти. |
Важный тип аппаратных прерываний — прерывания таймера, которые генерируются периодически через фиксированный промежуток времени. Прерывания таймера используются операционной системой при планировании процессов. Каждый тип аппаратных прерываний имеет собственный номер, однозначно определяющий источник прерывания.
Аппаратное прерывание — это асинхронное событие, то есть оно возникает вне зависимости от того, какой код исполняется процессором в данный момент. Обработка аппаратного прерывания не должна учитывать, какой процесс является текущим.
Прерывания в основном предназначены для повышения эффективности работы компьютерной системы.
Цикл исполнения программы с прерываниями
В цикле прерывания процессор проверяет наличие сигналов прерываний, свидетельствующих о происшедших прерываниях. При поступлении прерывания процессор приостанавливает работу с текущей программой и выполняет обработчик прерывания. Обработчики прерываний обычно входят в состав операционной системы. Как правило, эти программы определяют природу прерывания и выполняют необходимые действия. Когда обработчик прерываний завершает свою работу, процессор возобновляет выполнение программы пользователя с того места, где она была прервана.
Контрольные вопросы
www.ronl.ru
В этом разделе, вы узнаете о возникновении и развитии компьютерных технологий. Затем мы рассмотрим инновационные методы использования компьютеров, которые расширяют наши возможности в различных областях. Вы также узнаете о том как компьютеры могут использоваться в ваших интересах, будь это учеба, медицинские исследования, управление бизнесом или развлечения. В конце этого раздела вы сможете прочитать о компьютерной промышленности, которая стала важнейшим сегментом мировой экономики, создавая возможности для карьеры и бизнеса.
Последовательность чтения:
1.2.1 Краткая историческая справка.Цель изучения: Понимание истоков и прогресса компьютерных технологий.
Parsons/Oja,Chapter9-SectionA.Цель изучения: Знание истории вычислений и компьютеров.
1.2.2 Применение компьютерных систем.Цель изучения: Достижение понимания использования компьютеров в расширении аспектов нашей жизни.
Parsons/Oja,Chapter9-SectionB. Цель изучения: Знание компьютерной и IT((informationtechnology– информационные технологии) индустрий и их воздействие на современный мировой рынок, жизненные циклы продуктов и уровни продаж.
Parsons/Oja,Chapter9-SectionC.Цель изучения: Знание различных профессий, возможных в компьютерной индустрии.
Кроме того: Есть несколько популярных веб-узлов для поиска работы. После завершения чтения зайдите на Monster.com и нажмите на Search Jobs, чтобы найти рабочие места в вашей области, связанные с применением компьютера. Для начала, в блоке Location Search box, выбирают ближайшее к вам местоположение, а затем вводят ключевое слово, например, "programmer " или " database " в блоке Keyword Search box.
1200-е — Ручные вычислительные устройства
1600-е — Механические калькуляторы
1800-е — Перфокарты
1940-е — Лампы
1950-е — Транзисторы
1960-е — Интегральные микросхемы (IC)
1970-е — Микропроцессоры
Дальнейшее развитие
Торговля, развившаяся в ранних обществах, вызвала необходимость в бухгалтерской системе, для того чтобы иметь возможность складывать, вычитать и записывать результаты простых вычислений. Так возникли счетные устройства, которые развивались, чтобы облегчить вычислительный процесс. Вначале, люди использовали пальцы, камни и палки для счета. Намного позже появились механические вычислители, но они были медленными и громоздкими. Когда было открыто электричество, электронные компоненты заменили более громоздкие механические части и дали возможность создать вычислительные устройства меньших размеров и более быстрые. Компьютеры продолжают развиваться в направлении ускорения вычислений, увеличивается емкость запоминающих устройств и уменьшаются их размеры, тем самым, поддерживается покупательский спрос на них.
С развитием вычислительных устройств, использование компьютеров вышло за пределы торговли и они интегрировались во многие области наших жизней. Покупки обрабатываются компьютерами. Изделия проектируется, используя компьютеры. Фильмы производятся посредством компьютерного моделирования. Рост компьютерной индустрии, вызван многочисленными компьютерными технологиями, которые применяются в таких областях как, например, торговля, системы связи, в банковском деле и образовании. В следующем разделе обсудим как могут быть использованы компьютерные технологии.
Мы начнем наше обсуждение с того как развивались компьютеры, рассматривая периоды времени, характеризующиеся исследованиями в области применения компьютеров для решения проблем при обработки большого количества данных и проблем большого количества вычислений. Вы посмотрите, как вычислительные методы пришли к тому, что мы имеем сегодня.
1200-е — вычислительные устройства с ручным управлением
В этих устройствах для передвижения компонентов устройства использовались руки.
Первым вычислительным устройством такого типа был абак, который использовали в Китае. Он предусматривал передвижение косточек для вычислений. Внизу — рисунок абака.
studfiles.net
Министерство общего и профессионального образования
Российской Федерации
КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ
УНИВЕРСИТЕТ
Кафедра вычислительной техники и
автоматизированных систем управления
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине
«Информатика»
на тему
«Основные закономерности развития компьютерных систем»
Выполнил студент гр. | 01-КТ-21 Воловиков О.П. |
Допущен к защите | |
Руководитель проекта | профессор, к.т.н., Частиков А.П. |
Нормоконтроллер | |
(подпись, дата, расшифровка подписи) |
Защищен ___________________ Оценка___________________
(дата)
Члены комиссии | |
(подпись, дата, расшифровка подписи) |
КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ
УНИВЕРСИТЕТ
Кафедра вычислительной техники и
автоматизированных систем управления
Зав. кафедрой
профессор, д.т.н.________Ключко В.И.
ЗАДАНИЕна курсовое проектирование
Студенту: 01-КТ-21 группы 1 курса
факультета КТАС
специальности 2204
Воловикову О.П.
(ф.и.о. шифр)
Тема проекта: «Основные закономерности развития компьютерных систем»
Содержание задания: выявить основные тенденции и закономерности развития компьютерных систем (на основе их современного состояния)
Объем работы:
пояснительная записка к проекту: 23 листа формата А4
Рекомендуемая литература: Частиков А. П. История компьютера
Срок выполнения проекта: с "___"_________ по "___"________2001 г.
Срок защиты: "___"________2001 г.
Дата выдачи задания: "___"________2001 г.
Дата сдачи проекта на кафедру: "___"________2001 г.
Руководитель проекта: профессор, к.т.н., Частиков А.П.
Задание принял студент
(подпись, дата)
РЕФЕРАТ
«Основные закономерности развития компьютерных систем»
Автор: студент группы 01-КТ-21 Воловиков О.П.
Научный руководитель: профессор, к.т.н., Частиков А.П.
Объем работы: 23 л.
Кол-во иллюстраций: 1
Кол-во таблиц: 0
Кол-во источников: 5
Перечень ключевых слов: «компьютерные системы», «развитие компьютеров», «закономерность», «эволюция», «история», «тенденции», «аппаратные средства»
Основные характеристики работы:
Данная работа представляет собой результат небольшой исследовательской деятельности, целью которой является выявление основных закономерностей и тенденций, прослеживающихся в процессе более чем пятидесятилетнего развития компьютерных систем.
В процессе написания реферата использовались научно-популярные исследования (опубликованные в некоторых компьютерных журналах и web-изданиях) различных специалистов в области информационных технологий, а также данные, взятые из собственного опыта автора, причем упор делался на современное состояние рассматриваемой области. Приведенные утверждения иллюстрируются достаточным количеством ярких и понятных примеров.
Необходимо также отметить, что выявленные закономерности и тенденции не подтверждаются математическими выводами или какими-либо теориями, но их истинность основывается на многолетнем опыте развития информационных технологий, а также подтверждается аналитическими работами многих независимых исследователей.
СОДЕРЖАНИЕ
1 Введение 2 Основная часть 2.1 Наследование основных принципов организации 2.2 Вещественно-энергетическая и информационная целостность 2.3 Повышение функциональной и структурной целостности КС 2.4 Наследование основных функций развивающихся систем 2.5 Адекватность функционально-структурной организации назначению системы 2.6 Взаимосвязь показателей качества компьютерных систем 2.7 Относительное и временное разрешение противоречий в КС 2.8 Аппаратные и программные решения 2.9 Совершенствование технологий создания КС, а также их преемственность 2.10 Падение стоимости на компьютеры 2.11 Будущие направления развития функций, реализуемых КС 3 Заключение 4 Список использованных источников | 5 7 7 7 8 8 9 9 11 12 14 15 16 22 23 |
1 Введение
Первые вычислительные машины, разработанные к началу пятидесятых годов, получили название ЭВМ первого поколения. (Классификация по поколениям в основном относилась к технологии производства компонентов. Первое поколение — электронные лампы, второе — транзисторы, третье — микросхемы.) Тогда же формируются два основных направления в архитектуре цифровых вычислительных машин — мэйнфреймы (mainframes) и мини-ЭВМ. Последние появились в 1955–1956 гг. В числе фирм, которые сосредоточили свои усилия в этой области, можно выделить Burroughs (компьютер E-101), Bendix (G-15), Librascope (LGP-30). Принципиальным отличием первого поколения малых ЭВМ от современных «персоналок» является фиксированная конфигурация аппаратных средств. Управление внешними устройствами было централизованным, и подключить какое-либо новое оборудование было невозможно. Неудобство такого подхода очевидно, и в более поздних модификациях G-15 этот недостаток был устранен. Память на магнитном барабане не допускала расширения, и пользователь получал в свое распоряжение следующий ресурс: 220 12-разрядных десятичных слов у E-101; 2176 29-разрядных двоичных слов у G-15; 4096 32-разрядных двоичных слов у LGP-30. Из приведенных характеристик видно, что байтовый формат данных в пятидесятые годы еще не стал стандартом. Система команд LGP-30 включала в себя 16 команд, G-15 предоставляла программисту большие возможности (более 100 команд). Программирование зачастую велось непосредственно в машинных кодах.
Однако, говоря о вычислительной технике тех времен, необходимо вспомнить и о другом, совершенно не похожем на современные компьютеры принципе построения ЭВМ — аналоговом или аналого-цифровом. Средства вычислительной техники, использовавшиеся тогда в составе систем автоматики, были исключительно аналоговыми. Близость этих научных направлений усиливалась еще и тем, что проектирование аналоговых вычислительных машин опиралось на ту же теоретическую базу, что и проектирование систем управления. Устойчивость системы автоматического управления и сходимость вычислительного процесса в аналоговой машине были весьма схожи по своему описанию. Хотя сегодня аналоговая вычислительная техника как разновидность компьютеров и не существует, но методы решения задач, накопленные за достаточно длинную историю существования этих вычислительных машин, используются в оборудовании, основанном на применении процессоров цифровой обработки сигналов (ЦОС). Развитие же цифровых вычислительных машин, которые со временем получили славное имя компьютеры, начиная с пятидесятых годов неразрывно связано с разработкой программного обеспечения.
В данный исторический период существовали программисты, рассматривавшие средства автоматизации своего труда как инструмент для ленивых, портящий качество продукции — то есть прикладной программы. Нужно сказать, что в то время эти утверждения действительно подтверждались практикой, которая, как известно, является критерием истины. Так же, как аналоговые машины по многим показателям превосходили цифровые, так и программы, написанные непосредственно в машинных кодах, оказывались короче, чем результат трансляции программ, подготовленных с использованием алгоритмических языков. Таким образом, правильный путь в те годы определяла не практическая сметка, а способность предугадать прогресс в смежных областях. В духе времени можно было бы даже поставить марксистскую концепцию о роли практики в иронические кавычки, если бы и в Евангелии не было прямого указания на то, что пророков истинных надо отличать от пророков ложных по их делам, то есть по практике. Поэтому не будем иронизировать по поводу ошибочных научных идей пятидесятых годов. Именно в эти годы был предложен алгоритмический язык FORTRAN, получивший впоследствии ироническое название «бессмертный». Уже начинает создаваться программное обеспечение в виде достаточно внушительных библиотек стандартных подпрограмм.
Много воды утекло с тех пор, и сейчас можно по-разному рассуждать о технологических направлениях полувековой давности и имели ли они тот или иной успех. Однако очевидно одно: за эти пятьдесят с лишним лет компьютерная индустрия, а вместе с ней и рассматриваемые в данной работе компьютерные системы (КС) претерпели множество количественных и качественных изменений. Мы же, собственно, попытаемся в некоторой степени проследить путь эволюции и выявить наиболее важные закономерности в развитии этих систем, опираясь как можно больше на нынешнее положение дел в данной отрасли.
Целостность КС, как и любых технических систем, обусловлена зависимостью протекающих в них вещественных, энергетических и информационных процессов преобразования (обработки), хранения, обмена (передачи) и управления. В реальных технических системах процессы преобразования, хранения и обмена вещества, энергии и информации взаимосвязаны. Управление этими процессами осуществляется информационными потоками, материализуемыми вещественными и энергетическими носителями.
Данная закономерность удачно иллюстрируется, в частности, единством и взаимосвязью энергетических и информационных процессов в элементах вакуумно-ламповой, полупроводниковой и интегральной технологий, осуществляющих обработку информации в аналоговой или цифровой форме. При выдаче информации и генерации управляющих воздействий формируются соответствующие информационные последовательности с целью дальнейшего преобразования в энергетические и вещественные воздействия на объект управления с отображением информации о ходе процесса (преобразование формы представления информации).
В процессе обработки информации при энергетическом воздействии осуществляется переключение логических запоминающих элементов процессора и памяти. Если, в свою очередь, рассматривать внутреннюю структуру логических и запоминающих элементов, то нетрудно заметить, что различным информационным изменениям элементов соответствуют определенные изменения в структуре вещества, из которого сделаны эти элементы. В полупроводниковых элементах, например, осуществляется изменение проводимости p-n-перехода, неплохими примерами могут также послужить разнообразные носители информации: в магнитных наличию двоичного нуля/единицы соответствует определенное состояние некоторой области магнитного вещества, в оптических при записи данных происходит изменение оптических свойств поверхности диска. То же можно сказать и о передаче информации – в применяемых интерфейсах она осуществляется посредством распространения электромагнитных колебаний, то есть энергии.
Эта закономерность выражается в функциональной и структурной интеграции отдельных подсистем и сокращении числа промежуточных уровней и видов преобразования вещества, энергии и информации в процессе функционирования КС.
Функциональная целостность рассматривается в ее отношении к внешнему окружению (среде) и обусловливается единством и взаимосвязью функций системы и ее подсистем, а структурная целостность системы рассматривается в отношении ее состава, фиксированной совокупности элементов и связей между ними. В процессе эволюции КС повышение ее целостности может выражаться в том, что сама система получает возможность перейти в подсистему более сложной системы. Прекрасной иллюстрацией этого положения служит микропроцессор, повторивший структуру машин предшествующих поколений и рассматриваемый в 70-х гг. на уровне системы, в дальнейшем превратившийся в элемент мощных суперкомпьютеров.
Из более близких нам примеров можно отметить, скажем, дисковые контроллеры и периферийные контроллеры ввода-вывода, которые долгое время были отдельными устройствами, а теперь встраиваются прямо в чипсет, то есть являются частью системной платы. Вспомним также процессорный L2 кэш – сейчас он составляет с ядром CPU единое целое, хотя недавно выполнялся отдельным блоком, а несколько лет назад вообще устанавливался в специальный слот.
В процессе развития систем определенного класса сохраняется совокупность их основных (базовых) функций. Применительно к компьютерным системам можно утверждать: каждое новое компьютерное поколение сохраняет (воспроизводит) совокупность основных функций, реализуемых компьютерами предшествующего поколения. Какие это функции? PMTC – Processing (обработка), Memory (хранение), Transfer (передача), Control (управление). Все это сохраняется на протяжении всех поколений компьютерных систем. Наиболее интенсивным изменениям подвергаются сервисные функции. Эти изменения направлены на увеличение производительности и совершенствование интерфейса пользователя с системой.
Действительно, ни один из существующих типов КС не выполняет каких-либо функций, кроме вышеуказанных. Единственные изменения, которые происходят с появлением новой КС – это все лучшее выполнение этих функций: новый РС все быстрее производит обработку данных, полученных с устройств ввода, новый сервер имеет все более емкую дисковую систему, больший объем памяти и производительный CPU, новый коммуникационный стандарт обеспечивает большую пропускную способность и надежность.
Эффективными и жизнеспособными являются системы, структура которых максимально соответствует реальным функциям. Два параллельно идущих эволюционных процесса – эволюция функций и эволюция технологий – стимулируют направленное совершенствование функционально-структурной организации КС. Известно следующее утверждение: «В идеальном случае каждому реализуемому алгоритму соответствует определенная структура системы (устройства)». Например, архитектура игрового компьютера должна отличаться от архитектуры сервера: если в первом случае берется не слишком дорогой, но оптимизированный под определенный набор вычислений процессор, оптимальным образом синхронизированные с ним память, графический контроллер и устройства ввода, причем все это, скорее всего, связывается одной-единственной общей шиной, то во втором, очевидно, потребуется многопроцессорная параллельная обработка, ориентированная на многозадачность, более широкий набор шин передачи данных. Однако очевидно, что бесконечное множество алгоритмов практически не может быть отображено на соответствующее множество реальных структур.
Но одни и те же функции могут быть воспроизведены универсальными и специализированными средствами. Таким образом, при формировании структуры КС определенного функционального назначения необходимо разрешать противоречия между «универсальностью» и «специализацией» на всех уровнях организации системы. Применение универсальных элементов позволяет создавать КС с минимальной структурой (то есть с минимальным числом элементов), реализующих заданную совокупность функций (продолжая сравнение, на сервере тоже, в принципе, при желании можно поиграть в Unreal, но вряд ли это будет целесообразно, так как тех же целей можно будет добиться гораздо более простыми средствами).
Основные показатели качества КС – характеристики производительности, энергетические характеристики, характеристики надежности и эффективности систем, экономические показатели – взаимосвязаны и взаимозависимы. Улучшение одной группы показателей качества, например увеличение производительности, ведет к ухудшению других – усложнению структуры, увеличению стоимости, снижению надежности и т. д.
Приведем примеры взаимосвязи и взаимозависимости показателей. В конце 40-х годов Г. Грош сформулировал эмпирический закон, согласно которому пропорциональность КС пропорциональна квадрату стоимости. Следовательно, для того чтобы выполнить некоторую вычислительную работу в два раза дешевле, ее надо выполнить в четыре раза быстрее (К. Е. Найт экспериментально подтвердил справедливость этого закона для первых трех поколений компьютеров). Другой пример взаимозависимости общей производительности векторной супер-ЭВМ от двух режимов ее работы. Известно, что программы, которые могут быть векторизованы компилятором, выполняются в векторном режиме с высокой скоростью, а программы, не содержащие векторного параллелизма (или которые компилятор не обнаруживает), выполняются с низкой скоростью в скалярном режиме. В 1967 г. Дж. Амдал вывел закон, согласно которому в такой системе низкоскоростной режим доминирует в общей производительности.
И напоследок еще один более близкий и современный нам пример. Не секрет, что процессоры Intel Pentium-4 первого поколения (под Socket-423) имеют высокое энергопотребление, большую теплоотдачу и довольно-таки внушительные размеры. Недавно в сети даже ходили шуточки насчет того, что если так пойдет и дальше, то в недалеком будущем компьютеры в обязательном порядке будут поставляться с портативной атомной электростанцией и радиатором водяного охлаждения в комплекте, а материнская плата будет свариваться из стального проката (в том смысле, что иначе она рассыплется от тяжести комплектующих). Конечно, не все так плохо, но определенный резон в этих замечаниях действительно присутствует. Поэтому Intel вскоре перевела процессор на более тонкий техпроцесс, в результате чего удалось сделать его очень маленьким (гораздо меньше, чем CPU предыдущих поколений), экономичным в плане потребления энергии и выделяющим мало тепла. Но с другой стороны, примерно до 10% повысилась стоимость изделия (и это несмотря на то, что площадь чипа, напрямую влияющая на стоимость, уменьшилась). И в чисто технологическом плане изменения не дались даром: новый процессор получился более требовательным к устойчивости параметров питания, так что пришлось оснастить его новым (Socket-478) интерфейсом, где дополнительные контакты обеспечивают нужную стабильность напряжения, подаваемого на процессор.
Или, еще, сравним архитектуры все тех же CPU от AMD и от Intel. Про вторую мы только что упоминали, поэтому рассмотрим продукцию первой. Известно, что эту самую продукцию (CPU Athlon различных модификаций) отличает весьма небольшая по сравнению с Pentium стоимость при примерно равной производительности. Чем этого удалось добиться? Ответ: применением менее высоких (и поэтому более дешевых), чем у Intel, технологий изготовления чипов и усовершенствованием внутренней архитектуры процессора: изощренные алгоритмы кэширования, оптимизированный конвейер и проч. Примерно то же можно сказать и о DDR SDRAM. DDR (Double Data Rate) SDRAM по многим параметрам и способам изготовления мало чем отличается от обычной SDRAM: та же синхронизация шины памяти с системной шиной, практически то же производственное оборудование, энергопотребление, почти не отличающееся от SDRAM, площадь чипа больше лишь на несколько процентов. Изменения заключаются только в применении популярной в последнее время в компонентах PC технологии передачи данных одновременно по двум фронтам сигнала, когда за один такт передаются сразу два пакета данных. В случае с используемой 64-битной шиной это дает 16-байтный за такт. Или, в случае со 133 мегагерцами, уже не 1064, а 2128 Mb/s. Это позволило сразу без значительных материальных и временных издержек создать новую быстродействующую память, причем по цене, мало отличающейся от обычной SDRAM (кстати, DDR SDRAM еще иногда именуют SDRAM-II). То есть мы видим, что новая память при ближайшем рассмотрении есть усовершенствованная старая. В результате стоимость готовой системы процессор+память+системная плата от AMD ниже аналогичной от Intel раза чуть ли не в два, но, очевидно, ее структурная сложность существенно выше.
Противоречия, возникающие в КС в процессе их развития, разрешаются временно на определенных этапах существования систем конкретного класса и в дальнейшем проявляются в трансформированном виде на новом качественном уровне развития. На различных жизненных циклах КС разработчикам приходиться решать «вечные» противоречия между функциональными возможностями и сложностью технической части системы, между объемом хранимой информации и быстродействием устройств памяти.
В середине 60-х годов в связи с появлением первых мини-компьютеров возникла проблема длины слова. Известно: чем больше длина слова, тем большее число команд должно быть у машины [процессора – здесь и далее прим. мои], тем эффективнее реализуется ее проблемная ориентация; чем больше длина слова, тем выше точность обработки данных. Однако стоимость машины растет пропорционально длине слова. Эти противоречивые факторы служат классическим примером компромисса при проектировании, когда приходиться либо поступиться рабочими характеристиками, либо отказаться от экономии.
Кстати, в настоящее время очень типичным примером целой совокупности подобного рода компромиссов являются персональные компьютеры: в них используются куда более дешевые, но и более медленные, чем в крупных серверах и суперкомпьютерах, элементы. А вот пример временного противоречия. Начиная где-то с 486-х процессоров наметился постоянно возрастающий разрыв в скорости CPU и RAM. Нынешний год стал годом широкого освоения очередных новых типов локальной оперативной памяти – RDRAM (Rambus DRAM) и вышеупомянутой DDR SDRAM (в противовес SDRAM, Rambus использует узкую – 16 бит – шину и огромную по сравнению с ней частоту – 400 MHz, что, учитывая также применяемую технологию DDR дает аж 800 MHz). Причина в их появлении очевидна: при применении старой SDRAM процессор большую часть времени будет простаивать из-за неполучения данных (падение производительности в среднем 40%-50% при использовании CPU с частотой 1.5-2.0 GHz). Противоречие разрешить удалось, но также ясно, что пройдет еще немного времени, и придется снова говорить о необходимости повышения быстродействия подсистемы памяти.
Итак, процесс развития компьютерных систем – это разрешение противоречий, с учетом спектра проблем и перечня противоречий, подлежащих разрешению.
Как известно, многие задачи можно решить двумя принципиально разными путями – аппаратным и программным. (Естественно, в конечном счете все вычисления реализуются программно (причем, что интересно, с другой точки зрения можно сказать, что полностью аппаратно, поэтому это не суть важно), но так называемый «программный» метод базируется на использовании ресурсов центрального процессора и основной памяти КС, в то время как «аппаратный» предполагает наличие другого специализированного элемента (ов)). Преимущество первого заключается, как правило, в хорошем быстродействии и независимости от мощности основных элементов компьютера, однако он недостаточно гибок и довольно дорог, а программные решения, наоборот, недороги, универсальны и легко модернизируются, но требуют наличия мощного компьютера.
Вообще, глядя на историю развития КС, можно отметить интересный факт: с совершенствованием технологий многие аппаратные решения заменяются на их программные эмуляторы. Примеров можно привести довольно много. Например, в первых ЭВМ аппаратно реализовался алгоритмический язык программирования, вскоре эта функция стала программной. Или обратимся к так называемой «оконной» технологии. Первым коммерческим «оконным» продуктом был Xerox 8010 (в 1981 году печально известный под именем Star). Затем появились Apple LISA (1983 год) и Macintosh (1984 год). Вслед за этим произошла принципиальная перемена. Следующим продуктом, реализующим «оконную» технологию, стал Topview фирмы IBM (1984), за ним последовали Windows от Microsoft (1985) и позднее – X Windows System (1987) для UNIX. Эти продукты уже представляли программные реализации системы, которые обеспечивали доступность «оконной» технологии на обычных машинах, не оснащенных специальной аппаратурой. Список примеров можно продолжить (скажем, аналогичным путем развивались текстовые редакторы).
Из более же современного можно отметить мультимедийные технологии. Сначала возьмем те же звуковые платы. Еще относительно недавно они были тотально аппаратными, а сегодня любая современная плата обязательно так или иначе использует ресурсы системы (например, WT-таблицы для синтеза MIDI-музыки). Кроме удешевления конечной системы, это также позволило получить большую гибкость в функционировании. Несколько лет назад появилась и сейчас находится на весьма неплохом уровне чисто программная реализация звука (AC’97 кодек), который позволяет при очень небольших затратах получить весьма качественный звук. Также нельзя не упомянуть о разного рода MP3/MPEG1/MPEG2 и проч. декодерах, лет 6-8 назад являлись необходимыми устройствами «истинного» мультимедиа-РС (беру слово в кавычки потому, что понятие абстрактно и очень быстро меняет свою сущность). Сейчас же, когда мощности CPU вполне хватает для декомпрессии MP-потоков, платы MPEG2-декодера хотя еще и можно найти в продаже, но нечасто, а о MPEG1-платах, а тем более аппаратных MP3-плейерах многие даже вообще не слышали, и звучит это сейчас по меньшей мере смешно. Или вот еще: программные модемы, которые в последнее время из-за своей дешевизны получили повсеместное распространение. Или TV-тюнеры. Или программные системы видеомонтажа. Или… В общем, в процессе развития (сиречь повышения мощности) компьютеров наблюдается множество примеров вытеснения аппаратных реализаций программными. Однако хорошо это или плохо, точнее, в какой степени хорошо? Если в общем, то это смотря для чего. Например, использовать сейчас в РС вышеупомянутые MPEG-декодеры (пусть и с самым непревзойденным качеством картинки) и в самом деле абсурдно, так как даже самый хилый из продаваемых в настоящее время процессоров прекрасно справиться с необходимыми вычислениями самостоятельно, а вот та же система видеомонтажа в профессиональной студии вряд ли будет программной – там стоимость чуть ли не 128-й критерий, на первый план выступают качество и надежность. И программные решения в области звука тоже не являются средством на все случаи жизни, хотя у них много очевидных преимуществ. И всякие «выньмодемы» (приношу извинения за «жаргон», но это слово поразительно точно передает сущность предмета) тоже имеют много противников, и автор в их числе, но все же в магазинах их великий выбор, а значит покупают, потому что дешево. Или, например, сетевая сфера: есть множество программ, реализующих маршрутизацию, кэширование трафика, организацию мостов и проч., которые в целях экономии средств обычно оказывается целесообразно применять для небольших серверов. Но будут ли они эти программы сколь либо эффективно работать на крупном серверном комплексе, к которому одновременно обращаются тысячи пользователей? Тут уж никакой процессорной мощности не хватит, придется использовать отдельные устройства и подсистемы. Нельзя однозначно ответить на поставленный вопрос. Но в любом случае побеждает та технология, которая одновременно является наиболее гибкой, качественной, по возможности универсальной и недорогой. Причем время, как правило, лучше всяких прогнозов определяет такие технологии.
Вы можете возразить: какой же общий выраженный переход от аппаратного к программному, когда вот, скажем, лет десять тому назад пользователям персоналок совсем не был знаком термин «графический сопроцессор» (вспомним печально канувшую в лету 3Dfx, подарившей нам трехмерный мир на экранах мониторов…), а сейчас им так или иначе оснащаются даже самые дешевые компьютеры? Однако здесь мы видим другой случай, тоже являющийся закономерностью – несоответствие уровня развития КС уровню развития функций, которые они выполняют (как ни парадоксально сие звучит). То есть я имею ввиду, что возможности аппаратного обеспечения несколько отстают от требований, предъявляемых к ним со стороны программного. А так как задачу выполнить все-таки хочется, то проблему решают экстенсивно: нужны новые возможности? так поставим еще один (другой, третий…) процессор, который и будет заниматься нужным набором вычислений. Примеры аппаратной реализации, впоследствии замененные на программные эмуляторы, как раз подтверждают сказанное, просто впоследствии мы оказываемся на более высоком уровне (возвращаясь к тем же графическим ускорителям, нетрудно заметить, что без них персональные компьютеры еще долго не смогут обойтись, так как современный уровень технологий трехмерной графики еще находиться в зачаточном состоянии (впрочем, «по моему скромному мнению», я не настаиваю), а сегодняшний компьютер без 3D-графики не компьютер).
Данный факт, быть может, не столь очевиден, но определенная тенденция прослеживается, и мы доказали это на примерах.
Более интересной закономерностью является так называемая преемственность технологий. Она заключается в постепенном вырождении данной реализации определенной технологии вследствие ее морального износа и последующим появлением ее же (технологии) снова на более качественно высоком уровне. То есть, говоря проще, имеет место так называемое развитие по спирали – мы ходим по кругу, но с каждым оборотом оказываясь все выше. Безусловно, не абсолютно все подчиняется данному закону (например, отголоски перфокарт вряд ли когда-либо еще появятся), но в IT-индустрии, да и вообще в технике существует множество подобных примеров. Возьмем, например, магнитные ленты. В 80-х годах прошедшего века компьютерная пресса вовсю трубила о скорой их кончине, так как их вроде бы должны заменить дисковые накопители как более миниатюрные и удобные в использовании (тогда, кстати, и появились оптические и магнитооптические носители). Действительно, сейчас стримеры в большинстве компьютеров найти не так-то легко, но у крупных организаций (прежде всего государственных и, в частности, военных) другого выбора все равно (пока..?) нет. Если учесть, что объемы информации стремительно возрастают (в сотни раз за последнее десятилетие), то нетрудно понять, что существующие дисковые накопители оставляют желать лучшего в плане емкости, надежности и не в последнюю очередь стоимости в расчете на мегабайт. А ленты по-прежнему являются самыми емкими (емкость лент уже иногда исчисляется терабайтами) и очень дешевыми носителями, которые, пережив некоторый кратковременный застой (впрочем, а был ли он вообще?), снова живут и здравствуют. Но уже в иной области и в несколько ином виде. Или рассмотрим технологию оптических дисков. Первым подобным известным продуктом, живущим (и пока что неплохо…) и в наши дни, является CD. Который затем трансформировался в DVD. Но уже сейчас емкость DVD является предельно-недостаточной, причем вроде бы дальнейшее развитие DVD представляется непростым. Означает ли это, что оптическая технология исчерпала себя? Вовсе нет. Компания Constellation 3D, например, пытаясь найти соответствующее решение, разработала действующие образцы многослойных (не один десяток; для сравнения: у CD один, у DVD два слоя, и дальнейшее увеличение их количества традиционными методами связано с проблемами затухания луча при прохождении его через верхние слои) FMD-носителей, основанных на способности некоторых материалов флуоресцировать под воздействием света определенной длины волны.
А вот более близкий к пониманию пример. Известно, что с момента появления первых РС процессор с материнской платой соприкасался большей стороной (устанавливался в Socket’овый разъем). Где-то в 1996 году Intel решила оснастить очередной процессор новым интерфейсом, при котором CPU бы вставлялся в слот подобно, скажем, памяти. Однако данное решение за несколько лет эксплуатации обнаружило ряд недостатков, и одним из главных была повышенная стоимость. Поэтому, начиная с 2000-го г., компания свернула производство слотовых процессоров, вернувшись к уже обкатанному варианту. Хотя сначала казалось, что socket – вчерашний день.
Возможность снижения цен стала возможна благодаря повышению производительности труда в данной сфере производства, а также благодаря опыту применения фирмами разнообразных методов удешевления конечного продукта – например, интеграции некоторых устройств на материнскую плату или прямо в чипсет, применению программных решений и проч. Важно также понять, что данная тенденция базируется не только на чистом прогрессе, но во многом на экономических факторах: сейчас существует много фирм, конкурирующих между собой и как следствие стремящихся максимально усовершенствовать товар и снизить цены на него. Правда, многие из них терпят серьезные убытки (было время, например, та же Intel продавала свои Celeron’ы чуть ли не по себестоимости, лишь бы только удержать Low-End рынок, а AMD заявила о получении за 2000-й год значительно меньшей прибыли, чем рассчитывалось; аналогичную ситуацию мы можем наблюдать и со многими другими фирмами, скажем VIA, а 3Dfx вот вообще разорилась…), но зато пользователи остаются в наибольшей выгоде.
Естественно, функциональные возможности КС эволюционируют не менее быстро самих КС, часто, как было показано выше, опережая объективные возможности последних. Как прогнозируют консультанты, в обозримом будущем самое сильное влияние на широкий круг отраслей будут оказывать пять групп технологий: технологии искусственного интеллекта, технологии пользовательских интерфейсов, групповые технологии, сетевые технологии для мультимедиа и инфраструктуры разработки. Помимо этого, специальное значение имеют социальные технологии интернета, объектно-ориентированные системы, параллельная обработка, интеллектуальные агенты и системы, основанные на знаниях. По мнению Хуберта Делани, научного директора Advenced Computing Environments корпорации Gartner Group основными направлениями метаморфирования характера и способов использования компьютеров в последнее время являются:
· Естественные пользовательские интерфейсы. Интерфейсы общения компьютера и человека постепенно становятся в большей степени ориентированными на мышление человека, используют естественные для него средства связи, такие как графика, речь, мимика, жесты и т.д.
· Управление уровнем сложности. Хотя технологические инфраструктуры обеспечивают более высокий уровень абстракции и нововведений, будущие системы информационных технологий будут обладать способностью сопровождать все увеличивающееся число сложных проблем дружественным по отношению к пользователю решениями
· Интеллектуальная помощь. Чтобы удовлетворить потребности людей в быстрой подсказке для ускорения работы, внутри приложений будет использоваться наращиваемый список основанных на знаниях систем, помогающих пользователям выполнить ранжирование задачи от простого к сложному. От себя также отмечу такое явление, как повышение интеллектуальности самих приложений, ибо только что невольно столкнулся с примером, пусть и несколько примитивным: последние несколько абзацев набраны в Word’97 без какого-либо ручного форматирования и вообще с минимальным количеством действий с моей стороны, так как все маркеры, выделения курсивом, выравнивание, интервалы между абзацами, переносы и заглавные буквы ставились редактором автоматически
· Изменяемая модульная структура. Удачные архитектуры будут допускать наращивание и модификацию за счет применения базирующихся на объектно-ориентированных технологиях модульных систем, которые можно легко и недорого модифицировать
· Многообразие форм связи между людьми. Для того, чтобы усилить средства связи, информационные технологии должны будут поддерживать множество форм связи (мультимодальность). Например, пользователь, сидящий в зале заседаний, может получить важное голосовое сообщение на пейджер или компьютер. В данном случае ему нужна утилита распознавания речи, которая расшифрует это сообщение для дальнейшего прочтения
· Независимость доступа от местоположения. Пользователи будут иметь доступ к вычислительным ресурсам независимо от своего местоположения
· Прозрачность местоположения. Данные, обрабатывающие ресурсы, файлы и сообщения автоматически вызываются независимо от их физического расположения
На последних трех пунктах следовало бы остановиться особенно. Ведь по существу поднимается вопрос о таком явлении, как централизация (в той или иной степени). Прежде всего обратимся к истории. Сначала существовал только один путь использования компьютера. Его куда-нибудь ставили и именно в этом месте обрабатывали на нем все данные. Это централизованная модель. Вскоре производительность обработки [информации] на компьютере настолько возросла, что использовать его для работы только одного приложения стало просто расточительством. В результате единственный вычислительный ресурс стал распределяться между несколькими пользователями, находящимися в разных местах. Это уже децентрализованная модель. Прошло время, и появился персональный компьютер. Теперь каждый мог работать за персональным компьютером, зачастую находящимся у него дома, а не быть заложником одной большой удаленной машины. Это все еще продолжение развития децентрализованной модели вычислений.
Сейчас же вновь появляется, если можно так выразиться, призрак прошлого. Во-первых, это всеобщее проникновение IT-технологий во все сферы экономики. Следовательно, возникает вопрос о максимальной эффективности капиталовложений. Но, несмотря на меньшие капитальные вложения, эксплуатация децентрализованной системы обходится значительно дороже и, если не предполагать, что система нужна на год-полтора, дешевле приобрести дорогой мэйнфрейм (естественно, что решаемые задачи должны быть адекватными). Предпосылками создания подобных систем является значительный прогресс в развитии средств передачи данных, например стандарт Fibre Channel, который и создавался специально для организации кластерных систем. Ниже на рис. 1 приведен пример схемы создания сети хранения данных на основе технологии SAN, базирующейся на FC, которая дает сторедж-системам преимущества технологий LAN/WAN и возможности по организации стандартных платформ для систем с высокой готовностью и высокой интенсивностью запросов.
Почти единственным недостатком SAN на сегодня остается относительно высокая цена компонент, но при этом общая стоимость владения для корпоративных систем, построенных с использованием технологии сетей хранения данных, является довольно низкой.
Эффективность внедрения подобных систем хранения и обработки данных подтверждается тем, что многие корпорации, стремясь к максимальной отдаче от капиталовложений, заменили РС на терминалы, подключенные к мощным серверам. Причины эффективности таких решений очевидны: отдельный пользователь не использует весь потенциал своего РС, следовательно, большей производительности при таких же или меньших денежных затратах можно добиться путем распределения централизованных ресурсов между теми, кому они в данный момент нужны.
Другие причины в необходимости высокоэффективных систем (прежде всего систем хранения данных) заключаются во все большем распространении глобальной сети и стремительным ростом объемов хранимой информации. Примером этого роста, например, может служить факт, что когда в Пентагоне после переноса накопленной информации на более емкие ленты тут же выяснилось, что за время, понадобившееся для резервирования, объемы информации возросли настолько, что опять требуется переход на новые носители. Кстати, вот еще одна из современных закономерностей – перенос центра тяжести с процессоро-ориентированных систем на дата-ориентированные системы. Большой вклад в увеличение объема передаваемых и хранимых данных является наметившееся в последнее время создание единого информационного пространства, то есть когда самые разнообразные компьютерные системы и отдельные устройства (локальные сети, персональные компьютеры, мобильные телефоны, PDA и проч.) смогут быть объединены в одну глобальную сеть. Причем при таком раскладе немаловажную роль играет стоимость, что опять-таки говорит о необходимости использования централизованной модели хранения и обработки данных.Рис. 1. Пример организации сети хранения данных с использованием
технологии SAN
Вот как, например, некоторые компании предлагают решить вопрос интернетизации населения. Зачем пользователю интернета дорогостоящий компьютер, когда он по сути является всего лишь связующим элементом? Значительные средства можно будет сэкономить, если использовать примитивный терминал с подключенной к нему клавиатурой и монитором, который будет формировать запросы, послать их на сервер и принимать ответ. Причем один из вариантов предполагает отказ даже от монитора – ведь можно транслировать сигнал на телевизионную антенну, благо телевизор есть почти у каждого.
В заключение пункта позвольте выразить my humble opinion по поводу данного вопроса, дабы понять, о чем же идет речь. Как мне кажется, говорить о централизации в том смысле слова, что все вычисления и хранение данных будет выполняться на серверах, как это нередко понимается, немного наивно. Да, мы только что упомянули о том, что многие корпорации используют централизованные информационные системы в своей деятельности, разрабатываются и уже разработаны различные сетевые решения, но не следует путать одно с другим! Ведь не зря же мы отметили такое понятие, как а декватность организации системы ее назначению. Для корпоративных пользовтелей действительно необходимо хранить данные централизованно и использовать ресурсы сети, так как в таком случае они получают большие возможности при гораздо меньших накладных расходах. Сетевые решения активно распространяются и в обыденной жизни — тот же интернет, мобильная связь по сути являются неплохими примерами активного пользования услугами сети. Но я никак не могу согласиться с тем, что «ставится под сомнение будущее того класса компьютеров, на котором возросла империя Microsoft». Во-первых, полная ориентация на использование сетей вряд ли возможна и сейчас, и в достаточно отдаленном будущем ввиду, попросту говоря, отсутствия присутствия самих сетей. Есть, конечно же, интернет, но эта сеть, изначально существующая как низкоскоростная среда для передачи файлов и сообщений, плохо приспособлена для передачи данных, которые требуют гарантированной пропускной способности и минимальных задержек. А на соответствующую модернизацию или создание другой распределенной сети (сетей) уйдет уйма средств и времени. К тому же в распределенных системах встает проблема несовместимости разнородных компонентов, которые не были спроектированы для того, чтобы работать совместно. Во-вторых же, часто централизация оказывается попросту не нужна (говоря в наших терминах, неадекватна). Сделаем сравнение: в высокоразвитых странах (для конкретности возьмем европейское сообщество) существует прекрасная система общественного городского и междугородного транспорта, услугами которой пользуется много людей. И в то же время почему-то почти у каждого есть непомерно дорогой, нуждающийся в постоянном обслуживании, быстро устаревающий, потребляющий тонны бензина, загрязняющий окружающую среду и вообще как будто бы абсолютно не нужный личный автомобиль, и не каждый спешит отказаться от целого вороха проблем и ездить на работу в метро.
«…мы наблюдаем бурное развитие локальных и глобальных сетей. Сетевые возможности становятся обязательными атрибутами ОС для ПК, а сетевые серверные ОС – ареной конкурентной борьбы ведущих компаний. … Потенциальные возможности сетей… предлагают новые виды доступа к новым типам сетевых функций, которые… окажут глубокое влияние на коммерческие организации и пользователей… Уже сегодня можно видеть, что сети становятся все более всеохватывающими и предоставляют пользователям рабочую среду, где бы они ни оказались…». Бесспорно, со всем этим нельзя не согласиться, но также следует помнить, что любое решение может быть рационально, и для любого найдутся пределы рациональности. Да, создается единое информационное пространство, IT-технологии, основанные на использовании коммуникаций, распространяются все шире; растет роль сетевых компьютеров, требуются новые технологии распределенного хранения данных. Но, по-моему, это ни в коем случае не означает, что персональные компьютеры вскоре исчезнут и вместо них появятся дешевые электронные блокноты, главным элементом которых будет сетевой контроллер. И, как отмечалось выше, причина здесь не только в низком уровне развития сегодняшних средств коммуникации.
Вряд ли речь идет о полной и вездесущей централизации (а даже если вдруг предположить, что в будущем она и наступит, то это будет ой как еще не скоро). То развитие сетевой сферы, которое невозможно не заметить, скорее свидетельствует о широком распространении IT-технологий, а вовсе не о начавшейся в них революции. Впрочем, время покажет.
Какие же выводы можно сделать из всего, что было сказано выше, что нас ждет в обозримом будущем? Во-первых, это снижение стоимости компьютеров массового потребления, что позволит им стать такими же обыденными предметами, как радио- и телевещание. Таким образом, главная черта будущих РС – это не гигагерцы и терабайты, а доступность ираспространенность. Хотя без них тоже никуда не уйдешь, и наращивание мощности будет происходить очень быстро (как мы сказали, примерно в два раза каждый год, причем процесс все ускоряется), что позволит использовать естественные человеку методы взаимодействия с машиной. Во-вторых, это все большее распространение интернета и вообще сетевых технологий, создание единого информационного пространства.
Если же делать прогноз на более отдаленное время, то, помимо всего прочего, нельзя не сказать, что IT-индустрия уже подходит к очередному технологическому барьеру: в том смысле, что дальнейшее наращивание мощностей существующими методами станет нерентабельно либо вообще невозможно. Например, если повышать производительность чипа, то придется увеличивать степень интеграции, и когда-нибудь наступит такой момент, когда начнут сказываться размеры отдельных атомов применяемых материалов. То же и с магнитными носителями – увеличивать плотность записи на современные HDD можно не до бесконечности. По мнению западных аналитиков, этот момент может наступить уже к концу текущего десятилетия. Поэтому различными компаниями ведутся исследования в области создания транзисторов на принципиально иных материалах и применения оптических технологий для хранения информации. Таким образом, человечество, возможно, стоит у порога очередной технологической революции.
Если она произойдет, то, возможно, эволюция пойдет с еще более впечатляющими эффектами. Со временем компьютеры станут изготавливаться из других материалов, возможно, они станут квазибиологическими или бог весть еще какими и, безусловно, очень маленькими; возможно, они обзаведутся мощным интеллектом. А возможно, все будет иначе. Ведь развитие никогда не бывает прямолинейным, и его нельзя предугадать, да и вообще делать прогнозы на будущее – дело неблагодарное.
В любом случае, как мне кажется, эволюция компьютерных систем пока еще находится на зачаточном этапе. То, что мы имеем сейчас, только начало. Если предположить, что 21-й век станет веком информационных технологий, то 20-й являлся всего лишь предпосылкой к их появлению. Однако не будем конкретизировать по поводу того, что они смогут дать людям. Ведь недаром на дверях Intel написано: «It is a way to...» Вместо многоточия каждый может поставить то, что ему больше нравится, что он видит. Путь именно «в...», а вовсе не к бескрайним просторам интернета. Главное только, чтоб этот путь не привел человечество к плачевным последствиям…
· Частиков А. П. История компьютера. Стр. 114-118
· iXBT.com. Владимир Савяк. SAS, NAS, SAN: Шаг к сетям хранения данных (6 ноября 2001 г.)
· Computerworld Россия 20 февраля 1996 г. Кевин Стамф. Ностальгический взгляд на пятидесятилетнюю историю вычислительной техники
· Computerworld Россия 20 февраля 1996 г. Антониетта Поллески. Лицом к лицу с будущим
· Computerworld Россия 16 января 1996 г. Михаил Борисов. Централизация. Удар… Еще удар!
· Некоторые материалы Компьютерры от 30 октября, 6 ноября 2001 г.
www.ronl.ru
Мы будем рассматривать историю развития именно вычислительных, а не операционных систем, потому что hardware и программное обеспечение эволюционировали совместно, оказывая взаимное влияние друг на друга. Появление новых технических возможностей приводило к прорыву в области создания удобных, эффективных и безопасных программ, а свежие идеи в программной области стимулировали поиски новых технических решений. Именно эти критерии — удобство, эффективность и безопасность — играли роль факторов естественного отбора при эволюции вычислительных систем.
Первый период (1945-1955 гг.). Ламповые машины.
Операционных систем нет
Мы начнем исследование развития компьютерных комплексов с появления электронных вычислительных систем (опуская историю механических и электромеханических устройств).
Первые шаги в области разработки электронных вычислительных машин были предприняты в конце Второй Мировой войны. В середине 1940-х годов были созданы первые ламповые вычислительные устройства и появился принцип программы, хранящейся в памяти машины (John Von Neumann, июнь 1945 г.). В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не регулярное использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об операционных системах не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. За пультом мог находиться только один пользователь. Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно — с помощью панели переключателей.
Вычислительная система выполняла одновременно только одну операцию (ввод-вывод или собственно вычисления). Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. В конце этого периода появляется первое системное программное обеспечение: в 1951-1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat Rochester разрабатывает Ассемблер для 1ВМ-701.
Существенная часть времени уходила на подготовку запуска программы, а сами программы выполнялись строго последовательно. Такой режим работы называется последовательной обработкой данных. В целом первый период характеризуется крайне высокой стоимостью вычислительных систем, их малым количеством и низкой эффективностью использования.
Второй период (1955 г.-начало 1960-х гг.). Компьютеры на основе транзисторов. Пакетные операционные системы
С середины 1950-х годов начался следующий период в эволюции вычислительной техники, связанный с появлением новой технической базы — полупроводниковых элементов. Применение транзисторов вместо часто перегоравших электронных ламп привело к повышению надежности компьютеров. Теперь машины могли непрерывно работать достаточно долго, чтобы на них можно было возложить выполнение практически важных задач. Снизилось потребление вычислительными машинами электроэнергии, усовершенствовались системы охлаждения. Размеры компьютеров уменьшились. Снизилась стоимость эксплуатации и обслуживания вычислительной техники. Началось использование ЭВМ коммерческими фирмами. Одновременно наблюдается бурное развитие алгоритмических языков (LISP, COBOL, ALGOL-6O, PL-1 и т.д.). Появляются первые настоящие компиляторы, редакторы связей, библиотеки математических и служебных подпрограмм. Упрощается процесс программирования. Пропадает необходимость взваливать на одних и тех же людей весь процесс разработки и использования компьютеров. Именно в этот период происходит разделение персонала на программистов и операторов, разработчиков вычислительных машин и специалистов по эксплуатации.
Изменяется сам процесс прогона программ. Теперь пользователь приносит программу с входными данными в виде колоды перфокарт и указывает необходимые ресурсы. Такая колода получает название задания. Оператор загружает задание в память машины и запускает его на исполнение. Полученные выходные данные печатаются на принтере, и пользователь получает их обратно через некоторое (довольно продолжительное) время.
Смена запрошенных ресурсов вызывает приостановку выполнения программ, в результате процессор часто простаивает. Для повышения эффективности использования компьютера задания с похожими ресурсами начинают собирать вместе, создавая пакет заданий.
Появляются первые системы пакетной обработки, которые просто автоматизируют запуск одной программы из пакета задругой и тем самым увеличивают коэффициент загрузки процессора. При реализации систем пакетной обработки был разработан формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какую работу он хочет выполнить на вычислительной машине. Системы пакетной обработки стали прообразом современных операционных систем, они были первыми системными программами, предназначенными для управления вычислительным процессом.
Третий период(начало 1960-х — 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ОС
Следующий важный период развития вычислительных машин относится к началу 1960-х — 1980 г. В это время в технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам. Вычислительная техника становится более надежной и дешевой. Растет сложность и количество задач, решаемых компьютерами. Повышается производительность процессоров.
Повышению эффективности использования процессорного времени мешает низкая скорость работы механических устройств ввода-вывода (быстрый считыватель перфокарт мог обработать 1200 перфокарт в минуту, принтеры печатали до 600 строк в минуту). Вместо непосредственного чтения пакета заданий с перфокарт в память, начинают использовать его предварительную запись, сначала на магнитную ленту, а затем и на диск. Когда в процессе выполнения задания требуется ввод данных, они читаются с диска. Точно так же выходная информация сначала копируется в системный буфер и записывается на ленту или диск, а печатается только после завершения задания. Вначале действительные операции ввода-вывода осуществлялись в режиме off-line, то есть с использованием других, более простых, отдельно стоящих компьютеров. В дальнейшем они начинают выполняться на том же компьютере, который производит вычисления, то есть в режиме on-line. Такой прием получает название spooling (сокращение от Simultaneous Peripheral Operation On Line) или подкачки-откачки данных. Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.
Магнитные ленты были устройствами последовательного доступа, то есть информация считывалась с них в том порядке, в каком была записана. Появление магнитного диска, для которого не важен порядок чтения информации, то есть устройства прямого доступа, привело к дальнейшему развитию вычислительных систем. При обработке пакета заданий на магнитной ленте очередность запуска заданий определялась порядком их ввода. При обработке пакета заданий на магнитном диске появилась возможность выбора очередного выполняемого задания. Пакетные системы начинают заниматься планированием заданий: в зависимости от наличия запрошенных ресурсов, срочности вычислений и т. д. на счет выбирается то или иное задание.
Дальнейшее повышение эффективности использования процессора было достигнуто с помощью мультипрограммирования. Идея мультипрограммирования заключается в следующем: пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при однопрограммном режиме, а выполняет другую программу. Когда операция ввода-вывода заканчивается, процессор возвращается к выполнению первой программы. Эта идея напоминает поведение преподавателя и студентов на экзамене. Пока один студент (программа) обдумывает ответ на вопрос (операция ввода-вывода), преподаватель (процессор) выслушивает ответ другого студента (вычисления). Естественно, такая ситуация требует наличия в комнате нескольких студентов. Точно так же мультипрограммирование требует наличия в памяти нескольких программ одновременно. При этом каждая программа загружается в свой участок оперативной памяти, называемый разделом, и не должна влиять на выполнение другой программы. (Студенты сидят за отдельными столами и не подсказывают друг другу.)
Появление мультипрограммирования требует настоящей революции в строении вычислительной системы. Особую роль здесь играет аппаратная поддержка (многие аппаратные новшества появились еще на предыдущем этапе эволюции), наиболее существенные особенности, которой перечислены ниже.
Реализация защитных механизмов. Программы не должны иметь самостоятельного доступа к распределению ресурсов, что приводит к появлению привилегированных и непривилегированных команд. Привилегированные команды, например команды ввода-вывода, могут исполняться только операционной системой. Говорят, что она работает в привилегированном режиме. Переход управления от прикладной программы к ОС сопровождается контролируемой сменой режима. Кроме того, это защита памяти, позволяющая изолировать конкурирующие пользовательские программы друг от друга, а ОС — от программ пользователей.
Наличие прерываний. Внешние прерывания оповещают ОС о том, что произошло асинхронное событие, например, завершилась операция ввода-вывода. Внутренние прерывания (сейчас их принято называть исключительными ситуациями) возникают, когда выполнение программы привело к ситуации, требующей вмешательства ОС, например деление на ноль или попытка нарушения защиты.
Развитие параллелизма в архитектуре. Прямой доступ к памяти и организация каналов ввода-вывода позволили освободить центральный процессор от рутинных операций.
Не менее важна в организации мультипрограммирования роль операционной системы. Она отвечает за следующие операции:
Организация интерфейса между прикладной программой и ОС при помощисистемных вызовов.
Организация очереди из заданий в памяти и выделение процессора одному из заданий требуетпланирования использования процессора.
Переключение с одного задания на другое требует сохранения содержимого регистров и структур данных, необходимых для выполнения задания, иначе говоря, контекста для обеспечения правильного продолжения вычислений.
Поскольку память является ограниченным ресурсом, нужны стратегии управления памятью, то есть требуется упорядочить процессы размещения, замещения и выборки информации из памяти.
Организация хранения информации на внешних носителях в виде файлов и обеспечение доступа к конкретному файлу только определенным категориям пользователей.
Поскольку программам может потребоваться произвести санкционированный обмен данными, необходимо их обеспечить средствами коммуникации.
Для корректного обмена данными необходимо разрешать конфликтные ситуации, возникающие при работе с различными ресурсами, и предусмотреть координацию программами своих действий, т. е. снабдить систему средствами синхронизации. Мультипрограммные системы обеспечили возможность более эффективного использования системных ресурсов (например, процессора, памяти, периферийных устройств), но они еще долго оставались пакетными. Пользователь не мог непосредственно взаимодействовать с заданием и должен был предусмотреть с помощью управляющих карт все возможные ситуации. Отладка программ по-прежнему занимала много времени и требовала изучения многостраничных распечаток содержимого памяти и регистров или использования отладочной печати.
Появление электронно-лучевых дисплеев и переосмысление возможностей применения клавиатур поставили на очередь решение этой проблемы. Логическим расширением систем мультипрограммирования стали time-sharing системы, или системы разделения времени. В них процессор переключается между задачами не только на время операций ввода-вывода, но и просто по прошествии определенного времени. Эти переключения происходят так часто, что пользователи могут взаимодействовать со своими программами во время их выполнения, то есть интерактивно. В результате появляется возможность одновременной работы нескольких пользователей на одной компьютерной системе. У каждого пользователя для этого должна быть хотя бы одна программа в памяти. Чтобы уменьшить ограничения на количество работающих пользователей, была внедрена идея неполного нахождения исполняемой программы в оперативной памяти. Основная часть программы находится на диске и фрагмент, который необходимо в данный момент выполнять, может быть загружен в оперативную память, а ненужный — выкачан обратно на диск. Это реализуется с помощью механизма виртуальной памяти.
Основным достоинством такого механизма является создание иллюзии неограниченной оперативной памяти ЭВМ.
В системах разделения времени пользователь получил возможность эффективно производить отладку программы в интерактивном режиме и записывать информацию на диск, не используя перфокарты, а непосредственно с клавиатуры. Появление файлов привело к необходимости разработки развитых файловых систем.
Параллельно внутренней эволюции вычислительных систем происходила и внешняя их эволюция. До начала этого периода вычислительные комплексы были, как правило, несовместимы. Каждый имел собственную операционную систему, свою систему команд и т. д. В результате программу, успешно работающую на одном типе машин, необходимо было полностью переписывать и заново отлаживать для выполнения на компьютерах другого типа. В начале третьего периода появилась идея создания семейств программно-совместимых машин, работающих под управлением одной и той же операционной системы. Первым семейством программно совместимых компьютеров, построенных на интегральных микросхемах, стала серия машин IBM/360. Разработанное в начале 1960-х годов, это семейство значительно превосходило машины второго поколения по критерию цена/производительность. За ним последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала PDP-11.
Сила «одной семьи» была одновременно и ее слабостью. Широкие возможности этой концепции (наличие всех моделей: от мини-компьютеров до гигантских машин; обилие разнообразной периферии; различное окружение; различные пользователи) порождали сложную и громоздкую операционную систему. Миллионы строчек Ассемблера, написанные тысячами программистов, содержали множество ошибок, что вызывало непрерывный поток публикаций о них и попыток исправления. Только в операционной системе OS/360 содержалось более 1ООО известных ошибок. Тем не менее, идея стандартизации операционных систем была широко внедрена в сознание пользователей и в дальнейшем получила активное развитие.
Четвертый период (с 1980 г. по настоящее время) Персональные компьютеры. Классические, сетевые и распределенные системы
Следующий период в эволюции вычислительных систем связан с появлением больших интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и снижение стоимости микросхем. Компьютер, не отличающийся по архитектуре от PDP-11, по цене и простоте эксплуатации стал доступен отдельному человеку, а не только отделу предприятия или университета. Наступила эра персональных компьютеров. Первоначально персональные компьютеры предназначались для использования одним пользователем в однопрограммном режиме, что повлекло за собой деградацию архитектуры этих ЭВМ и их операционных систем (в частности, пропала необходимость защиты файлов и памяти, планирования заданий и т. п.).
Компьютеры стали использоваться не только специалистами, что потребовало разработки «дружественного» программного обеспечения.
Однако рост сложности и разнообразия задач, решаемых на персональных компьютерах, необходимость повышения надежности их работы привели к возрождению практически всех черт, характерных для архитектуры больших вычислительных систем.
В середине 1980-х годов стали бурно развиваться сети компьютеров, в том числе персональных, работающих под управлением сетевых или распределенных операционных систем.
В сетевых операционных системах пользователи могут получить доступ к ресурсам другого сетевого компьютера, только они должны знать об их наличии и уметь это сделать. Каждая машина в сети работает под управлением своей локальной операционной системы, отличающейся от операционной системы автономного компьютера наличием дополнительных средств (программной поддержкой для сетевых интерфейсных устройств и Доступа к удаленным ресурсам), но эти дополнения не меняют структуру операционной системы.
Распределенная система, напротив, внешне выглядит как обычная автономная система. Пользователь не знает и не должен знать, где хранятся его файлы — на локальной или удаленной машине — и где его программы выполняются. Он может вообще не знать, подключен ли его компьютер к сети. Внутреннее строение распределенной операционной системы имеет существенные отличия от автономных систем.
В дальнейшем автономные операционные системы мы будем называть классическими операционными системами.
Просмотрев этапы развития вычислительных систем, мы можем выделить шесть основных функций, которые выполняли классические операционные системы в процессе эволюции:
планирование заданий и использования процессора;
обеспечение программ средствами коммуникации и синхронизации;
управление памятью;
управление файловой системой;
управление вводом-выводом;
обеспечение безопасности.
Каждая из приведенных функций обычно реализована в виде подсистемы, являющейся структурным компонентом ОС. В каждой операционной системе эти функции, конечно, реализовывались по-своему, в различном объеме. Они не были изначально придуманы как составные части операционных систем, а появились в процессе развития, по мере того как вычислительные системы становились все более удобными, эффективными и безопасными. Эволюция вычислительных систем, созданных человеком, пошла по такому пути, но никто еще не доказал, что это единственно возможный путь их развития. Операционные системы существуют потому, что на данный момент их существование — это разумный способ использования вычислительных систем. Рассмотрение общих принципов и алгоритмов реализации их функций и составляет содержание большей части данного учебного пособия.
Основные понятия, концепции ОС
В процессе эволюции возникло несколько важных концепций, которые стали неотъемлемой частью теории и практики ОС. Рассмотрим и опишем некоторые из них.
Операционная система, как уже было сказано ранее это — совокупность программ, выполняющие ранее рассмотренные функции. Для того чтобы для задач отвести как можно больший объем памяти, операционная система строится таким образом, чтобы постоянно в оперативной памяти располагалась только самая нужная ее часть. Эту часть операционной системы стали называть ядром.
Функции ядра:
Обработка прерываний.
Создание/уничтожение процесса.
Переключение процесса из состояния в состояние.
Диспетчеризация (регулировка).
Приостановка и активизация.
Синхронизация процесса.
Организация взаимодействия между процессами.
Манипулирование БУП.
Поддержка операций ввода/вывода.
Поддержка распределения и перераспределения памяти.
Поддержка работы файловой системы.
Системные вызовы
В любой операционной системе поддерживается механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. В операционных системах наиболее известной советской вычислительной машины БЭСМ-6 соответствующие средства «общения» с ядром назывались экстракодами, в операционных системах IBM они назывались системными макрокомандами и т. д. В ОС Unix такие средства называют системными вызовами.
Системные вызовы (system calls) — это интерфейс между операционной системой и пользовательской программой. Они создают, удаляют и используют различные объекты, главные из которых — процессы и файлы. Пользовательская программа запрашивает сервис у операционной системы, осуществляя системный вызов. Имеются библиотеки процедур, которые загружают машинные регистры определенными параметрами и осуществляют прерывание процессора, после чего управление передается обработчику данного вызова, входящему в ядро операционной системы. Цель таких библиотек — сделать системный вызов похожим на обычный вызов подпрограммы.
Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode). Поэтому системные вызовы иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.
В этом режиме работает код ядра операционной системы, причем исполняется он в адресном пространстве и в контексте вызвавшей его задачи. Таким образом, ядро операционной системы имеет полный доступ к памяти пользовательской программы, и при системном вызове достаточно передать адреса одной или нескольких областей памяти с параметрами вызова и адреса одной или нескольких областей памяти для результатов вызова.
В большинстве операционных систем системный вызов осуществляется командой программного прерывания (INT). Программное прерывание — это синхронное событие, которое может быть повторено при выполнении одного и того же программного кода.
Прерывания
Прерывание (hardware interrupt) — это событие, генерируемое внешним (по отношению к процессору) устройством. Посредством аппаратных прерываний аппаратура либо информирует центральный процессор о том, что произошло какое-либо событие, требующее немедленной реакции (например, пользователь нажал клавишу), либо сообщает о завершении асинхронной операции ввода-вывода (например, закончено чтение данных с диска в основную память). Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Т.е. прерывание – это принудительная передача управления от выполняемой программы к системе (а через нее – к соответствующей программе обработки прерывания), происходящая при возникновении определенного события.
Основная цель введения прерываний – реализация асинхронного режима функционирования и распараллеливание работы отдельных устройств вычислительного комплекса. Механизм прерываний реализуется аппаратно-программными средствами. Структуры систем прерываний (в зависимости от аппаратной архитектуры) могут быть самыми разными, но все они имеют одну общую особенность — прерывание непременно влечет за собой изменение порядка выполнения команд процессором.
Механизм обработки прерываний подразумевает за собой независимо от архитектуры вычислительной системы выполнение некоторой последовательности шагов:
установление факта прерывания (прием сигнала запроса на прерывание) и идентификация прерывания;
запоминание состояния прерванного процесса вычислений;
управление аппаратно передается на подпрограмму обработку прерывания;
сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью аппаратуры;
выполнение программы, связанной с обработкой прерывания. Эта работа может быть выполнена той же подпрограммой, на которую было передано управление на шаге 3, но в операционных системах достаточно часто она реализуется путем последующего вызова соответствующей подпрограммы;
восстановление информации, относящейся к прерванному процессу;
возврат на прерванную программу.
Шаги 1-3 реализуются аппаратно, шаги 4-7 – программно.
Прерывания, возникающие при работе вычислительной системы, можно разделить на два основных класса: внешние (их иногда называют асинхронными) и внутренние (синхронные). Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса, например:
— прерывания от таймера;
— прерывания от внешних устройств;
— прерывания по нарушению питания;
— прерывания с пульта оператора вычислительной системы.
Внутренние прерывания вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями. Примерами являются следующие запросы на прерывание:
— при нарушении адресации (в адресной части выполняемой команды указан запрещенный или несуществующий адрес;
— при делении на ноль;
— от средств контроля (например, вследствие обнаружения ошибки четности, ошибок в работе различных устройств).
Таблица 1. Основные классы прерываний
Программное прерывание | Генерируется в некоторых ситуациях, возникающих в результате выполнения команд. Такими ситуациями могут быть арифметическое переполнение, деление на ноль, попытка выполнить некорректную команду и ссылка на область памяти, доступ к которой пользователю запрещен. |
Прерывание по таймеру | Генерируется таймером процессора. Это прерывание позволяет операционной системе выполнять некоторые свои функции периодически, через заданные промежутки времени. |
Прерывание ввода-вывода | Генерируется контроллером ввода-вывода. Сигнализирует о нормальном завершении операции или о наличии ошибок. |
Аппаратное прерывание | Генерируется при возникновении таких аварийных ситуаций, как, например, падение напряжения в сети иди ошибка контроля четности памяти. |
Важный тип аппаратных прерываний — прерывания таймера, которые генерируются периодически через фиксированный промежуток времени. Прерывания таймера используются операционной системой при планировании процессов. Каждый тип аппаратных прерываний имеет собственный номер, однозначно определяющий источник прерывания.
Аппаратное прерывание — это асинхронное событие, то есть оно возникает вне зависимости от того, какой код исполняется процессором в данный момент. Обработка аппаратного прерывания не должна учитывать, какой процесс является текущим.
Прерывания в основном предназначены для повышения эффективности работы компьютерной системы.
Цикл исполнения программы с прерываниями
В цикле прерывания процессор проверяет наличие сигналов прерываний, свидетельствующих о происшедших прерываниях. При поступлении прерывания процессор приостанавливает работу с текущей программой и выполняет обработчик прерывания. Обработчики прерываний обычно входят в состав операционной системы. Как правило, эти программы определяют природу прерывания и выполняют необходимые действия. Когда обработчик прерываний завершает свою работу, процессор возобновляет выполнение программы пользователя с того места, где она была прервана.
Контрольные вопросы
www.ronl.ru
Министерство общего и профессионального образования
Российской Федерации
КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ
УНИВЕРСИТЕТ
Кафедра вычислительной техники и
автоматизированных систем управления
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине
«Информатика»
на тему
«Основные закономерности развития компьютерных систем»
Выполнил студент гр. | 01-КТ-21 Воловиков О.П. |
Допущен к защите | |
Руководитель проекта | профессор, к.т.н., Частиков А.П. |
Нормоконтроллер | |
(подпись, дата, расшифровка подписи) |
Защищен ___________________ Оценка___________________
(дата)
Члены комиссии | |
(подпись, дата, расшифровка подписи) |
КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ
УНИВЕРСИТЕТ
Кафедра вычислительной техники и
автоматизированных систем управления
Зав. кафедрой
профессор, д.т.н.________Ключко В.И.
ЗАДАНИЕна курсовое проектирование
Студенту: 01-КТ-21 группы 1 курса
факультета КТАС
специальности 2204
Воловикову О.П.
(ф.и.о. шифр)
Тема проекта: «Основные закономерности развития компьютерных систем»
Содержание задания: выявить основные тенденции и закономерности развития компьютерных систем (на основе их современного состояния)
Объем работы:
пояснительная записка к проекту: 23 листа формата А4
Рекомендуемая литература: Частиков А. П. История компьютера
Срок выполнения проекта: с "___"_________ по "___"________2001 г.
Срок защиты: "___"________2001 г.
Дата выдачи задания: "___"________2001 г.
Дата сдачи проекта на кафедру: "___"________2001 г.
Руководитель проекта: профессор, к.т.н., Частиков А.П.
Задание принял студент
(подпись, дата)
РЕФЕРАТ
«Основные закономерности развития компьютерных систем»
Автор: студент группы 01-КТ-21 Воловиков О.П.
Научный руководитель: профессор, к.т.н., Частиков А.П.
Объем работы: 23 л.
Кол-во иллюстраций: 1
Кол-во таблиц: 0
Кол-во источников: 5
Перечень ключевых слов: «компьютерные системы», «развитие компьютеров», «закономерность», «эволюция», «история», «тенденции», «аппаратные средства»
Основные характеристики работы:
Данная работа представляет собой результат небольшой исследовательской деятельности, целью которой является выявление основных закономерностей и тенденций, прослеживающихся в процессе более чем пятидесятилетнего развития компьютерных систем.
В процессе написания реферата использовались научно-популярные исследования (опубликованные в некоторых компьютерных журналах и web-изданиях) различных специалистов в области информационных технологий, а также данные, взятые из собственного опыта автора, причем упор делался на современное состояние рассматриваемой области. Приведенные утверждения иллюстрируются достаточным количеством ярких и понятных примеров.
Необходимо также отметить, что выявленные закономерности и тенденции не подтверждаются математическими выводами или какими-либо теориями, но их истинность основывается на многолетнем опыте развития информационных технологий, а также подтверждается аналитическими работами многих независимых исследователей.
СОДЕРЖАНИЕ
1 Введение 2 Основная часть 2.1 Наследование основных принципов организации 2.2 Вещественно-энергетическая и информационная целостность 2.3 Повышение функциональной и структурной целостности КС 2.4 Наследование основных функций развивающихся систем 2.5 Адекватность функционально-структурной организации назначению системы 2.6 Взаимосвязь показателей качества компьютерных систем 2.7 Относительное и временное разрешение противоречий в КС 2.8 Аппаратные и программные решения 2.9 Совершенствование технологий создания КС, а также их преемственность 2.10 Падение стоимости на компьютеры 2.11 Будущие направления развития функций, реализуемых КС 3 Заключение 4 Список использованных источников | 5 7 7 7 8 8 9 9 11 12 14 15 16 22 23 |
1 Введение
Первые вычислительные машины, разработанные к началу пятидесятых годов, получили название ЭВМ первого поколения. (Классификация по поколениям в основном относилась к технологии производства компонентов. Первое поколение — электронные лампы, второе — транзисторы, третье — микросхемы.) Тогда же формируются два основных направления в архитектуре цифровых вычислительных машин — мэйнфреймы (mainframes) и мини-ЭВМ. Последние появились в 1955–1956 гг. В числе фирм, которые сосредоточили свои усилия в этой области, можно выделить Burroughs (компьютер E-101), Bendix (G-15), Librascope (LGP-30). Принципиальным отличием первого поколения малых ЭВМ от современных «персоналок» является фиксированная конфигурация аппаратных средств. Управление внешними устройствами было централизованным, и подключить какое-либо новое оборудование было невозможно. Неудобство такого подхода очевидно, и в более поздних модификациях G-15 этот недостаток был устранен. Память на магнитном барабане не допускала расширения, и пользователь получал в свое распоряжение следующий ресурс: 220 12-разрядных десятичных слов у E-101; 2176 29-разрядных двоичных слов у G-15; 4096 32-разрядных двоичных слов у LGP-30. Из приведенных характеристик видно, что байтовый формат данных в пятидесятые годы еще не стал стандартом. Система команд LGP-30 включала в себя 16 команд, G-15 предоставляла программисту большие возможности (более 100 команд). Программирование зачастую велось непосредственно в машинных кодах.
Однако, говоря о вычислительной технике тех времен, необходимо вспомнить и о другом, совершенно не похожем на современные компьютеры принципе построения ЭВМ — аналоговом или аналого-цифровом. Средства вычислительной техники, использовавшиеся тогда в составе систем автоматики, были исключительно аналоговыми. Близость этих научных направлений усиливалась еще и тем, что проектирование аналоговых вычислительных машин опиралось на ту же теоретическую базу, что и проектирование систем управления. Устойчивость системы автоматического управления и сходимость вычислительного процесса в аналоговой машине были весьма схожи по своему описанию. Хотя сегодня аналоговая вычислительная техника как разновидность компьютеров и не существует, но методы решения задач, накопленные за достаточно длинную историю существования этих вычислительных машин, используются в оборудовании, основанном на применении процессоров цифровой обработки сигналов (ЦОС). Развитие же цифровых вычислительных машин, которые со временем получили славное имя компьютеры, начиная с пятидесятых годов неразрывно связано с разработкой программного обеспечения.
В данный исторический период существовали программисты, рассматривавшие средства автоматизации своего труда как инструмент для ленивых, портящий качество продукции — то есть прикладной программы. Нужно сказать, что в то время эти утверждения действительно подтверждались практикой, которая, как известно, является критерием истины. Так же, как аналоговые машины по многим показателям превосходили цифровые, так и программы, написанные непосредственно в машинных кодах, оказывались короче, чем результат трансляции программ, подготовленных с использованием алгоритмических языков. Таким образом, правильный путь в те годы определяла не практическая сметка, а способность предугадать прогресс в смежных областях. В духе времени можно было бы даже поставить марксистскую концепцию о роли практики в иронические кавычки, если бы и в Евангелии не было прямого указания на то, что пророков истинных надо отличать от пророков ложных по их делам, то есть по практике. Поэтому не будем иронизировать по поводу ошибочных научных идей пятидесятых годов. Именно в эти годы был предложен алгоритмический язык FORTRAN, получивший впоследствии ироническое название «бессмертный». Уже начинает создаваться программное обеспечение в виде достаточно внушительных библиотек стандартных подпрограмм.
Много воды утекло с тех пор, и сейчас можно по-разному рассуждать о технологических направлениях полувековой давности и имели ли они тот или иной успех. Однако очевидно одно: за эти пятьдесят с лишним лет компьютерная индустрия, а вместе с ней и рассматриваемые в данной работе компьютерные системы (КС) претерпели множество количественных и качественных изменений. Мы же, собственно, попытаемся в некоторой степени проследить путь эволюции и выявить наиболее важные закономерности в развитии этих систем, опираясь как можно больше на нынешнее положение дел в данной отрасли.
Целостность КС, как и любых технических систем, обусловлена зависимостью протекающих в них вещественных, энергетических и информационных процессов преобразования (обработки), хранения, обмена (передачи) и управления. В реальных технических системах процессы преобразования, хранения и обмена вещества, энергии и информации взаимосвязаны. Управление этими процессами осуществляется информационными потоками, материализуемыми вещественными и энергетическими носителями.
Данная закономерность удачно иллюстрируется, в частности, единством и взаимосвязью энергетических и информационных процессов в элементах вакуумно-ламповой, полупроводниковой и интегральной технологий, осуществляющих обработку информации в аналоговой или цифровой форме. При выдаче информации и генерации управляющих воздействий формируются соответствующие информационные последовательности с целью дальнейшего преобразования в энергетические и вещественные воздействия на объект управления с отображением информации о ходе процесса (преобразование формы представления информации).
В процессе обработки информации при энергетическом воздействии осуществляется переключение логических запоминающих элементов процессора и памяти. Если, в свою очередь, рассматривать внутреннюю структуру логических и запоминающих элементов, то нетрудно заметить, что различным информационным изменениям элементов соответствуют определенные изменения в структуре вещества, из которого сделаны эти элементы. В полупроводниковых элементах, например, осуществляется изменение проводимости p-n-перехода, неплохими примерами могут также послужить разнообразные носители информации: в магнитных наличию двоичного нуля/единицы соответствует определенное состояние некоторой области магнитного вещества, в оптических при записи данных происходит изменение оптических свойств поверхности диска. То же можно сказать и о передаче информации – в применяемых интерфейсах она осуществляется посредством распространения электромагнитных колебаний, то есть энергии.
Эта закономерность выражается в функциональной и структурной интеграции отдельных подсистем и сокращении числа промежуточных уровней и видов преобразования вещества, энергии и информации в процессе функционирования КС.
Функциональная целостность рассматривается в ее отношении к внешнему окружению (среде) и обусловливается единством и взаимосвязью функций системы и ее подсистем, а структурная целостность системы рассматривается в отношении ее состава, фиксированной совокупности элементов и связей между ними. В процессе эволюции КС повышение ее целостности может выражаться в том, что сама система получает возможность перейти в подсистему более сложной системы. Прекрасной иллюстрацией этого положения служит микропроцессор, повторивший структуру машин предшествующих поколений и рассматриваемый в 70-х гг. на уровне системы, в дальнейшем превратившийся в элемент мощных суперкомпьютеров.
Из более близких нам примеров можно отметить, скажем, дисковые контроллеры и периферийные контроллеры ввода-вывода, которые долгое время были отдельными устройствами, а теперь встраиваются прямо в чипсет, то есть являются частью системной платы. Вспомним также процессорный L2 кэш – сейчас он составляет с ядром CPU единое целое, хотя недавно выполнялся отдельным блоком, а несколько лет назад вообще устанавливался в специальный слот.
В процессе развития систем определенного класса сохраняется совокупность их основных (базовых) функций. Применительно к компьютерным системам можно утверждать: каждое новое компьютерное поколение сохраняет (воспроизводит) совокупность основных функций, реализуемых компьютерами предшествующего поколения. Какие это функции? PMTC – Processing (обработка), Memory (хранение), Transfer (передача), Control (управление). Все это сохраняется на протяжении всех поколений компьютерных систем. Наиболее интенсивным изменениям подвергаются сервисные функции. Эти изменения направлены на увеличение производительности и совершенствование интерфейса пользователя с системой.
Действительно, ни один из существующих типов КС не выполняет каких-либо функций, кроме вышеуказанных. Единственные изменения, которые происходят с появлением новой КС – это все лучшее выполнение этих функций: новый РС все быстрее производит обработку данных, полученных с устройств ввода, новый сервер имеет все более емкую дисковую систему, больший объем памяти и производительный CPU, новый коммуникационный стандарт обеспечивает большую пропускную способность и надежность.
Эффективными и жизнеспособными являются системы, структура которых максимально соответствует реальным функциям. Два параллельно идущих эволюционных процесса – эволюция функций и эволюция технологий – стимулируют направленное совершенствование функционально-структурной организации КС. Известно следующее утверждение: «В идеальном случае каждому реализуемому алгоритму соответствует определенная структура системы (устройства)». Например, архитектура игрового компьютера должна отличаться от архитектуры сервера: если в первом случае берется не слишком дорогой, но оптимизированный под определенный набор вычислений процессор, оптимальным образом синхронизированные с ним память, графический контроллер и устройства ввода, причем все это, скорее всего, связывается одной-единственной общей шиной, то во втором, очевидно, потребуется многопроцессорная параллельная обработка, ориентированная на многозадачность, более широкий набор шин передачи данных. Однако очевидно, что бесконечное множество алгоритмов практически не может быть отображено на соответствующее множество реальных структур.
Но одни и те же функции могут быть воспроизведены универсальными и специализированными средствами. Таким образом, при формировании структуры КС определенного функционального назначения необходимо разрешать противоречия между «универсальностью» и «специализацией» на всех уровнях организации системы. Применение универсальных элементов позволяет создавать КС с минимальной структурой (то есть с минимальным числом элементов), реализующих заданную совокупность функций (продолжая сравнение, на сервере тоже, в принципе, при желании можно поиграть в Unreal, но вряд ли это будет целесообразно, так как тех же целей можно будет добиться гораздо более простыми средствами).
Основные показатели качества КС – характеристики производительности, энергетические характеристики, характеристики надежности и эффективности систем, экономические показатели – взаимосвязаны и взаимозависимы. Улучшение одной группы показателей качества, например увеличение производительности, ведет к ухудшению других – усложнению структуры, увеличению стоимости, снижению надежности и т. д.
Приведем примеры взаимосвязи и взаимозависимости показателей. В конце 40-х годов Г. Грош сформулировал эмпирический закон, согласно которому пропорциональность КС пропорциональна квадрату стоимости. Следовательно, для того чтобы выполнить некоторую вычислительную работу в два раза дешевле, ее надо выполнить в четыре раза быстрее (К. Е. Найт экспериментально подтвердил справедливость этого закона для первых трех поколений компьютеров). Другой пример взаимозависимости общей производительности векторной супер-ЭВМ от двух режимов ее работы. Известно, что программы, которые могут быть векторизованы компилятором, выполняются в векторном режиме с высокой скоростью, а программы, не содержащие векторного параллелизма (или которые компилятор не обнаруживает), выполняются с низкой скоростью в скалярном режиме. В 1967 г. Дж. Амдал вывел закон, согласно которому в такой системе низкоскоростной режим доминирует в общей производительности.
И напоследок еще один более близкий и современный нам пример. Не секрет, что процессоры Intel Pentium-4 первого поколения (под Socket-423) имеют высокое энергопотребление, большую теплоотдачу и довольно-таки внушительные размеры. Недавно в сети даже ходили шуточки насчет того, что если так пойдет и дальше, то в недалеком будущем компьютеры в обязательном порядке будут поставляться с портативной атомной электростанцией и радиатором водяного охлаждения в комплекте, а материнская плата будет свариваться из стального проката (в том смысле, что иначе она рассыплется от тяжести комплектующих). Конечно, не все так плохо, но определенный резон в этих замечаниях действительно присутствует. Поэтому Intel вскоре перевела процессор на более тонкий техпроцесс, в результате чего удалось сделать его очень маленьким (гораздо меньше, чем CPU предыдущих поколений), экономичным в плане потребления энергии и выделяющим мало тепла. Но с другой стороны, примерно до 10% повысилась стоимость изделия (и это несмотря на то, что площадь чипа, напрямую влияющая на стоимость, уменьшилась). И в чисто технологическом плане изменения не дались даром: новый процессор получился более требовательным к устойчивости параметров питания, так что пришлось оснастить его новым (Socket-478) интерфейсом, где дополнительные контакты обеспечивают нужную стабильность напряжения, подаваемого на процессор.
Или, еще, сравним архитектуры все тех же CPU от AMD и от Intel. Про вторую мы только что упоминали, поэтому рассмотрим продукцию первой. Известно, что эту самую продукцию (CPU Athlon различных модификаций) отличает весьма небольшая по сравнению с Pentium стоимость при примерно равной производительности. Чем этого удалось добиться? Ответ: применением менее высоких (и поэтому более дешевых), чем у Intel, технологий изготовления чипов и усовершенствованием внутренней архитектуры процессора: изощренные алгоритмы кэширования, оптимизированный конвейер и проч. Примерно то же можно сказать и о DDR SDRAM. DDR (Double Data Rate) SDRAM по многим параметрам и способам изготовления мало чем отличается от обычной SDRAM: та же синхронизация шины памяти с системной шиной, практически то же производственное оборудование, энергопотребление, почти не отличающееся от SDRAM, площадь чипа больше лишь на несколько процентов. Изменения заключаются только в применении популярной в последнее время в компонентах PC технологии передачи данных одновременно по двум фронтам сигнала, когда за один такт передаются сразу два пакета данных. В случае с используемой 64-битной шиной это дает 16-байтный за такт. Или, в случае со 133 мегагерцами, уже не 1064, а 2128 Mb/s. Это позволило сразу без значительных материальных и временных издержек создать новую быстродействующую память, причем по цене, мало отличающейся от обычной SDRAM (кстати, DDR SDRAM еще иногда именуют SDRAM-II). То есть мы видим, что новая память при ближайшем рассмотрении есть усовершенствованная старая. В результате стоимость готовой системы процессор+память+системная плата от AMD ниже аналогичной от Intel раза чуть ли не в два, но, очевидно, ее структурная сложность существенно выше.
Противоречия, возникающие в КС в процессе их развития, разрешаются временно на определенных этапах существования систем конкретного класса и в дальнейшем проявляются в трансформированном виде на новом качественном уровне развития. На различных жизненных циклах КС разработчикам приходиться решать «вечные» противоречия между функциональными возможностями и сложностью технической части системы, между объемом хранимой информации и быстродействием устройств памяти.
В середине 60-х годов в связи с появлением первых мини-компьютеров возникла проблема длины слова. Известно: чем больше длина слова, тем большее число команд должно быть у машины [процессора – здесь и далее прим. мои], тем эффективнее реализуется ее проблемная ориентация; чем больше длина слова, тем выше точность обработки данных. Однако стоимость машины растет пропорционально длине слова. Эти противоречивые факторы служат классическим примером компромисса при проектировании, когда приходиться либо поступиться рабочими характеристиками, либо отказаться от экономии.
Кстати, в настоящее время очень типичным примером целой совокупности подобного рода компромиссов являются персональные компьютеры: в них используются куда более дешевые, но и более медленные, чем в крупных серверах и суперкомпьютерах, элементы. А вот пример временного противоречия. Начиная где-то с 486-х процессоров наметился постоянно возрастающий разрыв в скорости CPU и RAM. Нынешний год стал годом широкого освоения очередных новых типов локальной оперативной памяти – RDRAM (Rambus DRAM) и вышеупомянутой DDR SDRAM (в противовес SDRAM, Rambus использует узкую – 16 бит – шину и огромную по сравнению с ней частоту – 400 MHz, что, учитывая также применяемую технологию DDR дает аж 800 MHz). Причина в их появлении очевидна: при применении старой SDRAM процессор большую часть времени будет простаивать из-за неполучения данных (падение производительности в среднем 40%-50% при использовании CPU с частотой 1.5-2.0 GHz). Противоречие разрешить удалось, но также ясно, что пройдет еще немного времени, и придется снова говорить о необходимости повышения быстродействия подсистемы памяти.
Итак, процесс развития компьютерных систем – это разрешение противоречий, с учетом спектра проблем и перечня противоречий, подлежащих разрешению.
Как известно, многие задачи можно решить двумя принципиально разными путями – аппаратным и программным. (Естественно, в конечном счете все вычисления реализуются программно (причем, что интересно, с другой точки зрения можно сказать, что полностью аппаратно, поэтому это не суть важно), но так называемый «программный» метод базируется на использовании ресурсов центрального процессора и основной памяти КС, в то время как «аппаратный» предполагает наличие другого специализированного элемента (ов)). Преимущество первого заключается, как правило, в хорошем быстродействии и независимости от мощности основных элементов компьютера, однако он недостаточно гибок и довольно дорог, а программные решения, наоборот, недороги, универсальны и легко модернизируются, но требуют наличия мощного компьютера.
Вообще, глядя на историю развития КС, можно отметить интересный факт: с совершенствованием технологий многие аппаратные решения заменяются на их программные эмуляторы. Примеров можно привести довольно много. Например, в первых ЭВМ аппаратно реализовался алгоритмический язык программирования, вскоре эта функция стала программной. Или обратимся к так называемой «оконной» технологии. Первым коммерческим «оконным» продуктом был Xerox 8010 (в 1981 году печально известный под именем Star). Затем появились Apple LISA (1983 год) и Macintosh (1984 год). Вслед за этим произошла принципиальная перемена. Следующим продуктом, реализующим «оконную» технологию, стал Topview фирмы IBM (1984), за ним последовали Windows от Microsoft (1985) и позднее – X Windows System (1987) для UNIX. Эти продукты уже представляли программные реализации системы, которые обеспечивали доступность «оконной» технологии на обычных машинах, не оснащенных специальной аппаратурой. Список примеров можно продолжить (скажем, аналогичным путем развивались текстовые редакторы).
Из более же современного можно отметить мультимедийные технологии. Сначала возьмем те же звуковые платы. Еще относительно недавно они были тотально аппаратными, а сегодня любая современная плата обязательно так или иначе использует ресурсы системы (например, WT-таблицы для синтеза MIDI-музыки). Кроме удешевления конечной системы, это также позволило получить большую гибкость в функционировании. Несколько лет назад появилась и сейчас находится на весьма неплохом уровне чисто программная реализация звука (AC’97 кодек), который позволяет при очень небольших затратах получить весьма качественный звук. Также нельзя не упомянуть о разного рода MP3/MPEG1/MPEG2 и проч. декодерах, лет 6-8 назад являлись необходимыми устройствами «истинного» мультимедиа-РС (беру слово в кавычки потому, что понятие абстрактно и очень быстро меняет свою сущность). Сейчас же, когда мощности CPU вполне хватает для декомпрессии MP-потоков, платы MPEG2-декодера хотя еще и можно найти в продаже, но нечасто, а о MPEG1-платах, а тем более аппаратных MP3-плейерах многие даже вообще не слышали, и звучит это сейчас по меньшей мере смешно. Или вот еще: программные модемы, которые в последнее время из-за своей дешевизны получили повсеместное распространение. Или TV-тюнеры. Или программные системы видеомонтажа. Или… В общем, в процессе развития (сиречь повышения мощности) компьютеров наблюдается множество примеров вытеснения аппаратных реализаций программными. Однако хорошо это или плохо, точнее, в какой степени хорошо? Если в общем, то это смотря для чего. Например, использовать сейчас в РС вышеупомянутые MPEG-декодеры (пусть и с самым непревзойденным качеством картинки) и в самом деле абсурдно, так как даже самый хилый из продаваемых в настоящее время процессоров прекрасно справиться с необходимыми вычислениями самостоятельно, а вот та же система видеомонтажа в профессиональной студии вряд ли будет программной – там стоимость чуть ли не 128-й критерий, на первый план выступают качество и надежность. И программные решения в области звука тоже не являются средством на все случаи жизни, хотя у них много очевидных преимуществ. И всякие «выньмодемы» (приношу извинения за «жаргон», но это слово поразительно точно передает сущность предмета) тоже имеют много противников, и автор в их числе, но все же в магазинах их великий выбор, а значит покупают, потому что дешево. Или, например, сетевая сфера: есть множество программ, реализующих маршрутизацию, кэширование трафика, организацию мостов и проч., которые в целях экономии средств обычно оказывается целесообразно применять для небольших серверов. Но будут ли они эти программы сколь либо эффективно работать на крупном серверном комплексе, к которому одновременно обращаются тысячи пользователей? Тут уж никакой процессорной мощности не хватит, придется использовать отдельные устройства и подсистемы. Нельзя однозначно ответить на поставленный вопрос. Но в любом случае побеждает та технология, которая одновременно является наиболее гибкой, качественной, по возможности универсальной и недорогой. Причем время, как правило, лучше всяких прогнозов определяет такие технологии.
Вы можете возразить: какой же общий выраженный переход от аппаратного к программному, когда вот, скажем, лет десять тому назад пользователям персоналок совсем не был знаком термин «графический сопроцессор» (вспомним печально канувшую в лету 3Dfx, подарившей нам трехмерный мир на экранах мониторов…), а сейчас им так или иначе оснащаются даже самые дешевые компьютеры? Однако здесь мы видим другой случай, тоже являющийся закономерностью – несоответствие уровня развития КС уровню развития функций, которые они выполняют (как ни парадоксально сие звучит). То есть я имею ввиду, что возможности аппаратного обеспечения несколько отстают от требований, предъявляемых к ним со стороны программного. А так как задачу выполнить все-таки хочется, то проблему решают экстенсивно: нужны новые возможности? так поставим еще один (другой, третий…) процессор, который и будет заниматься нужным набором вычислений. Примеры аппаратной реализации, впоследствии замененные на программные эмуляторы, как раз подтверждают сказанное, просто впоследствии мы оказываемся на более высоком уровне (возвращаясь к тем же графическим ускорителям, нетрудно заметить, что без них персональные компьютеры еще долго не смогут обойтись, так как современный уровень технологий трехмерной графики еще находиться в зачаточном состоянии (впрочем, «по моему скромному мнению», я не настаиваю), а сегодняшний компьютер без 3D-графики не компьютер).
Данный факт, быть может, не столь очевиден, но определенная тенденция прослеживается, и мы доказали это на примерах.
Более интересной закономерностью является так называемая преемственность технологий. Она заключается в постепенном вырождении данной реализации определенной технологии вследствие ее морального износа и последующим появлением ее же (технологии) снова на более качественно высоком уровне. То есть, говоря проще, имеет место так называемое развитие по спирали – мы ходим по кругу, но с каждым оборотом оказываясь все выше. Безусловно, не абсолютно все подчиняется данному закону (например, отголоски перфокарт вряд ли когда-либо еще появятся), но в IT-индустрии, да и вообще в технике существует множество подобных примеров. Возьмем, например, магнитные ленты. В 80-х годах прошедшего века компьютерная пресса вовсю трубила о скорой их кончине, так как их вроде бы должны заменить дисковые накопители как более миниатюрные и удобные в использовании (тогда, кстати, и появились оптические и магнитооптические носители). Действительно, сейчас стримеры в большинстве компьютеров найти не так-то легко, но у крупных организаций (прежде всего государственных и, в частности, военных) другого выбора все равно (пока..?) нет. Если учесть, что объемы информации стремительно возрастают (в сотни раз за последнее десятилетие), то нетрудно понять, что существующие дисковые накопители оставляют желать лучшего в плане емкости, надежности и не в последнюю очередь стоимости в расчете на мегабайт. А ленты по-прежнему являются самыми емкими (емкость лент уже иногда исчисляется терабайтами) и очень дешевыми носителями, которые, пережив некоторый кратковременный застой (впрочем, а был ли он вообще?), снова живут и здравствуют. Но уже в иной области и в несколько ином виде. Или рассмотрим технологию оптических дисков. Первым подобным известным продуктом, живущим (и пока что неплохо…) и в наши дни, является CD. Который затем трансформировался в DVD. Но уже сейчас емкость DVD является предельно-недостаточной, причем вроде бы дальнейшее развитие DVD представляется непростым. Означает ли это, что оптическая технология исчерпала себя? Вовсе нет. Компания Constellation 3D, например, пытаясь найти соответствующее решение, разработала действующие образцы многослойных (не один десяток; для сравнения: у CD один, у DVD два слоя, и дальнейшее увеличение их количества традиционными методами связано с проблемами затухания луча при прохождении его через верхние слои) FMD-носителей, основанных на способности некоторых материалов флуоресцировать под воздействием света определенной длины волны.
А вот более близкий к пониманию пример. Известно, что с момента появления первых РС процессор с материнской платой соприкасался большей стороной (устанавливался в Socket’овый разъем). Где-то в 1996 году Intel решила оснастить очередной процессор новым интерфейсом, при котором CPU бы вставлялся в слот подобно, скажем, памяти. Однако данное решение за несколько лет эксплуатации обнаружило ряд недостатков, и одним из главных была повышенная стоимость. Поэтому, начиная с 2000-го г., компания свернула производство слотовых процессоров, вернувшись к уже обкатанному варианту. Хотя сначала казалось, что socket – вчерашний день.
Возможность снижения цен стала возможна благодаря повышению производительности труда в данной сфере производства, а также благодаря опыту применения фирмами разнообразных методов удешевления конечного продукта – например, интеграции некоторых устройств на материнскую плату или прямо в чипсет, применению программных решений и проч. Важно также понять, что данная тенденция базируется не только на чистом прогрессе, но во многом на экономических факторах: сейчас существует много фирм, конкурирующих между собой и как следствие стремящихся максимально усовершенствовать товар и снизить цены на него. Правда, многие из них терпят серьезные убытки (было время, например, та же Intel продавала свои Celeron’ы чуть ли не по себестоимости, лишь бы только удержать Low-End рынок, а AMD заявила о получении за 2000-й год значительно меньшей прибыли, чем рассчитывалось; аналогичную ситуацию мы можем наблюдать и со многими другими фирмами, скажем VIA, а 3Dfx вот вообще разорилась…), но зато пользователи остаются в наибольшей выгоде.
Естественно, функциональные возможности КС эволюционируют не менее быстро самих КС, часто, как было показано выше, опережая объективные возможности последних. Как прогнозируют консультанты, в обозримом будущем самое сильное влияние на широкий круг отраслей будут оказывать пять групп технологий: технологии искусственного интеллекта, технологии пользовательских интерфейсов, групповые технологии, сетевые технологии для мультимедиа и инфраструктуры разработки. Помимо этого, специальное значение имеют социальные технологии интернета, объектно-ориентированные системы, параллельная обработка, интеллектуальные агенты и системы, основанные на знаниях. По мнению Хуберта Делани, научного директора Advenced Computing Environments корпорации Gartner Group основными направлениями метаморфирования характера и способов использования компьютеров в последнее время являются:
· Естественные пользовательские интерфейсы. Интерфейсы общения компьютера и человека постепенно становятся в большей степени ориентированными на мышление человека, используют естественные для него средства связи, такие как графика, речь, мимика, жесты и т.д.
· Управление уровнем сложности. Хотя технологические инфраструктуры обеспечивают более высокий уровень абстракции и нововведений, будущие системы информационных технологий будут обладать способностью сопровождать все увеличивающееся число сложных проблем дружественным по отношению к пользователю решениями
· Интеллектуальная помощь. Чтобы удовлетворить потребности людей в быстрой подсказке для ускорения работы, внутри приложений будет использоваться наращиваемый список основанных на знаниях систем, помогающих пользователям выполнить ранжирование задачи от простого к сложному. От себя также отмечу такое явление, как повышение интеллектуальности самих приложений, ибо только что невольно столкнулся с примером, пусть и несколько примитивным: последние несколько абзацев набраны в Word’97 без какого-либо ручного форматирования и вообще с минимальным количеством действий с моей стороны, так как все маркеры, выделения курсивом, выравнивание, интервалы между абзацами, переносы и заглавные буквы ставились редактором автоматически
· Изменяемая модульная структура. Удачные архитектуры будут допускать наращивание и модификацию за счет применения базирующихся на объектно-ориентированных технологиях модульных систем, которые можно легко и недорого модифицировать
· Многообразие форм связи между людьми. Для того, чтобы усилить средства связи, информационные технологии должны будут поддерживать множество форм связи (мультимодальность). Например, пользователь, сидящий в зале заседаний, может получить важное голосовое сообщение на пейджер или компьютер. В данном случае ему нужна утилита распознавания речи, которая расшифрует это сообщение для дальнейшего прочтения
· Независимость доступа от местоположения. Пользователи будут иметь доступ к вычислительным ресурсам независимо от своего местоположения
· Прозрачность местоположения. Данные, обрабатывающие ресурсы, файлы и сообщения автоматически вызываются независимо от их физического расположения
На последних трех пунктах следовало бы остановиться особенно. Ведь по существу поднимается вопрос о таком явлении, как централизация (в той или иной степени). Прежде всего обратимся к истории. Сначала существовал только один путь использования компьютера. Его куда-нибудь ставили и именно в этом месте обрабатывали на нем все данные. Это централизованная модель. Вскоре производительность обработки [информации] на компьютере настолько возросла, что использовать его для работы только одного приложения стало просто расточительством. В результате единственный вычислительный ресурс стал распределяться между несколькими пользователями, находящимися в разных местах. Это уже децентрализованная модель. Прошло время, и появился персональный компьютер. Теперь каждый мог работать за персональным компьютером, зачастую находящимся у него дома, а не быть заложником одной большой удаленной машины. Это все еще продолжение развития децентрализованной модели вычислений.
Сейчас же вновь появляется, если можно так выразиться, призрак прошлого. Во-первых, это всеобщее проникновение IT-технологий во все сферы экономики. Следовательно, возникает вопрос о максимальной эффективности капиталовложений. Но, несмотря на меньшие капитальные вложения, эксплуатация децентрализованной системы обходится значительно дороже и, если не предполагать, что система нужна на год-полтора, дешевле приобрести дорогой мэйнфрейм (естественно, что решаемые задачи должны быть адекватными). Предпосылками создания подобных систем является значительный прогресс в развитии средств передачи данных, например стандарт Fibre Channel, который и создавался специально для организации кластерных систем. Ниже на рис. 1 приведен пример схемы создания сети хранения данных на основе технологии SAN, базирующейся на FC, которая дает сторедж-системам преимущества технологий LAN/WAN и возможности по организации стандартных платформ для систем с высокой готовностью и высокой интенсивностью запросов.
Почти единственным недостатком SAN на сегодня остается относительно высокая цена компонент, но при этом общая стоимость владения для корпоративных систем, построенных с использованием технологии сетей хранения данных, является довольно низкой.
Эффективность внедрения подобных систем хранения и обработки данных подтверждается тем, что многие корпорации, стремясь к максимальной отдаче от капиталовложений, заменили РС на терминалы, подключенные к мощным серверам. Причины эффективности таких решений очевидны: отдельный пользователь не использует весь потенциал своего РС, следовательно, большей производительности при таких же или меньших денежных затратах можно добиться путем распределения централизованных ресурсов между теми, кому они в данный момент нужны.
Другие причины в необходимости высокоэффективных систем (прежде всего систем хранения данных) заключаются во все большем распространении глобальной сети и стремительным ростом объемов хранимой информации. Примером этого роста, например, может служить факт, что когда в Пентагоне после переноса накопленной информации на более емкие ленты тут же выяснилось, что за время, понадобившееся для резервирования, объемы информации возросли настолько, что опять требуется переход на новые носители. Кстати, вот еще одна из современных закономерностей – перенос центра тяжести с процессоро-ориентированных систем на дата-ориентированные системы. Большой вклад в увеличение объема передаваемых и хранимых данных является наметившееся в последнее время создание единого информационного пространства, то есть когда самые разнообразные компьютерные системы и отдельные устройства (локальные сети, персональные компьютеры, мобильные телефоны, PDA и проч.) смогут быть объединены в одну глобальную сеть. Причем при таком раскладе немаловажную роль играет стоимость, что опять-таки говорит о необходимости использования централизованной модели хранения и обработки данных.Рис. 1. Пример организации сети хранения данных с использованием
технологии SAN
Вот как, например, некоторые компании предлагают решить вопрос интернетизации населения. Зачем пользователю интернета дорогостоящий компьютер, когда он по сути является всего лишь связующим элементом? Значительные средства можно будет сэкономить, если использовать примитивный терминал с подключенной к нему клавиатурой и монитором, который будет формировать запросы, послать их на сервер и принимать ответ. Причем один из вариантов предполагает отказ даже от монитора – ведь можно транслировать сигнал на телевизионную антенну, благо телевизор есть почти у каждого.
В заключение пункта позвольте выразить my humble opinion по поводу данного вопроса, дабы понять, о чем же идет речь. Как мне кажется, говорить о централизации в том смысле слова, что все вычисления и хранение данных будет выполняться на серверах, как это нередко понимается, немного наивно. Да, мы только что упомянули о том, что многие корпорации используют централизованные информационные системы в своей деятельности, разрабатываются и уже разработаны различные сетевые решения, но не следует путать одно с другим! Ведь не зря же мы отметили такое понятие, как а декватность организации системы ее назначению. Для корпоративных пользовтелей действительно необходимо хранить данные централизованно и использовать ресурсы сети, так как в таком случае они получают большие возможности при гораздо меньших накладных расходах. Сетевые решения активно распространяются и в обыденной жизни — тот же интернет, мобильная связь по сути являются неплохими примерами активного пользования услугами сети. Но я никак не могу согласиться с тем, что «ставится под сомнение будущее того класса компьютеров, на котором возросла империя Microsoft». Во-первых, полная ориентация на использование сетей вряд ли возможна и сейчас, и в достаточно отдаленном будущем ввиду, попросту говоря, отсутствия присутствия самих сетей. Есть, конечно же, интернет, но эта сеть, изначально существующая как низкоскоростная среда для передачи файлов и сообщений, плохо приспособлена для передачи данных, которые требуют гарантированной пропускной способности и минимальных задержек. А на соответствующую модернизацию или создание другой распределенной сети (сетей) уйдет уйма средств и времени. К тому же в распределенных системах встает проблема несовместимости разнородных компонентов, которые не были спроектированы для того, чтобы работать совместно. Во-вторых же, часто централизация оказывается попросту не нужна (говоря в наших терминах, неадекватна). Сделаем сравнение: в высокоразвитых странах (для конкретности возьмем европейское сообщество) существует прекрасная система общественного городского и междугородного транспорта, услугами которой пользуется много людей. И в то же время почему-то почти у каждого есть непомерно дорогой, нуждающийся в постоянном обслуживании, быстро устаревающий, потребляющий тонны бензина, загрязняющий окружающую среду и вообще как будто бы абсолютно не нужный личный автомобиль, и не каждый спешит отказаться от целого вороха проблем и ездить на работу в метро.
«…мы наблюдаем бурное развитие локальных и глобальных сетей. Сетевые возможности становятся обязательными атрибутами ОС для ПК, а сетевые серверные ОС – ареной конкурентной борьбы ведущих компаний. … Потенциальные возможности сетей… предлагают новые виды доступа к новым типам сетевых функций, которые… окажут глубокое влияние на коммерческие организации и пользователей… Уже сегодня можно видеть, что сети становятся все более всеохватывающими и предоставляют пользователям рабочую среду, где бы они ни оказались…». Бесспорно, со всем этим нельзя не согласиться, но также следует помнить, что любое решение может быть рационально, и для любого найдутся пределы рациональности. Да, создается единое информационное пространство, IT-технологии, основанные на использовании коммуникаций, распространяются все шире; растет роль сетевых компьютеров, требуются новые технологии распределенного хранения данных. Но, по-моему, это ни в коем случае не означает, что персональные компьютеры вскоре исчезнут и вместо них появятся дешевые электронные блокноты, главным элементом которых будет сетевой контроллер. И, как отмечалось выше, причина здесь не только в низком уровне развития сегодняшних средств коммуникации.
Вряд ли речь идет о полной и вездесущей централизации (а даже если вдруг предположить, что в будущем она и наступит, то это будет ой как еще не скоро). То развитие сетевой сферы, которое невозможно не заметить, скорее свидетельствует о широком распространении IT-технологий, а вовсе не о начавшейся в них революции. Впрочем, время покажет.
Какие же выводы можно сделать из всего, что было сказано выше, что нас ждет в обозримом будущем? Во-первых, это снижение стоимости компьютеров массового потребления, что позволит им стать такими же обыденными предметами, как радио- и телевещание. Таким образом, главная черта будущих РС – это не гигагерцы и терабайты, а доступность ираспространенность. Хотя без них тоже никуда не уйдешь, и наращивание мощности будет происходить очень быстро (как мы сказали, примерно в два раза каждый год, причем процесс все ускоряется), что позволит использовать естественные человеку методы взаимодействия с машиной. Во-вторых, это все большее распространение интернета и вообще сетевых технологий, создание единого информационного пространства.
Если же делать прогноз на более отдаленное время, то, помимо всего прочего, нельзя не сказать, что IT-индустрия уже подходит к очередному технологическому барьеру: в том смысле, что дальнейшее наращивание мощностей существующими методами станет нерентабельно либо вообще невозможно. Например, если повышать производительность чипа, то придется увеличивать степень интеграции, и когда-нибудь наступит такой момент, когда начнут сказываться размеры отдельных атомов применяемых материалов. То же и с магнитными носителями – увеличивать плотность записи на современные HDD можно не до бесконечности. По мнению западных аналитиков, этот момент может наступить уже к концу текущего десятилетия. Поэтому различными компаниями ведутся исследования в области создания транзисторов на принципиально иных материалах и применения оптических технологий для хранения информации. Таким образом, человечество, возможно, стоит у порога очередной технологической революции.
Если она произойдет, то, возможно, эволюция пойдет с еще более впечатляющими эффектами. Со временем компьютеры станут изготавливаться из других материалов, возможно, они станут квазибиологическими или бог весть еще какими и, безусловно, очень маленькими; возможно, они обзаведутся мощным интеллектом. А возможно, все будет иначе. Ведь развитие никогда не бывает прямолинейным, и его нельзя предугадать, да и вообще делать прогнозы на будущее – дело неблагодарное.
В любом случае, как мне кажется, эволюция компьютерных систем пока еще находится на зачаточном этапе. То, что мы имеем сейчас, только начало. Если предположить, что 21-й век станет веком информационных технологий, то 20-й являлся всего лишь предпосылкой к их появлению. Однако не будем конкретизировать по поводу того, что они смогут дать людям. Ведь недаром на дверях Intel написано: «It is a way to...» Вместо многоточия каждый может поставить то, что ему больше нравится, что он видит. Путь именно «в...», а вовсе не к бескрайним просторам интернета. Главное только, чтоб этот путь не привел человечество к плачевным последствиям…
· Частиков А. П. История компьютера. Стр. 114-118
· iXBT.com. Владимир Савяк. SAS, NAS, SAN: Шаг к сетям хранения данных (6 ноября 2001 г.)
· Computerworld Россия 20 февраля 1996 г. Кевин Стамф. Ностальгический взгляд на пятидесятилетнюю историю вычислительной техники
· Computerworld Россия 20 февраля 1996 г. Антониетта Поллески. Лицом к лицу с будущим
· Computerworld Россия 16 января 1996 г. Михаил Борисов. Централизация. Удар… Еще удар!
· Некоторые материалы Компьютерры от 30 октября, 6 ноября 2001 г.
www.ronl.ru
Мы будем рассматривать историю развития именно вычислительных, а не операционных систем, потому что hardware и программное обеспечение эволюционировали совместно, оказывая взаимное влияние друг на друга. Появление новых технических возможностей приводило к прорыву в области создания удобных, эффективных и безопасных программ, а свежие идеи в программной области стимулировали поиски новых технических решений. Именно эти критерии — удобство, эффективность и безопасность — играли роль факторов естественного отбора при эволюции вычислительных систем.
Первый период (1945-1955 гг.). Ламповые машины.
Операционных систем нет
Мы начнем исследование развития компьютерных комплексов с появления электронных вычислительных систем (опуская историю механических и электромеханических устройств).
Первые шаги в области разработки электронных вычислительных машин были предприняты в конце Второй Мировой войны. В середине 1940-х годов были созданы первые ламповые вычислительные устройства и появился принцип программы, хранящейся в памяти машины (John Von Neumann, июнь 1945 г.). В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не регулярное использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об операционных системах не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. За пультом мог находиться только один пользователь. Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно — с помощью панели переключателей.
Вычислительная система выполняла одновременно только одну операцию (ввод-вывод или собственно вычисления). Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. В конце этого периода появляется первое системное программное обеспечение: в 1951-1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat Rochester разрабатывает Ассемблер для 1ВМ-701.
Существенная часть времени уходила на подготовку запуска программы, а сами программы выполнялись строго последовательно. Такой режим работы называется последовательной обработкой данных. В целом первый период характеризуется крайне высокой стоимостью вычислительных систем, их малым количеством и низкой эффективностью использования.
Второй период (1955 г.-начало 1960-х гг.). Компьютеры на основе транзисторов. Пакетные операционные системы
С середины 1950-х годов начался следующий период в эволюции вычислительной техники, связанный с появлением новой технической базы — полупроводниковых элементов. Применение транзисторов вместо часто перегоравших электронных ламп привело к повышению надежности компьютеров. Теперь машины могли непрерывно работать достаточно долго, чтобы на них можно было возложить выполнение практически важных задач. Снизилось потребление вычислительными машинами электроэнергии, усовершенствовались системы охлаждения. Размеры компьютеров уменьшились. Снизилась стоимость эксплуатации и обслуживания вычислительной техники. Началось использование ЭВМ коммерческими фирмами. Одновременно наблюдается бурное развитие алгоритмических языков (LISP, COBOL, ALGOL-6O, PL-1 и т.д.). Появляются первые настоящие компиляторы, редакторы связей, библиотеки математических и служебных подпрограмм. Упрощается процесс программирования. Пропадает необходимость взваливать на одних и тех же людей весь процесс разработки и использования компьютеров. Именно в этот период происходит разделение персонала на программистов и операторов, разработчиков вычислительных машин и специалистов по эксплуатации.
Изменяется сам процесс прогона программ. Теперь пользователь приносит программу с входными данными в виде колоды перфокарт и указывает необходимые ресурсы. Такая колода получает название задания. Оператор загружает задание в память машины и запускает его на исполнение. Полученные выходные данные печатаются на принтере, и пользователь получает их обратно через некоторое (довольно продолжительное) время.
Смена запрошенных ресурсов вызывает приостановку выполнения программ, в результате процессор часто простаивает. Для повышения эффективности использования компьютера задания с похожими ресурсами начинают собирать вместе, создавая пакет заданий.
Появляются первые системы пакетной обработки, которые просто автоматизируют запуск одной программы из пакета задругой и тем самым увеличивают коэффициент загрузки процессора. При реализации систем пакетной обработки был разработан формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какую работу он хочет выполнить на вычислительной машине. Системы пакетной обработки стали прообразом современных операционных систем, они были первыми системными программами, предназначенными для управления вычислительным процессом.
Третий период(начало 1960-х — 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ОС
Следующий важный период развития вычислительных машин относится к началу 1960-х — 1980 г. В это время в технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам. Вычислительная техника становится более надежной и дешевой. Растет сложность и количество задач, решаемых компьютерами. Повышается производительность процессоров.
Повышению эффективности использования процессорного времени мешает низкая скорость работы механических устройств ввода-вывода (быстрый считыватель перфокарт мог обработать 1200 перфокарт в минуту, принтеры печатали до 600 строк в минуту). Вместо непосредственного чтения пакета заданий с перфокарт в память, начинают использовать его предварительную запись, сначала на магнитную ленту, а затем и на диск. Когда в процессе выполнения задания требуется ввод данных, они читаются с диска. Точно так же выходная информация сначала копируется в системный буфер и записывается на ленту или диск, а печатается только после завершения задания. Вначале действительные операции ввода-вывода осуществлялись в режиме off-line, то есть с использованием других, более простых, отдельно стоящих компьютеров. В дальнейшем они начинают выполняться на том же компьютере, который производит вычисления, то есть в режиме on-line. Такой прием получает название spooling (сокращение от Simultaneous Peripheral Operation On Line) или подкачки-откачки данных. Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.
Магнитные ленты были устройствами последовательного доступа, то есть информация считывалась с них в том порядке, в каком была записана. Появление магнитного диска, для которого не важен порядок чтения информации, то есть устройства прямого доступа, привело к дальнейшему развитию вычислительных систем. При обработке пакета заданий на магнитной ленте очередность запуска заданий определялась порядком их ввода. При обработке пакета заданий на магнитном диске появилась возможность выбора очередного выполняемого задания. Пакетные системы начинают заниматься планированием заданий: в зависимости от наличия запрошенных ресурсов, срочности вычислений и т. д. на счет выбирается то или иное задание.
Дальнейшее повышение эффективности использования процессора было достигнуто с помощью мультипрограммирования. Идея мультипрограммирования заключается в следующем: пока одна программа выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при однопрограммном режиме, а выполняет другую программу. Когда операция ввода-вывода заканчивается, процессор возвращается к выполнению первой программы. Эта идея напоминает поведение преподавателя и студентов на экзамене. Пока один студент (программа) обдумывает ответ на вопрос (операция ввода-вывода), преподаватель (процессор) выслушивает ответ другого студента (вычисления). Естественно, такая ситуация требует наличия в комнате нескольких студентов. Точно так же мультипрограммирование требует наличия в памяти нескольких программ одновременно. При этом каждая программа загружается в свой участок оперативной памяти, называемый разделом, и не должна влиять на выполнение другой программы. (Студенты сидят за отдельными столами и не подсказывают друг другу.)
Появление мультипрограммирования требует настоящей революции в строении вычислительной системы. Особую роль здесь играет аппаратная поддержка (многие аппаратные новшества появились еще на предыдущем этапе эволюции), наиболее существенные особенности, которой перечислены ниже.
Реализация защитных механизмов. Программы не должны иметь самостоятельного доступа к распределению ресурсов, что приводит к появлению привилегированных и непривилегированных команд. Привилегированные команды, например команды ввода-вывода, могут исполняться только операционной системой. Говорят, что она работает в привилегированном режиме. Переход управления от прикладной программы к ОС сопровождается контролируемой сменой режима. Кроме того, это защита памяти, позволяющая изолировать конкурирующие пользовательские программы друг от друга, а ОС — от программ пользователей.
Наличие прерываний. Внешние прерывания оповещают ОС о том, что произошло асинхронное событие, например, завершилась операция ввода-вывода. Внутренние прерывания (сейчас их принято называть исключительными ситуациями) возникают, когда выполнение программы привело к ситуации, требующей вмешательства ОС, например деление на ноль или попытка нарушения защиты.
Развитие параллелизма в архитектуре. Прямой доступ к памяти и организация каналов ввода-вывода позволили освободить центральный процессор от рутинных операций.
Не менее важна в организации мультипрограммирования роль операционной системы. Она отвечает за следующие операции:
Организация интерфейса между прикладной программой и ОС при помощисистемных вызовов.
Организация очереди из заданий в памяти и выделение процессора одному из заданий требуетпланирования использования процессора.
Переключение с одного задания на другое требует сохранения содержимого регистров и структур данных, необходимых для выполнения задания, иначе говоря, контекста для обеспечения правильного продолжения вычислений.
Поскольку память является ограниченным ресурсом, нужны стратегии управления памятью, то есть требуется упорядочить процессы размещения, замещения и выборки информации из памяти.
Организация хранения информации на внешних носителях в виде файлов и обеспечение доступа к конкретному файлу только определенным категориям пользователей.
Поскольку программам может потребоваться произвести санкционированный обмен данными, необходимо их обеспечить средствами коммуникации.
Для корректного обмена данными необходимо разрешать конфликтные ситуации, возникающие при работе с различными ресурсами, и предусмотреть координацию программами своих действий, т. е. снабдить систему средствами синхронизации. Мультипрограммные системы обеспечили возможность более эффективного использования системных ресурсов (например, процессора, памяти, периферийных устройств), но они еще долго оставались пакетными. Пользователь не мог непосредственно взаимодействовать с заданием и должен был предусмотреть с помощью управляющих карт все возможные ситуации. Отладка программ по-прежнему занимала много времени и требовала изучения многостраничных распечаток содержимого памяти и регистров или использования отладочной печати.
Появление электронно-лучевых дисплеев и переосмысление возможностей применения клавиатур поставили на очередь решение этой проблемы. Логическим расширением систем мультипрограммирования стали time-sharing системы, или системы разделения времени. В них процессор переключается между задачами не только на время операций ввода-вывода, но и просто по прошествии определенного времени. Эти переключения происходят так часто, что пользователи могут взаимодействовать со своими программами во время их выполнения, то есть интерактивно. В результате появляется возможность одновременной работы нескольких пользователей на одной компьютерной системе. У каждого пользователя для этого должна быть хотя бы одна программа в памяти. Чтобы уменьшить ограничения на количество работающих пользователей, была внедрена идея неполного нахождения исполняемой программы в оперативной памяти. Основная часть программы находится на диске и фрагмент, который необходимо в данный момент выполнять, может быть загружен в оперативную память, а ненужный — выкачан обратно на диск. Это реализуется с помощью механизма виртуальной памяти.
Основным достоинством такого механизма является создание иллюзии неограниченной оперативной памяти ЭВМ.
В системах разделения времени пользователь получил возможность эффективно производить отладку программы в интерактивном режиме и записывать информацию на диск, не используя перфокарты, а непосредственно с клавиатуры. Появление файлов привело к необходимости разработки развитых файловых систем.
Параллельно внутренней эволюции вычислительных систем происходила и внешняя их эволюция. До начала этого периода вычислительные комплексы были, как правило, несовместимы. Каждый имел собственную операционную систему, свою систему команд и т. д. В результате программу, успешно работающую на одном типе машин, необходимо было полностью переписывать и заново отлаживать для выполнения на компьютерах другого типа. В начале третьего периода появилась идея создания семейств программно-совместимых машин, работающих под управлением одной и той же операционной системы. Первым семейством программно совместимых компьютеров, построенных на интегральных микросхемах, стала серия машин IBM/360. Разработанное в начале 1960-х годов, это семейство значительно превосходило машины второго поколения по критерию цена/производительность. За ним последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала PDP-11.
Сила «одной семьи» была одновременно и ее слабостью. Широкие возможности этой концепции (наличие всех моделей: от мини-компьютеров до гигантских машин; обилие разнообразной периферии; различное окружение; различные пользователи) порождали сложную и громоздкую операционную систему. Миллионы строчек Ассемблера, написанные тысячами программистов, содержали множество ошибок, что вызывало непрерывный поток публикаций о них и попыток исправления. Только в операционной системе OS/360 содержалось более 1ООО известных ошибок. Тем не менее, идея стандартизации операционных систем была широко внедрена в сознание пользователей и в дальнейшем получила активное развитие.
Четвертый период (с 1980 г. по настоящее время) Персональные компьютеры. Классические, сетевые и распределенные системы
Следующий период в эволюции вычислительных систем связан с появлением больших интегральных схем (БИС). В эти годы произошло резкое возрастание степени интеграции и снижение стоимости микросхем. Компьютер, не отличающийся по архитектуре от PDP-11, по цене и простоте эксплуатации стал доступен отдельному человеку, а не только отделу предприятия или университета. Наступила эра персональных компьютеров. Первоначально персональные компьютеры предназначались для использования одним пользователем в однопрограммном режиме, что повлекло за собой деградацию архитектуры этих ЭВМ и их операционных систем (в частности, пропала необходимость защиты файлов и памяти, планирования заданий и т. п.).
Компьютеры стали использоваться не только специалистами, что потребовало разработки «дружественного» программного обеспечения.
Однако рост сложности и разнообразия задач, решаемых на персональных компьютерах, необходимость повышения надежности их работы привели к возрождению практически всех черт, характерных для архитектуры больших вычислительных систем.
В середине 1980-х годов стали бурно развиваться сети компьютеров, в том числе персональных, работающих под управлением сетевых или распределенных операционных систем.
В сетевых операционных системах пользователи могут получить доступ к ресурсам другого сетевого компьютера, только они должны знать об их наличии и уметь это сделать. Каждая машина в сети работает под управлением своей локальной операционной системы, отличающейся от операционной системы автономного компьютера наличием дополнительных средств (программной поддержкой для сетевых интерфейсных устройств и Доступа к удаленным ресурсам), но эти дополнения не меняют структуру операционной системы.
Распределенная система, напротив, внешне выглядит как обычная автономная система. Пользователь не знает и не должен знать, где хранятся его файлы — на локальной или удаленной машине — и где его программы выполняются. Он может вообще не знать, подключен ли его компьютер к сети. Внутреннее строение распределенной операционной системы имеет существенные отличия от автономных систем.
В дальнейшем автономные операционные системы мы будем называть классическими операционными системами.
Просмотрев этапы развития вычислительных систем, мы можем выделить шесть основных функций, которые выполняли классические операционные системы в процессе эволюции:
планирование заданий и использования процессора;
обеспечение программ средствами коммуникации и синхронизации;
управление памятью;
управление файловой системой;
управление вводом-выводом;
обеспечение безопасности.
Каждая из приведенных функций обычно реализована в виде подсистемы, являющейся структурным компонентом ОС. В каждой операционной системе эти функции, конечно, реализовывались по-своему, в различном объеме. Они не были изначально придуманы как составные части операционных систем, а появились в процессе развития, по мере того как вычислительные системы становились все более удобными, эффективными и безопасными. Эволюция вычислительных систем, созданных человеком, пошла по такому пути, но никто еще не доказал, что это единственно возможный путь их развития. Операционные системы существуют потому, что на данный момент их существование — это разумный способ использования вычислительных систем. Рассмотрение общих принципов и алгоритмов реализации их функций и составляет содержание большей части данного учебного пособия.
Основные понятия, концепции ОС
В процессе эволюции возникло несколько важных концепций, которые стали неотъемлемой частью теории и практики ОС. Рассмотрим и опишем некоторые из них.
Операционная система, как уже было сказано ранее это — совокупность программ, выполняющие ранее рассмотренные функции. Для того чтобы для задач отвести как можно больший объем памяти, операционная система строится таким образом, чтобы постоянно в оперативной памяти располагалась только самая нужная ее часть. Эту часть операционной системы стали называть ядром.
Функции ядра:
Обработка прерываний.
Создание/уничтожение процесса.
Переключение процесса из состояния в состояние.
Диспетчеризация (регулировка).
Приостановка и активизация.
Синхронизация процесса.
Организация взаимодействия между процессами.
Манипулирование БУП.
Поддержка операций ввода/вывода.
Поддержка распределения и перераспределения памяти.
Поддержка работы файловой системы.
Системные вызовы
В любой операционной системе поддерживается механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. В операционных системах наиболее известной советской вычислительной машины БЭСМ-6 соответствующие средства «общения» с ядром назывались экстракодами, в операционных системах IBM они назывались системными макрокомандами и т. д. В ОС Unix такие средства называют системными вызовами.
Системные вызовы (system calls) — это интерфейс между операционной системой и пользовательской программой. Они создают, удаляют и используют различные объекты, главные из которых — процессы и файлы. Пользовательская программа запрашивает сервис у операционной системы, осуществляя системный вызов. Имеются библиотеки процедур, которые загружают машинные регистры определенными параметрами и осуществляют прерывание процессора, после чего управление передается обработчику данного вызова, входящему в ядро операционной системы. Цель таких библиотек — сделать системный вызов похожим на обычный вызов подпрограммы.
Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode). Поэтому системные вызовы иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.
В этом режиме работает код ядра операционной системы, причем исполняется он в адресном пространстве и в контексте вызвавшей его задачи. Таким образом, ядро операционной системы имеет полный доступ к памяти пользовательской программы, и при системном вызове достаточно передать адреса одной или нескольких областей памяти с параметрами вызова и адреса одной или нескольких областей памяти для результатов вызова.
В большинстве операционных систем системный вызов осуществляется командой программного прерывания (INT). Программное прерывание — это синхронное событие, которое может быть повторено при выполнении одного и того же программного кода.
Прерывания
Прерывание (hardware interrupt) — это событие, генерируемое внешним (по отношению к процессору) устройством. Посредством аппаратных прерываний аппаратура либо информирует центральный процессор о том, что произошло какое-либо событие, требующее немедленной реакции (например, пользователь нажал клавишу), либо сообщает о завершении асинхронной операции ввода-вывода (например, закончено чтение данных с диска в основную память). Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Т.е. прерывание – это принудительная передача управления от выполняемой программы к системе (а через нее – к соответствующей программе обработки прерывания), происходящая при возникновении определенного события.
Основная цель введения прерываний – реализация асинхронного режима функционирования и распараллеливание работы отдельных устройств вычислительного комплекса. Механизм прерываний реализуется аппаратно-программными средствами. Структуры систем прерываний (в зависимости от аппаратной архитектуры) могут быть самыми разными, но все они имеют одну общую особенность — прерывание непременно влечет за собой изменение порядка выполнения команд процессором.
Механизм обработки прерываний подразумевает за собой независимо от архитектуры вычислительной системы выполнение некоторой последовательности шагов:
установление факта прерывания (прием сигнала запроса на прерывание) и идентификация прерывания;
запоминание состояния прерванного процесса вычислений;
управление аппаратно передается на подпрограмму обработку прерывания;
сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью аппаратуры;
выполнение программы, связанной с обработкой прерывания. Эта работа может быть выполнена той же подпрограммой, на которую было передано управление на шаге 3, но в операционных системах достаточно часто она реализуется путем последующего вызова соответствующей подпрограммы;
восстановление информации, относящейся к прерванному процессу;
возврат на прерванную программу.
Шаги 1-3 реализуются аппаратно, шаги 4-7 – программно.
Прерывания, возникающие при работе вычислительной системы, можно разделить на два основных класса: внешние (их иногда называют асинхронными) и внутренние (синхронные). Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса, например:
— прерывания от таймера;
— прерывания от внешних устройств;
— прерывания по нарушению питания;
— прерывания с пульта оператора вычислительной системы.
Внутренние прерывания вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями. Примерами являются следующие запросы на прерывание:
— при нарушении адресации (в адресной части выполняемой команды указан запрещенный или несуществующий адрес;
— при делении на ноль;
— от средств контроля (например, вследствие обнаружения ошибки четности, ошибок в работе различных устройств).
Таблица 1. Основные классы прерываний
Программное прерывание | Генерируется в некоторых ситуациях, возникающих в результате выполнения команд. Такими ситуациями могут быть арифметическое переполнение, деление на ноль, попытка выполнить некорректную команду и ссылка на область памяти, доступ к которой пользователю запрещен. |
Прерывание по таймеру | Генерируется таймером процессора. Это прерывание позволяет операционной системе выполнять некоторые свои функции периодически, через заданные промежутки времени. |
Прерывание ввода-вывода | Генерируется контроллером ввода-вывода. Сигнализирует о нормальном завершении операции или о наличии ошибок. |
Аппаратное прерывание | Генерируется при возникновении таких аварийных ситуаций, как, например, падение напряжения в сети иди ошибка контроля четности памяти. |
Важный тип аппаратных прерываний — прерывания таймера, которые генерируются периодически через фиксированный промежуток времени. Прерывания таймера используются операционной системой при планировании процессов. Каждый тип аппаратных прерываний имеет собственный номер, однозначно определяющий источник прерывания.
Аппаратное прерывание — это асинхронное событие, то есть оно возникает вне зависимости от того, какой код исполняется процессором в данный момент. Обработка аппаратного прерывания не должна учитывать, какой процесс является текущим.
Прерывания в основном предназначены для повышения эффективности работы компьютерной системы.
Цикл исполнения программы с прерываниями
В цикле прерывания процессор проверяет наличие сигналов прерываний, свидетельствующих о происшедших прерываниях. При поступлении прерывания процессор приостанавливает работу с текущей программой и выполняет обработчик прерывания. Обработчики прерываний обычно входят в состав операционной системы. Как правило, эти программы определяют природу прерывания и выполняют необходимые действия. Когда обработчик прерываний завершает свою работу, процессор возобновляет выполнение программы пользователя с того места, где она была прервана.
Контрольные вопросы
www.ronl.ru
Российской ФедерацииКУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ
УНИВЕРСИТЕТКафедра вычислительной техники и
автоматизированных систем управления
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работепо дисциплине
"Информатика"
на тему«Основные закономерности развития компьютерных систем»
Выполнил студент гр. | 01-КТ-21 Воловиков О.П. | ||||
Допущен к защите | |||||
Руководитель проекта | профессор, к.т.н., Частиков А.П. | ||||
Нормоконтроллер | |||||
(подпись, дата, расшифровка подписи) | |||||
Защищен ___________________ Оценка___________________
(дата)
Члены комиссии | |
(подпись, дата, расшифровка подписи) |
УНИВЕРСИТЕТКафедра вычислительной техники и
автоматизированных систем управления
профессор, д.т.н.________Ключко В.И.ЗАДАНИЕ на курсовое проектированиеСтуденту: 01-КТ-21 группы 1 курсафакультета КТАС
специальности 2204
Воловикову О.П.
(ф.и.о. шифр)Тема проекта: «Основные закономерности развития компьютерных систем»Содержание задания: выявить основные тенденции и закономерности развития компьютерных систем (на основе их современного состояния)Объем работы:
пояснительная записка к проекту: 23 листа формата А4Рекомендуемая литература: Частиков А. П. История компьютераСрок выполнения проекта: с "___"_________ по "___"________2001 г.
Срок защиты: "___"________2001 г.
Дата выдачи задания: "___"________2001 г.
Дата сдачи проекта на кафедру: "___"________2001 г.Руководитель проекта: профессор, к.т.н., Частиков А.П.Задание принял студент
(подпись, дата)
РЕФЕРАТ«Основные закономерности развития компьютерных систем»Автор: студент группы 01-КТ-21 Воловиков О.П.
Научный руководитель: профессор, к.т.н., Частиков А.П.Объем работы: 23 л.
Кол-во иллюстраций: 1
Кол-во таблиц: 0
Кол-во источников: 5 Перечень ключевых слов: «компьютерные системы», «развитие компьютеров», «закономерность», «эволюция», «история», «тенденции», «аппаратные средства»Основные характеристики работы: Данная работа представляет собой результат небольшой исследовательской деятельности, целью которой является выявление основных закономерностей и тенденций, прослеживающихся в процессе более чем пятидесятилетнего развития компьютерных систем.
В процессе написания реферата использовались научно-популярные исследования (опубликованные в некоторых компьютерных журналах и web-изданиях) различных специалистов в области информационных технологий, а также данные, взятые из собственного опыта автора, причем упор делался на современное состояние рассматриваемой области. Приведенные утверждения иллюстрируются достаточным количеством ярких и понятных примеров.
Необходимо также отметить, что выявленные закономерности и тенденции не подтверждаются математическими выводами или какими-либо теориями, но их истинность основывается на многолетнем опыте развития информационных технологий, а также подтверждается аналитическими работами многих независимых исследователей. СОДЕРЖАНИЕ
1 Введение 2 Основная часть 2.1 Наследование основных принципов организации 2.2 Вещественно-энергетическая и информационная целостность 2.3 Повышение функциональной и структурной целостности КС 2.4 Наследование основных функций развивающихся систем 2.5 Адекватность функционально-структурной организации назначению системы 2.6 Взаимосвязь показателей качества компьютерных систем 2.7 Относительное и временное разрешение противоречий в КС 2.8 Аппаратные и программные решения 2.9 Совершенствование технологий создания КС, а также их преемственность 2.10 Падение стоимости на компьютеры 2.11 Будущие направления развития функций, реализуемых КС 3 Заключение4 Список использованных источников | 57 7 7 8 89 9 11 1214 15 162223 |
1 ВведениеПервые вычислительные машины, разработанные к началу пятидесятых годов, получили название ЭВМ первого поколения. (Классификация по поколениям в основном относилась к технологии производства компонентов. Первое поколение - электронные лампы, второе - транзисторы, третье - микросхемы.) Тогда же формируются два основных направления в архитектуре цифровых вычислительных машин — мэйнфреймы (mainframes) и мини-ЭВМ. Последние появились в 1955–1956 гг. В числе фирм, которые сосредоточили свои усилия в этой области, можно выделить Burroughs (компьютер E-101), Bendix (G-15), Librascope (LGP-30). Принципиальным отличием первого поколения малых ЭВМ от современных «персоналок» является фиксированная конфигурация аппаратных средств. Управление внешними устройствами было централизованным, и подключить какое-либо новое оборудование было невозможно. Неудобство такого подхода очевидно, и в более поздних модификациях G-15 этот недостаток был устранен. Память на магнитном барабане не допускала расширения, и пользователь получал в свое распоряжение следующий ресурс: 220 12-разрядных десятичных слов у E-101; 2176 29-разрядных двоичных слов у G-15; 4096 32-разрядных двоичных слов у LGP-30. Из приведенных характеристик видно, что байтовый формат данных в пятидесятые годы еще не стал стандартом. Система команд LGP-30 включала в себя 16 команд, G-15 предоставляла программисту большие возможности (более 100 команд). Программирование зачастую велось непосредственно в машинных кодах.
Однако, говоря о вычислительной технике тех времен, необходимо вспомнить и о другом, совершенно не похожем на современные компьютеры принципе построения ЭВМ — аналоговом или аналого-цифровом. Средства вычислительной техники, использовавшиеся тогда в составе систем автоматики, были исключительно аналоговыми. Близость этих научных направлений усиливалась еще и тем, что проектирование аналоговых вычислительных машин опиралось на ту же теоретическую базу, что и проектирование систем управления. Устойчивость системы автоматического управления и сходимость вычислительного процесса в аналоговой машине были весьма схожи по своему описанию. Хотя сегодня аналоговая вычислительная техника как разновидность компьютеров и не существует, но методы решения задач, накопленные за достаточно длинную историю существования этих вычислительных машин, используются в оборудовании, основанном на применении процессоров цифровой обработки сигналов (ЦОС). Развитие же цифровых вычислительных машин, которые со временем получили славное имя компьютеры, начиная с пятидесятых годов неразрывно связано с разработкой программного обеспечения.
В данный исторический период существовали программисты, рассматривавшие средства автоматизации своего труда как инструмент для ленивых, портящий качество продукции — то есть прикладной программы. Нужно сказать, что в то время эти утверждения действительно подтверждались практикой, которая, как известно, является критерием истины. Так же, как аналоговые машины по многим показателям превосходили цифровые, так и программы, написанные непосредственно в машинных кодах, оказывались короче, чем результат трансляции программ, подготовленных с использованием алгоритмических языков. Таким образом, правильный путь в те годы определяла не практическая сметка, а способность предугадать прогресс в смежных областях. В духе времени можно было бы даже поставить марксистскую концепцию о роли практики в иронические кавычки, если бы и в Евангелии не было прямого указания на то, что пророков истинных надо отличать от пророков ложных по их делам, то есть по практике. Поэтому не будем иронизировать по поводу ошибочных научных идей пятидесятых годов. Именно в эти годы был предложен алгоритмический язык FORTRAN, получивший впоследствии ироническое название «бессмертный». Уже начинает создаваться программное обеспечение в виде достаточно внушительных библиотек стандартных подпрограмм.
Много воды утекло с тех пор, и сейчас можно по-разному рассуждать о технологических направлениях полувековой давности и имели ли они тот или иной успех. Однако очевидно одно: за эти пятьдесят с лишним лет компьютерная индустрия, а вместе с ней и рассматриваемые в данной работе компьютерные системы (КС) претерпели множество количественных и качественных изменений. Мы же, собственно, попытаемся в некоторой степени проследить путь эволюции и выявить наиболее важные закономерности в развитии этих систем, опираясь как можно больше на нынешнее положение дел в данной отрасли.
Данная закономерность удачно иллюстрируется, в частности, единством и взаимосвязью энергетических и информационных процессов в элементах вакуумно-ламповой, полупроводниковой и интегральной технологий, осуществляющих обработку информации в аналоговой или цифровой форме. При выдаче информации и генерации управляющих воздействий формируются соответствующие информационные последовательности с целью дальнейшего преобразования в энергетические и вещественные воздействия на объект управления с отображением информации о ходе процесса (преобразование формы представления информации).
В процессе обработки информации при энергетическом воздействии осуществляется переключение логических запоминающих элементов процессора и памяти. Если, в свою очередь, рассматривать внутреннюю структуру логических и запоминающих элементов, то нетрудно заметить, что различным информационным изменениям элементов соответствуют определенные изменения в структуре вещества, из которого сделаны эти элементы. В полупроводниковых элементах, например, осуществляется изменение проводимости p-n-перехода, неплохими примерами могут также послужить разнообразные носители информации: в магнитных наличию двоичного нуля/единицы соответствует определенное состояние некоторой области магнитного вещества, в оптических при записи данных происходит изменение оптических свойств поверхности диска. То же можно сказать и о передаче информации – в применяемых интерфейсах она осуществляется посредством распространения электромагнитных колебаний, то есть энергии.
Функциональная целостность рассматривается в ее отношении к внешнему окружению (среде) и обусловливается единством и взаимосвязью функций системы и ее подсистем, а структурная целостность системы рассматривается в отношении ее состава, фиксированной совокупности элементов и связей между ними. В процессе эволюции КС повышение ее целостности может выражаться в том, что сама система получает возможность перейти в подсистему более сложной системы. Прекрасной иллюстрацией этого положения служит микропроцессор, повторивший структуру машин предшествующих поколений и рассматриваемый в 70-х гг. на уровне системы, в дальнейшем превратившийся в элемент мощных суперкомпьютеров.
Из более близких нам примеров можно отметить, скажем, дисковые контроллеры и периферийные контроллеры ввода-вывода, которые долгое время были отдельными устройствами, а теперь встраиваются прямо в чипсет, то есть являются частью системной платы. Вспомним также процессорный L2 кэш – сейчас он составляет с ядром CPU единое целое, хотя недавно выполнялся отдельным блоком, а несколько лет назад вообще устанавливался в специальный слот.
Действительно, ни один из существующих типов КС не выполняет каких-либо функций, кроме вышеуказанных. Единственные изменения, которые происходят с появлением новой КС – это все лучшее выполнение этих функций: новый РС все быстрее производит обработку данных, полученных с устройств ввода, новый сервер имеет все более емкую дисковую систему, больший объем памяти и производительный CPU, новый коммуникационный стандарт обеспечивает большую пропускную способность и надежность.
Но одни и те же функции могут быть воспроизведены универсальными и специализированными средствами. Таким образом, при формировании структуры КС определенного функционального назначения необходимо разрешать противоречия между «универсальностью» и «специализацией» на всех уровнях организации системы. Применение универсальных элементов позволяет создавать КС с минимальной структурой (то есть с минимальным числом элементов), реализующих заданную совокупность функций (продолжая сравнение, на сервере тоже, в принципе, при желании можно поиграть в Unreal, но вряд ли это будет целесообразно, так как тех же целей можно будет добиться гораздо более простыми средствами).
Приведем примеры взаимосвязи и взаимозависимости показателей. В конце 40-х годов Г. Грош сформулировал эмпирический закон, согласно которому пропорциональность КС пропорциональна квадрату стоимости. Следовательно, для того чтобы выполнить некоторую вычислительную работу в два раза дешевле, ее надо выполнить в четыре раза быстрее (К. Е. Найт экспериментально подтвердил справедливость этого закона для первых трех поколений компьютеров). Другой пример взаимозависимости общей производительности векторной супер-ЭВМ от двух режимов ее работы. Известно, что программы, которые могут быть векторизованы компилятором, выполняются в векторном режиме с высокой скоростью, а программы, не содержащие векторного параллелизма (или которые компилятор не обнаруживает), выполняются с низкой скоростью в скалярном режиме. В 1967 г. Дж. Амдал вывел закон, согласно которому в такой системе низкоскоростной режим доминирует в общей производительности.
И напоследок еще один более близкий и современный нам пример. Не секрет, что процессоры Intel Pentium-4 первого поколения (под Socket-423) имеют высокое энергопотребление, большую теплоотдачу и довольно-таки внушительные размеры. Недавно в сети даже ходили шуточки насчет того, что если так пойдет и дальше, то в недалеком будущем компьютеры в обязательном порядке будут поставляться с портативной атомной электростанцией и радиатором водяного охлаждения в комплекте, а материнская плата будет свариваться из стального проката (в том смысле, что иначе она рассыплется от тяжести комплектующих). Конечно, не все так плохо, но определенный резон в этих замечаниях действительно присутствует. Поэтому Intel вскоре перевела процессор на более тонкий техпроцесс, в результате чего удалось сделать его очень маленьким (гораздо меньше, чем CPU предыдущих поколений), экономичным в плане потребления энергии и выделяющим мало тепла. Но с другой стороны, примерно до 10% повысилась стоимость изделия (и это несмотря на то, что площадь чипа, напрямую влияющая на стоимость, уменьшилась). И в чисто технологическом плане изменения не дались даром: новый процессор получился более требовательным к устойчивости параметров питания, так что пришлось оснастить его новым (Socket-478) интерфейсом, где дополнительные контакты обеспечивают нужную стабильность напряжения, подаваемого на процессор.
Или, еще, сравним архитектуры все тех же CPU от AMD и от Intel. Про вторую мы только что упоминали, поэтому рассмотрим продукцию первой. Известно, что эту самую продукцию (CPU Athlon различных модификаций) отличает весьма небольшая по сравнению с Pentium стоимость при примерно равной производительности. Чем этого удалось добиться? Ответ: применением менее высоких (и поэтому более дешевых), чем у Intel, технологий изготовления чипов и усовершенствованием внутренней архитектуры процессора: изощренные алгоритмы кэширования, оптимизированный конвейер и проч. Примерно то же можно сказать и о DDR SDRAM. DDR (Double Data Rate) SDRAM по многим параметрам и способам изготовления мало чем отличается от обычной SDRAM: та же синхронизация шины памяти с системной шиной, практически то же производственное оборудование, энергопотребление, почти не отличающееся от SDRAM, площадь чипа больше лишь на несколько процентов. Изменения заключаются только в применении популярной в последнее время в компонентах PC технологии передачи данных одновременно по двум фронтам сигнала, когда за один такт передаются сразу два пакета данных. В случае с используемой 64-битной шиной это дает 16-байтный за такт. Или, в случае со 133 мегагерцами, уже не 1064, а 2128 Mb/s. Это позволило сразу без значительных материальных и временных издержек создать новую быстродействующую память, причем по цене, мало отличающейся от обычной SDRAM (кстати, DDR SDRAM еще иногда именуют SDRAM-II). То есть мы видим, что новая память при ближайшем рассмотрении есть усовершенствованная старая. В результате стоимость готовой системы процессор+память+системная плата от AMD ниже аналогичной от Intel раза чуть ли не в два, но, очевидно, ее структурная сложность существенно выше.
В середине 60-х годов в связи с появлением первых мини-компьютеров возникла проблема длины слова. Известно: чем больше длина слова, тем большее число команд должно быть у машины [процессора – здесь и далее прим. мои], тем эффективнее реализуется ее проблемная ориентация; чем больше длина слова, тем выше точность обработки данных. Однако стоимость машины растет пропорционально длине слова. Эти противоречивые факторы служат классическим примером компромисса при проектировании, когда приходиться либо поступиться рабочими характеристиками, либо отказаться от экономии.
Кстати, в настоящее время очень типичным примером целой совокупности подобного рода компромиссов являются персональные компьютеры: в них используются куда более дешевые, но и более медленные, чем в крупных серверах и суперкомпьютерах, элементы. А вот пример временного противоречия. Начиная где-то с 486-х процессоров наметился постоянно возрастающий разрыв в скорости CPU и RAM. Нынешний год стал годом широкого освоения очередных новых типов локальной оперативной памяти – RDRAM (Rambus DRAM) и вышеупомянутой DDR SDRAM (в противовес SDRAM, Rambus использует узкую – 16 бит – шину и огромную по сравнению с ней частоту – 400 MHz, что, учитывая также применяемую технологию DDR дает аж 800 MHz). Причина в их появлении очевидна: при применении старой SDRAM процессор большую часть времени будет простаивать из-за неполучения данных (падение производительности в среднем 40%-50% при использовании CPU с частотой 1.5-2.0 GHz). Противоречие разрешить удалось, но также ясно, что пройдет еще немного времени, и придется снова говорить о необходимости повышения быстродействия подсистемы памяти.
Итак, процесс развития компьютерных систем – это разрешение противоречий, с учетом спектра проблем и перечня противоречий, подлежащих разрешению.
Вообще, глядя на историю развития КС, можно отметить интересный факт: с совершенствованием технологий многие аппаратные решения заменяются на их программные эмуляторы. Примеров можно привести довольно много. Например, в первых ЭВМ аппаратно реализовался алгоритмический язык программирования, вскоре эта функция стала программной. Или обратимся к так называемой «оконной» технологии. Первым коммерческим «оконным» продуктом был Xerox 8010 (в 1981 году печально известный под именем Star). Затем появились Apple LISA (1983 год) и Macintosh (1984 год). Вслед за этим произошла принципиальная перемена. Следующим продуктом, реализующим «оконную» технологию, стал Topview фирмы IBM (1984), за ним последовали Windows от Microsoft (1985) и позднее – X Windows System (1987) для UNIX. Эти продукты уже представляли программные реализации системы, которые обеспечивали доступность «оконной» технологии на обычных машинах, не оснащенных специальной аппаратурой. Список примеров можно продолжить (скажем, аналогичным путем развивались текстовые редакторы).
Из более же современного можно отметить мультимедийные технологии. Сначала возьмем те же звуковые платы. Еще относительно недавно они были тотально аппаратными, а сегодня любая современная плата обязательно так или иначе использует ресурсы системы (например, WT-таблицы для синтеза MIDI-музыки). Кроме удешевления конечной системы, это также позволило получить большую гибкость в функционировании. Несколько лет назад появилась и сейчас находится на весьма неплохом уровне чисто программная реализация звука (AC’97 кодек), который позволяет при очень небольших затратах получить весьма качественный звук. Также нельзя не упомянуть о разного рода MP3/MPEG1/MPEG2 и проч. декодерах, лет 6-8 назад являлись необходимыми устройствами «истинного» мультимедиа-РС (беру слово в кавычки потому, что понятие абстрактно и очень быстро меняет свою сущность). Сейчас же, когда мощности CPU вполне хватает для декомпрессии MP-потоков, платы MPEG2-декодера хотя еще и можно найти в продаже, но нечасто, а о MPEG1-платах, а тем более аппаратных MP3-плейерах многие даже вообще не слышали, и звучит это сейчас по меньшей мере смешно. Или вот еще: программные модемы, которые в последнее время из-за своей дешевизны получили повсеместное распространение. Или TV-тюнеры. Или программные системы видеомонтажа. Или… В общем, в процессе развития (сиречь повышения мощности) компьютеров наблюдается множество примеров вытеснения аппаратных реализаций программными. Однако хорошо это или плохо, точнее, в какой степени хорошо? Если в общем, то это смотря для чего. Например, использовать сейчас в РС вышеупомянутые MPEG-декодеры (пусть и с самым непревзойденным качеством картинки) и в самом деле абсурдно, так как даже самый хилый из продаваемых в настоящее время процессоров прекрасно справиться с необходимыми вычислениями самостоятельно, а вот та же система видеомонтажа в профессиональной студии вряд ли будет программной – там стоимость чуть ли не 128-й критерий, на первый план выступают качество и надежность. И программные решения в области звука тоже не являются средством на все случаи жизни, хотя у них много очевидных преимуществ. И всякие «выньмодемы» (приношу извинения за «жаргон», но это слово поразительно точно передает сущность предмета) тоже имеют много противников, и автор в их числе, но все же в магазинах их великий выбор, а значит покупают, потому что дешево. Или, например, сетевая сфера: есть множество программ, реализующих маршрутизацию, кэширование трафика, организацию мостов и проч., которые в целях экономии средств обычно оказывается целесообразно применять для небольших серверов. Но будут ли они эти программы сколь либо эффективно работать на крупном серверном комплексе, к которому одновременно обращаются тысячи пользователей? Тут уж никакой процессорной мощности не хватит, придется использовать отдельные устройства и подсистемы. Нельзя однозначно ответить на поставленный вопрос. Но в любом случае побеждает та технология, которая одновременно является наиболее гибкой, качественной, по возможности универсальной и недорогой. Причем время, как правило, лучше всяких прогнозов определяет такие технологии.
Вы можете возразить: какой же общий выраженный переход от аппаратного к программному, когда вот, скажем, лет десять тому назад пользователям персоналок совсем не был знаком термин «графический сопроцессор» (вспомним печально канувшую в лету 3Dfx, подарившей нам трехмерный мир на экранах мониторов…), а сейчас им так или иначе оснащаются даже самые дешевые компьютеры? Однако здесь мы видим другой случай, тоже являющийся закономерностью – несоответствие уровня развития КС уровню развития функций, которые они выполняют (как ни парадоксально сие звучит). То есть я имею ввиду, что возможности аппаратного обеспечения несколько отстают от требований, предъявляемых к ним со стороны программного. А так как задачу выполнить все-таки хочется, то проблему решают экстенсивно: нужны новые возможности? так поставим еще один (другой, третий…) процессор, который и будет заниматься нужным набором вычислений. Примеры аппаратной реализации, впоследствии замененные на программные эмуляторы, как раз подтверждают сказанное, просто впоследствии мы оказываемся на более высоком уровне (возвращаясь к тем же графическим ускорителям, нетрудно заметить, что без них персональные компьютеры еще долго не смогут обойтись, так как современный уровень технологий трехмерной графики еще находиться в зачаточном состоянии (впрочем, «по моему скромному мнению», я не настаиваю), а сегодняшний компьютер без 3D-графики не компьютер).
Данный факт, быть может, не столь очевиден, но определенная тенденция прослеживается, и мы доказали это на примерах.
А вот более близкий к пониманию пример. Известно, что с момента появления первых РС процессор с материнской платой соприкасался большей стороной (устанавливался в Socket’овый разъем). Где-то в 1996 году Intel решила оснастить очередной процессор новым интерфейсом, при котором CPU бы вставлялся в слот подобно, скажем, памяти. Однако данное решение за несколько лет эксплуатации обнаружило ряд недостатков, и одним из главных была повышенная стоимость. Поэтому, начиная с 2000-го г., компания свернула производство слотовых процессоров, вернувшись к уже обкатанному варианту. Хотя сначала казалось, что socket – вчерашний день.
· Прозрачность местоположения. Данные, обрабатывающие ресурсы, файлы и сообщения автоматически вызываются независимо от их физического расположения
На последних трех пунктах следовало бы остановиться особенно. Ведь по существу поднимается вопрос о таком явлении, как централизация (в той или иной степени). Прежде всего обратимся к истории. Сначала существовал только один путь использования компьютера. Его куда-нибудь ставили и именно в этом месте обрабатывали на нем все данные. Это централизованная модель. Вскоре производительность обработки [информации] на компьютере настолько возросла, что использовать его для работы только одного приложения стало просто расточительством. В результате единственный вычислительный ресурс стал распределяться между несколькими пользователями, находящимися в разных местах. Это уже децентрализованная модель. Прошло время, и появился персональный компьютер. Теперь каждый мог работать за персональным компьютером, зачастую находящимся у него дома, а не быть заложником одной большой удаленной машины. Это все еще продолжение развития децентрализованной модели вычислений.
Сейчас же вновь появляется, если можно так выразиться, призрак прошлого. Во-первых, это всеобщее проникновение IT-технологий во все сферы экономики. Следовательно, возникает вопрос о максимальной эффективности капиталовложений. Но, несмотря на меньшие капитальные вложения, эксплуатация децентрализованной системы обходится значительно дороже и, если не предполагать, что система нужна на год-полтора, дешевле приобрести дорогой мэйнфрейм (естественно, что решаемые задачи должны быть адекватными). Предпосылками создания подобных систем является значительный прогресс в развитии средств передачи данных, например стандарт Fibre Channel, который и создавался специально для организации кластерных систем. Ниже на рис. 1 приведен пример схемы создания сети хранения данных на основе технологии SAN, базирующейся на FC, которая дает сторедж-системам преимущества технологий LAN/WAN и возможности по организации стандартных платформ для систем с высокой готовностью и высокой интенсивностью запросов.
Почти единственным недостатком SAN на сегодня остается относительно высокая цена компонент, но при этом общая стоимость владения для корпоративных систем, построенных с использованием технологии сетей хранения данных, является довольно низкой.
Эффективность внедрения подобных систем хранения и обработки данных подтверждается тем, что многие корпорации, стремясь к максимальной отдаче от капиталовложений, заменили РС на терминалы, подключенные к мощным серверам. Причины эффективности таких решений очевидны: отдельный пользователь не использует весь потенциал своего РС, следовательно, большей производительности при таких же или меньших денежных затратах можно добиться путем распределения централизованных ресурсов между теми, кому они в данный момент нужны.
Рис. 1. Пример организации сети хранения данных с использованием
технологии SANВот как, например, некоторые компании предлагают решить вопрос интернетизации населения. Зачем пользователю интернета дорогостоящий компьютер, когда он по сути является всего лишь связующим элементом? Значительные средства можно будет сэкономить, если использовать примитивный терминал с подключенной к нему клавиатурой и монитором, который будет формировать запросы, послать их на сервер и принимать ответ. Причем один из вариантов предполагает отказ даже от монитора – ведь можно транслировать сигнал на телевизионную антенну, благо телевизор есть почти у каждого.
В заключение пункта позвольте выразить my humble opinion по поводу данного вопроса, дабы понять, о чем же идет речь. Как мне кажется, говорить о централизации в том смысле слова, что все вычисления и хранение данных будет выполняться на серверах, как это нередко понимается, немного наивно. Да, мы только что упомянули о том, что многие корпорации используют централизованные информационные системы в своей деятельности, разрабатываются и уже разработаны различные сетевые решения, но не следует путать одно с другим! Ведь не зря же мы отметили такое понятие, как адекватность организации системы ее назначению. Для корпоративных пользовтелей действительно необходимо хранить данные централизованно и использовать ресурсы сети, так как в таком случае они получают большие возможности при гораздо меньших накладных расходах. Сетевые решения активно распространяются и в обыденной жизни - тот же интернет, мобильная связь по сути являются неплохими примерами активного пользования услугами сети. Но я никак не могу согласиться с тем, что «ставится под сомнение будущее того класса компьютеров, на котором возросла империя Microsoft». Во-первых, полная ориентация на использование сетей вряд ли возможна и сейчас, и в достаточно отдаленном будущем ввиду, попросту говоря, отсутствия присутствия самих сетей. Есть, конечно же, интернет, но эта сеть, изначально существующая как низкоскоростная среда для передачи файлов и сообщений, плохо приспособлена для передачи данных, которые требуют гарантированной пропускной способности и минимальных задержек. А на соответствующую модернизацию или создание другой распределенной сети (сетей) уйдет уйма средств и времени. К тому же в распределенных системах встает проблема несовместимости разнородных компонентов, которые не были спроектированы для того, чтобы работать совместно. Во-вторых же, часто централизация оказывается попросту не нужна (говоря в наших терминах, неадекватна). Сделаем сравнение: в высокоразвитых странах (для конкретности возьмем европейское сообщество) существует прекрасная система общественного городского и междугородного транспорта, услугами которой пользуется много людей. И в то же время почему-то почти у каждого есть непомерно дорогой, нуждающийся в постоянном обслуживании, быстро устаревающий, потребляющий тонны бензина, загрязняющий окружающую среду и вообще как будто бы абсолютно не нужный личный автомобиль, и не каждый спешит отказаться от целого вороха проблем и ездить на работу в метро.
«…мы наблюдаем бурное развитие локальных и глобальных сетей. Сетевые возможности становятся обязательными атрибутами ОС для ПК, а сетевые серверные ОС – ареной конкурентной борьбы ведущих компаний. … Потенциальные возможности сетей… предлагают новые виды доступа к новым типам сетевых функций, которые… окажут глубокое влияние на коммерческие организации и пользователей… Уже сегодня можно видеть, что сети становятся все более всеохватывающими и предоставляют пользователям рабочую среду, где бы они ни оказались…». Бесспорно, со всем этим нельзя не согласиться, но также следует помнить, что любое решение может быть рационально, и для любого найдутся пределы рациональности. Да, создается единое информационное пространство, IT-технологии, основанные на использовании коммуникаций, распространяются все шире; растет роль сетевых компьютеров, требуются новые технологии распределенного хранения данных. Но, по-моему, это ни в коем случае не означает, что персональные компьютеры вскоре исчезнут и вместо них появятся дешевые электронные блокноты, главным элементом которых будет сетевой контроллер. И, как отмечалось выше, причина здесь не только в низком уровне развития сегодняшних средств коммуникации.
Вряд ли речь идет о полной и вездесущей централизации (а даже если вдруг предположить, что в будущем она и наступит, то это будет ой как еще не скоро). То развитие сетевой сферы, которое невозможно не заметить, скорее свидетельствует о широком распространении IT-технологий, а вовсе не о начавшейся в них революции. Впрочем, время покажет.
Если же делать прогноз на более отдаленное время, то, помимо всего прочего, нельзя не сказать, что IT-индустрия уже подходит к очередному технологическому барьеру: в том смысле, что дальнейшее наращивание мощностей существующими методами станет нерентабельно либо вообще невозможно. Например, если повышать производительность чипа, то придется увеличивать степень интеграции, и когда-нибудь наступит такой момент, когда начнут сказываться размеры отдельных атомов применяемых материалов. То же и с магнитными носителями – увеличивать плотность записи на современные HDD можно не до бесконечности. По мнению западных аналитиков, этот момент может наступить уже к концу текущего десятилетия. Поэтому различными компаниями ведутся исследования в области создания транзисторов на принципиально иных материалах и применения оптических технологий для хранения информации. Таким образом, человечество, возможно, стоит у порога очередной технологической революции.
Если она произойдет, то, возможно, эволюция пойдет с еще более впечатляющими эффектами. Со временем компьютеры станут изготавливаться из других материалов, возможно, они станут квазибиологическими или бог весть еще какими и, безусловно, очень маленькими; возможно, они обзаведутся мощным интеллектом. А возможно, все будет иначе. Ведь развитие никогда не бывает прямолинейным, и его нельзя предугадать, да и вообще делать прогнозы на будущее – дело неблагодарное.
В любом случае, как мне кажется, эволюция компьютерных систем пока еще находится на зачаточном этапе. То, что мы имеем сейчас, только начало. Если предположить, что 21-й век станет веком информационных технологий, то 20-й являлся всего лишь предпосылкой к их появлению. Однако не будем конкретизировать по поводу того, что они смогут дать людям. Ведь недаром на дверях Intel написано: "It is a way to..." Вместо многоточия каждый может поставить то, что ему больше нравится, что он видит. Путь именно "в...", а вовсе не к бескрайним просторам интернета. Главное только, чтоб этот путь не привел человечество к плачевным последствиям…
· Частиков А. П. История компьютера. Стр. 114-118· iXBT.com. Владимир Савяк. SAS, NAS, SAN: Шаг к сетям хранения данных (6 ноября 2001 г.)· Computerworld Россия 20 февраля 1996 г. Кевин Стамф. Ностальгический взгляд на пятидесятилетнюю историю вычислительной техники· Computerworld Россия 20 февраля 1996 г. Антониетта Поллески. Лицом к лицу с будущим· Computerworld Россия 16 января 1996 г. Михаил Борисов. Централизация. Удар… Еще удар!· Некоторые материалы Компьютерры от 30 октября, 6 ноября 2001 г.
bukvasha.ru