Конспект лекций по дисциплине «Операционные системы и среды»
Вид материала | Конспект |
2.2.Объектная модель 2.3.Симметричная мультипроцессорная обработка |
- Конспект лекций по дисциплине " Операционные системы", 1459.26kb.
- Ые системы", "Операционные системы, среды и оболочки" и "Операционные системы и системное, 1294.27kb.
- Рабочая программа по учебной дисциплине Операционные системы, среды и оболочки наименование, 623.3kb.
- В. Ф. Панин Конспект лекций по учебной дисциплине "Теоретические основы защиты окружающей, 1559.17kb.
- Программа предназначена для изучения учебного курса по дисциплине "Операционные системы,, 53.62kb.
- Методические указания для выполнения Курсовой работы по дисциплине «Операционные системы», 72.86kb.
- Программа по дисциплине «Технологии программирования и операционные системы», 42.87kb.
- Вопросы к экзамену по дисциплине «Операционные системы и среды», 34.81kb.
- Экзаменационные билеты по дисциплине «операционные системы и среды», 429.29kb.
- Конспект лекций по дисциплине «Маркетинг», 487.79kb.
2.2.Объектная модель
В своей книге "Создание объектно-ориентированного программного обеспечения" Бертран Мейер (Bertrand Meyer) характеризует ОС как программы, "над которыми ничего нет" ("have no top")3. Как и в случае других больших программных систем, трудно найти одну "главную программу", которая управляет всей ОС. Таким образом, вместо того, чтобы разрабатывать такую систему сверху вниз, по объектно-ориентированной методологии сначала рассматривают данные, с которыми должна работать программа для выполнения своей задачи. Для ОС такими данными являются системные ресурсы — файлы, процессы, блоки памяти и т. д.
Основная цель разработки системы с ориентацией на данные — это создание программного обеспечения, которое можно было бы легко (и дешево) изменять. Насколько важна способность к модификации, становится ясно, если принять во внимание часто приводимую статистику, согласно которой 70% цены программных продуктов падает на сопровождение. Сопровождение включает в себя введение новых возможностей, модификацию форматов данных, исправление ошибок и адаптацию к новому оборудованию.
Один из способов минимизации необходимых изменений в объектно-ориентированных программах — это сокрытие физического представления данных внутри объектов. Объект (object) — это структура данных, физический формат которой скрыт в определении типа. Он имеет набор свойств, называемых атрибутами (attributes), и с ним работает группа сервисов.
Хотя Windows 2000 не является в строгом смысле объектно-ориентированной системой (как определяет это понятие Мейер), она использует объекты для представления системных ресурсов. Каждый системный ресурс, который могут совместно использовать несколько процессов, — файлы, память и физические устройства — реализован как объект и обрабатывается объектными сервисами. Такой подход уменьшает влияние изменений, которые могут происходить в системе с течением времени. Например, если изменение в ОС вызвано изменением в аппаратуре, то необходимо изменить только объект, представляющий данный аппаратный ресурс, и его сервисы; код, который использует объект, не нуждается в модификации. Аналогично, если нужно ввести в систему поддержку нового устройства, создается новый объект, и добавление его к системе не нарушает существующего кода.
Помимо того, что уменьшается влияние изменений, построение ОС на основе объектов имеет еще ряд несомненных преимуществ:
- Доступ ОС к ресурсам и работа с ними унифицированы. Создание, удаление и ссылка на объект-событие осуществляется так же, как и для объекта-процесса: с использованием описателей (handle) объектов. И поскольку каждый ресурс — это объект, контроль использования ресурсов сводится к отслеживанию создания и использования объектов.
- Упрощается защита, так как для всех объектов она осуществляется одинаково. При попытке доступа к объекту подсистема защиты вмешивается и проверяет допустимость операции, независимо от того, является ли объект процессом, секцией совместно используемой памяти или коммуникационным портом.
- Объекты предоставляют удобную и унифицированную парадигму для совместного использования ресурсов двумя или несколькими процессами. Для работы с объектами любого типа используются описатели объектов. Два процесса совместно используют объект тогда, когда каждый из них открыл его описатель. ОС может отслеживать количество описателей, открытых для данного объекта, чтобы определить, действительно ли он все еще используется. После этого система может удалить объекты, которые более не используются.
2.3.Симметричная мультипроцессорная обработка
Многозадачность — это техника, применяемая ОС для использования одного процессора несколькими потоками управления. Однако, если у компьютера имеется более одного процессора, то от модели многозадачности следует перейти к модели мультипроцессорной обработки (multiprocessing). Компьютер, имеющий два процессора, может выполнять два потока одновременно. Таким образом, если многозадачная ОС только создает иллюзию одновременного выполнения нескольких потоков, то ОС с мультипроцессорной обработкой в действительности выполняет несколько потоков одновременно — по одному потоку на каждом процессоре.
ОС с мультипроцессорной обработкой делятся на две категории — с асимметричной либо симметричной обработкой, как показано на рис. 2-5.
Операционные системы с асимметричной мультипроцессорной обработкой (asymmetric multiprocessing, ASMP) обычно выбирают для исполнения собственного кода один и тот же процессор (например А), в то время как другие процессоры выполняют только пользовательские задачи. Так как код ОС исполняется на одном процессоре, то ОС ASMP довольно просто создать, усовершенствовав существующую однопроцессорную ОС. Особенно хорошо ОС ASMP подходят для работы на асимметричном оборудовании, например, процессоре, к которому подключен сопроцессор, или на двух процессорах, совместно использующих не всю доступную память. Однако такую ОС трудно сделать переносимой. Аппаратура разных производителей (и даже разные версии аппаратуры одного производителя) имеет тенденцию различаться по типу и степени асимметрии. Либо производители оборудования должны ориентироваться на одну ОС, либо ОС придется постоянно переписывать для каждой аппаратной платформы.
Системы с симметричной мультипроцессорной обработкой (symmetric multiprocessing, SMP), к которым относится и Windows 2000, позволяют коду ОС системы выполняться на любом свободном процессоре или на всех процессорах одновременно, причем каждому из процессоров доступна вся память. Такой подход полнее реализует возможности нескольких процессоров, так как сама ОС может использовать значительную часть процессорного времени компьютера, в зависимости от того, какие приложения на нем исполняются. Исполнение ОС только на одном процессоре может сильно загружать его, в то время как остальные простаивают, что уменьшит производительность системы; при увеличении числа процессоров в системе возрастает вероятность того, что узким местом станут именно действия, выполняемые ОС. Помимо равномерного распределения системной загрузки, системы SMP сокращают время простоя из-за неисправностей, так как при сбое одного процессора код ОС может исполняться на других. Наконец, поскольку симметричная аппаратура реализуется разными производителями сходным образом, имеется возможность создания переносимой ОС SMP.
В
отличие от ASMP, системы SMP обычно проектируются и пишутся полностью заново, так как, чтобы гарантировать правильную работу, их код должен следовать строгим правилам. Конкуренция за ресурсы и другие вопросы производительности принимают в мультипроцессорных системах более острую форму, чем в обычных ОС, и должны учитываться при проектировании системы.
Windows 2000 обладает свойствами, которые принципиально важны для мультипроцессорной ОС:
- Код ОС может выполняться на любом из доступных процессоров и на нескольких процессорах одновременно. За исключением ядра, которое выполняет планировку потоков и обработку прерываний, весь код ОС может быть вытеснен (принужден к освобождению процессора) потоком с более высоким приоритетом.
- В одном процессе может быть несколько потоков управления. Потоки позволяют процессу выполнять разные части его программы на нескольких процессорах одновременно4.
- Серверные процессы могут использовать несколько потоков для одновременной обработки запросов от нескольких клиентов.
- Имеются удобные механизмы совместного использования объектов разными процессами и гибкие возможности коммуникаций между процессами, включая совместно используемую память и оптимизированное средство передачи сообщений.