7. Вывод информации в окно. Механизм перерисовки окна. Понятие области обновления окна. Операции с областью обновления окна



страница1/21
Дата28.11.2016
Размер2.21 Mb.
Просмотров3527
Скачиваний1
  1   2   3   4   5   6   7   8   9   ...   21
1. Модель программного интерфейса операционной системы Windows. Нотация программного интерфейса. Понятие объекта ядра и описателя объекта ядра операционной системы Windows. Модель архитектуры ОС Windows.
2. Понятие пользовательского режима и режима ядра операционной системы Windows. Модель виртуальной памяти процесса в пользовательском режиме и в режиме ядра операционной системы Windows. Архитектура приложения в пользовательском режиме работы и в режиме ядра ОС Windows. Основные модули ОС Windows.
3. Системный реестр операционной системы Windows. Структура и главные разделы. Точки автозапуска программ. Средства редактирования реестра Windows. Функции работы с реестром из приложения.
4. Понятие окна в ОС Windows. Основные элементы окна. Понятие родительского и дочернего окна. Структура программы с событийным управлением. Минимальная программа для ОС Windows с окном на экране. Создание и отображение окна.
5. Структура программы с событийным управлением. Структура события – оконного сообщения Windows. Очередь сообщений. Цикл приема и обработки сообщений. Процедура обработки сообщений. Процедуры посылки сообщений. Синхронные и асинхронные сообщения.(Сытов П)
6. Ввод данных с манипулятора «мышь». Обработка сообщений мыши. Ввод данных с клавиатуры. Понятие фокуса ввода. Обработка сообщений от клавиатуры.
7. Вывод информации в окно. Механизм перерисовки окна. Понятие области обновления окна. Операции с областью обновления окна.
8. Принципы построения графической подсистемы ОС Windows. Понятие контекста устройства. Вывод графической информации на физическое устройство. Управление цветом. Палитры цветов. Графические инструменты. Рисование геометрических фигур.
9. Растровые изображения. Виды растровых изображений. Значки и курсоры. Способ вывода растровых изображений с эффектом прозрачного фона. Аппаратно-зависимые и аппаратно-независимые растровые изображения. Операции с растровыми изображениями. Вывод растровых изображений
10. Библиотека работы с двумерной графикой Direct2D. Инициализация библиотеки. Фабрика графических объектов библиотеки Direct2D. Вывод графики средствами библиотеки Direct2D.
11. Вывод текста в ОС Windows. Понятие шрифта. Характеристики шрифта. Понятия физического и логического шрифта. Операции с физическими шрифтами. Операции с логическими шрифтами. Параметры ширины и высоты логического шрифта
12. Системы координат. Трансформации. Матрица трансформаций. Виды трансформаций и их представление в матрице трансформаций. Преобразования в страничной системе координат. Режимы масштабирования
13. Понятие ресурсов программ Windows. Виды ресурсов. Операции с ресурсами.
14. Понятие динамически-загружаемой библиотеки. Создание DLL-библиотеки. Использование DLL-библиотеки в программе методом статического импорта процедур. Соглашения о вызовах процедур DLL-библиотеки. Точка входа-выхода DLL-библиотеки.
15. Понятие динамически-загружаемой библиотеки. Создание DLL-библиотеки. Использование DLL-библиотеки в программе методом динамический импорта процедур.
16. Понятие динамически-загружаемой библиотеки. Создание в DLL-библиотеке разделяемых между приложениями глобальных данных. Разделы импорта и экспорта DLL-библиотеки. Переадресация вызовов процедур DLL-библиотек к другим DLL-библиотекам. Исключение конфликта версий DLL
17. Понятие объекта ядра ОС Windows. Виды объектов ядра. Атрибуты защиты объекта ядра. Дескриптор защиты объекта ядра. Создание и удаление объектов ядра.
18. Проецирование файлов в память. Отличие в механизме проецирования файлов в память в ОС Windows и UNIX/Linux. Действия по проецированию файла в память.
19. Современные многопроцессорные архитектуры SMP и NUMA. Многоуровневое кэширование памяти в современных процессорах. Проблема перестановки операций чтения и записи в архитектурах с ослабленной моделью памяти. Способы решения проблемы перестановки операций чтения и записи.
20. Средства распараллеливания вычислений в ОС Windows. Понятия процесса и потока. Достоинства и недостатки процессов и потоков. Создание и завершение процесса. Запуск процессов по цепочке.
21. Средства распараллеливания вычислений в ОС Windows. Понятия процесса и потока. Создание и завершение потока. Приостановка и возобновление потока. Контекст потока.
22. Понятие пула потоков. Архитектура пула потоков. Операции с потоками при работе с пулом потоков.
23. Распределение процессорного времени между потоками ОС Windows. Механизм приоритетов. Класс приоритета процесса. Относительный уровень приоритета потока. Базовый и динамический приоритеты потока. Операции с приоритетами.
24. Механизмы синхронизации потоков одного и разных процессов в ОС Windows. Обзор и сравнительная характеристика механизмов синхронизации.
25. Синхронизация потоков в пределах одного процесса ОС Windows. Критическая секция. Операции с критической секцией. Атомарные операции.
26. Синхронизация потоков в пределах одного процесса ОС Windows. Ожидаемое условие (монитор Хора). Операции с ожидаемым условием. Пример использования ожидаемого условия для синхронизации потоков.
27. Синхронизация потоков разных процессов с помощью объектов ядра. Понятие свободного и занятого состояния объекта ядра. Процедуры ожидания освобождения объекта ядра. Перевод объекта ядра в свободное состояние. Объекты синхронизации: блокировки, семафоры, события.
28. Синхронизация потоков разных процессов с помощью объектов ядра. Понятие свободного и занятого состояния объекта ядра. Процедуры ожидания освобождения объекта ядра. Ожидаемые таймеры. Оконные таймеры.
29. Структура системного программного интерфейса ОС Windows (Native API). Nt-функции и Zw-функции в пользовательском режиме и режиме ядра ОС Windows.
30. Системный вызов ОС Windows. Алгоритм системного вызова. Особенность системного вызова из режима ядра.
31. Отладка драйверов ОС Windows. Средства отладки драйверов. Посмертный анализ. Живая отладка.
32. Структуры данных общего назначения в режиме ядра ОС Windows. Представление строк стандарта Unicode. Представление двусвязных списков.
33. Механизм прерываний ОС Windows. Аппаратные и программные прерывания. Понятие прерывания, исключения и системного вызова. Таблица векторов прерываний (IDT).
34. Аппаратные прерывания. Программируемый контроллер прерываний. Механизм вызова прерываний. Обработка аппаратных прерываний. Понятие приоритета прерываний (IRQL). Понятие процедуры обработки прерываний (ISR).
35. Понятие приоритета прерываний (IRQL). Приоритеты прерываний для процессора x86 или x64. Процедура обработки прерываний (ISR). Схема обработки аппаратных прерываний.
36. Программные прерывания. Понятие отложенной процедуры (DPC). Назначение отложенных процедур. Механизм обслуживания отложенных процедур. Операции с отложенными процедурами.
37. Понятие асинхронной процедуры (APC). Назначение асинхронных процедур. Типы асинхронных процедур. Операции с асинхронными процедурами.
38. Понятие асинхронной процедуры (APC). Асинхронные процедуры режима ядра: специальная и нормальная APC-процедуры. Асинхронные процедуры пользовательского режима.
39. Понятие элемента работы (Work Item). Назначение элементов работы. Операции с элементами работы. Очереди элементов работы. Обслуживание элементов работы.
40. Управление памятью в ОС Windows. Менеджер памяти. Виртуальная память процесса. Управление памятью в пользовательском режиме. Страничная виртуальная память. Куча (свалка, heap). Проецирование файлов в память.
41. Управление памятью в пользовательском режиме ОС Windows. Оптимизация работы кучи с помощью списков предыстории (Look-aside Lists) и низко-фрагментированной кучи (Low Fragmentation Heap).
42. Структура виртуальной памяти в ОС Windows. Виды страниц. Состояния страниц. Структура виртуального адреса. Трансляция виртуального адреса в физический. Кэширование виртуальных адресов
43. Управление памятью в режиме ядра ОС Windows. Пулы памяти. Выделение и освобождение памяти в пулах памяти. Структура описателя пула памяти. Доступ к описателям пулов памяти на однопроцессорной и многопроцессорной системах.
44. Пулы памяти ОС Windows. Пул подкачиваемой памяти, пул неподкачиваемой памяти, пул сессии, особый пул. Тегирование пулов. Структура данных пула. Выделение и освобождение памяти в пулах памяти. Организация списков свободных блоков в пуле памяти. Заголовок блока пула памяти.
45. Управление памятью в режиме ядра ОС Windows. Оптимизация использования оперативной памяти с помощью списков предыстории – Look-aside Lists.
46. Представление объекта ядра в памяти. Менеджер объектов.
47. Фиксация данных в физической памяти ОС Windows. Таблица описания памяти (MDL) и ее использование.
48. Понятие драйвера ОС Windows. Виды драйверов. Типы драйверов в режиме ядра. Точки входа в драйвер.
49. Объект, описывающий драйвер. Объект, описывающий устройство. Объект, описывающий файл. Структура и взаимосвязь объектов.
50. Понятие пакета ввода-вывода (IRP). Структура пакета ввода-вывода. Схема обработки пакета ввода-вывода при открытии файла.
51. Понятие пакета ввода-вывода (IRP). Структура пакета ввода-вывода. Схема обработки пакета ввода-вывода при выполнении чтения-записи файла.
52. Перехват API-вызовов ОС Windows в пользовательском режиме. Внедрение DLL с помощью реестра. Внедрение DLL с помощью ловушек. Внедрение DLL с помощью дистанционного потока.
53. Перехват API-вызовов ОС Windows в пользовательском режиме. Замена адреса в таблице импорта. Перехват в точке входа в процедуру с помощью подмены начальных инструкций (Microsoft Detours).
54. Перехват API-вызовов ОС Windows в режиме ядра. Таблица системных функций KeServiceDescriptorTable. Таблица системных функций KeServiceDescriptorTableShadow. Понятие UI-потока. Защита от перехвата (Kernel Patch Protection) в 64-разрядной ОС Windows.
55. Перехват API-вызовов менеджера объектов ОС Windows в режиме ядра.
56. Перехват API-вызовов создания и уничтожения процессов и потоков ОС Windows в режиме ядра.
57. Перехват операций с реестром в ОС Windows в режиме ядра.
58. Перехват операций с файлами в ОС Windows в режиме ядра. Мини-фильтры файловой системы.



#

Фамилия Имя

1

Бигвава Лариса (DONE)

2

Бигвава Лариса (DONE)

3

Костюкова Анастасия(DONE)

4

Бигвава Лариса (DONE)

5

Сытов Павел(DONE)

6

Сытов Павел(DONE)

7

Видничук Вадим(DONE)

8

Сытов Павел(DONE)

9

Видничук Вадим(DONE)

10

Кулуев Павел(DONE)

11

Видничук Вадим(DONE)

12

Кучумова Мария(DONE)

13

Клещиков Алексей (DONE)

14

Кулуев Павел (DONE)

15

Кулуев Павел(DONE)

16

Кулуев Павел (DONE)

17

Клещиков Алексей (DONE)

18

Дударев Максим (DONE)

19

Дударев Максим (DONE)

20

Костюкова Анастасия(DONE)

21

Костюкова Анастасия(DONE)

22

Чигир Вероника(DONE)

23

Видничук Вадим (DONE)

24

Костюкова Анастасия (DONE)

25

Костюкова Анастасия(DONE)

26

Рылеев Евгений (DONE)

27

Рылеев Евгений (DONE)

28

Рылеев Евгений (DONE)

29

Житницкий Александр (DONE)

30

Житницкий Александр (DONE)

31

Козорез Станислав(DONE)

32

Чигир Вероника(DONE)

33

Казак Виктор (DONE)

34

Казак Виктор (DONE)

35

Чигир Вероника(DONE)

36

Гривачевский Андрей(DONE)

37

Гривачевский Андрей(DONE)

38

Гривачевский Андрей(DONE)

39

Чигир Вероника(DONE)

40

Кучумова Мария (DONE)

41

Кучумова Мария (DONE)

42

Кучумова Мария (DONE)

43

Левко Сергей (DONE)

44

Левко Сергей (DONE)

45

Левко Сергей (DONE)

46

Тесейко Мария (DONE)

47

Козорез Станислав (DONE)

48

Карпеш Таня(DONE)

49

Карпеш Таня(DONE)

50

Ильюкевич Андрей (DONE)

51

Ильюкевич Андрей (DONE)

52

Клещиков Алексей (DONE)

53

Клещиков Алексей (DONE)

54

Клещиков Алексей (DONE)

55

Видничук Вадим(DONE)

56

Пушнов Никита ; Поплавскис Паша(PROCESSING)

57

Пушнов Никита ; Поплавскис Паша(DONE)

58

Пушнов Никита ; Поплавскис Паша(PROCESSING)

1. Модель программного интерфейса операционной системы Windows. Нотация программного интерфейса. Понятие объекта ядра и описателя объекта ядра операционной системы Windows. Модель архитектуры ОС Windows.

