Навигация
Главная
Поиск
Форум
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
Создание отчето... 63898
Модуль Forms 63632
ТЕХНОЛОГИИ ДОСТ... 60477
Пример работы с... 59845
Имитационное мо... 55944
Реклама
Сейчас на сайте
Гостей: 3
На сайте нет зарегистрированных пользователей

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

Моделирование системы управления качеством производственного процесса на...
Моделирование автовокзала + Отчет + Блок схема
Метод половинного деления для нахождения корня уровнения на Turbo Pascal...

Реклама



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

ПОДПИСЫВАЙСЯ на канал о программировании
Прерывание и обработка всех прерываний
По получении прерывания исполнитель также запрещает обработку всех прерываний. Затем он подтверждает факт приема прерывания посредством сброса индикатора активности и переходит в режим ждущего цикла, условием выхода из которого является разблокирование структуры ртар инициатором.

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



В это время инициатор ожидает, пока все процессоры, разделяющие отображение, станут неактивными. После того, как каждый из них подтвердит получение прерывания, инициатор сбросит собственное вхождение буфера TLB, изменит структуру ртар и затем сделает ее доступной другим процессорам. На этот момент все исполнители могут выйти из цикла ожидания, начать обработку своих очередей запросов и объявить недействительными все устаревшие вхождения TLB. На последнем этапе инициатор и исполнители изменяют значения флагов активности, разрешают прерывания и возобновляют работу в обычном режиме.



Синхронизация и предупреждение взаимоблокировок
Метод перезагрузки использует несколько механизмов синхронизации. Порядок следования операций является важным для его правильной работы [18]. Обработка прерываний устройств может привести к длительным простоям процессоров, поэтому важно запретить выполнение прерываний во время выполнения алгоритма. Блокировка ртар пресекает одновременную инициализацию перезагрузки TLB по отношению к одной и той же структуре ртар. Прерывания необходимо запрещать до блокировки таблицы страниц, так как захват межпроцессорного прерывания во время блокировки может привести к взаимоблокировке (deadlock) процессора.



Перед блокировкой ртар инициатор сбрасывает собственный индикатор активности с целью защиты от взаимной блокировки. Представим, что два процессора, П1 и П2, одновременно пытаются внести изменения в одну и ту же структуру ртар. Процессор П1 запрещает прерывания, блокирует ртар и посылает процессору П2 прерывание. В это время процессор П2 также налагает запрет на прерывания и блокируется по тому же объекту. Это приводит к тупиковой ситуации, так как процесс П1 находится в режиме ожидания подтверждения прибытия прерывания от П2, в то время как П2 дожидается освобождения ртар.
Сброс флага активности является эффективным способом подтверждения прерываний. В нашем примере П1 не заблокируется, поскольку процессор П2 сбросил свой флаг активности до попытки блокировки ртар. После того, как П1 освободит ртар, процессор П2 продолжит выполнение и обработает сообщение о необходимости сброса TLB, отправленное ему процессором П1.
Эффект от применения алгоритма перезагрузки далеко не всегда очевиден по отношению ко всем блокируемым ресурсам. Этот метод требует соблюдения четкой политики запрета определенных прерываний при захвате объекта блокировки. Представьте, что процессор П1 удерживает ресурс, разрешая при этом обработку прерываний. Процессор П 2 пытается захватить тот же ресурс, при этом прерывания на нем запрещены. Процессор ПЗ инициализирует выполнение алгоритма перезагрузки, а процессоры П1 и П2 выступают в роли исполнителей. Процессор ПЗ посылает П1 и П2 межпроцессорные прерывания и затем блокируется до тех пор, пока не получит подтверждения. Процессор П1 подтверждает получение и затем блокируется в ожидании освобождения ртар. Однако процессор П2 уже заблокирован с запрещением прерываний и вследствие этого не может увидеть или подтвердить факт приема. В результате возникает трехстороннее взаимоисключение. Для предупреждения подобных ситуаций система должна установить фиксированное состояние прерываний для каждого случая блокировки: блокировка может быть получена в собственность при «всегда» отключенных прерываниях, либо, наоборот, при «всегда» обрабатываемых прерываниях.
Некоторые итоги
Алгоритм перезагрузки TLB системы Mach помогает решить весьма сложную проблему без вовлечения каких-либо дополнительных аппаратных средств (кроме поддержки межпроцессорных прерываний). С другой стороны, эта техника является весьма затратной и плохо масштабируемой. Все исполнители должны находиться в состоянии ожидания до тех пор, пока инициатор производит изменение ртар. В больших системах, имеющих десятки и сотни процессоров, операция перезагрузки TLB может привести к простою по крайней мере нескольких CPU.
Представленный алгоритм является весьма сложным, но это необходимо сразу же по двум причинам. Во-первых, некоторые MMU автоматически записывают данные о вхождениях TLB в таблицы страниц при модификации битов изменения и ссылки. Такая модификация приводит к перезаписи вхождения ртар целиком. Во-вторых, программные и аппаратные размеры страниц, как правило, различны. Ядру при изменении отображения одной страницы иногда приходится производить обновление нескольких вхождений ртар. Такие изменения должны быть неделимы для всех процессоров системы. Единственным способом достижения эффекта неделимости является приостановка работы всех процессоров, использующих ртар, на время перегрузки вхождения.
На сегодняшний день существует множество других способов перезагрузки TLB. В следующем разделе вы увидите описание некоторых специализированных (ad hoc) решений, позволяющих уменьшить частоту операций сброса корректности TLB. Отдельные методы зависят от конкретных аппаратных характеристик машины, что упрощает решение проблемы. Например, в [18] описывается алгоритм, эффективно работающий на RP3 (IBM Research Parallel Processor Prototype, [16]). Этот алгоритм основан на том, что процессор RP3 не производит автоматической отложенной записи содержимого вхождений в оперативную память, а также использует тот факт, что большой размер физической страницы (16 Кбайт) избавляет от необходимости программной странице занимать сразу несколько физических страниц памяти. Другие разработки требуют изменения архитектуры диспетчера MMU с целью вовлечения аппаратной составляющей в процедуру перезагрузки TLB [21].
Группа компьютерных компаний, объединившаяся в Intel Multiprocessor Consortium, совместно разработала ОС SVR4/MP, вариант системы SVR4 для многопроцессорных машин, оборудованных CPU семейства Intel. Через некоторое время в UNIX Systems Laboratories создали SVR4.2/MP, версию операционной системы SVR4.2, поддерживающую многопроцессорную обработку, а также другие возможности (например, легковесные процессы). В этом разделе мы рассмотрим аспекты корректности буферов TLB в обеих реализациях.
Опубликовал katy June 23 2015 09:06:02 · 0 Комментариев · 1801 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
TrayComp
Редактор текста (...
AJAX и PHP. разра...
FilesInfo
Пользовательская...
Программирование ...
Drag&Drop
ZipForge
NetGraph [Исходни...
Технология .Net в VB
JanButtonsV
Tetris 2002
EMS QuickExport S...
Простой текстовый...
AdBlaster v2.5 - ...
Язык программиров...
32 урока по Delphi
Библия для програ...
DragMe [Исходник ...
Запрет гостям ск...

Топ загрузок
Приложение Клие... 100449
Delphi 7 Enterp... 85813
Converter AMR<-... 20067
GPSS World Stud... 12518
Borland C++Buil... 11575
Borland Delphi ... 8504
Turbo Pascal fo... 7023
Visual Studio 2... 4989
Калькулятор [Ис... 4739
FreeSMS v1.3.1 3536
Случайные статьи
Составление алгори...
Разработка Web-формы
ВОСХОДЯЩАЯ РЕКУРСИЯ
Свойства цвета
Программы для прод...
Структура проекта
Обучение
Создание и изменен...
ВВЕДЕНИЕ В РЕКУРСИЮ
Семантические сети
Когда маршрутизато...
Storm Internationa...
INLINE error
Введение в Object ...
Type Identifier ex...
Что может инженер ...
Лазерный термоядер...
Разделяемая память
Датчики приближения
Вычисление интегра...
Букмекерская конто...
ПАММ счета Fx-Tren...
В сети Fabrikam ос...
Если многомерный с...
Описание синтаксис...
Статистика



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


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