Эволюция сетевых операционных систем
Министерство
общего и профессионального образования Российской Федерации
Томский
Университет Систем Управления и
Радиоэлектроники
(ТУСУР)
Кафедра
Промышленной Электроники (Пр.Э.)
Отчет
по
выполнению творческого задания по дисциплине
“Операционные
Системы”
“Эволюция
сетевых операционных систем”
Выполнил:
студент
________.
Принял:
преподаватель
каф.Пр.Э.
__________.
Содержание
1.Введение
2.Эволюция ОС
Первый
период (1945 -1955)
Второй
период (1955 - 1965)
Третий
период (1965 - 1980)
Четвертый
период (1980 - настоящее время)
3.Классификация
ОС
Особенности
алгоритмов управления ресурсами
Особенности аппаратных платформ областей использования
Особенности методов построения
4.Сетевые
операционные системы
Структура
сетевой операционной системы
Одноранговые сетевые ОС и ОС с выделенными серверами
ОС для
рабочих групп и ОС для сетей масштаба предприятия
5. Управление
памятью
Типы
адресов
Методы
распределения памяти без использования дискового пространства
Распределение
памяти фиксированными разделами
Распределение памяти разделами переменной величины
Перемещаемые разделы
Методы
распределения памяти с использованием дискового пространства
Понятие
виртуальной памяти
Страничное распределение
Сегментное распределение
Странично-сегментное распределение
Свопинг
Иерархия
запоминающих устройств. Принцип кэширования данных
6.Современные
концепции и технологии проектирования операционных систем
Требования,
предъявляемые к ОС 90-х годов
Расширяемость
Переносимость
Совместимость
Безопасность
7.Семейство
операционных систем UNIX
История и
общая характеристика семейства операционных систем UNIX
Управление
памятью. Свопинг
8.Сетевые
продукты фирмы Novell
История и
версии сетевой ОС NetWare
Версии
4.0, 4.01 и 4.02
9.Семейство
сетевых ОС компании Microsoft
Сетевые
продукты Microsoft
История Windows NT
Версии Windows NT
Windows NT 3.1 и Windows NT 3.5
Windows NT 4.0
Области
использования Windows NT
10.Операционная
система OS/2
История
развития OS/2 и ее место на рынке
OS/2 -
постепенные улучшения
11.Обзор сетевых
операционных систем
1.Введение
Определение
операционной системы
Операционная
система в наибольшей степени определяет облик всей вычислительной системы в
целом. Несмотря на это, пользователи, активно использующие вычислительную
технику, зачастую испытывают затруднения при попытке дать определение
операционной системе. Частично это связано с тем, что ОС выполняет две по
существу мало связанные функции: обеспечение пользователю-программисту удобств
посредством предоставления для него расширенной машины и повышение
эффективности использования компьютера путем рационального управления его
ресурсами.
ОС как
расширенная машина
Использование
большинства компьютеров на уровне машинного языка затруднительно, особенно это
касается ввода-вывода. Например, для организации чтения блока данных с гибкого
диска программист может использовать 16 различных команд, каждая из которых
требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке
и т. п. Когда выполнение операции с диском завершается, контроллер возвращает
23 значения, отражающих наличие и типы ошибок, которые, очевидно, надо
анализировать. Даже если не входить в курс реальных проблем программирования
ввода-вывода, ясно, что среди программистов нашлось бы не много желающих
непосредственно заниматься программированием этих операций. При работе с диском
программисту-пользователю достаточно представлять его в виде некоторого набора
файлов, каждый из которых имеет имя. Работа с файлом заключается в его
открытии, выполнении чтения или записи, а затем в закрытии файла. Вопросы
подобные таким, как следует ли при записи использовать усовершенствованную
частотную модуляцию или в каком состоянии сейчас находится
двигатель
механизма перемещения считывающих головок, не должны волновать пользователя. Программа,
которая скрывает от программиста все реалии аппаратуры и предоставляет
возможность простого, удобного просмотра указанных файлов, чтения или записи -
это, конечно, операционная система. Точно также, как ОС ограждает программистов
от аппаратуры дискового накопителя и предоставляет ему простой файловый интерфейс,
операционная система берет на себя все малоприятные дела, связанные с
обработкой прерываний, управлением таймерами и оперативной памятью, а также
другие низкоуровневые проблемы. В каждом случае та абстрактная, воображаемая
машина, с которой, благодаря операционной системе, теперь может иметь дело
пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура,
лежащая в основе этой абстрактной машины.
С этой точки
зрения функцией ОС является предоставление пользователю некоторой расширенной
или виртуальной машины, которую легче программировать и с которой легче
работать, чем непосредственно с аппаратурой, составляющей реальную машину.
ОС как
система управления ресурсами
Идея о том, что
ОС прежде всего система, обеспечивающая удобный интерфейс пользователям,
соответствует рассмотрению сверху вниз. Другой взгляд, снизу вверх, дает
представление об ОС как о некотором механизме, управляющем всеми частями
сложной системы. Современные вычислительные системы состоят из процессоров,
памяти, таймеров, дисков, накопителей на магнитных лентах, сетевых
коммуникационной аппаратуры, принтеров и других устройств. В соответствии со
вторым подходом функцией ОС является распределение процессоров, памяти,
устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна
управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить
максимальную эффективность ее функционирования. Критерием эффективности может
быть, например, пропускная способность или реактивность системы. Управление
ресурсами включает решение двух общих, не зависящих от типа ресурса задач:
·
планирование
ресурса - то есть определение, кому, когда, а для делимых ресурсов и в каком
количестве, необходимо выделить данный ресурс;
·
отслеживание
состояния ресурса - то есть поддержание оперативной информации о том, занят или
не занят ресурс, а для делимых ресурсов - какое количество ресурса уже
распределено, а какое свободно.
Для решения этих
общих задач управления ресурсами разные ОС используют различные алгоритмы, что
в конечном счете и определяет их облик в целом, включая характеристики
производительности, область применения и даже пользовательский интерфейс. Так,
например, алгоритм управления процессором в значительной степени определяет, является
ли ОС системой разделения времени, системой пакетной обработки или системой
реального времени.
2.Эволюция
ОС
Первый
период (1945 -1955)
Известно, что
компьютер был изобретен английским математиком Чарльзом Бэбиджем в конце
восемнадцатого века. Его "аналитическая машина" так и не смогла
но-настоящему заработать, потому что технологии того времени не удовлетворяли
требованиям по изготовлению деталей точной механики, которые были необходимы
для вычислительной техники. Известно также, что этот компьютер не имел
операционной системы.
Некоторый
прогресс в создании цифровых вычислительных машин произошел после второй
мировой войны. В середине 40-х были созданы первые ламповые вычислительные
устройства. В то время одна и та же группа людей участвовала и в
проектировании, и в эксплуатации, и в программировании вычислительной машины.
Это была скорее научно-исследовательская работа в области вычислительной техники,
а не использование компьютеров в качестве инструмента решения каких-либо
практических задач из других прикладных областей. Программирование
осуществлялось исключительно на машинном языке. Об операционных системах не
было и речи, все задачи организации вычислительного процесса решались вручную
каждым программистом с пульта управления. Не было никакого другого системного
программного обеспечения, кроме библиотек математических и служебных
подпрограмм.
Второй
период (1955 - 1965)
С середины 50-х
годов начался новый период в развитии вычислительной техники, связанный с
появлением новой технической базы - полупроводниковых элементов. Компьютеры
второго поколения стали более надежными, теперь они смогли непрерывно работать
настолько долго, чтобы на них можно было возложить выполнение действительно
практически важных задач. Именно в этот период произошло разделение персонала
на программистов и операторов, эксплуатационщиков и разработчиков
вычислительных машин.
В эти годы
появились первые алгоритмические языки, а следовательно и первые системные
программы - компиляторы. Стоимость процессорного времени возросла, что потребовало
уменьшения непроизводительных затрат времени между запусками программ.
Появились первые системы пакетной обработки, которые просто автоматизировали
запуск одной программ за другой и тем самым увеличивали коэффициент загрузки
процессора. Системы пакетной обработки явились прообразом современных
операционных систем, они стали первыми системными программами, предназначенными
для управления вычислительным процессом. В ходе реализации систем пакетной
обработки был разработан формализованный язык управления заданиями, с помощью
которого программист сообщал системе и оператору, какую работу он хочет
выполнить на вычислительной машине. Совокупность нескольких заданий, как
правило в виде колоды перфокарт,получила название пакета заданий.
Третий
период (1965 - 1980)
Следующий важный
период развития вычислительных машин относится к 1965-1980 годам. В это время в
технической базе произошел переход от отдельных полупроводниковых элементов
типа транзисторов к интегральным микросхемам, что дало гораздо большие
возможности новому, третьему поколению компьютеров.
Для этого периода
характерно также создание семейств программно-совместимых машин. Первым
семейством программно-совместимых машин, построенных на интегральных
микросхемах, явилась серия машин IBM/360. Построенное в начале 60-х годов это семейство
значительно превосходило машины второго поколения по критерию цена/производительность.
Вскоре идея программно-совместимых машин стала общепризнанной.
Программная
совместимость требовала и совместимости операционных систем. Такие операционные
системы должны были бы работать и на больших, и на малых вычислительных
системах, с большим и с малым количеством разнообразной периферии, в коммерческой
области и в области научных исследований. Операционные системы, построенные с
намерением удовлетворить всем этим противоречивым требованиям, оказались
чрезвычайно сложными "монстрами". Они состояли из многих миллионов
ассемблерных строк, написанных тысячами программистов, и содержали тысячи
ошибок, вызывающих нескончаемый поток исправлений. В каждой новой версии
операционной системы исправлялись одни ошибки и вносились другие.
Однако, несмотря
на необозримые размеры и множество проблем, OS/360 и другие ей подобные
операционные системы машин третьего поколения действительно удовлетворяли
большинству требований потребителей. Важнейшим достижением ОС данного поколения
явилась реализация мультипрограммирования. Мультипрограммирование - это способ
организации вычислительного процесса, при котором на одном процессоре попеременно
выполняются несколько программ. Пока одна программа выполняет операцию ввода-вывода,
процессор не простаивает, как это происходило при последовательном выполнении
программ (однопрограммный режим), а выполняет другую программу (многопрограммный
режим). При этом каждая программа загружается в свой участок оперативной
памяти, называемый разделом.
Другое
нововведение - спулинг (spooling). Спулинг в то время определялся как способ
организации вычислительного процесса, в соответствии с которым задания считывались
с перфокарт на диск в том темпе, в котором они появлялись в помещении вычислительного
центра, а затем, когда очередное задание завершалось, новое задание с диска загружалось
в освободившийся раздел.
Наряду с
мультипрограммной реализацией систем пакетной обработки появился новый тип ОС -
системы разделения времени. Вариант мультипрограммирования, применяемый в
системах разделения времени, нацелен на создание для каждого отдельного пользователя
иллюзии единоличного использования вычислительной машины.
Четвертый
период (1980 - настоящее время)
Следующий период
в эволюции операционных систем связан с появлением больших интегральных схем
(БИС). В эти годы произошло резкое возрастание степени интеграции и удешевление
микросхем. Компьютер стал доступен отдельному человеку, и наступила эра
персональных компьютеров. С точки зрения архитектуры персональные компьютеры ничем
не отличались от класса миникомпьютеров типа PDP-11, но вот цена у них существенно
отличалась. Если миникомпьютер дал возможность иметь собственную вычислительную
машину отделу предприятия или университету, то персональный компьютер сделал
это возможным для отдельного человека.
Компьютеры стали
широко использоваться неспециалистами, что потребовало разработки
"дружественного" программного обеспечения, это положило конец
кастовости программистов.
На рынке
операционных систем доминировали две системы: MS-DOS и UNIX. Однопрограммная
однопользовательская ОС MS-DOS широко использовалась для компьютеров,
построенных на базе микропроцессоров Intel 8088, а затем 80286, 80386 и 80486.
Мультипрограммная многопользовательская ОС UNIX доминировала в среде
"не-интеловских" компьютеров, особенно построенных на базе
высокопроизводительных RISC-процессоров.
В середине 80-х
стали бурно развиваться сети персональных компьютеров, работающие под
управлением сетевых или распределенных ОС.
В сетевых ОС
пользователи должны быть осведомлены о наличии других компьютеров и должны
делать логический вход в другой компьютер, чтобы воспользоваться его ресурсами,
преимущественно файлами. Каждая машина в сети выполняет свою собственную
локальную операционную систему, отличающуюся от ОС автономного компьютера
наличием дополнительных средств, позволяющих компьютеру работать в сети.
Сетевая ОС не имеет фундаментальных отличий от ОС однопроцессорного компьютера.
Она обязательно содержит программную поддержку для сетевых
интерфейсных
устройств (драйвер сетевого адаптера), а также средства для удаленного входа в
другие компьютеры сети и средства доступа к удаленным файлам, однако эти
дополнения существенно не меняют структуру самой операционной системы.
3.Классификация
ОС
Операционные
системы могут различаться особенностями реализации внутренних алгоритмов
управления основными ресурсами компьютера (процессорами, памятью, устройствами),
особенностями использованных методов проектирования, типами аппаратных
платформ, областями использования и многими другими свойствами. Ниже приведена
классификация ОС по нескольким наиболее основным признакам.
Особенности
алгоритмов управления ресурсами
От эффективности
алгоритмов управления локальными ресурсами компьютера во многом зависит
эффективность всей сетевой ОС в целом. Поэтому, характеризуя сетевую ОС, часто
приводят важнейшие особенности реализации функций ОС по управлению процессорами,
памятью, внешними устройствами автономного компьютера. Так, например, в зависимости
от особенностей использованного алгоритма управления процессором, операционные
системы делят на многозадачные и однозадачные, многопользовательские и
однопользовательские, на системы, поддерживающие многонитевую обработку и не поддерживающие
ее, на многопроцессорные и однопроцессорные системы.
Поддержка
многозадачности. По числу одновременно выполняемых задач операционные системы
могут быть разделены на два класса:
·
однозадачные
(например, MS-DOS, MSX) и
·
многозадачные
(OC EC, OS/2, UNIX, Windows 95).
Однозадачные ОС в
основном выполняют функцию предоставления пользователю виртуальной машины,
делая более простым и удобным процесс взаимодействия пользователя с
компьютером. Однозадачные ОС включают средства управления периферийными
устройствами, средства управления файлами, средства общения с пользователем.
Многозадачные ОС,
кроме вышеперечисленных функций, управляют разделением совместно используемых
ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
Поддержка многопользовательского
режима. По числу одновременно работающих пользователей ОС делятся на:
·
однопользовательские
(MS-DOS, Windows 3.x, ранние версии OS/2);
·
многопользовательские
(UNIX, Windows NT).
Главным отличием
многопользовательских систем от однопользовательских является наличие средств
защиты информации каждого пользователя от несанкционированного доступа других
пользователей. Следует заметить, что не всякая многозадачная система является
многопользовательской, и не всякая однопользовательская ОС является однозадачной.
Вытесняющая и
невытесняющая многозадачность. Важнейшим разделяемым ресурсом является
процессорное время. Способ распределения процессорного времени между
несколькими одновременно существующими в системе процессами (или нитями) во многом
определяет специфику ОС. Среди множества существующих вариантов реализации
многозадачности можно выделить две группы алгоритмов:
·
невытесняющая
многозадачность (NetWare, Windows 3.x);
·
вытесняющая
многозадачность (Windows NT, OS/2, UNIX).
Основным
различием между вытесняющим и невытесняющим вариантами многозадачности является
степень централизации механизма планирования процессов. В первом случае
механизм планирования процессов целиком сосредоточен в операционной системе, а
во втором - распределен между системой и прикладными программами. При невытесняющей
многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной
инициативе, не отдаст управление операционной системе для того, чтобы та выбрала
из очереди другой готовый к выполнению процесс. При вытесняющей многозадачности
решение о переключении процессора с одного процесса на другой принимается операционной
системой, а не самим активным процессом.
Поддержка
многонитевости. Важным свойством операционных систем является возможность
распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет
процессорное время не между задачами, а между их отдельными ветвями (нитями).
Многопроцессорная
обработка. Другим важным свойством ОС является отсутствие или наличие в ней
средств поддержки многопроцессорной обработки - мультипроцессирование.
Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.
В наши дни
становится общепринятым введение в ОС функций поддержки многопроцессорной
обработки данных. Такие функции имеются в операционных системах Solaris 2.x
фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM,
Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.
Многопроцессорные
ОС могут классифицироваться по способу организации вычислительного процесса в
системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС.
Асимметричная ОС целиком выполняется только на одном из процессоров системы,
распределяя прикладные задачи по остальным процессорам. Симметричная ОС
полностью децентрализована и использует весь пул процессоров, разделяя их между
системными и прикладными задачами.
Выше были
рассмотрены характеристики ОС, связанные с управлением только одним типом
ресурсов - процессором. Важное влияние на облик операционной системы в целом,
на возможности ее использования в той или иной области оказывают особенности и
других подсистем управления локальными ресурсами - подсистем управления
памятью, файлами, устройствами ввода-вывода.
Специфика ОС
проявляется и в том, каким образом она реализует сетевые функции:
распознавание и перенаправление в сеть запросов к удаленным ресурсам, передача
сообщений по сети, выполнение удаленных запросов. При реализации сетевых
функций возникает комплекс задач, связанных с распределенным характером
хранения и обработки данных в сети: ведение справочной информации о всех
доступных в сети ресурсах и серверах, адресация взаимодействующих процессов,
обеспечение прозрачности доступа, тиражирование данных, согласование копий,
поддержка безопасности данных.
Особенности
аппаратных платформ
На свойства
операционной системы непосредственное влияние оказывают аппаратные средства, на
которые она ориентирована. По типу аппаратуры различают операционные системы
персональных компьютеров, мини-компьютеров, кластеров и сетей ЭВМ. Среди
перечисленных типов компьютеров могут встречаться как однопроцессорные варианты,
так и многопроцессорные. В любом случае специфика аппаратных средств, как правило,
отражается на специфике операционных систем.
Очевидно, что ОС
большой машины является более сложной и функциональной, чем ОС персонального
компьютера. Так в ОС больших машин функции по планированию потока выполняемых
задач, очевидно, реализуются путем использования сложных приоритетных дисциплин
и требуют большей вычислительной мощности, чем в ОС персональных компьютеров.
Аналогично обстоит дело и с другими функциями.
Сетевая ОС имеет
в своем составе средства передачи сообщений между компьютерами по линиям связи,
которые совершенно не нужны в автономной ОС. На основе этих сообщений сетевая
ОС поддерживает разделение ресурсов компьютера между удаленными пользователями,
подключенными к сети. Для поддержания функций передачи сообщений сетевые ОС
содержат специальные программные компоненты, реализующие популярные
коммуникационные протоколы, такие как IP, IPX, Ethernet и другие.
Многопроцессорные
системы требуют от операционной системы особой организации, с помощью которой
сама операционная система, а также поддерживаемые ею приложения могли бы
выполняться параллельно отдельными процессорами системы. Параллельная работа
отдельных частей ОС создает дополнительные проблемы для разработчиков ОС, так
как в этом случае гораздо сложнее обеспечить согласованный доступ отдельных
процессов к общим системным таблицам, исключить эффект гонок и прочие нежелательные
последствия асинхронного выполнения работ.
Наряду с ОС,
ориентированными на совершенно определенный тип аппаратной платформы,
существуют операционные системы, специально разработанные таким образом, чтобы
они могли быть легко перенесены с компьютера одного типа на компьютер другого
типа, так называемые мобильные ОС. Наиболее ярким примером такой ОС является
популярная система UNIX. В этих системах аппаратно-зависимые места тщательно
локализованы, так что при переносе системы на новую платформу переписываются
только они. Средством, облегчающем перенос остальной части ОС, является
написание ее на машинно-независимом языке, например, на С, который и был
разработан для программирования операционных систем.
Особенности
областей использования
Многозадачные ОС
подразделяются на три типа в соответствии с использованными при их разработке
критериями эффективности:
·
системы
пакетной обработки (например, OC EC),
·
системы
разделения времени (UNIX, VMS),
·
системы
реального времени (QNX, RT/11).
Системы пакетной
обработки предназначались для решения задач в основном вычислительного
характера, не требующих быстрого получения результатов. Главной целью и
критерием эффективности систем пакетной обработки является максимальная пропускная
способность, то есть решение максимального числа задач в единицу времени. Для
достижения этой цели в системах пакетной обработки используются следующая схема
функционирования: в начале работы формируется пакет заданий, каждое задание
содержит требование к системным ресурсам; из этого пакета заданий формируется
мультипрограммная смесь, то есть множество одновременно выполняемых задач. Для
одновременного выполнения выбираются задачи, предъявляющие отличающиеся требования
к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств
вычислительной машины; так, например, в мультипрограммной смеси желательно
одновременное присутствие вычислительных задач и задач с интенсивным
вводом-выводом. Таким образом, выбор нового задания из пакета заданий зависит
от внутренней ситуации, складывающейся в системе, то есть выбирается
"выгодное" задание. Следовательно, в таких ОС невозможно гарантировать
выполнение того или иного задания в течение определенного периода времени. В
системах пакетной обработки переключение процессора с выполнения одной задачи
на выполнение другой происходит только в случае, если активная задача сама
отказывается от процессора, например, из-за необходимости выполнить операцию
ввода-вывода. Поэтому одна задача может надолго занять процессор, что делает
невозможным выполнение интерактивных задач. Таким образом, взаимодействие
пользователя с вычислительной машиной, на которой установлена система пакетной
обработки, сводится к тому, что он приносит задание, отдает его
диспетчеру-оператору, а в конце дня после выполнения всего пакета заданий
получает результат. Очевидно, что такой порядок снижает эффективность работы
пользователя.
Системы
разделения времени призваны исправить основной недостаток систем пакетной обработки
- изоляцию пользователя-программиста от процесса выполнения его задач. Каждому
пользователю системы разделения времени предоставляется терминал, с которого он
может вести диалог со своей программой. Так как в системах разделения времени
каждой задаче выделяется только квант процессорного времени, ни одна задача не
занимает процессор надолго, и время ответа оказывается приемлемым. Если квант
выбран достаточно небольшим, то у всех пользователей, одновременно работающих
на одной и той же машине, складывается впечатление, что каждый из них
единолично использует машину. Ясно, что системы разделения времени обладают
меньшей пропускной способностью, чем системы пакетной обработки, так как на
выполнение принимается каждая запущенная пользователем задача, а не та, которая
"выгодна" системе, и, кроме того, имеются накладные расходы
вычислительной мощности на более частое переключение процессора с задачи на
задачу. Критерием эффективности систем разделения времени является не максимальная
пропускная способность, а удобство и эффективность работы пользователя.
Системы реального
времени применяются для управления различными техническими объектами, такими,
например, как станок, спутник, научная экспериментальная установка или
технологическими процессами, такими, как гальваническая линия, доменный процесс
и т.п. Во всех этих случаях существует предельно допустимое время, в течение
которого должна быть выполнена та или иная программа, управляющая объектом, в
противном случае может произойти авария: спутник выйдет из зоны видимости,
экспериментальные данные, поступающие с датчиков, будут потеряны, толщина
гальванического покрытия не будет соответствовать норме. Таким образом,
критерием эффективности для систем реального времени является их способность
выдерживать заранее заданные интервалы времени между запуском программы и
получением результата управляющего воздействия). Это время называется временем
реакции системы, а соответствующее свойство системы - реактивностью. Для этих
систем мультипрограммная смесь представляет собой фиксированный набор заранее
разработанных программ, а выбор программы на выполнение осуществляется исходя
из текущего состояния объекта или в соответствии с расписанием плановых работ.
Некоторые
операционные системы могут совмещать в себе свойства систем разных типов,
например, часть задач может выполняться в режиме пакетной обработки, а часть -
в режиме реального времени или в режиме разделения времени. В таких случаях
режим пакетной обработки часто называют фоновым режимом.
Особенности
методов построения
При описании
операционной системы часто указываются особенности ее структурной организации и
основные концепции, положенные в ее основу. К таким базовым концепциям
относятся:
·
Способы
построения ядра системы - монолитное ядро или микроядерный подход. Большинство
ОС использует монолитное ядро, которое компонуется как одна программа,
работающая в привилегированном режиме и использующая быстрые переходы с одной
процедуры на другую, не требующие переключения из привилегированного режима в
пользовательский и наоборот. Альтернативой является построение ОС на базе
микроядра, работающего также в привилегированном режиме и выполняющего только
минимум функций по управлению аппаратурой, в то время как функции ОС более высокого
уровня выполняют специализированные компоненты ОС - серверы, работающие в
пользовательском режиме. При таком построении ОС работает более медленно, так
как часто выполняются переходы между привилегированным режимом и
пользовательским, зато система получается более гибкой - ее функции можно
наращивать, модифицировать или сужать, добавляя, модифицируя или исключая
серверы пользовательского режима. Кроме того, серверы хорошо защищены друг от
друга, как и любые пользовательские процессы.
·
Построение
ОС на базе объектно-ориентированного подхода дает возможность использовать все
его достоинства, хорошо зарекомендовавшие себя на уровне приложений, внутри
операционной системы, а именно: аккумуляцию удачных решений в форме стандартных
объектов, возможность создания новых объектов на базе имеющихся с помощью
механизма наследования, хорошую защиту данных за счет их инкапсуляции во
внутренние структуры объекта, что делает данные недоступными для несанкционированного
использования извне, структуризованность системы, состоящей из набора хорошо
определенных объектов. Наличие нескольких прикладных сред дает возможность в
рамках одной ОС одновременно выполнять приложения, разработанные для нескольких
ОС. Многие современные операционные системы поддерживают одновременно прикладные
Среды MS-DOS, Windows, UNIX (POSIX), OS/2 или хотя бы некоторого подмножества
из этого популярного набора. Концепция множественных прикладных сред наиболее
просто реализуется в ОС на базе микроядра, над которым работают различные
серверы, часть которых реализуют прикладную среду той или иной операционной системы.
·
Распределенная
организация операционной системы позволяет упростить работу пользователей и
программистов в сетевых средах. В распределенной ОС реализованы механизмы,
которые дают возможность пользователю представлять и воспринимать сеть в виде
традиционного однопроцессорного компьютера. Характерными признаками распределенной
организации ОС являются: наличие единой справочной службы разделяемых ресурсов,
единой службы времени, использование механизма вызова удаленных процедур (RPC)
для прозрачного распределения программных процедур по машинам, многонитевой
обработки, позволяющей распараллеливать вычисления в рамках одной задачи и
выполнять эту задачу сразу на нескольких компьютерах сети, а также наличие
других распределенных служб.
4.Сетевые
операционные системы
Структура
сетевой операционной системы
Сетевая
операционная система составляет основу любой вычислительной сети. Каждый
компьютер в сети в значительной степени автономен, поэтому под сетевой операционной
системой в широком смысле понимается совокупность операционных систем отдельных
компьютеров, взаимодействующих с целью обмена сообщениями и разделения ресурсов
по единым правилам - протоколам. В узком смысле сетевая ОС - это операционная
система отдельного компьютера, обеспечивающая ему возможность работать в сети.
Рис. 4.1.
Структура сетевой ОС
В сетевой
операционной системе отдельной машины можно выделить несколько частей (рисунок
4.1):
Средства
управления локальными ресурсами компьютера: функции распределения оперативной
памяти между процессами, планирования и диспетчеризации процессов, управления
процессорами в мультипроцессорных машинах, управления периферийными устройствами
и другие функции управления ресурсами локальных ОС.
Средства
предоставления собственных ресурсов и услуг в общее пользование - серверная
часть ОС (сервер). Эти средства обеспечивают, например, блокировку файлов и
записей, что необходимо для их совместного использования; ведение справочников
имен сетевых ресурсов; обработку запросов удаленного доступа к собственной
файловой системе и базе данных; управление очередями запросов удаленных
пользователей к своим периферийным устройствам. Средства запроса доступа к
удаленным ресурсам и услугам и их использования - клиентская часть ОС
(редиректор). Эта часть выполняет распознавание и перенаправление в сеть
запросов к удаленным ресурсам от приложений и пользователей, при этом запрос
поступает от приложения в локальной форме, а передается в сеть в другой форме,
соответствующей требованиям сервера. Клиентская часть также осуествляет прием
ответов от серверов и преобразование их в локальный формат, так что для приложения
выполнение локальных и удаленных запросов неразличимо. Коммуникационные средства
ОС, с помощью которых происходит обмен сообщениями в сети. Эта часть обеспечивает
адресацию и буферизацию сообщений, выбор маршрута передачи сообщения по сети,
надежность передачи и т.п., то есть является средством транспортировки
сообщений.
В зависимости от
функций, возлагаемых на конкретный компьютер, в его операционной системе может
отсутствовать либо клиентская, либо серверная части.
На рисунке 4.2
показано взаимодействие сетевых компонентов. Здесь компьютер 1 выполняет роль
"чистого" клиента, а компьютер 2 - роль "чистого" сервера,
соответственно на первой машине отсутствует серверная часть, а на второй -
клиентская. На рисунке отдельно показан компонент клиентской части -
редиректор. Именно редиректор перехватывает все запросы, постуающие от
приложений, и анализирует их. Если выдан запрос к ресурсу данного компьютера,
то он переадресовывается соответствующей подсистеме локальной ОС, если же это
запрос к удаленному ресурсу, то он переправляется в сеть. При этом клиентская
часть преобразует запрос из локальной формы в сетевой формат и передает его
транспортной подсистеме, которая отвечает за доставку сообщенийуказанному серверу.
Серверная часть операционной системы компьютера 2 принимает запрос, преобразует
его и передает для выполнения своей локальной ОС. После того, как результат
получен, сервер обращается к транспортной подсистеме и направляет ответ
клиенту, выдавшему запрос. Клиентская часть преобразует результат в
соответствующий формат и адресует его тому приложению, которое выдало запрос.
Рис. 4.2.
взаимодействие компонентов операционной системы при взаимодействии компьютеров
На практике
сложилось несколько подходов к построению сетевых операционных систем (рисунок
4.3).
Рис. 4.3.
Варианты построения сетевых ОС
Первые сетевые ОС
представляли собой совокупность существующей локальной ОС и надстроенной над
ней сетевой оболочки. При этом в локальную ОС встраивался минимум сетевых
функций, необходимых для работы сетевой оболочки, которая выполняла основные
сетевые функции. Примером такого подхода является использование на каждой
машине сети операционной системы MS DOS (у которой начиная с ее третьей версии
появились такие встроенные функции, как блокировка файлов и записей,
необходимые для совместного доступа к файлам). Принцип построения сетевых ОС в
виде сетевой оболочки над локальной ОС используется и в современных ОС, таких,
например, как LANtastic или Personal Ware.
Однако более
эффективным представляется путь разработки операционных систем, изначально
предназначенных для работы в сети. Сетевые функции у ОС такого типа глубоко
встроены в основные модули системы, что обеспечивает их логическую стройность,
простоту эксплуатации и модификации, а также высокую производительность.
Примером такой ОС является система Windows NT фирмы Microsoft, которая за счет
встроенности сетевых средств обеспечивает более высокие показатели
производительности и защищенности информации по сравнению с сетевой ОС LAN
Manager той же фирмы (совместная разработка с IBM), являющейся надстройкой над
локальной операционной системой OS/2.
Одноранговые
сетевые ОС и ОС с выделенными серверами
В зависимости от
того, как распределены функции между компьютерами сети, сетевые операционные
системы, а следовательно, и сети делятся на два класса: одноранговые и
двухранговые (рисунок 4.4). Последние чаще называют сетями с выделенными серверами.
(а)
(б)
Рис. 4.4. (а) -
Одноранговая сеть,
(б) -
Двухранговая сеть
Если компьютер
предоставляет свои ресурсы другим пользователям сети, то он играет роль
сервера. При этом компьютер, обращающийся к ресурсам другой машины, является
клиентом. Как уже было сказано, компьютер, работающий в сети, может выполнять
функции либо клиента, либо сервера, либо совмещать обе эти функции.
Если выполнение
каких-либо серверных функций является основным назначением компьютера
(например, предоставление файлов в общее пользование всем остальным
пользователям сети или организация совместного использования факса, или предоставление
всем пользователям сети возможности запуска на данном компьютере своих приложений),
то такой компьютер называется выделенным сервером. В зависимости от того, какой
ресурс сервера является разделяемым, он называется файл-сервером, факс-сервером,
принт-сервером, сервером приложений и т.д.
Очевидно, что на
выделенных серверах желательно устанавливать ОС, специально оптимизированные
для выполнения тех или иных серверных функций. Поэтому в сетях с выделенными
серверами чаще всего используются сетевые операционные системы, в состав
которых входит нескольких вариантов ОС, отличающихся возможностями серверных
частей. Например, сетевая ОС Novell NetWare имеет серверный вариант,
оптимизированный для работы в качестве файл-сервера, а также варианты оболочек
для рабочих станций с различными локальными ОС, причем эти оболочки выполняют
исключительно функции клиента. Другим примером ОС, ориентированной на
построение сети с выделенным сервером, является операционная система Windows
NT. В отличие от NetWare, оба варианта данной сетевой ОС - Windows NT Server
(для выделенного сервера) и Windows NT Workstation (для рабочей станции) -
могут поддерживать функции и клиента и сервера. Но серверный вариант Windows NT
имеет больше возможностей для предоставления ресурсов своего компьютера другим
пользователям сети, так как может выполнять более широкий набор функций,
поддерживает большее количество одновременных соединений с клиентами, реализует
централизованное управление сетью, имеет более развитые средства защиты.
Выделенный сервер
не принято использовать в качестве компьютера для выполнения текущих задач, не
связанных с его основным назначением, так как это может уменьшить
производительность его работы как сервера. В связи с такими соображениями в ОС
Novell NetWare на серверной части возможность выполнения обычных прикладных
программ вообще не предусмотрена, то есть сервер не содержит клиентской части,
а на рабочих станциях отсутствуют серверные компоненты. Однако в других сетевых
ОС функционирование на выделенном сервере клиентской части вполне возможно.
Например, под управлением Windows NT Server могут запускаться обычные программы
локального пользователя, которые могут потребовать выполнения клиентских
функций ОС при появлении запросов к ресурсам других компьютеров сети. При этом
рабочие станции, на которых установлена ОС Windows NT Workstation, могут
выполнять функции невыделенного сервера.
Важно понять, что
несмотря на то, что в сети с выделенным сервером все компьютеры в общем случае
могут выполнять одновременно роли и сервера, и клиента, эта сеть функционально
не симметрична: аппаратно и программно в ней реализованы два типа компьютеров -
одни, в большей степени ориентированные на выполнение серверных функций и
работающие под управлением специализированных серверных ОС, а другие - в
основном выполняющие клиентские функции и работающие под управлением
соответствующего этому назначению варианта ОС. Функциональная несимметричность,
как правило, вызывает и несимметричность аппаратуры - для выделенных серверов
используются более мощные компьютеры с большими объемами оперативной и внешней
памяти. Таким образом, функциональная несимметричность в сетях с выделенным сервером
сопровождается несимметричностью операционных систем (специализация ОС) и аппаратной
несимметричностью (специализация компьютеров).
В одноранговых
сетях все компьютеры равны в правах доступа к ресурсам друг друга.Каждый
пользователь может по своему желанию объявить какой-либо ресурс своего
компьютера разделяемым, после чего другие пользователи могут его
эксплуатировать. В таких сетях на всех компьютерах устанавливается одна и та же
ОС, которая предоставляет всем компьютерам в сети потенциально равные
возможности. Одноранговые сети могут быть построены, например, на базе ОС
LANtastic, Personal Ware, Windows for Workgroup, Windows NT Workstation.
В одноранговых
сетях также может возникнуть функциональная несимметричность: одни пользователи
не желают разделять свои ресурсы с другими, и в таком случае их компьютеры
выполняют роль клиента, за другими компьютерами администратор закрепил только
функции по организации совместного использования ресурсов, а значит они являются
серверами, в третьем случае, когда локальный пользователь не возражает против использования
его ресурсов и сам не исключает возможности обращения к другим компьютерам, ОС,
устанавливаемая на его компьютере, должна включать и серверную, и клиентскую
части. В отличие от сетей с выделенными серверами, в одноранговых сетях отсутствует
специализация ОС в зависимости от преобладающей функциональной направленности -
клиента или сервера. Все вариации реализуются средствами конфигурирования
одного и того же варианта ОС.
Одноранговые сети
проще в организации и эксплуатации, однако они применяются в основном для
объединения небольших групп пользователей, не предъявляющих больших требований
к объемам хранимой информации, ее защищенности от несанкционированного доступа
и к скорости доступа. При повышенных требованиях к этим характеристикам более
подходящими являются двухранговые сети, где сервер лучше решает задачу обслуживания
пользователей своими ресурсами, так как его аппаратура и сетевая операционная
система специально спроектированы для этой цели.
ОС для
рабочих групп и ОС для сетей масштаба предприятия
Сетевые
операционные системы имеют разные свойства в зависимости от того, предназначены
они для сетей масштаба рабочей группы (отдела), для сетей масштаба кампуса или
для сетей масштаба предприятия.
Сети отделов -
используются небольшой группой сотрудников, решающих общие задачи. Главной
целью сети отдела является разделение локальных ресурсов, таких как
приложения, данные, лазерные принтеры и модемы. Сети отделов обычно не
разделяются на подсети. Сети кампусов - соединяют несколько сетей отделов
внутри отдельного здания или внутри одной территории предприятия. Эти сети
являются все еще локальными сетями, хотя и могут покрывать территорию в
несколько квадратных километров. Сервисы такой сети включают взаимодействие
между сетями отделов, доступ к базам данных предприятия, доступ к
факс-серверам, высокоскоростным модемам и высокоскоростным принтерам. Сети
предприятия (корпоративные сети) - объединяют все компьютеры всех территорий
отдельного предприятия. Они могут покрывать город, регион или даже континент. В
таких сетях пользователям предоставляется доступ к информации и приложениям,
находящимся в других рабочих группах, других отделах, подразделениях и
штаб-квартирах корпорации.
Следующим шагом в
эволюции сетей является объединение локальных сетей нескольких отделов в единую
сеть здания или группы зданий. Такие сети называют сетями кампусов. Сети
кампусов могут простираться на несколько километров, но при этом глобальные
соединения не требуются.
Операционная
система, работающая в сети кампуса, должна обеспечивать для сотрудников одних
отделов доступ к некоторым файлам и ресурсам сетей других отделов. Услуги,
предоставляемые ОС сетей кампусов, не ограничиваются простым разделением файлов
и принтеров, а часто предоставляют доступ и к серверам других типов, например,
к факс-серверам и к серверам высокоскоростных модемов. Важным сервисом,
предоставляемым операционными системами данного класса, является доступ к
корпоративным базам данных, независимо от того, располагаются ли они на
серверах баз данных или на миникомпьютерах.
Именно на уровне
сети кампуса начинаются проблемы интеграции. В общем случае, отделы уже выбрали
для себя типы компьютеров, сетевого оборудования и сетевых операционных систем.
Например, инженерный отдел может использовать операционную систему UNIX и
сетевое оборудование Ethernet, отдел продаж может использовать операционные
среды DOS/Novell и оборудование Token Ring. Очень часто сеть кампуса соединяет
разнородные компьютерные системы, в то время как сети отделов используют
однотипные компьютеры.
Корпоративная
сеть соединяет сети всех подразделений предприятия, в общем случае находящихся
на значительных расстояниях. Корпоративные сети используют глобальные связи
(WAN links) для соединения локальных сетей или отдельных компьютеров.
Пользователям
корпоративных сетей требуются все те приложения и услуги, которые имеются в
сетях отделов и кампусов, плюс некоторые дополнительные приложения и услуги,
например, доступ к приложениям миникомпьютеров и к глобальным связям. Когда ОС
разрабатывается для локальной сети или рабочей группы, то ее главной
обязанностью является разделение файлов и других сетевых ресурсов (обычно
принтеров) между локально подключенными пользователями. Такой подход не
применим для уровня предприятия. Наряду с базовыми сервисами, связанными с разделением
файлов и принтеров, сетевая ОС, которая разрабатывается для корпораций, должна
поддерживать более широкий набор сервисов, в который обычно входят почтовая
служба, средства коллективной работы, поддержка удаленных пользователей,
факс-сервис, обработка голосовых сообщений, организация видеоконференций и др.
Кроме того,
многие существующие методы и подходы к решению традиционных задач сетей меньших
масштабов для корпоративной сети оказались непригодными. На первый план вышли
такие задачи и проблемы, которые в сетях рабочих групп, отделов и даже кампусов
либо имели второстепенное значение, либо вообще не проявлялись. Например,
простейшая для небольшой сети задача ведения учетной информации о пользователях
выросла в сложную проблему для сети масштаба предприятия. А использование
глобальных связей требует от корпоративных ОС поддержки протоколов, хорошо
работающих на низкоскоростных линиях, и отказа от некоторых традиционно
используемых протоколов (например, тех, которые активно используют
широковещательные сообщения). Особое значение приобрели задачи преодоления
гетерогенности - в сети появились многочисленные шлюзы, обеспечивающие
согласованную работу различных ОС и сетевых системных приложений. К признакам
корпоративных ОС могут быть отнесены также следующие особенности.
Поддержка
приложений. В корпоративных сетях выполняются сложные приложения, требующие для
выполнения большой вычислительной мощности. Такие приложения разделяются на
несколько частей, например, на одном компьютере выполняется часть приложения,
связанная с выполнением запросов к базе данных, на другом - запросов к
файловому сервису, а на клиентских машинах - часть, реализующая логику
обработки данных приложения и организующая интерфейс с пользователем.
Вычислительная часть общих для корпорации программных систем может быть слишком
объемной и неподъемной для рабочих станций клиентов, поэтому приложения будут
выполняться более эффективно, если их наиболее сложные в вычислительном
отношении части перенести на специально предназначенный для этого мощный
компьютер - сервер приложений. Сервер приложений должен базироваться на мощной
аппаратной платформе мультипроцессорные системы, часто на базе
RISC-процессоров, специализированные кластерные архитектуры. ОС сервера
приложений должна обеспечивать высокую производительность вычислений, а значит
поддерживать многонитевую обработку, вытесняющую многозадачность, мультипроцессирование,
виртуальную память и наиболее популярные прикладные среды (UNIX, Windows,
MS-DOS, OS/2). В этом отношении сетевую ОС NetWare трудно отнести к корпоративным
продуктам, так как в ней отсутствуют почти все требования, предъявляемые к
серверу приложений. В то же время хорошая поддержка универсальных приложений в
Windows NT собственно и позволяет ей претен довать на место в мире
корпоративных продуктов.
Справочная
служба.
Корпоративная ОС должна обладать способностью хранить информацию обо всех
пользователях и ресурсах таким образом, чтобы обеспечивалось управление ею из
одной центральной точки. Подобно большой организации, корпоративная сеть нуждается
в централизованном хранении как можно более полной справочной информации о
самой себе (начиная с данных о пользователях, серверах, рабочих станциях и
кончая данными о кабельной системе). Естественно организовать эту информацию в
виде базы данных. Данные из этой базы могут быть востребованы многими сетевыми
системными приложениями, в первую очередь системами управления и
администрирования. Кроме этого, такая база полезна при организации электронной
почты, систем коллективной работы, службы безопасности, службы инвентаризации
программного и аппаратного обеспечения сети, да и для практически любого
крупного бизнес-приложения. В идеале сетевая справочная информация должна быть
реализована в виде единой базы данных, а не представлять собой набор баз данных,
специализирующихся на хранении информации того или иного вида, как это часто
бывает в реальных операционных системах. Например, в Windows NT имеется по
крайней мере пять различных типов справочных баз данных. Главный справочник
домена (NT Domain Directory Service) хранит информацию о пользователях, которая
используется при организации их логического входа в сеть. Данные о тех же
пользователях могут содержаться и в другом справочнике, используемом
электронной почтой Microsoft Mail. Еще три базы данных поддерживают разрешение
низкоуровневых адресов: WINS - устанавливает соответствие Netbios-имен
IP-адресам, справочник DNS - сервер имен домена - оказывается полезным при
подключении NT-сети к Internet, и наконец, справочник протокола DHCP
используется для автоматического назначения IP-адресов компьютерам сети. Ближе
к идеалу находятся справочные службы, поставляемые фирмой Banyan (продукт
Streettalk III) и фирмой Novell (NetWare Directory Services), предлагающие
единый справочник для всех сетевых приложений. Наличие единой справочной службы
для сетевой операционной системы - один из важнейших признаков ее корпоративности.
Безопасность. Особую важность для ОС
корпоративной сети приобретают вопросы безопасности данных. С одной стороны, в
крупномасштабной сети объективно существует больше возможностей для
несанкционированного доступа - из-за децентрализации данных и большой
распределенности "законных" точек доступа, из-за большого числа
пользователей, благонадежность которых трудно установить, а также из-за
большого числа возможных точек несанкционированного подключения к сети. С
другой стороны, корпоративные бизнес-приложения работают с данными, которые
имеют жизненно важное значение для успешной работы корпорации в целом. И для
защиты таких данных в корпоративных сетях наряду с различными аппаратными
средствами используется весь спектр средств защиты, предоставляемый
операционной системой: избирательные или мандатные права доступа, сложные
процедуры аутентификации пользователей, программная шифрация.
5.Управление
памятью
Память является
важнейшим ресурсом, требующим тщательного управления со стороны
мультипрограммной операционной системы. Распределению подлежит вся оперативная
память, не занятая операционной системой. Обычно ОС располагается в самых младших
адресах, однако может занимать и самые старшие адреса. Функциями ОС по управлению
памятью являются: отслеживание свободной и занятой памяти, выделение памяти
процессам и освобождение памяти при завершении процессов, вытеснение процессов
из оперативной памяти на диск, когда размеры основной памяти не достаточны для
размещения в ней всех процессов, и возвращение их в оперативную память, когда в
ней освобождается место, а также настройка адресов программы на конкретную
область физической памяти.
Типы
адресов
Для идентификации
переменных и команд используются символьные имена (метки), виртуальные адреса и
физические адреса (рисунок 5.1). Символьные имена присваивает пользователь при
написании программы на алгоритмическом языке или ассемблере. Виртуальные адреса
вырабатывает транслятор, переводящий программу на машинный язык. Так как во
время трансляции в общем случае не известно, в какое место оперативной памяти
будет загружена программа, то транслятор присваивает переменным и командам виртуальные
(условные) адреса, обычно считая по умолчанию, что программа будет размещена,
начиная с нулевого адреса. Совокупность виртуальных адресов процесса называется
виртуальным адресным пространством. Каждый процесс имеет собственное
виртуальное адресное пространство. Максимальный размер виртуального адресного
пространства ограничивается разрядностью адреса, присущей данной архитектуре
компьютера, и, как правило, не совпадает с объемом физической памяти, имеющимся
в компьютере.
Рис. 5.1. Типы
адресов
Физические адреса
соответствуют номерам ячеек оперативной памяти, где в действительности расположены
или будут расположены переменные и команды. Переход от виртуальных адресов к
физическим может осуществляться двумя способами. В первом случае замену виртуальных
адресов на физические делает специальная системная программа - перемещающий
загрузчик. Перемещающий загрузчик на основании имеющихся у него исходных данных
о начальном адресе физической памяти, в которую предстоит загружать программу,
и информации, предоставленной транслятором об адресно-зависимых константах
программы, выполняет загрузку программы, совмещая ее с заменой виртуальных адресов
физическими.
Второй способ
заключается в том, что программа загружается в память в неизмененном виде в
виртуальных адресах, при этом операционная система фиксирует смещение
действительного расположения программного кода относительно виртуального
адресного пространства. Во время выполнения программы при каждом обращении к
оперативной памяти выполняется преобразование виртуального адреса в физический.
Второй способ является более гибким, он допускает перемещение программы во
время ее выполнения, в то время как перемещающий загрузчик жестко привязывает
программу к первоначально выделенному ей участку памяти. Вместе с тем
использование перемещающего загрузчика уменьшает накладные расходы, так как
преобразование каждого виртуального адреса происходит только один раз во время
загрузки, а во втором случае - каждый раз при обращении по данному адресу.
В некоторых
случаях (обычно в специализированных системах), когда заранее точно известно, в
какой области оперативной памяти будет выполняться программа, транслятор выдает
исполняемый код сразу в физических адресах.
Методы
распределения памяти без использования дискового пространства
Все методы
управления памятью могут быть разделены на два класса: методы, которые
используют перемещение процессов между оперативной памятью и диском, и методы,
которые не делают этого (рисунок 5.2). Начнем с последнего, более простого
класса методов.
Рис. 5.2.
Классификация методов распределения памяти
Распределение
памяти фиксированными разделами.
Самым простым
способом управления оперативной памятью является разделение ее на несколько
разделов фиксированной величины. Это может быть выполнено вручную оператором во
время старта системы или во время ее генерации. Очередная задача, поступившая
на выполнение, помещается либо в общую очередь (рисунок 5.3,а), либо в очередь
к некоторому разделу (рисунок 5.3,б).
Рис. 5.3.
Распределение памяти фиксированными разделами:
а - с общей
очередью;
б - с отдельными
очередями
Подсистема
управления памятью в этом случае выполняет следующие задачи: сравнивая размер
программы, поступившей на выполнение, и свободных разделов, выбирает подходящий
раздел, осуществляет загрузку программы и настройку адресов.
При очевидном
преимуществе - простоте реализации - данный метод имеет существенный недостаток
- жесткость. Так как в каждом разделе может выполняться только одна программа,
то уровень мультипрограммирования заранее ограничен числом разделов не зависимо
от того, какой размер имеют программы. Даже если программа имеет небольшой
объем, она будет занимать весь раздел, что приводит к неэффективному
использованию памяти. С другой стороны, даже если объем оперативной памяти
машины позволяет выполнить некоторую программу, разбиение памяти на разделы не
позволяет сделать этого.
Распределение
памяти разделами переменной величины
В этом случае
память машины не делится заранее на разделы. Сначала вся память свободна.
Каждой вновь поступающей задаче выделяется необходимая ей память. Если
достаточный объем памяти отсутствует, то задача не принимается на выполнение и
стоит в очереди. После завершения задачи память освобождается, и на это место
может быть загружена другая задача. Таким образом, в произвольный момент
времени оперативная память представляет собой случайную последовательность
занятых и свободных участков (разделов) произвольного размера. На рисунке 2.10
показано состояние памяти в различные моменты времени при использовании
динамического распределения. Так в момент t0 в памяти находится только ОС, а к
моменту t1 память разделена между 5 задачами, причем задача П4, завершаясь,
покидает память. На освободившееся после
задачи П4 место
загружается задача П6, поступившая в момент t3.
Рис. 5.4.
Распределение памяти динамическими разделами
Задачами операционной
системы при реализации данного метода управления памятью является:
ведение
таблиц свободных и занятых областей, в которых указываются начальные адреса и
размеры участков памяти,
при поступлении
новой задачи - анализ запроса, просмотр таблицы свободных областей и выбор
раздела, размер которого достаточен для размещения поступившей задачи,
загрузка
задачи в выделенный ей раздел и корректировка таблиц свободных и занятых
областей, после завершения задачи корректировка таблиц свободных и занятых областей.
Программный код
не перемещается во время выполнения, то есть может быть проведена
единовременная настройка адресов посредством использования перемещающего загрузчика.
Выбор раздела для
вновь поступившей задачи может осуществляться по разным правилам, таким,
например, как "первый попавшийся раздел достаточного размера", или
"раздел, имеющий наименьший достаточный размер", или "раздел,
имеющий наибольший достаточный размер". Все эти правила имеют свои
преимущества и недостатки.
По сравнению с
методом распределения памяти фиксированными разделами данный метод обладает
гораздо большей гибкостью, но ему присущ очень серьезный недостаток -
фрагментация памяти. Фрагментация - это наличие большого числа несмежных
участков свободной памяти очень маленького размера (фрагментов). Настолько
маленького, что ни одна из вновь поступающих программ не может поместиться ни в
одном из участков, хотя суммарный объем фрагментов может составить значительную
величину, намного превышающую требуемый объем памяти.
Перемещаемые
разделы
Одним из методов
борьбы с фрагментацией является перемещение всех занятых участков в сторону
старших либо в сторону младших адресов, так, чтобы вся свободная память
образовывала единую свободную область (рисунок 5.5). В дополнение к функциям,
которые выполняет ОС при распределении памяти переменными разделами, в данном
случае она должна еще время от времени копировать содержимое разделов из одного
места памяти в другое, корректируя таблицы свободных и занятых областей. Эта
процедура называется "сжатием". Сжатие может выполняться либо при
каждом завершении задачи, либо только тогда, когда для вновь поступившей задачи
нет свободного раздела достаточного размера. В первом случае требуется меньше
вычислительной работы при корректировке таблиц, а во втором - реже выполняется
процедура сжатия. Так как программы перемещаются по оперативной памяти в ходе
своего выполнения, то преобразование адресов из виртуальной формы в физическую
должно выполняться динамическим способом.
Рис. 5.5.
Распределение памяти перемещаемыми разделами
Хотя процедура
сжатия и приводит к более эффективному использованию памяти, она может
потребовать значительного времени, что часто перевешивает преимущества данного
метода.
Методы
распределения памяти с использованием дискового пространства
Понятие
виртуальной памяти
Уже достаточно
давно пользователи столкнулись с проблемой размещения в памяти программ, размер
которых превышал имеющуюся в наличии свободную память. Решением было разбиение
программы на части, называемые оверлеями. 0-ой оверлей начинал выполняться
первым. Когда он заканчивал свое выполнение, он вызывал другой оверлей. Все
оверлеи хранились на диске и перемещались между памятью и диском средствами
операционной системы. Однако разбиение программы на части и планирование их
загрузки в оперативную память должен был осуществлять программист.
Развитие методов
организации вычислительного процесса в этом направлении привело к
появлению метода,
известного под названием виртуальная память. Виртуальным называется ресурс,
который пользователю или пользовательской программе представляется обладающим
свойствами, которыми он в действительности не обладает. Так, например,
пользователю может быть предоставлена виртуальная оперативная память, размер
которой превосходит всю имеющуюся в системе реальную оперативную память.
Пользователь пишет программы так, как будто в его распоряжении имеется
однородная оперативная память большого объема, но в действительности все
данные, используемые программой, хранятся на одном или нескольких разнородных
запоминающих устройствах, обычно на дисках, и при необходимости частями
отображаются в реальную память.
Таким образом,
виртуальная память - это совокупность программно-аппаратных средств,
позволяющих пользователям писать программы, размер которых превосходит
имеющуюся операвивную память; для этого виртуальная память решает следующие
задачи:
·
размещает
данные в запоминающих устройствах разного типа, например, часть программы в
оперативной памяти, а часть на диске;
·
перемещает
по мере необходимости данные между запоминающими устройствами разного типа,
например, подгружает нужную часть программы с диска в оперативную память;
·
преобразует
виртуальные адреса в физические.
Все эти действия
выполняются автоматически, без участия программиста, то есть механизм виртуальной
памяти является прозрачным по отношению к пользователю.
Наиболее
распространенными реализациями виртуальной памяти является страничное,
сегментное и странично-сегментное распределение памяти, а также свопинг.
Страничное
распределение
На рисунке 5.6
показана схема страничного распределения памяти. Виртуальное адресное пространство
каждого процесса делится на части одинакового, фиксированного для данной системы
размера, называемые виртуальными страницами. В общем случае размер виртуального
адресного пространства не является кратным размеру страницы, поэтому последняя
страница каждого процесса дополняется фиктивной областью. Вся оперативная
память машины также делится на части такого же размера, называемые физическими
страницами (или блоками).
Размер страницы
обычно выбирается равным степени двойки: 512, 1024 и т.д., это позволяет упростить
механизм преобразования адресов.
При загрузке
процесса часть его виртуальных страниц помещается в оперативную память, а
остальные - на диск. Смежные виртуальные страницы не обязательно располагаются
в смежных физических страницах. При загрузке операционная система создает для
каждого процесса информационную структуру - таблицу страниц, в которой
устанавливается соответствие между номерами виртуальных и физических страниц
для страниц, загруженных в оперативную память, или делается отметка о том, что
виртуальная страница выгружена на диск. Кроме того, в таблице страниц
содержится управляющая информация, такая как признак модификации страницы,
признак невыгружаемости (выгрузка некоторых страниц может быть запрещена),
признак обращения к странице (используется для подсчета числа обращений за
определенный период времени) и другие данные, формируемые и используемые
механизмом виртуальной памяти.
Рис. 5.6.
Страничное распределение памяти
При активизации
очередного процесса в специальный регистр процессора загружается адрес таблицы
страниц данного процесса.
При каждом
обращении к памяти происходит чтение из таблицы страниц информации о
виртуальной странице, к которой произошло обращение. Если данная виртуальная
страница находится в оперативной памяти, то выполняется преобразование
виртуального адреса в физический. Если же нужная виртуальная страница в данный
момент выгружена на диск, то происходит так называемое страничное прерывание.
Выполняющийся процесс переводится в состояние ожидания, и активизируется другой
процесс из очереди готовых. Параллельно программа обработки страничного
прерывания находит на диске требуемую виртуальную страницу и пытается загрузить
ее в оперативную память. Если в памяти имеется свободная физическая страница,
то загрузка выполняется немедленно, если же свободных страниц нет, то решается
вопрос, какую страницу следует выгрузить из оперативной памяти.
В данной ситуации
может быть использовано много разных критериев выбора, наиболее популярные из
них следующие:
·
дольше
всего не использовавшаяся страница,
·
первая
попавшаяся страница,
·
страница,
к которой в последнее время было меньше всего обращений.
В некоторых
системах используется понятие рабочего множества страниц. Рабочее множество
определяется для каждого процесса и представляет собой перечень наиболее часто
используемых страниц, которые должны постоянно находиться в оперативной памяти
и поэтому не подлежат выгрузке.
После того, как
выбрана страница, которая должна покинуть оперативную память, анализируется ее
признак модификации (из таблицы страниц). Если выталкиваемая страница с момента
загрузки была модифицирована, то ее новая версия должна быть переписана на
диск. Если нет, то она может быть просто уничтожена, то есть соответствующая физическая
страница объявляется свободной.
Рассмотрим
механизм преобразования виртуального адреса в физический при страничной организации
памяти (рисунок 5.7).
Виртуальный адрес
при страничном распределении может быть представлен в виде пары (p,s), где p -
номер виртуальной страницы процесса (нумерация страниц начинается с 0), а s -
смещение в пределах виртуальной страницы. Учитывая, что размер страницы равен 2
в степени к, смещение s может быть получено простым отделением k младших
разрядов в двоичной записи виртуального адреса. Оставшиеся старшие разряды
представляют собой двоичную запись номера страницы p.
Рис. 5.7.
Механизм преобразования виртуального адреса в физический при страничной
организации памяти
При каждом
обращении к оперативной памяти аппаратными средствами выполняются следующие
действия:
1.на основании
начального адреса таблицы страниц (содержимое регистра адреса таблицы страниц),
номера виртуальной страницы (старшие разряды виртуального адреса) и длины
записи в таблице страниц (системная константа) определяется адрес нужной
записи в таблице,
2.из этой
записи извлекается номер физической страницы,
3.к номеру
физической страницы присоединяется смещение (младшие разряды виртуального
адреса).
Использование в
пункте (3) того факта, что размер страницы равен степени 2, позволяет применить
операцию присоединения вместо более длительной операции сложения, что уменьшает
время получения физического адреса, а значит повышает производительность
компьютера.
На
производительность системы со страничной организацией памяти влияют временные
затраты, связанные с обработкой страничных прерываний и преобразованием виртуального
адреса в физический. При часто возникающих страничных прерываниях система может
тратить большую часть времени впустую, на свопинг страниц. Чтобы уменьшить
частоту страничных прерываний, следовало бы увеличивать размер страницы. Кроме
того, увеличение размера страницы уменьшает размер таблицы страниц, а значит
уменьшает затраты памяти. С другой стороны, если страница велика, значит велика
и фиктивная область в последней виртуальной странице каждой программы. В
среднем на каждой программе теряется половина объема страницы, что в сумме при
большой странице может составить существенную величину. Время преобразования
виртуального адреса в физический в значительной степени определяется временем
доступа к таблице страниц. В связи с этим таблицу страниц стремятся размещать в
"быстрых" запоминающих устройствах. Это может быть, например, набор
специальных регистров или память, использующая для уменьшения времени доступа
ассоциативный поиск и кэширование данных.
Страничное
распределение памяти может быть реализовано в упрощенном варианте, без выгрузки
страниц на диск. В этом случае все виртуальные страницы всех процессов
постоянно находятся в оперативной памяти. Такой вариант страничной организации
хотя и не предоставляет пользователю виртуальной памяти, но почти исключает
фрагментацию за счет того, что программа может загружаться в несмежные области,
а также того, что при загрузке виртуальных страниц никогда не образуется
остатков.
Сегментное
распределение
При страничной
организации виртуальное адресное пространство процесса делится механически на
равные части. Это не позволяет дифференцировать способы доступа к разным частям
программы (сегментам), а это свойство часто бывает очень полезным. Например,
можно запретить обращаться с операциями записи и чтения в кодовый сегмент программы,
а для сегмента данных разрешить только чтение. Кроме того, разбиение программы
на "осмысленные" части делает принципиально возможным разделение
одного сегмента несколькими процессами. Например, если два процесса используют
одну и ту же математическую подпрограмму, то в оперативную память может быть
загружена только одна копия этой подпрограммы.
Рассмотрим, каким
образом сегментное распределение памяти реализует эти возможности (рисунок
5.8). Виртуальное адресное пространство процесса делится на сегменты, размер которых
определяется программистом с учетом смыслового значения содержащейся в них информации.
Отдельный сегмент может представлять собой подпрограмму, массив данных и т.п.
Иногда сегментация программы выполняется по умолчанию компилятором.
При загрузке
процесса часть сегментов помещается в оперативную память (при этом для каждого
из этих сегментов операционная система подыскивает подходящий участок свободной
памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной
программы могут занимать в оперативной памяти несмежные участки. Во время
загрузки система создает таблицу сегментов процесса (аналогичную таблице
страниц), в которой для каждого сегмента указывается начальный физический адрес
сегмента в оперативной памяти, размер сегмента, правила доступа, признак
модификации, признак обращения к данному сегменту за последний интервал времени
и некоторая другая информация. Если виртуальные адресные пространства
нескольких процессов включают один и тот же сегмент, то в таблицах сегментов
этих процессов делаются ссылки на один и тот же участок оперативной памяти, в
который данный сегмент загружается в единственном экземпляре.
Рис. 5.8. Распределение памяти сегментами
Система с
сегментной организацией функционирует аналогично системе со страничной
организацией: время от времени происходят прерывания, связанные с отсутствием
нужных сегментов в памяти, при необходимости освобождения памяти некоторые
сегменты выгружаются, при каждом обращении к оперативной памяти выполняется
преобразование виртуального адреса в физический. Кроме того, при обращении к
памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.
Виртуальный адрес
при сегментной организации памяти может быть представлен парой (g,s), где g -
номер сегмента, а s - смещение в сегменте.Физический адрес получается путем
сложения начального физического адреса сегмента, найденного в таблице сегментов
по номеру g, и смещения s.
Недостатком
данного метода распределения памяти является фрагментация на уровне сегментов и
более медленное по сравнению со страничной организацией преобразование адреса.
Странично-сегментное
распределение
Как видно из
названия, данный метод представляет собой комбинацию страничного и сегментного
распределения памяти и, вследствие этого, сочетает в себе достоинства обоих
подходов. Виртуальное пространство процесса делится на сегменты, а каждый
сегмент в свою очередь делится на виртуальные страницы, которые нумеруются в
пределах сегмента. Оперативная память делится на физические страницы. Загрузка
процесса выполняется операционной системой постранично, при этом часть страниц
размещается в оперативной памяти, а часть на диске. Для каждого сегмента создается
своя таблица страниц, структура которой полностью совпадает со структурой
таблицы страниц, используемой при страничном распределении. Для каждого
процесса создается таблица сегментов, в которой указываются адреса таблиц
страниц для всех сегментов данного процесса. Адрес таблицы сегментов загружается
в специальный регистр процессора, когда активизируется соответствующий процесс.
На рисунке 2.15 показана схема преобразования виртуального адреса в физический
для данного метода.
Рис. 5.9. Схема
преобразования виртуального адреса в физический для сегментно-страничной
организации памяти
Свопинг
Разновидностью
виртуальной памяти является свопинг.
При свопинге, в
отличие от рассмотренных ранее методов реализации виртуальной памяти, процесс
перемещается между памятью и диском целиком, то есть в течение некоторого
времени процесс может полностью отсутствовать в оперативной памяти. Существуют
различные алгоритмы выбора процессов на загрузку и выгрузку, а также различные
способы выделения оперативной и дисковой памяти загружаемому процессу.
Иерархия
запоминающих устройств. Принцип кэширования данных
Память
вычислительной машины представляет собой иерархию запоминающих устройств
(внутренние регистры процессора, различные типы сверхоперативной и оперативной
памяти, диски, ленты), отличающихся средним временем доступа и стоимостью хранения
данных в расчете на один бит.Пользователю хотелось бы иметь и недорогую и быструю
память. Кэш-память представляет некоторое компромиссное решение этой проблемы.
Кэш-память - это способ организации совместного функционирования двух типов
запоминающих устройств, отличающихся временем доступа и стоимостью хранения
данных, который позволяет уменьшить среднее время доступа к данным за счет
динамического копирования в "быстрое" ЗУ наиболее часто используемой
информации из "медленного" ЗУ.
Кэш-памятью часто
называют не только способ организации работы двух типов запоминающих устройств,
но и одно из устройств - "быстрое" ЗУ. Оно стоит дороже и, как
правило, имеет сравнительно небольшой объем. Важно, что механизм кэш-памяти
является прозрачным для пользователя, который не должен сообщать никакой
информации об интенсивности использования данных и не должен никак участвовать
в перемещении данных из ЗУ одного типа в ЗУ другого типа, все это делается
автоматически системными средствами.
Рассмотрим
частный случай использования кэш-памяти для уменьшения среднего времени доступа
к данным, хранящимся в оперативной памяти. Для этого между процессором и
оперативной памятью помещается быстрое ЗУ, называемое просто кэш-памятью. В
качестве такового может быть использована, например, ассоциативная память. Содержимое
кэш-памяти представляет собой совокупность записей обо всех загруженных в нее
элементах данных. Каждая запись об элементе данных включает в себя адрес, который
этот элемент данных имеет в оперативной памяти, и управляющую информацию:
признак модификации и признак обращения к данным за некоторый последний период
времени. В системах, оснащенных кэш-памятью, каждый запрос к оперативной памяти
выполняетсяв соответствии со следующим алгоритмом:
1.Просматривается содержимое кэш-памяти с целью определения, не находятся ли
нужные данные в кэш-памяти; кэш-память не является адресуемой, поэтому поиск
нужных данных осуществляется по содержимому - значению поля "адрес в
оперативной памяти", взятому из запроса.
2.Если данные
обнаруживаются в кэш-памяти, то они считываются из нее, и результат передается
в процессор.
3.Если нужных
данных нет, то они вместе со своим адресом копируются из оперативной памяти в кэш-память,
и результат выполнения запроса передается в процессор. При копировании данных
может оказаться, что в кэш-памяти нет свободного места, тогда выбираются
данные, к которым в последний период было меньше всего обращений, для вытеснения
из кэш-памяти. Если вытесняемые данные были модифицированы за время нахождения
в кэш-памяти, то они переписываются в оперативную память. Если же эти данные не
были модифицированы, то их место в кэш-памяти объявляется свободным.
6.Современные
концепции и технологии проектирования операционных систем
Требования,
предъявляемые к ОС 90-х годов
Операционная
система является сердцевиной сетевого программного обеспечения, она создает
среду для выполнения приложений и во многом определяет, какими полезными для
пользователя свойствами эти приложения будут обладать. В связи с этим рассмотрим
требования, которым должна удовлетворять современная ОС.
Очевидно, что
главным требованием, предъявляемым к операционной системе, является способность
выполнения основных функций: эффективного управления ресурсами и обеспечения
удобного интерфейса для пользователя и прикладных программ. Современная ОС, как
правило, должна реализовывать мультипрограммную обработку, виртуальную память,
свопинг, поддерживать многооконный интерфейс, а также выполнять многие другие,
совершенно необходимые функции. Кроме этих функциональных требований к операционным
системам предъявляются не менее важные рыночные требования. К этим требованиям
относятся:
·
Расширяемость.
Код должен быть написан таким образом, чтобы можно было легко внести
дополнения и изменения, если это потребуется, и не нарушить целостность
системы.
·
Переносимость.
Код должен легко переноситься с процессора одного типа на процессор другого
типа и с аппаратной платформы (которая включает наряду с типом процессора и
способ организации всей аппаратуры компьютера) одного типа на аппаратную
платформу другого типа.
·
Надежность
и отказоустойчивость. Система должна быть защищена как от внутренних, так и от
внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми,
а приложения не должны быть в состоянии наносить вред ОС.
·
Совместимость.
ОС должна иметь средства для выполнения прикладных программ, написанных для
других операционных систем. Кроме того, пользовательский интерфейс должен быть
совместим с существующими системами и стандартами.
·
Безопасность.
ОС должна обладать средствами защиты ресурсов одних пользователей от других.
·
Производительность.
Система должна обладать настолько хорошим быстродействием и временем реакции,
насколько это позволяет аппаратная платформа.
Рассмотрим более
подробно некоторые из этих требований.
Расширяемость
В то время, как
аппаратная часть компьютера устаревает за несколько лет, полезная жизнь
операционных систем может измеряться десятилетиями. Примером может служить ОС
UNIX. Поэтому операционные системы всегда эволюционно изменяются со временем, и
эти изменения более значимы, чем изменения аппаратных средств. Изменения ОС обычно
представляют собой приобретение ею новых свойств. Например, поддержка новых устройств,
таких как CD-ROM, возможность связи с сетями нового типа, поддержка многообещающих
технологий, таких как графический интерфейс пользователя или
объектно-ориентированное программное окружение, использование более чем одного
процессора. Сохранение целостности кода, какие бы изменения не вносились в
операционную систему, является главной целью разработки.
Расширяемость
может достигаться за счет модульной структуры ОС, при которой программы
строятся из набора отдельных модулей, взаимодействующих только через
функциональный интерфейс. Новые компоненты могут быть добавлены в операционную
систему модульным путем, они выполняют свою работу, используя интерфейсы, поддерживаемые
существующими компонентами.
Использование
объектов для представления системных ресурсов также улучшает расширяемость
системы. Объекты - это абстрактные типы данных, над которыми можно производить
только те действия, которые предусмотрены специальным набором объектных
функций. Объекты позволяют единообразно управлять системными ресурсами. Добавление
новых объектов не разрушает существующие объекты и не требует измененийсуществующего
кода.
Прекрасные
возможности для расширения предоставляет подход к структурированию ОС по типу
клиент-сервер с использованием микроядерной технологии. В соответствии с этим
подходом ОС строится как совокупность привилегированной управляющей программы и
набора непривилегированных услуг-серверов. Основная часть ОС может оставаться
неизменной в то время, как могут быть добавлены новые серверы или улучшены
старые.
Некоторые ОС для
улучшения расширяемости поддерживают загружаемые драйверы, которые могут быть
добавлены в систему во время ее работы. Новые файловые системы, устройства и
сети могут поддерживаться путем написания драйвера устройства, драйвера
файловой системы или транспортного драйвера и загрузки его в систему.
Переносимость
Требование
переносимости кода тесно связано с расширяемостью. Расширяемость позволяет
улучшать операционную систему, в то время как переносимость дает возможность
перемещать всю систему на машину, базирующуюся на другом процессоре или аппаратной
платформе, делая при этом по возможности небольшие изменения в коде. Хотя ОС
часто описываются либо как переносимые, либо как непереносимые, переносимость -
это не бинарное состояние. Вопрос не в том, может ли быть система перенесена, а
в том, насколько легко можно это сделать. Написание переносимой ОС аналогично
написанию любого переносимого кода - нужно следовать некоторым правилам.
Во-первых,
большая часть кода должна быть написана на языке, который имеется на всех
машинах, куда вы хотите переносить систему. Обычно это означает, что код должен
быть написан на языке высокого уровня, предпочтительно стандартизованном,
например, на языке С. Программа, написанная на ассемблере, не является
переносимой, если только вы не собираетесь переносить ее на машину, обладающую
командной совместимостью с вашей.
Во-вторых,
следует учесть, в какое физическое окружение программа должна быть перенесена.
Различная аппаратура требует различных решений при создании ОС. Например, ОС,
построенная на 32-битовых адресах, не может быть перенесена на машину с
16-битовыми адресами (разве что с огромными трудностями).
В-третьих, важно
минимизировать или, если возможно, исключить те части кода, которые
непосредственно взаимодействуют с аппаратными средствами. Зависимость от аппаратуры
может иметь много форм. Некоторые очевидные формы зависимости включают прямое
манипулирование регистрами и другими аппаратными средствами.
В-четвертых, если
аппаратно зависимый код не может быть полностью исключен, то он должен быть
изолирован в нескольких хорошо локализуемых модулях. Аппаратно-зависимый код не
должен быть распределен по всей системе. Например, можно спрятать
аппаратно-зависимую структуру в программно-задаваемые данные абстрактного типа.
Другие модули системы будут работать с этими данными, а не с аппаратурой,
используя набор некоторых функций. Когда ОС переносится, то изменяются только
эти данные и функции, которые ими манипулируют.
Для легкого
переноса ОС при ее разработке должны быть соблюдены следующие требования:
Переносимый язык
высокого уровня. Большинство переносимых ОС написано на языке С (стандарт
ANSI X3.159-1989). Разработчики выбирают С потому, что он стандартизован, и потому,
что С-компиляторы широко доступны. Ассемблер используется только для тех
частей системы, которые должны непосредственно взаимодействовать с аппаратурой
(например, обработчик прерываний) или для частей, которые требуют максимальной
скорости (например, целочисленная арифметика повышенной точности). Однако
непереносимый код должен быть тщательно изолирован внутри тех компонентов, где
он используется.Изоляция процессора. Некоторые низкоуровневые части ОС должны
иметь доступ к процессорно-зависимым структурам данных и регистрам. Однако
код, который делает это, должен содержаться в небольших модулях, которые могут
быть заменены налогичными модулями для других процессоров. Изоляция платформы.
Зависимость от платформы заключается в различиях между рабочими станциями
разных производителей, построенными на одном и том же процессоре (например,
MIPS R4000). Должен быть введен программный уровень, абстрагирующий аппаратуру
(кэши, контроллеры прерываний ввода-вывода и т. п.) вместе со слоем
низкоуровневых программ таким образом, чтобы высокоуровневый код не нуждался в
изменении при переносе с одной платформы на другую.
Совместимость
Одним из аспектов
совместимости является способность ОС выполнять программы, написанные для
других ОС или для более ранних версий данной операционной системы, а также для
другой аппаратной платформы.
Необходимо
разделять вопросы двоичной совместимости и совместимости на уровне исходных
текстов приложений. Двоичная совместимость достигается в том случае, когда
можно взять исполняемую программу и запустить ее на выполнение на другой ОС.
Для этого необходимы: совместимость на уровне команд процессора, совместимость
на уровне системных вызовов и даже на уровне библиотечных вызовов, если они
являются динамически связываемыми.
Совместимость на
уровне исходных текстов требует наличия соответствующего компилятора в составе
программного обеспечения, а также совместимости на уровне библиотек и системных
вызовов. При этом необходима перекомпиляция имеющихся исходных текстов в новый
выполняемый модуль.
Совместимость на
уровне исходных текстов важна в основном для разработчиков приложений, в
распоряжении которых эти исходные тексты всегда имеются. Но для конечных
пользователей практическое значение имеет только двоичная совместимость, так как
только в этом случае они могут использовать один и тот же коммерческий продукт,
поставляемый в виде двоичного исполняемого кода, в различных операционных
средах и на различных машинах.
Обладает ли новая
ОС двоичной совместимостью или совместимостью исходных текстов с существующими
системами, зависит от многих факторов. Самый главный из них - архитектура
процессора, на котором работает новая ОС. Если процессор, на который переносится
ОС, использует тот же набор команд (возможно с некоторыми добавлениями) и тот
же диапазон адресов, тогда двоичная совместимость может быть достигнута достаточно
просто.
Гораздо сложнее
достичь двоичной совместимости между процессорами, основанными на разных
архитектурах. Для того, чтобы один компьютер выполнял программы другого
(например, DOS-программу на Mac), этот компьютер должен работать с машинными
командами, которые ему изначально непонятны. Например, процессор типа 680x0 на
Mac должен исполнять двоичный код, предназначенный для процессора 80x86 в PC.
Процессор 80x86 имеет свои собственные дешифратор команд, регистры и внутреннюю
архитектуру. Процессор 680x0 не понимает двоичный код 80x86, поэтому он должен
выбрать каждую команду, декодировать ее, чтобы определить, для чего она
предназначена, а затем выполнить эквивалентную подпрограмму, написанную для
680x0. Так как к тому же у 680x0 нет в точности таких же регистров, флагов и
внутреннего арифметико-логического устройства, как в 80x86, он должен
имитировать все эти элементы с использованием своих регистров или памяти. И он
должен тщательно воспроизводить результаты каждой команды, что требует
специально написанных подпрограмм для 680x0, гарантирующих, что состояние
эмулируемых регистров и флагов после выполнения каждой команды будет в точности
таким же, как и на реальном 80x86.
Это простая, но
очень медленная работа, так как микрокод внутри процессора 80x86 исполняется на
значительно более быстродействующем уровне, чем эмулирующие его внешние команды
680x0. За время выполнения одной команды 80x86 на 680x0, реальный 80x86 может
выполнить десятки команд. Следовательно, если процессор, производящий эмуляцию,
не настолько быстр, чтобы компенсировать все потери при эмуляции, то программы,
исполняющиеся под эмуляцией, будут очень медленными.
Выходом в таких
случаях является использование так называемых прикладных сред. Учитывая, что
основную часть программы, как правило, составляют вызовы библиотечных функций,
прикладная среда имитирует библиотечные функции целиком, используя заранее
написанную библиотеку функций аналогичного назначения, а остальные команды
эмулирует каждую по отдельности.
Соответствие
стандартам POSIX также является средством обеспечения совместимости программных
и пользовательских интерфейсов. Во второй половине 80-х правительственные
агентства США начали разрабатывать POSIX как стандарты на поставляемое оборудование
при заключении правительственных контрактов в компьютерной области. POSIX - это
"интерфейс переносимой ОС, базирующейся на UNIX". POSIX - собрание международных
стандартов интерфейсов ОС в стиле UNIX. Использование стандарта POSIX (IEEE
стандарт 1003.1 - 1988) позволяет создавать программы стиле UNIX, которые могут
легко переноситься из одной системы в другую.
Безопасность
В дополнение к
стандарту POSIX правительство США также определило требования компьютерной
безопасности для приложений, используемых правительством. Многие из этих
требований являются желаемыми свойствами для любой многопользовательской системы.
Правила безопасности определяют такие свойства, как защита ресурсов одного
пользователя от других и установление квот по ресурсам для предотвращения
захвата одним пользователем всех системных ресурсов ( таких как память).
Обеспечение
защиты информации от несанкционированного доступа является обязательной
функцией сетевых операционных систем. В большинстве популярных систем гарантируется
степень безопасности данных, соответствующая уровню С2 в системе стандартов
США.
Основы стандартов
в области безопасности были заложены "Критериями оценки надежных компьютерных
систем". Этот документ, изданный в США в 1983 году национальным центром
компьютерной безопасности (NCSC - National Computer Security Center), часто
называют Оранжевой Книгой.
В соответствии с
требованиями Оранжевой книги безопасной считается такая система, которая
"посредством специальных механизмов защиты контролирует доступ к информации
таким образом, что только имеющие соответствующие полномочия лица или процессы,
выполняющиеся от их имени, могут получить доступ на чтение, запись, создание
или удаление информации".
Иерархия уровней
безопасности, приведенная в Оранжевой Книге, помечает низший уровень
безопасности как D, а высший - как А.
В класс D
попадают системы, оценка которых выявила их несоответствие требованиям всех
других классов. Основными свойствами, характерными для С-систем, являются:
наличие подсистемы учета событий, связанных с безопасностью, и избирательный контроль
доступа.Уровень С делится на 2 подуровня: уровень С1, обеспечивающий защиту
данных от ошибок пользователей, но не от действий злоумышленников, и более строгий
уровень С2. На уровне С2 должны присутствовать средства секретного входа,
обеспечивающие идентификацию пользователей путем ввода уникального имени и
пароля перед тем, как им будет разрешен доступ к системе. Избирательный
контроль доступа, требуемый на этом уровне позволяет владельцу ресурса
определить, кто имеет доступ к ресурсу и что он может с ним делать. Владелец
делает это путем предоставляемых прав доступа пользователю или группе
пользователей. Средства учета и наблюдения (auditing) - обеспечивают возможность
обнаружить и зафиксировать важные события, связанные с безопасностью, или
любые попытки создать, получить доступ или удалить системные ресурсы. Защита
памяти - заключается в том, что память инициализируется перед тем, как
повторно используется. На этом уровне система не защищена от ошибок
пользователя, но поведение его может быть проконтролировано по записям в
журнале, оставленным средствами наблюдения и аудитинга.
Уровень А
является самым высоким уровнем безопасности, он требует в дополнение ко всем
требованиям уровня В выполнения формального, математически обоснованного
доказательства соответствия системы требованиям безопасности.
7.Семейство
операционных систем UNIX
История и
общая характеристика семейства операционных систем UNIX
UNIX имеет долгую
и интересную историю. Начавшись как несерьезный и почти "игрушечный"
проект молодых исследователей, UNIX стал многомиллионной индустрией, включив в
свою орбиту университеты, многонациональные корпорации, правительства и
международные организации стандартизации.
UNIX зародился в
лаборатории Bell Labs фирмы AT&T более 20 лет назад. В то время Bell Labs
занималась разработкой многопользовательской системы разделения времени MULTICS
(Multiplexed Information and Computing Service) совместно с MIT и General
Electric, но эта система потерпела неудачу, отчасти из-за слишком амбициозных
целей, не соответствовавших уровню компьютеров того времени, а отчасти и из-за
того, что она разрабатывалась на языке PL/1, а компилятор PL/1 задерживался и
вообще плохо работал после своего запоздалого появления. Поэтому Bell Labs
вообще отказалась от участия в проекте MULTICS, что дало возможность одному из
ее исследователей, Кену Томпсону, заняться поисковой работой в направлении
улучшения операционной среды Bell Labs. Томпсон, а также сотрудник Bell Labs
Денис Ритчи и некоторые другие разрабатывали новую файловую систему, многие
черты которой вели свое происхождение от MULTICS. Для проверки новой файловой
системы Томпсон написал ядро ОС и некоторые программы для компьютера GE-645,
который работал под управлением мультипрограммной системы разделения времени
GECOS. У Кена Томпсона была написанная им еще во времена работы над MULTICS
игра "Space Travel" - "Космическое путешествие". Он
запускал ее на компьютере GE-645, но она работала на нем не очень хорошо из-за
невысокой эффективности разделения времени. Кроме этого, машинное время GE-645
стоило слишком дорого. В результате Томпсон и Ритчи решили перенести игру на
стоящую в углу без дела машину PDP-7 фирмы DEC, имеющую 4096 18-битных слов,
телетайп и хороший графический дисплей. Но у PDP-7 было неважное программное
обеспечение, и, закончив перенос игры, Томпсон решил реализовать на PDP-7 ту
файловую систему, над который он работал на GE-645. Из этой работы и возникла
первая версия UNIX, хотя она и не имела в то время никакого названия. Но она
уже включала характерную для UNIX файловую систему, основанную на индексных
дескрипторах inode, имела подсистему управления процессами и памятью, а также
позволяла двум пользователям работать в режиме разделения времени. Система была
написана на ассемблере. Имя UNIX (Uniplex Information and Computing Services)
было дано ей еще одним сотрудником Bell Labs, Брайаном Керниганом, который
первоначально назвал ее UNICS, подчеркивая ее отличие от многопользовательской
MULTICS. Вскоре UNICS начали называть UNIX.
Первыми
пользователями UNIX'а стали сотрудники отдела патентов Bell Labs, которые нашли
ее удобной средой для создания текстов.
Большое влияние
на судьбу UNIX оказала перепись ее на языке высокого уровня С, разработанного
Денисом Ритчи специально для этих целей. Это произошло в 1973 году, UNIX
насчитывал к этому времени уже 25 инсталляций, и в Bell Labs была создана специальная
группа поддержки UNIX.
Широкое
распространение UNIX получил с 1974 года, после описания этой системы Томпсоном
и Ритчи в компьютерном журнале CACM. UNIX получил широкое распространение в
университетах, так как для них он поставлялся бесплатно вместе с исходными кодами
на С. Широкое распространение эффективных C-компиляторов сделало UNIX уникальной
для того времени ОС из-за возможности переноса на различные компьютеры.
Университеты внесли значительный вклад в улучшение UNIX и дальнейшую его
популяризацию. Еще одним шагом на пути получения признания UNIX как
стандартизованной среды стала разработка Денисом Ритчи библиотеки ввода-вывода
stdio. Благодаря использованию этой библиотеки для компилятора С, программы для
UNIX стали легко переносимыми.
Широкое
распространение UNIX породило проблему несовместимости его многочисленных
версий. Очевидно, что для пользователя весьма неприятен тот факт, что пакет,
купленный для одной версии UNIX, отказывается работать на другой версии UNIX.
Периодически делались и делаются попытки стандартизации UNIX, но они пока имели
ограниченный успех. Процесс сближения различных версий UNIX и их расхождения
носит циклический характер. Перед лицом новой угрозы со стороны какой-либо другой
операционной системы различные производители UNIX-версий сближают свои
продукты, но затем конкурентная борьба вынуждает их делать оригинальные
улучшения и версии снова расходятся. В этом процессе есть и положительная
сторона - появление новых идей и средств, улучшающих как UNIX, так и многие
другие операционные системы, перенявшие у него за долгие годы его существования
много полезного.
Наибольшее
распространение получили две весьма несовместимые линии версий UNIX: линия
AT&T - UNIX System V, и линия университета Berkeley-BSD. Многие фирмы на
основе этих версий разработали и поддерживают свои версии UNIX: SunOS и Solaris
фирмы Sun Microsystems, UX фирмы Hewlett-Packard, XENIX фирмы Microsoft, AIX
фирмы IBM, UnixWare фирмы Novell (проданный теперь компании SCO), и список этот
можно еще долго продолжать.
Наибольшее
влияние на унификацию версий UNIX оказали такие стандарты как SVID фирмы
AT&T, POSIX, созданный под эгидой IEEE, и XPG4 консорциума X/Open. В этих
стандартах сформулированы требования к интерфейсу между приложениями и ОС, что
дает возможность приложениям успешно работать под управлением различных версий
UNIX.
Независимо от
версии, общими для UNIX чертами являются:
·
многопользовательский
режим со средствами защиты данных от несанкционированного доступа,
·
реализация
мультипрограммной обработки в режиме разделения времени, основанная на
использовании алгоритмов вытесняющей многозадачности (preemptive multitasking),
·
использование
механизмов виртуальной памяти и свопинга для повышения уровня
мультипрограммирования,
·
унификация
операций ввода-вывода на основе расширенного использования понятия
"файл",
·
иерархическая
файловая система, образующая единое дерево каталогов независимо от количества
физических устройств, используемых для размещения файлов,
·
переносимость
системы за счет написания ее основной части на языке C, разнообразные средства
взаимодействия процессов, в том числе и через сеть,
·
кэширование
диска для уменьшения среднего времени доступа к файлам.
Управление
памятью. Свопинг
В UNIX System V
Release 4 реализована сегментно-страничная модель памяти в ее традиционном
виде. Наряду с механизмом управления страницами используется и механизм
свопинга, когда на диск выталкиваются все страницы какого-либо процесса.
Свопинг применяется в “предаварийных" ситуациях, когда размер свободной
оперативной памяти уменьшается до некоторого заданного порога, так что работа
всей системы очень затрудняется.
Имеются следующие
типы виртуальных сегментов:
Текст (text) -
содержит коды команд исполняемого модуля процесса. Он обычно обозначается
"только для чтения", так чтобы ни сам процесс, ни другие процессы не
могли изменить его кодовую часть. Текстовый сегмент может разделяться многими
процессами, например, всеми пользователями, работающими с одним редактором.
Данные (data) -
содержит данные, используемые и модифицируемые процессом во время выполнения. К
сегменту данных обычно разрешается иметь доступ для чтения и записи. В отличие
от текстового сегмента, сегмент данных никогда не разделяется другими
процессами.
Стек (stack) -
содержит стек процесса. Он помечается доступным для чтения и записи и, подобно
сегменту данных, не может разделяться другими процессами.
Есть еще два типа
сегментов:
Разделяемая
память (shared memory) - область памяти, доступная для чтения и записи
нескольким процессам.
Отображенный файл
(mapped file) - сегменты отображенного файла используются для того, чтобы
отобразить части файлов в адресное пространство процесса, и использовать
стандартные механизмы ОС управления виртуальной памятью для ускорения доступа к
файлам.
Каждый сегмент
имеет связь с дисковым пространством, на котором хранятся данные, отображаемые
в данный сегмент виртуального адресного пространства. Это может быть файл или
часть файла на диске, или же это может быть область свопинга, которая файлом не
является. Сегмент кода или сегмент инициализированных данных обычно связан с
файлом, в котором хранится исполняемая программа. Под связью с файлом понимается
отображение виртуального сегмента и его страниц на определенную область диска,
из которой загружаются данные виртуальных страниц сегмента при их перемещении в
оперативную память, а также куда помещаются данные при вытеснении виртуальных
страниц на диск.
Структура
физической памяти
В самых нижних адресах
находится текстовый сегмент ядра, затем располагается сегмент данных ядра,
далее может идти динамический сегмент данных ядра, в котором отводится место
для структур ядра, например, для дескрипторов процессов. В оставшейся
физической памяти могут располагаться в общем случае несколько областей для
хранения страниц пользовательских процессов. Эти области описываются таблицей
pageac_table[ ], каждый элемент которой содержит номера начальной и конечной
страницы области, указатели на дескрипторы первой и последней страниц,
размещенных в этой области.
Для каждой
физической страницы имеется дескриптор страницы - структура page, в котором
содержится информация о том, свободна или занята страница, загружена ли в нее в
данный момент виртуальная страница, модифицировано ли ее содержимое, сколько процессов
хотят сохранить эту страницу в памяти и другая информация. В каждый момент
времени дескриптор физической страницы может состоять в одном из следующих списков:
Список
хэшированных виртуальных дескрипторов файла. Каждый отображаемый или
выполняемый файл описывается виртуальным дескриптором.
Список свободных
страниц.
Список страниц,
образующих кэш страниц.
8.Сетевые
продукты фирмы Novell
История и
версии сетевой ОС NetWare
Novell - это
крупнейшая фирма, которой принадлежит, согласно различным источникам, от 65% до
75% рынка сетевых операционных систем для локальных вычислительных сетей.
Наибольшую известность фирма Novell приобрела благодаря своим сетевым операционным
системам семейства NetWare. Эти системы реализованы как системы с выделенными
серверами.
Основные усилия
Novell были затрачены на создание высокоэффективной серверной части сетевой ОС,
которая за счет специализации на выполнении функций файл-сервера обеспечивала
бы максимально возможную для данного класса компьютеров скорость удаленного
доступа к файлам и повышенную безопасность данных. Для серверной части своих ОС
Novell разработала специализированную операционную систему, оптимизированную на
файловые операции и использующую все возможности, предоставляемые процессорами
Intel x386 и выше. За высокую производительность пользователи сетей Novell
NetWare расплачиваются стоимостью - выделенный файл-сервер не может
использоваться в качестве рабочей станции, а его специализированная ОС имеет весьма
специфический API, что требует от разработчиков дополнительных серверных
модулей особых знаний, специального опыта и значительных усилий.
Для рабочих
станций Novell выпускает две собственные ОС со встроенными сетевыми функциями:
Novell DOS 7 с входящей в нее сетевой одноранговой компонентой Personal Ware, а
также ОС UnixWare, являющейся реализацией UNIX System V Release 4.2 со встроенными
возможности работы в сетях NetWare. (Осенью этого года права на систему
UnixWare проданы компании Santa Cruz Operations.) Для популярных ОС
персональных компьютеров других производителей Novell выпускает сетевые
оболочки с клиентскими функциями по отношению к серверу NetWare.
Первоначально
операционная система NetWare была разработана фирмой Novell для сети Novell
S-Net, имеющей звездообразную топологию и патентованный сервер с микропроцессором
Motorola MC68000. Когда фирма IBM выпустила персональные компьютеры типа PC XT,
Novell решила, что NetWare может быть легко перенесена в архитектуру микропроцессоров
семейства Intel 8088, и тогда она сможет поддерживать практически все имеющиеся
на рынке сети персональных компьютеров.
Первая версия
NetWare была выпущена фирмой Novell в начале 1983 года.
В 1985 году
появилась система Advanced NetWare v1.0, которая расширяла функциональные
возможности операционной системы сервера.
Версия 1.2
системы Advanced NetWare, выпущенная также в 1985 году, стала первой
операционной системой для процессора Intel 80286, работающей в защищенном
режиме.
Версия 2.0
системы Advanced NetWare, выпущенная в 1986 году, отличалась от предыдущих
версий более высокой производительностью и возможностью объединения разнородных
на канальном уровне сетей. Полностью используя возможности защищенного режима
процессора 80286, Advanced NetWare обеспечила такую производительность сети,
которая была недоступна операционным системам, работающим в реальном режиме и ограниченным
640 Кбайтами памяти. Версия 2.0 впервые обеспечила возможность подключения к
одному серверу до четырех сетей с различной топологией, таких как Ethernet,
ArcNet и Token Ring.
В 1987 году
Novell выпустила систему SFT NetWare, в которой были предусмотрены специальные
средства обеспечения надежности системы и расширены возможности управления
сетью. Такие средства, как учет используемых ресурсов и защита от несанкционированного
доступа, позволили администраторам сети определять, когда и как пользователи
осуществляют доступ к информации и ресурсам сети. Разработчики впервые получили
возможность создавать многопользовательские прикладные программы, которые могут
выполняться на сервере в качестве дополнительных процессов сетевой операционной
системы и использовать ее функциональные возможности.
Операционная
система NetWare v2.15 появилась на рынке в декабре 1988 года, добавив в NetWare
средства поддержки компьютеров семейства Macintosh. У пользователей Macintosh
появилась возможность подключать свои компьютеры в качестве клиентов серверов
NetWare, получая доступ к ресурсам сети и осуществляя прозрачный поиск и хранение
информации на сервере. При этом на пользователей Macintosh распространяются все
основные свойства NetWare, включая устойчивость к сбоям и защиту от
несанкционированного доступа.
В сентябре 1989
года Novell выпустила свою первую версию 32-разрядной операционной системы для
серверов с микропроцессором 80386, которая получила название NetWare 386 v3.0.
Она обладала значительно более высокой производительностью по сравнению с
предыдущими версиями, усовершенствованной системой защиты от несанкционированного
доступа, гибкостью в применении, а также поддержкой различных сетевых протоколов.
Она отвечала самым передовым требованиям к среде функционирования распределенных
прикладных программ.
В июне 1990 года
появилась версия NetWare 386 v.3.1, в которой были усовершенствованы средства
обеспечения надежности и управления сетью, повышена производительность,
улучшены инструментальные средства для независимых разработчиков.
В 1991 году
фирмой Novell операционные системы для процессоров 80286 (SFT, Advanced и ELS
NetWare) были заменены на более мощную и удобную систему NetWare v2.2,
функционально превосходящую предыдущие версии 2.1x.
Одновременно была
выпущена система NetWare v3.11, существенно расширившая возможности NetWare
386. NetWare v3.11 стала первой сетевой операционной системой, обеспечивающей
доступ к сетевым ресурсам с рабочих станций DOS, Windows, OS/2, UNIX и
Macintosh.
В 1993 году после
длительных испытаний начались поставки системы NetWare SFT III v3.11.
NetWare System
Fault Tolerance Level III (SFT III) v3.11 - сетевая операционная система,
разработанная специально для использования в системах, требующих наивысшего
уровня надежности. В дополнение к средствам повышения надежности, имеющимся в составе
NetWare v3.11, SFT III обеспечивает работу двух серверов в
"зеркальном" режиме. При этом один из серверов всегда является
активным, а второй находится в горячем резерве, обеспечивая у себя такое же
состояние памяти и дисков, как и у основного сервера.
В 1993 году фирма
Novell выпустила ОС NetWare v4.0, явившуюся во многих отношениях революционно
новым продуктом. Эта система была разработана специально для построения
вычислительных сетей "масштаба предприятия" с несколькими
файл-серверами, большим количеством сетевых ресурсов и пользователей. Одним из
основных нововведений явилась служба каталогов NetWare Directory Services
(NDS), хранящая в распределенной по нескольким серверам базе данных информацию
о всех разделяемых сетевых ресурсах и пользователях, что обеспечило возможность
при одном логическом входе в систему получать прозрачный доступ ко всем
ресурсам многосерверной сети.
В сентябре 1993
года Novell выпустила систему NetWare v3.12, представляющую собой
усовершенствованный вариант самой популярной сетевой ОС фирмы Novell - NetWare
v3.11. В версии NetWare 3.12 были устранены замеченные за время эксплуатации
версии NetWare 3.11 ошибки и добавлены новые средства: усеченная версия
электронной почты Global MHS, средства поддержки клиентов Macintosh и
клиентская оболочка для DOS и Windows по технологии VLM, позволяющая
динамически загружать и выгружать необходимые для рабочей станции сетевые
компоненты.
Последней на
сегодня версией NetWare является ориентированная на корпоративное использование
сетевая операционная система NetWare v4.1.
Версии
4.0, 4.01 и 4.02
Версии ОС NetWare
4.х существенно отличаются от версий семейства 3.х их очевидной корпоративной
направленностью. Если версии 3.х были рассчитаны на сети небольших и средних
предприятий, то уже первая ОС из нового семейства - NetWare 4.0 - имеет много
новых свойств, направленных на обеспечение успешной работы в больших
гетерогенных сетях. Версии 4.01 и 4.02 лишь незначительно отличаются от версии
4.0 за счет небольших улучшений в глобальной службе каталогов, которая
оказалась в версии 4.0 не слишком удобной для использования, что и привело к весьма
медленному старту ОС нового поколения. Кроме уже отмеченной глобальной службы
каталогов, в этих версиях улучшены:
система
управления оперативной памятью - уменьшилась фрагментация в процессе
динамической выгрузки и загрузки модулей NLM;
система
управления внешней памятью - уменьшена фрагментация дисков, а также
появились
средства прозрачной компрессии дисковых разделов и прозрачной миграции файлов
с диска на стриммер и обратно;
система
управления сетью;
система
безопасности;
транспортная
система.
Глобальная служба
справочников сетевых ресурсов
Главным отличием
ОС NetWare v 4.0х от предыдущих версий является введение единого для всех
файл-серверов сетевого каталога (справочника сетевых ресурсов) - NetWare
Directory Services (NDS), имеющего иерархическую древовидную структуру и
основанного на международном стандарте X.500. В предыдущих версиях NetWare база
данных сетевых ресурсов, называемая Bindery, была уникальна для каждого
файл-сервера. Поэтому для получения доступа к нужным ресурсам пользователь
должен был подключаться к предоставляющему этот ресурс файл-серверу.
В NetWare v 4.0х
все сетевые ресурсы, такие как файлы, принтеры, прикладные программы и т.д.
составляют единую логическую сущность, не зависящую от их физического
размещения. Пользователю достаточно один раз подключиться к сети, чтобы
получить доступ ко всем ее ресурсам, которыми он имеет право пользоваться.
Пользователи и прикладные программы, которые обращаются к NDS для получения
доступа к необходимым ресурсам, могут и не знать, как распределены эти ресурсы
по серверам и подсетям (в отличие от предыдущих версий, где эти ресурсы были
жестко "привязаны" к серверам). В NetWare 4.02 значительно расширена
и улучшена служба NDS по сравнению с предыдущими версиями NetWare 4.x. Изменена
процедура установки NDS, а для простой или не очень сложной структуры описания
ресурсов сети обеспечен автоматический режим установки.
Управление
оперативной и дисковой памятью сервера
Новые средства
управления оперативной памятью сервера, используемые в NetWare 4.0х,
значительно улучшают, по сравнению с предыдущими версиями NetWare, использование
оперативной памяти сервера. После выгрузки NLM оперативная память освобождается
более эффективно, поэтому многократная загрузка и выгрузка NLM в NetWare 4.0х
не приводит к накоплению так называемого "мусора" в оперативной
памяти сервера. В NetWare 4.0х обеспечивается также защита областей оперативной
памяти, используемой загружаемыми модулями, от искажения в результате работы
других модулей. Такое искажение может возникнуть при использовании некорректно
написанных NLM (например, разрабатываемых самим пользователем). Защита
оперативной памяти сервера позволяет снизить вероятность отказов сети при
тестировании новых NLM.
NetWare 4.0х позволяет
значительно экономить дисковое пространство серверов. Это достигается
возможностью автоматического переноса редко используемых файлов с дисковых
накопителей на ленточные и оптические накопители большой емкости (доступ к
файлам при этом не изменяется). Другая возможность - компрессия файлов на
дисковых накопителях, выполняемая в фоновом режиме.
В NetWare 3.х
информация записывается на диск только целыми блоками, минимальный размер
которых составляет 4 К. NetWare 4.0х может распределять дисковое пространство
не только целыми блоками, но и подблоками размером 512 байт. Эта функция, называемая
Disk Suballocation, позволяет существенно уменьшить потери дискового пространства.
NetWare v.4.0х
позволяет подключать накопители большой емкости, такие как CD-ROM, WORM,
перезаписываемые оптические диски и другие, непосредственно к файловой системе
NetWare в качестве томов.
9.Семейство
сетевых ОС компании Microsoft
Сетевые
продукты Microsoft
В 1984 году
Microsoft выпустила свой первый сетевой продукт, называемый Microsoft Networks,
который обычно неформально называют MS-NET. Некоторые концепции, заложенные в
MS-NET, такие как введение в структуру базовых компонент - редиректора и сетевого
сервера - успешно перешли в LAN Manager, а затем и в Windows NT.
Microsoft все еще
поставляет свою сетевую ОС LAN Manager. Большое количество независимых
поставщиков имеют лицензии на эту ОС и поддерживают свои собственные версии LAN
Manager как часть своих сетевых продуктов. В число этих компаний входят такие
известные фирмы как AT&T и Hewlett-Packard. LAN Manager требует установки
на файл-сервере операционной системы OS/2, рабочие станции могут работать под
DOS, Windows или OS/2. OS/2 - это операционная система, реализующая истинную
многозадачность, работающая в защищенном режиме микропроцессоров x86 и выше.
LAN Manager использует 32-х битную версию файловой системы OS/2, называемую
HPFS, которая оптимизирована для работы на файл-сервере за счет кэширования
каталогов и данных. LAN Manager - это первая сетевая ОС, разработанная для
поддержки среды клиент-сервер. Ключевыми компонентами LAN Manager являются
редиректор и сервер. Особенно эффективно LAN Manager поддерживает архитектуру
клиент-сервер для систем управления базами данных. LAN Manager разрешает
рабочим станциям под OS/2 поддерживать сетевой сервис по технологии
"равный-с-равным". Это означает, что рабочая станция может выполнять
функции сервера баз данных, принт-сервера или коммуникационного сервера.
Ограничением является то, что только один пользователь, кроме владельца этой
рабочей станции, имеет доступ к такому одноранговому сервису.
Для работы в
небольшой сети фирма Microsoft предлагает компактную, не требующую значительных
аппаратных или программных затрат операционную систему Windows for Workgroups.
Эта операционная система позволяет организовать сеть по схеме
"равный-с-равным", при этом нет необходимости приобретать специальный
компьютер для работы в качестве сетевого сервера. Эта операционная система
особенно подходит для решения сетевых задач в коллективах, члены которого ранее
широко использовали Windows 3.1. В Windows for Workgroups достигнута высокая
производительность сетевой обработки за счет того, что все сетевые драйверы
являются 32-х разрядными виртуальными драйверами.
С середины 1993
года Microsoft начала выпуск новых операционных систем "новой
технологии" (New Technology - NT) Windows NT.
В сентябре 1995
года компания Microsoft выпустила еще одну новую операционную систему Windows
95 (кодовое название Chicago), предназначенную для замены Windows 3.1 и Windows
for Workgroups 3.11 в настольных компьютерах с процессорами Intel x86.
История
Windows NT
В конце 88-го
года Microsoft поручила Дэвиду Катлеру (David Cutler) возглавить новый проект в
области программного обеспечения: создать новую ОС фирмы Microsoft для 90-х
годов. (Дэвид Катлер - главный консультант фирмы DEC, который 17 лет проработал
там, разрабатывая ОС и компиляторы: VAX/ VMS, ОС для MicroVAX I, OS RSX-11M, компиляторы
VAX PL/1, VAX C). Он собрал команду инженеров для разработки ОС новой
технологии (New Technology - NT).
Первоначально
планировалось разработать NT с пользовательским и программным (API)
интерфейсами в стиле OS/2, однако OS/2 плохо продавалась, а Windows 3.0 имела
большой и постоянный успех на рынке. Увидев рыночные ориентиры и сложности, связанные
с развитием и поддержкой двух несовместимых систем, Microsoft решила изменить
свой курс и направить своих инженеров в сторону стратегии единой цельной
операционной системы. Эта стратегия состоит в том, чтобы разрабатывать семейство
базирующихся на Windows операционных систем, которые охватывали бы множество
типов компьютеров, от самых маленьких ноутбуков до самых больших
мультипроцессорных рабочих станций. Windows NT, как было названо следующее
поколение Windows-систем, занимает самое высокое место в семействе Windows. Она
поддерживает графический интерфейс (GUI) пользователя Windows, а также является
первой базирующейся на Windows операционной системой фирмы Microsoft,
поддерживающей Win32 API, 32-х битный программный интерфейс для разработки
новых приложений. Win32 API делает доступными для приложений улучшенные
свойства ОС, такие как многонитевые процессы, синхронизацию, безопасность, I/O,
управление объектами.
В июле 1993 года
появились первые ОС семейства NT - Windows NT 3.1 и Windows NT Advanced Server
3.1.
Версии Windows NT
Windows NT 3.1
Операционная
система Windows NT с самого начала проектировалась с учетом всех требований,
предъявляемых к современным ОС: расширяемости, переносимости, надежности,
совместимости, производительности. Эти свойства были достигнуты за счет применения
передовых технологий структурного проектирования, таких как клиент-сервер,
микроядра, объекты.
В отличие от
Windows, в которой реализована многозадачность без вытеснения (non-preemptive
multitasking), в Windows NT используется механизм многозадачности с вытеснением
(preemptive multitasking).
Windows NT
поддерживает симметричную многопроцессорную организацию вычислительного процесса,
в соответствии с которой ОС может выполняться на любом свободном процессоре или
на всех процессорах одновременно, разделяя память между ними. Учитывая, что
многозадачность реализуется на уровне нитей, разные части одного и того же
процесса могут действительно выполняться параллельно. Следовательно,
многонитевые серверы могут обслуживать более одного клиента.
Для управления
нитями Windows NT Server использует механизм приоритетов. В определенные
моменты производятся оценка приоритетов и перераспределение нитей по
процессорам, в результате чего последовательные стадии одного потока программы
могут выполняться разными процессорами или откладываться до высвобождения
очередного процессора.
Windows NT Server
поддерживает до 16 параллельных процессоров, что актуально для таких серверов,
как Symmetry 750 фирмы Sequent с 16 процессорами Intel 486/50 Мгц. Следует,
однако, иметь в виду, что реализация СМП в Windows NT Server нацелена на оптимизацию
производительности и не обеспечивает резервирования в целях повышения отказоустойчивости.
В случае выхода из строя одного из процессоров система останавливается.
В Windows NT
Server в полной мере реализован потенциал масштабируемости архитектуры СМП.
Однопроцессорную систему можно легко развивать, наращивая число процессоров,
без замены версии ОС или приложений.
При управлении
устройствами ввода/вывода Windows NT Server использует асинхронный подход. Для
завершения процесса и начала выполнения новой задачи не нужно ждать поступления
сигнала об окончании таких операций, как чтение или запись. Каждый процесс
создается с использованием одной нити, которая служит специфическим отображением
выполнения программы процессором. Впоследствии программа может создавать новые
нити, и Windows NT Server будет распределять их и управлять ими, не привлекая к
этому приложения высокого уровня.
Для того, чтобы
прикладная программа могла использовать несколько потоков, не нужно
предусматривать этого в ее алгоритме. Отдельный поток создается для каждой операции.
Например, в одном потоке программа может воспроизводить сложную графическую
форму, а другой использовать для редактирования объемного чертежа. Каждый из
этих потоков (или, с точки зрения пользователя, операций) работает на отдельном
процессоре, не требуя никаких управляющих вмешательств со стороны приложения.
Потоки внутри процесса используют общую область памяти и, следовательно, не
должны специально обмениваться данными.
В соответствии с
требованием совместимости, Windows NT обеспечивает среду выполнения не только
для приложений с исходным программным интерфейсом Win32 API. При выполнении на
процессорах фирмы Intel защищенные подсистемы Windows NT обеспечивают двоичную
совместимость существующих приложений фирмы Microsoft, включая MS-DOS, Win16,
OS/2. На MIPS RISC процессорах двоичная совместимость достигается для
приложений MS-DOS и 16-битных Windows-приложений (с использованием эмуляции).
Windows NT обеспечивает также совместимость на уровне исходных текстов для
POSIX-приложений, которые твердо придерживаются интерфейса, определенного в
стандарте IEEE 1003.1.
Помимо
совместимости программных интерфейсов, Windows NT поддерживает существующие
файловые системы, включая файловую систему MS-DOS (FAT), файловую систему
CD-ROM, файловую систему OS/2 (HPFS) и собственную новую файловую систему
(NTFS).
В отличие от
большинства других операционных систем, Windows NT изначально разрабатывался с
учетом возможности работы в сети. В результате этого функции совместного
использования файлов, устройств и объектов встроены в интерфейс с пользователем.
Администраторы могут централизованно управлять и контролировать работу сетей в
масштабах крупных предприятий. Особенно важно отметить возможность распространения
работы приложений типа клиент-сервер на многокомпьютерные системы.
Windows NT
3.5
Версия Windows NT
3.5, как и предыдущая Windows NT 3.1, разработана в двух конфигурациях: для
рабочей станции Windows NT Workstation 3.5 и для сервера - Windows NT Server
3.5. Windows NT 3.5 имеет многочисленные усовершенствования и нововведения по
сравнению с Windows NT 3.1:
Улучшенное
автораспознавание аппаратуры, возможность ручного выбора и конфигурирования
сетевых адаптеров, если автоматическое распознавание не дает положительного
результата. Встроенная совместимость с NetWare. Возможность выполнения роли
шлюза к сетям NetWare, так что Windows NT-компьютеры могут получать доступ к
файлам, принтерам и серверам приложений NetWare. В Windows NT начиная с версии
3.5 входит Microsoft Compatible Workstation Service for NetWare, который
позволяет осуществлять доступ к файлам, каталогам и принтерам на сервере Novell
NetWare. Транспортный протокол Microsoft NWLink IPX/SPX обеспечивает связь
между компьютером с Windows NT и NetWare файл-сервером и сервером печати. Он
поддерживает работу с файлами и с очередями печати на NetWare сервере.
Встроенная
поддержка TCP/IP. Новая высокопроизводительная Microsoft-реализация протоколов
TCP/IP, которая обеспечивает простое, мощное решение для межсетевого
взаимодейтвия.Microsoft поддерживает протокол TCP/IP, начиная с 1991 года,
когда был выпущен первый стек для Microsoft LAN Manager 2.1. В Windows NT также
имеется поддержка этого протокола, начиная с самой первой версии этой
операционной системы. Помимо этого, имеются базовые утилиты, такие как ftp,
tftp, telnet, команды r*, arp, route и finger. С выходом версии 3.5 появились
новые ключевые свойства, которые, с одной стороны, упростили конфигурирование и
обслуживание, а с другой - улучшили свойства TCP/IP.
Значительные
улучшения средств удаленного доступа RAS, включающие поддержку IPX/SPX и
TCP/IP, использование стандартов Point to Point Protocol (PPP) и Serial Line IP
(SLIP). Сервер RAS может теперь поддерживать до 256 соединений (вместо 64 в
версии 3.1).
Поддержка длинных
имен файлов в файловой системе FAT. Windows NT поддерживает работу с тремя
файловыми системами: NTFS, FAT и HPFS. Таким образом, если до установки Windows
NT на компьютере были установлены MS-DOS или OS/2, то нет никакой необходимости
переформатировать диск. Система преобразует FAT или HPFS в NTFS, сохранив всю
информацию на диске. Обратное преобразование невозможно. Здесь уместно
заметить, что если вы хотите установить NTFS только затем, чтобы использовать
длинные (до 255 символов) имена файлов, то для этих целей прекрасно подойдут и
FAT и HPFS. Если для последней это естественное свойство, то возможность
использования длинных имен файлов на FAT была введена только в версии Windows
NT начиная с 3.5. Можно спокойно называть файлы и каталоги именами, выходящими
за пределы традиционного для MS-DOS правила "8.3", нисколько не
опасаясь, что эти файлы не будут доступны при работе в MS-DOS. Для таких файлов
и каталогов будут назначены вторые, "короткие" имена.
Полная поддержка
хранения встроенных объектов OLE 2.x и поиска составных документов. Эти
возможности включают связывание, встраивание, связывание со встроенными
объектами, технологии "drag-and-drop" и OLE-Automation.
В операционную
систему Windows NT 3.5 встроены графические возможности трехмерной графики
OpenGL API. OpenGL - это независимая от операционной системы промышленно-стандартная
библиотека графических функций, разработанная фирмой Silicon Graphics для своих
рабочих станций.Технология OpenGL была лицензирована Microsoft для
предоставления этого мощного 32-разрядного API пользователям Windows NT.
Развитые функции этой библиотеки требуются в том случае, когда необходима
визуализация крупных проектов и данных. Типичные задачи, требующие ее
использования, - это САПР, системы механического и промышленного дизайна,
программы статистического и научного анализа.
Приложения,
разработанные для MS Windows 3.x и MS-DOS, выполняются более надежно, так как
каждое приложение теперь работает в своем адресном пространстве.
Доменная
организация. В сетях на основе Windows NT Server рабочие станции подключаются к
выделенным серверам. Именованные собрания серверов могут быть сгруппированы в
домены. Такой метод организации сети упрощает централизованное управление сетью
и позволяет использовать Windows NT Server в качестве сетевой операционной системы
масштаба предприятия. Если администратор однажды завел учетную информацию о
пользователе домена, то последний имеет возможность зарегистрироваться на любой
рабочей станции в этом домене. Для этого достаточно ввести имя, имя домена и
пароль при регистрации, и Windows NT Workstation опознает пользователя и
воссоздаст его рабочую среду. В серверных сетях, как правило, все совместно
используемые каталоги располагаются на выделенных серверах, а совместно
используемые принтеры подключены к специализированным серверам печати. Однако
это ни в коей мере не ограничивает возможностей пользователя по предоставлению
ресурсов его рабочей станции в совместное использование так, как это обычно
делается в одноранговых сетях. Windows NT Server предоставляет возможность
пользователям различных доменов совместно использовать ресурсы путем становления
доверительных отношений между доменами. Если домен А и домен Б полностью
доверяют друг другу, то пользователь домена А может зарегистрироваться в домене
Б и осуществлять доступ к ресурсам его сервера. Аналогично, пользователь домена
Б может использовать ресурсы любого из серверов домена А.
Клиентами в сети
с Windows NT Server могут являться компьютеры с различными операционными
системами. Стандартно поддерживаются: MS-DOS, OS/2, Windows for
Workgroups, клоны UNIX, Macintosh, Windows NT
Workstation. Программное
обеспечение возможных клиентов включается в стандартную поставку Windows NT
Server.
Microsoft
является одним из лидеров в установлении общественных стандартов на socket-
интерфейсы для Windows. Windows Sockets является открытой спецификацией, определяющей
программный интерфейс Windows к сетевым протоколам. Этот интерфейс также является частью Microsoft Windows Open Services Architecture (WOSA). Он уже знаком сетевым
программистам, работающим под UNIX с расширениями на базе Windows, и стал
стандартным методом разработчиков, пишущих Windows-приложения для обеспечения
удаленного вызова процедур (RPC) не только через TCP/IP, но и через IPX и
NetBEUI. В 1993 году Microsoft создал свой Internet FTP сервер, работающий на
базе Windows NT Advanced Server.
Взаимодействие с
UNIX. В Windows NT обеспечивается посредством поддержки общих стандартных
сетевых протоколов (включая TCP/IP), стандартных способов распределенной
обработки, стандартных файловых систем и совместного использования данных, а
также благодаря простоте переноса приложений. Несмотря на то, что система
Windows NT была разработана для поддержки работы по схеме клиент-сервер, для
совместимости с UNIX-хостами встроена эмуляция терминалов SNMP. В Windows NT
имеется ряд средств для интеграции в системы, использующие протокол SNMP
(Simple Network Management Protocol), что позволяет выполнять удаленное
администрирование Windows NT с помощью, например, SUN Net Manager и HP
OpenView. Поддержка графических и текстовых терминалов.
В Windows NT
входят мощные API гибкой поддержки сред распределенных вычислений:
DCE совместимый
RPC (Remote Procedure Call) - критическая составная часть, необходимая при
построении распределенных приложений;
Windows Sockets -
API, совместимый с сокетами типа Berkeley, популярным в UNIX механизмом
распределенных вычислений;
WOSA (Windows
Open Services Architecture) - этот набор API позволяет объединять системы
Windows с широким рядом приложений-поставщиков данных, выпускаемых самыми
разными производителями.
Windows NT
4.0
При разработке
Windows NT 4.0 Microsoft решила пожертвовать стабильностью ради
производительности. С этой целью были внесены изменения в архитектуру:
библиотеки менеджера окон и GDI, а также драйверы графических адаптеров были
перенесены из пользовательского режима в режим ядра. Это изменение означает
некоторый отход от принятой в предыдущих версиях Windows NT 3.х концепции
микроядра.
Перенос
графической библиотеки и драйверов в область ядра повышает скорость выполнения
графического ввода-вывода. Эти изменения особенно сказались на скорости
выполнения приложений Win32, в то время как приложения Windows-16 и DOS-ские графические
приложения работают примерно также, как и в версии 3.5.
В то же время
описанные изменения делают операционную систему в принципе менее надежной.
Действительно, поскольку программное обеспечение графических адаптеров, как
правило, разрабатывается фирмами-производителями этого оборудования и это программное
обеспечение часто меняется (вместе с оборудованием), то от него трудно ожидать той
надежности, которая требуется для модулей операционной системы.
Кроме
архитектурных в Windows NT 4.0 имеются и другие не менее кардинальные
изменения:
Средства
взаимодействия с NetWare модифицированы - Gateway и клиент NCP поддерживают
теперь NDS.
В стандартную
поставку включен Internet Information Server и сервер DNS. DNS взаимодействует
с WINS и DHCP-серверами. Эта комбинация реализует Dynamic DNS, который
разрешает верхние уровни доменного имени и передает имя для окончательного
разрешения службе WINS.
Поддержка
многопротокольной маршрутизации.Сервер может работать как транслирующий агент
протокола BOOTP/DHCP , что позволяет компьютеру передавать сообщения
OOTP/DHCP по IP-сети. Новые административные средства Windows NT могут работать
удаленно на клиентах Windows 95. Кроме того, Windows NT Server обеспечивает сервис
удаленной загрузки для клиентов Windows 95. (Это полезно для бездисковых
рабочих станций.) Интерфейс в стиле Windows 95.Подсистема обработки сообщений
Microsoft Windows Messaging Subsystem позволяет получать и отправлять почту из
приложений. В Windows NT 4.0 появился эмулятор Intel'овских процессоров для
RISC-платформ.
Microsoft
добавила в Windows NT 4.0 много технических средств, чтобы сделать эту
операционную систему пригодной для использования в качестве платформы для
Web-сервера.
Области
использования Windows NT
Windows NT
Workstation, прежде всего, может использоваться как клиент в сетях Windows NT
Server, а также в сетях NetWare, UNIX, Vines. Она может быть рабочей станцией и
в одноранговых сетях, выполняя одновременно функции и клиента, и сервера.
Windows NT Workstation может применяться в качестве ОС автономного компьютера
при необходимости обеспечения повышенной производительности, секретности, а
также при реализации сложных графических приложений, например, в системах
автоматизированного проектирования.
Windows NT Server
может быть использован прежде всего как сервер в корпоративной сети. Здесь
весьма полезной оказывается его возможность выполнять функции контроллера доменов,
позволяя структурировать сеть и упрощать задачи администрирования и управления.
Он используется также в качестве файл-сервера, принт-сервера, сервера приложений,
сервера удаленного доступа и сервера связи (шлюза). Кроме того, Windows NT
Server может быть использован как платформа для сложных сетевых приложений,
особенно тех, которые построены с использованием технологии клиент-сервер.
Так, под
управлением Windows NT Server может работать сервер баз данных Microsoft SQL
Server, а также
серверы баз данных других известных фирм, такие как Oracle и Sybase, Adabas и
InterBase.
На платформе
Windows NT Server может быть установлена новая мощная система администрирования
Microsoft System Management Server, функцией которой является инвентаризация
аппаратной и программной конфигурации компьютеров сети, автоматическая
установка программных продуктов на рабочие станции, удаленное управление любым
компьютером и мониторинг сети.
Windows NT Server
может использоваться как сервер связи с мейнфреймам. Для этого создан
специальный продукт Microsoft SNA Server, позволяющий легко объединить в одной
сети IBM PC-совместимые рабочие станции и мощные мейнфреймы.
Windows NT Server
является платформой для нового производительного почтового сервера Microsoft
Exchange.
10.Операционная
система OS/2
История
развития OS/2 и ее место на рынке
Аналитики,
занимающиеся 32-х битными операционными системами для персональных компьютеров,
всегда концентрируют свое внимание на битве между Microsoft Windows и IBM OS/2,
предполагая, что Microsoft имеет преимущество. Но не все согласны с такой
точкой зрения. OS/2 v.2.0 была первой доступной и работающей 32-х битной
операционной системой для персональных компьютеров. И она первой начала
очередной круг состязаний - версия OS/2 Warp, предназначенная для клиентских
машин сетей клиент-сервер и одноранговых сетей, появилась на рынке раньше
Windows 95, позиционированной аналогичным образом. OS/2 Warp была также первой
системой, включившей набор средств поддержки Internet, а также средств объектной
ориентации.
OS/2 -
постепенные улучшения
Операционная
система OS/2 начиналась как совместная разработка IBM и Microsoft (хотя большую
часть работы должна была выполнить Microsoft). Изначально она была задумана как
замена DOS. Уже тогда было ясно, что DOS с ее ограничениями по памяти и по
возможностям файловой системы не может воспользоваться вычислительной мощностью
появляющихся компьютеров. OS/2 была хорошо продуманной системой. Она должна
была поддерживать вытесняющую многозадачность, виртуальную память, графический
пользовательский интерфейс, виртуальную машину для выполнения DOS-приложений.
Фактически она выходила за пределы простой многозадачности с ее концепцией,
названной многонитевостью.
Первые версии
OS/2 не оказали значительного влияния на рынок. Версия OS/2 1.0, выпущенная в
1987 году, содержала большинство технических свойств, необходимых для
многозадачной ОС. Однако у нее не было менеджера графического представления
(presentation manager, PM), а также отсутствовали драйверы для многих популярных
принтеров и других устройств. Версия OS/2 1.1, появившаяся в 1989 году,
включала рудиментарную версию PM, которая, наконец, делала возможным
использование графических приложений в нескольких окнах. Однако в этой версии
PM не хватало многих свойств, которые присущи развитому графическому
интерфейсу, кроме того, по прежнему отсутствовали многие драйверы принтеров.
Выпущенная в 1990 году версия 1.2 имела улучшенный PM, хотя он и не следовал
общепринятым концепциям графического интерфейса. Появились драйверы для
большинства принтеров и других периферийных устройств.
Однако
дискредитация OS/2 уже произошла. Версия 1.2 не была существенно лучше
предыдущих версий и все еще предъявляла значительные требования к аппаратуре. К
этому времени многие пользователи решили перейти на новую платформу Windows 3.0
или подождать, пока не появится что-нибудь принципиально лучшее. Продажи OS/2
по-прежнему были вялыми и рынок не интересовался ею. Это объяснялось наличием у
OS/2 ряда существенных недостатков:
Виртуальная машина
DOS, которая должна была бы обладать способностью выполнять немодифицированные
приложения DOS, с самого начала имела технические изъяны. Эта виртуальная
машина была разработана на базе виртуальных возможностей процессора i286,
который позволял выделять сегмент памяти в 640 Кб для отдельного
DOS-приложения. Однако процессор i286 в этом виртуальнои режиме работал
слишком медленно, поэтому виртуальная DOS-машина была реализована на основе
реального режима процессора. При этом требовался перезапуск процессора для
переключения между реальным и защищенным режимами. Хотя эта операция и
выполнялась очень быстро и незаметно для пользователя, она была сложной и
вносила путаницу. Microsoft и IBM не смогли в полной мере реализовать
концепцию виртуальной обработки в режиме I8086: в этом режиме DOS-приложения,
которые непосредственно читали или писали в аппаратные порты, переставали
работать. В связи с этим не могли использоваться и популярные сетевые
операционные системы на базе DOS. Память в этом режиме использовалась
нерационально - если пользователь конфигурировал OS/2 с возможностью
DOS-совместимости, то 640 КБ памяти всегда выделялись для этих целей и не
могли использоваться для задач OS/2. Еще одним недостатком было отсутствие
возможности обмена данными между DOS- и OS/2- приложениями. В каждый момент
времени могло выполняться только одно DOS-приложение, и это приложение не могло
использовать расширенную память.
В результате для
пользователей OS/2 многие популярные DOS-приложения оказались недоступными, а
те, что были доступны, не могли вообще взаимодействовать со средой OS/2. Время
показало, что для пользователей это обстоятельство оказалось весьма важным, так
как многие отказались от покупки OS/2, оставаясь с проверенной, хотя и не очень
совершенной DOS.
11.Обзор
сетевых операционных систем
Большое
разнообразие типов компьютеров, используемых в вычислительных сетях, влечет за
собой разнообразие операционных систем: для рабочих станций, для серверов сетей
уровня отдела и серверов уровня предприятия в целом. К ним могут предъявляться
различные требования по производительности и функциональным возможностям, желательно,
чтобы они обладали свойством совместимости, которое позволило бы обеспечить
совместную работу различных ОС.
Сетевые ОС могут быть
разделены на две группы: масштаба отдела и масштаба предприятия. ОС для отделов
или рабочих групп обеспечивают набор сетевых сервисов, включая разделение
файлов, приложений и принтеров. Они также должны обеспечивать свойства
отказоустойчивости, поддерживать кластерные архитектуры. Сетевые ОС отделов
обычно более просты в установке и управлении по сравнению с сетевыми ОС предприятия,
у них меньше функциональных свойств, они меньше защищают данные и имеют более
слабые возможности по взаимодействию с другими типами сетей, а также худшую
производительность.
Сетевая
операционная система масштаба предприятия прежде всего должна обладать
основными свойствами любых корпоративных продуктов, в том числе:
масштабируемостью, то есть способностью одинаково хорошо работать в широком
диапазоне различных количественных характеристик сети,
совместимостью с другими продуктами, то есть способностью работать в сложной
гетерогенной среде интерсети в режиме plug-and-play.
Корпоративная
сетевая ОС должна поддерживать более сложные сервисы. Подобно сетевой ОС
рабочих групп, сетевая ОС масштаба предприятия должна позволять пользователям
разделять файлы, приложения и принтеры, причем делать это для большего количества
пользователей и объема данных и с более высокой производительностью. Кроме
того, сетевая ОС масштаба предприятия обеспечивает возможность соединения
разнородных систем - как рабочих станций, так и серверов. Например, даже если
ОС работает на платформе Intel, она должна поддерживать рабочие станции UNIX,
работающие на RISC-платформах. Аналогично, серверная ОС, работающая на
RISC-компьютере, должна поддерживать DOS, Windows и OS/2. Сетевая ОС масштаба
предприятия должна поддерживать несколько стеков протоколов (таких как TCP/IP,
IPX/SPX, NetBIOS, DECne и OSI), обеспечивая простой доступ к удаленным
ресурсам, удобные процедуры управления сервисами, включая агентов для систем
управления сетью.
Важным элементом
сетевой ОС масштаба предприятия является централизованная справочная служба, в
которой хранятся данные о пользователях и разделяемых ресурсах сети. Такая
служба, называемая также службой каталогов, обеспечивает единый логический вход
пользователя в сеть и предоставляет ему удобные средства просмотра всех доступных
ему ресурсов. Администратор, при наличии в сети централизованной справочной
службы, избавлен от необходимости заводить на каждом сервере повторяющийся
список пользователей, а значит избавлен от большого количества рутинной работы
и от потенциальных ошибок при определении состава пользователей и их прав на
каждом сервере.
Важным свойством
справочной службы является ее масштабируемость, обеспечиваемая
распределенностью базы данных о пользователях и ресурсах.
Такие сетевые ОС,
как Banyan Vines, Novell NetWare 4.x, IBM LAN Server, Sun NFS, Microsoft LAN
Manager и Windows NT Server, могут служить в качестве операционной системы
предприятия, в то время как ОС NetWare 3.x, Personal Ware, Artisoft LANtastic
больше подходят для небольших рабочих групп.
Критериями для
выбора ОС масштаба предприятия являются следующие характеристики:
Органичная
поддержка многосерверной сети;
Высокая
эффективность файловых операций;
Возможность
эффективной интеграции с другими ОС;
Наличие
централизованной масштабируемой справочной службы;
Хорошие
перспективы развития; Эффективная работа удаленных пользователей;
Разнообразные
сервисы: файл-сервис, принт-сервис, безопасность данных и отказоустойчивость,
архивирование данных, служба обмена сообщениями, разнообразные базы данных и
другие; Разнообразные программно-аппаратные хост-платформы: IBM SNA, DEC
NSA,UNIX;
Разнообразные
транспортные протоколы: TCP/IP, IPX/SPX, NetBIOS, AppleTalk;Поддержка
многообразных операционных систем конечных пользователей: DOS, UNIX, OS/2, Mac;
Поддержка сетевого оборудования стандартов Ethernet, Token Ring, FDDI, ARCnet;
Наличие популярных прикладных интерфейсов и механизмов вызова удаленных
процедур RPC; Возможность взаимодействия с системой контроля и управления
сетью, поддержка стандартов управления сетью SNMP.
Конечно, ни одна
из существующих сетевых ОС не отвечает в полном объеме перечисленным
требованиям, поэтому выбор сетевой ОС, как правило, осуществляется с учетом
производственной ситуации и опыта. В таблице приведены основные характеристики
популярных и доступных в настоящее время сетевых ОС.
Основные
характеристики сетевых операционных систем
Novell
NetWare 4.1
Специализированная
операционная система, оптимизированная для работы в качестве файлового сервера
и принт-сервера
Ограниченные
средства для использования в качестве сервера приложений: не имеет средств
виртуальной памяти и вытесняющей многозадачности, а поддержка симметричного
мультипроцесcирования отсутствовала до самого недавнего времени. Отсутствуют
API основных операционных сред, используемых для разработки приложений, - UNIX,
Windows, OS/2
Серверные
платформы: компьютеры на основе процессоров Intel, рабочие станции RS/6000
компании IBM под управлением операционной системы AIX с помощью продукта
NetWare for UNIX Поставляется с оболочкой для клиентов: DOS, Macintosh, OS/2,
UNIX, Windows (оболочка для Windows NT разрабатывается компанией Novell в
настоящее время, хотя Microsoft уже реализовала клиентскую часть NetWare в
Windows NT)
Организация
одноранговых связей возможна с помощью ОС PersonalWare Имеет справочную службу
NetWare Directory Services (NDS), поддерживающую централизованное управление,
распределенную, полностью реплицируемую, автоматически синхронизируемую и
обладающую отличной масштабируемостью
Поставляется с
мощной службой обработки сообщений Message Handling Service (MHS), полностью
интегрированную (начиная с версии 4.1) со справочной службой
Поддерживаемые
сетевые протоколы: TCP/IP, IPX/SPX, NetBIOS, Appletalk Поддержка удаленных
пользователей: ISDN, коммутируемые телефонные линии, frame relay, X.25 - с
помощью продукта NetWare Connect (поставляется отдельно) Безопасность: аутентификация
с помощью открытых ключей метода шифрования RSA;
Сертифицирована
по уровню C2
Хороший сервер
коммуникаций
Встроенная
функция компрессии диска
Сложное обслуживание
Banyan VINES 6.0 и ENS (Enterprise Network
Services) 6.0
Серверные платформы: ENS for UNIX: работает на RISC-компьютерах под управлением SCO UNIX,HP-UX, Solaris, AIX ENS
for NetWare: работает на Intel-платформах под управлением NetWare 2.x, 3.x, 4.x VINES работает на Intel-платформах.
Клиентские платформы: DOS, Мacintosh, OS/2, UNIX, Windows for Workgroups, Windows NT Хороший сервер приложений: поддерживаются вытесняющая многозадачность, виртуальная память и симметричное мультипроцессирование в версии VINES и в ENS-версиях для UNIX. Поддерживаются прикладные среды UNIX, OS/2, Windows
.Поддержка одноранговых связей - отсутствует.
Справочная служба
- Streettalk III, наиболее отработанная из имеющихся на рынке, с централизованным
управлением, полностью интегрированная с другими сетевыми службами,
распределенная, реплицируемая и автоматически синхронизируемая, отлично масштабируемая.
Согласованность
работы с другими сетевыми ОС: хорошая; серверная оболочка работает в средах NetWare
и UNIX; пользователи NetWare, Windows NT и LAN Server могут быть объектами
справочной службы Streettalk III
Служба сообщений
- Intelligent Messaging, интегрирована с другими службами.
Поддерживаемые
сетевые протоколы: VINES IP, TCP/IP, IPX/SPX, Appletalk
Поддержка
удаленных пользователей: ISDN, коммутируемые телефонные линии, X.25
Служба
безопасности: поддерживает электронную подпись (собственный алгоритм),
избирательные права доступа, шифрацию; не сертифицирована
Простое
обслуживание
Хорошо масштабируется
Отличная
производительность обмена данными между серверами, хуже - при обмене сервер-ПК
Microsoft
LAN Manager
широкая
распространенность
работает под
OS/2 и UNIX
поддерживает
мощные серверные платформы
один сервер
может поддерживать до 2 000 клиентов
Microsoft Windows NT Server 3.51 и 4.0
Серверные
платформы: компьютеры на базе процессоров Intel, PowerPC, DEC Alpha, MIPS
Клиентские платформы: DOS, OS/2, Windows, Windows for
Workgroups, Macintosh
Организация одноранговой
сети возможна с помощью Windows NT Workstation и Windows for
Workgroups Windows NT Server представляет собой отличный сервер приложений: он
поддерживает вытесняющую многозадачность, виртуальную память и симметричное
мультипроцессирование, а также прикладные среды DOS, Windows, OS/2, POSIX
Справочные
службы: доменная для управления учетной информацией пользователей (Windows NT
Domain Directory service), справочные службы имен WINS и DNS
Хорошая поддержка
совместной работы с сетями NetWare: поставляется клиентская часть (редиректор)
для сервера NetWare (версий 3.х и 4.х в режиме эмуляции 3.х, справочная служба
NDS поддерживается, начиная с версии 4.0), выполненная в виде шлюза в Windows
NT Server или как отдельная компонента для Windows NT Workstation; недавно
Microsoft объявила о выпуске серверной части NetWare как оболочки для Windows
NT Server
Служба обработки
сообщений - Microsoft Mail, основанная на DOS- платформе.
Поддерживаемые
сетевые протоколы: TCP/IP, IPX/SPX, NetBEUI, Appletalk
Поддержка
удаленных пользователей: ISDN, коммутируемые телефонные линии, frame relay,
X.25 - с помощью встроенной подсистемы Remote Access Server (RAS)
Служба
безопасности: мощная, использует избирательные права доступа и доверительные
отношения между доменами; узлы сети, основанные на Windows NT Server, сертифицированы
по уровню C2
Простота
установки и обслуживания
Отличная
масштабируемость
IBM LAN
Server 4.0
Серверные
платформы: операционные системы MVS и VM для мейнфреймов; AS/400 с OS/400,
рабочие станции RS/6000 с AIX, серверы Intel 486 или Pentium под OS/2
Поставляется с
оболочками для клиентов: DOS, Macintosh, OS/2, Windows, Windows NT, Windows for
Workgroups
Серверы
приложений могут быть организованы с помощью LAN Server 4.0 в операционных
средах MVS, VM, AIX, OS/2, OS/400. В среде OS/2 поддерживаются: вытесняющая
многозадачность, виртуальная память и симметричное мультипроцессирование
Организация
одноранговых связей возможна с помощью ОС Warp Connect
Справочная служба
- LAN Server Domain, то есть основа на доменном подходе
Поддерживаемые
сетевые протоколы: TCP/IP, NetBIOS, Appletalk
Безопасность -
избирательные права доступа, система не сертифицирована
Служба обработки
сообщений - отсутствует
Высокая
производительность
Недостаточная
масштабируемость
IBM и
NCR LAN Manager
LAN Manager for
UNIX хорошо распространена (15% объема мировых продаж сетевых ОС)
LAN Manager for
AIX поддерживает RISC компьютеры System/6000 в качестве файлового сервера
Работает под UNIX, имеет все преимущества, связанные с использованием этой ОС
.