Память компьютера

Скачать реферат: Память компьютера

Содержание реферата

1. Краткий обзор памяти

2. Младшие адреса памяти

3. Расширенная память

4. Виртуальная память

5. Группы блоков памяти и увеличенная память

Литература

1. Краткий обзор памяти

Микропроцессор лучше всего работает с 16-битовыми числами, которые могут принимать значения, не превышающие 65536 или 64К. Поскольку компьютер использует числовые адреса для отыскания своего пути через память, предполагается, что память не может содержать более 64К байт.

Как показал опыт, 64К байт слишком мало для серьезных применений компьютера; многие из наших компьютеров оборудованы памятью, емкость которой в десять раз больше - 640К. Поэтому возникает вопрос: как выполнять работу, используя такую большую память и продолжая применять 16-битовые числаля доступа к ней?

Решение, которое было реализовано фирмой Intel в семействе микропроцессоров 8086 заключается в применении так называемых сегментированных адресов.

Сегментированные адреса составляются из двух 16-битовых слов, объединяемых таким способом, чтобы они могли определять адреса 1048576 (или приблизительно миллион) байтов памяти. Для того, чтобы посмотреть, как это делается, нужно рассмотреть следующее: арифметику, которая используется при объединении двух слов сегментированного адреса, и способ обработки этих сегментированных адресов внутри микропроцессора.

Арифметика включает так называемое "сложение со сдвигом", которое позволяет создавать 20-битовое двоичное число (которое может принимать значения до 1048578) из двух 16-битовых чисел. Предположим, что у нас имеется два 16-битовых слова, которые имеют шестнадцатеричные значения ABCD и 1234. Напомним, что каждая шестнадцатеричная цифра представляет четыре бита, поэтому четыре шестнадцатеричные цифры (ABCD или 1234) представляют 16 битов. Возьмем одно из этих двух чисел, скажем ABCD, и добавим 0 к его концу: ABCD0. Фактически это означает сдвиг числа на одну шестнадцатеричную позицию (или на четыре двоичные позиции) или умножение значения числа на шестнадцать. Теперь число состоит из пяти шестнадцатеричных цифр (или 20 битов) и принадлежит миллионному диапазону. Однако, к сожалению, оно не может быть использовано в качестве полного 20-битового адреса памяти, поскольку в конце этого числа стоит 0: это число может представлять только адреса, оканчивающиеся на 0, т.е. только каждый шестнадцатый байт.

Для того, чтобы завершить описание схемы сегментированной адресации, мы возьмем другое 16-битовое число (1234 в нашем примере) и добавим его к сдвинутому числу:

                                ABCD0
+ 1234
------ ACF04

Когда мы объединяем два 16-битовых слова таким способом, мы полу чаем 20-битовое число, которое может принимать любое значение от 0 до 1048577. И это та арифметическая схема, которая обеспечивает способ ностьPC работать с миллионом байтов памяти, используя 16-битовые числа.

Две части этой схемы адресации называются частью сегмента и частью смещения. В нашем примере ABCD есть значение сегмента, а 1234 есть значение смещения. Часть сегмента определяет адрес памяти, кратный 16, т.е. адрес, в последней позиции которого имеется шестнадцатеричный 0.

Адреса памяти, которые кратны 16, называются границами параграфов или параграфами сегментов.

Часть смещения сегментированного адреса определяет некоторое точное местоположение байта, следующее за местоположением параграфа сегмента. Поскольку 16-битовое слово смещения может варьироваться от 0 до - 2 65535 (или 64К), то часть смещения сегментированного адреса позволяет нам работать с 64К байтами памяти, используя один и тот же адрес сегмента.

Представим стандартный способ записи сегментированных адресов, который вы часто будете встречать при изучении технических материалов, относящихся к PC. Сегментированный адрес обычно записывается в следующем виде: ABCD:1234. Первым указывается адрес сегмента, затем следует двоеточие и адрес смещения. Если вы работаете с языком ассемблера или используете программу DEBUG, то такую запись вы будете встречать очень часто. Если вы взглянете на листинг программы DEBUG, представленный в разделе "Таблица векторов прерываний", то вы увидите такую запись в правом столбце.

Почти всегда, когда мы говорим об адресах внутри памяти нашего компьютера, мы обращаемся к ним в их сегментированной форме. Но иногда нам нужно взглянуть на них в их конечной форме, когда две части сегментированного адреса объединены; когда это требуется сделать, я буду называть соответствующие адреса абсолютными адресами, чтобы не возникало путаницы. В нашем примере объединения частей ABCD и 1234 результирующим абсолютным адресом является ACF04.

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

Регистр дополнительного сегмента ES дополняет сегмент данных DS так, что данные можно сдвигать между двумя отдельными частями памяти. И, на конец, регистр сегмента стека SS предоставляет информацию о базовом адресе стека компьютера. Детальная адресация осуществляется посредством обработки адреса смещения. В то время как часть сегмента сегментированного адреса может использоваться только когда она загружается в один из этих четырех регистров, адреса смещения могут использоваться намного более гибко. Наши программы могут получать смещения адресов из различных регистров (таких как универсальные регистры AX, BX и т.д. или индексные регистры SI и DI). Смещения могут также указываться в фактических командах программы на машинном языке, либо вычисляться посредством объединения содержимого регистров и команд машинного языка. Существует большая гибкость в способе обработки адресов смещений.

Когда программа выполняется в компьютере, она должна отыскивать свой путь как среди частей программы, так и среди соответствующих данных. По упрощенной терминологии, каждая программа использует регистр сегмента кода CS для определения местоположения частей программы и регистр сегмента данных DS для обнаружения данных. Во время выполнения программы эти регистры можно трактовать как фиксированные или изменяемые. Если какой-либо из них фиксируется (т.е. не изменяется программой во время ее выполнения), то соответствующая компонента (код программы или данные) не может использовать более 64К памяти, адресуемой данным единственным значением сегмента. Однако, если какой-либо из регистров может динамически изменяться во время работы программы, то для соответствующей компоненты такое ограничение на ее размер снимается. Если фиксируются оба регистра, то мы имеем модель малой памяти, которая ограничивает программу объемом в 64К для кода и в 64К для данных; если могут изменяться оба регистра, то мы имеем большую модель, без ограничений. Между этими моделями имеются еще две модели: когда один из регистров фиксируется, а другой может меняться.

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

2. Младшие адреса памяти

Часть памяти нашего компьютера с самыми младшими адресами отводится для некоторых важных применений, которые определяют функционирование компьютера. В специальном применении младшей области памяти можно выделить три области.

Первая - эта таблица векторов прерываний, которая определяет местоположение подпрограмм обработки прерывания. Первые 1024 байтов памяти специально отводятся для таблиц векторов прерываний, предусматривается место для 256 различных прерываний - несколько больше, чем обычно используется. Эти таблицы занимают область памяти с абсолютными адресами от 0 до 400 (шестнадцатеричное). (Более детально вы можете ознакомиться с этим в разделе "Таблица векторов прерываний".)

Вторая область используется в качестве рабочего места для подпрограмм ROM-BIOS. Поскольку ROM-BIOS управляет основной деятельностью компьютера и составляющих его компонент, то для хранения его собствен ных записей требуется определенная область памяти. Такой областью является область данных ROM-BIOS, одна из наиболее интересных частей компьютерной памяти. Среди всего того многого, что хранится в области данных ROM-BIOS, имеется буфер, в котором хранится информация о клавишах, на жатых до того, как наши программы готовы принять такую информацию, а также информация об объеме имеющейся памяти в компьютере и индикатор режима использования экрана, речь о котором пойдет в следующей главе (если вы внимательно рассмотрите программу ALL-CHAR в приложении А, то
вы обнаружите подпрограмму, проверяющую и использующую режим вывода на экран).

Для области данных ROM-BIOS устанавливается отдельная область размером в 256 байтов и с адресами от 400 до 500.

Третьей частью специальной области младших адресов в памяти является рабочая область ДОС и Бейсика, которая находится между абсолютными адресами 500 и 600. Эта область используется совместно ДОС и Бейсиком в качестве рабочей области, аналогично рабочей области ROM-BIOS, которая предшествует ей.

Ключевой рабочей областью памяти является та часть, которая используется для программ и соответствующих данных: эта область состоит из первых десяти блоков (0-9). Эту область часто называют областью памяти пользователя для того, чтобы отличать ее от остальной части адресного пространства. Когда мы говорим об объеме имеющейся в PC памяти, фактически речь идет об объеме памяти пользователя, которая устанавливается в этой области. Теоретически память пользователя может иметь размеры от 16К (четвертая часть первого блока в 64К) до 640К, когда установлены все десять блоков памяти. Независимо от объема установленной памяти, она образует один непрерывный кусок, начиная с блока 0 и продолжаясь до конца установленной памяти.

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

Эта память предназначена для хранения наших программ и данных, пока компьютер обрабатывает их. Объем установленной памяти ЗУПВ во многом определяет размер и диапазон проблем, которые могут разрешать наши компьютеры.

     Блок 0   1-ый   64К    Обычная память пользователя  до  64К
Блок 1 2-ой 64К Обычная память пользователя до 128К
Блок 2 3-ий 64К Обычная память пользователя до 192К
Блок 3 4-ый 64К Обычная память пользователя до 256К
Блок 4 5-ый 64К Обычная память пользователя до 320К
Блок 5 6-ой 64К Обычная память пользователя до 384К
Блок 6 7-ой 64К Обычная память пользователя до 448К
Блок 7 8-ой 64К Обычная память пользователя до 512К
Блок 8 9-ый 64К Обычная память пользователя до 576К
Блок 9 10-ый 64К Обычная память пользователя до 640К
Блок A 11-ый 64К Расширение памяти для видео
Блок B 12-ый 64К Стандартная память для видео
Блок C 13-ый 64К Расширение ПЗУ (XT,EGA,3270 PC)
Блок F 16-ый 64К Система ROM-BIOS и ROM-BASIC

Рис. Блоки памяти PC

Базисная конструкция семейства PC отдельно устанавливает только десять из шестнадцати блоков в адресном пространстве для этой главной рабочей области памяти. Это более 60% от общего объема. Сегодня эта область объемом в 640К кажется слишком малой для проблем, которые нам нужно решать на наших PC, однако, для того времени, когда разрабатывался PC, этот объем казался огромным. В то время обычные персональные компьютеры ограничивались памятью объемом 64 или 128К и PC с памятью в 640К считался необычным. (Эта та ошибка, которая повторяется вновь и вновь в истории компьютеризации: недооценка потребностей в росте и расширении).

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

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

3. Расширенная память

В то время как обычные члены семейства PC, использующие микропроцессор 8088, ограничиваются адресацией лишь одного мегабайта памяти, ветвь AT семейства, которая использует микропроцессор 286, может работать с памятью большего объема.

Как упоминалось при рассмотрении микропроцессора 286 (в конце главы 6), компьютеры, базирующиеся на микропроцессоре 286, могут иметь до 16 Мегабайт памяти. Интересно отметить, что точно такой лимит на память применялся в течение многих лет к огромным многомиллионным универсальным компьютерам фирмы IBM. Забавно, что огромные универсальные машины фирмы IBM имели память, емкость которой не превышала емкость памяти наших маленьких микропроцессоров.

Помимо способности вмещать огромные объемы реальной рабочей памяти, микропроцессор 286 может также работать с огромными объемами виртуальной памяти, ловкой имитацией большего объема памяти, чем имеется в наличии. (См. раздел "Как действует виртуальная память"). Виртуальная память модели AT может предоставляться в объеме до одного гигабайта (1024 Мегабайтов) для каждой программы, которая выполняется в компьютере.

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

Несмотря на все это, программы могут, в определенной степени, использовать возможности расширенной памяти AT. Стандартным способом для программ является использование для этих целей обслуживающих программ, включенных в ROM-BIOS. Одна из таких обслуживающих программ осуществляет передачу блоков данных (любого нужного нам размера) между специальной расширенной памятью и обычной памятью. Программа может также осуществлять переключение микропроцессора 286 с реального режима (в котором он действует как обычный микропроцессор 8088) на защищенный режим.

