Навигация
Главная
Поиск
Форум
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
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 9
На сайте нет зарегистрированных пользователей

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

Моделирование автовокзала + Отчет + Блок схема
Моделирование станции технического обслуживания на GPSS + Отчет
Моделирование процесса поступления заявок в систему, состоящую из трёх Э...

Внешние и внутренние менеджеры памяти
Технология обмена сообщениями делает взаимодействие расширяемым и независимым от дислокации его участников.

Менеджер памяти не обязательно должен выполняться на одной машине. Он может работать на любом удаленном узле сети и представляться на локальной машине через порты-заместители объектов памяти. Такой подход позволяет расширить управление памятью Mach на многопроцессорные системы, в которых машины разделяют между собой некоторую часть памяти на основе обмена сообщениями. В следующем подразделе вы увидите пример, описывающий такое взаимодействие.



Менеджеры памяти, реализованные в виде задач прикладного уровня, называются внешними. Система Mach также поддерживает менеджер по умолчанию (default pager), являющийся внутренним, то есть работающим в качестве задачи ядра1. Этот менеджер управляет всеми временными объектами памяти, для которых не требуется постоянное резервное хранение. Такие объекты можно разделить на два типа:
+ теневые объекты, содержат измененные страницы областей памяти, разделяемых в режиме копирования при записи;
+ области, заполняемые нулями, такие как стеки, кучи или неинициализированные данные. Они выделяются вызовом
vm_allocate (target_task, address, size, flag):
Ядро создает менеджер по умолчанию при инициализации системы при вызове memory_object_create(). Управляемые объекты изначально не обладают памятью. При первом обращении к таким объектам ядро вызывает memory_object_ data_request(), а менеджер возвращает memory_object_data_unavailable(), что указывает на необходимость заполнения запрашиваемых страниц памяти нулями.

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



Давайте представим, какие взаимодействия могут происходить между двумя задачами, выполняемыми на двух разных машинах, и разделяющими между собой страницу памяти. Сервер разделяемой памяти вправе находиться как на одном из этих узлов, так и на совершенно другом, третьем компьютере. На рис. 15.9 показана схема первоначального отображения объекта в адресных пространствах клиентов. Для каждой клиентской задачи выполняется последовательность операций, представленная ниже.
Опубликовал katy June 20 2015 18:40:04 · 0 Комментариев · 1655 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Пример работы с ф...
Архив программ
TsHintManager
Report
Delphi. Учимся на...
БД сеть компьютер...
Игра Car [Исходни...
Шейдеры в Delphi
Язык программиров...
Приемы программир...
DS_Group
Counter [Исходник...
Calendar
Панель для реклам...
Программирование ...
INSTANT BOOSTER v...
ADVstatusbar
Библия для програ...
Задача о 8ми ладьях
Sztransppanel

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97838
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14192
Borland Delphi ... 10293
Turbo Pascal fo... 7374
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Вставка узла похож...
MissingMappingAction
Раскрутка, путем р...
Illegal assignment
GSNW, членом групп...
Преобразования XSLT
Стандартные числов...
Установка палагино...
Где мы находимся?
Вложенные классы
SMB-подпись гарант...
Интернет – магазин...
Особенности примен...
Диалоговые окна
Ставки на спорт
Простейший алгорит...
СОЗДАНИЕ ЭКСПЕРТНЫ...
Как решать задачи ...
Чего требует пятый...
tab(X)
Задача о коммивояж...
Нетрадиционное при...
Как вставить в док...
УСТРОЙСТВА В GPSS
Ответы см
Статистика



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


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