Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Урок 5, 10.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
519 Кб
Скачать
☆

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

Вы знаете, что данные можно хранить в виде файлов на жестких дисках, CD и DVD‐дисках, флэш‐дисках. Однако винчестер и флэш‐диск «ничего не знают» о том, что записанные на них данные в самом деле объединены в файлы и папки.

С другой стороны, когда программа сохраняет файл на диск, она «ничего не знает» о том, в какое место диска эта информация будет записана, указывается только имя файла и каталог. Поэтому между программой и носителем информации необходим «посредник», который определяет, в какое именно место диска будут записаны биты переданных данных. Эту роль выполняет драйвер файловой системы:

программа

/home/vasya/privet.txt

драйвер

файловой

системы

сектор 5, дорожка 10

Файловая система – это порядок размещения, хранения и именования данных на носителе ин‐

формации.

Файловые системы решают несколько задач:

• определяют правила построения имен файлов и каталогов;

• определяют, как именно размещаются файлы на диске;

• предоставляют программам функции для работы с файлами;

• обеспечивают защиту данных в случае сбоев и ошибок;

• обеспечивают установку прав доступа к данным для каждого пользователя;

• обеспечивают совместную работу с файлами (когда один пользователь открыл файл, для ос

тальных устанавливается режим «только чтение»).

С точки зрения файловой системы диск делится на кластеры (блоки) размером от 512 байт до 64 Кбайт. Каждому файлу выделяется целое число кластеров. Файлу размером 1 байт выделяется целый кластер, остальное место считается занятым, но фактически не используется.

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

В операционной системе Linux применяются файловые системы ext3 и ext4. Они поддер‐

живают журналирование, помогающее сохранить данные в случае сбоев. Его суть в том, что перед

выполнением операции с файлами ОС записывает «план действий» в специальный журнал. Когда операция полностью закончена, эта запись из журнала удаляется. Если во время операции произошел сбой (например, отключение питания), по записям в журнале можно сразу определить,

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

В системе Windows применяют файловые системы NTFS и FAT32. Хотя FAT32 в некоторых

случаях работает быстрее и требует меньше памяти, она считается устаревшей. В отличие от FAT32, файловая система NTFS

• обеспечивает защиту от сбоев с помощью журналирования (в FAT32 журналирование не ис‐

пользуется);

• позволяет назначить права доступа к файлам и папкам (в FAT32 каждый пользователь может просматривать и изменять данные всех остальных);

• позволяет задать квоту (ограничение) на использование диска для каждого пользователя;

• позволяет использовать сжатие файлов и папок без специальных программ.

В операционной системе Mac OS X применяется файловая система HFS (англ. Hierarchical

File System, иерархическая файловая система).

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

В операционной системе Linux существует один корневой каталог (обозначаемый как «/»),

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

/

bin boot dev etc home usr var

vasya petya olya

Вот что хранится в показанных каталогах:

• bin – команды операционной системы;

• boot – ядро ОС и данные для загрузки;

• dev – файлы устройств, подключенных к ОС;

• etc – файлы с настройками ОС и некоторых программ;

• home –домашние каталоги пользователей;

• usr – установленные пакеты программ;

• var – часто меняющиеся данные, например, журналы ОС.

Чтобы указать путь к файлу или каталогу, перечисляют (начиная от корня) все каталоги, в которых он находится, разделяя их символом «/» (он называется «слэш»). Например, адрес домашнего каталога пользователя petya запишется как /home/petya, а адрес файла qq.txt в этом каталоге – как /home/petya/qq.txt.

Дерево каталогов в операционной системе Windows строится отдельно для каждого диска:

C:

Download Program Files WINDOWS

Help Media system32

В качестве разделителя при записи адреса файла или каталога (папки) используют обратный слэш «\», например, C:\WINDOWS\System32\shell32.dll.

Для работы с группами файлов используются маски или шаблоны (англ. wildcards). Кроме символов, которые допустимы в именах файлов, маска может включать два специальных символа: знак «*» заменяет любое количество любых символов, а знак «?» – один любой символ. Приведем несколько примеров:

*.* все файлы;

*.bmp все файлы с расширением .bmp;

a*.? файлы, имя которых начинается с буквы «a», а расширение состоит из 1 символа

*x*.??* файлы, в имени которых есть буква «x», а расширение содержит не менее 2‐х символов;

*z.a? файлы, имя которых заканчивается на букву «z», а расширение начинается с буквы «a» и состоит из 2‐х символов.

Маски чаще всего применяют для поиска файла по известной части имени или по расширению. Например, для того, чтобы найти все документы Word, у которых имя содержит слово «отчет», можно использовать маску *отчет*.doc*. При этом будут найдены, например, такие файлы:

отчет2010.doc Самый_важный_отчет.docx Новый_отчет_март_2011.docx

В операционной системе Windows заглавные и строчные буквы в названиях файлов и каталогов не различаются, то есть к файлу с именем Вася.txt можно обращаться как вася.txt, вАсЯ.txt, ВаСя.txt или ВАСЯ.txt. В Unix‐подобных ОС (Linux, Mac OS X) это не так, все перечисленные имена файлов – разные, и такие файлы могут быть созданы в одном каталоге.

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

Контрольные вопросы

1. Назовите три типа программного обеспечения. Чем они отличаются?

2. Какие задачи решают пользователи, программисты, системные администраторы?

3. Что означает слово «интерфейс»?

4. Что такое драйверы, утилиты?

5. Что обозначают английские термины hardware и software?

6. Зачем нужны операционные системы? Можно ли обойтись без них?

7. Что такое операционная система?

8. Какие задачи выполняет ОС?

9. Чем отличаются многозадачные ОС от однозадачных?

10. Как обеспечивается многозадачность на компьютерах с одним процессором?

11. Что такое пакетный режим работы?

12. Что такое многопользовательский режим?

13. Перечислите составные части ОС.

14. Что такое начальный загрузчик?

15. Что такое драйвер?

16. Что такое утилита?

17. Назовите наиболее популярные современные ОС для персональных компьютеров.

18. Какими достоинствами и недостатками обладает система Linux?

19. Какие ОС используются для мобильных устройств?

20. В чем состоят особенности операционной системы Chrome OS?

21. Что такое «операционная система реального времени»? Где применяются такие системы?

22. Что такое UNIX‐подобные ОС? В чем их особенности?

23. Как ОС обменивается данными с внешними устройствами? В чем достоинства такой схемы?

24. Что происходит, когда ОС обнаружила новое устройство?

25. Какие программы относятся к утилитам?

26. Что такое файловая система? Зачем она нужна?

27. Какие задачи решает файловая система?

28. Что такое кластер?

29. Почему невыгодно хранить мелкие файлы в файловой системе с большим размером кластера?

30. Что улучшается при увеличении размера кластера?

31. Какие файловые системы используются в ОС Linux, Windows и Mac OS X?

32. Что такое журналируемая файловая система? Какие журналируемые системы вы знаете?

33. Почему файловая система FAT32 считается устаревшей?

34. Что такое одноуровневая и многоуровневая файловые системы?

35. Что такое корневой каталог?

36. В чем отличие файловых систем в ОС Linux и Windows?

37. Где расположены каталоги пользователей в ОС Linux?

38. Какие символы используются как разделители при записи адреса файла в ОС Linux и Windows?

39. Что такое сетевая файловая система?

Задачи

1. Определите, какое из указанных имен файлов удовлетворяет маске: ?hel*lo.c?*

а) hello.c

б) hello.cpp

в) hhelolo.cpp

г) hhelolo.c

д) hello.cс

е) ahello.cpp

ж) ahelolo.c

з) ahelolo.cp

2. Пользователь vasya работает в ОС Linux. Перемещаясь из одного каталога в другой, он последовательно посетил каталоги math, lections, professor и оказался в своем домашнем каталоге. Каково полное имя каталога, из которого начал перемещение пользователь.

3. Пользователь ОС Windows, перемещаясь из одного каталога в другой, последовательно по‐ сетил каталоги Математика, Задания, c:\, Классы, 10-A. Каково полное имя каталога, из которого начал перемещение пользователь?