Все о моделировании в Компас-3D LT
   Главная Статьи Файлы Форум Ссылки Категории новостей
February 16 2025 08:37:33   
Навигация
Главная
Статьи
Файлы
FAQ
Форум
Ссылки
Категории новостей
Обратная связь
Фото галерея
Поиск
Разное
Карта Сайта
Популярные статьи
Что необходимо ... 65535
4.12.1 Професси... 34790
Учимся удалять!... 32378
Примеры, синони... 23689
Просмотр готовы... 22974
Декартовы коорд... 22740
FAST (методика ... 21725
содержание - се... 21024
Просмотр готовы... 19781
Работа с инстру... 15227
Сейчас на сайте
Гостей: 5
На сайте нет зарегистрированных пользователей

Пользователей: 9,955
новичок: Logyattella
Друзья сайта
Ramblers Top100
Рейтинг@Mail.ru

Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ по Delphi
Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog
6.5.3 Присоединение области к процессу
Ядро присоединяет область к адресному пространству процесса во время выполнения системных функций fork, exec и shmat (алгоритм attachreg, Рисунок 6.19). Область может быть вновь назначаемой или уже существующей, которую процесс будет использовать совместно с другими процессами. Ядро выбирает свободную запись в частной таблице областей процесса, устанавливает в ней поле типа таким образом, чтобы оно указывало на область команд, данных, разделяемую память или область стека, и записывает виртуальный адрес, по которому область будет размещаться в адресном пространстве процесса. Процесс не должен выходить за предел установленного системой ограничения на максимальный виртуальный адрес, а виртуальные адреса новой области не должны пересекаться с адресами существующих уже областей. Например, если система ограничила максимально-допустимое значение виртуального адреса процесса 8 мегабайтами, то привязать область размером 1 мегабайт к виртуальному адресу 7.5M не удастся. Если же присоединение области допустимо, ядро увеличивает значение поля, описывающего размер области процесса в записи таблицы процессов, на величину присоединяемой области, а также увеличивает значение счетчика ссылок на область.
Кроме того, в алгоритме attachreg устанавливаются начальные значения группы регистров управления памятью, выделенных процессу. Если область ранее не присоединялась к какому-либо процессу, ядро с помощью функции growreg (см. следующий раздел) заводит для области новые таблицы страниц; в противном случае используются уже существующие таблицы страниц. Алгоритм завершает работу, возвращая указатель на точку входа в частную таблицу областей процесса, соответствующую вновь присоединенной области. Допустим, например, что ядру нужно подключить к процессу по виртуальному адресу 0 существующую (разделяемую) область, имеющую размер 7 Кбайт (Рисунок 6.20). Оно выделяет новую группу регистров управления памятью и заносит в них адрес таблицы страниц области, виртуальный адрес области в пространстве процесса (0) и размер таблицы страниц (9 записей).
алгоритм attachreg /* присоединение области к процессу */
входная информация:
(1) указатель на присоединяемую область (заблокированную)
(2) процесс, к которому присоединяется область
(3) виртуальный адрес внутри процесса, по которому будет присоединена область
(4) тип области
выходная информация: точка входа в частную таблицу областей процесса
{
выделить новую запись в частной таблице областей процесса;
проинициализировать значения полей записи:
установить указатель на присоединяемую область;
установить тип области;
установить виртуальный адрес области;
проверить правильность указания виртуального адреса и размера области;
увеличить значение счетчика ссылок на область;
увеличить размер процесса с учетом присоединения области;
записать начальные значения в новую группу аппаратных регистров;
return (точку входа в частную таблицу областей процесса);
}
Рисунок 6.19. Алгоритм присоединения области
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

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

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

Пароль



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

Забыли пароль?
Запросите новый здесь.
Случайные статьи
Принцип 5. Уменьша...
Случаи из жизни
Другие возможные х...
2.1 Классификация ...
Реинжиниринг бизне...
9.1.1 Управление п...
ГЛОНАСС
FAST (методика быс...
2.6.2. Способы кон...
Настройки телефона...
NavCompanion
Асинхронное и синх...
4.10 Технология fr...
6.2.4 Пространство...
5.3 WRIТЕ
3.9 Технология Gig...
3. SADT-технология...
Fishfinder: прошло...
ГЛАВА 2. ВВЕДЕНИЕ ...
4.5 СУПЕРБЛОК
10.3.3 Терминальн...
Глава 16. GPS trac...
Эталонная модель в...
Граничная сущность
Изображение связи
Вспомогательные:
Глава 10. HUMMINBI...
1. Продукции типа...
Идентификация сущн...
Единицы измерения
4.3 Адресация пакетов
Глава 7. HUMMINBI...
Отношение к делу и...
Сквозные (межфункц...
Кольцевая топология
2.3.3.4 Импульсно-...
Первая настройка с...
2.4.3 Блоковые коды
10.1.1 Конфигураци...
Обязательные атрибуты
Мини-чат
Вам необходимо залогиниться.

Нет присланных сообщений.
Copyright © 2009