Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Структуры файловых систем для пользователя

ФАЙЛОВЫЕ СИСТЕМЫ

Упражнения

1. Разработать программу, которая запускает использование мыши и отображает в верхнем правом углу значения текущих координат указателя мыши, завершая работу при одновременном нажатии на обе клавиши мыши (первую и вторую клавиши). Следует разработать два варианта: один для Windows, другой – для Linux.

2. Разработать программу, которая выводит на экран текст из некоторого файла, инициализирует для программы мышь, и при нажатии на клавиши мыши во время нахождения ее указателя на любом изображаемом экраном слове отображает это слово в нижней строке экрана. Причем если клавиша мыши нажата во время движения, то отображение в нижней строке должно выполняться красным цветом, а если при неподвижной мыши – зеленым. Следует разработать два варианта: один для Windows, другой – для Linux.

3. Разработать для Windows подпрограмму реализации функции kbhit или keypass из стандартных библиотек языков Си и Паскаль, выполняя эту реализацию с помощью системной функции PeekConsoleInput.

 

Практической основой любой ОС служит ее базовая файловая система. Так основой старенькой MS DOS являлась существующая до сих пор файловая система FAT в двух модификациях: FAT16 и FAT12 (соответственно для жестких и гибких дисков). Основой Windows NT служит файловая система NTFS (NT File System), операционная система OS/2 основана на файловой системе HPFS (High Performance File System). OC MS DOS даже основную часть своего названия получила от слова Disk (Disk Operation System). Более того, наличие собственной файловой системы в составе ОС непосредственно определяет само существование ОС, так как более простые программные комплексы, используемые в настоящее время только для микропроцессорных систем и содержащие только средства управления устройствами и интерфейс с пользователем, относятся к так называемым мониторам и управляющим программам для микропроцессоров. (Заметим, что последняя из четырех основных функций, определяющих ОС – обеспечение параллельного использования оборудования и ресурсов – относится только к многопрограммных ОС.)

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

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

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

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

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

