На некоторых машинах синхронизация буферов TLB реализована аппаратно. Например, инструкция системы ipte IBM/370 производит неделимую операцию изменения вхождения таблицы страниц и сброса его корректности во всех буферах TLB системы. Однако чаще аппаратура не поддерживает автоматическую синхронизацию буферов TLB. Большинство систем не позволяют процессору даже выполнить сброс корректности вхождений буфера TLB другого процессора.
Также вам может показаться, что такая тема как http://www.5866678.ru/#!zamena-provodki-v-mytischakh/c17zy никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт 5866678.ru. Тема электропроводка там представлена весьма широко. На том сайте можно узнать много интересного на тему электропроводка. Что означает вообще тема электропроводка, где найти электропроводка - про это написано на сайте 5866678.ru. Это очень важная для многих людей тема - электропроводка. Спасибо сайту 5866678.ru за информацию на тему электропроводка.
В системе может возникать множество ситуаций, при которых изменение одной страницы должно влиять на данные буферов TLB сразу нескольких процессоров:
♦ страница принадлежит ядру;
♦ страница разделяется между несколькими процессами, каждый из которых выполняется на отдельном процессоре машины;
♦ в многонитевых системах, в которых несколько нитей одного процесса выполняются одновременно на нескольких процессорах машины. Если одна из нитей вносит изменения в отображение, то обновленные данные должны быть доступны всем остальным нитям.
В системе также вероятна ситуация, когда один процессор производит изменения в адресном пространстве процесса, выполняющегося на другом CPU. В этом случае происходит перезагрузка вхождений лишь в одном буфере TLB, но не принадлежащем процессу, ставшему инициатором этих изменений.
Если аппаратная часть не поддерживает синхронизацию, то решать возникающие проблемы приходится ядру на программном уровне. Для этого используется механизм уведомлений, основанный на межпроцессорных прерываниях. Здесь нам необходимо дать определение двух терминов: инициатора (initiator) и исполнителя (responder). Инициатором называется процессор, который изменяет отображение и тем самым делает неактуальным некоторое количество удаленных буферов TLB. Исполнитель — это удаленный процессор, который, возможно, содержит вхождение TLB для такого отображения. Инициатор отправляет прерывание исполнителю, который, в свою очередь, сбрасывает вхождения соответствующего буфера TLB.
Возникающая ситуация является весьма сложной, так как для ее решения необходимо произвести по крайней мере два действия: внести изменения во вхождение таблицы страниц и сбросить корректность элемента TLB. Представьте, что исполнитель успевает сбросить вхождение TLB до того, как инициатор внесет изменения в РТЕ. В этом случае процесс, выполняющийся на процессоре-исполнителе, может произвести попытку обращения к странице между означенными двумя действиями, что будет иметь следствием аппаратную перезагрузку некорректного вхождения TLB.
Изменение порядка следования операций на обратный также приводит к возникновению проблем. Если инициатор будет производить изменение РТЕ в первую очередь, исполнитель получит возможность записать устаревшее вхождение TLB в таблицу страниц с целью модификации битов ссылки или изменения.
Опубликовал katy
June 22 2015 19:33:55 ·
0 Комментариев ·
3026 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.