OSDev

для всех
Текущее время: 01 май 2024, 18:58

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 88 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.
Автор Сообщение
СообщениеДобавлено: 08 янв 2011, 23:22 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
s3dworld, какая бы журналируемая ФС не была, всё-равно после сбоя, восстановление происходит с помощью специальной процедуры обработки этого журнала (пусть эта процедура и в составе драйвера ФС, не важно). По сути, это то же самое, что и запуск корректирующей утилиты. В этом смысле, принцип восстановления FAT (где требуется запуск специальной утилиты) ни чем не отличается от журналируемой ФС. В общем, вывод - ни чего не происходит само собой, везде требуются какие-то действия.

При незаконченном удалении, корректировщик найдёт никому не принадлежащие кластеры в FAT, и освободит их.

При незаконченном копировании файла, корректировщик обнаружит несоотвествтие формального размера и реального количества кластеров, и сделает усечение.

Для избежания получения частично заполненных кластеров, кластер надо приписывать к файлу только по окончании записи данных. Тоесть, присоединять кластер надо с уже записанными данными. Если данные не дописались, то кластер так и остаётся ни кому не принадлежащим.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 янв 2011, 08:27 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Одним словом, сначала пишутся файловые данные, затем описывающие эти данные служебные структуры, а уже потом обновляется файловая запись в каталоге, а также во всех родительских каталогах (если отслеживается время). Причем первые два шага могут многократно повторяться (я имею в виду не подачу данных, а оптимальное кэширование - что может быть записано в обозримой перспективе за один раз, должно быть записано за один раз, но кэш не безграничен).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2011, 11:47 

Зарегистрирован: 22 окт 2010, 13:22
Сообщения: 92
Откуда: Ртищево
Всем доброго утра!

Хотелось бы у Вас спросить по поводу фрагментации и дефрагментации.

В моём понимании, фрагментация - это не когда между объектами есть свободное место.

Изображение

А когда объекты разделены на кластеры, путь к которым проходит через другие кластеры.

Изображение

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

Изображение

Но мне интересно, как же программа дефрагментации производит эти манипуляции. Как осуществляется дефрагментация в FAT? Про NTFS даже думать не хочу, тем более что сколько не пытался в Windows 7 выполнить дефрагментацию, она оказывалась всегда не нужной. Такое ощущение, что Windows 7 дефрагментацию сам выполняет в фоновом режиме когда ему это нужно.

Просто дефрагментацию - это перемещение кластеров в другое место, то есть копирование. А для копирования нужно чтобы место свободное уже было. Ведь так придётся уже какой-то кластер копировать в резервный кластер, кластер где он был раньше очищать и на его место копировать данные другого кластера. И при этом нужно переуказывать индексы следующих кластеров в цепочках и переуказывать индексы кластеров начала цепочек в самих записях объектов. Тут уже если произойдёт сбой, будет не поправимое (по крайней мере для FAT, как мне кажется).

Может кто-нибудь рассказать как производится дефрагментация?

_________________
Изучаю процессор...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2011, 17:58 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Фрагментация, это когда между соседними кластерами файла находятся свободные кластеры или кластеры других файлов. Естественно, если диск заполнен под завязку, то дефрагментатор может отказаться работать или будет работать значительно медленнее. Как выполнить дефрагментацию, понятно и так, а как это делает какой-то конкретный дефрагментатор, навряд ли здесь кто-нибудь тебе ответит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2011, 18:10 

Зарегистрирован: 22 окт 2010, 13:22
Сообщения: 92
Откуда: Ртищево
Я говорю про риск дефрагментации. Вдруг во время неё произойдёт отключение питание. Что тогда? Хана данным!

_________________
Изучаю процессор...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2011, 18:33 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
s3dworld писал(а):
Я говорю про риск дефрагментации. Вдруг во время неё произойдёт отключение питание. Что тогда? Хана данным!

У тебя какое-то сполошь апокалиптическое мировоззрение. Любитель мистических фильмов? Что, когда на ксероксе делаешь копию паспорта, и если в это время отключится питание, то паспорту хана, какая-нибудь "чёрная дыра" его поглотит?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2011, 18:45 

Зарегистрирован: 22 окт 2010, 13:22
Сообщения: 92
Откуда: Ртищево
chizh
Цитата:
У тебя какое-то сполошь апокалиптическое мировоззрение. Любитель мистических фильмов? Что, когда на ксероксе делаешь копию паспорта, и если в это время отключится питание, то паспорту хана, какая-нибудь "чёрная дыра" его поглотит?

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

_________________
Изучаю процессор...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2011, 19:40 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
s3dworld, при перемещении данных, исходный кластер не исчезает в чёрную дыру. А для избежания искажений структуры, делай операции в такой последовательности, чтобы индексы на каждом шаге указывали на реальные данные. Это как собрать кубик Рубика, не ломая.


Последний раз редактировалось Himik 10 янв 2011, 19:52, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2011, 19:51 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
1. Считывается кластер, который нужно переместить.
2. Записывается на новое место (старое содержимое пока цело).
3. Переписывается ссылка в FAT или где там ещё.
4. Исходный кластер теперь считается свободным. Повтор шагов до тех пор, пока всё не дефрагментировано.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 янв 2011, 09:12 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
SII писал(а):
1. Считывается кластер, который нужно переместить.
2. Записывается на новое место (старое содержимое пока цело).
3. Переписывается ссылка в FAT или где там ещё.
4. Исходный кластер теперь считается свободным. Повтор шагов до тех пор, пока всё не дефрагментировано.

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

А ссылки когда обновляете не боитесь информацию потерять?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 88 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB