Язык и ПО для разработки программы



МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

Электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра информационной безопасности

 

 

Курсовая РАБОТА

По дисциплине «Программирование»

Тема: Приложение для управления процессами операционной системы

 

 

Студент гр. 8362   Виноградов М.Р.
Преподаватель   Халиуллин Р.А.

 

 

Санкт-Петербург

2019


ЗАДАНИЕ

На курсовую работу

Студент Виноградов М.Р.

Группа 8362

Тема работы: Приложение для управления процессами операционной системы

Исходные данные:

Разработать на языке C++ приложение для управления процессами операционной системы. Для каждого выбранного пользователем процесса приложение должно выводить ID процесса, его название, потоки и ID родительского процесса. В приложении необходимо реализовать завершение выбранного пользователем процесса и предоставить возможность выбора способа его завершения. Приложение должно иметь консольный интерфейс. Приложение должно корректно обрабатывать ошибки.

Содержание пояснительной записки:

Введение, теоретическая часть, реализация программы, язык и ПО для разработки программы, реализованные функции, результаты тестирования программы, заключение, список использованных источников, приложение 1 ― руководство пользователя, приложение 2 ― блок-схема, приложение 3 ― исходный код программы.

Предполагаемый объем пояснительной записки:

Не менее 30 страниц.

Дата выдачи задания: 11.02.2019

Дата сдачи реферата: 31.05.2019

Дата защиты реферата: 06.06.2019

Студент _________________ Виноградов М.Р.
Преподаватель _________________ Халиуллин Р.А.

Аннотация

Цель работы – создание приложения, способного получить список запущенных процессов, сортировать его по алфавиту и по ID, обновлять список процессов и завершать выбранный процесс двумя способами на выбор. Приложение должно быть консольным и работать в операционной системе Windows. Приложение должно быть разработано на языке C++.

 

Summary

The aim of the project – is to create an application, that is able to get the list of running processes, to sort it by alphabet and by the ID, to update the process list and to terminate the chosen process in two ways. The application should have the console interface and should be working in Windows operating system. The application should be written in C++.


Содержание

 

  Введение 5
1. Теоретическая часть 6
1.1. Способы завершения процессов в Windows 6
1.2. Встроенный диспетчер задач Windows 6
2. Реализация программы 7
2.1. Язык и ПО для разработки программы 7
2.2. Реализованные функции 7
3. Результаты тестирования программы 12
  Заключение Список использованных источников 17 18
  Приложение 1. Руководство пользователя Приложение 2. Блок-схема Приложение 3. Исходный код программы 19 25 26

Введение

Требовалось разработать приложение на языке программирования C++ для управления процессами операционной системы. Для каждого выбранного пользователем процесса приложение должно выводить информацию о процессе. В приложении должно было быть реализовано завершение выбранного пользователем процесса двумя способам (стандартным и альтернативным), если операционная система позволяет завершить процесс альтернативным способом.


Теоретическая часть

Способы завершения процессов в Windows

    Самые распространенные способы – это:

· Вызвать функцию TerminateProcess;

· Создать в завершаемом процесс новый поток и вызвать в нем функцию ExitProcess;

· Создать задание, завершающее процесс, с помощью функции CreateJobObject;

· Завершить с помощью функции отладки NtCreateDebugObject;

· Занять всю доступную память процесса;

· Изменить атрибуты доступа к памяти процесса на PAGE_NOACCESS;

· Закрыть все хендлы процесса.

Встроенный диспетчер задач Windows

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

Диспетчер задач можно запустить четырьмя способами:

· Нажатием сочетания клавиш: Ctrl+Shift+Esc;

· Щелкнуть правой кнопкой мыши на панели задач и выбрать опцию «диспетчер задач» (Start Task Manager);

· Нажать Ctrl+Alt+Del и щелкнуть на кнопке запустить диспетчер задач (Start Task Manager);

· Запустить исполняемый файл Taskmgr.exe.

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

 


РЕАЛИЗАЦИЯ ПРОГРАММЫ

Язык и ПО для разработки программы

Для разработки программы был выбран язык программирования С++.

Операционная система: Windows 10 (x64).

Среда разработки: Qt Creator 4.9.0 (x64).

Компилятор: GNU g++ (x64).

Реализованные функции

    1. Функция SNAPSHOT

    Функция SNAPSHOT создает снимок запущенных процессов и сохраняет данные о них в массив структур для данных. Исходный код функции находится в файле main.c.

    Объявление: int SNAPSHOT(Process* process, int* quantity);

    Тип функции: int.

    Аргументы функции:

· process – указатель на массив структур для данных;

· quantity – указатель на переменную для подсчета процессов.

Возвращаемые значения:

· 0 – функция успешно выполнена;

· 1 – неверен первый аргумент;

· 2 – неверен второй аргумент;

· 3 – ошибка выполнения функции CreateToolhelp32Snapshot;

· 4 – ошибка выполнения функции Process32First;

· 5 – ошибка выполнения функции CloseHandle.

2. Функция OUTPUT

    Функция OUTPUT выводит на экран список процессов. Исходный код функции находится в файле main.c.

    Объявление: int OUTPUT(Process* process, int quantity);

    Тип функции: int.

    Аргументы функции:

· process – указатель на массив структур для данных;

· quantity – переменная, хранящая количество процессов.

Возвращаемые значения:

· 0 – функция успешно выполнена;

· 1 – неверен первый аргумент;

· 2 – неверен второй аргумент.

3. Функция KILL

    Функция KILL завершает выбранный процесс первым способом. Исходный код функции находится в файле main.c.

    Объявление: int KILL(int ID);

    Тип функции: int.

    Аргументы функции:

· ID – переменная, хранящая ID выбранного процесса.

Возвращаемые значения:

· 0 – функция успешно выполнена;

· 1 – неверен первый аргумент;

· 2 – ошибка выполнения функции TerminateProcess;

· 3 – ошибка выполнения функции CloseHandle.

4. Функция KILL2

    Функция KILL2 завершает выбранный процесс вторым способом. Исходный код функции находится в файле main.c.

    Объявление: int KILL2(int ID);

    Тип функции: int.

    Аргументы функции:

· ID – переменная, хранящая ID выбранного процесса.

Возвращаемые значения:

· 0 – функция успешно выполнена;

· 1 – неверен первый аргумент;

· 2 – ошибка выполнения функции GetModuleHandleA;

· 3 – ошибка выполнения функции GetProcAddress;

· 4 – ошибка выполнения функции CreateRemoteThread.

    5. Функция COMPARE

    Функция COMPARE сравнивает названия процессов для сортировки в алфавитном порядке. Исходный код функции находится в файле main.c.

    Объявление: int COMPARE(char* s1, char* s2, int* result);

    Тип функции: int.

    Аргументы функции:

· s1 – указатель на первую строку;

· s2 – указатель на вторую строку;

· result – указатель на переменную, содержащую результат сравнения строк.

Возвращаемые значения:

· 0 – функция успешно выполнена;

· 1 – неверен первый аргумент;

· 2 – неверен второй аргумент;

· 3 – ошибка выполнения функции CreateToolhelp32Snapshot;

· 4 – ошибка выполнения функции Process32First;

· 5 – ошибка выполнения функции CloseHandle.

6. Функция MENU

    Функция MENU сравнивает названия процессов для сортировки в алфавитном порядке. Исходный код функции находится в файле main.c.

    Объявление: int MENU(Process* process, int quantity);

    Тип функции: int.

    Аргументы функции:

· process – указатель на массив структур для данных;

· quantity – переменная, хранящая количество процессов.

Возвращаемые значения:

· 0 – функция успешно выполнена;

· 1 – неверен первый аргумент;

· 2 – неверен второй аргумент;

· 3 – ошибка выполнения функции system;

· 4 – функция OUTPUT вернула 1;

· 5 – функция OUTPUT вернула 2;

· 6 – функция OUTPUT вернула неизвестное значение;

· 7 – ошибка выполнения функции system;

· 8 – функция COMPARE вернула 1;

· 9 – функция COMPARE вернула 2;

· 10 – функция COMPARE вернула 3;

· 11 – функция COMPARE вернула неизвестное значение;

· 12 – функция OUTPUT вернула 1;

· 13 – функция OUTPUT вернула 2;

· 14 – функция OUTPUT вернула неизвестное значение;

· 15 – функция KILL вернула 1;

· 16 – функция KILL вернула 2;

· 17 – функция KILL вернула 3;

· 18 – функция KILL вернула неизвестное значение;

· 19 – функция KILL2 вернула 1;

· 20 – функция KILL2 вернула 2;

· 21 – функция KILL2 вернула 3;

· 22 – функция KILL2 вернула 4;

· 23 – функция KILL2 вернула неизвестное значение;

· 24 – ошибка выполнения функции system;

· 25 – функция SNAPSHOT вернула 1;

· 26 – функция SNAPSHOT вернула 2;

· 27 – функция SNAPSHOT вернула 3;

· 28 – функция SNAPSHOT вернула 4;

· 29 – функция SNAPSHOT вернула 5;

· 30 – функция SNAPSHOT вернула неизвестное значение;

· 31 – функция OUTPUT вернула 1;

· 32 – функция OUTPUT вернула 2;

· 33 – функция OUTPUT вернула неизвестное значение.

 

 


Дата добавления: 2019-09-13; просмотров: 137; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!