Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
spo_samoe.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆
  1. Процессы и управление процессами в ос Linux. Средства получения информации о процессах ос Linux.

Все новые процессы в Linux порождаются клонированием какого-то уже имеющегося процесса, с помощью вызова системных функций clone и fork (от forking - порождение). У нового процесса тоже окружение, что и у родителя, отличается только номер ID процесса

Общая схема управления процессами

Каждый процесс может порождать полностью идентичный процесс с помощью fork(). Родительский процесс может дожидаться окончания выполнения всех своих процессов-потомков с помощью системного вызова wait.

В любой момент времени процесс может изменить содержимое своего образа памяти, используя одну из разновидностей вызова exec. Каждый процесс реагирует на сигналы и, естественно, может установить собственную реакцию на сигналы, производимые операционной системой. Приоритет процесса может быть изменен с помощью системного вызова nice.

Сигнал – способ информирования процесса ядром о происшествии какого-то события. Если возникает несколько однотипных событий, процессу будет подан только один сигнал. Сигнал означает, что произошло событие, но ядро не сообщает сколько таких событий произошло.

Примеры сигналов:

  • окончание порожденного процесса

  • возникновение исключительной ситуации

  • сигналы, поступающие от пользователя при нажатии определенных клавиш.

Средства получения информации о процессах ОС Linux.

Можно использовать существующие утилиты ps и top для просмотра информации о процессах.

Можно заметить, что некоторые процессы указаны в квадратных скобках [ ] – это процессы, которые входят непосредственно в состав ядра и выполняют важные системные задачи, например, такие как управление буферным кэшем и организацией свопинга. Остальная часть процессов относится к пользовательским.

Какую информацию можно получить по каждому процессу (комментарии к некоторым полям):

  • PID, PPID – идентификатор процесса и его родителя.

  • %CPU – доля процессорного времени, выделенная процессу.

  • %MEM – процент используемой оперативной памяти.

  • VSZ – виртуальный размер процесса.

  • TTY – управляющий терминал.

  • STAT– статус процесса:

  1. R выполняется;

  2. S спит;

  3. Z зомби;

  4. < Повышенный приоритет;

  5. + Находится в интерактивном режиме.

  • START время запуска.

  • TIME время исполнения на процессоре.

Команда ps делает моментальный снимок процессов в текущий момент. команда top - динамически выводит состояние процессов и их активность в реальном режиме времени.

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

  1. Функции Win api для мониторинга процессов и потоков ос Windows.

Функция: HANDLE WINAPI CreateToolhelp32Snapshot();

Описание: Функция создает снимок указанного процесса. Возвращает управление созданного снимка.

Функция: BOOL WINAPI Process32First();

Описание: Функция возвращает первый процесс из снимка;

Функция: BOOL WINAPI Process32Next( );

Описание: Функция возвращает следующий процесс из снимка

Функция: HANDLE WINAPI OpenProcess();

Описание: Функция открывает существующий объект процесса. Если функция завершается успешно, величина возвращаемого значения - открытый дескриптор заданного процесса. Если функция завершается с ошибкой, величина возвращаемого значения ПУСТО (NULL).

Дескриптор, возвращенный функцией OpenProcess, может быть использован в любой функции, которая требует дескриптора процесса

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]