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

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

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

Файлы хранятся на магнитных лентах, на магнитных дисках, флэш-памяти и других устройствах внешней памяти.

На магнитной ленте файл имеет следующую структуру:

 

Рис.1.3.4.

В то же время наибольшее распространение получили файловые системы, ориентированные на хранение данных на магнитных дисках. Они имеют структуру, использующую механизм каталогов. В недавнем прошлом широко использовалась файловая система FAT16, затем на смену ей пришла FAT32. В настоящее время для операционной системы Windows широко используется файловая система NTFS.

Принцип работы дисковой системы можно рассмотреть на примере файловой системы FAT16.

Рис. 1.3.4.

Накопитель на магнитном диске представляет собой электромеханическое устройство. Диск с нанесенным магнитным слоем магнитной головкой, управляемой шаговым двигателем, размечен так, что на нем образуются несколько сотен концентрических магнитных дорожек. Каждая дорожка разделена на одинаковое количество сегментов. Каждый сегмент дорожки - это неделимая далее часть хранения данных. Объем сегмента - 512 байт.

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

В файловой системе FAT16 для адресации секторов отведено 16 разрядов, что эквивалентно 65536 адресам сегментов. Таким образом, в системе FAT16 максимальная емкость диска составляет 65536*512 ≈ 33 Мбайт.

Но с увеличением емкости жестких дисков (HDD) пришлось модернизировать систему адресации. Для этого была введена более крупная единица памяти - кластер, объединяющий 2 или 4, 8, 16, 32 или 64 сегмента. Тем самым в рамках FAT16 можно использовать HDD емкостью до 2,1 Гбайт.

Большие потери дискового пространства из-за кластерного строения привели в 1997 году к созданию файловой системы FAT32, в рамках которой можно иметь 232 = 4294967296 адресов. В системе FAT32 можно использовать HDD до 160 Гбайт. В настоящее время файловая система NTFS позволяет работать с дисками терабайтной емкости.

1.3.5. Операционные системы

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

В секторе OS ведущее положение занимают несколько крупных софтверных фирм:

· Microsoft: MS DOS, Windows-95, 98, 2000, XP, NT, Vista, 7.

· IBM: OS/2, OS/400.

· Apple: MacOS: (версии 8,...,10 Leopard).

· Bell: Unix.

· Другие фирмы: FreeBSD, Linux, BeOS, NetWare, Solaris и т.д.

· Для портативных компьютеров: Windows Mobile, Symbian OS, IPhone OS и др.

По способу взаимодействия OS разделяют на пакетный и диалоговый режимы работы. По реализации интерфейса различают текстовый и графический.

Текстовый режим используется в MS DOS, Unix, Linux и некоторых других OS. Графическими оболочками снабжены почти все существующие OS: Windows, MacOS и т.д.

Приведем в качестве примера работу в диалоговом текстовом режиме в операционной системе MS DOS:

При вводе команды: C:>DIR D:система выполнит вывод на экран списка файлов, находящихся на диске D.

При работе с файловой системой операционная система присваивает устройствам компьютера следующие имена:

· Дисковод для гибких дисков: A: , B:

· Жесткий диск: C: , D: , E:

· Оптический дисковод CD-ROM: F:

· Последовательный порт: COM1: , COM2:

· Параллельный порт: LPT1: , LPT2:

· Консоль терминала: CON:

· Нулевой порт: NUL:

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

C:\ARC\ZIPFILE\myhelp.zip

Для удобства работы с OS разработаны т.н. операционные оболочки, такие как Norton Commander, Total Commander, FAR и им подобные. В этом случае управление файловой системой выполняется не только вводом команд, но и использованием режима меню, а также наборов функциональных клавиш, манипулятора мышь и ряда других интерфейсных элементов, позволяющих наглядно и оперативно управлять операционной системой.

Различают однозадачные и многозадачные OS, вторые позволяют реализовать либо полную многозадачность (параллельное выполнение задач), либо вытесняющую многозадачность (приостановка одного приложения и запуск другого).

1.3.6. Инструментальные системы

Для разработки программных продуктов требуется специальное программное обеспечение – инструментальные системы (ИС), позволяющие сократить затраты и обеспечить качество и надежность программных продуктов. В ИС входят средства создания приложений: компиляторы языков программирования, интерпретаторы, редакторы текстов программ, отладчики, средства поддержки и масса других специализированных программ.

Языки программирования условно можно разделить на следующие классы:

1. Машинные языки – computer language.

2. Машинно-ориентированные языки - computer oriented language – ассемблеры.

3. Алгоритмические языки – algorithmic language – языки, независимые от архитектуры компьютера: Fortran, Pascal, Delphi, C, C++, Visual Basic, и т.п.

4. Процедурно-ориентированные языки - procedure oriented language – для создания программ как совокупности процедур (подпрограмм): dBase, Basic, SQL, Visual Fox Pro и т.д.

5. Языки программирования для Интернета, называемые Script (скрипт-языки) интерпретирующего типа, такие как HTML – язык разметки для создания WEB страниц, JavaScript, PHP – для создания скриптов и ряд других.

6. Проблемно-ориентированные языки для решения определенных задач специального назначения: LISP – обработка списков, Simula, SmallTalk – язык объектно-ориентированного программирования, Prolog – решение задач искусственного интеллекта, Ada (имя первой программистки - Августа Ада Байрон) – для применения в военной сфере, UML – язык моделирования процессов и множество других языков.

Специальные программы для перевода программных текстов и их дальнейшего исполнения на компьютере разделяются на компиляторы и интерпретаторы.

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

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

Препроцессор выполняет директивы препроцессора, включает содержимое файлов, указанных в директивах #include, подготавливает текст программы к трансляции.

Компиляция программного текста в файл на языке ассемблера и дальнейшее преобразование в объектный файл.

Программа компоновщика (Linker) добавляет в объектному файлу коды функций из библиотек и формирует исполняемый файл с расширением ".exe".

Исполняемый файл может быть загружен в память компьютера и выполнен без участия компилятора.

 

Рис. 1.3.6.

Программы - отладчики (debugger) предназначены для анализа выполнения программ и исправления в них ошибок.