Четверг, 02.07.2026
Шпаргалка :)
Меню сайта
Категории раздела
Мои статьи [172]
Наш опрос
Оцените мой сайт
Всего ответов: 259
Форма входа
Главная » Статьи » Мои статьи

7. Память и отображения, виртуальное адресное пространство. Непрерывные распределения.

Память и отображения, виртуальное адресное пространство. Непрерывные распределения.

С другой стороны, существует понятие физическом оперативной памяти, собст­венно с которой и работает процессор, извлекая из нее команды и данные и по­мещая в нее результаты вычислении. Физическая память представляет собой упорядоченное множество ячеек, и все они пронумерованы, то есть к каждой из них можно обратиться, указан ее порядковый номер (адрес). Количество ячеек физической памяти ограничено и фиксировано.

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

Одним из частных случаев отображения пространства имен на физическую па­мять является тождественность виртуального адресного пространства физической памяти. При этом нет необходимости осуществлять второе отображение. В данном случае говоря г, ч то система программирования генерирует абсолютную дво­ичную программу, в этой программе все двоичные адреса таковы, что программа может исполняться только в том случае, если ее виртуальные адреса будут точно соответствовать физическим. Часть программных модулей любой операционной системы обязательно должна быть абсолютными двоичными программами. Эти программы размещаются по фиксированным адресам и с их помощью уже мож­но впоследствии реализовывать размещение остальных программ, подготовлен­ных системой программирования таким образом, что они могут работать на раз­личных физических адресах (то есть на тех адресах, па которые их разместит операционная система).

Другим частным случаем этой общей схемы трансляции адресного пространства является тождественность виртуального адресного пространства исходному про­странству имен. Здесь уже отображение выполняется самой ОС, которая во вре­мя исполнения использует таблицу символьных имен. Такая схема отображения используется чрезвычайно редко, так как отображение имен на адреса необходи­мо выполнять для каждого вхождения имени (каждого нового имени) и особен­но много времени тратится на квалификацию имен. Данную схему можно было встретить в интерпретаторах, в которых стадии трансляции и исполнения прак­тически неразличимы. Это характерно для простейших компьютерных систем, в которых вместо операционной системы использовался встроенный интерпре­татор (например, Basic).

непрерывное распределение

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

□  область, занимаемая операционном системой;

□ область, и которой размещается исполняемая задача;

□   незанятая ничем (свободная) область памяти.

Изначально являясь самой первой схемой, она продолжает и сегодня быть до­статочно распространенной. Эта схема предполагает, что ОС не подчеркивает мультипрограммирование, поэтому не возникает проблемы распределения памя­ти между несколькими задачами. Программные модули, необходимые для всех программ, располагаются в области самой ОС, а вся оставшаяся память может быть предоставлена задаче. Для область памяти при этом получается непрерыв­ной, что облегчает работу системы программирования. Поскольку и различных однотипных вычислительных комплексах может быть разный состав внешних устройств (и, соответственно, они содержат различное количество драйверов), для системных нужд могут быть отведены отличающиеся объемы оперативной памяти, и получается, что можно не привязывать жестко виртуальные адреса программы к физическому адресному пространству. Эта привязка осуществля­ется па этапе загрузки задачи в память.

Чтобы для задач отнести как можно больший объем памяти, операционная сис­тема строится таким образом, что постоянно в оперативной памяти располагает­ся только самая нужная ее часть. Эту часть ОС стали называть ядром. Осталь­ные модули ОС могут быть обычными диск-резидентными (или транзитными), то есть загружаться в оперативную память только по необходимости, и после своего выполнения вновь освобождать память.

Такая схема распределения влечет за собой два вида потерь вычислительных ре­сурсов — потеря процессорного времени, потому что процессор простаивает, пока задача ожидает завершения операций ввода/вывода, и потеря самой опера­тивной памяти, потому что далеко не каждая программа использует всю память, а режим работы в этом случае однопрограммный. Однако это очень недорогая реализация и можно отказаться от многих функций операционной системы. В част­ности, такая сложная проблема, как защита памяти, здесь почти не стоит.

Категория: Мои статьи | Добавил: Eskander (14.06.2012)
Просмотров: 2570 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2026
    Бесплатный конструктор сайтовuCoz