Навигация
Главная
Поиск
Форум
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
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
ТЕХНОЛОГИИ ДОСТ... 63658
Имитационное мо... 58662
Реклама
Сейчас на сайте
Гостей: 5
На сайте нет зарегистрированных пользователей

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

Моделирование работы аэропорта на GPSS + Пояснительная записка
Моделирование информационно-поисковой библиографической системы на gpss ...
Моделирование процесса обработки заданий на вычислительном центре на GP...

Реклама



Подписывайся на 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 Комментариев · 1707 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Время загрузки ...
DateEdit
Векторный редакто...
MPTools
iComm v.6.1 - выв...
Программирование ...
XPButtons
Пример работы с р...
SODA [Исходник на...
Прграммирование в...
Нестандартные при...
Encrypt Decrypt
Szwavepanel
Удаление своего EXE
Delphi и технолог...
Функции Visual Basic
Стелтинг Стивен, ...
Scrrlcaptoin
Электронный магаз...
Borland Delphi 8 ...

Топ загрузок
Приложение Клие... 100490
Delphi 7 Enterp... 88259
Converter AMR<-... 20084
GPSS World Stud... 13870
Borland C++Buil... 12163
Borland Delphi ... 8719
Turbo Pascal fo... 7059
Visual Studio 2... 5007
Калькулятор [Ис... 4942
FreeSMS v1.3.1 3547
Случайные статьи
Г-слоя в физике пл...
Модемы, поддержива...
Обработка сигналов...
Параметры протокол...
Универсальная дост...
Увлекательные игры
Технические характ...
Приемы эквивалентн...
Основные понятия О...
INDEX (ИНДЕКСИРОВАТЬ)
СGІ-запрос
этого службу Telne...
Какие варианты про...
Прерывание и его в...
Семантика UNIX 445
5.1.1. Вывод термов
Если нажать левую ...
Изменение тайтла и...
Различные ограничения
Новейший гибкий O...
Возможности окруже...
Поток с использова...
Методы и их резуль...
Интерфейс TPI
Программирование д...
Статистика



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


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