Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Физическая организация файловой системы

Пара. Разделы, отказоустойчивостью HDD, RAID, Файловые системы Windows, Unix

Цикли

Простим циклом є цикл перебору for.

for <ЕЛЕМЕНТ> in $<СПИСОК>

do

<дія>

done

 

Циклу передається змінна із списком параметрів, розділених пробілом, знаком переходу рядка або табуляції. Далі цикл виконує дії для кожного елементу із списку, наприклад:

#!/bin/bash

echo "Пошук каталогів в $HOME"

echo

#перейдемо в домашній каталог

pushd $HOME

#отримаємо список файлів

LIST = `ls -a $HOME`

#організовуємо цикл для кожного з

#значень в змінній LIST

for ITEM in $LIST

do

#якщо входження – каталог, виведемо його на екран

if [ -d $ITEM ]; then

echo "$ITEM"

fi

done

#повернемося в колишню директорію

popd

#вихід

exit

 

Проте цикл перебору підходить не у всіх випадках. У багатьох випадках нам необхідний цикл з умовою. Це цикл while.

while <умова>

do

<дії>

done

 

Цикл while виконується до тих пір, поки правильна <умова>. Розглянемо приклад організації циклу з лічильником. Для обчислення будемо використовувати команду expr, що дозволяє виконувати математичні операції із змінними bash:

#!/bin/bash

#визначаємо наявність першого параметра

#командного рядка

if [ -z $1 ]; then

echo "Використання: $0 кількість_перевірок"

exit

fi

#очистимо екран

clear

#визначимо змінну лічильника циклу

COUNTER=0

#організовуємо цикл на $1 ітерацій

while [ $COUNTER -lt $1 ]

do

echo "Завантаження системи (за $1 секунд)"

echo echo "секунда $COUNTER"

echo "-- завантаження системи --"

#команда визначення середнього завантаження

/usr/bin/uptime

echo "-- місце на дисках --"

#визначення вільного місця на диску

df -h

echo "----------------"

echo

#пауза 1 секунду

/bin/sleep 1

#очистимо екран

clear

#приріст змінної циклу

COUNTER=`expr $COUNTER + 1`

done

#вихід

exit

Організація виведення імені програми не дуже вдало виконана в даному випадку, тому що буде виводиться не лише ім'я запущеної програми, а і шлях, набраний в командному рядку. Виправити це допоможе директива basename, що виділяє з шляху ім'я файлу. От як виглядатиме фрагмент наведеного вище сценарію з її використанням:

#!/bin/bash

#визначаємо наявність першого параметра

#командного рядка

if [ -z $1 ]; then

echo Використання: `basename $0` кількість_перевірок

exit

fi

...

Висновки

В командних оболонках Linux є набори команд, за допомогою яких можна писати власні сценарії для автоматизації часто виконуваних операцій. Мова bash містить всі необхідні команди для написання сценаріїв. Крім цього в сценарії можна використовувати команди самої ОС.

 

Контрольні запитання і завдання для самостійного виконання

1. Як вказати оболонку для обробки сценарію?

2. Як оголошуються змінні в bash?

3. Як вивести на консоль значення змінної?

4. Як передати у сценарій параметри з командного рядка?

5. Як перевірити значення, що повертається у змінній?

6. Як перевірити, чи порожній рядок?

7. Як перевірити чи рівні два числа?

8. Як перевірити чи є вказаний файл звичайним файлом?

9. Як перевірити чи є вказаний файл виконуваним (exe-файлом)?

10. У чому різниця між циклами перебору і while?

 

(слайд №1,2)

 

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

 

Диски, разделы, секторы, кластеры

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

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

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

(слайд №3)

Совокупность дорожек одного радиуса на всех поверхностях всех пластин пакета называется цилиндром (cylinder). Каждая дорожка разбивается на фрагменты, называемые секторами (sectors), или блоками (blocks), так что все дорожки имеют равное число секторов, в которые можно максимально записать одно и то же число байт. Сектор имеет фиксированный для конкретной системы размер, выражающийся степенью двойки. Чаще всего размер сектора составляет 512 байт. Учитывая, что дорожки разного радиуса имеют одинаковое число секторов, плотность записи становится тем выше, чем ближе дорожка к центру. Сектор — наименьшая адресуемая единица обмена данными дискового устройства с оперативной памятью. Для того чтобы контроллер мог найти на диске нужный сектор, необходимо задать ему все составляющие адреса сектора: номер цилиндра, номер поверхности и номер сектора.

Операционная система при работе с диском использует, как правило, собственную единицу дискового пространства, называемую кластером (cluster). При создании файла место на диске ему выделяется кластерами. Например, если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске 3 кластера.

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

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

(слайд №4)

Прежде чем форматировать диск под определенную файловую систему, он может быть разбит на разделы. Раздел — это непрерывная часть физического диска, которую операционная система представляет пользователю как логическое устройство (используются также названия логический диск и логический раздел). Логическое устройство функционирует так, как если бы это был отдельный физический диск. Именно с логическими устройствами работает пользователь, обращаясь к ним по символьным именам, используя, например, обозначения А, В, С, SYS и т. п. На каждом логическом устройстве может создаваться только одна файловая система.

Всего разделов на физическом диске может быть не более 4-х. Из них не более одного расширенного (дополнительного) раздела.

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

В частном случае, когда все дисковое пространство охватывается одним разделом, логическое устройство представляет физическое устройство в целом. Если диск разбит на несколько разделов, то для каждого из этих разделов может быть создано отдельное логическое устройство. Логическое устройство может быть создано и на базе нескольких разделов, причем эти разделы не обязательно должны принадлежать одному физическому устройству. Объединение нескольких разделов в единое логическое устройство может выполняться разными способами и преследовать разные цели, основные из которых: увеличение общего объема логического раздела, повышение производительности и отказоустойчивости. Примерами организации совместной работы нескольких дисковых разделов являются так называемые RAID-массивы, подробнее о которых будет сказано далее. На разных логических устройствах одного и того же физического диска могут располагаться файловые системы разного типа. На рис. 7.10 показан пример диска, разбитого на три раздела, в которых установлены две файловых системы NTFS (разделы С и Е) и одна файловая система FAT (раздел D).

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

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

 

Рис. 7.10. Разбиение диска на разделы

 

 

<== предыдущая лекция | следующая лекция ==>
Двухфакторная теория Герцберга | Тома в ОС семейства Windows NT
Поделиться с друзьями:


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


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



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




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