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

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

Информационная система - транспортный парк на Turbo Pascal (База данных)...
База данных склада на Delphi + Схема БД
Метод конечных разностей для интерполяции/экстраполяции на Delphi

Реклама



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

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Базы данных в Инт...
Autorunner
Искусство програм...
Delphi 6 программ...
Сапёр
Пример OpenGL гра...
MP3 Архив v.2.0
TrayIcon
Язык программиров...
Zoom [Исходник на...
Delphi. Разработк...
NotePad Pro [Исхо...
Программирование ...
Gold Submitter II...
Современное проек...
isoCanvas (Редакт...
IpEditAdress
С/C++ Программиро...
С# для профессион...
Prolog Interprete...

Топ загрузок
Приложение Клие... 100422
Delphi 7 Enterp... 84951
Converter AMR<-... 20062
GPSS World Stud... 11971
Borland C++Buil... 11406
Borland Delphi ... 8379
Turbo Pascal fo... 7008
Visual Studio 2... 4985
Калькулятор [Ис... 4630
FreeSMS v1.3.1 3530
Случайные статьи
Константы по умолч...
Игры. Как победить...
Использование DLL ...
Поиск файлов на De...
Простой метаинтерп...
Руководство компан...
Упражнение 3: защи...
Выpазить чеpез K и...
Стандартный маршал...
Что делать, если п...
Размеры классов пр...
Язык XSL как спосо...
Раскрутка сайта с ...
Внедрение решенияП...
Эффективные разреш...
Определение местоп...
7.5. Обработка с...
В Windows ХР Ноте ...
Использование новы...
Вычислительные модели
Выбор тарифного плана
Перегрузка методов...
Превращение компью...
Цель преподавания ...
Мониторинг транспо...
Статистика



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


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