Однако, для успешного манипулирования защищенным режимом, программа должна быть более усложненной. Если все, что требуется для программ это получить выгоды от использования расширенной памяти, то она может просто воспользоваться обслуживающей программой передачи данных в памяти, содержащейся в BIOS, и избежать всех сложностей, связанных с работой в защищенном режиме.

              ________ ________ ________ ________    ДЕЙСТВИТЕЛЬНЫЕ
| | | | | ОБЛАСТИ ПАМЯТИ,
|________|________|________|________| в которых нахо | \ \ дятся части вир Виртуальная | \ \ туальной памяти
память программ | \ \
пользователя | \ \
______ | \ \
| | | \ \
|______| | \ \
| _|______ _\____ ___\__ ВИРТУАЛЬНАЯ
| ________| |__________| |______| |____
|-->| |_____| |___| |___| |
|________| |__________| |______| |____|ПАМЯТЬ
\ | / / \ | / /
\ | / /
\ | / /
\ | / /
\ | / /
\ | / /
\ | / /
\ | / /
____________________________
| |
| ДИСК, на котором хранятся |
| части виртуальной памяти |
|____________________________|

Рис. Виртуальная память

1-реальная память; 2-хранение активных частей виртуальной памяти;
3-программа использует виртуальную память; 4-виртуальная память;
5-диск; 6-хранение частей виртуальной памяти

4. Виртуальная память

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

Когда программа устанавливается на выполнение в компьютере, операционная система создает "пространство виртуальной памяти", которое является моделью памяти и адресов памяти, которые программа имеет в своем расположении. Затем часть "реальной" или фактической физической памяти компьютера передается в виртуальную память, что является ядром концепции виртуальной памяти. Используя средство, которое является неотъемлемой частью микропроцессора 286, программа поддержки виртуальной памяти операционной системы сообщает микропроцессору 286 о том, что реальной памяти, выделяемой программе, следует назначить некоторый другой адрес, которым будет пользоваться программа. Средство "распределения памяти" в микропроцессоре 286 делает так, что реальная память вроде имеет иной рабочий адрес, отличный от истинного, реального адреса.

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

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

Когда откачанная часть памяти требуется вновь, она подкачивается обратным копированием с диска.

Как видите, диск компьютера используется в качестве склада для хранения частей виртуальной памяти, которые не используются в текущий момент.

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

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

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

5. Группы блоков памяти и увеличенная память

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

Платы для этого специального вида памяти с переключением групп блоков позволяют, когда угодно, включать или выключать адресацию памяти. Например, плата такой памяти может содержать восемь "блоков" памяти, каждый из которых имеет объем 64К (всего 512К). Всем этим блокам по 64К соответствует один адресный блок (64К) в компьютерной памяти. В любой момент активным может быть лишь один из восьми блоков, когда доступны данные из этого блока, другие блоки будут блокированы.

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

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

Потребность в этом управлении - и стандартный способ его осуществления - сдерживала применение переключения блоков до тех пор, пока гигант по производству программного обеспечения, фирма "Лотос"(Lotus), и кудесник в области производства кристаллов микропроцессоров, фирма "Интел", не объединились для определения стандартного способа работы с памятью с переключением групп блоков. Официально этот подход к переключению блоков называется "Спецификация расширенной памяти Лотос/Интел/Микрософт", однако, многие обращаются к ней по имени специальной платы памяти, разработанной фирмой "Интел" в соответствии с этой спецификацией: "Верхняя плата" ("Above Board").

Поясним, как действует увеличенная память. Ее функционирование обеспечивается тремя компонентами: одна - аппаратная (плата памяти с переключением групп блоков) и две программные (программа управления увеличенной памятью, ЕММ и прикладная программа, которая использует па мять). Плата памяти с переключением групп блоков (которой может быть "Верхняя плата" фирмы "Интел" или иная аналогичная плата памяти) обеспечивает что-то между 64К байтами и 8М байтами памяти, подразделяемой на небольшие страницы по 16К, которые могут переадресовываться индивидуально посредством переключения блоков.

