ЗНАЕТЕ ЛИ ВЫ?

Динамическое распределение памяти.



Билет 1.

Процессор-осуществляет контроль за действиями компьютера,выполняет функцию обработки данных

Основная память-содержит данные и программы.Её называют временной,реальной,оперативной(при отключении не сохраняется)

Устройства ввода/вывода-предназначены для передачи данных между компьютером и окружающим миром(принтер,монитор)

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

Регистры процесса-область памяти,которая отличается быстрым доступом и маленькой ёмкостью.

1 тип:регистр доступный пользователю(скращает число обращений к основной памяти при помощи машинного языка)

2 тип:регистры управления и состояния(контроль хода выполнения программ)

MAR memory address register(куда заносится адрес ячейки)

MBR memory buffer register(куда заносятся данные)

I/OAR address register(номер устройства ввода/вывода)

I/OBR buffer register(для обмена данными между устройствами ввода/вывода и процессором)

PC (программный счётчик,содержит адрес команды)

IR(регистр команд,содержит последнюю выбранную команду)

Билет 2.

Программа-набор команд,хранящихся в памяти компьютера.

Запуск выборка команды исполнение команды остановка

 

 

Действия процесса:

1)передача данных из процессора в память или обратно

2)передача данных из процессора на устройства ввода/вывода

3)обработка данных(логические операции)

4)управление(изменение последовательности команд)

Прерывание-механизм,с помощью которого различные устройства могут прерывать нормальную работу процессора.

Билет 3.

Многозадачность-свойство операционной системы или среды программирования обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов. Истинная многозадачность операционной системы возможна только в распределённых вычислительных системах.

Существует 2 типа многозадачности:

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

Поточная многозадачность (основанная на потоках). Наименьший элементуправляемого кода — поток (одна программа может выполнять 2 и более задачи одновременно).

Обработка прерываний


запуск выборка команды исполнение проверка прерываний

выход

 

над красной стрелкой-разрешение прерывания

над зелёной стрелкой-запрещение прерывания

Множественные прерывания-ситуация,которая возникает при наличии прерывания одного сигнала мы получаем команду на обработку другого.

 

 

запрет новых прерываний , наличие приоритета

пока не обработаются предыдущие

 

Билет 4.

Парметры запоминающих устройств:объём,быстродействие,стоимость

 

 

Регистры и

КЭШ

 

Основная память

 


Внешня память

 

Чем ниже ступенька треугольника,тем стоимость ниже,ёмкость выше,время доступа выше.

КЭШ-промежуточное хранение данных при их перемещении между основной памятью и регистрами процессора.Предназначена для повышения производительности.

 

Осн.память КЭШ

 

 

 


10. Описание процессов в ОС. Атрибуты процессов.

 

Операционная система управляет событиями, которые происходят в компьютерной системе. Она планирует и координирует выполнение процессов, выделяет им ресурсы и предоставляет по запросу системных и пользовательских программ основные сервисы. Мы можем представить себе операционную систему как некий механизм, управляющий тем, как процессы используют системные ресурсы. Эта концепция проиллюстрирована на рис. 3.7. Пусть в многозадачной среде имеется несколько процессов (Pj, ..., Р„), которые уже созданы и загружены в виртуальную память. Каждому процессу для его функционирования нужен доступ к определенным системным ресурсам, в число которых входят процессор, устройства ввода-вывода и основная память. В ситуации, изображенной на рисунке, процесс Pi находится в состоянии выполнения, т.е. в основной памяти находится по крайней мере часть этого процесса. Кроме того, он осуществляет управление двумя устройствами ввода-вывода. Процесс Р2 тоже находится в основной памяти, но он блокирован, ожидая, пока освободится устройство ввода-вывода, находящееся в распоряжении процесса Pj. Процесс Р„ выгружен из основной памяти и, соответственно, приостановлен.

Рис. 3.7. Процессы и ресурсы в некоторый момент времени

Атрибуты процессов

Сложная многозадачная система должна располагать обширными сведениями о каждом процессе. Как было сказано ранее, можно считать, что эта информация находится в управляющем блоке процесса. Различные системы организуют эту информацию по-разному; в конце настоящей и следующей глав приводится несколько примеров такой организации. А пока что рассмотрим вопрос о том, информация какого типа может понадобиться операционной системе, не останавливаясь на схеме организации этой информации. В табл. 3.5 перечислены типичные виды информации, требующейся операционной системе для каждого процесса. Возможно, читателя несколько удивит объем требуемой информации, однако этот список будет выглядеть гораздо убедительнее после более полного знакомства с функциями операционной системы.

 

 

Таблица 3.5. Типичные элементы управляющего блока процесса

Продолжение табл. 3.5.

Информацию, которая находится в управляющем блоке процесса, можно разбить на три основные категории: информация по идентификации процесса; информация по состоянию процесса; информация, используемая при управлении процессом. Что касается идентификации процесса (process identification), то почти во всех операционных системах каждому процессу присваивается числовой идентификатор, который может быть просто индексом в первичной таблице процессов (рис. 3.8). В любом случае должно иметься некоторое отображение, позволяющее операционной системе найти по идентификатору процесса соответствующие ему таблицы. Идентификаторы могут использоваться в разных ситуациях. В частности, они используются для реализации перекрестных ссылок на таблицы процессов из других таблиц, находящихся под управлением операционной системы. Например, таблицы памяти могут предоставлять информацию об основной памяти с указанием всех областей, выделенных каждому из процессов, указываемому посредством его идентификатора. Аналогичные ссылки могут быть и в таблицах ввода-вывода или таблицах файлов. Если процессы обмениваются между собой информацией, их идентификаторы указывают операционной системе участников такого обмена. При создании нового процесса идентификаторы указывают родительский и дочерние процессы. Кроме того, процессу может быть присвоен идентификатор пользователя, который указывает, кто из пользователей отвечает за данное задание. Информация о состоянии процессора (processor state information) состоит из содержимого его регистров. Во время выполнения процесса эта информация, конечно же, находится в регистрах. Прерывая процесс, всю содержащуюся в регистрах информацию необходимо сохранить, чтобы восстановить ее при возобновлении выполнения этого процесса. Характер и количество участвующих в сохранении регистров зависит от устройства процессора. Обычно в набор регистров входят регистры, доступные пользователю, управляющие регистры и регистры состояния, а также указатели вершин стеков. Все они описаны в главе 1, "Обзор компьютерных систем". Следует заметить, что в процессорах любого вида имеется регистр или набор регистров, известных под названием "слово состояния программы" (program status word — PSW), в которых содержится информация о состоянии и кодах условий. Хорошим примером слова состояния процессора является регистр EFLAGS (показан на рис. 3.9 и описан в табл. 3.6), имеющийся в процессорах Pentium. Этот регистр используют все операционные системы, работающие на компьютерах Pentium. Рис. 3.9. Регистр EFLAGS процессора Pentium II

Таблица 3.6. Биты регистра EFLAGS процессора Pentium

Продолжение табл. 3.6.

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

Рис. 3.11. Структуры списков процессов

11. Режимы выполнения процессов в ОС. Функции ядра.

 

Существуют 2 режима:

1.Системный

2.Пользовательский

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

 

Ядро ОС – это часть ОС которая выполняет ее важнейшие функции.

 

Функции ядра ОС:

 

1. Управление процессами

1) Создание и завершение

2)Переключение процессов

3)Планирование и диспетчеризация

4) Синхронизация и обмен информацией между процессами

5) Организация управляющих блоков

 

2. Управление памятью:

1)Выделение адресного пространства процессу

2) Свопинг

3) Управление страницами и сигментами

 

3. Управление вводом /выводом

 

4. Функция поддержки

1)Обработка прерываний

2)Учет использования ресурсов

3)Текущий контроль системы

 

12. Параллельные вычисления: основные проблемы, способы взаимодействия процессов.

 

Параллельные вычисления — вычисления, в которых операции производятся параллельно.

1. Многозадачность – это управление множеством процессов в однопроцессорной системе.

2. Многопроцессорность – это управление множеством процессов в многопроцессорной системе.

3. Распределённые вычисления — способ решения трудоёмких вычислительных задач с использованием нескольких компьютеров, чаще всего объединённых в параллельную вычислительную систему.

 

1.Разделение глобальных ресурсов.

2.Управление распределением ресурсов.

3.Трудность обнаружения ошибок.

 

Взаимодействия процессов.

Типы взаимодействия:

1. Когда процессы не знают о наличии друг друга, но они конкурируют за доступ к ресурсам.

2. Процессы косвенно осведомлены о друг друге, разделяют доступ к ресурсам.

3.Процессы знают о наличии друг друга.

 

Проблемы которые могут возникнуть за доступ процессов к ресурсам.

1. Проблема при конкуренции – необходимость взаимных исключений.

2.Взаимная блокировка

3. Голодание

 

13. Взаимоисключение, критические интервалы. Понятия взаимоблокировки и голодания.

 

При конкуренции процессов за память возникает необходимость взаимоисключения (только один процесс может работать)

Критический интервал - часть программы, которая может быть выполнена только одним процессом целиком.

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

Имеются различные способы выхода из блокировок:

 

  1. Снятие оператором выполняющихся процессов до тех пор, пока не исчезнет взаимоблокировка. Этот путь эффективен лишь в том случае, когда количество выполняющихся процессов не очень велико (например не более 100). При большом количестве выполняющихся процессов этот путь чаще всего не помогает преодолеть блокировку.
  2. Перезагрузка системы этот путь преодоления блокировок наиболее радикальный, но и наиболее дорогой.
  3. Рестарт системы с так называемой контрольной точки.

 

Голодание наступает в результате более сложной ситуации. Пусть есть три процесса P1, P2, P3. Каждый из которых нуждается в каком либо неразделяемом ресурсе. Пусть процесс P1 получил доступ к ресурсу и успешно его использует. Параллельно ресурс потребовался процессам P2 и P3. Пусть процессы P1 и P2 имеют больший приоритет, чем процесс P3. Тогда после завершения использования ресурса процессом P1 начнет продолжит выполняться процесс P2. Пусть в процессе использования ресурса процессом P2 данный ресурс вновь потребовался процессу P1, а потом он снова потребовался процессу P2, и т.д. В результате ресурс будет переходить от процесса P1 к процессу P2 и наоборот, а процесс P3 так и не получит возможность продолжить работу, хотя, формально, взаимоблокировки не наступало. Данная ситуация носит название голодания.

 

 

14. Взаимодействие процессов: семафоры.

 

Семафоры – все процессы могут взаимодействовать до сигнала.

S

signal(S) сигнал S+1

wait(S) S-1, если S<0, то процесс блокируется.

 

Бинарные семафоры используют только 0 или 1.

 

Сильный семафор – Сильный семафор поддерживает модель обслуживания «первым пришел —первым обслужен»

Слабый семафор - Слабый семафор не предоставляет никаких гарантий обслуживания конкретному потоку, в результате поток может попасть в состояние информационного голода

 

15. Взаимодействие процессов: мониторы.

 

Мониторы – удобнее использовать локальные данные и несколько процедур.

1) Локальные переменные доступны только его процедурам.

2) Процесс входит в монитор с помощью вызова одной из его процедур.

3) В мониторе в определенный момент будет выполняться только один процесс.

1. cwait (c)

2. csignal (c)

 

 

16. Взаимодействие процессов: передача сообщений.

 

1) send ( получатель и что отправлено)

2) receive ( отправитель и содержание сообщения)

При обмене сообщений нужна синхронизация возможная реализация (комбинаций)

1) блокирующие получение, блокирующие отправление

2) не блокирующие отправление, блокирующие получение

3) не блокирующие отправление, не блокирующие получение

 

Это — минимальный набор операций, требующийся процессам для работы с системами передачи сообщений. Процесс посылает информацию в виде сообщения другому процессу, определенному как получатель, вызовом send. Получает информацию процесс при помощи выполнения примитива receive, которому указывает отправителя сообщения.

 

 

17. Управление памятью. Основные требования. Логическая и физическая организация.

 

Управление памятью

Несмотря на снижение стоимости и, соответственно, увеличение объема основной

(оперативной) памяти в современных компьютерах, её всё равно всегда будет

недостаточно для хранения всех программ и данных всех процессов. Поэтому управление

памятью (в частности, выгрузка и загрузка блоков из вторичной памяти) является одной из

важнейших задач ОС.

Часть основной памяти выделяется под ядро ОС, остальная память распределяется

между другими процессами. Желательна такая система управления памятью, при которой

в основную память будет загружено как можно большее кол-во процессов.

1. Перемещение.

2. Защита.

3. Совместное использование.

4. Логическая организация.

5. Физическая организация.

Перемещение

В многозадачной системе доступная память разделяется множеством процессов, и

для эффективной работы системы, желательно наличие большого пула процессов, готовых

к исполнению. Для этого необходимо обеспечить возможность выгрузки и загрузки

процессов из вторичной памяти. В связи с этим программа при выгрузке и последующей

загрузке в память может быть перемещена в другую область памяти.

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

памяти в коде программы в реальные физические адреса, которым соответствует текущее

расположение запрашиваемых данных в основной памяти.

Защита

Процесс должен быть защищен от нежелательного воздействия других процессов.

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

адресов при компиляции невозможна. Проверку всех обращений к памяти необходимо

осуществлять во время работы программы, чтобы убедиться что все они запрашивают

только адреса памяти, выделенные данному процессу. Защита обеспечивается на уровне

процессора, который прерывает недопустимые обращения к памяти.

Совместное использование

Механизм защиты все-таки должен предоставлять возможность нескольким

процессам обращаться к одной и той же области памяти (разделяемая память). Например,

процессы могут совместно использовать некоторый общий код программы, либо иметь

совместный доступ к одним и тем же данным. Поэтому необходим управляемый доступ к

разделяемым областям памяти.

Логическая организация

Память представляет собой линейное адресное пространство из

последовательности слов. На прикладном уровне программы, как правило, организованы

в виде модулей (частей). При этом модули могут разрабатываться достаточно независимо

друг от друга. Ссылки из одного модуля в другой должны разрешаться системой во время выполнения программы. Возможно совместное использование некоторых модулей

несколькими процессами. Лучше всего этим требованиям отвечает сегмнтация.

Физическая организация

Основная память предоставляет быстрый доступ при относительно высокой цене,

вторичная память более медленная, дешевая и энергонезависимая. В такой двухуровневой

системе необходимо обеспечить обмен данными между уровнями. Обмен обеспечивается

ОС.

 

 

18. Фиксированное распределение памяти.

 

В современных ОС размещение процесса в памяти для его выполнения реализована

с применением виртуальной памяти, основанной на использовании сегментов или

страниц. Рассмотрим возможные варианты распределения памяти (в т.ч. устаревшие).

1. Фиксированное распределение

Простейшая схема распределения доступной (не занятой ядром) основной памяти.

Память разделяется на области с фиксированными границами. При этом разделы могут быть одинакового или разного размера.

Рис.1 Пример фиксированного распределения памяти

В случае разделов одинакового размера, любой процесс, размер которого не

превышает размер раздела, может быть загружен в любой доступный раздел для

последующего выполнения. Если все разделы заняты блокированными процессами,

процесс из некоторого раздела может быть выгружен для размещения в нем готового

процесса. При таком варианте возникают следующие проблемы:

a.1. Программа может быть больше, чем размер раздела. В этом случае программист

должен сам на уровне программы обеспечивать выгрузку и загрузку в память

нужных модулей программы.

a.2. Использование оперативной памяти крайне неэффективно. Программа, независимо

от размера, занимает раздел целиком. При этом могут оставаться неиспользованными

достаточно большие блоки памяти.

Появление неиспользованной памяти из-за того, что загружаемый блок по размеру меньше

раздела, называется внутренней фрагментацией.

Использование разделов разного размера позволяет загружать программы большего

размера и в то же время уменьшает внутреннюю фрагментацию при загрузке блоков

малого размера.

Алгоритм размещения

При разделах одинакового размера не имеет значения, в какой из разделов будет

загружен процесс.

При разделах разного размера возможны 2 подхода к размещению в памяти:

a.1. Процесс размещается в наименьшем разделе, достаточном для данного процесса.

Тогда для каждого раздела нужна очередь процессов, предназначенных для этого

раздела. При этом сводится к минимуму внутренняя фрагментация. Однако такой

подход не оптимален с точки зрения системы в целом. Пусть в системе (рис. 1 б)

нет ни одного процесса размером более 12 Мб. Тогда последний раздел будет

свободным несмотря на то, что мог бы использоваться процессами меньшего

размера.

a.2. Использование одной очереди для всех процессов. Выбирается наименьший

доступный раздел, которого достаточно для данного процесса.

Использование разделов фиксированного размера требует минимальных накладных

расходов со стороны ОС, однако имеет серьезные недостатки:

1.1. Кол-во разделов памяти априори ограничивает количество активных процессов.

1.2. Небольшие процессы приводят к неэффективному использованию памяти.

 

Система двойников.

Память распределяется блоками размером 2K, L <= K <= U, где 2L – минимальный

размер выделяемого блока, 2U –максимально возможный размер.

Вначале все доступное пространство рассматривается как единый блок размера 2U.

Пусть запрошен раздел размера s. Если s > 2U-1, выделяется весь блок. Если же s меньше,

чем половина всего раздела, раздел делится на 2 равные части. Если s оказывается меньше

половины полученных разделов, то один из разделов снова делится уже на разделы

размером 2U-2 и т.д. Хранится список свободных разделов для каждого размера. Если оба

двойника одного размера оказываются свободными, они объединяются в один блок

большего размера.

Пример применения системы двойников

Система двойников лишена некоторых недостатков фиксированного и

динамического распределения.

 

 

Сегментирование.

Программа и связанные с ней данные разделяются на сегменты. Сегменты не обязаны

быть одинакового размера. Логический адрес также состоит из номера сегмента и

смещения внутри него. Сегменты могут занимать несколько разделов, которые не

обязательно являются смежными. В остальном этот подход похож на динамическое

распределение, ему также свойственна внешняя фрагментация, однако ее степень

снижается за счет разбиения процесса на небольшие части (сегменты). Главный

недостаток – нужно следить, чтобы размер сегмента не превысил максимально

возможный.

В таблице сегментовкроме адреса сегмента в памяти, хранится и его длина (если

смещение больше длины, адрес некорректен). Также хранится список свободных блоков

памяти. Физический адрес – это сумма физического адреса начала сегмента и смещения.

Локализация

Почему использование виртуальной памяти является эффективным, несмотря на

необходимость операций ввода-вывода для загрузки нужных блоков? В каждый

небольшой промежуток времени выполнение программы сосредоточено, как правило, в

малой части кода, которая обращается к одному или двум массивам данных – это явление

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

достаточно блоков, к которым вероятнее всего будет обращаться программа в ближайший

промежуток времени.

Когда наступает необходимость выгрузить некоторые блоки из памяти для

освобождения места другим процессам, нужно выбрать блок, который с наименьшей

вероятностью нужен будет в ближайшее время. Такие алгоритмы основаны также на

принципе локализации (как правило, выгружаются блоки, к которым дольше всего не

обращались).

 

 

Страничная организация и виртуальная память. Таблица страниц. Буфер поиска трансляции.

Страничная организация

При использовании виртуальной памяти кроме адреса страницы в основной памяти

в таблицу страниц добавляются некоторые флаги (биты). Это бит присутствия страницы

в основной памяти(показывает, загружена ли страница в память) и бит модификации.

Бит модификации указывает, было ли изменено содержимое страницы с момента ее

последней загрузки из вторичной памяти. Если к тому моменту, когда страница должна

быть выгружена, она не изменялась, то данные во вторичной памяти можно не

перезаписывать, поскольку там уже есть точная копия этой страницы.

Так как таблица страниц имеет переменную длину, зависящую от размера процесса,

ее хранение в регистрах процессора не представляется возможным. В регистре хранится

адрес начала таблицы, а сама таблица находится в основной памяти.

Кроме того, если процесс занимает большой объем памяти, его таблица страниц

может содержать огромное кол-во записей, поэтому таблица также хранится не в

основной, а в виртуальной памяти. Очевидно, что часть таблицы должна быть загружена в

основную память, в том числе запись о странице, выполняющейся в текущий момент.

Некоторые процессоры используют двухуровневую схему хранения таблиц

страниц. В корневой таблице хранятся адреса таблиц страниц, а уже таблицы страниц

содержат адреса страниц в памяти. При этом логический адрес состоит из номера записи в

корневой таблице, номера записи в таблице следующего уровня и смещения относительно

начала страницы.

Буфер поиска трансляции

Каждый виртуальный адрес вызывает обращение к двум физическим адресам: одно

для выборки записи из таблицы страниц, другое – для обращения к нужным данным. Для

увеличения производительности используется специальный высокоскоростной кэш для

записей таблицы, который называют буфером поиска трансляции. Он функционирует,

как обычный кэш памяти, и содержит те записи таблиц, которые использовались

последними.

Получив виртуальный адрес, процессор просматривает кэш. Если нужная запись

найдена, процессор быстро получает адрес кадра. Если в кэше записи не оказалось,

страница ищется в таблице страниц (которая находится в основной памяти). Если в

нужной записи установлен бит присутствия в памяти, процессор просто получает адрес

кадра и вносит его в кэш. Если страница не загружена в основную память, то процесс

прерывается, чтобы ОС загрузила нужную страницу, информация о ней тут же

обновляется в таблице страниц и заносится в кэш.

Стратегия выборки

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

по требованию и предварительно. При выборке по требованию страница передается в

основную память только при обращении к ячейке памяти, расположенной на этой

странице. Согласно принципу локализации, кол-во прерываний (т.е. обращений к

вторичной памяти) из-за отсутствия в памяти нужной страницы снижается до достаточно

низкого уровня.

В случае предварительной выборки загружается не только та страница, на которой

находится необходимая ячейка. В связи с физическими характеристиками уст-в вторичной

памяти, более эффективной является загрузка нескольких последовательных страниц за

один раз, чем загрузка этих страниц по одной. Но такая стратегия не дает выигрыша, если

обращения к загруженным вместе с запрошенной страницам.

 

 

Стратегия размещения

Определяет, где именно в физической памяти будут располагаться части процесса. Для

систем, использующих страничную или комбинированную организацию, стратегия

размещения не является критичной, т.к. аппаратная трансляция адреса эффективна при

любых сочетаниях страница-кадр. Эта стратегия важна в случае чистой сегментации.

 

28.Стратегия замещения.

Стратегия замещения

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

Все стратегии направлены на то, чтобы выгрузить страницу, обращений к которой не будет

в ближайшем будущем.

В соответствии с принципом локализации с большей вероятностью использоваться в

будущем будут те страницы, к которым уже обращались в последнее время. Чем более

интеллектуальная стратегия используется, тем выше накладные расходы на его

выполнение.

 

29. Резидентное множество процессов. Область видимости замещения.

Часть процесса, располагающаяся в некоторый момент времени в основной памяти,

называется резидентным множеством процесса. С помощью таблицы страниц или

сегментов процессор может определить, загружен ли запрашиваемый блок в основную

память. Если в основной памяти нет нужного логического адреса, ОС необходимо

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

операцию ввода-вывода (загружает нужный блок), после чего переводит процесс в

состояние готовности.

Область видимости замещения

Область видимости замещения можно разделить на локальную и глобальную.

Локальная стратегия замещения выбирает страницу только среди резидентных страниц

того процесса, страницу которого нужно загрузить в память. Глобальная стратегия

замещения рассматривает все незаблокированные страницы памяти для возможного

замещения, независимо от их принадлежности процессам.

Локальная стратегия проще для анализа, глобальная – проста в реализации.

При

 

 

30. Стратегия очистки. Управление загрузкой и приостановкой процессов.

Стратегия очистки

Является противоположностью стратегии выборки. Ее задача – определить момент,

когда измененная страница должна быть записана во вторичную память. Возможны 2

варианта: очистка по требованию и предварительная очистка. В первом варианте страница

записывается только тогда, когда выбирается для замещения. Предварительная очистка

записывает модифицированные страницы до того, как потребуется их выгрузка, поэтому

страницы могут записываться пакетами.

Управление загрузкой

Это определение кол-ва процессов, которые будут резидентными в основной

памяти, является критической частью системы управления памятью. При возрастании

уровня многозадачности эффективность использования процессора возрастает. Но

резидентное мн-во каждого отдельного процесса может стать неадекватно маленьким,

провоцируя постоянные прерывания и тем самым, наоборот, снижая эффективность

работы процессора.

Существуют различные варианты решения данной проблемы. Выполняться могут

только процессы, резидентные множества которых достаточно велики. Обеспечивая для

активных процессов необходимый размер резидентного мн-ва, стратегия определяет и кол-

во активных процессов.

Один из подходов заключается в том, что среднее врем между прерываниями

должно быть равно среднему времени обработки прерывания. Исследования показали,

что в этом случае достигается максимальная производительность процессора.

Приостановка процессов

Если кол-во резидентных процессов становится слишком большим, часть из них

должны быть приостановлены, т.е. полностью выгружены из памяти.

Существуют следующие возможности:

1. Процесс с наименьшим приоритетом.

2. Процесс, вызывающий прерывания. (он и так почти всегда в заблокированном

состоянии).

3. Последний активированный процесс. (маленькое резидентное мн-во)

4. Процесс с минимальным резидентным мн-вом. (минимизирует будущие затраты

на загрузку)

5. Наибольший процесс. Освобождаем большое кол-во кадров, меньше процессов

будут деактивированы.

6. Процесс с максимальным остаточным окном исполнения. (предоставляется

преимущество процессам с наименьшим временем работы (кол-вом квантов

времени до деактивации)).

 

31. Устройства ввода-вывода, их классификация. Эволюция функций ввода-вывода

Устройства ввода-вывода.

Внешние устройства ввода вывода могут быть разделены на три группы:

1. Работающие с пользователем. Используются для связи с пользователем:

принтеры, мониторы, мышь, клавиатура.

2. Работающие с компьютером. Используются для связи с электронным

оборудованием: дисковые устройства, датчики, контроллеры.

3. Коммуникации. Используются для связи с удаленными устройствами: модемы,

драйверы цифровых линий.

Устройства ввода-вывода могут различаться по следующим критериям:

1. Скорость передачи данных.

2. Применение. Функции устройств требуют соответствующего программного

обеспечения и изменения стратегии ОС.

3. Сложность управления. Например, для диска требуется гораздо более сложный

интерфейс управления по сравнению с принтером.

4. Единицы передачи данных. Могут передаваться как поток символов (терминал),

блоками (при выполнении дисковых операций).

5. Представление данных. Устройства использую разные схемы кодирования

данных.

6. Условия ошибок. Способ сообщения об ошибках и их последствии могут

значительно различаться у разных устройств.

Разнообразие устройств ввода-вывода приводит к невозможности разработки

единого подхода к задаче ввода-вывода.

Мы уже рассматривали три способа ввода-вывода: программируемый ввод-вывод,

ввод-вывод, управляемый прерываниями и прямой доступ к памяти. В настоящее время в

большинстве систем основным способом является прямой доступ к памяти.

Рассмотрим основные этапы развития управления вводом-выводом:

1. Процессор непосредственно управляет устройством.

2. Появляется контроллер или модуль ввода-вывода. Процессор отделяется от

некоторых деталей операций ввода-вывода, контроллер берет эти функции на себя,

предоставляя процессору более удобный и унифицированный интерфейс ввода

вывода.





Последнее изменение этой страницы: 2016-08-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.236.156.32 (0.074 с.)