Главная страница   
Экстренная связь
Сейчас на сайте

Админов: 1 из 7
Исполнителей: 5 из 145
Клиентов: 2 из 5772

Наша помощь
Оценить задание
• Программирование
Информатика
Базы данных
СУБД
• Разработка ПО
Бухгалтерский учёт
Экономика, Аудит
Финанс. менеджмент
Финансовый анализ
Эконом. теория
Эконом. предприятия
Финансы и кредит
Менеджмент
Маркетинг
• ТУСУРовцам
Юриспруденция
Право
Психология
Психологическая консультация
Математика
Исследование операций
Методы оптимизации
Физика
Радиотехника
Электроника
Схемотехника
Механика
Метрология
• Перефразирование
История
Английский
Другой предмет
Заготовки
• Каталог
Программирование
Экономика, Аудит
Бухгалтерский учёт
Финансы и кредит
Юриспруденция
Право
История
Психология
Механика
Информация
О сайте
Наши цены
Соглашение
Наши гарантии
Способы оплаты
Вопросы и ответы
Отзывы клиентов
Бонусы и скидки
Регистрация
Вакансии
Написать письмо
Мы работаем
ЕЖЕДНЕВНО
с 9:30 до 23:30 msk
Поиск по сайту
Разное
Архив заказов
Анекдоты
Облака тегов
Карточные игры
Преподы-монстры
Антиплагиат
Мысли вслух







Яндекс.Метрика











Лабораторная работа
Создание потоков и процессов в WIN API
в среде программирования C++ QT 5


Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: C++ QT 5

Название работы: Создание потоков и процессов в WIN API

Вид работы: Лабораторная работа

Описание: Создание потоков и процессов в WIN API

Для выполнения работы необходимо создать два процесса: первый – «подопытный», второй – управляющий. Каждый процесс это отдельная программа, скомпилированная до выполнимого (*.exe) файла. Из управляющего процесса мы будем создавать и управлять потоками как в подопытном, так и в управляющем процессе.

Подопытный процесс должен:
- содержать функцию потока, названную по фамилии, например:
DWORD WINAPI IvanovThread();
- отображать идентификатор процесса и первичного потока;
- отображать адрес функции потока.

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

Управляющий процесс должен:
- обеспечивать возможность открытия потока (получение дескриптора потока по идентификатору);
- обеспечивать возможность приостановки, запуска и уничтожения заданного потока;
- обеспечивать возможность открытия процесса (получение дескриптора процесса по его идентификатору);
- обеспечить возможность завершения указанного процесса (TerminateProcess).
- обеспечивать возможность создания в указанном процессе нового потока с передачей ему заданного значения параметра в качестве аргумента функции потока;
- обеспечивать возможность создания «подопытного» процесса;
- содержать функцию потока (код функции можно скопировать из программы «подопытного» процесса);
- отображать идентификатор процесса и первичного потока;
- отображать адрес функции потока;
- обеспечивать отображение в поле Memo всех выполняемых над потоками действий, например: Поток (ID = 188) приостановлен.
- обеспечивать возможность действий по варианту: 1) установка класса приоритета процесса; 2) установка предпочтительного процессора; 3) включение/отключение динамического изменения приоритета потока

ПЛАН ИСПЫТАНИЙ

Опыт номер I
1. Запустить управляющий процесс.
2. Создать из управляющего процесса «подопытный» процесс (CreateProcess).
3. Определить значения идентификатора процесса и первичного потока, адрес функции потока в «подопытном» и управляющем процессах.
4. Открыть подопытный процесс из управляющего (получить значение дескриптора «подопытного» процесса).
5. Создать в «подопытном» процессе новый поток (CreateRemoteThread) в приостановленном состоянии, указав в качестве стартового адреса потока – адрес функции потока управляющего процесса. Убедиться в создании нового потока в «подопытном» процессе с помощью диспетчера задач. Запустить созданный поток. Убедиться в запуске потока по загрузке процессора и файлу отчета, создаваемого «подопытным» процессом.
6. Повторить действия пунктов 1-4.
7. Повторить пункт 5, но в качестве стартового адреса потока указать адрес функции потока «подопытного» процесса.
8. Повторить действия пунктов 1-4.
9. Повторить пункт 5, но в качестве дескриптора процесса указать дескриптор управляющего процесса.

Опыт номер II
1. Создать в «подопытном» процессе несколько вторичных потоков, передав им различные значения аргумента функции потока.
2. Приостановить первичный поток. Проверить реакцию окна приложения «подопытного» процесса на пользовательский ввод.
3. Запустить первичный поток. Проверить реакцию окна приложения «подопытного» процесса на пользовательский ввод.
4. Приостановить первичный поток 3 раза подряд. Проверить реакцию окна приложения «подопытного» процесса на пользовательский ввод. Запустить первичный поток несколько раз. После каждого запуска проверять реакцию окна приложения «подопытного» процесса на пользовательский ввод. Определить количество необходимых запусков для возврата "управляемости" окна приложения.
5. Завершить первичный поток «подопытного процесса» (TerminateThread).
6. Завершить все вторичные потоки.
7. Повторить пункт 1.
8. Завершить «подопытный» процесс (TerminateProcess).

Опыт номер III
1. Провести эксперименты в соответствии со своим вариантом.
2. Пошагово описать и объяснить результаты испытаний.

Год: 2018

<<< Назад к списку

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2018-м году, в рамках этого заказа была разработана программа в среде программирования C++ QT 5. Если у Вас похожее задание на программу, которую нужно написать на C++ QT 5, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2018-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Тел.: +7(937)424-22-35
Viber: +7(937)424-22-35
Telegram: +7(937)424-22-35
ВКонтакте: vk.com/kursovikcom
E-mail: info@kursovik.com
Skype: kursovik.com





ВНИМАНИЕ ! Сотрудники сайта KURSOVIK.COM в своей работе осуществляют сбор, обработку и обобщение информации по предложенным клиентам темам. Результатом данной работы является информационная подборка, которая НЕ ЯВЛЯЕТСЯ готовой НАУЧНОЙ РАБОТОЙ, она лишь служит основой для её написания самим клиентом.
Данный сайт НЕ ЯВЛЯЕТСЯ средством массовой информации.
Данный сайт НЕ ЯВЛЯЕТСЯ рекламой каких-либо товаров или услуг.
© 2001-2020 kursovik.com
➥ Оценить задание
➥ Контакты