Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.09.2009, 10:59
Аватар для VladOfMonster
VladOfMonster VladOfMonster вне форума
Начинающий
 
Регистрация: 27.09.2009
Сообщения: 113
Репутация: 9
Печаль Как создать свой дефрагментатор диска?

Как создать свой дефрагментатор диска, хотя бы простой, если возможно, то и с индикатором прогресса, как у Microsoft в Windows XP?
Ответить с цитированием
  #2  
Старый 28.09.2009, 18:34
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

кста: мне тоже интересно
путёвой инфы по этому поводу так и не нашел
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 11.10.2009, 16:53
Аватар для VladOfMonster
VladOfMonster VladOfMonster вне форума
Начинающий
 
Регистрация: 27.09.2009
Сообщения: 113
Репутация: 9
Смех

Да поможет нам Google!

Жаль, но Google не помог!

Последний раз редактировалось VladOfMonster, 11.10.2009 в 16:56.
Ответить с цитированием
  #4  
Старый 11.10.2009, 18:38
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Често говоря, вплотную этой темой не занимался и если я что наврал, знающие люди поправят.
Для начала определяемся с основами:
1. Пластина диска вращается с постоянной скоростью. Для обычных десктопных моделей это 7200 или 5400 оборотов в мин. На современных моделях в целях экономии энергии скорость может уменьшаться, но процесс чтения/записи данных происходит на рабочей скорости вращения, так-что этот момент можно отбросить.
2. Пластин может быть несколько. У каждой пластины две рабочие поверхности. Следовательно, чем больше пластин, тем больше информации мы получим, за одно обращение к диску.
3. У дисков есть кэш, который тоже несколько ускоряет получение информации, но при длительном последовательном обращении толку от него мало, а дефрагментация - это как-раз оно и есть, так-что на кэш расчитывать особо не приходится в этом случае.
Из всего вышесказанного вытекает, что для получения максимальной производительности от чтения данных, данные должны располагаться сначала по вертикали (на каждой рабочей поверхности), а потом уже по ходу вращения диска.
А так-же тот факт, что для каждой модели жесткого диска должен применятся свой алгоритм дефрагментации т.к. плотность записи для 1Тб диска и для 200Гиг - разная.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 11.10.2009 в 18:42.
Ответить с цитированием
  #5  
Старый 28.10.2009, 21:40
Аватар для mak-karpov
mak-karpov mak-karpov вне форума
Активный
 
Регистрация: 18.09.2008
Сообщения: 235
Версия Delphi: 2010 и 7
Репутация: 1242
По умолчанию

Теперь представь, что при дефрагментации диска Ц малееенькая ошибка в алгоритме сведет на Нет все усилия по установке Винды
__________________
Кнопка "+" - весы в правом верхнем углу сообщения...
Ответить с цитированием
  #6  
Старый 28.10.2009, 22:03
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

дело не в установке винды ... (на винде никто тренироваться не будет - и без того хватает других дисков)
а вот хоть какие-то программные наброски хотелось бы посмотреть (как работать с талицей файлов, с данными, блокировками данных и т.д.)
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #7  
Старый 12.11.2009, 12:48
Аватар для SHKIP3R
SHKIP3R SHKIP3R вне форума
Новичок
 
Регистрация: 24.04.2007
Адрес: Челябинск
Сообщения: 69
Репутация: -1631
По умолчанию

наткнулся в сети на исходники одного из дефрагментаторов, правда написан он на Microsoft Visual C++ 2005
http://www.kessels.com/JkDefrag/JkDefrag-src-3.36.zip
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter