Техническое задание на выполнение курсовой работы по дисциплине "Системное программирование в среде Win32" Тема работы
Вид материала | Техническое задание |
- Техническое задание на выполнение курсовой работы на тему: Исследование моделей представления, 32.74kb.
- Задание на выполнение курсовой работы по дисциплине «Экономика отрасли» Тема:«Расчет, 48.11kb.
- Методические указания по выполнению курсовой работы по дисциплине «бухгалтерский финансовый, 225.63kb.
- Техническое задание на выполнение работы «Разработка Стратегии развития города Харькова, 138.14kb.
- Методические рекомендации по выполнению курсовой работы (для студентов озо, зо специальности, 117.09kb.
- Тематика курсовых работ и рекомендации по их выполнению по дисциплине «экономика» Содержание, 745.56kb.
- Тематика курсовых работ и рекомендации по их выполнению по дисциплине «экономика» Содержание, 786.93kb.
- Тематика курсовых работ и рекомендации по их выполнению по дисциплине «национальная, 744.94kb.
- Методические рекомендации по написанию курсовой работы, 95.34kb.
- Рекомендации по написанию Курсовой работы При выполнении данной Курсовой работы используйте, 80.88kb.
Министерство образования и науки Украины
Черниговский государственный технологический университет
Кафедра информационных и компьютерных систем
«ДИСПЕТЧЕР WINDOWS»
Курсовая работа по дисциплине
"Системное программирование в среде Win32 "
Исполнитель студент гр. | | |
Руководитель | | В.В.Бонд |
ЧЕРНИГОВ - 2006
^ ТЕХНИЧЕСКОЕ ЗАДАНИЕ
на выполнение курсовой работы
по дисциплине "Системное программирование в среде Win32"
Тема работы: ДИСПЕТЧЕР ОПЕРАЦИОННОЙ СИСТЕМЫ Windows
^ Предполагаемые технические и эксплуатационные результаты работы:
Диспетчер операционной системы Windows, который должен обеспечивать:
- Просмотр списка текущих процессов. Возможность завершения процессов и запуск новых процессов.
- Просмотр потоков принадлежащих выбранному процессу. Возможность изменения приоритетов потоков. Завершение потоков.
- Отображения списка установленных в системе устройств и информации о них.
- Управление питанием компьютера – выключение и включение компьютера в указанное время.
Диспетчер операционной системы Windows должен представлять собой центральное приложение, взаимодействующее с динамически подключаемыми библиотеками.
Диспетчер операционной системы Window должен быть выполнен на языке программирования С++ с использованием функций Win API и dll-библиотек.
Интерфейс должен быть основан на оконно-графическом режиме и предоставлять удобные средства по отображению и управлению предоставляемой информацией. Необходимо реализовать инсталляцию и деинсталляцию программы, а также справку.
Среда реализации Borland C++ Builder 6.
^ Предполагаемая трудоемкость работ:
27 человеко-часов.
Объем текстовой и графической документации:
Пояснительная записка к проекту объемом 15-20 страниц печатного текста формата А4 и программная документация на систему объемом 25-30 страниц печатного текста формата А4. Объемы текстовой информации могут быть скорректированы в процессе работы по согласованию с руководителем.
Проект оформляется согласно СОККР-ИКС-2001
Внедрение и публикации:
Работа имеет учебно-практический характер.
Демонстрация работоспособного программного комплекса до 01.12.06
Плановый срок защиты проекта: 06.12.06
Исполнитель работы: | | |
| | |
Руководитель работы: | | |
Дата выдачи задания:
" 15 " сентября 2006 г.
РЕФЕРАТ
Курсовой проект, 56 с., 3 рис., 2 табл., 3 источника, 2 приложения.
В работе описан процесс и результаты проектирования диспетчера Windows, который производит воздействие на процессы и потоки, и выводит расширенную информацию о них, также диспетчер выводит информацию об устройствах, дисках и библиотеках DLL.
Результат разработки оформлен в виде программного проекта, приводимого в приложении к курсовой работе.
Работа диспетчера возможна в операционной системе Windows на компьютерах совместимых с IBM PC. Основным средством разработки являлся среда С++ Builder 6.
Для своей работы требует: конфигурацию минимально необходимую для запуска данной операционной системы.
Дальнейшее развитие работы возможно в сторону увеличения дополнительной информации об операционной системе Windows.
Работа имеет практическую ценность. Расчет экономической эффективности не производился.
ПРОЦЕСС, ПОТОК, МОДУЛЬ, СТРУКТУРА.
РЕФЕРАТ
Курсовий проект, 56 c., 3 мал., 2 табл., 3 джерела, 3 додатки.
У роботі описані процес і результати проектування диспечера Windows, який виконуе вплив на процеси та потоки, а також виводить повну iнформацiю про них .
Робота утиліти можлива в операційній системі Windows на комп'ютерах сумісних з IBM PC. Основним засобом розробки був пакет С++ Builder 6.
Для своєї роботи вимагає: конфігурацію мінімально необхідну для запуску даної операційної системи.
Подальший розвиток роботи можливий у бік збільшення додаткової інформації про операційнусистему Windows.
Робота має практичну цінність. Розрахунок економічної ефективності не виконувався.
ПРОЦЕС, ПОТІК, МОДУЛЬ, СТРУКТУРА.
ABSTRACT
T
erm paper, 56 pages, 3 drawings, 2 table, 3 sources, 3 appendices.
It was the purpose of work creations of utility of giving facilities on influence on executable processes, and allowing to get the extended information about them.
The result of development is designed as the programmatic project led in the appendix to the term paper.
Work of utility is possible in the operating system Windows on the computers of compatible with IBM PC. The package С++ Builder 6 was the basic mean of development
For the work requires: configuration minimum necessary for the start of this operating system.
Further development of work is possible toward the increase of information about processes and expansions of methods influence on them.
Work has a practical value. The calculation of economic efficiency was not produced.
PROCESS, THREAD, MODULE, STRUCT.
^ С
ОДЕРЖАНИЕ
ВВЕДЕНИЕ 8
1 постановка задачи 9
2 Анализ решаемой задачи 9
3 Исследование существующей информации 10
Понятие о процессах, потоках и DLL 10
Необходимые функции для процессов, потоков и DLL 10
СОДЕРЖАНИЕ 14
1 ИНСТАЛЛЯЦИЯ И ДЕИНСТАЛЛЯЦИЯ ПРИЛОЖЕНИЯ 15
^ 2 ОСНОВНЫЕ ЭЛЕМЕНТЫ ИНТЕРФЕЙСА 15
3 РАБОТА С ДИСПЕТЧЕРОМ WINDOWS 15
ПРИЛОЖЕНИЕ А
ПРИЛОЖЕНИЕ Б
ВВЕДЕНИЕ
Современные многозадачные операционные системы неразрывно связаны с таким понятием как процесс. Именно благодаря возможности разделить выполняемые приложения на отдельные процессы операционная система может параллельно вести работу над каждой из задач конкретного приложения. Процесс же, представляет собой обособленные данные определённой задачи и механизмы взаимодействия с операционной системой и другими процессами.
Несмотря на то, что в большинстве случаев операционная система самостоятельно ведёт работу с процессами, пользователь может захотеть по тем или иным причинам вмешаться в это взаимодействие, то ли для получения необходимой ему информации, то ли для определённого воздействия на процесс или получения информации об операционной системе. Именно для этого создается диспетчер Windows.
На данный момент все современные многозадачные операционные системы включают данную утилиту в свои стандартные поставки. В своём большинстве эти утилиты направлены на получение информации о процессах и включают минимальные средства для воздействия на них, а также содержат некоторую информацию об операционной системе.
В качестве среды разработки была использована среда программирования С++Builder6.
- ^
постановка задачи
Реализовать диспетчер операционной системы WINDOWS, который должен обеспечивать:
1. Просмотр списка текущих процессов. Возможность завершения процессов и запуск новых процессов.
2. Просмотр потоков, принадлежащих конкретному процессу. Возможность изменения приоритета потоков, завершение потока.
3. Просмотр библиотек, используемых процессами.
4. Отображение установленных в системе устройств и информации о них.
5. Отображение информации о дисках.
6. Управление питанием компьютера - выключение, перезагрузка компьютера, выход из текущего сеанса WINDOWS, переход в спящий и ждущий режимы.
^
2Анализ решаемой задачи
Работу диспетчера можно разделить на четыре основных этапа:
- Загрузка DLL в память – на этом этапе происходит загрузка в память библиотек с функциями работы с процессами, потоками, модулями, дисками, устройствами и функциями управления питанием компьютера.
- Инициализация программы – вывод начальной информации о процессах, потоках, модулях, дисках и устройствах.
- Работа программы – период, в который информация в диспетчере обновляется (в зависимости от настроек заданных пользователем данные могут вообще не обновляться или обновятся с большим интервалом), и во время которого возможно выполнение ряда действий: остановка и запуск процессов, смена приоритета потока, остановка потока, управление питанием компьютера.
- Выгрузка DLL из памяти– на этом этапе проводится выгрузка из памяти библиотек, загруженных на этапе инициализации.
Одним из затрудняющих моментов в создании диспетчера является организация работы интерфейса: при некоторых действиях определенные элементы интерфейса должны запрещаться и в нужный момент времени становиться доступными. Программа не должна выходить из строя от неправильных действий пользователя, при этом должны выводится нужные сообщения об ошибке.
Для структурирования программы можно использовать динамически подключаемые библиотеки (DLL). Их применение повысит гибкость программы. DLL c ее функциями загружается в память при вызове функции API LoadLibrary() и выгружается при вызове функции FreeLibrary().
^
3 Исследование существующей информации
Понятие о процессах, потоках и DLL
Рассмотрим основные понятия о процессе.
Процесс обычно определяют как экземпляр выполняемой программы, и он состоит из двух компонентов:
- объекта ядра, через который операционная система управляет процессом, там же хранится статистическая информация о процессе;
- адресного пространства, в котором содержится код и данные всех EXE- и DLL модулей, именно в нем находятся области памяти, динамически распределяемой для стеков потоков и других нужд.
Процессы инертны, чтобы процесс что-нибудь выполнил, в нем нужно создать поток. Именно потоки отвечаю за исполнение кода, содержащегося в адресном пространстве процесса. В принципе, один процесс может владеть несколькими потоками, и тогда они "одновременно" исполняют код в адресном пространстве процесса.
Чтобы все эти потоки работали, операционная система отводит каждому из них определенное процессорное время. Выделяя потокам отрезки времени (называемые квантами), она создает тем самым иллюзию одновременного выполнения потоков. Если установлено более одного процессора, алгоритм работы операционной системы значительно усложняется (в этом случае система стремится сбалансировать нагрузку между процессорами).
При создании процесса первый (точнее, первичный) поток создается системой автоматически. Далее этот поток может породить другие потоки, те в свою очередь — новые и т. д.
Оценку загрузки центрального процессора потоками процесса можно производить по времени выполнения потоков процесса в режиме ядра и режиме пользователя.
Динамически подключаемые библиотеки (dynamic-link libraries, DLL)- краеугольный камень операционной системы Windows, начиная с самой первой её версии. В DLL содержатся все функции Windows API. Три самые важные DLL: Kernel32.dll (управление памятью, процессами и потоками), User32.dll (поддержка пользовательского интерфейса, в том числе функции, связанные с созданием окон и передачей сообщений) и GDI32.dll (графика и вывод текста).
В Windows есть и другие DLL, функции которых предназначены для более специализированных задач. Например, в AdvAPI32.dll содержатся функции для защиты объектов, работы с реестром и регистрации событий, в ComDlg32.dll — стандартные диалоговые окна (вроде File Open и File Save), а ComCtl32 dll поддерживает стандартные элементы управления.
^
Необходимые функции для процессов, потоков и DLL
В этом разделе описываются различные функции и структуры для работы с процессами и потоками
Функция производит снимок процессов и куч, модулей и потоков, используемых процессом.
^ HANDLE WINAPI CreateToolhelp32Snapshot(
DWORD dwFlags,
DWORD th32ProcessID
);
Функция возвращает информацию о первом перечисляемом процессе в снимке системы.
^ BOOL WINAPI Process32First(
HANDLE hSnapshot,
LPPROCESSENTRY32 lppe
);
Функция возвращает информацию о следующей записи процесса в снимке системы.
^ BOOL WINAPI Process32Next(
HANDLE hSnapshot,
LPPROCESSENTRY32 lppe
);
OpenProcess функция открывает существующий объект процесса. Возвращает указатель на объект процесса.
^ HANDLE OpenProcess(
DWORD dwDesiredAccess,
BOOL bInheritHandle,
DWORD dwProcessId
);
CloseHandle функция закрывает открытый указатель на обект.
BOOL CloseHandle(
HANDLE hObject
);
CreateProcess функция создаёт новый процесс и его первичный поток.
BOOL CreateProcess(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
TerminateProcess функция прерывает определённый процесс и все его потоки.
BOOL TerminateProcess(
HANDLE hProcess,
UINT uExitCode
);
Функция загрузки библиотеки в память
HENDLE LoadLibrary(LPCTSTR lpszLibraryName), где
lpszLibraryName – имя библиотеки
Поиск адреса функции в загруженной библиотеке
GetProcAdress(HMODULE hDLLLibrary, LPCSTR lpszProcName), где
hDLLLibrary – дескриптор библиотеки;
lpszProcName – имя процедуры в библиотеке.
Выгрузка библиотеки
FreeLibrary (HMODULE hDLLLibrary), где
hDLLLibrary – дескриптор библиотеки.
Для определения списка процессов используется ToolHelp.Dll с ее функциями.
.
.
.
.
.
.
.
.
.
.
Аннотация
Данный документ содержит руководство пользователя программной системы, созданной согласно заданию на курсовое проектирование и разработанной в среде C++ Builder 6.
^
С
ОДЕРЖАНИЕ
ВВЕДЕНИЕ 8
1 постановка задачи 9
2 Анализ решаемой задачи 9
3 Исследование существующей информации 10
Понятие о процессах, потоках и DLL 10
Необходимые функции для процессов, потоков и DLL 10
СОДЕРЖАНИЕ 14
1 ИНСТАЛЛЯЦИЯ И ДЕИНСТАЛЛЯЦИЯ ПРИЛОЖЕНИЯ 15
2 ОСНОВНЫЕ ЭЛЕМЕНТЫ ИНТЕРФЕЙСА 15
3 РАБОТА С ДИСПЕТЧЕРОМ WINDOWS 15
- ^
ИНСТАЛЛЯЦИЯ И ДЕИНСТАЛЛЯЦИЯ ПРИЛОЖЕНИЯ
Для инсталляции приложения нужно запустить файл под названием Setup.exe после этого на экране появится окно мастера установки (смотри рисунок 1.1). Далее следуйте указаниям мастера.
Рисунок 1.1 – Мастер установки программы
Для деинсталляции приложения, нужно запустить Uninstall.exe который находится в папке с установленной программой.
- ^
ОСНОВНЫЕ ЭЛЕМЕНТЫ ИНТЕРФЕЙСА
Интерфейс ориентирован на работу с неподготовленным пользователем.
К основным элементам интерфейса относятся:
- Главная форма, которая постоянно находится на экране.
- ListView, представляет детальную информацию об определённом объекте.
- Главное меню.
- Компонент ToolBar, который позволяет пользователю быстро воспользоваться нужной командой.
Для вызова нового процесса используется поле ввода Edit. Вызов дополнительного меню производится с помощью PopupMenu.
- ^
РАБОТА С ДИСПЕТЧЕРОМ WINDOWS
После запуска программы, на экране появляется окно программы (рисунок 2.1). На первой закладке изображен список всех процессов, их название, приоритет и количество потоков. Для запуска нового процесса нужно ввести его название в поле ввода и нажать на кнопку «Запуск процесса». После этих действий запустится новый процесс, который будет отображаться в диспетчере.
Для остановки процесса необходимо выделить нужный процесс и нажав правой кнопкой мыши, выбрать нужное действие.
Рисунок 2.1 – Вывод списка процессов
Для вывода списка потоков необходимо выбрать соответствующую закладку (рисунок 2.2). Для изменения приоритета потока необходимо выделить его и нажав правую кнопку мыши выбрать нужный приоритет.
Рисунок 2.2 – Вывод списка потоков
Для просмотра списка библиотек DLL, списка устройств и списка дисков нужно выбрать соответствующую закладку (рисунки 2.3,2.4,2.5).
Рисунок 2.3 – Вывод списка DLL
Рисунок 2.4– Вывод списка дисков
Для обновления диспетчера необходимо в меню «скорость обновления» выбрать скорость обновления (рисунок 2.5).
Рисунок 2.5– Управление компьютером
.
.
.
.
.
.
.
.
.
.
.