Тупики и близкая к ним проблема бесконечного откладывания — важные факторы, которые должны учитывать разработчики ОС. Тупик (deadlock) — это такая ситуация в мультипрограммной системе, когда процесс ожидает некоторого события, которое никогда не произойдет. Системная тупиковая ситуация, или “зависание” системы — это ситуация, когда один или более процессов оказываются в состоянии тупика.
All posts by admin
Стратегии предотвращения тупиков
При предотвращении тупиков целью является обеспечение условий, исключающих возможность возникновения тупиковых ситуаций. Часто такой подход ведет к нерациональному использованию ресурсов, но, тем не менее, достаточно часто используется разработчиками ОС.
Алгоритм банкира
Если даже необходимые условия возникновения тупиков не нарушены, то все же можно избежать тупиковой ситуации, если рационально распределять ресурсы. Наиболее известным алгоритмом обхода тупиковых ситуаций является алгоритм банкира, предложенный Дейкстрой12 , этот алгоритм как бы имитирует действия банкира, который, располагая определенным капиталом, выдает ссуды и принимает платежи.
Обнаружение тупиков. Графы распределения ресурсов
Обнаружение тупика — это установление факта, что возникла тупиковая ситуация, и определение процессов и ресурсов, вовлеченных в эту тупиковую ситуацию. Алгоритмы обнаружения тупиков, как правило, применяются в системах, где выполняются первые три необходимых условия возникновения тупиков, и определяют, не создался ли режим кругового ожидания.
Восстановление после тупиков
Систему, находящуюся в тупике, необходимо вывести из него, для чего требуется нарушить одно или несколько необходимых условий его существования. Очевидно, что в этом случае один или несколько процессов потеряют, частично или полностью, проделанную ими работу.
Иерархия памяти
Организация оперативной (основной) памяти компьютера — один из важнейших факторов, определяющих построение ОС. Под организацией памяти понимают, каким образом представляется и используется оперативная память. Будет ли размещаться в памяти только одна программа пользователя или несколько программ одновременно.
Функции для управления памятью
Управление памятью можно представлять, как отображение информации в память посредством трех функций . • Именующей функции f1, однозначно отображающей данное пользователем имя в идентификатор информации, к которой это имя относится.
Эволюция видов организации памяти
Эволюция организации памяти осуществлялась от систем реальной памяти, выделяемой в полное распоряжение одного пользователя, до систем виртуальной памяти, сочетающих методы страничной и сегментной организации.
Мультипрограммные системы с реальной памятью.
Мультипрограммирование с фиксированными разделами характерно для ОС второго поколения, когда основная память разбивается на ряд разделов фиксированной длины, и в каждом разделе размещается одно задание, а ЦП переключается с задания на задание, создавая иллюзию одновременного их выполнения.
Виртуальная память
Суть концепции виртуальной памяти заключается в том, что адреса, к которым обращается выполняющийся процесс, отделяются от адресов, реально существующих в физической памяти. Те адреса, на которые делает ссылки выполняющийся процесс, называются виртуальными адресами, а те адреса, которые существуют в памяти, называются реальными или физическими адресами.
Сегментация
Сегментация (segmentation) — это прием организации программ, при котором адресная структура программы отражает ее содержательное членение. При сегментации пространство адресов каждой программы подразделяется на сегменты различной длины, которые соответствуют содержательно разным частям программы.
Страничная организация памяти
Страничная организация памяти (paging) — это такой способ управления памятью, при котором пространство адресов памяти разбивается на блоки фиксированной длины, называемыми физическими страницами(page frame). В этом случае адреса образуются подобно тому, как это делалось при сегментации пространства программных адресов. Каждый адрес представляет собой пару [p,d], где р — имя страницы, а d — смещение относительно Читать далее
Комбинированная сегментно-страничная организация памяти
Сегментно-страничная организация (paging/segmentation) состоит в том, что память разбивается на страницы для каждого сегмента по его собственной таблице страниц. Адреса при этом состоят их трех компонентов [s,p,d], где s- номер сегмента. И вход в таблицу сегментов осуществляется через регистр таблицы сегментов, в которой s-тая запись содержит базовый адрес и границу таблицы страниц для этого сегмента.
Системное программное обеспечение
Стратегии управления памятью 1. Стратегии управления памятью. Стратегии выталкивания страниц: выталкивание случайной страницы; выталкивание по принципам: FIFO, LRU, LFU, NUR; рабочие множества). Стратегии вталкивания (подкачка страниц по запросу; подкачка страниц с упреждением).
Стратегии управления памятью
Независимо от того, какая конкретная схема организации памяти будет избрана, необходимо решить, какие стратегии управления памятью необходимо применять для достижения оптимальных характеристик.
Стратегии выталкивания.
Их цель — решить какую страницу или сегмент следует удалить из оперативной памяти, чтобы освободить место для помещения поступающей страницы или сегмента, если оперативная память полностью занята.
Рабочее множество
При использовании этой стратегии выталкивается страница, которая не входит в подмножество наиболее активно используемых страниц процесса. Остановимся более подробно на этой стратегии. Деннинг13 предложил оценивать интенсивность подкачки страниц для программы согласно концепции, которую он назвал теорией поведения программы с рабочим множеством, где под рабочим множеством понимается подмножество страниц, к которым процесс активно обращается.
Подкачка страниц по запросу
Подкачка страниц по запросу традиционно считается наиболее рациональной стратегией управления памятью. При такой стратегии, страницы загружаются в ОП по запросу выполняющегося процесса. К достоинствам этой стратегии относится то, что подкачка страниц по запросу гарантирует загрузку в ОП только тех страниц, которые фактически необходимы для работы процесса, и накладные расходы при этом будут минимальны.
Подкачка страниц по запросу
Подкачка страниц по запросу традиционно считается наиболее рациональной стратегией управления памятью. При такой стратегии, страницы загружаются в ОП по запросу выполняющегося процесса.
Подкачка страниц с упреждением
При упреждающей подкачке ОС пытается заблаговременно предсказать, какие страницы потребуются процессу, а затем, когда в ОП появляется свободное место, загружает в нее эти страницы. Пока процесс работает со своими текущими страницами, ОС запрашивает новые, которые будут уже готовы к использованию, когда процесс к ним обратится.
Вопросы по СПО
1. Оцените с точки зрения принципа оптимальности следующие нетрадиционные алгоритмы выталкивания страниц применительно к мультипрограммной системе с виртуальной памятью: • “Глобальный LIFO”- выталкивается страница, самой последей поступившая в память;
Регистры общего назначения и регистр флагов
EAX – аккумулятор, для хранения промежуточных результатов EBX – базовый регистр, для хранения базового адреса области памяти ECX – счетчик, используется в качестве дан. с повторяющимися действиями
Обзор процессоров
8086 – 16 битные регистры, 16-битная внешние ШД, 20-битные ША. Поддержка сегментной памяти, размер 1 сегмента – 64 Кбайт. Единственный режим доступа к памяти – реальный. 80286 – защищенный режим доступа к памяти, сегментные регистры используются как указатели в таблице дескрипторов, с помощью которых можно формировать 24-битн.,позволяет адресовать до 16 Мбайт памяти.
Плоская модель
Самой простой моделью является плоская модель. В этом случае все сегменты отображаются в единое физическое адресное пространство. Смещение сегмента может относиться либо к области кода, либо к области данных.
Защищенная плоская модель
Защищенная плоская модель аналогична плоской модели, за исключением того, что границы сегментов устанавливаются равными таким диапазонам адресов, которым соответствует фактически существующая оперативная память. Общее исключение защиты генерируется при любой попытке доступа к несуществующей памяти.
Многосегментная модель
В данном случае используются все средства, предоставляемые механизмом сегментации. Каждой программе дается собственная таблица дескрипторов сегментов и свои собственные сегменты. Эти сегменты могут либо поступать в исключительное распоряжение программы.
Логическое, линейное и физическое адресные пространства
Логический адрес состоит из 16-битового селектора сегмента и 32- битового смещения в этом сегменте. Логический адрес транслируется в линейный адрес сложением смещения и базового адреса сегмента.
Сегментная организация памяти, селекторы, дескрипторы
Сегментация метод управления памятью, на котором основано построение защиты. Сегмент является средством объединения областей памяти с общими атрибутами. Информация о свойствах сегмента хранится в 8-байтной структуре данных, называемой дескриптором. Все дескрипторы хранятся в таблицах, обращение к которым аппаратно поддерживается процессором. Процессор может обращаться только к тем сегментам памяти, для которых имеются дескрипторы в таблицах.
ТАБЛИЦЫ ДЕСКРИПТОРА
Таблицы дескриптора определяют все сегменты, которые используются в 80386. В 80386 имеются три типа таблиц, которые содержат дескрипторы: — Таблица Глобального Дескриптора(GDT) — Таблица Локального Дескриптора(LDT) — Таблица Дескриптора Прерывания(IDT)
Страничная организация памяти, таблица страниц, каталог страниц
Линейный адрес представляет собой 32-битовый адрес в однородном, несегментированном адресном пространстве. Это адресное пространство может являться большим физическим адресным пространством (т.е. адресным пространством, состоящим из 4 гигабайт оперативной памяти), либо может использоваться средство подкачки страниц, моделирующее это адресное пространство при помощи небольшой области оперативной памяти и некоторого количесства дисковой памяти.
