Новые типы динамической памяти

 

       Скорость работы современных МП значительно выросла fтакт > 100 MГц, однако время доступа микросхем динамической памяти уменьшилось со 150 нс всего до 60 - 80 нс. КЭШ-память дорога и  не всегда дает необходимый результат (из-за обращения программы к различным участкам ОП).

       Начиная с МП i486 реализован так называемый пакетный (Burst) режим. Он заключается в том, что  при  необходимости чтение одного слова МП считывает еще три слова, находящиеся рядом. Однако,  время  пересылки измеряют в тактах и представляют в виде:

                   6 - 3 - 3 - 3

 

                   6 тактов на первую пересылку

                   по три — на каждую последующую

 

Например, Pentium с fтакт = 98 МГц при работе с КЭШ со временем выборки 15 нс может обеспечить пакетный режим 3 - 2 - 2 - 2, а с динамической памятью — 7 - 3 - 3 - 3.

 

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

 

1.    Синхронная  работа памяти и МП (конвейерная архитектура и чередование адресов);

2.    Введение в динамическую память небольшого количества микросхем статического типа (КЭШ).

 

Технологии CDRAM (CASHE DRAM) и EDRAM (Enhanced DRAM)

       Основаны на интеграции небольшого количества ячеек статической памяти (15 нс) к относительно медленной динамической памяти (40 нс). Например: 4 Мб DRAM и 16 Кб SRAM. Статическая память выполняется ка КЭШ прямого отображения или наборно-ассоциативный КЭШ. 

1. SDRAM (Synhronous DRAM) быстродействие > 2.

       Подобные интегральные микросхемы имеют трехступенчатую конвейерную архитектуру, и кроме того доступ к двум блокам памяти с чередованием адресов. Тактирование микросхем осуществляется внешней частотой для МП и могут работать на частотах 66, 75, 83 и 100 МГц. 

 

       Конвейеризование — совмещение операции выборки ячейки памяти с передачей предыдущей ячейки в буфер. 

           

       Первый доступ в пакетном режиме для SDRAM выполняется медленнее, чем, например, для EDRAM, для последующих трех наоборот (база конвейеризации).

       Наиболее быстродействующей является память RDRAM (Rambus DRAM). Тактируется с частотой 250 МГц и имеет пиковую скорость передачи (9 бит организация) до 500 Мбайт/с. 

       Так как fтакт = 250 МГц, то предъявляются высокие требования и к печатным платам.

 

       Наибольшее применение нашли микросхемы типа EDODRAM (Extended Data Out) или ее разновидность BEDORAM (Burst), так как обеспечивается более высокое быстродействие в пакетном режиме и полное совместимость с современными SYMM - модулями.

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

 

       В BEDORAM выборка 4 операндов для передачи происходит автоматически. Здесь имеется специальный счетчик слов.

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

       На частоте 66 МГц параметры пакетного режима для FPM — 7-3-3-3, для EDO — 7-2-2-2, а для BEDO — 7-1-1-1.

 

Режим работы памяти.

       Для микросхем памяти динамического типа полный адрес ячейки данных делится на два компонента — адрес строки и адрес столбца (RAS и CAS).

       Диаграмма обращения к ОЗУ динамического типа.

 

       Сначала подается код адреса строки и стробируется сигналом RAS, затем, через нормируемое время задержки, подается код адреса колонки и стробируется сигналом CAS. 

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

 

       Два способа повышения быстродействия ОП         динамического типа.

 

1. Управление памятью с чередованием адресов (interliving mode).

       Этот метод предусматривает деление всей оперативной памяти на блоки, из которых МП должен считывать данные по переменно, то есть смещение адреса байтов (слов) должны принадлежать различным блокам оперативной памяти.

       В момент обращения МП к одному блоку второй получает время на подзарядку.

       При отсутствии расслоения оперативной памяти время выборки из ОП m-чисел составляет:

 

                   tвыб  = tсчит  + (m + 1) tц

 

а при наличии расслоения и при задержке на один такт обращения к очередному модулю оперативной памяти

 

                   tвыб  = tсчит  + (m - 1) tт

 

       tвыб — время выборки m слов

       tсчит — время считывания слова в ОП

       tц         — продолжительность цикла обращения

       tт        — продолжительность машинного такта

 

                   tц < tт       

 

 

2.  Метод страничной выборки (требует небольших аппаратных затрат) (paging mode).

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

       При чтении из оперативной памяти динамического типа активизированная строка считывается в буфер, потому что если следующий адрес выберет ту же строку, то нет необходимости считывать ее в буфер еще раз. Микросхемы такого типа обозначаются FPM (Fast Page Mode).

 

 

 

Диаграмма чтения 4 байт из ОП в FPM DRAM


Защита ОП.

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

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

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

       Защита программы может быть предпринята не только по отношению к другим программам, но и по отношению к самой себе.

       Варианты защиты при различных операциях с памятью:

1. Задается отношение к области памяти чужой программы (защита только по записи или при любом обращении).

               

 

2.   Задаются отношения к области памяти собственной программы.         

a)  разрешение доступа к блоку как для записи так и для считывания

b)  разрешение только считывания

c)  разрешение обращения любого вида, но по только по адресу, взятому из РС

d)  разрешение обращения по адресу из любого регистра кроме РС

       Защита может быть реализована различным образом, но она не должна заметно снижать производительность системы (так как обращение к ОП составляет 90% всех команд)

                              

Методы защиты ОП

1. Защита отдельных ячеек памяти.

2. Метод прогаммных регистров.

3. Метод ключей защиты.

 

1. Защищается от записи каждая ячейка памяти. К каждому байту добавляется специальный бит, установка которого щапрещает запись в эту ячейку.

       “ —” 1. Большое количество специальной информации.

2. Отсутствие защиты от считывания (мало режимов защиты)

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

 

2. Метод граничных регистров

           Состоит во введении двух граничных регстров, указывающих верхнюю и нижнюю границы области ОП, куда программа имеет право доступа.

 


 

 

 


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

 — доступ ограничиваетсч линейным пространством

 

3. Метод ключей защиты.

           Является наиболее гибким. Он позволяет ограничивать доступ к областям памяти, расположенным не подряд.

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

       Коды ключей защиты ОП хранятся в более быстродействующей, чем ОП (КЭШ -памяти).

 

 

 

 


           Длина ключа определяется максимальным количеством выполняемых одновременно задач (4 — при 16 прогр. на ЕС ЭВМ).

       Если код ключа программы = 0000, то эта ОС имеет доступ ко всему.

       Если код ключа защиты ОП = 0000, то это общедоступная программа.

       Коды ключей устанавливаются ОС и относятся к привилегированным операциям.


Организация защиты памяти в МП i286, i386, i486...

Сегментация в МП 8086

           Реализация простыми способами

В адресном пространстве 1МБ может иметься для одной задачи одновременно 4 сегмента размером не более 64 К. Базовый адрес сегмента храниться в соответствующем сегментном регистре:

                                                                                                                                            

 

 

физический адрес = база х 16 + смещение

сегменты располагаются в памяти с минимальным интервалом в 10 б.

       сегменты:   CS — кодовый сегмент

                              SS — стековый сегмент

                              DS —  сегмент

                              ES —       данных

           все они подразумеваются по умолчанию

Особенности адресации i86 при реализации мультизадачности:

1. Сегменты памяти имеют всего 2 атрибута: начальный адрес (кратный 16) и максимальный размер 64 К. Никаких аппаратных средств контроля правильности использования сегмментов нет.

2. Размещаются сегменты в ОП произвольно: сегменты могут частично пересеккаться (или полностью).

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

4. Отсутствие препятствий при обращении к физически несуществующей памяти, что может привести к непредсказуемым действиям.

i486

       Начиная с i286 вводится максимум дескрипторов для сегментов памяти.

       Основное отличие сегментации памяти в i486 от мп i8086 заключается в том, что теперь пользователь программы не может свободно обращаться по любому адресу в пространстве памяти. Каждая программа не может обращаться к сегменту до тех пор, пока он не “описан” для программы. Программе разрешено обращаться не по всем адресам.

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

       Число дескрипторов в системе практически не ограничено (а, значит, и число сегментов).

формат дескриптора.

 

               

 

48-63 — 0 у i80286


Базовый адрес        32 бит (i386+) [24 бит i80286] определяет начальный линейный                            адрес (физический без стрраничного преобразования у i80286)                        в пределах 4 Гб (16 МБ).

Предел                    20-битное поле предела (16 бит 80286) — размер сегмента в                              байтах или страницах. Если в байтах, то max — 1 МБ.

Байт доступа Р — бит присутствия 1 — присутствует     в физической

                                                      0 — отсутствует     памяти

                                              

                                                      при обращении особые случаи отсутствия сегмента

                              DPL — двухтактовое поле привилегий дескриптора(Descriptor Privilege Level).

 

