Все о моделировании в Компас-3D LT
   Главная Статьи Файлы Форум Ссылки Категории новостей
Октябрь 24 2020 06:00:21   
Навигация
Главная
Статьи
Файлы
FAQ
Форум
Ссылки
Категории новостей
Обратная связь
Фото галерея
Поиск
Разное
Карта Сайта
Популярные статьи
Что необходимо ... 65535
Учимся удалять!... 27006
4.12.1 Професси... 24623
Примеры, синони... 21787
FAST (методика ... 19913
Просмотр готовы... 19678
Декартовы коорд... 18544
Просмотр готовы... 16616
содержание - се... 14363
Работа с инстру... 12603
Сейчас на сайте
Гостей: 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. Алгоритм присоединения области
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

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

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

Пароль



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

Забыли пароль?
Запросите новый здесь.
Случайные статьи
Иерархическая база...
10.1.2 Системные ф...
5.3 WRIТЕ
1.1 ИСТОРИЯ
Компьютерные файлы
содержание - сетев...
Глава 16. Raymarin...
Глава 3. ПалмГИС
6.5.5 Загрузка обл...
4.6 Протоколы и ин...
Цена до 300 долларов
ОГЛАВЛЕНИЕ
4.1 Структура и ха...
2.2.7 Объем и инфо...
Глава четвертая
Всем ребятам — при...
3.2 Методы доступ...
Сканируем
3.1 ЗАГОЛОВКИ БУФЕРА
Обязательные атрибуты
Как правильно уста...
5. Значение органи...
Теперь о картах и ...
Что для нас будет ...
Глава четвертая. ...
Аннотация
5.14.2 Демонтирова...
3.4. Разделы
6.5.1 Блокировка о...
7.3.1. Концепции о...
TZ GPS
9.4. Интегрирован...
4.7 Защита от пере...
Навигационные функции
3.5 ПРЕИМУЩЕСТВА ...
Существуют ли друг...
Непосредственный в...
1.7 Многоуровнева...
Если бы…
содержание - сетев...
Мини-чат
Вам необходимо залогиниться.

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