Внешняя сторона файловой системы в основном сводится к форме именования файлов в программах. Каждый файл имеет собственное имя, подобно тому, как собственное имя имеет человек, но как и для человека оно может не быть уникальным. Поэтому потребовалось использовать так называемое полное имя файла, которое однозначно обозначает файл в вычислительной системе. Ограничимся пока полным именем в границах отдельного компьютера (об обозначении файлов уникальными обозначениями в пределах сети речь будет идти при рассмотрении каналов передачи данных). Полное имя по своему смыслу аналогично именованию человека, в котором для однозначного толкования приводится информация о местонахождении. Этот прием использовался человечеством с глубокой древности. Так часть имени известного средневекового математика было использовано для обозначения алгоритма (Abu Ja'far Mahammed ibn Musa al-Khowarizmi, т.е. из Хорезма).

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

В первом приближении файловые системы с внешней стороны подразделяются на использующие и на не использующие обозначения логических дисков (в более ранних ОС логическим дискам соответствовало, хотя и не совсем точно, понятие имени тома). Файловые системы типа FAT, NTFS и HPFS используют логические диски, а файловые системы, непосредственно предназначенные для Unix, никогда логических дисков не используют. Применение логических дисков (или ранее имен томов дисков) заметно упрощает для непрофессионального пользователя обозначения файлов: можно указать нахождение файла на логическом диске, где, как он знает, этот файл "лежит". Такой прием показался очень удобным для предшественника операционной системы MS DOS и ее первых версий, предназначавшихся для компьютеров, в которых из дисковой памяти присутствовали только накопители на гибких дисках в количестве нескольких штук. (При этом указывалось, на каком накопителе находится желаемый программистом файл.) До сих пор отзвук этого положения сохранился в ситуации с флоппи-дисками, которые почти всегда теперь именуют буквой A.

Более общий подход использует ОС Unix, где все возможные файлы собраны в одно единственное дерево связями типа "описано в каталоге". Здесь файловое дерево включает три разновидности объектов: обычные файлы, каталоги и специальные файлы. Специальные файлы соответствуют устройствам компьютера: реальным или виртуальным. Дерево внешней структуры файловой системы Unix имеет единственный корень, обозначаемый символом / (прямая разделительная черта – slash). Этот корень является корневым каталогом, перечисляющим каталоги следующего уровня. Любой каталог, отличный от корневого, может содержать любое число обычных файлов и каталогов следующего уровня. С учетом свойств древовидной структуры математического графа (парных связей между объектами) любой узел этой структуры можно однозначно задать последовательностью каталогов, через которые идет путь от корневого узла к данному узлу, и собственным обозначением последнего узла в последнем каталоге. При этом допуётимыми являются одинаковые обозначения узлов дерева, если они не связаны непосредственно с одним и тем же каталогом. Таким обѐазом,0требование именования узлов в дереве, а следовательно, и в древовидной структуре файловой системы заключается в уникальности имени в пределах одного каталога. (Формальное описание внешней структуры файловой системы в виде дерева заключается в том, что любой обычный или специальный файл должен быть концевой вершиной - листом, а промежуточные вершины дерева, не являющиеся концевыми, – каталогами.)

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

Последовательность каталогов, задающих путь от корневого узла к данному файлу, так и называется путь (path). В файловых системах FAT, NTFS и HPFS разделителем в такой последовательности каталогов служит символ \ (обратная разделительная черта – backslash). В файловых системах Unix символом разделения в обозначении последовательности каталогов является прямая разделительная черта (символ /). Заметим, что последний вариант на самом деле более практичен, так как обратная разделительная черта является специальным символом в языке Си, и задание этого символа в своем родном значении требует его двойного указания. Поэтому полное имя файла file, находящегося в каталоге с именем user корневого каталога диска C, будет на языке Cи обозначаться текстом "C:\\user\\file", а аналогичное полное имя файла file, находящегося в каталоге с именем usr корневого каталога файловой системы Unix будет на языке Cи обозначаться текстом "/usr/file". (Как говорится, мелочь, а приятно.)

Кроме внутренней информации, хранимой собственно в файле, любой файл может иметь атрибуты доступа. В простейших системах типа FAT и преемственных к ним HPFS и NTFS для обслуживания таких атрибутов служит команда ATTRIB.

Аргументом команды может быть имя отдельного файла или задание совокупности файлов через метасимволы. В простейшей форме – без опций – эта команда выводит атрибуты, обозначаемые символами S, H, R, A (System, Hidden, ReadOnly, Archive). Кроме того, в формах

ATTRIB - атрибут файл

ATTRIB + атрибут файл

эту команду можно использовать для сброса соответствующего атрибута (операция -) или установки его (операция +). При этом атрибут задается одним символом, и в одной команде может быть задано несколько операций сброса или установки атрибутов. Аналогичные действия можно выполнять с помощью утилиты Проводник (EXPLORER) графической оболочки Windows или других визуальных средств просмотра в этой оболочке, которые допускают вызов диалоговой панели Свойства из контекстного меню. Действия над атрибутами в этой панели очевидны по их оформлению. В инструментальной системе FAR быстрым средством вызова диалогового окна получения и изменения атрибутов файла служит комбинация клавиш Ctrl-A (с участием клавиши латинской буквы A).

В Unix системах вместо атрибутов используются характеристики доступа для трех категорий пользователей: самого владельца (или создателя), обозначаемого в командах символом u, для членов его группы (обозначаемых символом g) и всех остальных, обозначаемых символом o (others). Для каждой категории может быть задано независимо от других три типа доступа: по чтению (символ r), по записи (символ w) и по выполнению (символ x). Выдача информации о характеристиках доступа запрашивается командой ls с ключом -l в виде

ls -l имяфайла

Изменение характеристик доступа файла разрешается только его владельцу или администратору и выполняется командой

chmod операция имяфайла

В качестве операции используется запись вида пользователь + типдоступа, где оба операнда задаются в простейшем случае одним символом из указанных выше. Например, установка доступа "по выполнению для всех" задается командой

chmod o+x имяфайла

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

 

 

<== предыдущая лекция | следующая лекция ==>
Системные функции мыши для текстового режима | Методы распределения внешней памяти
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 309; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.076 сек.