LINUX.ORG.RU
ФорумTalks

А есть ли виртуальная машина, использующая 2 ядра процессора?


0

1

Почитав в нете про то, как некоторые процессоры эмулируют x86, пришла мысль о быстрой виртуальной машине для запуска кода другой архитектуры. А именно, 1-е ядро парсит команды target-архитектуры и переводит их в команды host-архитектуры. И помещает их в область памяти, откуда их выполняет второе ядро.

При этом, естественно, указатели на память преобразуются так, чтобы попадать в отведенную область.

★★★★★

Мда. Две звезды, а такие глупости написаны.

Любая нормальная виртуальная машина может использовать столько ядер, сколько нужно. Может предоставлять установленной в неё системе больше ядер, чем имеется физически. Трансляция тоже возможна, но не в realtime.

om-nom-nimouse ★★
()
Ответ на: комментарий от cvs-255

Нерациональным расходом ресурсов. Два ядра в сумме дают одно. Современные технологии виртуализации малость посложнее.

morse ★★★★★
()
Ответ на: комментарий от om-nom-nimouse

А не можно наперед странслировать код а потом уже его запускать (если запускать отдельную программу а не ОС целиком)?

ymuv ★★★★
()
Ответ на: комментарий от morse

Современные технологии виртуализации малость посложнее.

И что, они поддерживают произвольную target архитектуру?

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от ymuv

А не можно наперед странслировать код а потом уже его запускать

самомодифицирующийся код в этом случае пролетает.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Ты путаешь виртуальную машину с эмулятором. У них немного разные задачи. И эмулятор будет работать медленно. Всегда.

morse ★★★★★
()

А именно, 1-е ядро парсит команды target-архитектуры и переводит их в команды host-архитектуры. И помещает их в область памяти, откуда их выполняет второе ядро.

Лучше мыслить категориями процессов и потоков. И доверять их распределение планировщику, он с этим справится намного лучше тебя.

ttnl ★★★★★
()
Ответ на: комментарий от morse

Нужен эмулятор. И я привел как мне кажется, хороший механизм.

cvs-255 ★★★★★
() автор топика

Если идёт беспрерывная трансляция то, по сути, мы занимаемся интерпретацией кода.

На уровне железа, уверен, давно так делают когда нужна эмуляция. Может даже читал в статье про эльбрусы и их транслятор, уже не помню.

А в софте... хз. Если интересует «есть ли это вообще в природе» то наверняка есть. А есть ли это в qemu/bochs/whatever надо смотреть конкретно.

true_admin ★★★★★
()

Лучше бы ты физикой занимался...

Manhunt ★★★★★
()
Ответ на: комментарий от om-nom-nimouse

Любая нормальная виртуальная машина может использовать столько ядер, сколько нужно. Может предоставлять установленной в неё системе больше ядер, чем имеется физически. Трансляция тоже возможна, но не в realtime.

Походу вы не уловили мысль ТСа.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Похоже, ТС не в состоянии сам сформулировать её внятно. Ему требуется эмуляция, для которой он предлагает в качестве ускорения разделить исполняющий и транслирующий потоки. Учитывая, что трансляция занимает намного больше времени, чем исполнение, какой-либо выгоды от этого я не вижу.

om-nom-nimouse ★★
()

1-е ядро парсит команды target-архитектуры и переводит их в команды host-архитектуры. И помещает их в область памяти, откуда их выполняет второе ядро.

Плохая идея, потому что:

  • Реализация очень сложна.
  • Большие накладные расходы на взаимодействие двух ядер т.к. часто придется брать локи.
  • Хреновая масштабируемость по той же причине.
  • Профит весьма сомнителен ввиду хаотичности кода. Условные переходы встречаются в среднем каждые 10-15 инструкций, в случае неправильного предсказания перехода придется останавливать процесс трансляции и ждать пока другое ядро оттранслирует правильную ветку.

При этом, естественно, указатели на память преобразуются так, чтобы попадать в отведенную область.

А вот это я ваще понял.

Relan ★★★★★
()
Ответ на: комментарий от stevejobs

у ТСа, судя по аватарке, жизнь — отстой

я разве где то говорил, что _у_меня_ жизнь отстой?

cvs-255 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.