Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   Вопрос по основам Организации ЭВМ (http://forum.oszone.net/showthread.php?t=224866)

jnshish 10-01-2012 16:21 1832536

Вопрос по основам Организации ЭВМ
 
Возник вопрос по задаче из книги "Организация ЭВМ" Таненбаума:

Рассмотрим многоуровневый компьютер, в котором все уровни отличаются друг от друга. Команды каждого уровня в m раз мощнее команд предыдущего уровня, то есть одна команда уровня r может выполнять ту же работу, которую выполняют m команд на уровне r - 1. Если для выполнения программы первого уровня требуется k секунд, сколько времени будут выполняться соответствующие программы на уровнях 2, 3 и 4, с учетом того, что для интерпретации одной команды уровня r + 1 требуется n команд уровня r?

Я решил так: на 1ом уровне кол-во выполняемых команд в n раз больше, чем на 2ом => для их решения требуется (k/n) секунд на 2ом уровне, k/(n^2) на 3-ем и т.д.
Но тогда причём здесь мощность команд m? Подскажите.

Grabber2006 10-01-2012 16:54 1832558

Долго думал. Вот вопрос:

Что значит "соответствующие" программы? Если они достигают одного результата, то на всех уровнях будет k секунд, т.к. мы говорим об одном и том же компьютере.
А если программы разные - то их надо как-то описать.

Код:

[программа "соответствующая", т.е. та же            (4)]
[и на 3ем тоже неважно, т.к. она выполняется k сек  (3)]
[и не важно сколько здесь команд и каких на 2 уровне (2)]
[программа выполняется за k секунд на 1 уровне      (1)]


jnshish 10-01-2012 19:35 1832665

Я понимаю, что соответствующая программа уровня r для уровня r-1 - эта та, из которой после работы интерпретатора получается программа уровня r-1 (Как аналог: имеем программу на Javа, после компиляции/интерпретации её байт-код, запуская её на выполнение - код на целевой платформе. По сути одна и та же программа, но на каждом уровне(вирт.машине) её описание различно.)

Я подумал,что может автор подразумевал следующее:
что если машинным языком(т.е. тот который выполняется электронными схемами) будет не язык уровня 1, а язык уровня 2, 3, 4. Гипотетически это возможно (если следовать материалу его книги), тогда команд будет выполняться в n раз меньше и тогда Tr=k/n^(r-1)

Grabber2006 10-01-2012 19:54 1832676

Если считать, что на каждом уровне в единицу времени выполняется одинаковое число команд в штуках, то тогда задача приобретает некоторый смысл.

Тогда можно посчитать время выполнения такого же количества команд (в штуках) на другом уровне:

Tr = k * (n^(r-1)) / (m^(r-1))

Но, ИМХО, это не имеет никакого смысла, т.к., например, количество строк в листинге программы на C сравнивается с числом строк в листинге Asm.

jnshish 10-01-2012 20:10 1832687

В общем, наша проблема в идентичном автору понимании сути вопроса. Поищу книгу на английском, может дело в некорректном переводе.

Grabber2006 10-01-2012 20:27 1832699

Цитата:

Цитата jnshish
что если машинным языком(т.е. тот который выполняется электронными схемами) »

Ваша версия верна. В книге именно это и подразумевается.

Цитата:

Цитата Grabber2006
Если считать, что на каждом уровне в единицу времени выполняется одинаковое число команд в штуках »

Это - то же самое.

jnshish 10-01-2012 21:39 1832763

Спасибо. Только похоже у тебя опечатка: n и m поменяй местами (числитель и знаменатель)

Нет, это я вру. Формула верна.


Время: 17:35.

Время: 17:35.
© OSzone.net 2001-