Загрузка...

Мьютексы


Одним из вариантов семафорных механизмов для организации взаимного исключения являются мьютексы. Термин mutex произошел от англ. mutual exclusion semaphore, что переводится как семафор взаимного исключения. Мьютексы реализованы во многих ОС, их основное назначение – организация взаимного исключения для задач из одного и того же или разных процессов. 

Wait(переменная-условие) Signal(переменная-условие)


Переменная-условие (condition variable) вводится для каждой причины, по которой процесс может быть переведен в состояние ожидания. Заметим, что эти переменные совершенно не похожи на обычные переменные, с которыми мы привыкли иметь дело. Когда определяется переменная-условие, заводится очередь.

Почтовые ящики


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

Конвейеры (программные каналы)


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

Очереди сообщений


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

Тупики. Необходимые условия возникновения тупиков.


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

Стратегии предотвращения тупиков


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

Алгоритм банкира


Если даже необходимые условия возникновения тупиков не нарушены, то все же можно избежать тупиковой ситуации, если рационально распределять ресурсы. Наиболее известным алгоритмом обхода тупиковых ситуаций является алгоритм банкира, предложенный Дейкстрой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 Мбайт памяти.

Плоская модель


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