418ImATeapot писал(а):
А насчет быстродействия/безопасности - мне кажется, лучше всего, когда ОСь сама изменяет теневые регистры и использует свои таблицы, а архитектура проца должна быть MISC
Извините, бред. Операции, выполняемые аппаратно, всегда будут как минимум не медленнее, чем их программные аналоги -- хотя бы из-за отсутствия необходимости производить выборку и декодирование команд. Безопасность вообще ни малейшего отношения к этому не имеет, поскольку абсолютно все проблемы с ней связаны с ошибками в проектировании и реализации ПО. Если программа абсолютно безошибочна, она будет абсолютно безопасной.
Цитата:
Да, еще... Если я хоть что-нибудь понимаю, адреса грузятся и в страничной модели. И даже чаще.
Грузятся не адреса, а элементы таблиц переадресации (ну или дескрипторы сегментов, если речь о ней). Происходит это действительно довольно часто, если программа большая и раскидана на большой "площади". Однако, во-первых, в TLB хранится довольно приличное количество последних использованных элементов, поэтому загрузка нового, скорей всего, не потребует в ближайшем будущем загрузки какого-то из ранее находившихся там элементов. В то же время новый дескриптор можно использовать лишь вместо старого, но никак не вместе с ним; в результате, например, вынесение неких часто используемых общих подпрограмм в отдельный сегмент приведёт к резкому падению производительности: при каждом вызове такой подпрограммы и возврате из неё управления потребуется перезагружать дескриптор сегмента кода (как минимум). Во-вторых, перезагрузка дескриптора останавливает конвейер, может вызвать сброс предварительно выбранных команд и т.д. и т.п. (зависит от особенностей процессора и от того, какой именно дескриптор был заменён), а в случае со страницами этого не происходит: приостанавливается выполнение только команды, для которой в TLB отсутствовал необходимый элемент, и зависящих от неё последующих команд; результаты предвыборки команд в любом случае не теряются (если, конечно, страница находится в физической памяти, но это является полным аналогом наличия/отсутствия сегмента).