- •Введение
- •1. Методы и средства получения информации о ресурсах вычислительной системы
- •1.1. Получение информации о выполняющихся процессах и используемых ими ресурсах
- •1.1.1. Получение списка процессов, выполняющихся в системе
- •1.1.1.1. Использование функций CreateToolHelp32Snapshot () и Process32xxxx() для получения списка имен процессов
- •1.1.1.2. Использование функций CreateToolHelp32Snapshot () и Thread32xxxx() для получения сведений о приоритетах потоков процессов
- •1.1.2. Использование функций CreateToolHelp32Snapshot () и Module32xxxx() для получения списка модулей
- •1.1.3. Использование функций CreateToolHelp32Snapshot () и Heap32Listxxxx() для получения списка куч
- •1.1.4. Получение дополнительной информации о процессах и потоках
- •1.1.4.2. Получение информации счетчиков ввода-вывода и количества описателей (дескрипторов)
- •Получение информации о загруженных драйверах
- •1.1.6. Использование функции NtQuerySystemInformation
- •1.1.6.1. Назначение аргументов функции
- •1.1.6.2. Вызов функции NtQuerySystemInformation
- •1.1.6.3. Получение сведений о процессах и потоках
- •1.1.6.4. Преобразование данных из формата FileTime в формат SystemTime
- •1.1.6.5. Вычисление загрузки процессора
- •1.1.7 Формирование протокола использования процессора
- •1.2. Получение информации о ресурсах виртуальной памяти и системе
- •1.2.1. Функции и структуры данных управления виртуальной памятью
- •1.2.2. Получение информации о структуре виртуального адресного пространства
- •1.3. Получение информации о файловой системе
- •1.3.1. Определение имеющихся логических дисков
- •1.3.2. Получение информации о томах
- •1.3.3. Поиск файлов
- •1.4. Методы и средства работы с реестром
- •1.4.1. Открытие и закрытие родительского раздела
- •1.4.2. Создание подразделов
- •1.4.3. Установка значения параметра
- •1.4.4. Получение значения параметра
- •1.4.5. Уведомление приложения об изменениях в разделе реестра
- •1.4.6. Использование компонента Registry
- •1.4.7. Поиск в разделе реестра имен файлов приложений, являющихся локальными серверами автоматизации
- •1.5. Использование функции ReadDirectoryChangesW для отслеживания изменений в файловой системе
- •2. Средства управления выполнением прикладных процессов
- •2.1. Функции Win32 для создания и управления процессами
- •2.2. Функции Win32 для создания и управления потоками
- •2.3. Завершение выбранного процесса
- •3. Методы реализации мониторинга ресурсов
- •3.1. Мониторинг процессов
- •3.2. Программирование «с защитой от ошибок»
- •Требования к разрабатываемому монитору
- •4.1. Требования к выполняемым функциям
- •4.2. Требования к реализации
- •4.3. Требования к документации
- •4.4. Список вопросов для приема курсовой работы
- •Библиографический список
- •Приложение 1 График выполнения курсовой работы
- •Приложение 2 Примеры описания реализации отдельных функций монитора и оформления разделов пояснительной записки
- •1. Вывод списка выполняющихся процессов в виде дерева.
- •2. Формирование протокола использования процессора
- •3. Протоколирование моментов времени внесения изменений в файловую систему с записью выполненных изменений и имён приложений, выполнивших изменения.
- •4. Поиск одинаковых файлов, хранящихся в различных каталогах (необходимо обеспечить возможно большую скорость выполнения операции). Вводить имена файлов или каталогов перед началом поиска не следует.
- •9. Вывод списка прав текущего пользователя
- •10. Пример составления перечня используемых компонентов
- •11. Пример заполнения таблицы использованных компонентов
- •12. Пример описания основных переменных
- •13. Пример составления руководства пользователя по инсталляции и использованию монитора
- •14. Пример описания процедуры тестирования монитора
- •Системное программное обеспечение Учебное пособие
- •443100, Г. Самара, ул. Молодогвардейская, 244.
- •443100, Г. Самара, ул. Молодогвардейская, 244. Корпус № 8
11. Пример заполнения таблицы использованных компонентов
Таблица 3 Компоненты - методы, свойства и события
Название компонента |
Выполняемая функция |
Используе-мые методы |
Используе-мые свойства |
Используемые события
|
TBitButton |
Запустить эксперимент, начать поиск, удалить процесс |
|
|
OnClick |
TGroupBox, |
Объединяет раз-личные компо-ненты в одну группу и исполь-зуется для офор-мления интер-фейса программы |
|
|
|
TListBox |
Конфигурирова-ние монитора |
Clear, Items.Add |
Items |
OnClick
|
Окончание таблицы 3
Название компонента |
Выполняемая функция |
Используе-мые методы |
Используемые свойства |
Используе-мые события |
TLabel |
Вывод информа-ции о процессоре, пояснение к функциональным элементам. |
|
Caption |
|
TMainMenu |
Создание функ-ционального меню |
|
Items |
OnClick |
TPageControl |
Разделение по страницам разных функций Мони-тора |
|
Caption, Pages |
|
TTimer |
Используется для обновления дерева процессов |
|
|
OnTimer |
TtreeView |
Вывод дерева процессов |
Add, AddChild, Delete |
Items, Selected, Node.SelectedIndex, ItemIndex, Node.Text, Images |
OnClick |
TForm |
Главная форма монитора, форма настройки, ин-формация о прог-рамме |
ShowModal Show, Close |
Menu, Caption, Icons
|
OnCreate |
TCheckBox |
Фильтры опера-ций при мони-торинге ФС |
|
Checking |
|
12. Пример описания основных переменных
//Процессы
ProArr = record
ID: int64; // 1 - ID
IDParents: int64; // 2 - ID родителя
name: string; // 3 - Имя процесса
NumProtokol: integer; // 4 - номер строки в протоколе процессов
Handle: THandle; // 5 - Handle
ThreadCount: word; // 6 - Количество потоков
Prioryty: longint; // 7 - Базовый приоритет потока
end;
//Файл настройки монитора
IniFile:TIniFile;
//Процессы
procArr, spec : TList; //списки процессов
FileProtokolProc: string; //Ссылка на файл протокол
n : word; // количество потоков
kol_prot : word; // количество строк в протоколе
13. Пример составления руководства пользователя по инсталляции и использованию монитора
Для работы программы инсталляция не требуется.
Программа предназначена для отслеживания процессов происходящих в ОС.
Возможности программы:
Просмотр выполняющихся процессов виде дерева
Дерево процессов» служит для отслеживания состояния процессов в системе. Отслеживается момент создания, завершения и время работы процесса. Для завершенных процессов выводиться время завершения. Все процессы, выполняющиеся в данный момент, приведены в вид дерева.
Существует возможность прекратить процесс. Для этого необходимо выбрать процесс в окне «Дерево процессов» и кликнуть мышкой на кнопку «Завершить процесс».
Информация о выбранном процессе
Показывает количество потоков у приложения, его идентификатор, и идентификатор его родителя, а также приоритет выбранного приложения
Выводит сведения о процессоре
Основную информацию: имя, номер процессора, производитель, тактовая частота, семейство, модель, stepping, а также дополнительную информацию о поддержке различных функций.
Рисунок П2.4 информация о процессоре