Некоторые сведения об архитектуре Windows


Некоторые сведения об архитектуре Windows
Некоторые сведения об архитектуре Windows Windows 2000 — многозадачная операционная система Уровни и платформы Однозадачные и многозадачные ОС Процессы и потоки Архитектура памяти...
Архитектура памяти Win32
Архитектура памяти Win32Архитектура памяти, используемая операционной системой, — ключ к пониманию того, что в ней происходит. Не имея представления о ней, невозможно ответить на такие вопросы...
Разделы адресного пространства
Разделы адресного пространстваНиже на Рисунок 12.8 показано как разбивается память на разделы (partitions) в адресном пространстве процесса под управлением Windows NT. Разделы будем рассматрив...
Разделы адресного пространства процесса
Рисунок 12.8. Разделы адресного пространства процесса Примечание 1Примечание 1 В системах Windows NT Server Enterprise Edition и Windows 2000 Advanced Server процессу доступны нижние 3 Гбайт...
Таблица 12 2 Состояния страниц
Таблица 12.2. Состояния страниц памяти в виртуальном адресном пространстве процесса Состояние Описание Free Страница недос...
Подсистемы ОС
Подсистемы ОСОперационная система Windows NT представляет собой множество отдельных модулей (подсистем), которые разработаны с учетом двух фундаментальных принципов: модульность, инкапсуляция...
Архитектура Windows
Рисунок 12.9. Архитектура Windows Каждый компонент расположен в отдельном DLL-файле. Все они выполнялись в режиме user mode. Однако теперь (в NT 4.0) большинство подсистем выполняется в режиме...
Взаимодействие подсистем
Взаимодействие подсистемПриложения и защищенные подсистемы взаимодействуют по типу клиент-сервер. Приложения (клиенты) запрашивают подсистемы (серверы) о необходимости выполнить какой-то сервис...
Разделяемые ресурсы
Разделяемые ресурсыВ современном операционном окружении программист не может быть уверен и не должен полагаться на то, что коды его программы будут выполняться в тон же последовательности, в к...
Стратегии решения проблемы
Стратегии решения проблемыДля того чтобы исключить подобный сценарий, автор многопотокового приложения должен решать проблему синхронизации при попытке одновременного доступа к разделяемым ресу...
Транзакции
ТранзакцииВ системе с преимущественной многозадачностью ноток может быть прерван в любой момент. Обычно перед выполнением очередной машинной команды система смотрит, есть ли прерывание. Если ес...
Тупиковая ситуация (Deadlock)
Тупиковая ситуация (Deadlock)Выше мы рассмотрели, как потоки одного процесса могут вступить в конфликт и испортить работу друг друга. Одной из задач программиста является обеспечить невозможнос...
Механизмы синхронизации
Механизмы синхронизацииСуществует несколько стратегий, которые могут применяться, чтобы разрешать описанные проблемы. Наиболее распространенным способом является синхронизация потоков. Суть син...
Иерархия классов синхронизации
Рисунок 12.10. Иерархия классов синхронизацииВсе перечисленные классы, кроме критической секции, принадлежат ядру Windows. Вы знаете, что Windows-приложение использует множество и других объект...
Таблица 12 3 Значения выступающие
Таблица 12.3. Значения, выступающие в качестве параметра dwTimeOut dwTime Out Описание 0 Функция только проверяет состояние объекта (занят или свобо...
Таблица 12 4 Возвращение значений
Таблица 12.4. Возвращение значений функцией WaitForSingleObject Возвращаемое значение Описание WAITJ1MEOUT Объект не пере...
Критические секции
Критические секцииЭто самые простые объекты ядра Windows, которые не снижают общей эффективности приложения. Пометив блок кодов в качестве critical section, можно синхронизировать доступ к нему...
Windows 2000 — многозадачная операционная система
Windows 2000 — многозадачная операционная система В тексте этого урока использованы материалы, любезно предоставленные преподавателем СПбГТУ Мариной Полубенцевой, с которой мы совместно ведем к...
Мьютексы (Mutexes)
Мьютексы (Mutexes)Критические секции просты в использовании и обладают высоким быстродействием, но не обладают гибкостью в управлении. Нет, например, возможности установить время блокирования...
События
СобытияВ некоторых случаях потоку необходимо ждать, пока другие-потоки не завершат выполнение каких-то операций или не произойдет какое-либо событие (UI-событие User Interface), то есть событие...
Семафоры
СемафорыСемафором называется объект ядра, который позволяет только одному процессу или одному потоку процесса обратиться к критической секции — блоку кодов, осуществляющему доступ к объекту. Се...
Блокировки (Locks)
Блокировки (Locks)Блокировки — это семафоры, которые приспособлены для двух операций транзакции (commit и abort). Они используются для обеспечения последовательного доступа конкурирующих поток...
Специальные блокировки
Специальные блокировкиДля того чтобы записи-фантомы не создавались, надо избегать блокирования отдельных записей. Альтернативой является блокировка всей таблицы. Но это решение приводит к сниже...
Устранение тупиковых ситуаций
Устранение тупиковых ситуацийЕдинственным способом выхода из тупиковой ситуации (deadlock) является снятие блокировки одним из потоков. Это означает прерывание или отказ от транзакции. Система...
Уровни и платформы
Уровни и платформыВ последнее время в компьютерном мире обрел популярность термин layer (уровень или слой). Так, различают аппаратный уровень (hardware layer), устойчивый программный уровень (...
Однозадачные операционные системы
Однозадачные операционные системыИзвестно, что в каждый момент времени один процессор может выполнять лишь одну машинную команду. Процессор выполняет команды, последовательно выбирая их одну за...
Диаграмма взаимодействия ОС с прикладной программой
Рисунок 12.1. Диаграмма взаимодействия ОС с прикладной программой Системный модуль, который подготавливает запуск прикладной программы, с тем чтобы вернуть управление обратно после ее завершени...
Алгоритм опроса готовности
Рисунок 12.2. Алгоритм опроса готовности...
Алгоритм обработки аппаратного прерывания
Рисунок 12.3. Алгоритм обработки аппаратного прерывания Аппаратные прерывания могут возникать в произвольные моменты времени, и они прозрачны для прикладной программы, то есть она не знает, что...
Диаграмма асинхронного взаимодействия
Рисунок 12.4. Диаграмма асинхронного взаимодействияОбработчик аппаратного прерывания от клавиатуры преобразует код нажатия клавиши в код, понятный прикладной программе (ASCII), и помещает его в...
Многозадачные операционные системы
Многозадачные операционные системыПочти все современные операционные системы (Windows 95, Windows NT, Windows 2000, Unix) поддерживают преимущественную многозадачность {preemptive multi-tasking...
Переключение потоков в системе
Рисунок 12.5. Переключение потоков в системе с вытесняющей многозадачностью...
Процессы и потоки
Процессы и потокиРазличают два способа реализации многозадачности: создать один процесс, имеющий несколько потоков выполнения (threads); создать несколько процессов, каждый из которых имее...
Приоритеты процессов
Приоритеты процессовЧасть ОС, называемая системным планировщиком (system scheduler), управляет переключением заданий, определяя, какому из конкурирующих потоков следует выделить следующий квант...
Приоритеты потоков
Приоритеты потоковТеперь рассмотрим уровни приоритета, которые могут быть присвоены потокам процесса. Внутри каждого процесса, которому присвоен какой-либо класс приоритета, могут существовать...
Таблица 12 1 Приоритеты потоков
Таблица 12.1. Приоритеты потоков Уровень приоритета потока Базовый уровень THREAD_PRIORITY_IDLE...
Переключение потоков
Переключение потоков Планировщик ОС поддерживает для каждого из базовых уровней приоритета функционирование очереди выполняемых или готовых к выполнению потоков (ready threads queue). Когда пр...
Рисунок 12 6 Вытеснение потока с более низким приоритетом
Рисунок 12.6. Вытеснение потока с более низким приоритетом Примечание 2Примечание 2 Термин foreground обозначает то качество процесса, которое характеризует — его с точки зрения связи с актив...
Диапазон изменения приоритета потока
Рисунок 12.7. Диапазон изменения приоритета потокаПри наличии нескольких процессоров Windows NT применяет симметричную модель распределения потоков по процессорам (symmetric multiprocessing SMP...


- Начало -