Я пытаюсь справиться с perl. Я пытаюсь написать несколько сценариев в качестве имитатора планирования. FCFS, SSTF и Scan and LookАлгоритм имитации жесткого диска (отслеживание времени следования) Perl
У меня есть один массив со списком запросов блока, а другой - как буфер. Сначала я копирую по первому запросу, затем мне нужно выяснить время, необходимое для перехода от первого ко второму блоку.
буфер читает в блоках на 1 мс в, искать, искать и время доступа все 1мс, чтобы сделать вычисления немного проще, имитатор всегда начинается на блоке 1 трек 1.
http://postimg.org/image/d9osb8tkj/
поэтому, если первый блок равен 5, время поиска будет равным 3 мс для перехода к началу 5-го блока, время поиска будет равным нулю, так как оно будет на одной и той же дорожке, и время доступа для чтения блока будет всегда равным 1 мс. Это означает, что время для этого запроса будет равным 4 мс, поэтому симулятор будет читать в следующих 4 запросах в буфер. Вначале это было первым, это будет порядок, на который поданы заявки.
Так что если следующий запрос на обслуживание - 12, то рука находится на конце 5-го блока, поэтому потребуется 2 мс, чтобы добраться до правильной дорожки, затем 1 мс, чтобы добраться до начала 12-го блока, а еще 1 мс для доступа к нему ,
Мне просто интересно, может ли кто-нибудь дать мне представление о том, как я мог бы выразить это как алгоритм. Просто некоторые указатели были бы очень оценены.
Um, если вы начинаете на 1.1 и нужно, чтобы добраться до 1.5, вам нужно прокрутить 4, а не 3. –