close

Вход

Забыли?

вход по аккаунту

?

Bilet 15

код для вставкиСкачать
Билет 15.
1. Динамические приоритеты.
* При динамическом назначении приоритетов для процессов, активно использующих устройства вв, т.е. требующих мало процессорного времени, приоритет может выбираться как 1/f, где f - часть использованного времени кванта, т.е. если процесс использовал 1/10 часть кванта, то приоритет назначается 10, если 1/25, то 25. * Часто удобно группировать приоритеты по классам, используя приоритетное планирование между классами, но циклическое внутри класса o Пока в классе с высшими приоритетами есть задачи, они запускаются согласно циклическому планированию
o Если их нет, обрабатывается очередь процессов более низкого приоритета
* Средства для изменения приоритета процесса имеются во всех ОС
* Многоуровневые очереди с обратной связью
o Развитие систем с динамическим приоритетом
* Задачи разбиваются на классы приоритетов. Для каждого класса назначается свой квант времени. o Например, класс с наивысшим приоритетом имеет квант, равный 8. Следующий по приоритетности класс - 16, следующий - 32, и последний класс обслуживается не циклически, а в порядке очереди
* Задача изначально поступает в класс с максимальным приоритетом. * Если процесс отработал эти кванты и требует еще времени, он переводится в менее приоритетный класс
* Если и там ему не хватило времени, то в еще менее приоритетный класс
* Чем длиннее процесс, тем в более низкий по приоритету класс он попадет
* Для таких задач время ожидания увеличивается, но зато увеличивается и количество предоставляемых квантов
* При завершении ожидания (например, от устройств в/в) процессы могут помещаться в более приоритетный класс задач 2. Поддержка механизма Test&Set в современных процессорах.
В современных микропроцессорах есть специальные команды, являющиеся разновидностью TS: BTC, BTS, BTR. BTS (bit test & set) также имеет два операнда: BTS Op, B. Процессор сохраняет бит с номером В переменной Op во флаге CF (carry - перенос), и устанавливает бит B переменной Op в 1. В качестве номера бита может быть указан регистр процессора, в кото-ром этот номер хранится. Этот индекс берется по модулю 32, т.е. использует только 5 младших бит числа, соответственно индекс находится в диапазоне 0 - 31, что позволяет выбрать любой бит в пределах 4-байтной переменной или регистра.
L: BTS m, 1 ; бит 1 глобальной переменной m - флаг нахождения в КС какого либо процесса
JC L ; пока в ней есть процесс, ожидание; флаг переноса выступает в качестве локальной переменной
CALL critical_section
AND m, 0fffffffeh ; сброс флага нахождения в критической секции
Однако и у этой операции имеется тот недостаток, что ожидающий процесс находится в состоянии активного ожидания, т.е. фактически в холостую простаивает в цикле, потребляя процессорное время. По сути, процессы, обнаружив, что доступ к критическому ресурсу закрыт, должны перейти в состояние блокировки, а как только ресурс освободится, иметь возможность выйти из нее для использования ресурса. Очевидно, что если процесс при ожидании ресурса не должен использовать процессорное время, то сам он не сможет выйти из этого состояния, и требуются соответствующие механизмы ОС.
Команда ВТR Op, B выполняет полностью аналогичные действия, но бит В сбрасывается в 0. Команда BTC Op, B инвертирует значение бита В. Обе эти команды сохраняют прежнее значение бита во флаге переноса.
3. Многоуровневые таблицы страниц.
* Большой размер страницы ведет к фрагментации * Страницы имеют небольшой размер
* Большое количество страниц
* Большой размер таблицы страниц, а ее необходимо хранить в кэше
* Используют многоуровневые таблицы страниц
* Виртуальный адрес
o Номер строки в таблице первого уровня
o Номер строки в таблице 2 уровня
o ...
o Номер строки в таблице последнего уровня
o Смещение
* Нет необходимости держать в кэше всю таблицу страниц (включая и неиспользуемое виртуальное адресное пространство) * Достаточно только страницы первого уровня, и N страниц второго, в зависимости от объема процесса * Наиболее распространен формат 32-битной записи для каждой страницы
o номер страничного блока
o биты присутствия, доступа, изменения и обращения, блокирования кэша
* Бит присутствия - находится ли данная виртуальная страница в физической памяти
* Биты защиты - права доступа, в простейшем случае - чтение-запись или только для чтения
* Бит изменения - изменялось ли содержимое страницы с момента последней записи
* Если ОС решает выгрузить такой блок, его содержимое сначала надо сохранить на диск
* Бит обращения - произошло обращение к данной странице
* Бит запрета кэширования - запрещение кэширования страницы
* Важно для страниц, отображающихся не на память, а на регистры устройств
* Бит не нужен, если архитектура машины имеет отдельное адресное пространство вв, не отображаемое на память
4. Журналирование и каскадный откат транзакций.
Журналирование - еще один вариант повышения надежности операций
Если произошел критический сбой, возможно восстановление до непротиворечивого состояния
В ФС протоколируются не все изменения, а только изменения метаданных - i-узлов, записей в каталогах и т.д. Изменение пользовательских данных не протоколируется. Журналирование реализовано в NTFS, Ext3FS, ReiserFS и др. При необходимости выполнить откат, может оказаться, что откат может затрагивать данные, уже измененные другими файловыми операциями.
Соответственно и эти операции тоже должны быть отменены.
Такая проблема называется каскадным откатом транзакций .
Документ
Категория
Без категории
Просмотров
23
Размер файла
73 Кб
Теги
bilet
1/--страниц
Пожаловаться на содержимое документа