Может иметь значение от 0 до 3

                              0 — наиввысшие привилегии                требуемые права

                              3 — наименьшие привилегии                  доступа

                              S — признак системного дескриптора. В дескрипторе сегментов памяти всегда равен 1. Если бит S равен 0, то дескриптор описывает системный объект, как являющийся, так и не являющийся сегментом памяти.

Тип                         определяет целевое использование сегмента.

       000 — сегмент данных (только считывание)

       001 — сегмент данных (считывание и запись)

       010 — сегмент стека (только считывание, не применяется)

       011 — сегмент стека (считывание и запись)

       100 — сегмент кода (только выполнение)

       101 — сегмент кода (выполнение и считывание)

       110 — подчиненный сегмент кода (только выполнение)

       111 — подчиненный сегмент кода(выполнение и считывание)

поле типа определяет правила доступа к сегментам. Например, в регистр CS нельзя загружать селекторы сегментов с типами 0-3 (так как это данные). Нарушение этих правил вызыввает особый случай защиты.

А     бит обращения. Устанавливается автоматически в 1 при обращении к этому сегменту. Использование ОС при реализации виртуальной памяти на уровне сегментов для определения      активного сегмента (сбрасывается А программно).

G    Granularity. Бит гранулярности, определяет еденицу измерения предела.

       0 — в байтах; 1 — в страницах по 4кБ.

D    (Default Size). обеспечивает совместимость с i80286.

       если D=0, то находящиеся в сегменте операнды равны16 бит;

       если D=1, то операнды — 32-битные.

Х     должен быть =0 (зарезервирован).

U     (user) — флаг программиста (свободный бит, МП его не использует). (AVL — Available)

Байт “права доступа”.

 

      
сегмент кода                 р — сегмент присутствует
7

6 5 S т и п 0
p

DPL

1 1 C R A

 

сегмент данных
p

DPL 1 0 EDW A

системный объект

p DPL 0 Х Х Х Х

 

Дескриптор неприсутв. сегм.

                              

 

бит 3 определяет сегмент кодов (1) и данных (0)

           для сегмента кода:

                          бит2 — бит подчинения (С) Conforming

                          бит1 — доступность считывания (R) Read

           для сегмента данных:

                          бит2 — бит расширения вниз (ED — Expended Down)

                                          ED=1 — стек  управляеет интерпритацией

                                          ED=0 — данные           поля предела

                          бит1 — бит расширенной записи (W=1)

Типы системных сегмнтов — см. дальше (таблица)

Дескрипторные таблицы.

           Дескрипторы (описатели сегментов) располагаются в одном месте в ОП, называющемся дескрипторной таблицей. Порядок размещения дескриптора в таблице не играет роли, а максимальное число дескрипторов составляет 8192, так как 8х8192=64кБ. В МП i286, 386, 486+ предусмотрено 3 вида таблиц.

GDT — глобвльная дескрипторная таблица. Обращаться к этой таблице могут все          программы. Таблицу локализует специальный ркгистр GDTR.

IDT — дескриптор таблицы прерываний, также — общесистемная. Содержит спе циальные дескрипторы (шлюзы вызода) для подпрограммы обработки        прерываний. Таблица определяется регистром IDTR.

Эти таблицы (GDT, IDT) создаются в реальном режиме (до перехода в защищенный р-режим) и являются обязательными и неперемещаемыми.

LDT — таблица дескрипторов для каждой задачи в мультипрограммной среде. Определяется селектором, а описывается GDT.

 

  ОП  
     
     
     
  дескриптор N  
  ... GDT
  дескриптор 1  
  дескриптор 0  
     
     
  дескриптор M  
  ... IDT
  дескриптор 1  
  дескриптор 0  
     
     
  дескриптор K  
  ... LDT
  дескриптор 1  
  дескриптор 0  
     

 


15         0
 
Local Descriptor Table
Interrupt Descriptor Table
GLOBAL Descriptor Table
               

 

 

Селекторы сегментов.

 

 

           В 8086 сегментные регистры содержали физический адрес начала сегмента.

В i286+ они содержат селекторы сегментов, которые выбирают определенный дескриптор сегмента.

формат селектора

 

 


биты 0-1 — (Request Privilege Level) не участвуют в выборе дескриптора, а применяются для контроля доступа (привилегий).

TI — (Table Indicator). Индикатор таблицы. TI=0 — GDT; TI=1 — LDT.

индекс служит для выбора одного из 8192 дескрипторов в таблице.


 

 

           Нулевой селектор т. е. index=0 не используется и его использование вызывает особый случай защиты. В связи с этим нулевые дескрипторы не используются.

       Для обращения к байту в памяти необходимо:

Взять селектор из сегментного регистра.

Если бит TI показывает на GDT, то взять из GDTR адрес дескриптора таблицы и перейти к 4.

TI показывает на LDТ

       а) взять селектор сегмента LDT из регистра LDT

       б) выделить в селекторе поле индекса и умножить индекс на 8 (сдвинуть      влево на 3).

       в) прибавить результат к адресу GDT (из регистра GDT)

       г) считать из памяти адресуемый дескриптор

       д) выделить из этого дескриптора базовый адрес сегмента, содержащего     таблицу LDT

       перейти к 4.

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

Выделить базовый адрес сегмента.

Прибавить смещение к базовому адресу (получение физического адреса).

Осуществить обращение.

       Если бы эти действия выполнялись при каждом обращении к памяти, то эффективность применения такой сегментации была бы под вопросом. Поэтому в МП для этого применяется кэширование дескрипторов. Т. о. с каждым сегментным регистром ассоциируется “теневой регистр”.

 

               

 

 

При загрузке селектора загрузка теневого КЭШ-регистра осуществляется автоматически (шаги 1, 4). При частой смене сегментного регистра быстродействие уменьшается.

 

 

 


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

LDT

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

       Таблицу в LDT формирует ОС при загрузке (запуске) новой задачи. Поэтому любая другая задача “не знает” область памяти, отведенную новой задаче.

Особенности

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

Это позволяет:

Разделить область ОП между несколькими задачами.

задача 2
задача 1
LDT
 
 
ОП
разделенный сегмент
дескриптор LDT
 
 
LDT
           

 

 

Определить сегменты одновременно как кодовые, записываемые и считываемые.

Например, для создания LDT, загрузки прогаммы и т. д.


Защита по привилегиям.

       Схемы управления памятью обнаруживают большинство программных ошибок, таких, как:

· формирование неверных адресов;

· нахождение индекса за пределами массива;

· искажение стека и т. д.

Защита по привилегиям заключается в проверке возможности:

· выполнять некоторые команды;

· обращаться к данным других программ;

· передачи управления внешнему коду (FAR);

проверка осуществляется при выполнении каждоц команды.

Привилегия — это права или возможности, которыми не разрешается:

i286+ поддерживают 4 уровня привилегий или колец защиты:

 

           уровни привилегий: 0 — ядро ОС 1 — ОС 2 — системы прграммирования 3 — прикладные программы уровень запрашиваемых привилегий процессора
                       

 

                              0 — самые привилигированные команды.

Не все ОС используют 4 уровня првилегий:

Unix            ОС — 0, пользователи — 3

OS/2 —       ОС — 0, пользователи — 3, процедуры вв/выв — 2.

       Утовень привилегий сегментов в ОП определяется полем DPL (Descriptor Privilege Level) в байте прав доступа дескриптора.

       МП автоматически поддерживает текущий уровень привилегий, который определяется уровнем (Current Privilege Level) привилегий (DPL), выполняющего кодового сегмента.

Привилигированные команды.

1) Команды, которые могут выполняться только на уровне 0 (PL0-программы):

hlt          — останов

clts         — сброс флажка переключения задачи

lgdt, lidt, lldt — загрузка регистра дескриптора таблицы

ltr           — загрузка регистра задачи

lmsw      — загрузка слова состояния машины

+ команды загрузки регистров управления (SRn), отладки (DRn) и проверки (TRn).

2) команды, которые могут выполняться программами, уровень привилегий которых выше, чем уровень привилегий ввода-вывода IOPL.

                                                                                                                            

                                                 EFLAGS      CPL £ iOPL

CLI запрещение прерывания    IF=0

STI         разрешение прерывания    IF=1

in, ins     ввод данных с порта

out, outs вывод данных в порт

Изменить значение IOPL может только PL0 программа.

 

Защита доступа к данным.

Правило защиты дрступа к данным:

              CPL £ DPL

иначе формирование пррываний (особый случчай) общей защиты.

Контроль происходит в 2 этапа:

1) При загрузке селектора в сегментные регистры DS, ES, FS, GS, если DPL<CPL селектор не загружается и формируется особый случай общей защиты;

2) (если селектор загрузился). Проверка при фактическом использовании селектора. Т. е. проверяется возможность использования этого селектора для выполнения определенных операций: чтения, записи, выполнения.

Особенность: при загрузке SS (стекового сегментного регистра) CPL=DPL.

(Разрешается использовать только стек своего уровня). Кроме того, чтобы дескриптор сегментного стека позволял запись и считывание, и сегмент находится в ОП (р=1).

