Материал: Контрольная работа (вариант 19)

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

Федеральное Агентство Связи Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»

Центр заочного обучения по программам бакалавриата

Кафедра «Мультимедийных сетей и услуг связи»

Дисциплина: Распределенные операционные системы

Контрольная работа

«Файлы: имена, структура, типы атрибуты файлов, доступ и операции с файлами»

Выполнил: Иванов Иван, студент группы БСТ17xx Тема №19

Проверил:

Москва, 2020

Введение

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

В 1952 году слово file отнесли к колоде перфокарт. Поначалу словом file называли само устройство памяти, а не его содержимое. Например, диски IBM 350, использовавшиеся, например, в машине IBM 305, назывались disk files. Системы наподобие Compatible Time-Sharing System ввели концепцию файловой системы, когда на одном запоминающем устройстве существует несколько виртуальных «устройств памяти», что и дало слову «файл» современное значение. Имена файлов в CTTS состояли из двух частей, «основного имени» и «дополнительного имени» (последнее существует и поныне как расширение имени файла).

Имена файлов

Все типы файлов имеют символьные имена. В иерархически организованных файловых системах обычно используются три типа имен -файлов: простые, составные и относительные.

Простое, или короткое, символьное имя идентифицирует файл в пределах одного каталога. Простые имена присваивают файлам пользователи и программисты, при этом они должны учитывать ограничения ОС как на номенклатуру символов, так и на длину имени. До сравнительно недавнего времени эти границы были весьма узкими. Так, в популярной файловой системе FAT длина имен ограничивались схемой 8.3 (8 символов - имя, 3 символа - расширение), а в файловой системе s5, поддерживаемой многими версиями ОС UNIX, простое символьное имя не могло содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлам легко запоминающиеся названия, ясно говорящие о том, что содержится в этом файле. Поэтому современные файловые системы, а также усовершенствованные варианты уже существовавших файловых систем, как правило, поддерживают длинные простые символьные имена файлов. Например, в файловых системах NTFS и FAT32, входящих в состав операционной системы Windows NT, имя файла может содержать до 255 символов.

В иерархических файловых системах разным файлам разрешено иметь одинаковые простые символьные имена при условии, что они принадлежат разным каталогам. То есть здесь работает схема «много файлов - одно простое имя». Для однозначной идентификации файла в таких системах используется так называемое полное имя.

Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла. Таким образом, полное имя является составным, в котором простые имена отделены друг от друга принятым в ОС разделителем. Часто в качестве разделителя используется прямой или обратный слеш, при этом принято не указывать имя корневого каталога. На рис. 1 два файла имеют простое имя Main.exe, однако их составные имена /depart/main.ехе и /user/anna/main.exe различаются.

Рисунок 1 - Файлы с одинаковыми именами в разных каталогах

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

Файл может быть идентифицирован также относительным именем. Относительное имя файла определяется через понятие «текущий каталог». Для каждого пользователя в каждый момент времени один из каталогов файловой системы является текущим, причем этот каталог выбирается самим пользователем по команде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла. При использовании относительных имен пользователь идентифицирует файл цепочкой имен каталогов, через которые проходит маршрут от текущего каталога до данного файла. Например, если текущим каталогом является каталог /user, то относительное имя файла /user/anna/main.exe выглядит следующим образом: anna/main.exe.

В некоторых операционных системах разрешено присваивать одному и тому же файлу несколько простых имен, которые можно интерпретировать как псевдонимы. В этом случае, так же как в системе с сетевой структурой, устанавливается соответствие «один файл — много полных имен», так как каждому простому имени файла соответствует по крайней мере одно полное имя.

И хотя полное имя однозначно определяет файл, операционной системе проще работать с файлом, если между файлами и их именами имеется взаимно однозначное соответствие. С этой целью она присваивает файлу уникальное имя, так что справедливо соотношение «один файл - одно уникальное имя». Уникальное имя существует наряду с одним или несколькими символьными именами, присваиваемыми файлу пользователями или приложениями. Уникальное имя представляет собой числовой идентификатор и предназначено только для операционной системы. Примером такого уникального имени файла является номер индексного дескриптора в системе UNIX.

