Читайте также: |
|
Базовые концепции ОС Windows:
1) Windows API – инструментарий программирования.
Каждая версия ОС Windows реализует свое множество Windows API, который описан в MSDN. Ключевые слова System Development. Документацию можно получить бесплатно. Замечание: до появлению 64-разрядных версий Windows XP и Windows Server 2003 API был 32-разрядным и назывался Win32API. Можно разделить на основные группы: базовые сервисы (base services), сервисы компонентов (component services), сервисы пользовательского интерфейса (user interface services), сервисы графики и связанные ней (Graphic and Multimedia services), сервисы коммуникации (communication services), сервисы сетевой поддержки, сервисы безопасности и др.
2) Сервисы, функции и процедуры.
Некоторые термины в документации на Windows трактуются по-разному в зависимости от их применения. Например, слово «сервис» может относиться к вызываемой функции ОС, драйверу устройства или серверному процессу. Т.е. сервис на англ. языке носит неоднозначное толкование. В целом можно выделить следующие основные термины в понимании ОС Windows:
а) функции Windows API – документированные, вызываемые подпрограммой, например CreateProcess, CreateFile и др.
б) исполняемые системные сервисы – недокументированные низкоуровневые сервисы ОС, которые можно вызывать в пользовательском режиме. Например, функция CreateProcess документированная вызывает недокументированный сервис NTCreateProcess.
в) функции или процедуры ядра – подпрограммы внутри ОС, которые можно вызывать только в режиме ядра (Ex Allocated Pool – процедура вызываемая драйвером устройства для выделения памяти).
г) Windows сервисы – процессы, запускаемые диспетчером управления сервисами Windows. Замечание: в реестре драйверы устройств определяются как сервисы, но не подходят под выданное определение.
д) DLL (Dynamic Link Library, см. выше технологию программирования) – набор подпрограмм, включенных в один двоичный файл, который приложения могут использовать, загружать динамически. Замечание: преимущество DLL над статическими библиотеками – приложения могут использовать один образ DLL библиотеки для совместного использования.
3) Виртуальная память.
В Windows реализована концепция виртуальной памяти, основанная на плоском (линейном) адресном пространстве. Оно создает эмуляцию каждому процессу того, что у него есть большое собственное закрытое адресное пространство. Структура виртуальной памяти, как правило, не соответствует структуре реальной памяти. Замечание: на экзамене знать страничное, сегментное, странично-сегментное распределение при организации виртуальной памяти, способы преобразования виртуального адреса в реальный.
При выполнении диспетчер памяти загружает виртуальные страницы в реальное ОП. Используя аппаратную поддержку, преобразует виртуальные адреса в реальные. Если в настоящий момент требуемой виртуальной страницы нет в реальной ОП, по прерыванию отсутствия страницы подкачивает необходимую страницу в реальную ОП. Если в реальной ОП места нет, вытесняет из реальной ОП по определенному алгоритму содержимое страницы на диск в область страничного обмена, тем самым освобождая место для загрузки в реальное ОП.
Размер виртуального адресного пространства зависит от конкретной аппаратной платформы. На 32-разрядных x86 системах теоретический максимум для общего виртуального адресного пространства составляет 4 ГБ. По умолчанию Windows нижнюю половину этого пространства выделяет приложению, а вторую использует в собственных целях.
Существует также механизм Address Windows Extension, который позволяет 32-разрядному приложению выделять до 64 ГБ памяти. 64-разрядная Windows предоставляет гораздо большее адресное пространство 7152 ГБ на процессоре Intanium и 8192 на x64 процессорах.
4) Использование нескольких сеансов. Служба Terminal services поддерживает несколько интерактивных сеансов пользователей на одной системе. С помощью этой службы удаленный пользователь может устанавливать сеансы на другой машине, регистрироваться на ней и запускать приложения, как на сервере. Сервер предоставляет графический пользовательский интерфейс. Клиент предоставляет серверу транзакции. Примечание: сходна с Unix системами, работающими под X Windows.
5) Объектный подход.
В современных версиях Windows используется объектный подход по управлению ресурсами. Управление ресурссами заменяется на управление объектами (см. объектно-ориентированное программирование выше). Управлением объектами занимается диспетчер объектов. Все объекты имеют описатель с соответствующим форматом. В целом описатель объекта состоит из заголовка объекта и тела объекта.
Хелен Кастер. Основы Windows NT и NTFS, 1996 г.
Стандартные атрибуты заголовка объекта следующие:
а) имя объекта – делает видимым объект другим процессам для совместного использования;
б) каталог объектов – обеспечивает иерархическую структуру, в которой хранятся объекты одного типа;
в) дескриптор защиты – определяет, кто и каким образом может использовать объект;
г) расход квоты объекта – задает, какая часть может использоваться процессом в случае использования объекта несколькими;
д) счетчик открытых описателей – подсчитывает, сколько описателей данного объекта открыто;
е) база данных открытых описателей и др.
Диспетчер объектов ОС предоставляет набор сервисов, которые работают с атрибутами в заголовке объекта, т.е. позволяют читать и изменять их.
Существуют также универсальные сервисы, позволяющие работать с объектами (слайд 23). Например, закрыть объект, опросить, дублировать и т.д.
Помимо заголовка, каждый объект имеет тело, формат и содержимое которого определяются типом объекта. Тела всех объектов одного типа имеют одинаковый формат. Возможно задание своего типа объекта исполнительной системой. Суть задания объекта – определение данных. которые будут храниться в заголовке и теле объекта.
В системе существуют различные типы объектов, которые носят название «типовые». Типовой объект связывает друг с другом все объекты одного типа. Замечание: приложения не могут обращаться к типовому объекту, т.е. им не предоставляется такой сервис. На слайде представлен типовой объект-процесс, который связывает объекты, соответствующие процессам. Некоторые определенные атрибуты типовых объектов видны приложениям через API в режиме чтения. Атрибуты, хранящиеся в заголовке типового объекта, представлены на слайде 25.
Описатель объекта – некоторый индекс или номер, соответствующий объекту в таблице объектов (Object table). На слайде показана связь процесса между процессом и таблицей объектов. Возможно использование несколькими процессами одного объекта, если его характеристики позволяют это сделать. При завершении процесса соответствующий объект-процесс удаляется из таблицы объектов системы.
Защита объектов. Чтобы контролировать, кто имеет право работать с объектом, поддерживается специальная подсистема защиты. В Windows поддерживается два вида контроля доступа к объектам:
а) управление избирательным (дискреционным) доступом – владельцы объектов разрешают или запрещают доступ к ним по определенным правилам. При входе пользователь получает набор удостоверений защиты (Security credentional). Когда он пытается обратиться к объекту, его удостоверение сверяется со списком управления доступа к этому объекту (ACL – access control list). Удостоверение называется маркером доступа или маркером защиты, который переводится как ACE (access control entry). Для понимания дискреционного разграничения доступа используют матрицу.
б) управление привилегированным доступом (мандатный) используется для усиления защитных механизмов. Идея: уровень доступа субъекта должен быть не ниже уровня доступа объекта.
Списки контроля доступа. Каждый вход ACL называет в Windows элементом контроля доступа. Он содержит идентификатор защиты и набор прав доступа. На слайде 30 представлено, как строится механизм защиты для обращения файлового объекта с использованием маркера доступа.
Проверка прав доступа к объекту показана на слайде 31. Маркер доступа идентифицирует процессы и потоки для ОС, тогда как дескриптор защиты перечисляет, какие процессы имеют доступ к объекту. На слайде показано, как осуществляется доступ к объекту события.
Дата добавления: 2015-07-07; просмотров: 213 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Режим ядра и пользовательский режим | | | Архитектура современных ОС |