Выбор типа ОС часто представляет собой нетривиальную задачу. Некоторые приложения накладывают жесткие требования, которым удовлетворяет только небольшое количество систем. Например, задачи управления промышленным или исследовательским оборудованием в режиме жесткого реального времени вынуждают делать выбор между специализированными ОС реального времени и некоторыми ОС общего назначения. Другие приложения, например серверы баз данных кластерного исполнения, требуют поддержки многопроцессорности, высокой надежности и производительности. Некоторые задачи, такие как автоматизация конторской работы, не предъявляют больших требований к надежности, производительности и времени реакции системы, что предоставляет широкий выбор между различными ОС (MS Windows, Mac OS, UNIX различных версий и многие системы общего назначения).
11.1.Сравнительный анализ ОС семейств UNIX и Windows
ОС UNIX и Windows позиционируются на одном и том же сегменте рынка: мультизадачных сетевых ОС общего назначения. Для принятия решения о выборе одной из них необходимо провести сравнительный анализ их характеристики. Сравнивать будем следующие аспекты этих ОС:
-История развития
-Архитектура и API
-Процессы и потоки
-Управление виртуальной памятью
-Файловые системы и сетевые файловые системы
-Работа с сетями
-Интерфейсы пользователя
-Взаимодействие процессов (IPC)
11.1.1 История развития
ОС UNIX развивается уже более 30 лет. За это время огромный коллектив разработчиков, часто добровольцев, создал группу операционных систем с проверенной производительностью, надежностью, и безопасностью в серверной среде. Многие технические решения заимствовались от одной версии ОС к другой. Некоторые версии снабжены открытыми исходными текстами.
|
ОС Windows создается силами одной фирмы, поэтому обеспечивает хорошую преемственность версий, функционально продумана. С другой стороны, Windows – закрытая ОС с некоторыми уникальными стандартами (кодовые страницы, MFC, СОМ,…).
Ценовой диапазон ОС семейства UNIX очень широк: от бесплатных FreeBSD и Linux до очень дорогих ОС РВ. В отличие от ОС Windows ОС UNIX имеют практически неограниченную техническую поддержку в Internet.
11.1.2. Архитектура и API
Как и большинство операционных систем, Windows и UNIX имеют ядерную архитектуру. Ядро реализует все основные функции операционной системы:
-Создание файлов
-Запуск процессов
-Управление вводом-выводом
-Управление памятью
В UNIX, функции API называются системными вызовами. Системные вызовы - программный интерфейс, общий для всех версий UNIX. Эти функции в основном совпадают для всех версий UNIX. Стандарт POSIX включает определение системных вызовов. Существуют версии ОС UNIX, основанные на архитектуре микроядра (QNX, Neutrino)
В Windows для программирования запросов к ОС применяется функции Win32 API. Подсистема Win32 - это обширный набор функций, обеспечивающих возможности по защите, синхронизации, управления виртуальной памятью, потоками и т.д. Кроме того, в ОС Windows NT имеется защищенная подсистема POSIX призванная облегчить перенос приложений из ОС UNIX.
11.1.3. Процессы и потоки
ОС Windows и UNIX – мультизадачные т.е. управляют многими процессами сразу. Каждый процесс имеет свой собственный код, данные, системные ресурсы и состояние. Ресурсы включают виртуальное адресное пространство, файлы и объекты синхронизации. Потоки – часть процесса; которые допускают параллельную обработку в пределах отдельного процесса, каждый процесс имеет один или более потоков. Подобно процессу, поток имеет ресурсы и состояние. Windows и некоторые версии UNIX обеспечивают и процессы, и потоки.
|
UNIX был разработан как мультизадачная, многопользовательская система и очень эффективен при создании процессов.
Windows развивался от MS-DOS, который не поддерживал приоритетную мультизадачность. Создание нового процесса в Windows - относительно дорогая операция.
Наиболее новые ядра UNIX обладают свойством многопотоковости, в соответствии со стандартом POSIX.
Приложения Windows используют потоки для обеспечения SMP и для обеспечения параллельных вычислений в рамках одного процесса (интерактивные и вычислительные потоки). В Windows создание нового потока очень эффективно.
Когда приложение UNIX создает новый процесс, он становится дочерним для создавшего его процесса. Эта иерархия процессов часто важна, и есть системные вызовы для управления дочерними процессами.
В отличие от UNIX, процессы Windows не имеют иерархических отношений, т.е. ОС не различает их поколений. Однако, поскольку созданный процесс получает дескриптор создавшего его процесса, то при необходимости иерархические отношения можно моделировать.
11.1.4. Управление виртуальной памятью
И UNIX, и Windows используют виртуальную память. В UNIX виртуальная память обеспечивается ядром, а в Windows - отдельной службой.
11.1.5. Файловые системы
Файловые системы UNIX и Windows иерархического типа с поддержкой длинных имен файлов до 255 символов. Почти любой символ допустим в имени файла, кроме следующих:
|
/ в UNIX
?, ",/, \, >, <, *, |,: в Windows
В UNIX корнем иерархии является каталог root. Путь файла в UNIX - ряд имен каталогов, отделенных символом "/". Корневой каталог назван "/", так что путь начинается с "/"; например,/etc/passwd. Пути могут также быть определены как относительно текущего рабочего каталога (обозначается как "."), так и родительского каталога по отношению к текущему (обозначается как "..").
UNIX не делает никаких различий для файлов на локальном жестком диске, CD-ROM, гибком диске или в сетевой файловой системе. Все файлы представляются в одном дереве с тем же самым корнем. Поэтому, для подключения новых файловых систем (например, новый раздел ЖД) UNIX использует процесс монтирования. В результате новые файловые системы появляются как часть дерева каталогов файловой системы.
Windows может иметь много иерархий; например, один для каждого раздела ЖД и один для каждого сетевого диска. Подобно UNIX, путь в Windows определяется рядом каталогов и имени файла. В отличие от UNIX, разделитель - "\". Кроме того также было должно быть определено имя дисковода (например, C или D) или сетевое имя (например, \\SERVER\SHARE). В Windows можно также, как в UNIX использовать "." и "..".
Стандартная сетевая файловая система UNIX - NFS (Sun Microsystems). NFS обеспечивает прозрачный сетевой доступ к файловым системам других ЭВМ. Сервер NFS экспортирует каталог, а клиент NFS монтирует экспортированный каталог, как если бы он был локальной файловой системой, после чего она становится частью дерева каталогов. UNIX имеет механизм автомонтирования, делающий каталоги автоматически доступными, когда приложение пытается обращаться к ним. После периода бездеятельности они автоматически размонтируются, что упрощает администрирование.
В Windows, сервер открывает каталог для совместного использования, после чего клиент соединяется с разделяемым сетевым ресурсом. Каждому сетевому диску присваивается его собственным имя, например X.
UNIX и Windows могут совместно использовать сетевые ресурсы. Имеется множество коммерческих программ (например, Самба), обеспечивающих доступ к NFS.
11.1.6. Работа с сетями
Основной сетевой протокол для UNIX и Windows - TCP/IP. Стандартный API для TCP/IP называется sockets. Sockets были созданы для UNIX в Университете Калифорнии, Беркли. Sockets обеспечивают удобный в работе, двунаправленный поток между системами по сети. Реализация sockets в Windows называется Winsock. Winsock соответствует реализации sockets Беркли. Большинство функций - те же самые, но существуют небольшие различия в списках параметра и возвращаемых значений. В ОС Windows не реализованы некоторые из стандартных для UNIX служб и сервисов TCP/IP (например, сервер Telnet).
11.1.7. Интерфейсы пользователя
Интерфейс пользователя в UNIX был первоначально реализован в виде командной строки, а в Windows был сразу основан на GUI (что вытекает из названия ОС). Однако теперь и UNIX, и Windows поддерживают как символьные, так и графические интерфейсы.
Стандартная система управления окнами для систем UNIX - X Windows. X Windows не зависит от платформы и предоставляет API низкого уровня по имени (Xlib) и библиотеку более высокого уровня по (X Toolkit Intrinsics). В X-Windows выделяются сервер (который управляет отображением графической информации) и клиент (который является прикладной программой, использующей X Windows). Сервер и клиент могут работать на отдельных компьютерах, так что приложение может работать на мощном сервере, а вывод осуществляется на графической рабочей станции (Х-терминал, оборудованный только для отображения графики на экране.
Поскольку X Windows - набор инструментариев и библиотек, то он не имеет стандартов графического интерфейса пользователя, как Windows. Наиболее известная система управления окнами, основанная на X Windows - Motif. Motif управляет поведением окон и имеет набор средств управления интерфейса пользователя - widgets. Widgets включают широкий диапазон объектов интерфейса пользователя: кнопки, полосы прокрутки, меню, а также элементы многофункциональных возможностей типа Web-браузера.
11.1.8. Взаимодействие процессов
UNIX имеет несколько механизмов IPC, имеющих различные характеристики и соответствующие различным ситуациям. Общедоступная память, каналы и очереди сообщений используются для процессов, выполняющихся на одном компьютере. Для связи по сети - обычно используются сокеты.
Windows имеет много механизмов IPC, некоторые из которых не имеют аналогов в UNIX. Как и UNIX, для связи между процессами в одной ЭВМ Windows использует разделяемую память, каналы и события (эквивалент сигналам). Именованные каналы могут также использоваться для сетевой связи.
Другие механизмы IPC Windows - clipboard, DDE, СОМ. Они могут используются для локальной связи, но DDE и СОМ оба имеют сетевые возможности. Для сетевых задач используются также Windows Sockets.
Два дополнительных механизма IPC для Windows - RPC и mailslots. RPC предназначен для использования клиент-серверными приложениями. mailslots - области памяти, к которым программа может обращаться, используя стандартные файловые функции. mailslots эффективны для передачи маленьких сообщений.
И UNIX и Windows имеют обширный набор методов синхронизации потоков и процессов. Обе операционных системы используют семафоры для управления доступом к ресурсу, который может поддерживать ограниченное число пользователей. И UNIX, и Windows также используют mutex для взаимоисключающего доступа к ресурсу.
Для этой же цели Windows предлагает критические секции. Критические секции подобны взаимным исключениям, но доступ к ней ограничен потоками одного процесса.
UNIX и Windows имеют механизмы идентификации событий или ошибок. В UNIX, эти механизмы называются сигналами и используются для обычных событий, простого взаимодействия процессов и аварийных состояний (например, типа математических ошибок). Windows имеет два отдельных механизма:
-Механизм событий обрабатывает ожидаемые события, типа связи между двумя процессами.
-Механизм исключения обрабатывает нештатных ситуаций (например, завершение процесса пользователем, недействительный доступ к памяти и математические ошибки).
11.1.9. Многопользовательский режим
Одно ключевое различие между UNIX и Windows - реализация многопользовательского режима на одном компьютере. При входе в UNIX каждого нового пользователя стартует процесс оболочки (shell) для обслуживания его команд. ОС UNIX следит за пользователями и их процессами и предотвращает конфликты между ними.
При входе пользователя в Windows в интерактивном режиме создается начальный процесс для того пользователя (рабочий стол). Доступ к рабочему столу имеет только один зарегистрировавшийся пользователь. Однако, при использовании возможностей Терминального сервера или Citrix, Windows может работать в многопользовательском режиме, наподобие UNIX.
11.2. Операционная система OS/2
Совместный проект фирм IBM и Microsoft, OS/2 1.x разрабатывалась как операционная система для семейства персональных компьютеров Personal System/2. Младшие модели семейства были основаны на 16-разрядном процессоре 80286, поэтому вся ОС была полностью 16-битной.
Позднее разработчики фирмы IBM реализовали 32-битную OS/2 2.0, но для совместимости со старыми драйверами им пришлось сохранить 16-битную подсистему ввода/вывода. Напротив, разработчики фирмы Microsoft отказались от совместимости с 16-битными драйверами OS/2 1.x в создававшейся ими 32-битной версии OS/2, называвшейся OS/2 New Technology. Возможно, именно это техническое решение оказалось причиной разрыва партнерских отношений между Microsoft и IBM, в результате которого OS/2 NT вышла на рынок под названием Windows NT 3.1.
В конце 1994 года IBM выпустила третью версию OS/2 (OS/2 Warp 3. Warp - основа).
OS/2 разработана фирмой IBM для персональных компьютеров на основе системной прикладной архитектуры, ранее используемой для больших ЭВМ (mainframe). Это мультизадачная, однопользовательская, высоконадёжная ОС, обеспечивающая как текстовый, так и графический интерфейс пользователя.
OS/2 обеспечивает:
-поддержку графического интерфейса пользователя;
-мультизадачность (многопроцессность);
-многопоточную обработку нескольких потоков одного процесса;
-мультипроцессорность - до 16 процессоров;
-многопроцессорность - ЦП типа INTEL и PowerPC;
-виртуальную память сегментной организации.
-Диспетчеризация потоков (алгоритмы Round-Robin и адаптивный)
Структура OS/2 Warp 3.0 проиллюстрирована на рис.1. В OS/2 имеется несколько видов виртуальных машин для прикладных программ. Собственные 32- и 16-разрядные программы OS/2 выполняются на отдельных виртуальных машинах в режиме вытесняющей мультизадачности и могут общаться между собой. Прикладные программы DOS и Win16 могут запускаться на отдельных виртуальных машинах в мультизадачном режиме. Кроме того, можно запустить несколько программ Win16 на общей виртуальной машине Win16, где они работают в режиме невытесняющей мультизадачности. Разнообразные сервисные функции API OS/2, в том числе SOM (модель системных объектов), обеспечиваются с помощью системных динамических библиотек DLL, к которым можно обращаться без требующих затрат времени переходов между кольцами защиты. Ядро OS/2 предоставляет многие базовые сервисные функции API, обеспечивает поддержку файловой системы, управление памятью, и имеет диспетчер аппаратных прерываний. В ядре виртуальных DOS-машин (VDM-ядре) осуществляется эмуляция DOS и процессора 8086, а также управление VDM. Драйверы виртуальных устройств обеспечивают уровень аппаратной абстракции. Драйверы физических устройств напрямую взаимодействуют с аппаратурой.
Важной особенностью ОС OS/2 является высокопроизводительная файловая система HPFS, поддерживающая длинные имена файлов. Версия OS/2 Warp имеет встроенный доступ в сеть Internet. В OS/2 выполнятся прикладные программы Windows 3.1 и Win32s, но не могут выполняться приложения, работающие в среде Windows 95 или Windows NT.
11.3. Сравнительный анализ некоторых ОС
ОС | Мультизадачность | Многопотоковость | Многопроцессорность | Микроядро | Планирование FIFO | Планирование Round-Robin | Адаптивное планирование | Вложенные прерывания | Число приоритетов задач |
RMX | Вытесн | Нет | Нет | Нет | |||||
QNX | Вытесн | Нет | Нет | Да | Да | Да | Да | Да | |
Windows NT | Вытесн | Да | Да | Да (но большое) | Нет | Да | Да | Да | |
Windows СЕ 3.0 | Вытесн | Да | Нет | Да (но большое) | Да - для задач высшего приоритета | Да | Нет | Да | |
Neutrino | Вытесн | Да | Да | Да | Да | Да | Да | Да | |
Windows 95,98 | Невытесн. (Win16), вытесн. (Win32) | Да | Нет | Нет | Нет | Да | Да | Да | |
Mach | Вытесн | Да | Да | Да | Нет | Да | Да | Да | |
Unix SVR4 | Вытесн | Нет | Нет | Нет | Нет | Да | Да | Да | |
Digital Unix | Вытесн | Да | Да | Да | Нет | Да | Да | Да |
==================================================================================
ВОПРОСЫ:
1.Сравнительный анализ развития ОС Windows и UNIX
2.Сравнительный анализ архитектур и API ОС Windows и UNIX
3.Сравнительный анализ мультизадачности ОС Windows и UNIX
4.Сравнительный анализ файловых систем ОС Windows и UNIX
5.Сравнительный анализ пользовательских интерфейсов ОС Windows и UNIX
6.Сравнительный анализ механизмов синхронизации ОС Windows и UNIX
7.История создания и развития OS/2
8.Основные характеристики OS/2
9.Структура OS/2 Warp 3.0
10. Файловая система HPFS
11. Сравнительный анализ некоторых ОС
СОДЕРЖАНИЕ
ЧАСТЬ 1. Состав и структура системного программное обеспечение. 1
Тема 1. Введение в системное программное обеспечение (2 ч.). 1
Тема 2. Прикладные программные системы. 8
Тема 2. Прикладные программные системы (продолжение). Сетевое ПО. 12
Тема 3. Системы программирования. 17
ЧАСТЬ 2. Управление ресурсами ЭВМ... 23
Тема 4. Управление оперативной памятью в ОС.. 23
Тема 5. Файловые системы.. 29
Тема 6. Функции и классификация ОС.. 37
ЧАСТЬ 3. Примеры реализации операционных систем.. 42
Тема 7. Однозадачные ОС.. 42
Тема 8. Мультизадачные операционные системы.. 43
Тема 9. ОС семейства UNIX.. 46
Тема 9. (Продолжение). Примеры ОС UNIX.. 48
Тема 10. ОС семейства Windows. 55
Тема 11. Обзор современных операционных систем. 59