Системное программное обеспечение — комплекс программ, которые обеспечивают управление компонентами компьютерной системы, такими как процессор, оперативная память, устройства ввода-вывода, сетевое оборудование, выступая как «межслойный интерфейс», с одной стороны которого аппаратура, а с другой — приложения пользователя. В отличие от прикладного программного обеспечения, системное не решает конкретные практические задачи, а лишь обеспечивает работу других программ, предоставляя им сервисные функции, абстрагирующие детали аппаратной и микропрограммной реализации вычислительной системы, управляет аппаратными ресурсами вычислительной системы.
Системное программирование — создание системного программного обеспечения, системный программист — программист, специализирующийся на системном программировании.
Отнесение того или иного программного обеспечения к системному условно, и зависит от соглашений, используемых в конкретном контексте. Как правило, к системному программному обеспечению относятся операционные системы, утилиты системы программирования, системы управления базами данных, широкий класс связующего программного обеспечения.
#1 «Классификация данных. Файловая система как прообраз баз данных»
Прикладная программа или приложение — программа, предназначенная для выполнения определенных пользовательских задач и рассчитанная на непосредственное взаимодействие с пользователем. В большинстве операционных систем прикладные программы не могут обращаться к ресурсам компьютера напрямую, а взаимодействуют с оборудованием и проч. посредством операционной системы. Также на простом языке — вспомогательные программы.
Файл (англ. file) — блок информации на внешнем запоминающем устройстве компьютера, имеющий определённое логическое представление (начиная от простой последовательности битов или байтов и заканчивая объектом сложной СУБД), соответствующие ему операции чтения-записи (см. ниже) и, как правило, фиксированное имя (символьное или числовое), позволяющее получить доступ к этому файлу и отличить его от других файлов (см. ниже).
Работа с файлами реализуется средствами операционных систем. Многие операционные системы приравнивают к файлам и обрабатывают сходным образом и другие ресурсы:
· области данных (необязательно на диске);
· устройства — как физические, например, порты или принтеры, так и виртуальные (генератор случайных чисел);
· потоки данных (именованный канал);
· сетевые ресурсы, сокеты;
· объекты операционной системы.
И́мя фа́йла — строка символов, однозначно определяющая файл в некотором пространстве имёнфайловой системы (ФС), обычно называемом каталогом, директорией или папкой. Имена файлов строятся по правилам, принятым в той или иной файловой и операционной системах (ОС). Многие системы позволяют назначать имена как обычным файлам, так и каталогам и специальным объектам (символическим ссылкам, блочным устройствам и т. п.).
Имя файла является частью полного имени файла, также называемого полным илиабсолютным путём к файлу. Полное имя может включать следующие компоненты:
Файлы и каталоги | Информатика 7 класс #14 | Инфоурок
· протокол или способ доступа (http, ftp, file и т. п.);
· имя или адрес компьютера, узла сети (wikipedia.org, 207.142.131.206, \MYCOMPUTER,SYS: и т. п.);
· устройство хранения, диск (C:, /, SYSLIB и т. п.);
· путь к каталогу (/usr/bin, TEMP, [USR.LIB.SRC] и т. п.);
· собственно имя файла, которое может содержать его расширение (.txt,.exe,.COM и т. п.);
· версия или номер ревизии [уточнить] .
Имя файла необходимо для того, чтобы к файлу мог обратиться пользователь. В одном каталоге не может быть двух файлов с одинаковыми именами (некоторые файловые системы регистронезависимы, что оставляет возможность для создания файлов, имена которых отличаются регистром символов).
Имя файла состоит из двух частей, разделенных точкой:
· Название (до точки, часто также называют именем);
· Расширение (необязательная часть).
Таблица 2 – Типы файлов
Файловая система (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.
Файловая система связывает носитель информации с одной стороны и API для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте, блоке флеш-памяти или другом) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).
С точки зрения операционной системы (ОС), весь диск представляет собой набор кластеров (как правило, размером 512 байт и больше). Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.
Однако файловая система не обязательно напрямую связана с физическим носителем информации. Существуют виртуальные файловые системы, а также сетевые файловые системы, которые являются лишь способом доступа к файлам, находящимся на удалённом компьютере.
Источник: mydocx.ru
Глава 3.6. Прикладной уровень программного обеспечения. Основные объекты, программы и форматы файлов.
Пользователь ПК работает в основном с информационными объектами прикладного уровня. Это различные документы, электронные таблицы, базы данных, презентации, музыкальные композиции, видеофильмы и т.д. Информационный объект возникает только в процессе обработки данных соответствующей программой. Например, результатом обработки текстового файла программой Блокнот является текстовой документ, а результатом обработки MP3-файла программойWindows Media – музыкальная композиция или видеофильм. Если же обработатьMP3-файл программой Блокнот, то никакого осмысленного результата не получится, т.к. этот процесс не соответствует никакому информационному объекту.
Из сказанного следует, что основные компоненты прикладного информационного объекта – прикладная программа и обрабатываемый файл данных – должны соответствовать друг другу. Это соответствие достигается при помощи определенного порядка размещения данных в файле, называемого форматом файла. Для отображения формата файла в его названии используется расширение – последняя часть имени файла, отделенная от остального имени точкой. Часто для краткого указания формата файла называют его расширение. Например,mp3-файл означает мультимедийный файл форматаmp3,txt – файл –простой текстовой документ,doc – файл – файл документа текстового процессораMS Word и т.д.
Рассмотрим наиболее часто встречающиеся прикладные информационные объекты, соответствующие прикладные программы и форматы файлов.
Текстовые документы– это документы, имеющие текстовую основу, т.е. содержащие основную информацию в виде текста. Кроме текста такой документ может содержать и другие (нетекстовые) объекты – изображения, графики, диаграммы, таблицы, ссылки и т.д., но эти объекты в текстовом документе являются дополнительными.
Простейший текстовой документ содержит только текст и обрабатывается программами, которые называются текстовыми редакторами. Примером текстового редактора является программа Блокнот.
В настоящее время гораздо чаще встречаются более сложные текстовые документы, включающие значительную долю графических и других нетекстовых объектов. Программы, работающие с такими документами, называются текстовыми процессорами.
Они позволяют использовать различные шрифты символов, абзацы произвольной формы, автоматически переносят слова на новую строку, позволяют делать сноски, включать рисунки, автоматически нумеруют страницы и сноски и т.д. Примером текстового процессора являетсяMicrosoft Word (MS Word). Файлы документовMS Word имеют форматdoc (только дляMS Word) илиrtf (более универсальный формат, поддерживаемый большинством текстовых редакторов и процессоров). Подробно текстовой процессорMS Word рассматривается в разделе5.
Другим широко используемым форматом текстовых документов является формат pdf, разработанный фирмойAdobe. Особенностью этого формата является возможность защиты – соответствующий документ можно отобразить на экране или распечатать только при помощи одной специальной программы –Adobe Acrobat Reader, которая не дает возможности изменить текст или скопировать текст в другой файл в другом формате. Это означает, что документ может распространяться только в том виде, в котором его подготовил автор, внесение изменений в документ или копирование его частей невозможны. Таким образом, форматpdf обеспечивает техническую возможность защиты авторских прав. Поэтому многие публикации, распространяемые на электронных носителях или размещенные в сети Интернет, используют форматpdf.
Электронные таблицы– это документы позволяющие хранить и обрабатывать большие объемы текстовых и числовых данных, представленных в виде прямоугольных таблиц. Программы, работающие с электронными таблицами, называются табличными процессорами. Примером такой программы являетсяMS Excel. При работе с табличным процессором на экран выводится прямоугольная таблица, в клетках которой могут находиться числа, пояснительные тексты и формулы для расчета значения в клетке по именующимся данным. Все распространенные табличные процессоры позволяют вычислять значения элементов таблиц по заданным формулам, строить по данным в таблицах различные графики и т.д. Файлы электронных таблиц процессораMS Excel имеют расширениеxls.Подробно табличный процессорMS Excel рассматривается в разделе 6.
Графические объекты– это различные изображения, фотографии, рисунки и т.д. Существует большое количество программ, работающих с графическими объектами, и большое количество различных форматов графических файлов. Рассмотрим некоторые, наиболее важные из них.
Форматы графических файлов можно разделить на 2 большие группы – растровые форматы и векторные форматы.
Растровый формат представляет изображение как набор цветных точек – пикселей. Т.к. все пиксели имеют одинаковый размер, а длина и ширина изображения заданы, то в файл достаточно записать только цвет каждого пикселя, координаты его определятся автоматически по порядковому номеру в файле.
Указанная схема кодирования изображения соответствует наиболее простому и универсальному графическому формату bmp (Bit Map Pixels). Главный недостаток этого формата – большой объем получающихся файлов.
Причем, этот объем не зависит от информативности изображения – и для фотографии с большим количеством мелких деталей, и для одноцветного тона он будет одним и тем же при одинаковом количестве пикселей, формирующих изображение. Однако этот формат можно рассматривать как базисный, т.к. он соответствует непосредственной записи пиксельной матрицы, которая собственно и отображается на экране монитора при выводе изображения.
Усилия по разработке более компактных растровых графических форматов привели к появлению форматовjpeg (jpg), , png, tiff, djvu,gif и др. Все эти форматы основаны на предварительной обработке пиксельной матрицы с целью уменьшения объема данных без существенной потери качества.
Так, форматjpg позволяет уменьшить в несколько раз даже объем достаточно сложного рисунка. Это наиболее распространенный в настоящее время формат для хранения фотографий, он широко используется, например, для изображений в сети Интернет. Форматpng был разработан послеjpg, похож на него, но предоставляет более широкие возможности, например, возможность внутренней анимации.
Форматыtiff иdjvu используются для хранения отсканированных текстов. Особенно большие возможности представляет форматdjvu, разработанный специально для хранения электронных копий старых книг. Форматgif является очень компактным, т.к. основан не на записиRGB-кодов пикселей, а на записи так называемых индексов цвета – номеров цвета в используемом наборе цветов (палитре).
Для записи индекса цвета требуется не 3 байта, как дляRGB кода, а всего 1 байт. Однако это уменьшение объема достигается за счет уменьшения (до 256) количества возможных оттенков, поэтому фотографии в форматеgif получаются низкого качества. Для изображений маленького объема, а также для изображений, использующих фиксированный набор цветов (графики, диаграммы, географические карты и т.д.) форматgif подходит очень хорошо. Форматgif позволяет создавать анимированное изображение, что также обеспечивает его популярность.
Векторный графический формат представляет изображение в виде набора цветных линий. В простейшем случае все линии – отрезки, но чаще используется более широкий набор линий – дуги окружностей, эллипсов, гипербол и парабол и т.д.
С точки зрения возможностей масштабирования и редактирования векторный формат имеет значительные преимущества перед растровым – изображения можно выводить в любом масштабе без потери качества, удалять или вносить сложные элементы как единое целое и т.д. Но, векторный формат менее универсален, чем растровый — перевод фотографии или отсканированного рисунка в векторный формат (так называемая трассировка) – достаточно сложная задача, поэтому векторный формат имеет ограниченное применение. Он используется в основном для объектов, которые создаются на компьютере – чертежей, рисованных изображений и т.д. Особенно широко векторный формат используется в профессиональных художественных, дизайнерских и конструкторских системах, таких как Corel Draw, AutoCAD, 3D Studio Max. Форматы соответствующих файлов -cdr, dwg, 3ds.
Программы, работающие с графическими объектами, подразделяются на отображающие программы, графические редакторы и утилиты. Отображающие программы позволяют увидеть графический объект на экране и распечатать на принтере. Примером является программа ACDSee, при помощи которой удобно создавать и просматривать альбомы фотографий.
Графические редакторы позволяют не только отображать графический объект, но и изменять (редактировать) его. Для этого в графические редакторы включаются различные управляемые мышью виртуальные инструменты – карандаши, ластики, кисти, распылители и т.д. Наиболее простой графический редактор, работающий с растровыми изображениями, — это редакторMS Paint, входящий в ОСWindows.
Более широкие возможности предоставляет растровый графический редакторPhotoshop фирмыAdobe. Пример векторного графического редактора – уже упомянутыйCorel Draw. Графические утилиты позволяют осуществить важные дополнительные функции. Например, программы — конверторы переводят файлы из одного графического формата в другой. Часто графические утилиты входят в состав графических редакторов.
Гипертекстовые объекты– этоWeb-страницы и сайты, при помощи которых информация размещается во Всемирной Паутине (WWW), представляющей главный ресурс сети Интернет. Одними из главных элементов гипертекстового объекта являются гиперссылки, создающие связь между различными гипертекстовыми объектами, расположенными на разных компьютерах.
Основу формата гипертекстовых файлов составляет язык разметки гипертекста HTML(Hyper Text Markup Language), но в такой файл могут быть включены также фрагменты кода на других языках программирования (Java, Java Script, PHP, Visual Basic и др.). Гипертекстовые файлы похожи по структуре на файлы текстовых процессоров, но являются гораздо более универсальными.
Программы, работающие с гипертекстовыми объектами – это браузеры (обозреватели), позволяющие запросить и отобразить гипертекстовой объект. Другой тип программ – гипертекстовые редакторы, позволяющие изменить гипертекстовой объект или создать новый объект. Примером браузера является программа Internet Explorer, примером гипертекстового редактора – программаFront Page.
Мультимедийные объекты– это цифровые видеоклипы, видеофильмы и музыкальные композиции. Основные форматы файлов для таких объектов – это уже рассмотренные форматыMPEG (MP3, MP4). Основные программы, работающие с мультимедийными объектами – это программы, проигрывающие мультимедийные файлы. Примерами таких программ являютсяMicrosoft Media Player иQuick Time. Существуют также программы, позволяющие создавать и редактировать мультимедийные объекты, например, программа Звукозапись, позволяющая осуществить запись звука с микрофона или программаWindows Mover Maker, позволяющая смонтировать видеоклип.
Базы данных– это специальные информационные структуры, содержащие большой объем однородной информации и предоставляющие доступ к этой информации, включая эффективные средства поиска. Примерами баз данных является база абонентов МГТС содержащая адреса и номера телефонов всех абонентов Московской городской телефонной сети.
Базы данных управляются специальными программами, которые называются СУБД (Системы управления базами данных). База данных и соответствующая СУБД составляют неразрывное целое. СУБД позволяют обрабатывать на компьютере массивы информации, обеспечивают ввод, поиск, сортировку выборку записей, составление отчетов и т.д. Пример СУБД для ПК –MicrosoftAccess. Соответствующий формат файлов –mdb.
Правовые базы данныхсодержат тексты нормативных документов и предоставляют возможности справки, контекстного поиска, распечатки и т.д. Представители правовых баз данных – пакеты Гарант и Консультант Плюс.
Системы автоматизированного проектирования(САПР) позволяют осуществлять черчение и конструирование различных предметов и механизмов с помощью компьютера. Среди систем малого и среднего класса в мире наиболее популярна системаAutoCADфирмыAutoDesk. Отечественный пакет с аналогичными функциями – система Компас.
Интегрированные офисные системысочетают в себе возможность системы управления базами данных, табличного процессора, текстового редактора, системы деловой графики, а иногда и другие возможности. Как правило, все компоненты интегрированной системы имеют схожий интерфейс, что облегчает обучение работе с ними. Представители интегрированных систем – пакетMicrosoftOfficeи его бесплатный аналогOpenOffice.
Бухгалтерские системыпредназначены для ведения бухгалтерского учета, подготовки финансовой отчетности и финансового анализа деятельности предприятий. Из-за различий отечественного бухгалтерского учета с зарубежным в нашей стране используются почти исключительно отечественные бухгалтерские программы. Наиболее распространены системы 1C: Бухгалтерия, 1С Предприятие, Инфо-бухгалтер.
Корпоративные информационные системы(КИС) обеспечивают единую информационную среду предприятия (организации), доступ каждого сотрудника ко всем информационным ресурсам, необходимым для работы, структурированную защиту информации, электронный документооборот и электронную систему управления. Такие системы специально разрабатываются для каждого предприятия с учетом специфики его работы и функционируют в рамках корпоративной компьютерной сети.
Приведенный перечень объектов прикладного уровня является далеко не полным. Современное развитие информационных технологий приводит к тому, что практически в каждой области человеческой деятельности формируется виртуальная составляющая, основанная на работе с информационными объектами, специфическими для этой области. Например, в технических отраслях создаются модели сложных технических устройств – самолетов, автомобилей, радиотехнических систем, в метеорологии – модели атмосферных явлений, в биологии – модели клеток и организмов и т.д. Все такие модели, реализованные в виде компонентов прикладного ПО, являются прикладными информационными объектами.
Источник: studfile.net
Файлы с точки зрения пользователя
Аннотация: В настоящей лекции вводится понятие и рассматриваются основные функции и интерфейс файловой системы.
Введение
История систем управления данными во внешней памяти начинается еще с магнитных лент, но современный облик они приобрели с появлением магнитных дисков. До этого каждая прикладная программа сама решала проблемы именования данных и их структуризации во внешней памяти . Это затрудняло поддержание на внешнем носителе нескольких архивов долговременно хранящейся информации. Историческим шагом стал переход к использованию централизованных систем управления файлами . Система управления файлами берет на себя распределение внешней памяти , отображение имен файлов в адреса внешней памяти и обеспечение доступа к данным.
Файловая система — это часть операционной системы, назначение которой состоит в том, чтобы организовать эффективную работу с данными, хранящимися во внешней памяти , и обеспечить пользователю удобный интерфейс при работе с такими данными. Организовать хранение информации на магнитном диске непросто.
Это требует, например, хорошего знания устройства контроллера диска, особенностей работы с его регистрами. Непосредственное взаимодействие с диском — прерогатива компонента системы ввода-вывода ОС, называемого драйвером диска. Для того чтобы избавить пользователя компьютера от сложностей взаимодействия с аппаратурой, была придумана ясная абстрактная модель файловой системы. Операции записи или чтения файла концептуально проще, чем низкоуровневые операции работы с устройствами.
Основная идея использования внешней памяти состоит в следующем. ОС делит память на блоки фиксированного размера, например, 4096 байт. Файл , обычно представляющий собой неструктурированную последовательность однобайтовых записей, хранится в виде последовательности блоков (не обязательно смежных); каждый блок хранит целое число записей.
В некоторых ОС (MS-DOS) адреса блоков, содержащих данные файла , могут быть организованы в связный список и вынесены в отдельную таблицу в памяти. В других ОС (Unix) адреса блоков данных файла хранятся в отдельном блоке внешней памяти (так называемом индексе или индексном узле). Этот прием, называемый индексацией , является наиболее распространенным для приложений, требующих произвольного доступа к записям файлов . Индекс файла состоит из списка элементов, каждый из которых содержит номер блока в файле и сведения о местоположении данного блока. Считывание очередного байта осуществляется с так называемой текущей позиции, которая характеризуется смещением от начала файла . Зная размер блока, легко вычислить номер блока, содержащего текущую позицию. Адрес же нужного блока диска можно затем извлечь из индекса файла . Базовой операцией, выполняемой по отношению к файлу , является чтение блока с диска и перенос его в буфер , находящийся в основной памяти.
Файловая система позволяет при помощи системы справочников ( каталогов , директорий ) связать уникальное имя файла с блоками вторичной памяти, содержащими данные файла . Иерархическая структура каталогов , используемая для управления файлами , может служить другим примером индексной структуры. В этом случае каталоги или папки играют роль индексов, каждый из которых содержит ссылки на свои подкаталоги. С этой точки зрения вся файловая система компьютера представляет собой большой индексированный файл . Помимо собственно файлов и структур данных, используемых для управления файлами ( каталоги , дескрипторы файлов , различные таблицы распределения внешней памяти ), понятие » файловая система » включает программные средства , реализующие различные операции над файлами .
Перечислим основные функции файловой системы.
- Идентификация файлов . Связывание имени файла с выделенным ему пространством внешней памяти .
- Распределение внешней памяти между файлами . Для работы с конкретным файлом пользователю не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того чтобы загрузить документ в редактор с жесткого диска, нам не нужно знать, на какой стороне какого магнитного диска, на каком цилиндре и в каком секторе находится данный документ.
- Обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера.
- Обеспечение защиты от несанкционированного доступа.
- Обеспечение совместного доступа к файлам , так чтобы пользователю не приходилось прилагать специальных усилий по обеспечению синхронизации доступа.
- Обеспечение высокой производительности.
Иногда говорят, что файл — это поименованный набор связанной информации, записанной во вторичную память. Для большинства пользователей файловая система — наиболее видимая часть ОС. Она предоставляет механизм для онлайнового хранения и доступа как к данным, так и к программам для всех пользователей системы. С точки зрения пользователя, файл — единица внешней памяти , то есть данные, записанные на диск, должны быть в составе какого-нибудь файла .
Важный аспект организации файловой системы — учет стоимости операций взаимодействия с вторичной памятью. Процесс считывания блока диска состоит из позиционирования считывающей головки над дорожкой, содержащей требуемый блок, ожидания, пока требуемый блок сделает оборот и окажется под головкой, и собственно считывания блока. Для этого требуется значительное время (десятки миллисекунд). В современных компьютерах обращение к диску осуществляется примерно в 100 000 раз медленнее, чем обращение к оперативной памяти. Таким образом, критерием вычислительной сложности алгоритмов, работающих с внешней памятью , является количество обращений к диску.
В данной лекции рассматриваются вопросы структуры, именования, защиты файлов ; операции , которые разрешается производить над файлами ; организация файлового архива (полного дерева справочников). Проблемы выделения дискового пространства, обеспечения производительной работы файловой системы и ряд других вопросов, интересующих разработчиков системы, вы найдете в следующей лекции.
Общие сведения о файлах
Имена файлов
Файлы представляют собой абстрактные объекты. Их задача — хранить информацию, скрывая от пользователя детали работы с устройствами. Когда процесс создает файл , он дает ему имя. После завершения процесса файл продолжает существовать и через свое имя может быть доступен другим процессам.
Правила именования файлов зависят от ОС. Многие ОС поддерживают имена из двух частей (имя+расширение), например progr.c ( файл , содержащий текст программы на языке Си) или autoexec.bat ( файл , содержащий команды интерпретатора командного языка). Тип расширения файла позволяет ОС организовать работу с ним различных прикладных программ в соответствии с заранее оговоренными соглашениями. Обычно ОС накладывают некоторые ограничения, как на используемые в имени символы, так и на длину имени файла . В соответствии со стандартом POSIX, популярные ОС оперируют удобными для пользователя длинными именами (до 255 символов).
Типы файлов
Важный аспект организации файловой системы и ОС — следует ли поддерживать и распознавать типы файлов . Если да, то это может помочь правильному функционированию ОС, например не допустить вывода на принтер бинарного файла .
Основные типы файлов : регулярные (обычные) файлы и директории (справочники, каталоги ). Обычные файлы содержат пользовательскую информацию. Директории — системные файлы , поддерживающие структуру файловой системы. В каталоге содержится перечень входящих в него файлов и устанавливается соответствие между файлами и их характеристиками ( атрибутами ). Мы будем рассматривать директории ниже.
Напомним, что хотя внутри подсистемы управления файлами обычный файл представляется в виде набора блоков внешней памяти , для пользователей обеспечивается представление файла в виде линейной последовательности байтов. Такое представление позволяет использовать абстракцию файла при работе с внешними устройствами, при организации межпроцессных взаимодействий и т. д. Так, например, клавиатура обычно рассматривается как текстовый файл , из которого компьютер получает данные в символьном формате. Поэтому иногда к файлам приписывают другие объекты ОС, например специальные символьные файлы и специальные блочные файлы , именованные каналы и сокеты, имеющие файловый интерфейс. Эти объекты рассматриваются в других разделах данного курса.
Далее речь пойдет главным образом об обычных файлах.
Обычные (или регулярные) файлы реально представляют собой набор блоков (возможно, пустой) на устройстве внешней памяти , на котором поддерживается файловая система. Такие файлы могут содержать как текстовую информацию (обычно в формате ASCII), так и произвольную двоичную (бинарную) информацию.
Текстовые файлы содержат символьные строки, которые можно распечатать, увидеть на экране или редактировать обычным текстовым редактором.
Другой тип файлов — нетекстовые, или бинарные, файлы . Обычно они имеют некоторую внутреннюю структуру. Например, исполняемый файл в ОС Unix имеет пять секций: заголовок, текст, данные, биты реаллокации и символьную таблицу. ОС выполняет файл , только если он имеет нужный формат. Другим примером бинарного файла может быть архивный файл . Типизация файлов не слишком строгая.
Обычно прикладные программы, работающие с файлами , распознают тип файла по его имени в соответствии с общепринятыми соглашениями. Например, файлы с расширениями .c , .pas , .txt — ASCII-файлы, файлы с расширениями .exe — выполнимые, файлы с расширениями .obj , .zip — бинарные и т. д.
Атрибуты файлов
Кроме имени ОС часто связывают с каждым файлом и другую информацию, например дату модификации, размер и т. д. Эти другие характеристики файлов называются атрибутами . Список атрибутов в разных ОС может варьироваться. Обычно он содержит следующие элементы: основную информацию (имя, тип файла ), адресную информацию (устройство, начальный адрес, размер), информацию об управлении доступом (владелец, допустимые операции) и информацию об использовании (даты создания, последнего чтения, модификации и др.).
Список атрибутов обычно хранится в структуре директорий (см. следующую лекцию) или других структурах, обеспечивающих доступ к данным файла .
Организация файлов и доступ к ним
Программист воспринимает файл в виде набора однородных записей. Запись — это наименьший элемент данных , который может быть обработан как единое целое прикладной программой при обмене с внешним устройством. Причем в большинстве ОС размер записи равен одному байту.
В то время как приложения оперируют записями, физический обмен с устройством осуществляется большими единицами (обычно блоками). Поэтому записи объединяются в блоки для вывода и разблокируются — для ввода. Вопросы распределения блоков внешней памяти между файлами рассматриваются в следующей лекции.
ОС поддерживают несколько вариантов структуризации файлов .
Последовательный файл
Простейший вариант — так называемый последовательный файл . То есть файл является последовательностью записей. Поскольку записи, как правило, однобайтовые, файл представляет собой неструктурированную последовательность байтов.
Обработка подобных файлов предполагает последовательное чтение записей от начала файла , причем конкретная запись определяется ее положением в файле . Такой способ доступа называется последовательным (модель ленты). Если в качестве носителя файла используется магнитная лента, то так и делается. Текущая позиция считывания может быть возвращена к началу файла ( rewind ).
Файл прямого доступа
В реальной практике файлы хранятся на устройствах прямого (random) доступа, например на дисках, поэтому содержимое файла может быть разбросано по разным блокам диска, которые можно считывать в произвольном порядке. Причем номер блока однозначно определяется позицией внутри файла .
Здесь имеется в виду относительный номер, специфицирующий данный блок среди блоков диска, принадлежащих файлу . О связи относительного номера блока с абсолютным его номером на диске рассказывается в следующей лекции.
Естественно, что в этом случае для доступа к середине файла просмотр всего файла с самого начала не обязателен. Для специфицирования места, с которого надо начинать чтение, используются два способа: с начала или с текущей позиции, которую дает операция seek. Файл , байты которого могут быть считаны в произвольном порядке, называется файлом прямого доступа .
Таким образом, файл , состоящий из однобайтовых записей на устройстве прямого доступа, — наиболее распространенный способ организации файла . Базовыми операциями для такого рода файлов являются считывание или запись символа в текущую позицию. В большинстве языков высокого уровня предусмотрены операторы посимвольной пересылки данных в файл или из него.
Подобную логическую структуру имеют файлы во многих файловых системах, например в файловых системах ОС Unix и MS-DOS. ОС не осуществляет никакой интерпретации содержимого файла . Эта схема обеспечивает максимальную гибкость и универсальность. С помощью базовых системных вызовов (или функций библиотеки ввода/вывода) пользователи могут как угодно структурировать файлы . В частности, многие СУБД хранят свои базы данных в обычных файлах .
Другие формы организации файлов
Известны как другие формы организации файла , так и другие способы доступа к ним, которые использовались в ранних ОС, а также применяются сегодня в больших мэйнфреймах (mainframe), ориентированных на коммерческую обработку данных.
Первый шаг в структурировании — хранение файла в виде последовательности записей фиксированной длины, каждая из которых имеет внутреннюю структуру. Операция чтения производится над записью, а операция записи переписывает или добавляет запись целиком. Ранее использовались записи по 80 байт (это соответствовало числу позиций в перфокарте) или по 132 символа (ширина принтера). В ОС CP/M файлы были последовательностями 128-символьных записей. С введением CRT-терминалов данная идея утратила популярность.
Другой способ представления файлов — последовательность записей переменной длины, каждая из которых содержит ключевое поле в фиксированной позиции внутри записи (см. рис. 11.1). Базисная операция в данном случае — считать запись с каким-либо значением ключа. Записи могут располагаться в файле последовательно (например, отсортированные по значению ключевого поля) или в более сложном порядке. Метод доступа по значению ключевого поля к записям последовательного файла называется индексно-последовательным.
Рис. 11.1. Файл как последовательность записей переменной длины
В некоторых системах ускорение доступа к файлу обеспечивается конструированием индекса файла . Индекс обычно хранится на том же устройстве, что и сам файл , и состоит из списка элементов, каждый из которых содержит идентификатор записи, за которым следует указание о местоположении данной записи. Для поиска записи вначале происходит обращение к индексу, где находится указатель на нужную запись. Такие файлы называются индексированными, а метод доступа к ним — доступ с использованием индекса.
Предположим, у нас имеется большой несортированный файл , содержащий разнообразные сведения о студентах, состоящие из записей с несколькими полями, и возникает задача организации быстрого поиска по одному из полей, например по фамилии студента. Рис. 11.2 иллюстрирует решение данной проблемы — организацию метода доступа к файлу с использованием индекса.
Рис. 11.2. Пример организации индекса для последовательного файла
Следует отметить, что почти всегда главным фактором увеличения скорости доступа является избыточность данных.
Способ выделения дискового пространства при помощи индексных узлов, применяемый в ряде ОС (Unix и некоторых других, см. следующую лекцию), может служить другим примером организации индекса.
В этом случае ОС использует древовидную организацию блоков, при которой блоки, составляющие файл , являются листьями дерева, а каждый внутренний узел содержит указатели на множество блоков файла . Для больших файлов индекс может быть слишком велик. В этом случае создают индекс для индексного файла (блоки промежуточного уровня или блоки косвенной адресации).
Источник: intuit.ru