Лекция 7 Управление памятью Сегментная, страничная и сегментно- страничная организация памяти.

Презентация:



Advertisements
Похожие презентации
Учебный курс Операционные среды, системы и оболочки Лекция 10 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Advertisements

Введение в теорию компиляции Основные принципы построения трансляторов.
Процессоры Intel в защищенном режиме. Недостатки реального режима Невозможно адресовать пространство памяти свыше 1-го Мб Невозможно работать с массивами,
1 Управление памятью Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
1 ЛЕКЦИЯ 3 ХАРАКТЕРИСТИКА ЗАЩИЩЕННОГО РЕЖИМА РАБОТЫ МИКРОПРОЦЕССОРА В реальном режиме работы поддерживается выполнение всего одной программы. Для этого.
Язык высокого уровня компилятор Программа компиляторов Сделал:Студент группы:Ис-2о(очная)Воротов Валентин.
Дисциплина: Операционные системы § 7. Организация памяти компьютера План: 1.Физическая память компьютера. 2.Логическая память компьютера. 3.Функции системы.
Троицкий Д.И. Лингвистическое и программное обеспечение САПР 1 Классификация грамматик и языков Лекция 9 Кафедра «Автоматизированные станочные системы»
Учебный курс Операционные среды, системы и оболочки Лекция 9 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Тема 2. Способы адресации и система команд МП. Непосредственная адресация Суть способа. Требуемые данные (#data ̶ непосредственный операнд, константа)
Операционные системы, среды и оболочки Управление памятью.
Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
Операционные системы1 Тема 3. Управление памятью. Методы, алгоритмы и средства Методы, алгоритмы и средства Автор: доктор технических наук, профессор Назаров.
Основы операционных систем.
Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
Системное программное обеспечение Кыргызско – Российский Славянский Университет Кафедра ИВТ, 3-й курс ИВТ, 5 семестр Лекция 9.
М.Ю. Харламов, ВНУ им. В.Даля, Транслятор Транслятор - это программа, которая переводит программу на исходном (входном) языке в эквивалентную ей.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Что такое программирование? Совокупность процессов, связанных с разработкой программ и их реализацией. В широком смысле к указанным процессам относят все.
Транксрипт:

Лекция 7 Управление памятью Сегментная, страничная и сегментно- страничная организация памяти.

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

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

Компилятор компиляторов Компилятор компиляторов программа, воспринимающая синтаксическое или семантическое описание языка программирования и генерирующая компилятор для этого языка. Синтаксис выражается в виде БНФ или её производной и должен удовлетворять правилам того метода синтаксического анализа, который будет использоваться в генерируемом компиляторе.

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

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

Примеры Вложенные скобки Терминалы: '(' и ')'; нетерминал: S; продукции: S (S), S ε; начальный нетерминал S. Этой грамматикой задаётся язык вложенных скобок { ( n ) n | n0 }. Целые числа Терминалы: '+', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'; нетерминалы:,,,, ; Продукции:

Примеры Арифметическое выражение Терминалы: '+', '-', '*', '/', '(', ')', 'x' нетерминалы:,, продукции: + - * / ( ) x

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

ВАП Таблица кодировки символов Исходный текст Таблица констант Дерево синтаксического анализа Стек вызовов

Сегменты Множество полностью независимых адресных пространств Содержит линейную последовательность адресов от 0 до некоторого максимума

Сравнение ВопросСтраничная памятьСегментация Нужно ли программисту знать о том, что используется эта техника? НетДа Сколько в системе линейных адресных пространств?1Много Может ли суммарное адресное пространство превышать размеры физической памяти? Да Возможно ли разделение процедур и данных, а также раздельная защита для них? НетДа Легко ли перемещаются таблицы с непостоянными размерами? НетДа Облегчен ли совместный доступ пользователей к процедурам? НетДа Зачем придумана эта техника?Что бы получить большое адресное пространство без дополнительных затрат на физическую память Для возможности разбиения программ и данных на логически независимые адресные пространства, облегчение совместного доступа и защиты

Сегментация с использованием страниц При большом размере сегментов может быть невозможно хранить их в оперативной памяти целиком. MULTICS 2^18, каждый из которых мог быть до (36 разрядных) слов длиной.

Сампл 1.По номеру сегмента находится дескриптор сегмента. 2.Проверяется, находится ли таблица страница сегмента в памяти. Если таблица страниц в памяти, определяется ее расположение. Если нет – вызывается сегментное прерывание. При нарушении защиты происходит прерывание. 3.Изучается запись в таблице страниц для запрашиваемой виртуальной страницы. Если страница не находится в памяти, происходит страничное прерывание. Если она в памяти, из записи таблицы страниц извлекается адрес начала страницы в оперативной памяти. 4.К адресу начала страницы прибавляется смещение, что дает в результате адрес в оперативной памяти, где расположено нужное слово. 5.Чтение или сохранение.

Intel Pentium 16k независимых сегментов, каждый до 1 млрд 32 разрядных слов. Локальная таблица дескрипторов (LDT) Глобальная таблица дескрипторов (GDT) Каждый селектор (указывает на дескриптор) представляет собой 16- разрядный номер.

13 битов определяют номер записи в таблице дескрипторов, поэтому эти таблицы ограничены, каждая содержит 8К (2^13) сегментных дескрипторов. 1 бит указывает тип используемой таблицы дескрипторов LDT или GDT. С учетом максимального размера сегмента - 4 Гбайта - каждая задача, при чисто сегментной организации виртуальной памяти, работает в виртуальном адресном пространстве в 64 Тбайта (4 Гбайта * 16К, где 16К=8К*2 т.к. LDT и GDT).