Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Организация виртуальной памяти, преобразование адреса




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

Обмен данными между процессами на основе виртуальной памяти.

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

 

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

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

· Или для межпроцессного обмена данными, когда один поток пишет данные в буфер, а второй – оттуда читает.

 

Сегмент памяти в этом случае называется РАЗДЕЛЯЕМОЙ ПАМЯТЬЮ.

 

При работе с виртуальной памятью это сделать можно по-разному:

· Поместить разделяемый виртуальный сегмент в общую часть ВАП, где модули ОС располагаются. Тогда настройка дескриптора сегмента производится только один раз, все процессы ею пользуются.

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

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

b. При сегментно-страничной – надо настроить таблицу страниц каждого процесса

c. При чисто страничной – не выйдет, нет понятия сегмент.

 

Функции работы ОС по работе с разделяемой памятью:

· Поддержка схемы именования ресурсов

· Проверка прав доступа процесса к ресурсу

· Отслеживать, сколько процессов пользуются ресурсом

 

ОС может создавать разделяемый ресурс:

· По запросу (через системный вызов – все процессы, запрашивающие создание разделяемого ресурса с одним и тем же id, могут им пользоваться)

· По умолчанию – например, когда поступает несколько запросов на выполнение одного и того же приложения.

 

Выгрузка разделяемых сегментов на диск ничем не отличается от выгрузки индивидуальных сегментов.

 

Аппаратная поддержка сегментной организации памяти в системах на основе процессоров с архитектурой IA32.

Небольшое вступление про процессоры IA-32 и аппаратную поддержку мультипрограммирования

Аппаратные средства поддержки мультипрограммирования есть во всех современних процессорах, в полной мере есть они и в семействе 32-разрядных процессоров Intel: Pentium, Pentium Pro, Pentium 2, 3, Celeron, 80386, 80486. Архитектуру этих процессоров называют еще IA-32 или х86.

 

Процессоры х86 могут работать в:

- реальном режиме (разработан для совместимости с процем 8086, 16-разрядные инструкции и 1 Мб оперативы)

- защищенном режиме (основной режим работы проца);

 

Важную роль в организации вычислительного процесса играют регистры процессора, поэтому эту страшную мутотень надо подробно рассмотреть. Одно утешение – на ТСИСе тоже это надо сдавать на экзамене. Так что бьем двух зайцев.

 

Группы регистров процессоров Пентиум:

1) РОН – регистры общего назначения

2) Регистры сегментов

3) Указатель инструкций

4) Регистр флагов

5) Управляющие регистры

6) Регистры системных адресов

7) Регистры отладки и тестирования + регистры математического сопроцессора (для выполнения операций с плавающей точкой);

 

РОН

Есть 8 32-разрядных РОН.

· Первые 4 РОН: А, B, C, D – для хранения операндов команд (арифметических, логических и всяких прочих)

· Последние 4 – ESI, EDI, EBP, ESP – для задания смещения внутри сегмента данных. Используются совместно с регистрами сегментов (см дальше) для задания виртуального адреса.

 

К первым 4 регистрам можно обращаться:

· Целиком (EAX, EBX, ECX, EDX)

· К младшему их байту (AL, BL, CL, DL);

· Ко второму по старшинству байту (AH, BH, CH, DH);

· К двум младшим байтам (AX, BX, CX, DX);

 

Регистры сегментов

6 регистров – ссылаются на дескрипторы сегментов памяти:

· CS – дескриптор кодового сегмента

· SS – дескриптор сегмента стека

· DS, ES, FS, GS – дескрипторы сегментов данных

Все они, кроме первого, доступны программно (туда можно загрузить новое значение с помощью команды);

 

Каждый сегмент хранит в себе СЕЛЕКТОР – 16-разрядное число.

Структура селектора:

12 разрядов 1 разряд 3 разряда
Индекс в таблице дескрипторов сегментов Показывает, где находится дескриптор: - в GDT - в LDT Поле RPL – уровень привилегий запроса к этому сегменту

 

3. Указатель инструкций EIP – содержит смещение адреса текущей инструкции.

EIP + CS(из регистров сегментов) = виртуальный адрес инструкции.

 

4. Регистр флагов (EFLAGS) – содержит признаки, характеризующие результат выполнения операции:

- флаг знака

- флаг нуля

- флаг переполнения

- флаг паритета

- флаг переноса и тд

- флаг разрешения аппаратных прерываний (разрешение аппаратных прерываний IF)

 

5. Управляющие регистры:

 

5 управляющих регистров: CR0, CR1, CR2, CR3, CR4 – хранят данные об общем состоянии процессора.

CR0 – все основные признаки:

- реальный / защищенный режим

- вкл / выкл страничного механизма

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

 

CR1 – зарезервирован

 

CR2 – линейный адрес страничного отказа

CR3 – физический адрес таблицы разделов

 

CR4 – работа архитектурных расширений (возможность использования страниц > 4 Мб)

 





Поделиться с друзьями:


Дата добавления: 2015-11-23; Мы поможем в написании ваших работ!; просмотров: 593 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Слабые люди всю жизнь стараются быть не хуже других. Сильным во что бы то ни стало нужно стать лучше всех. © Борис Акунин
==> читать все изречения...

2193 - | 2115 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.