Файловые структуры

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

Рисунок 2 - Пример многоуровневой структуры

Корневой каталог (папка) содержит вложенные каталоги (папки) первого уровня, каждый из каталогов (папок) первого уровня может содержать вложенные каталоги (папки) второго уровня и т. д. В каталогах (папках) всех уровней могут храниться и файлы.

Иерархическую файловую структуру можно увидеть в окне «Проводник» ОС Windows. На верхнем уровне иерархии находится папка «Рабочий стол»; на втором уровне находятся системные папки «Мой компьютер», «Сетевое окружение», «Корзина» и т. д. На третьем уровне – диски, панель управления и т. д.

Структура файла

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

  • строками, если это текстовый файл;

  • двоичными данными фиксированной длины;

  • двоичными данными переменной длины.

Файлы сложной структуры могут быть самого разного вида, например:

  • отформатированным документом Microsoft Office (такой файл, кроме собственно текста, содержит управляющие символы переключения шрифтов, цветов и т.д.);

  • загрузочным модулем реального или виртуального двоичного кода, например, portable executable (PE) -файлом для платформы .NET; class-файлом для платформы Java; подобные файлы состоят из нескольких секций, содержат внутренние ссылки и таблицы и т.д.

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

Файлы интерпретируются операционной системой или программами их обработки.

Типы атрибутов файлов

Атрибуты для файловых систем FAT32, FAT12, FAT16, NTFS, HPFS, VFAT:

  • «Read only» - (только для чтения). Защищает файл от редактирования.

  • «System» - (системный). Критический для работы операционной системы файл.

  • «Hidden» - (скрытый). Файл с таким атрибутом не отображается в папке, в которой находится. Однако в операционных системах предусмотрена возможность отображения скрытых файлов при желании.

  • «Archive» - (архивный). Файл изменён после резервного копирования или не был скопирован программами резервного копирования; при изменении файла ОС автоматически устанавливает этот атрибут.

Атрибуты для ext2:

  • SUID - (Установка пользовательского ID). Выполнение программы от имени владельца.

  • SGID – (Установка группового ID). Выполнение программы от имени группы (для каталогов: любой файл созданный в каталоге с установленным SGID, получит заданную группу-владельца).

  • Sticky Bit – (Липкий бит). Изначально предписывал ядру не выгружать завершившуюся программу из памяти сразу, а лишь спустя некоторое время, чтобы избежать постоянной загрузки с диска наиболее часто используемых программ, в настоящее время в разных ОС используется по-разному.

Операции над файлами

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

  • Создание файла (Create). Создается заголовок файла, первоначально его содержимое (память) пусто.

  • Запись в файл (Write). Как правило, происходит записями (records) или блоками - более крупными логическими единицами информации, объединяющими несколько записей, с целью оптимизации операций ввода-вывода.

  • Чтение из файла (Read). Обычно также выполняется записями или блоками.

  • Поиск позиции внутри файла (позиционирование) (Seek). Позиция задается номером записи или блока, либо специальными именами, обозначающими начало файла (позиция перед первой записью) или конец файла (позиция после последней записи).

  • Удаление файла (Delete). В зависимости от реализации системы файлов, ошибочное удаление файла может быть фатальным (UNIX) или исправимым (MS DOS).

  • Сокращение файла (Truncate).

  • Открытие файла (Open) – поиск файла в структуре директорий по его символьному имени (пути) и считывание его заголовка и одного или нескольких смежных блоков в буфера в основной памяти.

  • Закрытие файла (Close) - запись содержимого буферов в блоки файла, обновление файла во внешней памяти в соответствии с его текущим состоянием, освобождение всех структур в основной памяти, связанных с файлом.

Методы доступа к файлам

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

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

Список литературы:

  1. https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB

  2. https://it.wikireading.ru/48128

  3. Лекционные материалы Волгодонского инженерно-технического института НИЯУ МИФИ по предмету ОС

  4. Учебные материалы Гомельского государственного университета им. Франциска Скорины

  5. Учебные материалы Северо-Кавказского института РАНХиГС (СКАГС)

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