Студопедия

КАТЕГОРИИ:


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

Ратификация алгоритма дисковых блоков

Алгоритм отложенной записи

Модификация буфера не вызывает немедленной перезаписи буфера. Алгоритм работает по-разному с пользовательскими данными и системным данными. Для последних перезапись обычно производится быстро. Для пользовательских данных возникает проблема: начинают существовать отличия в соответственных блоках ОП и блоках ЖД. В некоторых ОС этот алгоритм не используется, и перезапись происходит мгновенно. Пр-р MS-DOS – КЭШ со сквозной записью. Обычно специальные команды не дают напрямую записывать данные в буфер, а предварительно обрабатывают.

Модификация алгоритма чтения.

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

Оптимизация перемещения блока головок.

Большой промежуток времени тратится на перемещение головок между цилиндрами.

Первый подход. При размещении данных на ЖД ФС старается записать все данные на один цилиндр (Windows).

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

 

Реализация некоторых файловых операций в ОС Unix:

вся дальнейшая работа инициализируется без дисков.

1) операция открытии файлов Open – системный вызов, его параметры:, полное имя файла, режим открытия для чтения, записи, чтения/записи. Алгоритм: 1) преобразование полного имени файла в номер индекса, просматриваются все соответствующие директории с проверкой прав доступа, из последней извлекается запись с соответствующим именем и индексом;

2) обращается к таблице вызовов в КЭШе и ищет индекс, если находит, то просто увеличивает счетчик. Иначе системный вызов по номеру индекса обращается к таблице индексов и копирует индеек для существующего файла. Если файл не существует и индекс неоткуда копировать индекс, то если указано, что файл может быть создан, то находится свободный индекс, заполняет даны, вносит данные о файле в директорию, вносит данные на диск.

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

 

память

4) Заполнение таблицы дескрипторов.

Адрес элемента таблицы открытых файлов Возврат номера соответствующего дескриптора
   

 

 

Лекция 13.

После системного вызова open возвращается дескриптор, с которым и продолжает работать операционная система.

Системные вызовы:

- read (дескриптор, буфер размещения данных с диска, размер)

ФС обрабатывает его следующим образом

1) по дескриптору определят элемент таблицы открытых файлов

2) соответствие режима доступа и операции «чтение».

3) Из таблицы открытых файлов выбирается значение позиции текущего файла и ссылка на индексный узел

4) Преобразование текущей позиции и индексный узел в адрес дискового блока и положение в нем

5) В ХЭШ – таблице ищется соответствующий дисковый блок, если такой блок находится, то соответствующее количество байт читается с соответствующей позиции.

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

6) если в ХЭШ – таблице блок не найден, тогда из списка свободных буферов выбирается один, в него записываются данные из логического блока. сли данные длиннее, то считывается и несколько последующих блоков.

7) После этого происходит смещение на реальное количество бай

- write (дескриптор, буфер, размер)

1) по дескриптору обращается к таблице открытых файлов.

2) проверяются права доступа

3) из таблицы получает i-узел и текущую позицию, из них вычисляет блок и позицию в блоке

4) если блок присутствует в ХЭШ – таблице, то на выходе получаем его адрес

5) если это конец файла и свободного блока нет, то перезаписываем в конец следующим образом: из списка свободных буферов выбираем один, включаем его в ХЭШ – таблицу;

6) происходит запись с заданного значения

7) текущая позиция увеличивается на число реально прочитанных байт

- close (дескриптор) – системный вызов закрытия файла

1) по дескриптору определяем номер в таблице открытых файлов

2) если больше нет ссылок на этот файл, то сканируется, есть ли еще его блоки в ХЭШ – таблице, они переписываются на диск

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

 

Лекция 14.

После системного вызова щpen возвращается дескриптор, с которым и продолжает работать операционная система.

Системные вызовы:

- read (дескриптор, буфер размещения данных с диска, размер)

ФС обрабатывает его следующим образом

 

8) по дескриптору определят элемент таблицы открытых файлов

9) соответствие режима доступа и операции «чтение».

10) Из таблицы открытых файлов выбирается значение позиции текущего файла и ссылка на индексный узел

11) Преобразование текущей позиции и индексный узел в адрес дискового блока и положение в нем

12) В ХЭШ – таблице ищется соответствующий дисковый блок, если такой блок находится, то соответствующее количество байт читается с соответствующей позиции.

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

13) если в ХЭШ – таблице блок не найден, тогда из списка свободных буферов выбирается один, в него записываются данные из логического блока. сли данные длиннее, то считывается и несколько последующих блоков.

14) После этого происходит смещение на реальное количество бай

- write (дескриптор, буфер, размер)

8) по дескриптору обращается к таблице открытых файлов.

9) проверяются права доступа

10) из таблицы получает i-узел и текущую позицию, из них вычисляет блок и позицию в блоке

11) если блок присутствует в ХЭШ – таблице, то на выходе получаем его адрес

12) если это конец файла и свободного блока нет, то перезаписываем в конец следующим образом: из списка свободных буферов выбираем один, включаем его в ХЭШ – таблицу;

13) происходит запись с заданного значения

14) текущая позиция увеличивается на число реально прочитанных байт

- close (дескриптор) – системный вызов закрытия файла

3) по дескриптору определяем номер в таблице открытых файлов

4) если больше нет ссылок на этот файл, то сканируется, есть ли еще его блоки в ХЭШ – таблице, они переписываются на диск

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

<== предыдущая лекция | следующая лекция ==>
Реализация директорий | Процессы
Поделиться с друзьями:


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


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



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




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