рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Сегментация программы

Сегментация программы - раздел Компьютеры, Лекция 1 Структурная схема компьютерной программы Следующий Важный Принцип Организации Памяти – Сегментация. СегментомНа...

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

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

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

Процессор имеет в своем составе набор машинных слов – регистров.В зависимости от назначения они могут хранить как данные, так и адреса памяти. Сегментация поддерживается в процессоре при помощи регистров двух видов. Базовый регистр сегментасодержит его начальный адрес. Регистры, работающие с данными сегмента, содержат относительный адрес данных от начала сегмента, или смещение.Результирующий адрес получается путем сложения содержимого этих регистров. Таким образом, каждый сегмент имеет собственную «систему координат», связанную с его началом (Рис.1.7). Если программа использует только сегментную адресацию, то сегменты можно перемещать по памяти при сохранении работоспособности программы: достаточно перенастроить соответствующие им базовые регистры.

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

 

 

Сегмент Регистры Что содержит Когда создается
Сегмент команд CS- сегментный, IP- адрес команды Программный код (операции, операторы) трансляция
Сегмент данных DS – сегментный Глобальные (статические) данные трансляция
Сегмент стека SS – сегментный, SP– указатель стека Локальные данные функций, «история» работы программы при загрузке
Динамическая память DS – сегментный Динамические переменные, создаваемые при работе программы при загрузке, выполнении
Динамически связываемые библиотеки (DLL) CS– сегментный, IP– адрес команды Программный код разделяемых библиотек при загрузке

Рис. 1.7. Сегментация программы

 

Следующий элемент архитектуры тоже имеет отношение к внутреннему представлению программы – виртуальное адресное пространство (виртуальная память).Его идея состоит в том, что каждая программа имеет свое, независимое от других, виртуальное адресное пространство (виртуальную память), в котором размещаются сегменты программы, определяются адреса и т.п. В процессоре имеется скрытая от программ система отображения виртуальных адресов на физические адреса. Виртуальное адресное пространство находится под управлением операционной системы и реализует защиту памяти программ, ее разделение (сегменты динамически связываемых библиотек), загрузку программы в память «по частям» и иллюзию наличия неограниченной памяти. Для нас из всего этого важно то, что внутренне представление программы в виртуальной памяти занимает все адресное пространство, как будто других программ и операционной системы в памяти нет вовсе.

 

– Конец работы –

Эта тема принадлежит разделу:

Лекция 1 Структурная схема компьютерной программы

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

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Сегментация программы

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Лекция 1
Введение в С++ Искать суть бытия – пустой каприз...Здесь все правы: где, кто и что нароет...Ведь жизнь обычно тратится на жизнь...,Но на какую?.. Вот, что беспокоит.

Компоненты языка программирования
Язык программирования содержит в себе компоненты, предназначенные для описания соответствующих частей программы: · средства описания данных, позволяющие программисту определять разл

Жизненный цикл программного средства
Комплексы программ создаются, эксплуатируются и развиваются во времени. Жизненный цикл программного средства (ПС) включает в себя все этапы развития – от возникновения потребности в программе опред

Технология подготовки и решения задачи на компьютере
Технология подготовки и решения задачи на компьютере включает: o ознакомление с поставленной задачей – анализ исходных данных, условий и целей решения задачи, формулировку требовани

Вычисление значения функции в заданной точке
    Представленные варианты программы используют разные средства ввода-вывода:   //proba_2_1.cpp #include <iostream

Proba_3.cpp
#include <iostream> #include <conio.h> using namespace std; //директива есть!!!, std:: перед cout далее отсутствует int main() { int x; //вв

Технологический цикл обработки программы
Технологический цикл обработки программы выглядит следующим образом: Рис.1.4. Технологич

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

Процесс исполнения программного кода
Процесс исполнения программного кода в общих чертах представлен на Рис.1.8. Действующими лицами этого процесса являются: · программный код – последовательность команд,разм

С– подключение к файлу main.cppстандартного заголовочного файлаstdafx.h.
D – определение глобальных переменных, доступных во всех файлах программы при объявлении их в этих файлах как extern.   В б

K – подключение к файлу bblsort.cpp стандартного заголовочного файлаstdafx.h.
L – описание глобального массива строк Line, спецификатор extern указывает на то, что определение массива сделано в другом месте (в данном случае в файлеmain.cpp).

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги