Все о моделировании в Компас-3D LT
   Главная Статьи Файлы Форум Ссылки Категории новостей
Апрель 05 2020 07:18:26   
Навигация
Главная
Статьи
Файлы
FAQ
Форум
Ссылки
Категории новостей
Обратная связь
Фото галерея
Поиск
Разное
Карта Сайта
Популярные статьи
Что необходимо ... 65535
Учимся удалять!... 25785
4.12.1 Професси... 23230
Примеры, синони... 21520
FAST (методика ... 19626
Просмотр готовы... 19337
Декартовы коорд... 17949
Просмотр готовы... 16196
содержание - се... 12715
Работа с инстру... 12261
Сейчас на сайте
Гостей: 1
На сайте нет зарегистрированных пользователей

Пользователей: 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. Алгоритм присоединения области
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

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

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

Пароль



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

Забыли пароль?
Запросите новый здесь.
Случайные статьи
Микроэлектроника
Опции поддержки IPv6
Случаи из жизни
8.3. Отслеживание...
7.11 УПРАЖНЕНИЯ
Глава 26. iFinder
Необходимые предпо...
Дополнительные уст...
Проверка внедрения
Второй параграф
Глава 10. Fortuna U2
Цена до 500 долларов
ГЛАВА 1. ОСНОВНЫЕ ...
13.6 УПРАЖНЕНИЯ
Технология совмест...
10.4 ПОТОКИ
5.2. Ближайшие задачи
2.3.3.1 Переносчик...
8.5 УПРАЖНЕНИЯ
Измерения и анализ
1. Линейно-функцио...
4.5 СУПЕРБЛОК
Глава шестая
Тип и вхож...
2.4.8 Итеративные ...
2.3.3.3 Импульсная...
Нечеткий вывод
Контактная информация
5.1 Архитектура со...
2. Подходы к оптим...
Выполняемые операции
Атрибуты в тексте
6.4.3 Переключение...
Квадратурно-амплит...
2.3 СТРУКТУРЫ ДАНН...
Какие же цели прес...
Анализ программног...
Глава 1. MacCentre...
Предисловие
Небо ограничивает
Мини-чат
Вам необходимо залогиниться.

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