Дана задача Курсовой работы :
Исследование алгоритмов (модель) дискового планирования № 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[2]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, Кодт, Вы писали:
К>Сортируем его (очевидно же, что лучше всего нам пробегать не последовательно по файлу и хаотически по диску, а последовательно по диску, собирая файл из кусочков в оперативной памяти).
Там написано LIFO, никаких сортировок. Смысл, правда, туманен.
Re[2]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, batu, Вы писали:
S_M>>Исследование алгоритмов (модель) дискового планирования № 2 B>Что там планировать? При любом наличии запросов можно просчитать оптимальное движение головок.
То, что планировать приходится еще до того, как известны все запросы.
Re[3]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, batu, Вы писали:
S_M>>>Исследование алгоритмов (модель) дискового планирования № 2 B>>Что там планировать? При любом наличии запросов можно просчитать оптимальное движение головок.
Pzz>То, что планировать приходится еще до того, как известны все запросы.
Ну, так ждем у таблицы файлов
Re[3]: Исследование алгоритмов (модель) дискового планирован
Здравствуйте, Vintik_69, Вы писали:
К>>Сортируем его (очевидно же, что лучше всего нам пробегать не последовательно по файлу и хаотически по диску, а последовательно по диску, собирая файл из кусочков в оперативной памяти).
V_>Там написано LIFO, никаких сортировок. Смысл, правда, туманен.
То есть, вообще читаем файл с конца?! Бредото (или Бретодо?)
Может быть, предмет курсовика — симуляция работы диска в условиях зверской фрагментации и тупой операционки, которая
1) не оптимизирует беготню по дорожкам
2) не дожидается конца чтения сектора, а кидает запросы один за другим
В принципе, последнее возможно. Контроллер диска имеет какой-то буфер. Но он же не резиновый, во-первых, и, во-вторых, что это за безумие — стек вместо очереди? Бросил выполнение одного запроса (в процессе позиционирования, наверно), начал выполнять следующий, свежепоступивший?
Так всё равно, мало данных. Какое распределение времени позиционирования? Какое распределение частоты запросов от ОС к контроллеру? Нечего там симулировать пока что.
Или мы подгоним условия под самые комфортные для нас. Пусть частота запросов не превышает 1 в 19мс (позиционирование + чтение сектора). И задача стремительно выродится.
Перекуём баги на фичи!
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]: Исследование алгоритмов (модель) дискового планирован