Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Расчетное задание / КМ2 / Ответы КМ2

.pdf
Скачиваний:
4
Добавлен:
16.05.2024
Размер:
17.54 Mб
Скачать

подверженность потерям данных. В отличие от MS Windows, в OS/2 как и в Unix подобных системах можно не загружать графическую оболочку, получая при этом работоспособную систему в режиме командной строки. Общая схема распределения памяти в ОS/2 представлена на рис. 9.

Последняя полуофициальная версия OS/2 Аврора была выпущена в 1999 году. В настоящее время данная ОС IBM не поддерживается.

OS/2 широко использовалась в ранних моделях банкоматов. «Aurora» (OS/2 WSeB 4.5x) была популярна в качестве файлового сервера из-за производительности, надёжности и набора возможностей. OS/2 встречалось в 1990-х годах в институтских лабораториях — там, где много управляющих программ. OS/2 была популярна в конце 1990-х годах для разработки программ на Java.

 

4 Гб

Системный код

512 Мб

 

32

разрядные

прикладные

программы OS/2

виртуальные

машины Win16

Рис.9. Архитектура использования памяти в семействе OS/2.

51

4.5.ОС семейств MS Windows NT

Семейство MS Windows NT начало свой отсчет с появления в начале 90-х годов одноименной ОС [8]. При создании проекта разработчики изначально поставили перед собой весьма амбициозные задачи по выполнению в системе следующих требований: переносимость, надежность, мультипроцессорная обработка, масштабируемость, распределенные вычисления, совместимость с POSIX (см. 1.6), уровень защиты от несанкционированного доступа уровня С2, расширяемость. Общую суть этих требований мы рассмотрели ранее. Для выполнения данных требований разработчики базировались на следующих основных концепциях:

модели клиент – сервер для предоставления пользователям различных сред ОС

объектная модель для предоставления унифицированной модели управления ресурсами ОС

использование концепции микроядра при построении ядра ОС для обеспечения повышенной надежности системы

Все перечисленные концепции достаточно органично сочетаются в MS Windows NT. Общая структура ОС представлена на рис. 10.

 

клиент OS/2

 

 

клиент Win32

 

 

 

клиент POSIX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

подсистема

 

 

 

 

подсистема

 

 

 

подсистема

 

 

OS/2

 

 

 

 

Win32

 

 

 

 

POSIX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ввод-вывод

ввод-вывод

 

Пользовательский режим

Исполнительная система Windows NT

средство локального вызова

режим ядра

процедур LPC

 

 

 

Системные сервисы

 

Диспетчер ввода -

 

 

вывода

Ядро

 

 

 

 

 

 

Слой абстрагирования от оборудования (HAL)

Аппаратура

Рис.10. Общая структура ОС MS Windows NT.

52

В первой версии MS Windows NT подход по микроядру строго соблюдался. В ОС было выделено относительно небольшое количество особо ответственных компонент, которые работали в привилегированном режиме. Остальные приложения ОС, а тем более пользовательские приложения, работали в обычном пользовательском режиме и напрямую к ядру доступа не имели. Для выполнения команд, требующих системного сервиса, каждое приложение в духе концепции клиент – сервер обращается к серверу своего типа. Причем обращение производится не напрямую, а через исполнительную систему MS Windows NTLPC, которая проверяет правильность вызова. В ОС изначально имелось три основные подсистемы (сервера): основная Win32 и две для обеспечения совместимости – OS/2 и POSIX. Каждая подсистема после проверки и обработки команд от клиента при необходимости могла передавать их далее компонентам ОС, работающим на уровне ядра. Подсистемы OS/2 и POSIX для операций ввода вывода могли использовать только подсистему Win32. Каждая подсистема после обработки команд клиента возвращает результаты клиенту опять через LPC. Распределение памяти для ОС приведено на рис. 11.

 

4 Гб

компоненты

ядра ОС

 

2 Гб

 

DLL

Win32

клиентской

стороны

 

 

Система Win32

Прикладные

программы

Win32

 

Рис. 11 Общее распределение памяти в семействе ОС MS Windows NT.

53

Как мы видим, каждый 32-х разрядный клиент имеет свое виртуальное адресное пространство в 2 Гб. Для обеспечения связи между клиентами и основной подсистемой Win32 в верхней части адресного пространства программы находятся «заглушки», которые воспринимаются ею как системные библиотеки. На самом деле их функция заключается в передаче вызовов подсистеме Win32, как было описано ранее.

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

Действительно, при переходе от старых версий ОС семейства MS Windows к ОС MS Windows NT пользователи замечали значительно большую устойчивость системы, однако существенно большая требовательность к ресурсам и, как следствие, замедление работы в определенной степени свело на нет все достижения. Так же надо отметить, что совместимость со старыми версиями даже MS Windows и DOS была очень ограничена. Приложения OS/2 и POSIX могли выполняться только в алфавитно-цифровом режиме.

Все это обусловило серьезную переработку концепции ОС, в частности, перенос наиболее ресурсоемких и часто вызываемых системных сервисов с пользовательского уровня на уровень ядра. Т.е. это фактически означало отказ от концепции чистого микроядра ОС в сторону гибридного ядра. Все это и серьезная оптимизация принесли свои плоды и, начиная с версии MS Windows NT 4.0, ОС данного семейства достаточно успешно завоевывают рынок. Версии ОС семейства MS Windows NT по текущий момент приведены в таблице 1.

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

54

Таблица 1

Версии ОС семейства MS Windows NT

Версия

Название ОС

Основные редакции

 

Год

ядра

 

 

 

 

выпуска

 

 

 

 

 

NT 3.1

Windows NT 3.1

Рабочая станция, сервер

 

1993

 

 

 

 

 

NT 3.5

Windows NT 3.5

Рабочая станция, сервер

 

1994

 

 

 

 

 

NT 3.51

Windows NT 3.51

Рабочая станция, сервер

 

1995

 

 

 

 

NT 4.0

Windows NT 3

Рабочая станция, сервер, сервер

1996

 

 

предприятия, сервер терминалов

 

 

 

 

 

 

NT 5.0

Windows 2000

Профессиональная,

сервер,

2000

 

 

расширенный сервер, сервер центра

 

 

 

данных

 

 

 

 

 

 

 

NT 5.1

Windows XP

Домашняя, профессиональная, 64х

2001

 

 

разрядная

 

 

 

 

 

 

 

NT 5.2

Windows XP

64-разрядная редакция 2003

2003

 

 

 

 

NT 5.2

Windows Server 2003

Стандартная, предприятия, центр

2003

 

 

данных, Веб, сервер малого бизнеса и

 

 

 

т.д.

 

 

 

 

 

 

 

NT 5.2

Windows XP

Профессиональная х64 редакция

2005

 

 

 

 

NT 5.2

Windows Server 2003 R2

Стандартная, предприятия, центр

2005

 

 

данных, Веб, сервер малого бизнеса и

 

 

 

т.д.

 

 

 

 

 

 

 

 

 

NT 5.2

Windows Home Server

нет

 

 

2007

 

 

 

 

 

 

NT 6.0

Windows Vista

Начальная,

домашняя

основная,

2006

 

 

домашняя

премиум,

бизнес,

 

 

 

предприятия, Ultimate

 

 

 

 

 

 

NT 6.0

Windows Server 2008

Foundation, стандартная, предприятия,

2008

 

 

центр данных, веб сервер и т.д.

 

 

 

 

 

 

 

NT 6.1

Windows 7

Стартовая,

домашняя

основная,

2009

 

 

домашняя

 

премиум,

 

 

 

профессиональная,

предприятия,

 

 

 

Ultimate

 

 

 

 

 

 

 

NT 6.1

Windows Server 2008 R2

Foundation, стандартная, предприятия,

2009

 

 

центр данных, веб сервер и т.д.

 

 

 

 

 

 

 

55

На текущий момент последняя версия семейства ОС MS Windows NT для рабочих станций является Windows 7, использующая ядро NT 6.1. В общем, первоначальная идеология построения ОС мало изменилась к настоящему времени. Эволюция в основном касалась развития интерфейса, расширения поддержи различных устройств, оптимизации работы, расширения коммуникационных возможностей и т.п. Посмотрим, что же наиболее существенного произошло при последнем переходе на ядро NT 6.0 в версии

Windows Vista по заявлениям фирмы Microsoft.

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

Менеджеры управления памятью и процессами, структуры данных и алгоритмы существенно улучшены.

Уменьшены накладные расходы при создании процессов.

Введен класс защищенных процессов. Т.е. таких, состоянием и данными которых не могут оперировать другие процессы системы.

Улучшена работа системы с многонитевыми приложениями.

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

Полностью изменена процедура старта ОС.

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

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

Улучшена поддержка для архитектур типа NUMA (неравномерный доступ к памяти

.т.е. предоставлении каждому процессору своей памяти).

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

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

Проведена оптимизация для СМО систем.

56

Улучшена работа транзакций NTFS для обеспечения большей сохранности данных.

Улучшена система шифровки данных на диске для предотвращения неавторизованного доступа к данным.

Введены в NTFS символьные связи как в UNIX-подобных ОС.

Улучшена система самоисправления ошибок NTFS, которая сейчас функционирует в виде отдельной фоновой нити.

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

Автоматически регулируется состояние процессора от его загрузки.

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

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

Проведена серьезная оптимизация работы жесткого диска.

Здесь мы перечислили нововведения и улучшения, коснувшиеся системного уровня, которые в первую очередь относятся к функционированию компьютерной системы в задачах ЯЭ. Остальные нововведения типа нового графического интерфейса и т.п. здесь не рассматриваются, как не относящиеся к теме. По приведенным данным видно, что фирма Microsoft заявляла серьезное улучшение функционирование ОС при переходе на ядро NT 6.0 и, в частности, на MS Windows Vista. Однако на практике этого не произошло. Система оказалась чрезвычайно требовательна к ресурсам и поэтому достаточно медлительна. В целом, по отзывам многих экспертов, данная версия ОС оказалась коммерческим провалом.

Для исправления ситуации код системы был сильно оптимизирован и выпущен под новой маркой MS Windows 7 с ядром NT 6.1. Кроме различных улучшений по интерфейсу, работы с мультимедиа и т.п., была существенно улучшена работа системы на многоядерных процессорах – в настоящее время ОС поддерживает до 256 логических процессоров. Тестовые расчеты подтвердили действительно серьезное улучшение масштабируемости параллельных расчетов по сравнению с MS Windows XP. Улучшена процедура загрузки ОС, улучшена работа ядра. В частности был введен больший параллелизм в работу ОС. В качестве другой интересной особенности можно выделить группировку таймеров. Основная идея состоит в синхронизации различных программных таймеров для уменьшения циклов переключения процессоров между режимами с

57

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

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

Необходимо заметить, что MS Windows 7 выпущено в двух вариантах 32-х и 64-х битных. 32-х битный вариант является, пожалуй, данью совместимости, т.к. с массовым переходом 64-х битных процессоров на рынке дальнейший переход всех ОС на 64-х битную разрядность очевиден. Следующая версия данного семейства будет называться MS Windows 8 и ее выход планируется в 2012 году. Однако по ней информации системного плана пока мало.

При рассмотрении всей тенденции развития семейства MS Windows можно выделить следующие основные части.

Сторонние приложения, как правило, работают на 10% – 15% медленнее под новой версией ОС семейства MS Windows, чем под предыдущей.

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

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

Каждый переход на новую версию ядра (систему) сопровождается наличием существенного количества ошибок в системе. После накопления критического количества ошибок и их исправлений фирма Microsoft выпускает либо новую версию, например, MS Windows Vista MS Windows 7 или сервис паки. Поэтому переход на новою версию оптимален после данных исправлений.

Исходный код ОС семейства MS Windows является полностью закрытым. Поэтому ее использование в ответственных задачах ЯЭ в свете соображений о компьютерной

58

безопасности, которые будут обсуждены ниже, должно проводиться с большой осторожностью.

4.6.Linux

Linux — это вариант системы UNIX, однако существует множество других версий и вариантов UNIX, включая AIX, FreeBSD, HP-UX, SCO UNIX, System V, Solaris и др. К

счастью, фундаментальные принципы и системные вызовы для всех этих систем во многом совпадают (это обусловлено их дизайном). Более того, сходными являются общие стратегии реализации, алгоритмы и структуры данных, хотя имеются и некоторые различия. Чтобы примеры были конкретными, лучше всего выбрать одну из них и последовательно описать ее. Поскольку большинство пользователей вероятнее всего сталкивались именно с Linux (а не с другими версиями), то именно ее мы и будем использовать в качестве примера - однако не будем забывать, что, за исключением информации по реализации, большая часть описания применима ко всем. Linux может быть установлена на очень широкий спектр компьютерных платформ – начиная с мобильных телефонов и заканчивая суперкомпьютерами. Наиболее часто Linux используется в Интернет серверах – примерно 70 – 80 % всех серверов, десять наиболее быстрых суперкомпьютеров используют Linux да и в целом 90% всех суперкомпьютеров также используют Linux.

Первая версия 0.01 операционной системы Linux была выпущена в 1991 году, когда финский студент Линус Торвалдс создал первое ядро. Linux имеет монолитный тип ядра. Linux является модульной UNIX-подобной системой. Ядро ОС осуществляет контроль над процессами, сетевыми операциями, периферийными устройствами и файловой системой. Драйвера устройств или интегрируются непосредственно в ядро или добавляются как модули, подгружаемые в процессе работы ОС по необходимости. В Linux активно используется система, называемая «пользовательским пространством», которая играет важную роль в ОС. Под этим подразумевают различные процессы и библиотеки, запускаемые в адресном пространстве за пределами адресного пространства ядра и которые ОС использует для взаимодействия с ядром. Графический интерфейс системы базируется на X Window системе.

Операционная система Linux развилась в полноценный клон UNIX с виртуальной памятью, более сложной файловой системой и многими другими дополнительными

59

функциями. Хотя изначально система Linux работала только на процессоре Intel 386 (и даже имела встроенный ассемблерный код 386-го процессора в процедурах на языке С), она была быстро перенесена на другие платформы и теперь работает на широком спектре компьютерных архитектур - так же, как и UNIX.

Номер версии ядра Linux состоит из четырех чисел: A.B.C.D (например, 2.6.9.11). Первое число обозначает версию ядра. Второе число обозначает основную версию. До ядра 2.6 четные номера версии обозначали стабильную версию ядра, а нечетные — нестабильную (находящуюся в разработке). Начиная с версии ядра 2.6 это не так. Третье число обозначает номер ревизии (например, добавлена поддержка новых драйверов). Четвертое число обозначает исправление ошибок.

Важной особенностью Linux, например, по сравнению с MS Windows, является возможность настройки ядра ОС. Более того, пользователь может периодически загружать самые свежие версии ядер из Интернета и устанавливать их. Настройка ядра позволяет серьезно оптимизировать функционирование компьютерной системы применительно к имеющейся конфигурации аппаратуры и выполняемым задачам. Конечно, самостоятельная конфигурация и сборка ядра подразумевает определенный уровень компьютерных знаний и опыта.

В систему Linux была перенесена внушительная часть стандартного программного обеспечения UNIX, включая оконную систему X Windows и большое количество сетевого программного обеспечения. Пользователь работает в системе на основе двух интерфейсов. Это интерфейс командной строки и графический. Необходимо отметить, что Linux будет полноценно работать даже только при наличии командной строки. Графический интерфейс может быть запущен при желании дополнительно. Однако можно настроить систему таким образом, что он будет загружаться по умолчанию. Графический интерфейс на основе X Windows взаимодействует с оконным менеджером, который является конечным слоем для организации контакта с пользователем. Основные оконные менеджеры на сегодняшний день это: GNOME и KDE. Они являются полноценными системами, сравнимыми по дизайну, а зачастую и превышающими по возможностям ОС семейства MS Windows. Кроме того существует достаточно большой набор более облегченных оконных менеджеров. Достоинством ОС Linux является то, что пользователь может сам выбрать тип интерфейса и вид оконного менеджера.

Особенностью Linux является ее бесплатное программное обеспечение. Система Linux поставляется вместе с лицензией GPL. GPL расшифровывается как «GNU

60

Соседние файлы в папке КМ2