|
HD. Очередь обслуживания.
|
|||
---|---|---|---|
#18+
Доброго времени! Теоретической базы мало, поэтому не судите строго. Для жестких дисков существует такое понятие как очередь обслуживания (например 2...N). Обслуживаются запросы чтения : Номер цилиндра+номер сектора. Нужно определить время доступа ж.д. Например очередь = 5. Диск обслужит 5 таких запросов и что произойдет дальше? Пытаюсь определить зависимость времени доступа ж.д. от размера очереди Благодарю! p.s. Вот что мне посоветовал гугл : "* Время доступа - время, в течение которого можно получить доступ к необходимому участку диска. Это время, необходимое на поворот дисков таким образом, чтобы нужный участок диска оказался под магнитными головками, плюс время необходимое на подвод головок". Не могу понять, как на время будет влиять размер очереди? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2013, 19:37 |
|
HD. Очередь обслуживания.
|
|||
---|---|---|---|
#18+
deadeanp.s. Вот что мне посоветовал гугл : "* Время доступа - время, в течение которого можно получить доступ к необходимому участку диска. Это время, необходимое на поворот дисков таким образом, чтобы нужный участок диска оказался под магнитными головками, плюс время необходимое на подвод головок". Не могу понять, как на время будет влиять размер очереди?Гугл не врёт, это время, которое тратится на обслуживание одной команды. Для выполнения команды от ОС (от приложения) нужно выполнить все предыдущие команды из очереди, т.е. время доступа от ОС будет в соответствующее число раз больше. Есть ещё перераспределение команд в очереди, когда команда, пришедшая позже, может выполниться раньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2013, 20:10 |
|
HD. Очередь обслуживания.
|
|||
---|---|---|---|
#18+
deadean, очередь - это сколько операций стоит в очереди на выполнение. называется disk queue, в винде можно смотреть в perfmon и "монитор ресурсов". Когда диск успевает выполнять приходящие запросы, очередь не бывает выше 1. Как только диск не успевает - disk queue уже содержит более 1 команды, собственно, возникает очередь. Время доступа, собственно, к очереди прямого отношения не имеет. Потому что есть разные дисковые операции, которые выполняются за различное время в зависимости от условий, и в том числе от ранее выполнявшихся команд. Поэтому определять время доступа при наличии очереди можно только теоретически, и по максимуму. Допустим, самая медленная дисковая операция выполняется 20мс. Значит, если в очереди есть 5 команд, то последняя команда в этой очереди выполнится через 4*20мс, а на выполнение всех 5-ти команд потребуется 5*20мс. С очередью диска борются разными способами. Например, практически у всех последних sata-дисков есть поддержка NCQ http://ru.wikipedia.org/wiki/NCQ Устройства с поддержкой NCQ способны принимать несколько запросов одновременно и реорганизовывать порядок их выполнения для достижения максимальной эффективности (производительности) с учётом внутренней архитектуры устройства (минимизируя количество перемещений головок и ожидание нужного сектора на треке). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2013, 20:49 |
|
HD. Очередь обслуживания.
|
|||
---|---|---|---|
#18+
В задании стоит, что размер очереди : k =2, 4, 8, …, 512. Нужно определить зависимость среднего времени доступа от параметра k. Т.е. эмулировать работу ЖД. для различных размеров очередей. Если я все правильно понял, то результатом станет практически прямая линия? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2013, 21:01 |
|
|
start [/forum/topic.php?fid=30&msg=38282082&tid=1529786]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 354ms |
total: | 510ms |
0 / 0 |