Язык SQL

Программа управления файлами


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

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

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

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

Комментарии закрыты