Программа управления увеличенной памятью (ЕММ) активизируется при первом запуске компьютера и она закладывает фундамент функционирования увеличенной памяти. Ключевой частью задачи, возлагаемой на эту программу, является отыскание неиспользуемой области в памяти PC, которая может использоваться для отображения в нее памяти с переключением групп блоков. Для этой программы требуется полная рабочая область памяти ем костью в 64К, называемая страничным блоком, причем эта рабочая область может располагаться в любом месте. На общей схеме распределения памяти можно легко увидеть, что блоки D и E памяти являются достойными кандидатами для этой цели, однако, ЕММ может помещать страничный блок также в блок C. Точное местоположение не имеет значения, если оно не мешает какому-либо иному использованию адресного пространства. Кроме того, страничный блок не должен размещаться на границе блоков памяти. Напри мер, страничный блок может начинаться с адреса сегмента C400 и занимать оставшуюся часть блока C и первые 16К блока D.

Когда программа ЕММ определит, где будет располагаться ее страничный блок (64К), она делит этот блок на четыре окна по 16К. После этого ЕММ готова к действию, готова к поддержке любой прикладной программы, которая знает, как ее использовать при перекачке данных памяти в окна по 16К (и из этих окон).

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

 ____________________________________________________________________
| |
| |
| _______________________________________ |
| | | |
| | ------- ------- | |
| | | | | | | РАСШИРЕННАЯ |
| | | | | | | ПАМЯТЬ |
| | ------- ------- | |
| | | ------- | ------- | |
| | | | | | | | | |
| | | | | | | | | |
| | | ------- | ------- | |
| | | | | | | |
| |_______________________________________| |
| | | | | |
| | | | | |
| | | | | |
| \|/ \|/ \|/ \|/ |
| ------------------------------------------------------ |
| | | | | | | |ОСНОВНАЯ |
| | | | | | | | ПАМЯТЬ |
| ------------------------------------------------------ |
| 0 640К \___________ ____________/ |
| V |
| |
| ОКНА |
|____________________________________________________________________|

Рис. Расширенная память

Хотя эта схема очень мощная и весьма быстрая, она имеет некоторые очевидные недостатки. Один из них состоит в том, что она может использоваться только для программных данных, но не для кода самой программы.

ДОС все равно должна отыскивать достаточно места в области обычной памяти для хранения больших программ, однако, когда эти программы выполняются в обычной памяти, они могут извлекать пользу от применения увеличенной памяти, работая с большим объемом данных, чем можно разместить в обычной памяти. Другим очевидным недостатком является то, что программа, использующая увеличенную память, должна знать, как работать сов местно с программой ЕММ и как удобно работать с данными, разбитыми на страницы по 16К. Вместе с тем, следует отметить, что в рамках этих ограничений схема увеличенной памяти может существенно улучшить возможности нашего компьютера в части обработки больших объемов данных.

Эта схема увеличенной памяти может быть добавлена к любому обычному члену семейства PC, включая ветвь AT семейства. Помимо того, что модели AT могут обладать собственной расширенной памятью, объем которой превышает одно мегабайтный предел PC, они могут использовать также увеличенную память в рамках обычного одно мегабайтного пространства.

                Карта распределения памяти DOS

      0000:0000   Таблица векторов перываний.
      0040:0000   Глобалъные переменные BIOS.
      0050:0000   Глобалъные переменные DOS.
      XXXX:0000   IBMBIO.COM - частъ DOS, обеспечивающая
                  взаимодействие с BIOS.
      XXXX:0000   IBMDOS.COM - программы обработки
                  прерываний DOS (включая INT 21).
     Буфера и управляющие таблицы DOS и загружемые драйверы.
      XXXX:0000   Резидентная частъ COMMAND.COM -
                  программы обработки прерываний
                  22 (завершение), 23 (Ctrl-Break),
                  24 (фаталъная ошибка обмена) и
                  программа подзагрузки нерезидентной части.
      XXXX:0000   Нерезидентная команда или программа -
                  (из файла .COM или .EXE)
      XXXX:0000   Стек программы (для .COM)
      XXXX:0000   Нерезидентная частъ COMMAND.COM -
                  интерпретатор команд,
                  нерезидентные команды DOS,
                  интерпретатор командных файлов,
                  загрузчик.

Литература:

1. Джордан Справочник программиста персональных компьютеров

2. Нортон Архитектура персональных компьютеров фирмы IBM

3. Бэк Введение в системное программирование