- •Экзаменационные вопросы и задачи по дисциплине «Системное программирование» (спо)
- •Теоретические вопросы
- •Ответы на теоретические вопросы
- •Опишите назначение и механизм действия системы прерываний компьютера
- •Опишите смысл, назначение и механизм действия процессов
- •Файловая подсистема. Основные понятия. Виды файловых систем
- •Виды файловых систем
- •Управление процессами
- •Файловые системы fat32 и ntfs
- •Сервер сценариев Windows Script Host (wsh). Назначение и возможности
- •Возможности сценариев wsh
- •Объекты wsh: Методы и свойства объекта Wscript
- •Объекты wsh: Методы и свойства объекта WshShell
- •Объекты wsh: Методы и свойства объекта WshNetwork
- •Инструментарий управления Windows wmi – назначение и возможности
- •Использование технологии wmi для сбора сведений об аппаратной конфигурации компьютера
- •Практические задания по системному программированию
- •Решения практических заданий (используйте файлы «Automation.Chm» и «Рецепты wmi.Doc»)
Файловая подсистема. Основные понятия. Виды файловых систем
Для обеспечения удобства работы с записанными на диск сведениями их размещают в файлах. Файл (по-английски File) – папка, скоросшиватель. Файл – это именованная целостная совокупность данных на каком-либо физическом носителе информации. В этом контексте под данными понимается любая информация, включающая программы и исходные данные для их выполнения, результаты выполнения программ, тексты, иллюстрации и т.п.
Под файловой подсистемой понимают функциональную часть ОС, обеспечивающую выполнение операций над файлами. В зависимости от файловой системы набор таких операций может меняться, но при этом всегда обеспечиваются возможности создания и удаления файлов, а также считывание их содержимого и запись информации в них.
Файловая система выполняет следующие функции:
задает возможные способы организации файлов;
реализует методы доступа к содержимому файлов;
определяет способы организации файловой структуры;
предоставляет средства манипулирования файловой структурой, в том числе файлами.
Под способом организации файла понимают логическую структуру файла в терминах его компонентов и взаимосвязей между ними. В настоящее время отсутствует четкая и общепринятая классификация способов организации файлов. В большинстве предложенных вариантов в той или иной степени смешиваются понятия «организация» и «методы доступа», т.к. последние классифицируются проще. Поэтому на практике организация файла зачастую определяется через совокупность допустимых для нее методов доступа.
Методом доступа называют алгоритм запоминания и поиска записей в файле. Наиболее распространенными являются последовательный и прямой методы доступа. При последовательном доступе записи из файла считываются только в порядке их расположения в файле. Поэтому, чтобы обратиться к определенной записи, необходимо считать все предыдущие. При прямом доступе обеспечивается непосредственное обращение к записи по ее номеру в файле.
Метод доступа определяет требования к организации файлов, чтобы он был применим. Так, последовательный метод доступа может быть применен к файлам с любой организацией, а прямой – только к файлам прямого доступа, имеющим специфическую логическую структуру с целью обеспечения адресации каждой записи. ВЗУ налагают свои ограничения на возможные методы доступа к хранимой на них информации. НМД может обеспечить любой метод доступа в связи с возможностью позиционирования головок непосредственно на заданный участок диска. НМЛ же поддерживают только последовательный метод доступа.
Под файловой структурой будем понимать совокупность файлов и взаимосвязей между ними. Файловая система может поддерживать тот или иной вид (способ организации) файловой структуры. В простейшем случае на диске создается каталог всех содержащихся на нем файлов для обеспечения доступа к ним. Более развитые файловые системы поддерживают древовидную (иерархическую) файловую структуру. Существуют и сетевые файловые структуры.
Средства манипулирования файловой структурой обеспечивают изменение конфигурации файловой структуры, в частности, создание, удаление файлов и изменение взаимосвязей между ними, а также изменение содержимого файлов.
Теперь разберемся с самим жестким диском. Физически «жесткий диск» лишь в редких случаях действительно один диск. Обычно это пакет из нескольких (двусторонних) дисков. На стороны дисков ссылаются по номеру головки. Стороны разбиты на дорожки, называемые цилиндрами (по-видимому, со времен магнитных барабанов – когда магнитные диски не были плоскими, а напоминали шарманку). На дорожке располагаются секторы – минимальные порции данных, которые могут быть прочитаны или записаны. Тройка номеров головки, цилиндра и сектора и составляет физический адрес порции данных. Обычно с настоящими физическими адресами имеет дело лишь контроллер диска, извне диск может выглядеть несколько по-другому (происходит трансляция логического адреса в физический). Можно считать, что диск – это непрерывная линейная последовательность секторов. Некоторый фрагмент этой последовательности может быть выделен как раздел (partition) или том. Этот раздел, вместе со способом размещения данных, и является отдельно взятой файловой системой
Таблица размещения файлов
Сразу после загрузочного сектора на логическом диске находятся сектора, содержащие таблицу размещения файлов FAT (File Allocation Table).
В современных операционных системах при создании файла для него не задается начальное распределение памяти в дорожках или секторах. По мере того, как файл увеличивается в размерах, операционная система распределяет этому файлу память динамически в начале свободной области логического дискового пространства, причем не секторами, а кластерами (обычно 2 или более смежных сектора). При этом файл располагается не обязательно в смежных областях диска, он может быть разбросан по разным дорожкам и секторам. На этой основе обеспечивается возможность работы с фрагментированными файлами, что весьма важно для используемого механизма динамического выделения памяти. Фрагментация файлов возникает при их интенсивном создании, удалении и пополнении. Допустим, например, что сначала был создан файл Х, а затем файл Y. Если теперь понадобится дописать данные в файл Х, то они будут размещены в кластерах за файлом Y.
Очевидно, что в этом случае операционная система должна вести учет используемых участков диска. Для каждого файла она должна хранить где-то информацию о том, какому файлу, какие участки диска распределены. В большинстве операционных систем для хранения этой информации используется таблица размещения файлов.
Хотя логически в древовидных файловых системах каждый файл принадлежит определенному каталогу, физически как файл, так и каталог описываются специальными элементами – дескрипторами. Внутри нескольких байтов дескриптора выделяют отдельные группы битов разного назначения. Состав и порядок этих групп зависит от операционной системы. Чаще всего можно встретить следующие группы:
имя файла или каталога;
расширение имени файла;
атрибуты – специальные флаги, управляющие режимами работы с файлом или каталогом;
время создания файла или время его последней модификации;
дата создания файла или дата его последней модификации;
номер первого кластера, распределенного файлу, или список всех кластеров файла;
размер файла в байтах.
Таким образом, на уровне файловой системы файл трактуется как последовательность логических записей. Такая организация называется последовательной. На логическом уровне дисковая память рассматривается как непрерывная последовательность секторов, каждый из которых имеет свой номер. Фрагментация файлов увеличивает время доступа к их содержимому и существенно затрудняет восстановление файлов при разрушении файловой структуры. Поэтому фрагментации файлов следует избегать, регулярно используя для упорядочения размещения информации на диске специальные утилиты-дефрагментаторы.