Модель программного интерфейса операционной системы Windows. Нотация программного интерфейса.
Интерфейс прикладного программирования Windows API (application programming interface) является интерфейсом системного программирования в пользовательском режиме для семейства операционных систем Windows. Windows API состоит из нескольких тысяч вызываемых функций, которые разбиты на следующие основные категории:

  1. Базовые службы (Base Services).

  2. Службы компонентов (Component Services).

  3. Службы пользовательского интерфейса (User Interface Services).

  4. Графические и мультимедийные службы (Graphics and Multimedia Services).

  5. Обмен сообщениями и совместная работа (Messaging and Collaboration).

Нотация Windows API (Win32, Win64):

  1. Имена функций – «глагол–существительное»: CreateWindow, ReadFile, SendMessage.

  2. Имена переменных – префикс (венгерская нотация, Charles Simonyi).

API (Application Programming Interface).

API - набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.

API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.

Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.

n Процедурный API. Единая точка доступа к службе – за вызовом процедуры стоит программное прерывание.

n Объектный подход. Отсутствие указателей на внутренние структуры данных ОС. Применение описателей (дескрипторов) вместо указателей.

n «Венгерская» нотация в идентификаторах.



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

s

string

строка

sClientName

префикс задает тип

d

delta

Разница между значениями

int a, b; ... dc = b - a;

префикс задает смысл



Понятие объекта ядра и описателя объекта ядра операционной системы Windows.

Система позволяет создавать и оперировать с несколькими типами объектов ядра, в том числе: маркерами доступа (access token objects), файлами (file objects), проекциями файлов (file-mapping objects), портами завершения ввода-вывода (I/O completion port objects), заданиями (job objects), почтовыми ящиками (mailslot objects), мьютексами (mutex objects), каналами (pipe objects), процессами (process objects), семафорами (semaphore objects), потоками (thread objects) и ожидаемыми таймерами (waitable timer objects). Эти объекты создаются Windows-функциями. Каждый объект ядра — на самом деле просто блок памяти, выделенный ядром и доступный только ему. Этот блок представляет собой структуру данных, в элементах которой содержится информация об объекте. Некоторые элементы (дескриптор защиты, счетчик числа пользователей и др.) присутствуют во всех объектах, но большая их часть специфична для объектов конкретного типа. Например, у объекта «процесс» есть идентификатор, базовый приоритет и

код завершения, а у объекта «файл» — смещение в байтах, режим разделения и режим открытия. Поскольку структуры объектов ядра доступны только ядру, приложение не может самостоятельно найти эти структуры в памяти и напрямую модифицировать их содержимое. Такое ограничение Microsoft ввела намеренно, чтобы ни одна программа не нарушила целостность структур объектов ядра. Это же ограничение позволяет Microsoft вводить, убирать или изменять элементы структур, не нарушая работы каких-либо приложений. Но вот вопрос: если мы не можем напрямую модифицировать эти структуры, то как же наши приложения оперируют с объектами ядра? Ответ в том, что в Windows предусмотрен набор функций, обрабатывающих структуры объектов ядра по строго определенным правилам. Мы получаем доступ к объектам ядра только через эти функции. Когда Вы вызываете функцию, создающую объект ядра, она возвращает описатель, идентифицирующий созданный объект. Описатель следует рассматривать как «непрозрачное» значение, которое может быть использовано любым потоком Вашего процесса. Этот описатель Вы передаете Windows-функциям, сообщая системе, какой объект ядра Вас интересует.
Создание объекта ядра:

При инициализации процесса система создает в нем таблицу описателей, используемую только для объектов ядра. Когда процесс инициализируется в первый раз, таблица описателей еще пуста. Но стоит одному из его потоков вызвать функцию, создающую объект ядра (например, CreateFileMapping), как ядро выделяет для этого объекта блок памяти и инициализирует его; далее ядро просматривает таблицу описателей, принадлежащую данному процессу, и отыскивает свободную запись. Поскольку таблица еще пуста, ядро обнаруживает структуру с индексом 1 и инициализирует ее. Указатель устанавливается на внутренний адрес структуры данных объекта, маска доступа — на доступ без ограничений, и, наконец, определяется последний компонент – флаги.

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

Независимо от того, как именно Вы создали объект ядра, по окончании работы с ним его нужно закрыть вызовом CloseHandle:

BOOL CloseHandle(HANDLE hobj);

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




Поделитесь с Вашими друзьями:
  1   2   3   4   5   6   7   8   9   ...   21


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал