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

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

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

Реклама



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

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


Также может иметь смысл заглянуть на сайт carbide-tools.com.tw, ведь именно там можно узнать много нового на тему http://carbide-tools.com.tw/relevant_page/. Тема матрицы, пуансоны, волоки из Тайваня может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт carbide-tools.com.tw, и тема матрицы, пуансоны, волоки из Тайваня начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема матрицы, пуансоны, волоки из Тайваня очень подробно представлена на сайте carbide-tools.com.tw. Трудно найти более детальное освещение темы матрицы, пуансоны, волоки из Тайваня чем это сделано на сайте carbide-tools.com.tw. Спасибо сайту carbide-tools.com.tw за такое доскональное преподнесение темы матрицы, пуансоны, волоки из Тайваня.



Предыдущая нить уже освободила свой стек ядра, а следующая нить еще не имеет такового. В этом случае ядро может передать стек от старой нити новой напрямую, как это продемонстрировано ранее

Помимо исключения перегрузок, которые бы происходили при выделении нового стека, такой подход помогает сократить кэш-промахи
и буферы ассоциативной трансляции (translation lookaside buffer, TLB, см. подробнее в разделе 13.3.1), ассоциированные с переключением контекста, так как используется та же область памяти.


Преимущества продолжений используются также в реализации IPC (межпроцессное взаимодействие) системы Mach. Передача сообщения включает две стадии. Клиентская нить использует для отправки сообщения и ожидания ответа системный вызов mach_msg, а серверная нить использует тот же вызов для отправки ответа клиентам и ожидания новых запросов.


Сообщение отправляется в порт, а также принимается из порта, являющегося защищенной очередью сообщений. Отправка и получение сообщений осуществляются независимо друг от друга. Если получатель не готов, ядро поместит сообщение в очередь порта.



Если получатель находится в режиме ожидания, то процедура пересылки может быть оптимизирована при помощи продолжений. Когда отправитель обнаружит, что получатель находится в режиме ожидания, он передаст свой стек получателю и заблокируется на функции продолжения mach_msg_ continue(). Получающая нить восстановит свою работу, используя при этом стек отправителя, который уже содержит всю необходимую информацию о передаваемом сообщении. Такой подход предотвращает перегрузку, возникающую при помещении в очередь и извлечении из нее сообщения, а также ощутимо увеличивает скорость обмена сообщениями. После ответа сервера происходит передача его стека клиентской нити и возобновление работы клиента описанным выше способом.
Анализ производительности


Механизм продолжений системы Mach показал себя очень эффективным. Так как его применение не является обязательным, нет необходимости менять программную модель целиком, и его использование может быть наращиваемым. Механизм продолжений очень сильно сокращает количество запросов, размещаемых в памяти ядра. Измерения производительности показали [10], что в среднем в системе, которой требуется 2002 байт стека в ядре на каждый процессор, пространство ядра для каждой нити сокращается с 4664 до 690 байт.


Операционная система Mach 3.0 очень неплохо подходит для продолжений, так как обладает микроядром, имеющим небольшое количество базовых элементов и предлагающим скромный интерфейс. В частности, та часть кода, которая сохраняла совместимость системы с UNIX, была удалена из ядра, и ее реализация состоялась в виде серверов прикладного уровня [12]. В результате оказалось только 60 потенциальных мест, в которых ядро может блокировать выполнение, а 99% всех случаев блокирования происходит в шести «горячих точках». При концентрировании внимания на них обеспечивается определенное преимущество, заключающееся в уменьшении усилий, затрачиваемых на разработку приложений. В противоположность Mach, традиционные системы UNIX могут производить блокирование в сотнях мест, при этом не имея ни одной так называемой «горячей точки».
Опубликовал katy July 03 2015 19:07:57 · 0 Комментариев · 1385 Прочтений · Для печати

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


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



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/MySQL для нач...
TmxOutlookBarPro
CoolDev TipsSyste...
PDJ Scrollers
Geo-Whois
DCMintry
AddPage [Исходник...
C# 2005 и платфор...
DeleteEdit
Переработанный пл...
Delphi Быстрый Ст...
JanReplace
Error mod
Формирование отче...
WinPopup
Задача о 8ми ладьях
Dealer
База для Allsubmi...
PHP 5. Полное рук...
C++ для начинающих

Топ загрузок
Приложение Клие... 100443
Delphi 7 Enterp... 85583
Converter AMR<-... 20065
GPSS World Stud... 12439
Borland C++Buil... 11512
Borland Delphi ... 8474
Turbo Pascal fo... 7020
Visual Studio 2... 4987
Калькулятор [Ис... 4722
FreeSMS v1.3.1 3533
Случайные статьи
Советы как бесплат...
Это позволит повто...
Важность библиотек
В данном примере н...
Штриховкой можно п...
Минимизация открыт...
Процедура MoveRel ...
168.10.
Передача символьно...
Непосредственное в...
Создание в среде D...
сканирование
Определение шаблон...
Правила описания т...
Управление целостн...
— отправлять сообщ...
Класс TBitmap
Вторая нормальная ...
Команды библиотеки...
fail
ПРОСТРАНСТВО, ВРЕМ...
Работа с табличной...
SEO-специалист дел...
Приложение RADIUS ...
Обзор db-компонент...
Статистика



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


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