Навигация
Главная
Поиск
Форум
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
Реклама
Сейчас на сайте
Гостей: 16
На сайте нет зарегистрированных пользователей

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

Моделирование вычислительного центра на GPSS + Отчет + Блок схема
База данных студентов на Delphi (файл записей) + Блок схемы
Обработка задач на ЭВМ на 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 Комментариев · 1638 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Карта сайта
CoolDev TipsSyste...
Работа с картотеками
PCXReader. Програ...
Cтатьи Королевств...
MiniTetris [Исход...
Averaging [Исходн...
CwstatusBar
Модифицированная ...
Дешифратор содерж...
Delphi 2005 Учимс...
Visual Basic Script
FreeNet
SearchAndReplace
C++ Стандартная б...
Xrumer 4 Platinum...
index.php + мод ...
«Философия» прогр...
TrayIcon
PDA версия сайта

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97829
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10290
Turbo Pascal fo... 7373
Калькулятор [Ис... 5981
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Блокирование всплы...
Снова о времени жи...
Проверить, правиль...
Разработчик объект...
Большие объекты
Функции абстракции
Создание манипулят...
Интернета
Этап 3 - сколемизация
Исходная БДдиспетч...
Американская рулет...
Команда Create Tab...
Построение двусвяз...
Ключевые слова
Применение расчёто...
• Для шифрования и...
Компиляция
MultiLength
Создание нового пр...
Типы модуляции
Азартный гемблинг ...
АНТИПАТТЕРН: ИСПОЛ...
Разработать процед...
Вулкан Делюкс - дл...
Блокировка файлов
Статистика



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


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