
- •Вопросы по курсу «Операционные системы» весеннего семестра 2010-2011 учебного года
- •1. Общие сведения об операционных системах, цели применения ос, структура ос.
- •2. Модель взаимодействия компонентов операционной системы.
- •3. Классификация ос.
- •4.5. Теоретические основы параллельного программирования, понятия: процесс, задача, мультизадачный режим работы ос, нить, контекст нити.
- •6. Теоретические основы параллельного программирования: классификация программных модулей; понятия реентерабельности и повторной входимости программных модулей.
- •7. Прерывания и механизмы обработки прерываний операционной системой.
- •8.9.Диспетчер задач: дисциплины диспетчеризации, критерии оценки дисциплин диспетчеризации задач.
- •10. Теоретические основы параллельного программирования: независимые и взаимодействующие процессы, понятия ресурса и критического ресурса.
- •11. Теоретические основы параллельного программирования: список условий функционирования взаимодействующих процессов, понятие тупика.
- •12. Теоретические основы параллельного программирования: принцип организации критических секций.
- •13. Теоретическая классификация видов взаимодействия процессов: сигналы, семафоры, мьютексы.
- •15. Теоретическая классификация видов взаимодействия процессов: очереди сообщений, файлы, разделяемая память, объект «ресурс».
- •16. Теоретическая классификация видов взаимодействия процессов: почтовые ящики, конвейеры.
- •17 Организация подсистемы безопасности в ос Windows: создание и открытие объектов, понятие описателя, атрибуты безопасности, права доступа, структура описателя безопасности.
- •18.Организация подсистемы безопасности в ос Windows: маркеры, привилегии пользователей, олицетворение.
- •19. Организация подсистемы безопасности в ос Windows: получение доступа к объекту.
- •20. Процессы в ос Windows: понятие Win32 api; main() и WinMain(), создание и завершение процессов и нитей, основные функции работы с процессами и нитями.
- •21. Работа с файлами в ос Windows: синхронная и асинхронная.
- •24. Таймеры ожидания в ос Windows и понятие apc
- •25. Структурная обработка исключений.
- •26. Способы управления памятью: простое непрерывное распределение, оверлейное распределение.
- •1. Простое непрерывное распределение
- •2. Оверлейное распределение (OverLay)
- •27. Способы управления памятью: распределение статическими и динамическими разделами.
- •28. Способы управления памятью: сегментная организация памяти.
- •29. Страничная организация памяти
- •30. Сегментно-страничный способ организации памяти
- •31. Таблицы физических страниц памяти в современных ос. Понятие pfn, понятие mdl.
- •32. Распределение оперативной памяти в современных компьютерах. Спецификация acpi
- •33. Распределение первого мегабайта оперативной памяти в персональных компьютерах.
- •35. Резервирование памяти с помощью функции VirtualAlloc
- •36. Работа с кучами процессов
- •37 . Динамически загружаемые библиотеки (dll). Связывание во время загрузки библиотеки.
- •38. Системные перехватчики (hook
- •40. Службы
38. Системные перехватчики (hook
Системные перехватчики – это спец-е функции, вызываемые ОС при возникновении условий перехвата. Чаще всего системные перехватчики работают с оконными сообщениями. Системный перехватчик можно установить на выбранную нить или на все нити текущего рабочего стола.
Если Системный перехватчик должен перехватывать не только сообщения текущего процесса, но и сообщения других процессов этого рабочего стола, то функция перехвата должна находиться в DLL.
Адрес этой функции можно получить с помощью динамического связывания. После установления перехватчика эта библиотека будет внедрена во все процессы, для которых требуется активировать функцию перехвата. Причем эта функция будет вызываться в контексте той нити, которая работает с оконным сообщением.
Функция Set:
HHOOK SetWindowsHookEx( int idHook; HOOKPROC lpFn, HINSYANSE hMOD, DWORD dwThreadId);
1-тип перехватчика
2-функция перехвата
3-Dll
4-идентификатор нити(0-на все нити рабочегостола)
Все функции перехвата имеют след-й вид:
LRESULT CALLBACK HOOKProc (int nCode, WPARAM wParam, PARAM lParam);
Некоторые состояния процесса можно получить несколькими способами с помощью перехватчиков разных типов. Выбор конкретного перехватчика производится исходя из требований задачи. Типы перехватчиков.
Перехватчик |
Обл. |
Название функции |
Описание |
WH_CALLWNDPROC |
TG |
CallWndProc |
Проверка оконных сообщений перед посылкой оконной процедуре |
WH_CALLWNDPROCRET |
TG |
CallWndRetProc |
Проверка оконных сообщений после посылки оконной процедуре |
WH_CBT |
TG |
CBTProc |
Проверка состояния окна (создание, уничтожение, получение фокуса ввода, активация, минимизация и т.д.) |
WH_DEBUG |
TG |
DebugProc |
Проверка других перехватчиков |
WH_FOREGROUNDIDLE |
TG |
ForegroundIdleProc |
Выполняется, когда компьютер входит/выходит из состояния простоя |
WH_GETMESSAGE |
TG |
GetMsgProc |
Проверка всех сообщений в момент вызова функций GetMessage или PeekMessage |
WH_JOURNALRECORD |
G |
JournalRecordProc |
Запись всех сообщений |
WH_JOURNALPLAYBACK |
G |
JournalPlayBackProc |
Проигрывание записанных оконных сообщений |
WH_KEYBOARD |
TG |
KeyboardProc |
Проверка символов, введенных с клавиатуры |
WH_KEYBOARD_ALL |
G |
LowLevelKeyboardProc |
Проверка нажатий клавиш клавиатуры |
WH_MOUSE |
TG |
MouseProc |
Проверка логических действий мышью |
WH_MOUSE_LL |
G |
LowLevelMouseProc |
Проверка движений мышью, нажатий/отжатий клавиш |
WH_MSGFILTER |
TG |
MessageProc |
Проверка оконных сообщений для диалоговых окон, меню, выпадающий списков и MessageBox |
WH_SYSMSGFILTER |
G |
SysMsgProc |
То же самое только для системной области |
WH_SHELL |
TG |
ShellProc |
Проверка действия оболочки (переключение языка, активация окна, вывод списокв задач через это окно и так далее |
Для отключения системы перехватчика используется следующая функция: BOOL UnhookWindowsHookEx (
HHOOK hhk);