В. Столлингс - Операционные системы (1114679), страница 40
Текст из файла (страница 40)
Опыт работы с таким ' тамп показывает, что они являются не менее, а иногда даже более, э ,нк чем такие мощные системы, как БХ1Х. з1(итектУРа микРоядеР Из-за того что различные микроядра обладают разными возможное ' смерим, невозможно четко сформулировать правила, определяющие,.:, нкций, предоставляемых микроядром, и его структуру. Чтобы дать п ;рте об архитектуре микроядра, в этом разделе представлен мннималь т его Функций и сервисов.
В микроядро должны входить те функции, которые непосредственно тарзтного обеспечения, а также те, которые нужны для поддержки сер' вложений, работающих в пользовательском режиме. Эти Функции отн цим категориям Функций низкоуровневого управления памятью, межпро шмодействия, а также управления вводом-выводом и прерываниями. Иизкоуровневое управление памятью Чтобы в микроядре можно было реализовать защиту на уровне про зем должен обеспечиваться контроль над аппаратной концепцией ад остранства.
Если микроядро будет отвечать за отображение каждой:: ьной страницы в физический страничный блок, то блок управления,"' ю, включая систему защиты адресного пространства одного процесса го, а также алгоритм замены страниц и другие логические схемы стр ганизации памяти, можно реализовать вне ядра. Например, вынесен еделы ядра модуль виртуальной памяти принимает решение, когда:: тть страницу в память и какую из тех страниц, которые уже содер мяти, следует заменить. Микроядро отображает ссылки на эти стр тзические адреса основной памяти.
Впервые идея о том, что системы страничной организации памяти в ния виртуальной памятью можно вынести за пределы ядра, появиласъ,.: внешней системой страничной организации операционной системйж- О()Х87). Принцип работы этой системы поясняется на рис. 4.11. КОРМ„,"„ ~вложения обращается к странице, которая отсутствует в основной зникает прерывание из-за отсутствия страницы, н управление перехва ,Ром После этого ядро отправляет системе страничной организации котором указывается запрашиваемая страница. Система страничной о ти может принять ретпение загрузить данную страницу и выделить Раничный блок.
Система страничной организации и ядро должны вовать между собой, чтобы логические операции, которые происходят",, 'стеме, отображались в физическую память. Как только нужная стра т доступна, система страничной организации отправляет приложению' те о том, что оно может продолжить работу. Рис. 4.11. Обработка прсрывания и.т-за отсутствия страницы Такая технология позволяет внешнему по отношению к ядру процессу отображать файлы и базы данных в пользовательские адресные пространства без астия ядра. Вне ядра можно реализовать специализированные стратегии разделения памяти.
В (Ь1ЕВ951 предлагается оставить в микроядре набор, состоящий всего из трех операций, которые способны поддерживать внешние системы страничной организации памяти и управления внешней памятью. В этот набор входят следующие операции. ° Предоставление (дгап$). Владелец адресного пространства (процесс) может предоставлять некоторые свои страницы другому процессу.
Ядро удаляет эти страницы из адресного пространства первого процесса и передает их второму процессу. е Отображение (птар). Процесс может отображать любые свои страницы в адресное пространство другого процесса, после чего оба процесса будут иметь до~туп к этим страницам. При этом создается общая область памяти, совместно используемая двумя процессами. Ядро не меняет информацию о приналлежности первоначальному процессу-владельцу, но при этом выполняет отображение, предоставляющее другому процессу доступ к этим страницам.
° Восстановление (ПцвЦ. Процесс может восстановить любые страницы, предоставленные другим процессам или отображенные в их адресное пространство. Вначале ядро определяет всю Физическую память как единое адресное пространство, которым управляет основной системный процесс.
При создании новыхп о процессов страницы первоначального общего адресного пространства могут передавать д ваться или отображаться в эти новые процессы. Такая схема позволяет однов ме Ременно поддерживать несколько схем организации виртуальной памяти. Взаимодействие между процессами Основн овной Формой взаимодействия между процессами или потоками в опесе Рационной системе с микроядром являются сообщения.
Сообщение включает в я заголово; ловок, в котором указаны идентификаторы процесса-отправителя и е -адресата, а также тело с пересылаемыми данными, указателем на блок нных или и некоторыми управляющими сведениями о процессе. Обычно можно нтать, по в о взаимодеиствие между процессами основано на относящихся к этим цессам по т а одре е портах. Порт — это, по сути, очередь сообщений, предназначенных Р деленного процесса. С портом связан список возможностей, в котором с какими процессами данный процесс может обмениваться информациазано, 4. Потоки, симметричная мультипроцессорная обработка...
223 способ защиты ресурсов процессов; взаимосвязь процессов друг с другом. е1эе Ь3.1е ( г. 12е ) Часть 2. Процесс может разрешать доступ к себе, отправляя ядру сообщение, в" ~м указь1вается новая возможность порта. Здесь уместно сделать одно замечание по поводу передачи сообщени (ресные пространства двух процессов не перекрываются, то передача со , одного гроцесса другому включает в себя копирование одной области другую. Таким образом, скорость такой передачи сообщения ограничена ' ьрю работы памяти. которая несравнимо меньше, чем скорость процессо " ому в современных исследованиях наблюдается интерес к межпроц ,аимодействию, основанному на потоках, и к таким схемам разделения и" ~к многократное отображение страниц (в которых одна и та же стран эльзуется многими процессами).
Управление вводом-выводом и прерываниями В архитектуре микроядра имеется возможность обрабатывать аппа. рерывания подобно сообщениям, а также включить в адресное пр эрты ввода-вывода. Такое микроядро может распознавать прерывания,' )рабатывает их. Вместо этого оно генерирует сообщение процессу, ф рющему на пользовательском уровне и связанному с данным преры им образом, когда прерывание разрешено, с ним сопоставляется и эльзовательском уровне, и такое отображение поддерживается ядром. >ванне прерываний в сообщения должно выполняться микроядром, од е принимает участия в обработке аппаратно-зависимых прерываний. В (Е1ЕП96а) предлагается рассматривать аппаратное обеспечение к отоков, которые обладают уникальными идентификаторами и отпр мщения (содержащие только идентификатор данного потока) соответств рограммным потокам в пользовательском пространстве.
Поток-получа, сияет, является ли данное сообщение прерыванием, а также опред гого прерывания. Общая структура такого кода, выполняющегося на .льском уровне, имеет следующий вид: ~ Ь~ Г е а б а бо ыахГГОГ (ГйБЯрэепбег) ).Й ~аепаег == обрабатываемое прерывание чтение/Запись в порты эвола Вывода~ сброс аппаратного прерьаания 4 4', пОтоки:,':."~~.''.з,' юк~(~~~я,:. О .
' Процессы в операционной системе Ж1пооиэ 2000 (Ж2К) организ тобы обеспечить поддержку различных операционных сред. Процесс ичных средах отличаются по ряду параметров, включая следующие: ° именование процессов; ° возможность поддержки потоков в процессах; ° способ представления процессов; сханизмы, использующиеся для обмена информацией между процессами и аля их синхронизации; Соответственно структуры и сервисы процессов, присущие операционной ме Ю'2К и предоставляемые ее ядром, сравнительно просты и имеют общее „значение.
Это позволяет каждой подсистеме эмулировать соответствующие кции и структуру. К важным характеристикам процессов в операционной ;стеме Ж2К можно отнести следующие: в ~Ч2К процессь| реализованы как объекты; э исполняемом процессе могут содержаться один или несколько потоков; в объекты-процессы и объекты-потоки встроены возможности синхронизации. На рис. 4.12 проиллюстрирован способ взаимосвязи между процессом и ресурсом, которым этот процесс управляет или который он использует. В целях безопасности каждому процессу присваивается признак доступа, который называется первичным признаком процесса.
При входе пользователя в систему Ж2К создает признак доступа, в который входит идентификатор безопасности пользователя. Каждый процесс, который создается данным пользователем или запускается от его имени, обладает копией этого признака. Указанный признак используется операционной системой Ж2К, чтобы подтвердить воэможность доступа пользователя к защищенным объектам или возможность выполнения специальных функций в системе и в защищенных объектах. Признак доступа управляет возможностью изменения процессом своих собственных атрибутов. рис. 4,1 р гт роиессы и их ресурсы в операционной системе и'ыНоив,с000 ~СУЯT931 4. Потоки, симметричная мультипроцессорная обработка...
225 Окончание п>абк 43 г ~ с~~ ' '' иртч>и>ьпой памятью с вир -' '- ООР™ искл ,чс»>тй>отладки Причина заверп>ения процесса Статуе нь>' Тип Объекта Идентификатор процесса Дескриптор защиты Базовый приоритет Родствен>кють процессоров по умолчанию Квоты Время выполнения Счетчики ввода вывода Счетчики операций с виртуальнои памятью Парты исключения>отладки С~атус выхода Идентификатор потока Контекст тютока Динамический приоритет Базовый приоритет Родственность процессоров по попжу Атрибуты тела объекта Время выполнения потока Статус извещения Счетчик приостановок Маркер режима анонимного воплощения Порт завершения Статус выхода потока Создание процесса Открытие процесса ИНФормация по запросу процесса ИНФОрмация по наладке процесса Текущий процьчю Прекращение процесса Создание потока Открытие потока Информация по запросу потока ИНФормация по наладке потока Текущий поток Завершение потока Получение контекста Ве> соптехт Приостановка Возобновление Извещение потока Проверка извещения потока Порт регистрации заверц>ения Сервисы а> Объект-процесс деитифинатор процесса ескриптор защиты азовый приоритет роцессор по умолчанию Боты ремя выполнения четчики ввода-вывода Часть 2- >26 С процессами связан и ряд блоков, в которых определяется вирту оное пространство, закрепленное в данный момент за процессом.
Про >жет напр прямую изменять эти структуры; в этом он зависит от менед алькой памяти, предоставляющего сервис для выделения памяти про Наконец, в состав процесса входит таблица объектов, которая вестными процессу объектами. Для каждого потока, входящего в этот теется од один дескриптор. На рис. 4.12 показан один поток, но их мо юго. Кроме того, процесс имеет доступ к файловым объектам и к >торые задают раздел совместно используемой памяти.