Главная » Информационные системы » Операционные системы » Адресное пространство процесса

Адресное пространство процесса

Процесс функционирует в определенном адресном пространстве, имеется в виду доступный ему диапазон адресов и данные, расположенные по этим адресам. Концепция адресного пространства является одной из основ построения любых видов систем.

В наборах команд многих ранних компьютеров имелись только 16-разрядные поля адресов, допускающие непосредственную адресацию лишь 64 Кбайт памяти. Сейчас поля адреса 32-разрядные, что позволяет адресовать до 4Гбайт памяти. Говорят, что такая архитектура определяет виртуальное адресное пространство объемом 4 Гбайта. (Объем памяти в типичной компьютерной системе обычно меньше.)

Заданный в команде адрес может указывать на любое место виртуального адресного пространства, но для правильного выполнения операции он должен быть преобразован в реальный адрес  в физической памяти. (В основе большинства схем управления памятью лежит следующая идея: процесс видит только свое виртуальное адресное пространство, а преобразование виртуальных адресов в физические осуществляет операционная система и аппаратное обеспечение.)

Рассмотрим один из способов загрузки программы в память. Операционная система сообщает загрузчику базовый адрес, по которому следует поместить программу, и необходимый размер области памяти. Эта процедура называется статической настройкой или статическим преобразованием адресов.

После ее выполнения и загрузки программы в память адреса в ней больше не меняются и код или данные по этим адресам нельзя перемещать без повторной настройки.

В системе, предназначенной для выполнения единственной задачи, загруженная в память программа может выполняться длительное время. Пример единственной задачи: мониторинг производственного процесса. Для подобных случаев подходит стратегия статической настройки адресов.

Рассмотрим возможность сохранения в программе относительных адресов и использования другого механизма отображения виртуального адресного пространства. Это решение обладает следующими преимуществами:

►1.Выполнение программы не зависит от того, в каком месте физической памяти она находится, и операционная система может свободно ее перемещать.

►2.Существует возможность защитить процессы друг от друга и операционную систему от прикладных процессов.


Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

Поделиться
Дисциплины