Pull to refresh
25
0
Алексей Кайгородов @rfq

JavaSE developer

Send message
«И было очень сложно кодировать в такой парадигме циклы, ветвления».

Однако, как я понимаю, в MCp параллелизм возможен только внутри параграфа, а параграф — линейный участок кода. То есть циклы и ветвления в MCp делаются как в фон-Неймановской машине и не распараллеливаются вовсе.
Все же хотелось бы понять вот что: процессор отличается от функционального устройства тем, что самостоятельно ведет поток исполнения программы. Обычно этот поток связан со счетчиком команд. Здесь команды выполняютсчя параллельно в рамках параграфа, соответственно поток связан с указателем параграфов. Параграф, можно считать, эдакая сверхширокая команда.

Так вот: в чем проявляется параллелизм на уровне клеткок? Они одновременно исполняют инструкции из разных параграфов, или одного и того же?
Ну эльбрусы разные бывают. Вот первые эльбрусы исполняли байткод.
Эльбрус-3 был VLIW но также как MCp адресовался к результатам предыдущих команд.
Так-то оно так, но разбираться в чужом говнокоде чем-то сродни чистке чужих сортиров. Это надо уважать, но делать это не хочется — вот почему это наказание.

Еще одна непрестижная профессия — написание тестов. Написать тест, способный поймать ошибку (да еще в сложных условиях, например в многопоточной среде) — большое искусство, но почему-то плятят за это меньше, чем тем, кто эти ошибки делает.
А существует аналогичная техника для недвоичных (сильно ветвящихся) деревьев, типа индексов в базе данных?
Не стоит, не стоит. Надо самому понимать каждый символ в своей программе. Конкретно while(running) приводит к тому, что ваша програмка жрет 100% времени ЦП, даже когда ей нечего делать. И нигде в программе нет running=false, даже пожаловаться на отсутствие синхронизации не получается :). То есть фактически while(true).

Я от геймдева далек, но мне кажется, основные проблемы там как большому количеству пользователей взаимодействовать с еще более большим количеством объектов, некоторые из них сами активные. И while(true) там совершенно недопустим — тормознет всех.
Когда-то этот кампус построила себе Sun Microsystems. RIP.
А то, что еще в 1962 году была разработана симметричная мультипроцессорная система Burroughs D825 с матричным коммутатором (а не с шиной), давно и прочно забыто.
Это, наверное, не для нас с вами, а для тех, кто без объяснений знает, что такое ИБ.
Не согласен во всем:
Рекурсия в Jav'e есть.
Указатели: на объекты в куче есть.
На элементы массивов можно легко смоделировать парой (массив, индекс).
На поля объектов можно смоделировать через reflection. И хорошо, что это непросто.
Указатели на локальные переменные смоделировать нельзя, и это очень хорошо.
И, наконец, испорченную перфокарту необязательно выбрасывать. Можно недостающие дырки прорезать бритвочкой, а лишние заклеить (без клея, просто вставить прямоугольничек и разгладить ногтем). Прямоугольничек берется из контейнера перфоратора.
А если SSN с пометкой «not valid for employment» — это поможет или наоборот, будет расценено как попытка нерезидента устроиться на работу?
Я хотел задать вопрос — тот, что в последнем предложении поста. Видимо, не получилось.
Потому что в 1913 году Египет формально входил в состав Турции.
Я в Pentix по 2-3 часа на работе играл, не мог взять себя в руки. Когда уволили, весь интерес пропал.
Я небольшой специалист по Itanium, но мне кажется, что с точки зрения рассматриваемого вопроса один Itanium-процессор — это просто один процессор. То что в нем несколько параллельно работающих устройств, дела не меняет. Главное, что счетчик команд — один. В конце концов, в Пентиуме тоже несколько параллельно работающих устройств, и за один такт может выполнится несколько команд.
Хотел поставить просто плюс, но не хватает кармы…
Вспомнил как на лабораторной работе собирал разрядно-модульный процессор из 4-битных модулей. Вынес острое ощущение того, что процессор — всего навсего тупая железяка, вроде выключателя.
Если Вы считаете процитированные места неправильными, то Вам стоило бы пояснить, почему. Или написать свой пост, где в нескольких словах был бы описан правильный вариант.

Ни слова не прозвучало о регистрах eax и прочих именно с целью экономии букв, в расчете на то, что читатель знает, что при вызове процедуры регистры упрятываются в стек, а при выходе из процедуры восстанавливаются. Переключение же потоков описано как вызов процедуры — смена указателя стека — выход.
Я не сказал «контекст», чтобы не получилось слишком много букв. Стек — существенная часть контекста.
Нет, именно вызов процедуры прерывания не задан в исполняемом коде. Сама процедура задана в коде ОС или драйвера, при исполнении этого кода может случиться прерывание, следовательно процедура прерывания может быть задана в исполняемом коде

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity