Автор работы: Пользователь скрыл имя, 29 Марта 2011 в 00:47, шпаргалка
Работа содержит ответы на вопросы по дисципине "Операционные системы".
Сегментация - механизм адресации, обеспечивающий существование нескольких независимых адресных пространств как в пределах одной задачи, так и в системе в целом для защиты задач от взаимного влияния.
Замечание. Программист может либо самостоятельно разбивать программу на фрагменты (сегменты), либо автоматизировать этот процесс и возложить его на систему программирования.
Для микропроцессоров Intel принят особый подход к управлению памятью. Каждая программа в общем случае может состоять из любого количества сегментов, но непосредственный доступ она имеет только к 3 основным сегментам: кода, данных и стека и к дополнительным сегментам данных (всего 3).
Операционная система (! а не сама программа) размещает сегменты программы в ОП по определенным физическим адресам, а значения этих адресов записывает в определенные места, в зависимости от режима работы микропроцессора:
· в реальном режиме адреса помещаются непосредственно в сегментные регистры (cs, ds, ss, es, gs, fs);
· в защищенном режиме - в специальную системную дескрипторную таблицу (Элементом дескрипторной таблицы является дескриптор сегмента. Каждый сегмент имеет дескриптор сегмента -8 байт. Существует три дескрипторные таблицы. Адрес каждой таблицы записывается в специальный системный регистр).
Для доступа к данным внутри сегмента обращение производится относительно начала сегмента линейно, т.е. начиная с 0 и заканчивая адресом, равным размеру сегмента. Этот адрес называется смещением (offset).
Таким образом, для обращения к конкретному физическому адресу ОП необходимо определить адрес начала сегмента и смещение внутри сегмента.
Физический адрес принято записывать парой этих значений, разделенных двоеточием
segment : offset
Например, 0040:001Ch; 0000:041Ch; 0020:021Ch; 0041:000Ch.
Каждый сегмент описывается дескриптором сегмента.
ОС строит для каждого исполняемого процесса соответствующую таблицу дескрипторов сегментов и при размещении каждого из сегментов в ОП или внешней памяти в дескрипторе отмечает его текущее местоположение (бит присутствия).
Дескриптор содержит поле адреса, с которого сегмент начинается и поле длины сегмента. Благодаря этому можно осуществлять контроль
1) размещения сегментов без наложения друг на друга
2) обращается ли код исполняющейся задачи за пределы текущего сегмента.
В дескрипторе содержатся также данные о правах доступа к сегменту (запрет на модификацию, можно ли его предоставлять другой задаче) Þ защита.
Достоинства:
1) общий объем виртуальной памяти превосходит объем физической памяти
2) возможность размещать в памяти как можно больше задач (до определенного предела) Þ увеличивает загрузку системы и более эффективно используются ресурсы системы
Недостатки:
1) увеличивается время на доступ к искомой ячейке памяти, т.к. должны вначале прочитать дескриптор сегмента, а потом уже, используя его данные, можно вычислить физический адрес (для уменьшения этих потерь используется кэширование - дескрипторы, с которыми работа идет в данный момент размещаются в сверхоперативной памяти - в специальных регистрах процессора);
2) фрагментация;
3) потери памяти на размещение дескрипторных таблиц
4) потери процессорного времени на обработку дескрипторных таблиц.
Сегментированная
модель памяти поддерживается и в
реальном, и в защищенном режимах
работы микропроцессора.
27.
Сегментно-страничная
организация памяти.
Преимущества и недостатки.
Виртуальное адресное пространство процесса разбивается на сегменты, а каждый сегмент разбивается на страницы фиксированного размера. Перемещение данных между основной и внешней памятью осуществляется страницами. Однако разбиение на сегменты позволяет определять разные права доступа к разным частям кода и данных программы. С каждым процессом
связана одна таблица
сегментов и несколько (по одной
на сегмент) таблиц страниц. Начальный
адрес таблицы сегментов
Достоинства: разбиение программы на сегменты позволит размещать сегменты целиком в памяти, причем все страницы сегмента загружаются в память. Это уменьшает количество страничных прерываний. Страницы исполняемого сегмента могут располагаться не обязательно радом в памяти.
Недостатки: большая задержка доступа к памяти (в 3 раза больше), данный способ требует значительных затрат вычислительных ресурсов.
В большинстве современных микропроцессорах – плоская модель памяти – один сегмент разбитый на страницы.
Сегментно-страничная и страничная организация памяти позволяет легко организовать совместное использование одних и тех же данных и программного кода разными задачами. Для этого различные логические блоки памяти разных процессов отображают в один и тот же блок физической памяти, где размещается разделяемый фрагмент кода или данных.
Оверлей – структурная разбивка исполняемого кода на чисти которые подгружаются ОС в оперативн память только при необходимости.
28. Страничная организация памяти. Дескриптор страниц.
При этом распределении виртуального прост-во каждого процесса делится на одинаковые фиксированные для данной системы. Вся ОП машины делится на части этих размеров – физические страницы. Имеется таблица распределения страниц – загружается в спец.регистр процессора. И на них организуется работа.
Может храниться управляющая инфо – в таблице страниц. Она:
-признак невыгружаемости страниц
-признак модификации страниц
-признак обращения к странице(счетчик обращений)
-вся управл.инфо
используется механизмом
При каждом обращении к памяти происходит чтение из табл.страниц инфо о Вирт.странице. Если данная страница находится в памяти, то производится преобр.вирт.адреса в физический. Если она выгружена, то – стр.прерыв. Наполняющийся процесс переводится в состояние ожидания и активизируется в другой, готовый к исполнению процесс. Параллельно программа обработки страничного прерывания находит на диске нужную Вирт.страницу и попытки загрузить её. Если в памяти свободная страница, то загрузка выполняется немедленно.
Если своб.страниц нет, то что-то выгружается. Выбор выгружения страниц:
- выгр.может
дольше всего не использ.
- первая попавшаяся
- страница, к-й в последнее время было мало обращений.
Рабочее множество страниц - определяется для каждого процесса и представляет собой перечень наиболее часто используемых страниц, к-е должны постоянно находиться в памяти. В зависимости от признака модификации и выбора страниц, её версия может быть записана или просто уничтожена.
Страничное распределение памяти может быть организовано в упрощ.варианте без выгрузки на диск. В этом случае все Вирт.стр-цы процессов постоянно находятся в памяти. Такой метод не предоставляет Вирт.памяти, но позволяет избежать фрагментации, засчет того, что программа может загружаться в несмежной области и при загрезке страниц не образуется остатков.
Для страницы существует
дескриптор страницы. Основные поля: поле
номера страницы (адрес физической страницы),
бит присутствия, бит обращения (R), бит
модификации (M) – предназначен для отображения
что данную страницу изменяли и ОС следует
переписать ее при замещении, биты уровня
доступа – бит привилегий доступа, бит
контроля доступа(ноль – только чтение).
29. Виртуальная память. Архитектура
Виртуальная память – то чего нет в реальности. Информация с которой работает процесс должна располагаться в оперативной памяти. В схемах виртуальной памяти у процесса создается иллюзии, что вся необх инф находится в основной памяти. При этом программа не ограничена объемом физической памяти. Задействуются большие виртуальные пространства. В памяти могут размещаться программы не целиком, а частично за счет гибкого перераспределения памяти между программами. Характерный размер виртуального адресного пространства для 32 разряд – 4 Гб. Каждый процесс получает свое адресное виртуальное пространство таких размеров, что при этом не может адресоваться чужое адресное пространство. Обеспечивается защита данных программ и ос. Аппаратура компьют принимает участие в трансляции адресов. Главный ее вклад в схему виртуальн памяти - генерация исключительных ситуаций при отсутствии в памяти нужных страниц.
Страничная виртуальная память.
Физич память делится на кадры. Адрес – номер и смещение внутри страниц. Процесс может выполняться если его текущие страницы находятся в его ОП. В случае если нужная страница в памяти отсутствует, она переписывается (подкачивается) из внешней памяти в любой свободный страничный кадр. Перед тем, как страница подкачив возникает страничное прерывание. Выполнение команды прерывается и начинается процесс подкачки. После чего продолжается выполнение команды. При отсутствии свободных страничных кадров, одна из страниц вытесняется во внешнюю память. Сегментно-страничная виртуальная память. Неперекрывающиеся сегменты организуются в едином виртуальном адресном простран.
Таблица страниц. Номер записи в таблице страниц соот номеру виртуальной страницы. Из этой записи можно получить номер кадра для данной страницы. Биты страницы модификации устанавлив, если страница была изменена в главной памяти и необходима ее перезапись во внешней памяти. Бит ссылки полагает отсеять малоиспользов страницы, вид кэширования помогает кэшировать страницу в более быстрой памяти.
Многоуровневые
таблицы страниц. Из-за того, что
каждому процессу необход выделить
свою таблицу страниц, а размеры
ее очень велики, таблица разбивается
на фрагменты. 32 разрядный адрес
делится на 10 разрядное поле.
30. Защита адресного пространства задач в многозадачных ОС
Модель без защиты – системное и пользовательское адресные пространства не защищены друг от друга, используется два сегмента памяти: для кода и для данных; при этом от системы не требуется никакого управления памятью, не требуется MMU (memory management unit – специальное аппаратное устройство для поддержки управления виртуальной памятью).
Модель защиты система/пользователь – системное адресное пространство защищено от адресного пространства пользователя, системные и пользовательские процессы выполняются в общем виртуальном адресном пространстве, при этом требуется MMU. Защита обеспечивается страничным механизмом защиты. Различаются системные и пользовательские страницы. Пользовательские приложения никак не защищены друг от друга. Процессор находится в режиме супервизора, если текущий сегмент имеет уровень 0, 1 или 2. Если уровень сегмента – 3, то процессор находится в пользовательском режиме. В этой модели необходимы четыре сегмента – два сегмента на уровне 0 (для кода и данных) и два сегмента на уровне 3. Механизм страничной защиты не добавляет накладных расходов, т.к. защита проверяется одновременно с преобразованием адреса, которое выполняет MMU; при этом ОС не нуждается в управлении памятью.
Модель защиты пользователь/пользователь – к модели система/пользователь добавляется защита между пользовательскими процессами; требуется MMU. Как и в предыдущей модели, используется механизм страничной защиты. Все страницы помечаются как привилегированные, за исключением страниц текущего процесса, которые помечаются как пользовательские. Таким образом, выполняющийся поток не может обратиться за пределы своего адресного пространства. ОС отвечает за обновление флага привилегированности для конкретной страницы в таблице страниц при переключении процесса. Как и в предыдущей модели используются четыре сегмента.
Модель
защиты виртуальной
памяти – каждый процесс выполняется
в своей собственной виртуальной памяти,
требуется MMU. У каждого процесса имеются
свои собственные сегменты и, следовательно,
своя таблица описателей. ОС несет ответственность
за поддержку таблиц описателей. Адресуемое
пространство может превышать размеры
физической памяти, если используется
страничная организация памяти совместно
с подкачкой. Однако в системах реального
времени подкачка обычно не применяется
из-за ее непредсказуемости. Для решения
этой проблемы доступная память разбивается
на фиксированное число логических адресных
пространств равного размера. Число одновременно
выполняющихся процессов в системе становится
ограниченным.