Здравствуйте, Кодт, Вы писали:
К>Сортируем его (очевидно же, что лучше всего нам пробегать не последовательно по файлу и хаотически по диску, а последовательно по диску, собирая файл из кусочков в оперативной памяти).
Там написано LIFO, никаких сортировок. Смысл, правда, туманен.
Re[3]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, Vintik_69, Вы писали:
К>>Сортируем его (очевидно же, что лучше всего нам пробегать не последовательно по файлу и хаотически по диску, а последовательно по диску, собирая файл из кусочков в оперативной памяти).
V_>Там написано LIFO, никаких сортировок. Смысл, правда, туманен.
То есть, вообще читаем файл с конца?! Бредото (или Бретодо?)
Может быть, предмет курсовика — симуляция работы диска в условиях зверской фрагментации и тупой операционки, которая
1) не оптимизирует беготню по дорожкам
2) не дожидается конца чтения сектора, а кидает запросы один за другим
В принципе, последнее возможно. Контроллер диска имеет какой-то буфер. Но он же не резиновый, во-первых, и, во-вторых, что это за безумие — стек вместо очереди? Бросил выполнение одного запроса (в процессе позиционирования, наверно), начал выполнять следующий, свежепоступивший?
Так всё равно, мало данных. Какое распределение времени позиционирования? Какое распределение частоты запросов от ОС к контроллеру? Нечего там симулировать пока что.
Или мы подгоним условия под самые комфортные для нас. Пусть частота запросов не превышает 1 в 19мс (позиционирование + чтение сектора). И задача стремительно выродится.
Перекуём баги на фичи!
Re[2]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, batu, Вы писали:
S_M>>Исследование алгоритмов (модель) дискового планирования № 2 B>Что там планировать? При любом наличии запросов можно просчитать оптимальное движение головок.
То, что планировать приходится еще до того, как известны все запросы.
Исследование алгоритмов (модель) дискового планирования
Дана задача Курсовой работы :
Исследование алгоритмов (модель) дискового планирования № 2
1. Исходные данные:
• количество цилиндров диска — 1024;
• стартовый цилиндр — 500;
• поступление запросов к дорожкам — случайное (генерировать датчиком случайных чисел);
• среднее время поиска цилиндра — 10 мс;
• скорость вращения — 7200 об/мин;
• дорожка имеет 500 секторов;
• производится чтение файла размером 1 Мбайт;
• дисциплина обслуживания запросов — LIFO.
2. Результаты работы модели должны включать в себя:
• график перемещения головок по цилиндрам;
• количество пересеченных дорожек;
• среднее время чтения файла;
• средняя продолжительность поиска файла.
Ищу любую бесплатную литературу по дисковому планированию на русском, пример решения этой задачи или её части на любом
языке(желательно на Делфи) или блок схеме.
Re: Исследование алгоритмов (модель) дискового планирования
есть на форуме один очень продвинутый алгоритмист, согласный бесплатно работать над чужими проектами. могу его посоветовать http://www.rsdn.ru/Users/97966.aspx
Re: Исследование алгоритмов (модель) дискового планирования
Здравствуйте, Sergey_Muratkin, Вы писали:
S_M>Дана задача Курсовой работы : S_M>Исследование алгоритмов (модель) дискового планирования № 2
Что там планировать? При любом наличии запросов можно просчитать оптимальное движение головок.
Re[2]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, batu, Вы писали:
B>Здравствуйте, Sergey_Muratkin, Вы писали:
S_M>>Дана задача Курсовой работы : S_M>>Исследование алгоритмов (модель) дискового планирования № 2 B>Что там планировать? При любом наличии запросов можно просчитать оптимальное движение головок.
Не я тему называл
Re[3]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, Sergey_Muratkin, Вы писали:
S_M>Ищу любую бесплатную литературу по дисковому планированию на русском, пример решения этой задачи или её части на любом языке(желательно на Делфи) или блок схеме.
А конспекты лекций? Или препод такой молодец, что дал тему курсовой работы, а курс лекций не прочитал?
А вообще, как-то это не дотягивает до курсовой работы. Больше на лабораторную похоже.
Файл размером 1Мбайт влезает в 2к секторов (по 0.5кбайт каждый).
Предположим, что диск зверски фрагментирован, и каждый сектор лежит на произвольном цилиндре.
ЭКСПЕРИМЕНТ
Формируем набор из 2к случайных уникальных номеров секторов [0..500*1024), из которых получаем набор из 2к неуникальных номеров цилиндров.
Сортируем его (очевидно же, что лучше всего нам пробегать не последовательно по файлу и хаотически по диску, а последовательно по диску, собирая файл из кусочков в оперативной памяти).
Если какие-то номера встречаются несколько раз, мы экономим на позиционировании.
Считаем, сколько времени требуется на выполнение всего забега.
При этом полагаем, что
— время позиционирования у нас постоянное (в ТЗ ничего не сказано о зависимости времени от расстояния) = 10мс
— время чтения всего цилиндра тоже постоянное (вне зависимости от того, сколько секторов мы оттуда выбираем) = 1/(7200 об./мин) = 1/120 с = 8.3мс
Повторяем эксперимент много-много раз, собирая статистику.
Самое интересное здесь — что рисовать на графике.
Для одного эксперимента понятно: ломаная от минимального номера цилиндра до максимального, и для сравнения — тупой забег последовательно по несортированному набору.
А для серии экспериментов... разве что гистограмму распределения (t1 секунд было k1 раз, t2 секунд — k2 раз и т.д.)
Перекуём баги на фичи!
Re[3]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, batu, Вы писали:
S_M>>>Исследование алгоритмов (модель) дискового планирования № 2 B>>Что там планировать? При любом наличии запросов можно просчитать оптимальное движение головок.
Pzz>То, что планировать приходится еще до того, как известны все запросы.
Ну, так ждем у таблицы файлов
Re[4]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Vintik_69, Вы писали:
К>>>Сортируем его (очевидно же, что лучше всего нам пробегать не последовательно по файлу и хаотически по диску, а последовательно по диску, собирая файл из кусочков в оперативной памяти).
V_>>Там написано LIFO, никаких сортировок. Смысл, правда, туманен.
К>То есть, вообще читаем файл с конца?! Бредото (или Бретодо?)
К>Может быть, предмет курсовика — симуляция работы диска в условиях зверской фрагментации и тупой операционки, которая К>1) не оптимизирует беготню по дорожкам К>2) не дожидается конца чтения сектора, а кидает запросы один за другим К>В принципе, последнее возможно. Контроллер диска имеет какой-то буфер. Но он же не резиновый, во-первых, и, во-вторых, что это за безумие — стек вместо очереди? Бросил выполнение одного запроса (в процессе позиционирования, наверно), начал выполнять следующий, свежепоступивший?
К>Так всё равно, мало данных. Какое распределение времени позиционирования? Какое распределение частоты запросов от ОС к контроллеру? Нечего там симулировать пока что. К>Или мы подгоним условия под самые комфортные для нас. Пусть частота запросов не превышает 1 в 19мс (позиционирование + чтение сектора). И задача стремительно выродится.
Посути мне можно хоть как задачу крутить(препод не фига не шарит),главное чтоб прога работала и объяснить умными слованми
Re[2]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, Кодт, Вы писали: К>А конспекты лекций? Или препод такой молодец, что дал тему курсовой работы, а курс лекций не прочитал?
лекции у нас вообще другой препод читает,и читает про командную строку windows и Unix,bat файлы .
К>А вообще, как-то это не дотягивает до курсовой работы. Больше на лабораторную похоже.
К>Файл размером 1Мбайт влезает в 2к секторов (по 0.5кбайт каждый). К>Предположим, что диск зверски фрагментирован, и каждый сектор лежит на произвольном цилиндре.
К>ЭКСПЕРИМЕНТ К>Формируем набор из 2к случайных уникальных номеров секторов [0..500*1024), из которых получаем набор из 2к неуникальных номеров цилиндров. К>Сортируем его (очевидно же, что лучше всего нам пробегать не последовательно по файлу и хаотически по диску, а последовательно по диску, собирая файл из кусочков в оперативной памяти). К>Если какие-то номера встречаются несколько раз, мы экономим на позиционировании. К>Считаем, сколько времени требуется на выполнение всего забега. К>При этом полагаем, что К>- время позиционирования у нас постоянное (в ТЗ ничего не сказано о зависимости времени от расстояния) = 10мс К>- время чтения всего цилиндра тоже постоянное (вне зависимости от того, сколько секторов мы оттуда выбираем) = 1/(7200 об./мин) = 1/120 с = 8.3мс
К>Повторяем эксперимент много-много раз, собирая статистику.
К>Самое интересное здесь — что рисовать на графике. К>Для одного эксперимента понятно: ломаная от минимального номера цилиндра до максимального, и для сравнения — тупой забег последовательно по несортированному набору. К>А для серии экспериментов... разве что гистограмму распределения (t1 секунд было k1 раз, t2 секунд — k2 раз и т.д.)
Большое спасибо за ответ, это самая ценная информация которую мне дали.
Re[3]: Исследование алгоритмов (модель) дискового планирован