Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 64164
Модуль Forms 63869
Пример работы с... 60761
ТЕХНОЛОГИИ ДОСТ... 60756
Имитационное мо... 56274
Реклама
Сейчас на сайте
Гостей: 5
На сайте нет зарегистрированных пользователей

Пользователей: 13,080
новичок: setan
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

База данных склада на Delphi + Схема БД
Моделирование автомойки на GPSS + Отчет + Блок схемы
Расчет обратной матрицы на Delphi + Пояснительная записка

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Повторное использование страницы и ядро
Перед повторным использованием страницы ядро передает объект cookie функции hat_shootdown(), которая производит его сравнение со значениями cookie на других процессорах. Если какой-то процессор владеет cookie, более давним по сравнению со сравниваемым, это означает, что информация буфера о странице изжила себя и такой буфер является кандидатом на уничтожение.

Также вам может показаться, что такая тема как http://audioz.org.ua/811202-comedy_club_etyashchey_pohodkoy.html никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт audioz.org.ua. Тема песни камеди клаб там представлена весьма широко. На том сайте можно узнать много интересного на тему песни камеди клаб. Что означает вообще тема песни камеди клаб, где найти песни камеди клаб - про это написано на сайте audioz.org.ua. Это очень важная для многих людей тема - песни камеди клаб. Спасибо сайту audioz.org.ua за информацию на тему песни камеди клаб.



Процедура hat_shootdown() выполняется в контексте процесса-инициато- ра. Сначала она захватывает глобальный объект простой блокировки (spin lock), что гарантирует проведение в один момент времени только одной операции перезагрузки. Затем операция посылает межпроцессорное прерывание всем процессорам, обладающим устаревшим объектом cookie. После начала обработки запроса каждым процессором инициатор освобождает объект блокировки и завершает изменение отображения страницы.
Процессы обрабатывают прерывание сразу после получения, не ожидая каких-либо действий, обеспечивающих синхронизацию. Они производят сброс своих буферов TLB и продолжают после этого работу в обычном режиме. Так как инициатор выполнил изменения преобразований адресов перед началом перезагрузки, все последующие операции доступа к странице со стороны исполнителей приведут к загрузке корректного вхождения TLB. Межпроцессорное прерывание обладает наивысшим уровнем приоритета. При его обработке запрещены любые другие прерывания, так как новая операция перезагрузки, начатая в тот же промежуток времени, в состоянии повлечь взаимную блокировку.
Средства синхронизации, используемые при реализации описанного алгоритма, намного проще и эффективнее по сравнению с методикой системы Mach. Основной причиной этого является поддержка ядром системы SVR4.2/MP гарантий не обращения к некорректным страницам, не имевшихся в ОС Mach.
Незамедлительная перезагрузка
При сбросе ядром системы корректности пользовательского РТЕ необходимо произвести безотлагательную перезагрузку буферов TLB на всех процессорах, где соответствующий процесс может быть активен. Такая необходимость проистекает из-за того, что ядро не может контролировать правила доступа к памяти прикладных процессов и не гарантирует отсутствие попыток обращения к недействительным адресам с их стороны. Методика немедленной перезагрузки сложнее по сравнению с предыдущей, так как в этом случае процессам-исполнителям приходится ждать, пока инициатор завершит изменение элементов РТЕ, и только после этого заканчивать обработку прерывания.
Алгоритм синхронизации прикладных вхождений TLB в системе SVR4.2/ МР схож со своим аналогом, реализованным в Mach. Ядро использует для этой цели дополнительный счетчик синхронизации, который играет роль семафора, разделяемого между инициатором и исполнителями. Последовательность операций продемонстрирована ранее.


Если ядру нужно сбросить корректность прикладного вхождения РТЕ процессора, сначала производится блокировка структуры hat и последующее овладение глобальным объектом простой блокировки (с целью предупреждения конфликтов с другими операциями перезагрузки). Дальнейшим этапом работы ядра является отправка межпроцессорного прерывания каждому процессору, разделяющему обрабатываемое адресное пространство (для этой цели используется список процессоров, хранящийся в структуре hat). После приема прерывания исполнители переходят в ждущий цикл с выходом по условию увеличения значения счетчика синхронизации.
В тот момент, когда все исполнители переключились в состояние ожидания, инициатор проводит операцию изменения вхождений таблицы страниц и инкрементирует счетчик синхронизации. Исполнители покидают цикл ожидания, сбрасывают свои TLB и возвращаются из обработки прерывания. Последней стадией операции перезагрузки является сброс локального буфера TLB инициатором и последующее освобождение объекта блокировки и структуры hat.
Описанный алгоритм позже был оптимизирован с учетом архитектуры Intel для случая необходимости изменения инициатором сразу же нескольких вхождений РТЕ в одном адресном пространстве. Такое может происходить, к примеру, при освобождении процессом сегмента памяти. Процессор І386 имеет двухуровневую таблицу страниц, в которой таблица страниц уровня 1 содержит РТЕ для таблиц второго уровня. В случае необходимости сброса нескольких РТЕ инициатор просто-напросто объявляет недействительными соответствующие вхождения таблицы первого уровня, после чего производит инкремент счетчика синхронизации.
Такой подход позволяет исполнителям завершить свою часть операции перезагрузки и продолжить работу в нормальном режиме без необходимости ожидания завершения модификации всех элементов РТЕ инициатором. Если легковесный процесс исполнителя пытается произвести обращение к устаревшей странице, то это приведет к страничной ошибке, так как вхождение таблицы первого уровня является некорректным. Загруженный в результате этого обработчик ошибки блокируется, поскольку структура hat по-прежнему остается блокированной инициатором.



Таким образом, исполнитель не может обратиться к противоречивым преобразованиям до того времени, пока инициатор не завершит свою часть работы и не загрузит корректное отображение. Несмотря на элегантность описанного метода, он является весьма специфичным и применяется лишь в архитектуре Intel и помогает лишь в ограниченном количестве ситуаций.
Опубликовал katy June 23 2015 09:16:37 · 0 Комментариев · 1632 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Учебник для продв...
Самоучитель PHP 4
3d Tank [Исходник...
Х. М. Дейтел, П. ...
Алгоритм DES шифр...
BDEPack
Geo-Whois
SUIPack
Язык программиров...
Java 2 - Эффектив...
Delphi. Разработк...
MP3 Архив v.2.0
SearchAndReplace
ИНТЕРНЕТ ПРОГРАММ...
Правила программи...
Паскаль и Дельфи....
ЯЗЫК ПРОГРАММИРОВ...
DFileDeleter
BIOS
Пример создания W...

Топ загрузок
Приложение Клие... 100455
Delphi 7 Enterp... 86134
Converter AMR<-... 20071
GPSS World Stud... 12522
Borland C++Buil... 11608
Borland Delphi ... 8522
Turbo Pascal fo... 7035
Visual Studio 2... 4992
Калькулятор [Ис... 4744
FreeSMS v1.3.1 3539
Случайные статьи
Программирование п...
Форматирование объ...
Как вывести форум ...
АБСТРАКТНЫЕ ТИПЫ Д...
Решение сложных за...
Фрикинг контроллер...
Меры близости на о...
Работа с окружением
УСТРОЙСТВА
• Negotiate Securi...
Отладка кода проек...
Справочные материалы
подкаталог Ех75
Работа с очередями...
Фотокниги
Конструкторы и объ...
Просмотр курсора н...
Проблемы со свобод...
Новый клиент Outlo...
СОЗДАНИЕ ЭКСПЕРТНЫ...
Множественный дост...
nonvar(X)
свой технический п...
Подари себе Интерн...
Настраиваемые инте...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?