![]() |
Вопрос по основам Организации ЭВМ
Возник вопрос по задаче из книги "Организация ЭВМ" Таненбаума:
Рассмотрим многоуровневый компьютер, в котором все уровни отличаются друг от друга. Команды каждого уровня в m раз мощнее команд предыдущего уровня, то есть одна команда уровня r может выполнять ту же работу, которую выполняют m команд на уровне r - 1. Если для выполнения программы первого уровня требуется k секунд, сколько времени будут выполняться соответствующие программы на уровнях 2, 3 и 4, с учетом того, что для интерпретации одной команды уровня r + 1 требуется n команд уровня r? Я решил так: на 1ом уровне кол-во выполняемых команд в n раз больше, чем на 2ом => для их решения требуется (k/n) секунд на 2ом уровне, k/(n^2) на 3-ем и т.д. Но тогда причём здесь мощность команд m? Подскажите. |
Долго думал. Вот вопрос:
Что значит "соответствующие" программы? Если они достигают одного результата, то на всех уровнях будет k секунд, т.к. мы говорим об одном и том же компьютере. А если программы разные - то их надо как-то описать. Код:
[программа "соответствующая", т.е. та же (4)] |
Я понимаю, что соответствующая программа уровня r для уровня r-1 - эта та, из которой после работы интерпретатора получается программа уровня r-1 (Как аналог: имеем программу на Javа, после компиляции/интерпретации её байт-код, запуская её на выполнение - код на целевой платформе. По сути одна и та же программа, но на каждом уровне(вирт.машине) её описание различно.)
Я подумал,что может автор подразумевал следующее: что если машинным языком(т.е. тот который выполняется электронными схемами) будет не язык уровня 1, а язык уровня 2, 3, 4. Гипотетически это возможно (если следовать материалу его книги), тогда команд будет выполняться в n раз меньше и тогда Tr=k/n^(r-1) |
Если считать, что на каждом уровне в единицу времени выполняется одинаковое число команд в штуках, то тогда задача приобретает некоторый смысл.
Тогда можно посчитать время выполнения такого же количества команд (в штуках) на другом уровне: Tr = k * (n^(r-1)) / (m^(r-1)) Но, ИМХО, это не имеет никакого смысла, т.к., например, количество строк в листинге программы на C сравнивается с числом строк в листинге Asm. |
В общем, наша проблема в идентичном автору понимании сути вопроса. Поищу книгу на английском, может дело в некорректном переводе.
|
Цитата:
Цитата:
|
Спасибо. Только похоже у тебя опечатка: n и m поменяй местами (числитель и знаменатель)
Нет, это я вру. Формула верна. |
Время: 17:35. |
Время: 17:35.
© OSzone.net 2001-