Сравнительная характеристика архитектуры windows и MacOS

Автор работы: Пользователь скрыл имя, 21 Ноября 2011 в 18:49, курсовая работа

Описание

Windows XP – операционная система от компании Microsoft, в ней было сделано объединение двух, ранее существовавших независимо, линеек W9x и NT. Назвали этот проект Whistler, сейчас он разделился на две линии: WindowsXP, которая пришла на замену W9x и W2kPro,и Windows.NET, пришедшую на замену NT Server.1 Название XP происходит от англ. eXPerience (опыт)

Содержание

1.ВВЕДЕНИЕ………………………………………………………………………...3
2. АРХИТЕКТУРА WINDOWS NT………………………………………………...7
2.1 Режим пользователя………………………………………………………7
2.2 Режим ядра………………………………………………………………...9
2.3 Исполнительная подсистема……………………………………………..9
2.4 Менеджер объектов……………………………………………………..10
3. MAC OS X……………………………………………………………………….10
3.1. Управление памятью…………………………………………………...10
3.2 Управление процессами и нитями……………………………………..13
3.3. Ввод-вывод и файловая система………………………………………14
3.4. Микроядро Darwin……………………………………………………...17
3.5. Службы ядра…………………………………………………………….20
4. ЗАКЛЮЧЕНИЕ……………………………………………………………….....21
5. СПИСОК ЛИТЕРАТУРЫ……………………………………………………....24

Работа состоит из  1 файл

итог.doc

— 156.50 Кб (Скачать документ)

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" (название происходит от  имени регистра микропроцессора  M 68К, который используется для  адресации) содержит:

  • глобальные переменные приложения;
  • глобальные переменные QuickDraw (подсистемы экранного отображения);
  • параметры приложения;
  • таблицу переходов.

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

Память  в куче выделяется блоками переменной длины. Блоки могут быть перемещаемыми  или неперемещаемыми. Обращение  к неперемещаемому блоку производится по прямому адресу. Обращение к  перемещаемому блоку производится с применением косвенной адресации через, так называемый, главный блок указателей (master pointer block). Для каждого приложения система создает такой блок определенного по умолчанию размера, размер блока может быть увеличен самим приложением. Такой способ выделения памяти приводит к образованию "внешних дыр", которые могут уменьшать объем доступной для приложения памяти. Для борьбы с этим явлением система производит (при нехватке памяти) дефрагментацию кучи - переписывает в памяти все перемещаемые блоки таким образом, чтобы внешние дыры слились в одну свободную область в верхней части кучи. При переносе блоков корректируется главный блок указателей, таким образом, перенос остается прозрачным для приложения. Наличие в куче неперемещаемых блоков снижает эффективность сжатия кучи, поэтому система стремится разместить все перемещаемые блоки в нижней части кучи. Если при размещении перемещаемого блока оказывается, что то место в нижней части кучи, на которое он претендует, занято перемещаемым блоком, система переносит перемещаемый блок в другое место и освобождает место для неперемещаемого.

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

Введение  в компьютеры фирмы Apple динамической трансляции адресов позволило перейти  к 32-разрядному размеру адреса и, таким  образом, обеспечивать виртуальное  адресное пространство размером в 4 Гбайт. Динамическая трансляция адресов использует страничную модель виртуальной памяти для расширения адресного пространства. Страничный обмен использует алгоритм LRU. Структура нижней части адресного пространства (до границы 16 Мбайт) - такая же, как и в 24-разрядной модели, что обеспечивает прозрачное выполнение 24-разрядных приложений в новой среде. Для 32-разрядных приложений могут выделяться дополнительные разделы выше 16-Мбайтной границы.

     В описанной выше модели реальной памяти, расширенной затем за счет динамической трансляции адресов, сложилась сегментная архитектура выполнения приложений, которую называют "классической" архитектурой 68K. Приложение в этой архитектуре состоит из сегментов размером до 32 Кбайт каждый. Сегментная архитектура поддерживается Менеджером Сегментов в составе Mac OS. Для каждого приложения автоматически создается и загружается при запуске Сегмент 0, остальные сегменты загружаются по требованию.

     Связь между сегментами обеспечивается через  таблицу переходов (jump table), которая размещается вместе с "миром A5". Таблица переходов содержит адреса входных точек в сегментах, таким образом, обращения к процедурам в других сегментах производятся через таблицу переходов. Сегменты размещаются в перемещаемых блоках памяти в куче приложения и, таким образом, могут быть перемещены в памяти с коррекцией содержимого таблицы переходов. Загрузка сегментов производится автоматически при первом обращении к любой входной точке сегмента. Сегмент может быть также и выгружен из памяти, но это приложение должно сделать явным образом: выполнить системный вызов, помечающий сегмент как удалаямый. Помеченный таким образом сегментный блок может быть удален из памяти при нехватке памяти.

3.2 Управление процессами  и нитями

     Mac OS во всех своих версиях являлась системой с кооперативной многозадачностью. Процессом в системе является запущенное приложение или, в некоторых случаях, открытый аксессуар рабочего стола. В каждый момент только один процесс находится на переднем плане - тот, с которым взаимодействует пользователь, остальные являются фоновыми. Возможны также только-фоновые процессы, разработанные без пользовательского интерфейса. Переключение процессов происходит только в том случае, если процесс переднего плана приостанавливается, если он выдает системный вызов WaitNextEvent или EventAvail, но в системной очереди событий нет для него сообщений. Только при выполнении этих системных вызовов возможно переключение контекста. Различается переключение контекста значительное (major) и незначительное (minor). Первое происходит в том случае, если фоновый процесс становится процессом переднего плана. В этом случае ОС посылает процессу переднего плана "событие приостанова". Обрабатывая это событие, процесс переднего плана может выполнить требуемые прикладные операции, связанные с переходом на задний план.

     Другой  формой, использующей процессорный ресурс, являются в Mac OS задачи (task). Задачи представляют собой обработчики прерываний. Приложение имеет возможность установить собственную  обработку некоторых прерываний. Пользовательская обработка прерываний поддерживается:

  • Менеджером Времени, который позволяет приложению выполнять задачи через заданные интервалы времени;
  • Менеджером Регенерации (Vertical Retrace Task), который позволяет выполнять задачи между циклами восстановления изображения на экране;
  • Менеджером Уведомления (Notification Manager), который обеспечивает как для процессов, так и для задач авральную сигнализацию пользователю (например, в случае ошибки);
  • Менеджером Устройств, который дает возможность драйверам обрабатывать прерывания от устройств.

     Все эти менеджеры используют установленную  приложениями информацию о задачах, помещаемую в системные очереди.

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

3.3. Ввод-вывод и файловая система

     Корневой  структурой в управлении вводом-выводом  является Таблица Устройств, неперемещаемая в системной куче. Каждый элемент  Таблицы Устройств адресует один Блок Управления Драйвером. Блок Управления Драйвером является перемещаемым в системной куче и содержит адрес тела драйвера и адрес начала очереди запросов к драйверу. Драйверы бывают синхронные и асинхронные. Первые обслуживают обычно символьные устройства и полностью завершают транзакцию ввода-вывода до возвращения управления. Вторые применяются для блочных устройств и только инициируют операцию ввода-вывода; эти драйверы используют прерывания от устройств для того, чтобы вновь получить управление и завершить транзакцию.

Запросы на ввод-вывод имеют стандартную  форму и выстраиваются в очереди  к устройствам. Очереди управляются  Менеджером Устройств по дисциплине FCFS. Различают запросы асинхронные, синхронные и неотложные. Асинхронный  запрос просто ставится в очередь, после чего управление возвращается выдавшему его приложению. Синхронный запрос переводит приложение в ожидание до выполнения запроса. (Синхронный/асинхронный тип запроса не связан с синхронным/асинхронным типом драйвера.) Неотложный запрос передается Менеджером Устройств прямо на драйвер в обход очереди. Поскольку это может произойти в тот момент, когда драйвер обрабатывает другой запрос, драйвер, которому могут посылаться неотложные запросы, должен быть реентерабельным.

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

  • открытие - выделение памяти и инициализация устройства;
  • закрытие - деактивизация драйвера и устройства;
  • управление - выполнение специфических для устройства функций
  • статус - получение информации от драйвера, эта процедура специфична для устройства и может быть необязательной;
  • базисные (prime) операции - ввод и вывод, эта процедура также необязательна и может обеспечивать либо ввод, либо вывод, либо и то и другое.

     Файловые  системы Mac OS называются Иерархическими Файловыми Системами - HFS (Hierarchical File System) и HFS Plus. Как и файл программы, любой файл состоит из двух ответвлений (fork) - ресурсов и данных. В частном случае одно из ответвлений может быть пустым. Ответвление данных не структурировано, ответвление ресурсов содержит карту ресурсов и сами ресурсы, файл может иметь до 2700 ресурсов. Если, например, файл является файлом приложения, ресурсы описывают меню и диалоговые окна приложения, его иконки, события и т.д. и содержат исполняемый код приложения; если файл является, например, документом, ответвление ресурсов содержит размещение окна документа, иконки, шрифты и т.д. Строго говоря, граница между ресурсами и данными не очень четкая. Информация файла может быть помещена как в ответвление данных, так и в ответвление ресурсов. В ответвление ресурсов помещаются те данные, которые ограничены по размеру и количеству значений.

     Дисковое  пространство состоит из секторов размером по 512 байт каждый, но распределение дисковой памяти ведется кластерами (в Mac OS они называются блоками распределения). Блок распределения содержит целое число смежных секторов. Размер блока распределения фиксирован для данного тома.

     Каждый  том физической файловой системы HFS имеет заголовок тома, содержащий общую информацию о томе, такую  как: дата создания и общий размер тома, число файлов на томе, а также  расположение остальных управляющих  структур файловой системы. Заголовок  всегда располагается в секторе 2, копия заголовка размещается в конце тома.

HPFS Plus для  управления размещением информации  на томе использует специальные  файлы, которые размещаются не  на фиксированных позициях в  томе, а в произвольных местах  пространства данных. Различаются следующие специальные файлы.

Информация о работе Сравнительная характеристика архитектуры windows и MacOS