Поле RPL (Requetted Privilege Lrvel)

       При обращении к сегменту МП роверяет не только DPL и CPL, но и RPL:

для доступа необходимо:             DPL ³ max (CPL, RPL).

Т. о. можно ослабить уровень привилегий при обращении к данным.

Защита сегментов кода

       МП запрещает передачу управления сегменту кода, находящемуся на другом уровне привилегий, т. е. запрещается произвольное изменеие CPL.

       Команды передачи управления: JMP, CALL, RET, изменяют содержимое CS, EIP.

       При загрузке CS необходимо, чтобы:

· селектор определял сегмент кода;

· сегмент присутствовал в ОП;

· поле CPL Ì DPL нового дескриптора.

Иначе формируется особый случай общей защиты или нарушение неприсутствия.

 
15                                                     0


CPL
 
CS

Передача управлений между уровнями привилегий

  Необходимо для того, чтобы пользоваться услугами ОС.

2 способа:

1) подчиненные сегменты кода;

2) шлюзы вызова

1) дескриптор содержит байт права доступа:

           

 

 

           

При передаче управления такому сегменту поле DPL не проверяется и текущий уровень привилегий не изменяется (CPL), т. е. этот сегмент будет иметь такой же уровень привилегий, как и у вызвавшей его программы.

Однако DPL £ CPL, иначе — защита (нельзя передавать управление менее привилигированным программам из-за использования обратных передач RET).

Пример: программа перекодировки ASCII символов.

2) Шлюзы вызова используются для реализации фактического изменения уровня привилегий (например, для системных программ).

формат дескриптора шлюза вызова: (находится в GDT)

 

Типы системных сегментов и щлюзов:

Тип Назначение
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 резерв TSS-286 доступен Таблица LDT TSS-286 занят шлюз вызова 286 шлюз задачи 286 шлюз прерывания 286 шлюз ловушки 286 резерв TSS-486 доступен резерв TSS-486 занят шлюз вызова 486 резерв шлюз прерывания 486 шлюз задачи 486

 

Шлюз вызова необходимо загружать в CS по команде FAR CALL.

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

 

CALL

 

“+”   1) привилигитованный код сильно зващищен;

       2) код поцедур невидим программам пользователя;

       3) перемещаемость процедур из-за косвеной адресации.

Доступность шлюза вызова

Для доступа к данным было CPL £ DPL

Правило разрешения вызова через шлюз:

                   DPL целевого сегмента £ max(RPL, CPL) £ DPL шлюза

т. е, если PL2 программе необходимо вызвать PL0, то шлюз должен иметь

DPL =2, 3

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

 

 

 















Переключение стека

При смене уровня привилегий МП автоматически переходит на новый стек из-за того, что возможно:

1. Вызвавшая не распределила стек или его размер недостаточен;

2. старый стек доступен программам с более низкими привилегиями (возможно намеренное искажение содержимого стека для нарушения хода программы).

Значения адресов для стеков каждого уровня привилегий (кроме PL3) хранятся в специальном сегменте TSS каждой задачи.


Межкольцевой вызов PL1 программы из PL3.

       внешний стек:                                внутренний стек                                 

       (RPL3)                                                             (PL1)

                                                     

 

           

 

 

После успешного вызова CALL шлюза вызова выполнять следующие действия:

1. Из сегмента TSS загружаются новвые значения селекторасегмента и указатель стека;

2. В новый стек загружаются значения селектора и указателя стека;

3. Аналтзируется поле WC (Word Counter) шлюза вызова и автоматически копируется указанное количество параметров из старого стека в новый;

4. В новый стек включается адрес возврата CS:EIP;

5. Загружаются CS:EIP новыми значениями из шлюза вызова.

           

При переключении стека производятся проверки: ( МП)

· задание правильного указателя стека для более привилигированного уровня (правильный селектор);

· нахождение сегмента стека на правильном уровне привилегий (SS0 должен адресовать сегмент стека или данных на уровне PL0 и иметь поле RPL=0);

· наличие достаточного места в новом стеке;

· контроль размещения стеков в разных адресных прстранствах.

       По командам возврата FAR RET, FAR RET n происходит обратная последовательность переключения стека. Время выполнения команды FAR CALL со сменой привилегий длится: 77+4Х тактов Х — число параметров.


Мультизадачность

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

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

       Для поддержки мультизадачности в системе с МП i286+ используются:

· сегмент состояния задачи TSS;

· дескриптор сегмента TSS;

· регистр задачи;

· дескрипор шлюза задачи.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: