Все о моделировании в Компас-3D LT
   Главная Статьи Файлы Форум Ссылки Категории новостей
December 31 2025 01:57:07   
Навигация
Главная
Статьи
Файлы
FAQ
Форум
Ссылки
Категории новостей
Обратная связь
Фото галерея
Поиск
Разное
Карта Сайта
Популярные статьи
Что необходимо ... 65535
4.12.1 Професси... 36081
Учимся удалять!... 32935
Примеры, синони... 24178
Декартовы коорд... 23535
Просмотр готовы... 23503
FAST (методика ... 22239
содержание - се... 21572
Просмотр готовы... 20482
Работа с инстру... 15980
Сейчас на сайте
Гостей: 2
На сайте нет зарегистрированных пользователей

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

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

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

Пароль



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

Забыли пароль?
Запросите новый здесь.
Случайные статьи
Встроенная база да...
5.17 АБСТРАКТНЫЕ О...
FLS Silver, FLS Go...
10.1.3 Программы о...
1.3.1 Файловая сис...
Предисловие
Введение
Использование един...
Замечания
Глава 3. Как выбр...
Теоретические осно...
Постоянное обновление
Настройки телефона...
2.4.6 Код Хемминга...
9.3 СИСТЕМА СМЕША...
Глава 28. GPSMAP 276С
12.3.3.4 Фиктивные...
Спидометр
Глава 4. Я и GPS
Глава 14. КПК со в...
9.1.2.1 Выгрузка п...
Характеристики карты
содержание - сетев...
Движение по маршруту
2.4. Цифровые кана...
Пример домена
Идентификация атри...
8.3.4 Учет и стат...
5.14.1 Пересечение...
12.3.3 Примеры ал...
Глава шестая
Компьютерные файлы
Проверка внедрения
Кольцевая топология
Терминология
ГЛОНАСС
3. Выделение в орг...
Импульсно-кодовая ...
3.6 Технология E...
Общая схема вывода
Мини-чат
Вам необходимо залогиниться.

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