Материал: Методические указания по выполнению лабораторных работ на языке программирования С# по дисциплине «Системное программное обеспечение». Кремер О.Б

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Рассмотрим, как проходить по загруженным модулям, которые обслуживаются в рамках конкретного процесса. Модуль представляет собой общий термин, используемый для описания определенного файла *.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

свойство

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

Управление файлами в ос

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

Файловая система

Способом работы с файлами является использование системы управления файлами или иначе - файловой системы. Файловая система – это часть операционной системы, включающая:

– совокупность всех файлов на носителе информации (магнитном или оптическом диске, магнитной ленте и др.);

– наборы структур данных, используемых для управления файлами (каталоги и дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске и др.);

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

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

В многозадачных, многопользовательских ОС задачами файловой системы являются:

1) соответствие требованиям управления данными и требованиям со стороны пользователей, включающим возможность хранения данных и выполнения операций с ними;

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

3) обеспечение поддержки совместного использования файлов несколькими пользователями (в том числе средства блокировки файла и его частей, исключение тупиков, согласование копий и т. п.);

4) обеспечение стандартизированного набора подпрограмм интерфейса ввода-вывода.

Минимальным набором требований к файловой системе со стороны пользователя диалоговой системы общего назначения можно считать следующую совокупность возможностей, предоставляемую пользователю:

– создание, удаление, чтение и изменение файлов;

– контролируемый доступ к файлам других пользователей.

– структурирование файлов в соответствии с решаемой задачей;

– перемещение данных между файлами;

– резервирование и восстановление файлов в случае повреждения;

– доступ к файлам по символьным именам.

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

Файлы

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

Таблица 4

Примеры атрибутов файла

Атрибут

Значение

Тип файла

Обычный, каталог, специальный и т. д.

Владелец файла

Текущий владелец

Владелец файла

Текущий владелец

Создатель файла

Идентификатор пользователя, создавшего файл

Пароль

Пароль для получения доступа к файлу

Время

Создания, последнего доступа, последнего изменения

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

Текущий размер файла

Количество байт в записи

Максимальный размер

Количество байтов, до которого можно увеличивать размер файла

Флаг «только чтение»

0 - чтение / запись, 1 - только чтение

Флаг «скрытый»

0 - нормальный, 1 - не показывать в перечне файлов каталога

Флаг «системный»

0 - нормальный, 1 - системный

Флаг «архивный»

0 - заархивирован, 1 - требуется архивация

Флаг «ASCII / двоичный»

0 - ASCII, 1 – двоичный

Флаг «произвольного доступа»

0 - только последовательный доступ, 1 - произвольный доступ

Флаг «временный»

0 - нормальный, 1 - удаление после окончания работы процесса

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

Задание 1. Разработать консольное приложение, позволяющее пользователю определять размер диска и его свободное пространство.

Источник: https://studfile.net/preview/16569123/