Сравнительная характеристика архитектуры windows и MacOS
ФГБОУВПО
Тульский государственный университет
КАФЕДРА
АВТОМАТИКИ И ТЕЛЕМЕХАНИКИ
СРАВНИТЕЛЬНЫЙ АНАЛИЗ АРХИТЕКТУРЫ WINDOWS И MAC OS
Контрольно-курсовая работа
по курсу
«Операционные системы»
Выполнил: студент группы 220691____________ Зверева А.Н.
Проверил:
К.Ф.-М.Н, доцент
____________ Сулимова
В.В.
Тула 2011
СОДЕРЖАНИЕ
1.ВВЕДЕНИЕ……………………………………………………
2. АРХИТЕКТУРА WINDOWS NT………………………………………………...7
2.1
Режим пользователя………………………………
2.2
Режим ядра……………………………………………………
2.3
Исполнительная подсистема……………
2.4
Менеджер объектов…………………………………
3. MAC OS X……………………………………………………………………….
3.1.
Управление памятью………………………………
3.2
Управление процессами и
3.3.
Ввод-вывод и файловая система… ……………………………………14
3.4.
Микроядро Darwin…………………………………… ………………...17
3.5. Службы ядра…………………………………………………………….20
4. ЗАКЛЮЧЕНИЕ……………………………………………………
5. СПИСОК ЛИТЕРАТУРЫ…………………………………
- ВВЕДЕНИЕ
Windows XP – операционная система от компании Microsoft, в ней было сделано объединение двух, ранее существовавших независимо, линеек W9x и NT. Назвали этот проект Whistler, сейчас он разделился на две линии: WindowsXP, которая пришла на замену W9x и W2kPro,и Windows.NET, пришедшую на замену NT Server.1 Название XP происходит от англ. eXPerience (опыт).2
Windows NT 3.1, Windows NT 3.5, Windows NT 3.51, Windows NT 4.0, Windows 2000,Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 и Windows 7являются частью семейства операционных систем на ядре NT. Все они являются операционными системами с вытесняющей многозадачностью. Они разработаны для работы как с однопроцессорными, так и с симметричными мультипроцессорными компьютерами. Для обработки запросов ввода\вывода используется пакетноуправляемый ввод/вывод, который применяет пакеты запросов ввода\вывода (IRP) и асинхронный ввод/вывод.
В основу семейства Windows NT положено разделение адресных пространств между процессами. Каждый процесс имеет возможность работать с выделенной ему памятью. Однако он не имеет прав для записи в память других процессов, драйверов и системного кода. Семейство Windows NT относится к операционным системам с вытесняющей многозадачностью, а не к операционным системам реального времени.3
Архитектура Windows NT имеет модульную структуру и состоит из двух основных уровней — компоненты, работающие в режиме пользователя и компоненты режима ядра. Программы и подсистемы, работающие в режиме пользователя имеют ограничения на доступ к системным ресурсам. Режим ядра имеет неограниченный доступ к системной памяти и внешним устройствам4. В режиме ядра приложению кроме прочего разрешено выделение памяти всем другим приложениям. Изменить важные данные в памяти компьютера может только приложение, работающее в режиме ядра. К этим данным относятся таблицы, содержащие сведения о границах областей памяти, выделенных всем остальным приложениям и сведения о запросах приложений на дополнительные области памяти. Системы Unix построены по модульному принципу, так же как и Windows XP Professional, поэтому необходим "главный менеджер" операционной системы, который называется ядром (kernel). Этот термин используется в любой ОС, в том числе и в Windows XP Professional. Основная задача ядра - планирование запуска задач на компьютере. Если одновременно работают несколько программ, то ядро выявляет программу с наибольшим приоритетом и запускает ее в первую очередь. Именно ядро несет ответственность за своевременную загрузку процессора. В режим ядра были перемещены три части ОС:
- USER (менеджер пользовательского интерфейса)
- GDI (менеджер графики)
3) Драйвер видеоплаты.
Модуль USER запускается в ответ на щелчок или перетаскивание управляющего элемента (окно, кнопка, бегунок, переключатель, флажок, список, раскрывающийся список или панель инструментов). Модуль GDI обеспечивает низкоуровневые функции графического пользовательского интерфейса. В этом модуле обрабатываются растры, цвета, виды курсора, значки и шрифты.
Перенос драйверов графических плат и принтеров в режим ядра - неудачная затея, но Microsoft обеспечила для Windows XP Professional несколько программных инструментов, помогающих во время разработки драйверов. Поэтому в Windows XP Professional компоненты режима ядра стали стабильнее и сократилось число причин для появления "голубого экрана", однако модули пользовательского режима остались на прежнем уровне надежности (ведь их крах не сказывается на работе Windows XP Professional в целом).5 Ядро системы NT называют гибридным ядром или макроядром. Архитектура включает в себя само ядро, уровень аппаратных абстракций (HAL), драйверы и ряд служб (Executives), которые работают в режиме ядра (Kernel-mode drivers) или в пользовательском режиме (User-mode drivers).6 Уровень HAL (hardware abstraction layer, уровень абстрагирования от оборудования) обязан сгладить различия между разными моделями определенного семейства микропроцессоров. Все компьютеры имеют ОС с графическим интерфейсом, но на этом сходство заканчивается. Поставляемый с Windows XP Professional уровень HAL поддерживает два процессора. Теоретически NT обеспечивает 32 процессора, однако для этого потребуется другой HAL. Когда появится новое оборудование, например 256-разрядная версия шины PCI, в Windows XP Professional потребуется только новый уровень HAL для этого оборудования.
Windows XP Professional, как и во всех остальных ОС, поддержка оборудования распределена по программным модулям, называемым драйверами устройств (device driver). Многие руководства по Windows XP Professional не относят драйверы к аппаратно-зависимой части ОС. 7
Пользовательский режим Windows NT состоит из подсистем, передающих запросы ввода/вывода соответствующему драйверу режима ядра посредством менеджера ввода/вывода. Есть две подсистемы на уровне пользователя: подсистема окружения (запускает приложения, написанные для разных операционных систем) и интегрированная подсистема (управляет особыми системными функциями от имени подсистемы окружения). Режим ядра имеет полный доступ к аппаратной части и системным ресурсам компьютера. И также предотвращает доступ к критическим зонам системы со стороны пользовательских служб и приложений.8
Mac
OS X — POSIX-совместимая
Mac OS X является десятой основной версией операционной системы от Apple для компьютеров Macintosh. Предыдущие операционные системы Macintosh были названы с использованием арабских цифр, например, Mac OS 8 и Mac OS 9. Буква "Х" в названии Mac OS X's относится к числу10, римской цифрой.10
В Mac OS X используется вытесняющая многозадачность и защита памяти, позволяющие запускать несколько процессов, которые не могут прервать или повредить друг друга. На архитектуру Mac OS X повлияла OpenSTEP, которая была задумана как портируемая операционная система
Mac OS X также
включает среду разработки
Основами Mac OS X являются:
Подсистема с открытым кодом — Darwin (ядро Mach, набор утилит BSD).
Среда программирования Core Foundation (Carbon API, Cocoa API и Java API).
Графическая среда Aqua (QuickTime, Quartz Extreme и OpenGL).
Технологии CoreImage, CoreAudio и CoreData.
Mac
OS X является полноценной,
Архитектура Mac OS X имеет явно выраженную иерархическую структуру.12 В Mac OS X используется вытесняющая многозадачность и защита памяти, позволяющие запускать несколько процессов, которые не могут прервать или повредить друг друга. На архитектуру Mac OS X повлияла OpenSTEP, которая была задумана как портируемая операционная система. К примеру, NeXTSTEP была портирована с оригинальной платформы 68k компьютера NeXT, до того как NeXTSTEP была куплена Apple. Так и OpenSTEP была портирована на PowerPC в рамках проекта Rhapsody.13
2. АРХИТЕКТУРА WINDOWS NT
2.1 Режим пользователя
Режим
пользователя состоит из подсистем,
которые передают запросы ввода\вывода
соответствующему драйверу режима ядра
посредством менеджера Ввода-
Подсистема окружения
Подсистема окружения состоит из следующих подсистем — подсистема
Win32, подсистема OS/2 и подсистема POSIX. Подсистема окружения Win32 запускает 32-разрядные Windows приложения. Она содержит
консоль и поддержку текстового окна, обработку ошибок для всех других подсистем окружения. Поддерживает VDM (Virtual DOS Machine), которая позволяет запускать 16-разрядные DOS и Windows(Win16) приложения. VDM запускается в своем собственном адресном пространстве и эмулирует систему MS-DOS, запущенную на компьютере с процессором Intel 80486. Программы Win16 запускаются в режиме Win16 VDM. Каждая программа запускается в одном процессе с использованием одного адресного пространства, но для каждой программы используется свой отдельный поток. Однако Windows NT позволяет запускать Win16 программы в отдельных Win16 VDM процессах, реализуя вытесняющую многозадачность. Процесс подсистемы окружения Win32 — csrss.exe также включает в себя функциональность менеджера окон, то есть обрабатывает входящие события, такие как нажатие клавиш клавиатуры и мыши, и передает их на обработку соответствующим приложениям. Каждое приложение само производит перерисовку окон в ответ на эти сообщения.
Подсистема окружения OS/2 поддерживает неграфические 16-разрядные приложения операционной системы OS/2 и эмулирует систему OS/2 2.1.x.
Подсистема окружения POSIX поддерживает приложения написанные в соответствии со стандартом POSIX.1
Интегрированная подсистема (Integral subsystem) следит за некоторыми функциями операционной системы от имени подсистемы окружения. Состоит из подсистемы безопасности, службы рабочей станции и службы сервера. Служба безопасности обращается с маркерами доступа, позволяет или запрещает доступ к учетной записи пользователя, обрабатывает запросы авторизации и инициирует процесс входа пользователя в систему. Служба Рабочая станция обеспечивает доступ компьютера к сети — является API для сетевого редиректора (ПО эмулирующее доступ к удаленной файловой системе как к локальной). Служба Сервер позволяет компьютеру предоставлять сетевые сервисы.
2.2 Режим ядра
Режим ядра Windows NT имеет полный доступ к аппаратной части компьютера и системным ресурсам. Работает в защищенной области памяти. Контролирует потоки, управляет памятью и взаимодействием с аппаратной частью. Предотвращает доступ к критическим областям памяти со стороны приложений и служб пользовательского режима. Для выполнения подобных операций процесс пользовательского режима должен попросить режим ядра выполнить её от своего имени.
Архитектура x86 поддерживает 4 уровня привилегий — от 0 до 3 , но используются только 0 и 3 уровень. Режим пользователя использует уровень 3, а режим ядра — 0. Это было сделано для возможности переноса на платформу RISC, которая использует только два уровня привилегий. Режим ядра состоит из исполнительных служб, которые представляют собой различные модули, выполняющие определенные задачи, драйвера ядра, само ядро и уровень аппаратных абстракций HAL
2.3 Исполнительная подсистема
Работает
с вводом\выводом, менеджером объектов,
управлением над процессами и
безопасностью. Неофициально делится
на несколько подсистем — менеджер
кэша, менеджер конфигурации, менеджер
ввода\вывода, вызов локальных процедур,
менеджер памяти, монитор безопасности.
Системные службы, то есть системные вызовы
реализованы на этом уровне, за исключением
нескольких вызовов, которые вызывают
непосредственно ядро для большей производительности.
В данном контексте термин «служба» относится
к вызываемым подпрограммам, или набору
вызываемых подпрограмм. Они отличаются
от служб, выполняемых в режиме пользователя,
которые в какой-то мере являются аналогом
демонов в UNIX- подобных системах.
2.4 Менеджер объектов
Это исполнительная подсистема, к которой обращаются все остальные модули исполнительной подсистемы, в частности системные вызовы, когда им необходимо получить доступ к ресурсам Windows NT. Менеджер объектов служит для уменьшения дублирования объектов, что может привести к ошибкам в работе системы. Для менеджера объектов каждый ресурс системы является объектом — будь то физический ресурс типа периферийного устройства, файловой системы, или логический ресурс — файл и др. Каждый объект имеет свою структуру, или тип объекта.
Создание объекта делится на две стадии — создание и вставка. Создание — создается пустой объект и резервируются необходимые ресурсы, например имя в пространстве имен. Если создание пустого объекта произошло успешно, то подсистема, ответственная за создание объекта заполняет его. Если инициализация успешна, то подсистема заставляет менеджер объектов произвести вставку объекта — то есть сделать его доступным по своему имени или дескриптору.14
3. MAC OS X
3.1. Управление памятью
При работе с реальной памятью Mac OS обеспечивает работу с адресным пространством размером 16 Мбайт (24-разрядный адрес). Разумеется, все адресное пространство не обязательно поддерживается реальной памятью, заполнение адресного пространства реальной памятью может быть фрагментировано. До 8 Майт в верхней части адресного пространства составляет пространство ввода-вывода.
Память в такой модели выделяется разделами. Нижняя часть памяти (от адреса 0) составляет системный раздел. В нем размещены глобальные переменные системы и системная куча. В системной куче выделяется память для буферов, системных структур данных и системных кодовых сегментов.
Каждому приложению выделяется раздел приложения. В разделе приложения содержится:
- управляющая информация приложения, так называемый "мир A5" (A5 world);
- стек приложения;
- куча приложения.
"Мир
A5" (название происходит от
имени регистра
- глобальные переменные приложения;
- глобальные переменные QuickDraw (подсистемы экранного отображения);
- параметры приложения;
- таблицу переходов.
Стек приложения используется для сохранения адресов возврата и выделения памяти для локальных переменных. В куче размещаются коды и данные приложения. Кроме того, приложению могут выделяться по запросу блоки памяти вне его раздела.
Память
в куче выделяется блоками переменной
длины. Блоки могут быть перемещаемыми
или неперемещаемыми. Обращение
к неперемещаемому блоку
Перемещаемый блок может также быть объявлен удаляемым: системе разрешается удалять его при нехватке памяти в куче приложения. Работая с удаляемым блоком, программист должен всякий раз, начиная работу с ним, проверить его наличие в памяти и отменить признак, разрешающий удаление.
Введение в компьютеры фирмы Apple динамической трансляции адресов позволило перейти к 32-разрядному размеру адреса и, таким образом, обеспечивать виртуальное адресное пространство размером в 4 Гбайт. Динамическая трансляция адресов использует страничную модель виртуальной памяти для расширения адресного пространства. Страничный обмен использует алгоритм LRU. Структура нижней части адресного пространства (до границы 16 Мбайт) - такая же, как и в 24-разрядной модели, что обеспечивает прозрачное выполнение 24-разрядных приложений в новой среде. Для 32-разрядных приложений могут выделяться дополнительные разделы выше 16-Мбайтной границы.
В описанной выше модели реальной памяти, расширенной затем за счет динамической трансляции адресов, сложилась сегментная архитектура выполнения приложений, которую называют "классической" архитектурой 68K. Приложение в этой архитектуре состоит из сегментов размером до 32 Кбайт каждый. Сегментная архитектура поддерживается Менеджером Сегментов в составе Mac OS. Для каждого приложения автоматически создается и загружается при запуске Сегмент 0, остальные сегменты загружаются по требованию.
Связь между сегментами обеспечивается через таблицу переходов (jump table), которая размещается вместе с "миром A5". Таблица переходов содержит адреса входных точек в сегментах, таким образом, обращения к процедурам в других сегментах производятся через таблицу переходов. Сегменты размещаются в перемещаемых блоках памяти в куче приложения и, таким образом, могут быть перемещены в памяти с коррекцией содержимого таблицы переходов. Загрузка сегментов производится автоматически при первом обращении к любой входной точке сегмента. Сегмент может быть также и выгружен из памяти, но это приложение должно сделать явным образом: выполнить системный вызов, помечающий сегмент как удалаямый. Помеченный таким образом сегментный блок может быть удален из памяти при нехватке памяти.
3.2 Управление процессами и нитями
Mac
OS во всех своих версиях являлась системой
с кооперативной многозадачностью. Процессом
в системе является запущенное приложение
или, в некоторых случаях, открытый аксессуар
рабочего стола. В каждый момент только
один процесс находится на переднем плане
- тот, с которым взаимодействует пользователь,
остальные являются фоновыми. Возможны
также только-фоновые процессы, разработанные
без пользовательского интерфейса. Переключение
процессов происходит только в том случае,
если процесс переднего плана приостанавливается,
если он выдает системный вызов WaitNextEvent или
Другой
формой, использующей процессорный ресурс,
являются в Mac OS задачи (task). Задачи представляют
собой обработчики прерываний. Приложение
имеет возможность установить собственную
обработку некоторых
- Менеджером Времени, который позволяет приложению выполнять задачи через заданные интервалы времени;
- Менеджером Регенерации (Vertical Retrace Task), который позволяет выполнять задачи между циклами восстановления изображения на экране;
- Менеджером Уведомления (Notification Manager), который обеспечивает как для процессов, так и для задач авральную сигнализацию пользователю (например, в случае ошибки);
- Менеджером Устройств, который дает возможность драйверам обрабатывать прерывания от устройств.
Все эти менеджеры используют установленную приложениями информацию о задачах, помещаемую в системные очереди.
Когда
задача получает управление, она не
обязательно выполняется в
3.3. Ввод-вывод и файловая система
Корневой структурой в управлении вводом-выводом является Таблица Устройств, неперемещаемая в системной куче. Каждый элемент Таблицы Устройств адресует один Блок Управления Драйвером. Блок Управления Драйвером является перемещаемым в системной куче и содержит адрес тела драйвера и адрес начала очереди запросов к драйверу. Драйверы бывают синхронные и асинхронные. Первые обслуживают обычно символьные устройства и полностью завершают транзакцию ввода-вывода до возвращения управления. Вторые применяются для блочных устройств и только инициируют операцию ввода-вывода; эти драйверы используют прерывания от устройств для того, чтобы вновь получить управление и завершить транзакцию.
Запросы
на ввод-вывод имеют стандартную
форму и выстраиваются в
Все операции, выполняемые драйвером, сводятся к нескольким видам, и каждый драйвер должен иметь входные точки в процедуры обработки следующих видов запросов:
- открытие - выделение памяти и инициализация устройства;
- закрытие - деактивизация драйвера и устройства;
- управление - выполнение специфических для устройства функций
- статус - получение информации от драйвера, эта процедура специфична для устройства и может быть необязательной;
- базисные (prime) операции - ввод и вывод, эта процедура также необязательна и может обеспечивать либо ввод, либо вывод, либо и то и другое.
Файловые системы Mac OS называются Иерархическими Файловыми Системами - HFS (Hierarchical File System) и HFS Plus. Как и файл программы, любой файл состоит из двух ответвлений (fork) - ресурсов и данных. В частном случае одно из ответвлений может быть пустым. Ответвление данных не структурировано, ответвление ресурсов содержит карту ресурсов и сами ресурсы, файл может иметь до 2700 ресурсов. Если, например, файл является файлом приложения, ресурсы описывают меню и диалоговые окна приложения, его иконки, события и т.д. и содержат исполняемый код приложения; если файл является, например, документом, ответвление ресурсов содержит размещение окна документа, иконки, шрифты и т.д. Строго говоря, граница между ресурсами и данными не очень четкая. Информация файла может быть помещена как в ответвление данных, так и в ответвление ресурсов. В ответвление ресурсов помещаются те данные, которые ограничены по размеру и количеству значений.
Дисковое пространство состоит из секторов размером по 512 байт каждый, но распределение дисковой памяти ведется кластерами (в Mac OS они называются блоками распределения). Блок распределения содержит целое число смежных секторов. Размер блока распределения фиксирован для данного тома.
Каждый том физической файловой системы HFS имеет заголовок тома, содержащий общую информацию о томе, такую как: дата создания и общий размер тома, число файлов на томе, а также расположение остальных управляющих структур файловой системы. Заголовок всегда располагается в секторе 2, копия заголовка размещается в конце тома.
HPFS Plus для
управления размещением