Главная
»
Информационные системы
»
Операционные системы
»
Адресное пространство процесса
Адресное пространство процесса
Процесс функционирует в определенном адресном пространстве, имеется в виду доступный ему диапазон адресов и данные, расположенные по этим адресам. Концепция адресного пространства является одной из основ построения любых видов систем.
В наборах команд многих ранних компьютеров имелись только 16-разрядные поля адресов, допускающие непосредственную адресацию лишь 64 Кбайт памяти. Сейчас поля адреса 32-разрядные, что позволяет адресовать до 4Гбайт памяти. Говорят, что такая архитектура определяет виртуальное адресное пространство объемом 4 Гбайта. (Объем памяти в типичной компьютерной системе обычно меньше.)
Заданный в команде адрес может указывать на любое место виртуального адресного пространства, но для правильного выполнения операции он должен быть преобразован в реальный адрес в физической памяти. (В основе большинства схем управления памятью лежит следующая идея: процесс видит только свое виртуальное адресное пространство, а преобразование виртуальных адресов в физические осуществляет операционная система и аппаратное обеспечение.)
Рассмотрим один из способов загрузки программы в память. Операционная система сообщает загрузчику базовый адрес, по которому следует поместить программу, и необходимый размер области памяти. Эта процедура называется статической настройкой или статическим преобразованием адресов.
После ее выполнения и загрузки программы в память адреса в ней больше не меняются и код или данные по этим адресам нельзя перемещать без повторной настройки.
В системе, предназначенной для выполнения единственной задачи, загруженная в память программа может выполняться длительное время. Пример единственной задачи: мониторинг производственного процесса. Для подобных случаев подходит стратегия статической настройки адресов.
Рассмотрим возможность сохранения в программе относительных адресов и использования другого механизма отображения виртуального адресного пространства. Это решение обладает следующими преимуществами:
►1.Выполнение программы не зависит от того, в каком месте физической памяти она находится, и операционная система может свободно ее перемещать.
►2.Существует возможность защитить процессы друг от друга и операционную систему от прикладных процессов.
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.