Автор: Пользователь скрыл имя, 02 Марта 2013 в 18:35, реферат
Описание работы
Операционная система в наибольшей степени определяет облик всей вычислительной системы в целом. Несмотря на это, пользователи, активно использующие вычислительную технику, зачастую испытывают затруднения при попытке дать определение операционной системе. Частично это связано с тем, что ОС выполняет две по существу мало связанные функции: обеспечение пользователю-программисту удобств посредством предоставления для него расширенной машины и повышение эффективности использования компьютера путем рационального управления его ресурсами.
Содержание
1. Введение 3 1.1 ОС как расширенная машина 3 1.2 ОС как система управления ресурсами 3 2. Классификация ОС 4 2.1 Особенности алгоритмов управления ресурсами 4 2.1.1. Поддержка многозадачности. 4 2.1.2. Поддержка многопользовательского режима. 4 2.1.3. Вытесняющая и невытесняющая многозадачность. 4 2.1.4. Поддержка многонитевости. 4 2.1.5. Многопроцессорная обработка. 5 2.2 Особенности аппаратных платформ 5 2.3 Особенности областей использования 6 2.4 Особенности методов построения 6 3. Сетевые операционные системы 8 3.1 Структура сетевой операционной системы 8 3.2 Одноранговые сетевые ОС и ОС с выделенными серверами 10 3.3 ОС для рабочих групп и ОС для сетей масштаба предприятия 11 4. Процессы и нити в распределенных системах 14 4.1 Понятие "нить" 14 4.2 Различные способы организации вычислительного процесса с использованием нитей 14 4.3 Вопросы реализации нитей 16 4.4 Нити и RPC 16 5. Современные концепции и технологии проектирования операционных систем 17 5.1 Требования, предъявляемые к ОС 90-х годов 17 5.1.1. Расширяемость 17 5.1.2. Переносимость 18 5.1.3. Совместимость 19 5.1.4. Безопасность 19 6. Операционные системы различных фирм производителей программного обеспечения 21 6.1 Семейство операционных систем UNIX 21 6.2 Микроядро Mach 23 6.2.1. История Mach 24 6.2.2. Цели Mach 24 6.2.3. Основные концепции Mach 24 6.2.4. Сервер Mach BSD UNIX 25 6.3 Сетевые продукты фирмы Novell 26 6.3.1. История и версии сетевой ОС NetWare 26 6.3.2. Версия NetWare 4.1 27 6.4 Семейство сетевых ОС компании Microsoft 29 6.4.1. Сетевые продукты Microsoft 29 6.4.2. Windows NT 4.0 30 6.4.3. Области использования Windows NT 30 6.4.4. Концепции Windows NT 31 6.4.5. Совместимость Windows NT с NetWare 41 6.5 Операционная система OS/2 42 6.5.1. История развития OS/2 и ее место на рынке 42 6.5.2. Битва Microsoft - IBM на рынке настольных ОС 42 6.5.3. OS/2 - постепенные улучшения 43 7. Заключение 44 Список литературы 46
Поддержка воспринимаемых человеком имен
системных ресурсов;
Разделение ресурсов
и данных между процессами;
Защита ресурсов
от несанкционированного доступа.
Не все структуры
данных в NT executive являются объектами. Объектами
сделаны только такие данные, которые
нужно разделять, защищать, именовать
или делать видимыми для программ пользовательского
режима ( с помощью системных функций).
Структуры, которые используются только
одним компонентом executive для выполнения
внутренних функций, не являются объектами.
Несмотря на всестороннее использование
объектов для представления разделяемых
ресурсов, Windows NT не является объектно-ориентированной
системой в строгом смысле. Большая часть
кода операционной системы написана на
С с целью обеспечения переносимости.
Несмотря на то, что С не поддерживает
непосредственно объектно-ориенти-
рованные конструкции, такие как динамическое
связывание типов данных, полиморфные
функции или наследование классов, эти
инструментальные средства были использованы
из-за их широкой распространенности.
Менеджер объектов
- это компонента NT executive, которая
ответственна за создание, удаление, защиту
и слежение за NT-объектами. Менеджер
объектов централизует операции управления
ресурсами, которые в противном
случае будут разбросаны по всей ОС.
Менеджер объектов NT выполняет
следующие функции:
Выделяет память
для объекта.
Присоединяет
к объекту так называемый дескриптор
безопасности, который определяет,
кому разрешено использовать объект,
и что они могут с ним
делать.
Создает и манипулирует
структурой каталога объектов, в котором
хранятся имена объектов.
Создает описатель
объекта и возвращает его вызывающему
процессу.
Процессы пользовательского
режима, включая подсистемы окружения,
должны иметь описатель объекта
перед тем, как их нити смогут использовать
этот объект. Использование описателей
для работы с системными ресурсами не
является новой идеей. Например, библиотеки
С и Паскаля (а также других языков) возвращают
описатели для открытых файлов. Аналогично
приложения Win32 используют различные типы
описателей для управления окнами, курсором
мыши, иконками. В обоих случаях описатели
служат косвенными указателями на системные
ресурсы; эта косвенность предохраняет
прикладные программы от рутинной работы
непосредственно с системными структурами
данных.
Каждый NT-объект
является объектом определенного типа.
Тип определяет данные, которые хранит
объект, и "родные" системные функции,
которые могут к нему применяться.
Для того, чтобы управлять различными
объектами единообразно, менеджер объектов требует,
чтобы каждый объект содержал несколько
полей стандартной информации в определенном
месте объекта. До тех пор, пока эти данные
имеются, менеджер объектов не заботится
о том, что еще хранится в объекте. Каждый
объект состоит из двух частей - заголовка
объекта и тела объекта, которые содержат
стандартные и переменные данные объекта
соответственно. Менеджер объектов работает
с заголовком объекта, а другие компоненты
executive работают с телами объектов тех типов,
которые они сами создают. Заголовок объекта
используется менеджером без учета типа
объекта. В заголовке объекта любого типа
содержится имя, каталог, дескриптор безопасности,
квоты на использование ресурсов, счетчик
открытых описателей, база данных открытых
описателей, признак постоянный/временный,
режим пользователя/ядра, указатель на
тип объекта.
Кроме заголовка
объекта, каждый объект имеет тело объекта,
формат и содержание которого уникально
определяется типом этого объекта;
у всех объектов одного и того же
типа одинаковый формат тела. При создании объекта
исполнительная часть может оперировать
данными в телах всех объектов этого типа.
6.4.4.4 Процессы
и нити
В разных ОС процессы
реализуются по-разному. Эти различия
заключаются в том, какими структурами
данных представлены процессы, как они именуются,
какими способами защищены друг от друга
и какие отношения существуют между ними.
Процессы Windows NT имеют следующие характерные
свойства:
Процессы Windows NT
реализованы в форме объектов,
и доступ к ним осуществляется
посредством службы объектов.
Процесс Windows NT имеет
многонитевую организацию.
Как объекты-процессы,
так и объекты-нити имеют встроенные
средства синхронизации.
Менеджер процессов
Windows NT не поддерживает между процессами
отношений типа "родитель-потомок".
В любой системе
понятие "процесс" включает следующее:
исполняемый код,
собственное адресное
пространство, которое представляет
собой совокупность виртуальных
адресов, которые может использовать
процесс,
ресурсы системы,
такие как файлы, семафоры и т.п., которые назначены процессу
операционной системой.
хотя бы одну
выполняемую нить.
Адресное пространство
каждого процесса защищено от вмешательства
в него любого другого процесса.
Это обеспечивается механизмами
виртуальной памяти. Операционная система, конечно, тоже защищена от прикладных
процессов. Чтобы выполнить какую-либо
процедуру ОС или прочитать что-либо из
ее области памяти, нить должна выполняться
в режиме ядра. Пользовательские процессы
получают доступ к функциям ядра посредством
системных вызовов. В пользовательском
режиме выполняются не только прикладные
программы, но и защищенные подсистемы
Windows NT.
В Windows NT процесс
- это просто объект, создаваемый
и уничтожаемый менеджером объектов.
Объект-процесс, как и другие объекты,
содержит заголовок, который создает и инициализирует
менеджер объектов. Менеджер процессов
определяет атрибуты, хранимые в теле
объекта-процесса, а также обеспечивает
системный сервис, который восстанавливает
и изменяет эти атрибуты.
В число атрибутов
тела объекта-процесса входят:
Идентификатор
процесса - уникальное значение, которое
идентифицирует процесс в рамках
операционной системы.
Токен доступа -
исполняемый объект, содержащий информацию
о безопасности.
Базовый приоритет
- основа для исполнительного приоритета нитей процесса.
Процессорная
совместимость - набор процессоров,
на которых могут выполняться
нити процесса.
Предельные значения
квот - максимальное количество страничной
и нестраничной системной памяти,
дискового пространства, предназначенного
для выгрузки страниц, процессорного
времени - которые могут быть использованы
процессами пользователя.
Время исполнения
- общее количество времени, в течение
которого выполняются все нити процесса.
Напомним, что
нить является выполняемой единицей,
которая располагается в адресном пространстве
процесса и использует ресурсы, выделенные
процессу. Подобно процессу нить в Windows
NT реализована в форме объекта и управляется
менеджером объектов.
Объект-нить имеет
следующие атрибуты тела:
Идентификатор
клиента - уникальное значение, которое идентифицирует
нить при ее обращении к серверу.
Контекст нити
- информация, которая необходима ОС
для того, чтобы продолжить выполнение
прерванной нити. Контекст нити содержит
текущее состояние регистров, стеков
и индивидуальной области памяти, которая используется
подсистемами и библиотеками.
Динамический
приоритет - значение приоритета нити
в данный момент.
Базовый приоритет
- нижний предел динамического приоритета
нити.
Процессорная
совместимость нитей - перечень типов
процессоров, на которых может выполняться
нить.
Время выполнения
нити - суммарное время выполнения
нити в пользовательском режиме и
в режиме ядра, накопленное за период
существования нити.
Состояние предупреждения
- флаг, который показывает, что нить
должна выполнять вызов асинхронной процедуры.
Счетчик приостановок
- текущее количество приостановок
выполнения нити.
Кроме перечисленных,
имеются и некоторые другие атрибуты.
Как видно из
перечня, многие атрибуты объекта-нити
аналогичны атрибутам объекта-процесса. Весьма сходны и сервисные
функции, которые могут быть выполнены
над объектами-процессами и объектами-нитями:
создание, открытие, завершение, приостановка,
запрос и установка информации, запрос
и установка контекста и другие функции.
6.4.4.5 Алгоритм
планирования процессов и нитей
В Windows NT реализована
вытесняющая многозадачность, при
которой операционная система не
ждет, когда нить сама захочет освободить
процессор, а принудительно снимает
ее с выполнения после того, как
та израсходовала отведенное ей время (квант), или если в очереди
готовых появилась нить с более высоким
приоритетом. При такой организации разделения
процессора ни одна нить не займет процессор
на очень долгое время.
Рис.
8.3. Граф состояний нити
В ОС Windows NT нить
в ходе своего существования может иметь одно
из шести состояний (рисунок 8.3). Жизненный
цикл нити начинается в тот момент, когда
программа создает новую нить. Запрос
передается NT executive, менеджер процессов
выделяет память для объекта-нити и обращается
к ядру, чтобы инициализировать объект-нить
ядра. После инициализации нить проходит
через следующие состояния:
Готовность. При поиске нити на выполнение
диспетчер просматривает только нити,
находящиеся в состоянии готовности, у
которых есть все для выполнения, но не
хватает только процессора.
Первоочередная
готовность (standby). Для каждого процессора
системы выбирается одна нить, которая
будет выполняться следующей (самая первая
нить в очереди). Когда условия позволяют,
происходит переключение на контекст
этой нити.
Выполнение. Как только происходит переключение
контекстов, нить переходит в состояние
выполнения и находится в нем до тех пор,
пока либо ядро не вытеснит ее из-за того,
что появилась более приоритетная нить
или закончился квант времени, выделенный
этой нити, либо нить завершится вообще,
либо она по собственной инициативе перейдет
в состояние ожидания.
Ожидание. Нить может входить в состояние
ожидания несколькими способами: нить
по своей инициативе ожидает некоторый
объект для того, чтобы синхронизировать
свое выполнение; операционная система
(например, подсистема ввода-вывода) может
ожидать в интересах нити; подсистема
окружения может непосредственно заставить
нить приостановить себя. Когда ожидание
нити подойдет к концу, она возвращается
в состояние готовности.
Переходное
состояние. Нить входит в переходное состояние,
если она готова к выполнению, но ресурсы,
которые ей нужны, заняты. Например, страница,
содержащая стек нити, может быть выгружена
из оперативной памяти на диск. При освобождении
ресурсов нить переходит в состояние готовности.
Завершение. Когда выполнение нити закончилось,
она входит в состояние завершения. Находясь
в этом состоянии, нить может быть либо
удалена, либо не удалена. Это зависит
от алгоритма работы менеджера объектов,
в соответствии с которым он и решает,
когда удалять объект. Если executive имеет
указатель на объект-нить, то она может
быть инициализирована и использована
снова.
Диспетчер ядра
использует для определения порядка
выполнения нитей алгоритм, основанный
на приоритетах, в соответствии с которым каждой
нити присваивается число - приоритет,
и нити с более высоким приоритетом выполняются
раньше нитей с меньшим приоритетом. В
самом начале нить получает приоритет
от процесса, который создает ее. В свою
очередь, процесс получает приоритет в
тот момент, когда его создает подсистема
той или иной прикладной среды. Значение
базового приоритета присваивается процессу
системой по умолчанию или системным администратором.
Нить наследует этот базовый приоритет
и может изменить его, немного увеличив
или уменьшив. На основании получившегося
в результате приоритета, называемого
приоритетом планирования, начинается
выполнение нити. В ходе выполнения приоритет
планирования может меняться.
Windows NT поддерживает
32 уровня приоритетов, разделенных на два класса - класс реального
времени и класс переменных приоритетов.
Нити реального времени, приоритеты которых
находятся в диапазоне от 16 до 31, являются
более приоритетными процессами и используются
для выполнения задач, критичных ко времени.
Каждый раз, когда необходимо
выбрать нить для выполнения, диспетчер
прежде всего просматривает очередь готовых
нитей реального времени и обращается
к другим нитям, только когда очередь нитей
реального времени пуста. Большинство
нитей в системе попадают в класс нитей
с переменными приоритетами, диапазон
приоритетов которых от 0 до 15. Этот класс
имеет название "переменные приоритеты"
потому, что диспетчер настраивает систему,
выбирая (понижая или повышая) приоритеты
нитей этого класса.
Алгоритм планирования нитей в Windows NT объединяет в себе
обе базовых концепции - квантование и
приоритеты. Как и во всех других алгоритмах,
основанных на квантовании,
каждой нити назначается квант, в течение
которого она может выполняться. Нить
освобождает процессор, если:
блокируется, уходя в состояние
ожидания;
завершается;
исчерпан квант;
в очереди готовых
появляется более приоритетная нить.
Использование динамических приоритетов, изменяющихся во времени, позволяет
реализовать адаптивное планирование,
при котором не дискриминируются интерактивные
задачи, часто выполняющие операции ввода-вывода
и недоиспользующие выделенные им кванты.
Если нить полностью исчерпала свой квант,
то ее приоритет понижается на некоторую
величину. В то же время приоритет нитей,
которые перешли в состояние ожидания,
не использовав полностью выделенный
им квант, повышается. Приоритет не изменяется,
если нить вытеснена более приоритетной
нитью.
Для того, чтобы
обеспечить хорошее время реакции
системы, алгоритм планирования использует
наряду с квантованием концепцию абсолютных приоритетов.
В соответствии с этой концепцией при
появлении в очереди готовых нитей такой,
у которой приоритет выше, чем у выполняющейся
в данный момент, происходит смена активной
нити на нить с самым высоким приоритетом.
В многопроцессорных системах
при диспетчеризации и планировании нитей
играет роль их процессорная совместимость:
после того, как ядро выбрало нить с наивысшим
приоритетом, оно проверяет, какой процессор
может выполнить данную нить и, если атрибут
нити "процессорная совместимость"
не позволяет нити выполняться ни на одном
из свободных процессоров, то выбирается
следующая в порядке приоритетов нить.
6.4.4.6 Сетевые
средства
Средства сетевого
взаимодействия Windows NT направлены на реализацию
взаимодействия с существующими типами сетей,
обеспечение возможности загрузки и выгрузки
сетевого программного обеспечения, а
также на поддержку распределенных приложений.