Кафедра ИСиТ УО ВГТУ
  • Специальности
    • Экономика электронного бизнеса
    • Информационные системы
    • Information Control Systems
  • Каталог
  • Сайт кафедры
  • Сервисы
    • GitLab
    • ownCloud
    • JupyterHub
    • JupyterHub 2
    • VNC
    • Soft
  1. ИСиТ
  2. Системное программирование
  3. Практика
  4. Лаб. работа “Управление процессами в Windows”
  • ИСиТ
    • АОС
      • Теория
        • Введение в операционные системы
        • Управление памятью
        • Управление процессами
        • Система ввода-вывода
        • Информационная безопасность
        • Виртуализация
      • Практика
    • РВПсИПП
      • Теория
        • Настройка среды разработки для PHP
        • Разработка web-приложений на базе фреймворков
        • Основы Laravel
        • Шаблоны в Laravel
        • Модели и базы данных в Laravel
        • Формы и валидация в Laravel
        • Аутентификация и авторизация в Laravel
        • Создание REST API в Laravel
        • Работа с файлами и изображениями в Laravel
        • Тестирование и отладка в Laravel
        • Введение в фреймворк Symfony
        • Маршруты и контроллеры в Symfony
        • Шаблоны и Twig в Symfony
        • Формы и валидация в Symfony
        • Доступ к базам данных в Symfony
        • Аутентификация и авторизация в Symfony
        • Сервисы и зависимости в Symfony
        • Создание REST API в Symfony
        • Работа с файлами и медиа в Symfony
        • Сравнение и выбор фреймворка
        • Развертывание веб-приложения
      • Практика
        • Лаб. работа 1 “Создание нового приложения Laravel”
        • Лаб. работа 2 “Добавление главной страницы и базовых маршрутов”
        • Лаб. работа 3 “Создание моделей, миграций и сидеров”
        • Лаб. работа 4 “Создание индексных страниц и пагинация”
        • Лаб. работа 5 “Создание форм для работы с сущностями”
        • Лаб. работа 6 “Работа с файлами (эмуляция S3-хранилища)”
        • Лаб. работа “Создание маршрутов в Laravel”
        • Лаб. работа “Работа с базами данных в Laravel”
        • Лаб. работа “Работа с формами в Laravel”
        • Лаб. работа “Аутентификация и авторизация в Laravel”
        • Лаб. работа “Работа с файлами в Laravel”
        • Лаб. работа “Тестирование и оптимизация в Laravel”
        • Лаб. работа “Создание REST API в Laravel”
        • Лаб. работа “Основы Symfony”
        • Лаб. работа “Шаблоны и представления в Symfony”
        • Лаб. работа “Работа с базами данных в Symfony”
        • Лаб. работа “Фомы и аутентификация в Symfony”
        • Лаб. работа “Сервисы и зависимости в Symfony”
        • Лаб. работа “REST API в Symfony”
        • Лаб. работа “Работа с медиа контентом в Symfony”
        • Лаб. работа “Создание и развертывание проекта”
    • ПСП
      • Теория
        • Введение
        • Протокол HTTP
        • Программирование с использованием сокетов
        • Введение в PHP
        • Работа с базами данных в PHP
        • Объектно-ориентированные возможности PHP
        • Настройка среды разработки для PHP
        • Разработка web-приложений на базе фреймворков
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб. работа “Массивы в PHP”
        • Лаб. работа “Создание веб-приложений с использованием Slim”
    • Компьютерные сети
      • Теория
        • Введение в компьютерные сети
        • Топологии сетей
        • Кодирование и мультиплексирование
        • Стеки протоколов
        • Адресация в компьютерных сетях
        • Система доменных имен (DNS)
        • Программирование с использованием сокетов
        • Введение в PHP
        • Протокол HTTP
        • Введение в компьютерные сети
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб работа “Массивы в PHP”
    • РиОИИС
      • Теория
        • Классификация оптимизационных задач
        • Генетические алгоритмы
        • Системы массового обслуживания
        • Теория игр
        • Машинное обучение
        • Глубокое обучение (Deep learning)
        • Основы функционального программирования
        • Основы программирования на Haskell
        • Введение в логическое программирование
        • Инференция и рассуждения в логическом программировании
        • Разработка экспертных систем
        • Интеллектуальные системы и их архитектура
        • Веб-скрэйпинг
        • Сбор данных с открытых API
      • Практика
        • JupyterHub
        • Лаб. работа “Методы одномерной оптимизации”
        • Лаб. работа “Методы многомерной оптимизации”
        • Лаб. работа “Функции в Python”
        • Лаб. работа “Рекурсия в Python”
        • Лаб. работа “Итераторы в Python”
        • Лаб. работа “Генетические алгоритмы”
        • Лаб. работа “Haskell”
        • Лаб. работа “Логическое программирование”
        • Лаб. работа “Сбор данных с помощью веб-скрейпинга”
    • КСКР
      • Практика
        • Лаб. работа “Одномерные и двумерные массивы в C#”
        • Лаб. работа “Обращение матриц в C#”
    • Системное программирование
      • Теория
        • Управление памятью в Windows
        • Файловые операции в Windows
        • Управление процессами в Windows
        • Графический интерфейс Windows
        • ОС Unix
      • Практика
        • Лаб. работа “Работа с динамической памятью в Windows”
        • Лаб. работа “Операции с файлами в Windows”
        • Лаб. работа “Управление процессами в Windows”
        • Лаб. работа “Работа с виртуальной машиной Linux”
        • Лаб. работа “Язык командного энтерпритатора Shell”
        • Лаб. работа “Работа с файлами в Linux”
        • Лаб. работа “Работа с процессами в Linux”

Содержание

  • Цель лабораторной работы
  • Задачи лабораторной работы
  • Порядок выполнения работы
  • Контрольные вопросы
  1. ИСиТ
  2. Системное программирование
  3. Практика
  4. Лаб. работа “Управление процессами в Windows”

Лаб. работа “Управление процессами в Windows”

Системное программирование
Практика
Автор

Бизюк Андрей

Дата публикации

20 мая 2024 г.

Цель лабораторной работы

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

Задачи лабораторной работы

  • Ознакомиться с документацией по функциям WinAPI для работы с процессами.
  • Создать программы на языке C/C++, использующие Windows API для выполнения операций с процессами.
  • Провести отладку написанных программ с использованием инструментов Visual Studio.
  • Научиться правильно обрабатывать ошибки при выполнении операций с процессами.
  • Оформить отчет о выполненной работе, включающий описание поставленных задач, исходный код программ и результаты тестирования.

Порядок выполнения работы

  1. Изучить теорию по теме Управление процессами в Windows
  2. Изучить основы управления процессами в Windows API.
  3. Написать программу, которая создает новый процесс с помощью функции CreateProcess. Новый процесс должен выполнять простую консольную программу, которую также необходимо написать.
  4. Расширить предыдущую программу, добавив возможность передачи аргументов командной строки новому процессу.
  5. Написать программу, которая получает информацию о текущем процессе с помощью функции GetCurrentProcess.
  6. Написать программу, которая получает идентификатор текущего процесса с помощью функции GetCurrentProcessId и выводит его на экран.
  7. Написать программу, которая получает дескриптор текущего процесса и использует его для изменения приоритета процесса с помощью функции SetPriorityClass.
  8. Написать программу, которая завершает работу другого процесса с помощью функции TerminateProcess. Для этого необходимо получить дескриптор процесса с помощью функции OpenProcess.
  9. Написать программу, которая создает новый поток в текущем процессе с помощью функции CreateThread. Новый поток должен выполнять простую функцию, которую также необходимо написать.
  10. Написать программу, которая синхронизирует работу нескольких потоков с помощью событий (функции CreateEvent, SetEvent, WaitForSingleObject или WaitForMultipleObjects).
  11. Написать программу, которая использует функции GetExitCodeProcess и GetExitCodeThread для получения кодов завершения процесса и потока.

Контрольные вопросы

  1. Основные понятия:
    • Что такое процесс в операционной системе Windows?
    • Какие атрибуты характеризуют процесс?
  2. Создание процессов:
    • Какую функцию Windows API используют для создания нового процесса?
    • Какие параметры необходимо передать функции CreateProcess для успешного создания процесса?
    • Чем отличаются синхронное и асинхронное создание процесса?
  3. Получение информации о процессах:
    • Какие функции Windows API используются для получения идентификатора текущего процесса и информации о других процессах?
    • Как получить информацию о времени работы процесса (начало, пользовательское время, системное время)?
  4. Завершение процессов:
    • Какая функция используется для завершения процесса?
    • Какие параметры необходимы для завершения процесса с использованием функции TerminateProcess?
    • Как корректно завершить процесс, чтобы избежать утечек ресурсов?
  5. Приостановка и возобновление процессов:
    • Какие функции Windows API используются для приостановки и возобновления процессов?
    • В каких случаях может потребоваться приостановка процесса?
    • Какой эффект может иметь приостановка основного потока процесса на его выполнение?
  6. Мониторинг процессов:
    • Какие утилиты и инструменты в Windows можно использовать для мониторинга состояния процессов?
    • Как можно программно реализовать мониторинг активных процессов в системе?
    • Какие параметры процессов являются ключевыми для мониторинга?
  7. Безопасность и защита процессов:
    • Какие методы защиты процессов от несанкционированного доступа существуют в Windows?
    • Как ограничить права доступа к процессу?
    • Какие функции и параметры Windows API используются для реализации безопасности процессов?
  8. Практические аспекты:
    • Как определить, что процесс успешно завершился?
    • Какие возможные ошибки могут возникнуть при управлении процессами, и как их диагностировать?
    • Как проверить, что процесс находится в ожидающем (приостановленном) состоянии?
  9. Отладка процессов:
    • Какие средства и функции Windows API могут использоваться для отладки процессов?
    • Как программно осуществить пошаговое выполнение процесса?
    • Какие методы можно использовать для анализа причин сбоя процесса?
Наверх
Лаб. работа “Операции с файлами в Windows”
Лаб. работа “Работа с виртуальной машиной Linux”