Главная » Просмотр файлов » Операционные системы учебное пособие

Операционные системы учебное пособие (1085734), страница 7

Файл №1085734 Операционные системы учебное пособие (Операционные системы учебное пособие) 7 страницаОперационные системы учебное пособие (1085734) страница 72018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 7)



Исключения в системах х86 и соответствующие им номера прерываний

Исключение

Номер прерывания

0

Divide Error (ошибка деления)

1

DEBUG TRAP (ловушка отладки)

2

NMI/NPX Error (ошибка NMI/NPX)

3

Breakpoint (точка прерывания)

4

Overflow (переполнение)

5

BOUND/Print Screen

6

Invalid Opcode (неправильный код операции)

7

NPX Not Available (NPX недоступен)

8

Double Exception (двойное исключение)

9

NPX Segment Overrun (выход за пределы сегмента NPX)

A

Invalid Task State Segment (TSS) (неправильный TSS)

B

Segment Not Present (сегмент отсутствует)

C

Stack Fault (ошибка стека)

D

General Protection (ошибка общей защиты)

E

Page Fault (ошибка страницы)

F

Зарезервировано Intel

10

Floating Point (ошибка в операции с плавающей точкой)

11

Alignment Check (ошибка контроля выравнивания)

В отличие от прерываний, которые могут возникать в любой момент, исключения являются прямым следствием действий выполняемой программы. Windows вводит понятие структурной обработки исключений (structured exception handling, SEH), позволяющей приложениям получать управление при возникновении исключений. При этом приложение может исправить ситуацию, которая привела к исключению, провести раскрутку стека (завершив таким образом выполнение подпрограммы, вызвавшей исключение) или уведомить систему о том, что данное исключение ему не известно, и тогда система продолжит поиск подходящего обработчика для данного исключения.

В системах типа х86 все исключения имеют предопределенные номера прерываний, прямо соответствующие записям в ЮТ, ссылающимся на обработчики ловушек конкретных исключений.

Все исключения, кроме достаточно простых, которые могут быть разрешены обработчиком ловушек, обслуживаются модулем ядра — диспетчером исключений (exception dispatcher). Его задача заключается в поиске обработчика, способного «справиться» сданным исключением. Примерами независимых от архитектуры исключений могут служить нарушения доступа к памяти, целочисленное деление на нуль, переполнение целых чисел, исключения при операциях с плавающей точкой и точки прерывания отладчика.



Диспетчер объектов



Структура объектов

В Windows модель объектов позволяет получать согласованный и безопасный доступ к различным внутренним сервисам исполнительной системы. Диспетчер объектов (object manager) — компонент исполнительной системы, отвечающий за создание, удаление, защиту и отслеживание объектов.

В Windows существует два вида внутренних объектов: объекты исполнительной системы (executive objects) и объекты ядра (kernel objects). Первые реализуются различными компонентами исполнительной системы (диспетчером процессов, диспетчером памяти, подсистемой ввода-вывода и т. д.). Вторые являются более примитивными объектами, которые реализуются ядром Windows. Эти объекты, невидимые коду пользовательского режима, создаются и используются только в исполнительной системе.

Объекты исполнительной системы

Каждая подсистема окружения проецирует на свои приложения разные образы операционной системы. Объекты исполнительной системы и сервисы объектов — именно те примитивы, из которых подсистемы окружения конструируют собственные версии объектов и других ресурсов.

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



Синхронизация

Концепция взаимоисключения (mutual exclusion) является одной из ключевых при разработке операционных систем. Ее смысл в следующем: в каждый момент к конкретному ресурсу может обращаться один — и только один — поток. Взаимоисключение необходимо, когда ресурс не предназначен для разделения или когда такое разделение может иметь непредсказуемые последствия.

Например, если бы два потока одновременно копировали данные в порт принтера, отпечатанный документ представлял бы собой нечитаемую мешанину. Аналогичным образом, если бы один поток считывал какой-то участок памяти, когда другой записывал бы туда данные, первый поток получил бы непредсказуемый набор данных. В общем случае доступные для записи ресурсы нельзя разделять без ограничений.

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

Разделы кода, обращающиеся к неразделяемым ресурсам, называются критическими секциями (critical sections). В критической секции единовременно может выполняться только один поток.

Синхронизация ядра при высоком IRQL

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



Взаимоблокирующие операции



Спин-блокировки

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

Спин-блокировки

Механизм, применяемый ядром для взаимоисключения в многопроцессорных системах, называется спин-блокировкой (spinlock). Спин-блокировка — это блокирующий примитив, сопоставленный с какой-либо глобальной структурой данных вроде очереди DPC



Взаимоблокирующие операции в исполнительной системе

  • Синхронизация при низком IRQL

  • Существует несколько дополнительных механизмов синхронизации, применяемых, когда спин-блокировки не годятся:

    • объекты диспетчера ядра (kernel dispatcher objects);

    • быстрые мьютексы (fast mutexes) и защищенные мьютексы (guarded mutexes);

    • блокировки с заталкиванием указателя (push locks);

    • ресурсы исполнительной системы (executive resources).

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

Однако спин-блокировка лишь частично удовлетворяет потребности исполнительной системы в синхронизации, она применяется только при двух условиях:

  • требуется непродолжительное обращение к защищенным ресурсам без сложного взаимодействия с другим кодом;

  • код критической секции нельзя выгрузить в страничный файл, он не ссылается на данные в подкачиваемой памяти, не вызывает внешние процедуры (включая системные сервисы) и не генерирует прерывания или исключения.



Механизмы синхронизации режима ядра



Механизмы синхронизации режима ядра

Предоставляется драйверам устройств

Отключает Обычные АРС режима ядра доступ

Отключает Специальные АРС режима ядра

Поддерживает разделяемый и монопольный захват

Поддерживает Рекурсивный захват

Мьютексы диспетчера ядра

Да

Да

Нет

Да

Нет

Семафоры диспетчера ядра

Да

Нет

Нет

Нет

Нет

Быстрые мьютексы

Да

Да

Да

Нет

Нет

Защищенные Мьютексы

Нет

Да

Да

Нет

Нет

Блокировки с заталкиванием указателя

Нет

Нет

Нет

Нет

Да

Ресурсы исполнительной системы

Да

Да

Нет

Да

Да



LPC



LPC

LPC (local procedure call) — это механизм межпроцессной связи для высокоскоростной передачи сообщений. Он недоступен через Windows API напрямую и является внутренним механизмом, которым пользуются только компоненты операционной системы Windows. Вот несколько примеров того, где применяется LPC:

  • Windows-приложения, использующие RPC (документированный API), неявно используют и LPC, когда указывают локальный RPC — разновидность RPC, применяемую для взаимодействия между процессами в рамках одной системы.

  • Некоторые функции Windows API обращаются к LPC, посылая сообщения процессу подсистемы Windows.

  • Winlogon взаимодействует с процессом LSASS через LPC.

  • Монитор состояния защиты также взаимодействует с процессом LSASS через LPC.

Как правило, LPC используются для взаимодействия между серверным процессом и одним или несколькими клиентскими процессами. LPC-соединение может быть установлено между двумя процессами пользовательского режима или между компонентом режима ядра и процессом пользовательского режима.

LPC предусматривает три способа обмена сообщениями:

  • Сообщение длиной менее 256 байтов можно передать вызовом LPC с буфером, содержащим сообщение. Затем это сообщение копируется из адресного пространства процесса-отправителя в системное адресное пространство, а оттуда — в адресное пространство процесса-получателя.

  • Если клиент и сервер хотят обменяться данными, размер которых превышает 256 байтов, они могут использовать общий раздел, на который они оба спроецированы. Отправитель помещает данные в общий раздел и посылает получателю уведомление с указателем на область раздела, где находятся данные.

  • Если серверу нужно считать или записать данные, объем которых превышает размер общего раздела, то их можно напрямую считать из клиентского адресного пространства или записать туда. Для этого LPC предоставляет серверу две функции. Сообщение, посланное первой функцией, обеспечивает синхронизацию передачи последующих сообщений.

LPC экспортирует единственный объект исполнительной системы — объект «порт» (port object). Однако порты бывают нескольких видов:

  • Порт серверного соединения (server connection port) Именованный порт, служащий точкой запроса связи с сервером. Через него клиенты могут соединяться с сервером.

  • Коммуникационный порт сервера (server communication port) Безымянный порт, используемый сервером для связи с конкретным клиентом. У сервера имеется по одному такому порту на каждый активный клиент.

  • Коммуникационный порт клиента (client communication port)

  • Безымянный порт, используемый конкретным клиентским потоком для связи с конкретным сервером. Безымянный коммуникационный порт (unnamed communication port) Порт, создаваемый для связи между двумя потоками одного процесса.

Механизмы управления

Реестр

  • Просмотр и изменение реестра

    • Regedit и Regedt32

  • Использование реестра

    • В ходе загрузки системы

    • Explorer и некоторые другие Windows-компоненты

    • Приложения при запуске

  • Модификация реестра

    • При установки ПО

    • При установке драйвера

    • При изменении параметров через GUI

  • Логическая структура реестра


Логическая структура реестра

Корневой раздел

Описание

HKEY_CURRENT_USER

Содержит данные сопоставленные с вошедшим пользователем в данный момент

HKEY_USER

Хранит информацию обо всех учетных записях на компьютере

HKEY_CLASSES_ROOT

Хранит сопоставления файлов и регистрационную информацию СОМ-объектов

НКЕY_LOCAL_MACH1NЕ

Содержит информацию специфичную для системы

HKEY_PERFORMANCE_DATA

Хранит сведения о производительности

HKEY_CURRENT_CONFIG

Включает некоторые сведения о текущем профили оборудования

Типы данных в реестре

Реестр - это база данных, структура которой аналогична структуре логического тома:

  • Содержит разделы и подразделы, корневые разделы

  • Параметры

Соглашение об именовании заимствовано у файловой системы

Характеристики

Тип файла
Документ
Размер
1014 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6381
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее