Будущее нельзя предвидеть, но можно изобрести.
• Понятие платформы, ее компоненты.
• История появления и развития платформ.
• Понятие и классификация операционных систем. История и перспективы их развития.
• Понятие прикладных решений и средств их разработки.
• Критерии выбора платформы.
Платформа – совокупность взаимодействующих между собой аппаратных средств и операционной системы, под управлением которой функционируют прикладные программы и средства для их разработки.
В информационных технологиях под термином «платформа» в широком смысле обычно понимается совокупность следующих компонентов:
• аппаратного решения;
• операционной системы (ОС);
• прикладных программных решений и средств для их разработки.
В более узком смысле выделяют следующие виды платформ:
Понятие «аппаратная платформа» связано с решением фирмы IBM о выработке и утверждении единого стандарта на основные комплектующие персонального компьютера. До этого времени фирмы-производители ПК стремились создать собственные, уникальные устройства, чтобы стать монополистом по сборке и обслуживанию собственных персональных компьютеров. Однако в итоге рынок был перенасыщен несовместимыми друг с другом ПК, для каждого из которых нужно было создавать собственное программное обеспечение. В этот период устройство каждого ПК было охраняемой тайной фирмы-производителя, и копиро вание одной фирмой изделий другой было строго запрещено.
Принцип «открытой архитектуры» – это степень открытости организации конфигурации ПК, которая позволяет выполнять модернизацию компьютера, включать в него дополнительные новые совместимые устройства.
Заслуга фирмы IBM состоит именно в том, что она внедрила принцип «открытой архитектуры», выработала и утвердила единый стандарт на основные части персонального компьютера – комплектующие, оповестила всех об особенностях их конструкции, поощряя при этом производство совместимых с IBM PC компьютеров других фирм. В основу принципа «открытой архитектуры» была заложена возможность усовершенствования его отдельных частей и использования новых устройств. Фирма IBM сделала ПК не единым неразъемным устройством, а обеспечила возможность его сборки из независимо изготовленных частей.
На основной электронной плате компьютера IBM PC (системной или материнской) размещаются только те блоки, которые осуществляют обработку информации. Схемы, управляющие всеми остальными устройствами ПК – монитором, винчестером, принтером и др., реализованы на отдельных платах (контроллерах), которые вставляются в стандартные разъемы на системной плате – слоты. К этим электронным схемам подводится электропитание из единого блока питания, а для удобства и надежности все это заключается в общий корпус – системный блок.
Контроллер – специализированный процессор, автоматически управляющий работой или согласующий работу подключенныхк нему устройств.
Открытость IBM PC-совместимых персональных компьютеров заключается в том, что все спецификации взаимодействия внешних устройств с контроллерами, контроллеров с системной платой посредством шины и т. д. доступны всем. Это положение сохраняется до сегодняшнего дня, хотя с того времени в конструкцию IBM PC-совместимых компьютеров было внесено много нововведений. Поэтому любая фирма может начать производство какого-либо контроллера или внешнего устройства, или системных плат, не беспокоясь обо всех остальных комплектующих компьютера. Если созданная ими продукция будет следовать общепринятым стандартам, с ней смогут работать и изделия других фирм-производителей.
Фирма IBM рассчитывала, что открытость архитектуры позволит независимым производителям разрабатывать различные дополнительные устройства, что увеличит популярность персонального компьютера. Действительно, через один-два года на рынке средств вычислительной техники предлагались сотни разных устройств и комплектующих для IBM PC.
Однако при этом фирма IBM быстро лишилась приоритета на рынке средств вычислительной техники, так как конкуренты производили клоны дешевле оригинального IBM PC. Но стандарт прижился как платформа IBM PC-совместимых ПК.
В связи с тем, что в настоящее время фирма IBM – создатель первого в мире массового персонального компьютера – утратила свой приоритет в выпуске ПК, на Западе все реже употребляют термин «IBM-совместимые компьютеры», а используют понятие «платформа Wintel», подразумевая под этим сочетание микропроцессора фирмы Intel с операционной системой Windows. Микропроцессор при этом рассматривается как основа аппаратной платформы, которая определяет архитектуру персонального компьютера, т. е. его тип и характеристики.
Однако термин Wintel не совсем точно определяет понятие платформы, так как открытая архитектура современных IBM-совместимых персональных компьютеров позволяет собирать их из комплектующих, изготавливаемых различными фирмами-производителями, включая и микропроцессоры, которые в настоящее время выпускаются не только фирмой Intel, но и Advanced Micro Devices (AMD), Cyrix Corp. и др. Кроме того, IBM-совместимые ПК могут работать не только под управлением операционной системы Windows, но и под управлением других операционных систем.
Платформа IBM-совместимых компьютеров включает в себя широкий спектр самых различных персональных компьютеров: от простейших домашних до сложных серверов.
Кроме платформы IBM-совместимых ПК в настоящее время достаточно широкое распространение получила платформа Apple, представленная довольно популярными на Западе компьютерами Macintosh.
Специалисты по компьютерной истории отдают приоритет в создании ПК именно компании Apple. С середины 70-х г. эта фирма представила несколько десятков моделей ПК – начиная с Apple I и заканчивая современным iMac, – и уверенно противостояла мощной корпорации IBM.
В середине 80-х гг. компьютеры серии Macintosh стали самыми популярными ПК в мире. В отличие от IBM, компания Apple всегда делала ставку на закрытую архитектуру – комплектующие и программы для этих компьютеров выпускались лишь небольшим числом «авторизированных» производителей. За счет этого компьютеры Macintosh всегда стоили несколько дороже своих IBM-совместимых ПК, что компенсировалось их высокой надежностью и удобством.
Именно на компьютерах Apple впервые появились многие новинки, со временем ставшие неотъемлемой частью персонального компьютера: графический интерфейс и мышь, звуковая подсистема и компьютерное видео и т. д. Кроме того, и интерфейс самой Windows был частично скопирован с одной из ранних операционных систем Apple, созданной для компьютера Lisa.
Работа с графикой и сегодня остается основной областью функционирования персональных компьютеров Apple. Поэтому ПК Macintosh по-прежнему незаменимы в таких областях, как издательское дело, подготовка и дизайн полноцветных иллюстраций, аудио- и видеообработка.
В этом качестве компьютеры Apple используются сейчас в России (в США новые модели Apple используются и в качестве домашних ПК).
Несмотря на значительное падение интереса к Apple в начале 90-х г., к концу десятилетия они вновь вернули себе былую славу после выхода моделей с новым, уникальным дизайном (полупрозрачным, голубоватого оттенка корпусом, мышью или принтером), ратечитанным на домашнего пользователя (настольные модели iMac и портативные iBook).
Они используют свое, особое программное обеспечение, да и комплектующие их существенно отличаются от IBM. В России компьютеры Macintosh достаточно распространены в полиграфической отрасли для подготовки полноцветных иллюстраций и дизайна. В настоящее время они получают распространение и в других профессиональных областях, а также в качестве «домашнего» компьютера.
Сегодня на рынке средств вычислительной техники представлено несколько основных платформ персональных компьютеров, каждая из которых отличается как по назначению, так и по типу аппаратного и программного обеспечения. Как правило, различные платформы компьютеров несовместимы между собой.
Проблема совместимости компьютерных платформ возникла практически одновременно с появлением самих персональных компьютеров. По тем или иным причинам каждый производитель делал свою продукцию оригинальной настолько, что более никто не мог обменяться с ней информацией. В какой-то степени эта конкурентная борьба продолжается и в настоящее время, однако понимание того, что в погоне за клиентом основополагающим фактором должна стать универсальность, пришло к производителям компьютерных систем уже очень давно.
Существует два основных варианта решения проблемы совместимости компьютерных платформ (рис. 2.1):
1. Аппаратные решения – это специальные платы, несущие на себе дополнительные процессор, оперативную память и видеопамять другой аппаратной платформы. Фактически они представляют собой отдельный компьютер, вставленный в существующий ПК. Его, как и обычный компьютер, можно оснастить любой операционной системой по выбору пользователя и соответствующим программным обеспечением. При этом можно легко переключаться между двумя операционными системами, обмениваться между ними файлами и выполнять другие операции, причем производительность обеих систем остается высокой и они не влияют друг на друга, так как практически не имеют разделяемых ресурсов, кроме мыши, клавиатуры и монитора. Основным недостатком таких плат является их высокая стоимость, хотя и несколко меньшая, чем отдельного ПК.
Рис. 2.1. Варианты решения проблемы совместимости компьютерных платформ
2. Программные решения – это специально написанные программы-эмуляторы, позволяющие запустить программное обеспечение, разработанное для персональных компьютеров одного типа, на другом ПК.
Эмулятор – специальная программа, выполняющая каждую команду исходной программы посредством одной или нескольких команд ПК, на котором происходит эмуляция.
Существует несколько видов эмуляторов:
эмуляторы-исполнители позволяют запускать программы, написанные для других операционных систем.
эмуляторы аппаратного обеспечения воспроизводят настоящий персональный компьютер со всеми его аппаратными и программными особенностями. В этом случае пользователь получает абсолютный контроль над своим виртуальным ПК и может выполнять на нем практически все операции, что и с настоящим компьютером. Недостатком этих эмуляторов является некоторая медлительность.
эмуляторы операционных систем позволяют воспроизвести на ПК операционную систему, которая несовместима с данной аппаратной платформой. Примером такого эмулятора является эмулятор операционной системы Windows, который позволяет на компьютере Macintosh работать с операционной системой, написанной для IBM-совместимых ПК. Работают такие программы несколько быстрее, чем эмуляторы аппаратного обеспечения, но у них есть много ограничений. Например, пользователь не может сам выбрать операционную систему.
В настоящее время существует несколько основных направлений в развитии аппаратных платформ.
1. Переход к многоядерным платформам, построенным на основе многоядерных микропроцессоров
Многоядерный процессор содержит два или больше вычислительных ядер на одном кристалле. Он имеет один корпус и устанавливается в один разъем на системной плате, но операционная система воспринимает каждое его вычислительное ядро как отдельный процессор с полным набором вычислительных ресурсов. В отличие от последовательного выполнения операций одноядерными микропроцессорами с максимально возможной тактовой частотой процессоры с многопроцессорной обработкой на уровне кристалла будут обеспечивать высочайшую производительность при более приемлемых тактовых частотах благодаря параллельному выполнению множества операций. Кроме ядер общего назначения планируется включение специализированных ядер для выполнения различных классов вычислений, таких как графика, алгоритмы распознавания речи и обработка коммуникационных протоколов.
2. Перенос функций специализированного аппаратного обеспечения на кристалл микропроцессора
Специализированное аппаратное обеспечение – важная составляющая архитектур процессоров и платформ. В настоящее время специализированное аппаратное обеспечение используется для выполнения вычислений с плавающей запятой, обработки графики и сетевых пакетов. Развитие специализированного аппаратного обеспечения идет по следующим направлениям:
• цифровая обработка сигналов;
• рендеринг трехмерной графики;
• расширенная обработка изображений;
• распознавание речи и рукописного текста;
• обработка XML и других Internet-протоколов;
• извлечение информации, а также обработка естественх языков.
Кроме того, одним из направлений развития специализированного аппаратного обеспечения является передача их функций непосредственно микропроцессору. Перенос выполнения функций на кристалл ведет к увеличению скорости обработки задач, существенной экономии места и значительному сокращению энергопотребления, что позволяет удовлетворить потребности производительности и функциональности архитектур процессоров и платформ.
Рендеринг (англ. rendering – «визуализация») в компьютерной графике – это процесс получения изображения по модели с помощью программного обеспечения.
3. Разработка подсистем памяти большой емкости, расположенных непосредственно на кристалле микропроцессора
По мере постоянного роста производительности микропроцессоров доступ к памяти может стать серьезной проблемой. Для того чтобы загрузить множество высокопроизводительных ядер соответствующим количеством данных, важно организовать подсистему памяти таким образом, чтобы память большой емкости находилась на кристалле и ядра имели к ней прямой доступ. Это возможно путем оснащения микропроцессоров внутрикристалльными подсистемами памяти большой емкости порядка нескольких гигабайт. Она позволит заменить обычную оперативную память во многих вычислительных устройствах. Кэш-память планируется сделать реконфигурируемой, чтобы динамически перераспределять память для разных ядер. Некоторые области памяти могут быть выделены определенным ядрам, совместно использоваться группами ядер или использоваться всеми ядрами глобально в зависимости от потребностей приложений.
4. Выделение интеллектуального микроядра для решения задач управления аппаратным обеспечением
Для управления сложными процессами, такими как назначение задач ядрам, включение и выключение ядер при необходимости, реконфигурация ядер при изменении рабочей загрузки, и многими другими микропроцессорам потребуется большая доля встроенных интеллектуальных способностей. В архитектурах с развитыми возможностями параллельной обработки процессор сам по себе сможет выполнять несколько потоков вычислений, невидимых на пользовательском уровне, разделяя приложение на потоки, которые могут выполняться параллельно. Один из способов эффективного выполнения всех этих задач – встроенное интеллектуальное микроядро, дополняющее программное обеспечение высокого уровня для решения задач всестороннего управления аппаратным обеспечением.
Операционные системы (ОС) являются важной составной частью платформы в ИТ. Они отражают как развитие аппаратных средств, так и стремление разработчиков улучшить функциональные характеристики, повысить степень комфортности ОС по отношению к пользователям.
Операционная система выполняет функции автоматического управления рядом подсистем персонального компьютера и предоставляет готовые процедуры управления его внутренними и внешними ресурсами, т. е. операционная система является некоей автоматической системой управления работой и ресурсами компьютера, повышающей удобство и эффективность его использования.
Каждый персональный компьютер (аппаратная платформа) обязательно комплектуется операционной системой, для которой создается свой набор прикладных решений (приложений, прикладных программ).
Операционная система – совокупность программ для управления вычислительным процессом персонального компьютера или вычислительной сети.
В процессе развития большинство операционных систем модифицируются и совершенствуются в направлении исправления ошибок и включения новых возможностей. В целях сохранения преемственности новая модификация операционной системы не переименовывается, а приобретает название версии.
Операционные системы, подобно аппаратной части компьютеров, на пути своего развития прошли через ряд радикальных изменений, так называемых поколений. Для аппаратных средств смена поколений связана с принципиальными достижениями в области электронных компонентов: вначале вычислительные машины строились на электронных лампах (первое поколение ЭВМ), затем на транзисторах (второе поколение), интегральных микросхемах (третье поколение), а сейчас – по преимуществу на больших и сверхбольших интегральных схемах (четвертое поколение). Появление каждого из этих последовательных поколений аппаратных средств сопровождалось резким уменьшением стоимости, габаритов, потребляемой мощности и тепловыделения и столь же резким повышением быстродействия и объемов памяти компьютеров.
На одной и той же аппаратной платформе могут функционировать различные операционные системы, имеющие разную архитектуру и возможности. Однако при этом следует учитывать, что различные ОС представляют разную степень сервиса для программирования и работы с прикладными программами пользователей. Кроме того, для их работы необходимы различные ресурсы оперативной памяти.
Современные операционные системы можно классифицировать по различным признакам, представленным в табл. 2.1.
Таблица 2.1.
Классификация операционных систем
В целом функции, выполняемые операционными системами разных классов и видов, достаточно схожи и направлены на обеспечение поддержки работы прикладных программ, организацию их взаимодействия с устройствами, предоставление пользователям возможности работы в сетях, а также управление функционированием персонального компьютера. Поэтому при выборе операционной системы пользователь должен четко представлять, насколько та или иная ОС обеспечит ему решение его задач.
Чтобы выбрать ту или иную операционную систему, необходимо знать:
• на каких аппаратных платформах и с какой скоростью работает ОС;
• какое периферийное аппаратное обеспечение операционная система поддерживает;
• как полно удовлетворяет ОС потребности пользователя, т. е. каковы функции операционной системы;
• каков способ взаимодействия ОС с пользователем, т. е. насколько нагляден, удобен, понятен и привычен пользователю интерфейс;
• существуют ли информативные подсказки, встроенные справочники и т. д.;
• какова надежность системы, т. е. ее устойчивость к ошибкам пользователя, отказам оборудования и т. д.;
• какие возможности предоставляет операционная система для организации сетей;
• обеспечивает ли ОС совместимость с другими операционными системами;
• какие инструментальные средства имеет ОС для разработки прикладных программ;
• осуществляется ли в ОС поддержка различных национальных языков;
• какие известные пакеты прикладных программ можно использовать при работе с конкретной операционной системой;
• как осуществляется в ОС защита информации и самой операционной системы.
В первых вычислительных машинах операционных систем не было. Пользователи имели полный доступ к машинному языку и все программы писали непосредственно в машинных кодах.
1-й этап (50-е гг. ХХ в.)
Считается, что первую операционную систему создала в начале 50-х гг. для своих компьютеров исследовательская лаборатория фирмы General Motors. Операционные системы 50-х гг. были разработаны с целью ускорения и упрощения перехода с задачи на задачу. До создания этих операционных систем много машинного времени терялось в промежутках между завершением выполнения одной задачи и вводом в решение следующей. Это было начало систем пакетной обработки, которые предусматривали объединение отдельных задач в группы, или пакеты. Запущенная в решение задача получала в свое полное распоряжение все ресурсы машины. После завершения каждой задачи управление ресурсами возвращалось операционной системе, которая обеспечивала ввод и запуск в решение следующей задачи.
Уже в первых операционных системах появилась концепция имен системных файлов как средства достижения определенной степени независимости программ от аппаратной части. Это дало пользователю возможность не задавать непосредственно в программе конкретные номера физических устройств, а указывать стандартный системный файл ввода как устройство, с которого считываются управляющие перфокарты, или стандартный системный файл вывода как устройство для распечатки результатов.
К концу 50-х гг. ведущие фирмы-изготовители компьютеров поставляли операционные системы со следующими характеристиками:
• пакетная обработка одного потока задач;
• наличие стандартных подпрограмм ввода-вывода, позволяющих пользователю не касаться деталей программирования процессов ввода и вывода на машинном языке;
• возможность автоматического перехода от программы к программе, позволяющая сократить накладные расходы на запуск новой задачи в решение;
• наличие средств восстановления после ошибок, обеспечивающих автоматическое восстановление машины в случае аварийного завершения очередной задачи и позволяющих запускать следующую задачу при минимальном вмешательстве оператора ЭВМ;
• наличие языков управления заданиями, предоставляющих пользователям возможность достаточно подробно описывать свои задания и ресурсы, требуемые для их выполнения.
В то время операционные системы использовались главным образом на крупных ЭВМ. Многие из малых машин общего назначения работали без операционной системы. Пользователи подобных малых машин, как правило, производили загрузку собственной системы управления вводом-выводом – небольшого пакета программ, управляющего осуществлением операций ввода-вывода.
2-й этап (60-е гг. ХХ в.)
В это время в технической базе вычислительных машин произошёл переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, что открыло путь к появлению следующего поколения компьютеров. В этот период были реализованы практически все основные механизмы, присущие современным операционным системам:
• мультипрограммирование;
• поддержка многотерминального многопользовательского режима;
• виртуальная память;
• файловые системы,
• разграничение доступа;
• работа в сети.
Мультипрограммирование – способ организации вычислительного процесса, при котором в памяти компьютера находится одновременно несколько программ, попеременно выполняющихся на одном процессоре.
Революционным событием данного этапа явилась промышленная реализация мультипрограммирования. В условиях резко возросших возможностей компьютера по обработке и хранению данных выполнение только одной программы в каждый момент времени оказалось крайне неэффективным. Решением стало мультипрограммирование. Это усовершенствование значительно улучшило эффективность вычислительной системы. Мультипрограммирование было реализовано в двух вариантах:
• в системах пакетной обработки;
• в системах разделения времени.
Мультипрограммные системы пакетной обработки так же, как и их однопрограммные предшественники, имели своей целью обеспечение максимальной загрузки аппаратной части компьютера, однако решали эту задачу более эффективно. В мультипрограммном пакетном режиме процессор не простаивал, пока одна программа выполняла операцию ввода-вывода (как это происходило при последовательном выполнении программ в системах ранней пакетной обработки), а переключался на другую готовую к выполнению программу. В результате достигалась сбалансированная загрузка всех устройств электронно-вычислительной машины, следовательно, увеличивалось число задач, решаемых в единицу времени.
Мультипрограммные системы разделения времени были рассчитаны на многотерминальные системы, когда каждый пользователь работает за своим терминалом. Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счёт периодического выделения каждой программе своей доли процессорного времени.
Многотерминальный режим использовался не только в системах разделения времени, но и в системах пакетной обработки. При этом не только оператор, но и все пользователи получали возможность формировать свои задания и управлять их выполнением со своего терминала. Такие операционные системы получили название систем удалённого ввода заданий. Терминальные комплексы могли располагаться на большом расстоянии от процессорных стоек, соединяясь с ними с помощью различных глобальных связей – модемных соединений телефонных сетей или выделенных каналов. Для поддержания удалённой работы терминалов в операционных системах появились специальные программные модули, реализующие различные (в то время, как правило, нестандартные) протоколы связи. Такие вычислительные системы с удалёнными терминалами, сохраняя централизованный характер обработки данных, в какой-то степени являлись прообразом современных сетей, а соответствующее системное программное обеспечение – прообразом сетевых операционных систем.
Терминал (от лат. terminalis – заключительный, окончательный) – оконечное устройство – устройство оперативного ввода-вывода информации в процессе взаимодействия пользователя с ЭВМ.
В компьютерах 60-х г. большую часть действий по организации вычислительного процесса взяла на себя операционная система. Реализация мультипрограммирования потребовала внесения очень важных изменений в аппаратную часть компьютера, непосредственно направленных на поддержку нового способа организации вычислительного процесса. При разделении ресурсов компьютера между программами необходимо обеспечить быстрое переключение процессора с одной программы на другую, а также надёжно защитить коды и данные одной программы от непреднамеренного или преднамеренного вмешательства другой программы. В процессорах появился привилегированный и пользовательский режим работы, специальные регистры для быстрого переключения с одной программы на другую, средства защиты областей памяти, а также развитая система прерываний.
В это же время начали появляться методы, обеспечивающие независимость программирования от внешних устройств. Если в системах первого поколения пользователю, желающему произвести запись данных на магнитную ленту, приходилось в программе задавать конкретный номер физического лентопротяжного устройства, то в системах второго поколения программа пользователя только задавала команду, в соответствии с которой файл должен быть записан на устройстве, имеющем определенное число дорожек и определенную плотность записи. Операционная система сама находила свободное устройство с требуемыми характеристиками и давала оператору ЭВМ указание установить кассету магнитной ленты на это устройство.
Появились первые системы реального времени, в которых компьютеры применялись для управления технологическими процессами производства, например на предприятиях по переработке нефти. Были созданы военные системы реального времени, которые обеспечивали постоянный контроль сразу нескольких тысяч пунктов для защиты от внезапного воздушного нападения.
Для систем реального времени характерно то, что они обеспечивают немедленную реакцию на предусмотренные события. Если, например, от датчиков системы управления нефтеперерабатывающего предприятия поступят сигналы о том, что температура становится слишком высокой, то может потребоваться немедленное принятие соответствующих мер для предотвращения взрыва.
3-й этап (70—80-е гг. ХХ в.)
В начале 70-х гг. появились первые сетевые операционные системы, которые в отличие от многотерминальных ОС позволяли не только рассредоточить пользователей, но и организовать распределённое хранение и обработку данных между несколькими компьютерами, объединенными каналами связи. Любая сетевая операционная система, с одной стороны, выполняет все функции локальной операционной системы, а с другой стороны, обладает некоторыми дополнительными средствами, позволяющими ей взаимодействовать по сети с операционными системами других компьютеров. Программные модули, реализующие сетевые функции, появлялись в операционных системах постепенно, по мере развития сетевых технологий, аппаратной базы компьютеров и возникновения новых задач, требующих сетевой обработки.
Хотя теоретические работы по созданию концепций сетевого взаимодействия велись почти с самого появления вычислительных машин, значимые практические результаты по объединению компьютеров в сети были получены в конце 60-х – начале 70-х гг., когда с помощью глобальных связей и техники коммутации пакетов удалось реализовать взаимодействие машин класса мэйнфреймов и суперкомпьютеров. Эти дорогостоящие компьютеры часто хранили уникальные данные и программы, доступ к которым необходимо было обеспечить широкому кругу пользователей, находившихся в различных городах на значительном расстоянии от вычислительных центров.
К середине 70-х гг. широкое распространение получили мини-компьютеры. Мини-компьютеры первыми использовали преимущества больших интегральных схем, позволившие реализовать достаточно мощные функции при сравнительно невысокой стоимости компьютера. Многие функции мультипрограммных многопользовательских ОС были усечены, учитывая ограниченность ресурсов мини-компьютеров. Операционные системы мини-компьютеров часто стали делать специализированными, например, только для управления в режиме реального времени или только для поддержания режима разделения времени.
Важной вехой в истории операционных систем явилось создание операционной системы UNIX. Первоначально эта операционная система предназначалась для поддержания режима разделения времени в мини-компьютере. С середины 70-х гг. началось массовое использование ОС UNIX. К этому времени программный код для UNIX был в основном написан на языке высокого уровня Си. Широкое распространение эффективных Си-компиляторов сделало UNIX уникальной для того времени операционной системой, обладающей возможностью сравнительно лёгкого переноса на различные типы компьютеров. Поскольку эта операционная система поставлялась вместе с исходными кодами, то она стала первой открытой ОС, которую могли совершенствовать простые пользователи. Хотя UNIX была первоначально разработана для мини-компьютеров, гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять прочные позиции во всех классах компьютеров: суперкомпьютерах, мэйнфреймах, мини-компьютерах, серверах и рабочих станциях, персональных компьютерах.
Сетевая операционная система – комплекс программ, обеспечивающих обработку, передачу и хранение данных в вычислительной сети.
Независимо от версии, общими для UNIX чертами являются:
• многопользовательский режим со средствами защиты данных от несанкционированного доступа;
• реализация мультипрограммной обработки в режиме разделения времени;
• унификация операций ввода-вывода;
• иерархическая файловая система, образующая единое дерево каталогов независимо от количества физических устройств, используемых для размещения файлов;
• переносимость системы;
• разнообразные средства взаимодействия процессов, в том числе и через сеть.
4-й этап (с начала 90-х гг. ХХ в. – по настоящее время)
В 90-е гг. практически все операционные системы, занимающие заметное место на рынке, стали сетевыми. В настоящее время сетевые функции встраиваются в ядро операционной системы, являясь её неотъемлемой частью. Операционные системы получили средства для работы со всеми основными технологиями локальных и глобальных сетей, а также средства для создания составных сетей. В операционных системах используются специальные средства, с помощью которых компьютеры могут поддерживать одновременную сетевую работу с разнородными клиентами и серверами. Появились специализированные операционные системы, которые предназначались исключительно для выполнения коммуникационных задач.
Во второй половине 90-х гг. все производители операционных систем резко усилили поддержку работы с Internet: в комплект поставки начали включать утилиты, реализующие такие популярные сервисы Internet, как telnet, ftp, WWW и др.
Особое внимание в течение всех последних десятилетий уделяется корпоративным сетевым операционным системам. Их дальнейшее развитие представляет одну из наиболее важных задач и в обозримом будущем. Корпоративная операционная система отличается способностью хорошо и устойчиво работать в крупных сетях, которые характерны для большинства предприятий, имеющих отделения в разных городах и странах. Таким сетям присуща высокая степень неоднородности программных и аппаратных средств, поэтому корпоративная ОС должна взаимодействовать с операционными системами разных типов и работать на различных аппаратных платформах.
На современном этапе развития операционных систем на передний план вышли средства обеспечения безопасности. Это связано с возросшей ценностью информации, обрабатываемой на персональном компьютере, а также с повышенным уровнем угроз, существующих при передаче данных по сетям, особенно по сети Internet. Многие операционные системы обладают сегодня развитыми средствами защиты информации, основанными на шифрации данных, аутентификации и авторизации пользователей.
Современным операционным системам присуща многоплатформенность, т. е. способность работать на различных типах компьютеров. Многие ОС имеют специальные версии для поддержки кластерных архитектур, обеспечивающих высокую производительность и отказоустойчивость.
В последние годы получила дальнейшее развитие долговременная тенденция повышения удобства работы человека с компьютером. Эффективность работы человека становится основным фактором, определяющим эффективность вычислительной системы в целом. Усилия человека не должны тратиться на настройку параметров вычислительного процесса, как это происходило в операционных системах предыдущих поколений. Например, в системах пакетной обработки каждый пользователь должен был с помощью языка управления заданиями определить большое количество параметров, относящихся к организации вычислительных процессов в компьютере.
Постоянно повышается удобство интерактивной работы с компьютером путём включения в операционные системы развитых графических интерфейсов, использующих наряду с графикой звук и видеоизображение. Пользовательский интерфейс ОС становится всё более интеллектуальным, направляя действия человека в типовых ситуациях и принимая за него рутинные решения.
Этапы развития операционных систем представлены на рис. 2.2.
Перспективы развития операционных систем
Постоянное динамичное развитие платформ предполагает и развитие операционных систем, хотя строить долговременные прогнозы достаточно сложно. Однако можно выделить общие основные тенденции и возможные направления развития ОС:
Первое направление — усложнение операционных систем. Современные операционные системы превращаются в огромный набор программ, утилит и т. п., занимая иногда больше места на диске, чем программы, которые используют сервис, предоставляемый этими операционными системами.
Второе направление — развитие объектно ориентированной технологии создания операционных систем, позволяющей персональному компьютеру манипулировать различными объектами (программами, модулями или блоками данных) независимо от способа их представления на экране монитора.
Третье направление связано с тем фактом, что операционные системы и программное обеспечение всегда отражают архитектурные решения аппаратной части персонального компьютера. Таким образом, можно сделать вывод, что тенденции развития ОС непосредственно связаны с развитием аппаратной части ПК.
Рис. 2.2. Этапы развития операционных систем
Четвертое направление развития операционных систем – это разработка ОС, способных работать на всем спектре вычислительных систем (аппаратных платформ): от персональных компьютеров до суперкомпьютеров.
Средства разработки прикладных решений – это очень важная часть платформы персонального компьютера. От гибкости, богатства, удобства и надежности этих средств зависит популярность платформы. Платформа без средств разработки приложений под неё перестает существовать.
Все поставщики платформ поставляют и средства разработки прикладных решений в той или иной форме. Производители операционных систем предлагают всевозможные компиляторы и интерпретаторы, системы управления базами данных, системы организации взаимодействия (например, электронная почта). Конечно, решения для популярных операционных систем предлагают не только фирмы-создатели, но и другие фирмы-разработчики.
Для платформ, у которых возможности осуществления разработки решений непосредственно на них ограничены (например, для сотовых телефонов), производители предлагают средства разработки, функционирующие под популярной и мощной операционной системой (Windows, Linux). В дополнение к этим средствам предлагается эмулятор целевой платформы, на котором можно отладить решение, не используя целевую платформу непосредственно.
В настоящее время набирают популярность решения, обеспечивающие независимость разрабатываемых прикладных решений не только от аппаратной составляющей платформы, но и от операционной системы. Самые популярные решения подобного рода – Java и Net.
Основная идея этих платформ состоит в создании «виртуальной машины» – специального программного комплекса, функционирующего на конкретной аппаратной платформе и на конкретной операционной системе. Прикладную программу обрабатывает виртуальная машина, которая преобразует «виртуальные команды» в команды конкретной программно-аппаратной платформы. В итоге получается, что программа для виртуальной машины функционирует на множестве связок «аппаратная часть – операционная система» без переделки. Единственное условие – наличие виртуальной машины для конкретного программно-аппаратного решения. Самая распространенная аппаратно-независимая платформа – Java.
Существует определенный класс программных продуктов – конструкторов, использование которых ограничено какой-либо предметной областью. Эти продукты реализуют не только базовую функциональность, но и гибкие средства создания решений в определенной области деятельности. Такие программные продукты зачастую называются прикладными платформами.
Под прикладной платформой понимаются среда исполнения и набор технологических решений, используемых в качестве основы для построения определенного круга приложений. Фактически приложения базируются на нескольких платформах, образующих многослойную среду. При этом важно, что платформа предоставляет разработчику определенную модель, как правило, изолирующую его от понятий и подробностей более низкоуровневых технологий и платформ.
Ключевым качеством прикладной платформы является достаточность ее средств для решения задач, стоящих перед бизнес-приложениями. Это обеспечивает хорошую согласованность всех технологий и инструментов, которыми пользуется разработчик. Другой важный момент – стандартизация. Наличие единой прикладной платформы для большого количества прикладных решений способствует формированию общего «культурного слоя», включающего и людей (программистов, аналитиков, пользователей), и методологию (типовые структуры данных, алгоритмы, пользовательские интерфейсы). Опираясь на этот «культурный слой», разработчик тратит минимум усилий на поиск необходимого решения практически в любой ситуации, начиная от включения в проект нового специалиста и кончая реализацией какой-либо подсистемы бизнес-приложения по типовой методологии.
Типичный представитель специальных прикладных платформ – система «1С: Предприятие». Сама по себе система является гибким, настраиваемым под нужды конкретного предприятия конструктором, предоставляющим разработчику решений «более прикладные» методы и средства по сравнению с традиционными языками программирования, т. е. такая платформа представляет собой набор различных механизмов, используемых для автоматизации экономической деятельности и не зависящих от конкретного законодательства и методологии учета.
Существуют комплексные прикладные системы масштаба корпораций, которые являются основой для надежного ведения крупного бизнеса, так называемые ERP-системы (Enterprise Resource Planning Systems). Эти системы также являются прикладной платформой, гибко настраиваемой в своей предметной области.
Выбор платформы представляет собой чрезвычайно сложную задачу, которая состоит из двух частей:
1. Определение сервиса, который должен обеспечиваться платформой
2. Определение уровня сервиса, который может обеспечить данная платформа
Существует несколько причин, в силу которых достаточно сложно оценить возможности платформы с выбранным набором компонентов, которые включаются в систему:
• подобная оценка прогнозирует будущее: предполагаемую комбинацию устройств, будущее использование программного обеспечения, будущих пользователей;
• конфигурация аппаратных и программных средств связана с определением множества разнородных по своей сути компонентов системы, в результате чего сложность быстро увеличивается;
• скорость технологических усовершенствований аппаратных средств, функциональной организации системы, операционных систем очень высокая и постоянно растет. Ко времени, когда какой-либо компонент широко используется и хорошо изучен, он часто рассматривается как устаревший.
• доступная потребителю информация об аппаратном обеспечении, операционных системах, программном обеспечении носит общий характер. Структура аппаратных средств, на базе которых работают программные системы, стала настолько сложной, что эксперты в одной области редко являются таковыми в другой.
Выбор той или иной платформы и конфигурации определяется рядом критериев. К ним относятся:
1. Отношение стоимость-производительность.
2. Надежность и отказоустойчивость.
3. Масштабируемость.
4. Совместимость и мобильность программного обеспечения.
Отношение стоимость-производительность. Появление любого нового направления в вычислительной технике определяется требованиями компьютерного рынка. Поэтому у разработчиков компьютеров нет одной единственной цели. Мейнфрейм или суперкомпьютер стоят дорого, т. к. для достижения поставленных целей при проектировании высокопроизводительных конструкций приходится игнорировать стоимостные характеристики. Другим крайним примером может служить низкостоимостная конструкция, где производительность принесена в жертву для достижения низкой стоимости. К этому направлению относятся персональные компьютеры. Между этими двумя крайними направлениями находятся конструкции, основанные на отношении стоимость-производительность, в которых разработчики находят баланс между стоимостными параметрами и производительностью. Типичными примерами такого рода компьютеров являются мини-компьютеры и рабочие станции.
Надежность и отказоустойчивость. Важнейшей характеристикой аппаратной платформы является надежность. Повышение надежности основано на принципе предотвращения неисправностей путем снижения интенсивности отказов и сбоев за счет применения электронных схем и компонентов с высокой и сверхвысокой степенью интеграции, снижения уровня помех, облегченных режимов работы схем, обеспечение тепловых режимов их работы, а также за счет совершенствования методов сборки аппаратной части персонального компьютера.
Введение отказоустойчивости требует избыточного аппаратного и программного обеспечения. Структура многопроцессорных и многомашинных систем приспособлена к автоматической реконфигурации и обеспечивает возможность продолжения работы системы после возникновения неисправностей. Понятие надежности включает не только аппаратные средства, но и программное обеспечение. Главной целью повышения надежности систем является целостность хранимых в них данных.
Мейнфрейм – это электронно-вычислительная машина, относящаяся к классу больших ЭВМ с высокой производительностью, поддерживающая многопользовательский режим работы для решения специализированных задач.
Отказоустойчивость – это свойство вычислительной системы, которое обеспечивает возможность продолжения действий, заданных программой, после возникновения неисправностей.
Масштабируемость должна обеспечиваться архитектурой и конструкцией компьютера, а также соответствующими средствами программного обеспечения.
Добавление каждого нового процессора в действительно масштабируемой системе должно давать прогнозируемое увеличение производительности и пропускной способности при приемлемых затратах. В действительности реальное увеличение производительности трудно оценить заранее, поскольку оно в значительной степени зависит от динамики поведения прикладных задач.
Возможность масштабирования системы определяется не только архитектурой аппаратных средств, но и зависит от заложенных свойств программного обеспечения. Простой переход, например, на более мощный процессор может привести к перегрузке других компонентов системы. Это означает, что действительно масштабируемая система должна быть сбалансирована по всем параметрам.
Совместимость и мобильность программного обеспечения. В настоящее время одним из наиболее важных факторов, определяющих современные тенденции в развитии информационных технологий, является ориентация компаний-поставщиков компьютерного оборудования на рынок прикладных программных средств. Это объясняется прежде всего тем, что для конечного пользователя в конце концов важно программное обеспечение, позволяющее решить его задачи, а не выбор той или иной аппаратной платформы. Переход от однородных сетей программно-совместимых компьютеров к построению неоднородных сетей, включающих компьютеры разных фирм-производителей, в корне изменил и точку зрения на саму сеть: из сравнительно простого средства обмена информацией она превратилась в средство интеграции отдельных ресурсов – мощную распределенную вычислительную систему, каждый элемент которой лучше всего соответствует требованиям конкретной прикладной задачи.
Этот переход выдвинул ряд новых требований:
Во-первых, такая вычислительная среда должна позволять гибко менять количество и состав аппаратных средств и программного обеспечения в соответствии с меняющимися требованиями решаемых задач.
Во-вторых, она должна обеспечивать возможность запуска одних и тех же программных систем на различных аппаратных платформах, т. е. обеспечивать мобильность программного обеспечения.
В-третьих, эта среда должна гарантировать возможность применения одних и тех же человеко-машинных интерфейсов на всех компьютерах, входящих в неоднородную сеть.
ИЗ ГЛАВЫ РЕКОМЕНДУЕТСЯ ЗАПОМНИТЬ
• Платформа – совокупность взаимодействующих между собой аппаратных средств и операционной системы, под управлением которой функционируют прикладные программы и средства для их разработки.
• Принцип «открытой архитектуры» – это степень открытости организации конфигурации ПК, которая позволяет выполнять модернизацию компьютера, включать в него дополнительные новые совместимые устройства.
• Существует два основных варианта решения проблемы совместимости компьютерных платформ: 1) аппаратные решения – это специальные платы, несущие на себе дополнительные процессор, оперативную память и видеопамять другой аппаратной платформы; 2) программные решения – это специально написанные программы-эмуляторы, позволяющие запустить программное обеспечение, разработанное для персональных компьютеров одного типа на другом ПК.
• Операционная система – совокупность программ для управления вычислительным процессом персонального компьютера или вычислительной сети.
• Развитие операционных систем будет идти по следующим направлениям: первое – современные ОС превращаются в огромный набор программ; второе – развитие объектно ориентированной технологии создания ОС; третье – развитие ОС связано с развитием аппаратной части; четвертое – разработка ОС, способных работать на всем спектре вычислительных систем.
• Прикладные решения и средства их разработки – это средства выполнения и комплекс технологических решений, используемых в качестве основы для построения определенного круга прикладных программ.
• Выбор той или иной платформы и конфигурации определяется рядом критериев. К ним относятся: отношение стоимость-производительность; надежность и отказоустойчивость; масштабируемость; совместимость и мобильность программного обеспечения.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Расставьте в правильной последовательности этапы развития операционных систем в соответствии с их основными характеристиками:
1 этап
Основные характеристики ОС:
• наличие сетевых функций, встроенных в ядро операционных систем;
• появление корпоративных операционных систем с поддержкой различных компьютерных платформ;
• наличие средств обеспечения безопасности информации;
• развитие графических интерфейсов операционных систем
2 этап
Основные характеристики ОС:
• мультипрограммный режим работы пакетной обработки;
• независимость программирования от внешних устройств;
• наличие систем, работающих в режиме реального времени
3 этап
Основные характеристики ОС:
• возможность пакетной обработки задач;
• наличие подпрограмм ввода-вывода, облегчающих процедуры ввода и вывода данных;
• наличие средств исправления ошибок
4 этап
Основные характеристики ОС:
• создание сетевых операционных систем;
• создание операционных систем для мини-компьютеров;
• появление первой открытой операционной системы UNIX