Все о моделировании в Компас-3D LT
   Главная Статьи Файлы Форум Ссылки Категории новостей
December 16 2025 06:51:12   
Навигация
Главная
Статьи
Файлы
FAQ
Форум
Ссылки
Категории новостей
Обратная связь
Фото галерея
Поиск
Разное
Карта Сайта
Популярные статьи
Что необходимо ... 65535
4.12.1 Професси... 36058
Учимся удалять!... 32901
Примеры, синони... 24161
Декартовы коорд... 23501
Просмотр готовы... 23484
FAST (методика ... 22219
содержание - се... 21554
Просмотр готовы... 20451
Работа с инстру... 15956
Сейчас на сайте
Гостей: 1
На сайте нет зарегистрированных пользователей

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

Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ по Delphi
Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog
6.5.4 Изменение размера области
Процесс может расширять или сужать свое виртуальное адресное пространство с помощью функции sbrk. Точно так же и стек процесса расширяется автоматически (то есть для этого процессу не нужно явно обращаться к определенной функции) в соответствии с глубиной вложенности обращений к подпрограммам. Изменение размера области производится внутри ядра по алгоритму growreg (Рисунок 6.21). При расширении области ядро проверяет, не будут ли виртуальные адреса расширяемой области пересекаться с адресами какой-нибудь другой области и не повлечет ли расширение области за собой выход процесса за пределы максимально-допустимого виртуального пространства памяти. Ядро никогда не использует алгоритм growreg для увеличения размера разделяемой области, уже присоединенной к нескольким процессам; поэтому оно не беспокоится о том, не приведет ли увеличение размера области для одного процесса к превышению другим процессом системного ограничения, накладываемого на размер процесса. При работе с существующей областью ядро использует алгоритм growreg в двух случаях: выполняя функцию sbrk по отношению к области данных процесса и реализуя автоматическое увеличение стека задачи. Обе эти области (данных и стека) частного типа. Области команд и разделяемой памяти после инициализации не могут расширяться. Этот момент будет пояснен в следующей главе.
Рисунок 6.20. Пример присоединения существующей области команд
Чтобы разместить расширенную память, ядро выделяет новые таблицы страниц (или расширяет существующие) или отводит дополнительную физическую память в тех системах, где не поддерживается подкачка страниц по обращению. При выделении дополнительной физической памяти ядро проверяет ее наличие перед выполнением алгоритма growreg; если же памяти больше нет, ядро прибегает к другим средствам увеличения размера области (см. главу 9). Если процесс сокращает размер области, ядро просто освобождает память, отведенную под область. Во всех этих случаях ядро переопределяет размеры процесса и области и переустанавливает значения полей записи частной таблицы областей процесса и регистров управления памятью (так, чтобы они согласовались с новым отображением памяти).
Предположим, например, что область стека процесса начинается с виртуального адреса 128К и имеет размер 6 Кбайт и что ядру нужно расширить эту область на 1 Кбайт (1 страницу). Если размер процесса позволяет это делать и если виртуальные адреса в диапазоне от 134К до 135К-1 не принадлежат какой-либо области, ранее присоединенной к процессу, ядро увеличивает размер стека. При этом ядро расширяет таблицу страниц, выделяет новую страницу памяти и инициализирует новую запись таблицы. Этот случай проиллюстрирован с помощью Рисунка 6.22
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

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

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

Пароль



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

Забыли пароль?
Запросите новый здесь.
Случайные статьи
Каскадная коррекция
4.1.1 Определение
Проверка правильно...
7.3.8. Сбор и анал...
Метод доступа в се...
2.2.2 Электрически...
1.2 СТРУКТУРА СИСТЕМЫ
Настройка шрифта т...
Сущность
Качество приема
Производители нара...
4.3. Другие способ...
2.7 Сети PDH и SO...
10.1.3 Программы о...
2.4.7.4 Построение...
КРАТКОЕ ЗАКЛЮЧЕНИЕ
Комплект Pocket Na...
Что для нас будет ...
Глава 7. HUMMINBI...
Вспомогательные ...
Управление с помощ...
Запуск программы [...
Убирайте повторяющ...
7.2.2. Необходимые...
Дисциплина идентиф...
6.2.2 Страницы и т...
ССЫЛКИ НА ИСПОЛЬЗУ...
Функциональный пример
Введение
7.4.1. Организаци...
1.4 ФУНКЦИИ ОПЕРАЦ...
Глава 15. GPS-сист...
5.1. Что находится...
9.2.4 Замещение ст...
2.4.7.1 Идея цикли...
Коллекция схем
Бенчмаркинг процес...
Что выбрать?
СПИСОК ЛИТЕРАТУРЫ
Глава 11. BOTTOM L...
Мини-чат
Вам необходимо залогиниться.

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