Объекты. Преимущества использования объектов. Создание объектов.



Структура OS Windows

Рис. 1.4. Упрощенная архитектурная схема ОС Windows

ОС Windows состоит из компонентов, работающих как в режиме ядра так и в режиме пользователя. Компоненты разделены на несколько функциональных уровней:

Задача уровня абстрагирования от оборудования (HAL) - скрыть аппаратные различия аппаратных архитектур для потенциального переноса системы с одной платформы на другую. HAL предоставляет выше лежащим уровням аппаратные устройства в абстрактном виде, свободном от индивидуальных особенностей, что позволяет изолировать ядро, драйверы и исполнительную систему ОС Windows от специфики оборудования.

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

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

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

Подсистема Win32 – осуществляет взаимодействие между приложениями и ОС с помощью системных вызовов. При этом системные вызовы не документированы и приложение не может вызывать их напрямую. Вместо этого приложение должно воспользоваться программным обеспечением Win32.API, которое является основным интерфейсом программирования для ОС Windows. 

В состав подсистемы Win32 входят:

csrss.exe – серверный процесс подсистемы окружения;

kernel32.dll, user32.dll, gdi32.dll - основные dll подсистемы Win32.

 

Базовые понятия ОС Windows. Системный вызов. Исключительная ситуация

В любой ОС существует набор базовых концепций и механизмов. В ОС Windows к базовым механизмам относят системные вызовы, прерывания и исключительные ситуации. 

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

Исключительная ситуация(exception) - событие, возникающее в результате попытки выполнения программой команды, которая по каким-то причинам не может быть выполнена до конца. Исключительные ситуации как и системные вызовы являются синхронными событиями, возникающими в контексте текущей задачи. Исключительные ситуации бывают:

исправимые (после устранения причины исправимой исключительной ситуации программа может выполняться дальше; например: страничная ошибка);

неисправимые (например, деление на ноль, программа завершается в аварийном порядке с ошибкой).

Базовые понятия ОС Windows. Прерывания. Ловушка

В любой ОС существует набор базовых концепций и механизмов. В ОС Windows к базовым механизмам относят системные вызовы, прерывания и исключительные ситуации. 

Ловушки(trap) – это механизм Windows, необходимый для сохранения сосотояния текущего потока с его последующим восстановлением. В случае возникновения требующего обработки события (прерывания, исключения или вызова системного сервиса) процессор переходит в привилегированный режим и передает управление обработчику ловушек, входящему в состав ядра. Обработчик ловушек создает в стеке ядра прерываемого потока фрейм ловушки, содержащий часть контекста потока для последующего восстановления его состояния, и в свою очередь передает управление определенной части ОС, отвечающей за первичную обработку произошедшего события.

Фрейм ловушки включает в себя программный счётчик, содержимое регистров процессора, указатели на стек ядра и стек пользователя, указатели на адресное пространство процессора. Эта инфа сохраняется в структуру, типа CONTEXT и м.б. получена с помощью функции Get Thread Context.

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

Объекты. Преимущества использования объектов. Создание объектов.

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

Достоинства.

1) единый интерфейс ко всем системным ресурсам и структурам данных, таким, как процессы, потоки, семафоры и т.д. Именование объектов и доступ к ним осуществляются по одной и той же схеме

 2) очень удобно с точки зрения системной безопасности. Каждый объект имеет список прав доступа, который проверятся каждый раз, когда приложение создает свой описатель объекта. Соответственно, все проверки, связанные с защитой, могут быть выполнены в одном модуле - диспетчере объектов (в соответствии с требованиями безопасности), с гарантией, что ни один процесс не может их обойти.

3) легко организовать совместный доступ к объектам, несложно отследить объекты, которые больше не используются, и т.д.

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

Для работы с важными системными ресурсами ОС Windows создает объекты, управление которыми осуществляет менеджер объектов. Когда приложение открывает файл, создает поток или семафор, оно получает описатель (handle) соответствующего объекта (см. рис. 4.1).

Рис. 4.1. Создание объекта "семафор" приложением


Дата добавления: 2018-05-31; просмотров: 272; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!