Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники 60143.doc
Скачиваний:
6
Добавлен:
01.05.2022
Размер:
1.21 Mб
Скачать

Программная реализация изучения модулей внутри процесса

Рассмотрим, как проходить по загруженным модулям, которые обслуживаются в рамках конкретного процесса. Модуль представляет собой общий термин, используемый для описания определенного файла *.dll (или даже *.ехе), который обслуживается в определенном процессе. При получении доступа к ProcessModuleCollection через свойство Process.Module можно извлекать перечень всех модулей, которые обслуживаются внутри процесса: NET-, COM- или традиционных основанных на С библиотек.

Создадим следующую дополнительную вспомогательную функцию, способную перечислять модули в конкретном процессе на основании предоставляемого PID-идентификатора:

static void EnumModsForPid(int pID)

{

Process theProc = null;

try

{

theProc = Process.GetProcessById(pID);

}

catch

{

Console.WriteLine("-> Неверный PID!");

Console.WriteLine("***********************\n");

return;

}

Console.WriteLine("Модули для процеса: {0}", theProc.ProcessName);

try

{

ProcessModuleCollection theMods = theProc.Modules;

foreach (ProcessModule pm in theMods)

{

string info = string.Format("-> Mod Name: {0}", pm.ModuleName);

Console.WriteLine(info);

}

Console.WriteLine(" *********************** *\n");

}

catch

{

Console.WriteLine("Модули не обнаружены!");

}

}

Результаты работы данного фрагмента программы представлены на рис. 9.

Рис. 9. Перечень модулей в конкретном процессе

Листинг всей программы представлен на рис. 10, рис. 11.

Рис. 10. Листинг всей программы

Рис. 11. Продолжение листинга всей программы

Вопросы по теме:

  1. Что такое процесс? В каких состояниях он может находиться?

  2. Что такое поток? В чем отличие потока и процесса?

  3. Какой информационной структурой процесс представляется в ОС?

Лабораторная работа № 2. Дисковая память и файловая система операционной системы

Цель работы: приобретение навыков создания приложений, использующих стандартные методы получения информации о дисковой памяти, с помощью библиотек базовых классов .NET языка программирования C#.

Теоретический материал Организация работы пользователя с устройством хранения

В настоящее время между пользователем и устройством хранения информации находятся три посредника. В порядке удаления от АО их перечень следующий:

  • BIOS,

  • ОС,

  • программа, в которой непосредственно работает пользователь.

Все они, в сущности, занимаются укрупнением, обобщением наборов действий с устройством для решаемой задачи.

Рассмотрим каждый из этих уровней.

Уровень общения BIOS с АО - с контроллером дисковода. Каждая операция состоит из последовательности команд:

• сброс контроллера;

• разрешение работы контроллера;

• инициализация контроллера;

• определение параметров носителя;

• включение двигателя устройства;

• задержка приблизительно в полсекунды для того, чтобы дать двигателю разогнаться;

• далее повторяются до полного успеха следующие действия:

– перемещение магнитной головки на нужную дорожку;

– проверка результата перемещения;

– установка скорости передачи данных;

– считывание данных с определенного сектора на выбранной дорожке.

Кроме того, в задачу BIOS также входит своевременное обслуживание контроллера, в противном случае он будет либо не готов к приему данных, либо будет простаивать без дела.

Общение на уровне BIOS. Используя прерывания BIOS, программа может за одно действие получить данные с одного или с нескольких секторов, находящихся на выбранной дорожке. Для получения информации с другой дорожки соответствующее прерывание необходимо вызвать повторно.

Понятно, что ни о какой файловой системе речь еще не идет, поскольку само понятие файла в BIOS не определено, и вся работа идет на уровне секторов.

Уровень ОС. Чаще операционная система создает, открывает на чтение и запись, удаляет файлы без ведома пользователя. Сам диск, как отвлеченная единица, не в состоянии обеспечить понятие файла.

Обязательный общий атрибут ОС – реестр (своего рода оглавление), т.е. учетные записи, описывающие принадлежность набора секторов диска конкретному именованному объекту – файлу.

Таблица 3

Некоторые типы System.IO для получения информации о дисках

Имя

Тип

Назначение

DriveInfo

конструктор

Обеспечивает доступ к информации об указанном диске

Name

свойство

Получает имя диска

DriveType

свойство

Получает тип диска

Продолжение табл. 3

IsReady

свойство

Получает признак возможности чтения с диска

DriveFormat

свойство

Получает имя файловой системы, такой как NTFS или FAT32

AvailableFreeSpace

свойство

Указывает сумму доступного свободного пространства на диске

TotalFreeSpace

свойство

Получает общую сумму свободного пространства, доступного на диске

TotalSize

свойство

Получает полный размер пространства памяти на диске

RootDirectory

свойство

Получает корневой каталог диска

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