Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_лекции.doc
Скачиваний:
2
Добавлен:
15.04.2019
Размер:
370.69 Кб
Скачать

3. Системы реального времени.

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

1)Расписание: Для простых систем управления(систем измерения) можно заранее составить расписание и строго в соответствии с этим расписанием запускать нужные задачи.

2) Для периодически запускаемых задач очень часто используют алгоритм планирования, который называется RMS(Rate Monotonic Schedule): Всем периодически запускаемым задачам назначается приоритет, пропорциональный количеству их запусков в единицу времени, то есть чем выше приоритет, тем чаще запускается задача. И в соответствии с этими приоритетами, задачи запускаются на выполнение. Однако не всякая система задач может быть планирована по этому алгоритму, необходимо выполнение следующего условия:

≤ 1

n- кол-во периодически запускаемых задач; Ci- время выполнения i-той задачи при каждом запуске, pi – частота перезапускания задач.

3) Используется для задач с определённом сроком завершения EDF(задача с ближайшим сроком выполнения в 1ю очередь).

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

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

  1. КЭШ, который имеет высоко быстродействие, высокую стоимость и маленький объём, энергозависим.

  2. ОЗУ – обладает средним быстродействием, средней стоимостью, имеет достаточный объём и память энергозависима.

  3. Диск – низкое быстродействие, низкая стоимость, большой объём, память на диске энергонезависима.

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

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

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

Прикладные программы загружаются с одного и того же адресного пространства. Простые системы без обмена дисками использовались и в первых мультипрограммах ОС. (рис)

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

Для систем пакетной обработки такое ??? было еще допустимо. С появлением ??? с разделением времени ??? памяти???

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

Так появились системы второго типа.

  1. Системы управления памяти с вытеснением процессов на диск. Используется загрузка и выгрузка данных на диск и эта загрузка-выгрузка осуществляется на уровне процессов. Такой процесс называется swapping.

Обычно адресное пространство процесса имеет следующий формат:

Системы с ??? для увеличения производительности выгружает не все адресное пространство, а только заданную область. Некоторые очень умные системы не выгружали код, потому что код в процессе выполнения не изменялся (имелся в исполняемом файле). Тем не менее , несмотря на все эти упущения, загрузка и выгрузка (новых) на уровне процессов проходила очень медленно и приводила к большим системным издержкам, поэтому стали рассматриваться способы загрузки и выгрузки адресного пространства процессов по частям. 1й из таких способов позволял разбить программу на модули, сгруппировать модули в группы, которые не взаимодействуют друг с другом, не вызывают модули из других групп и по очереди загружая группы минимизировать размер адресного пространства, занимаемого программой.

Такая структура называется структурой перекрытия или структурой Оверлея. Согласно этой структуре в памяти всегда находится главный модуль m0 плюс одна из следующих веточек: m1+m2+m3

m1+m2+m4

m20+m10+m11

m10+m12

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

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

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

  1. Так появились системы со страничной организацией памяти. В них всё адресное пространство процесса разбивается на страницы фиксированной длины, и этим страницам выделяется страницы физической памяти pageframe. Какой страницы адресного пространства процесса выделена конкретная страница физической памяти, задаётся специальная структура данных – таблица страниц. Для процессоров где общий объём памяти 4гб имеется каталог, который содержит 1024 дескриптора, которые ссылаются на таблицу страниц. См 2ую лекцию. (рис)

В некоторых системах RISC больше объёмов памяти, поэтому в них применяют трёхуровневую организацию памяти. (рис) При увеличение объёмов страниц используют инвертированные таблицы страниц. Несмотря на то что микропроцессор 64ёх разрядный, реальной физ памяти на них не так много, поэтому это решили использовать и таблицу перевернуть, входом в таблицу страниц уже является номер физических страниц. PageFrame. Однако в различные моменты времени физическая страница может хранить виртуальные страницы различных процессов. Поэтому таблица страниц для каждой физической страницы хранит следующую информацию: идентификатор процесса и номер виртуальной страницы этого процесса, который в данный момент располагается в этой виртуальной странице. (рис)

С инвертированными таблицами страниц используют расширенные буферы ассоциативной трансляции, которые для наиболее часто использованных страниц хранят пару:

Если устройство для операции не нужно, главная процедура выполняет операцию, результат заносит в IRP и возвращает его ОС. Если операция должна непосредственно выполняться на устройстве , главная процедура проверяет , свободная ли данная устройство ли занята. Если устройство свободно, процедура запускает операцию ввода вывода и переходит в ожидание её завершения. Если устройство занято, главная процедура ставит IRP в очередь и также переходит в ожидание завершения. Так как в многозадачной системе завершения сразу же несколько процессов могут одновременно попытаться выполнить ожидания на одном и том же устройстве, главная процедура, не завершившись для одной операции ввода вывода, может быть вызвана для запуска другой операции. Главная процедура должна быть повторновходимой. Повторновходимость обеспечивается тем, что процедур не хранит никаких данных в памяти. После того как устройство завершит операцию ввода-вывода, оно обычно вырабатывает прерывание и управление передаётся следующей процедуры драйвера обработчику аппаратных прерываний. Обработчик аппаратных прерываний получает управление в режиме с запрещёнными прерываниями, то есть в момент входа в обработчик прерывания, прерывания запрщены, это делается, чтобы следующее прерывание не изменило данных текущего прерывания. Однако вычислительная система может сохранить информацию о небольшом количестве отложенных прерываний. Поэтому чтобы не потерять следующее прерывание, обработчик аппаратных прерываний должен работать как можно меньше времени. Поэтому обработчик выполняет следующие действия: во-первых, сохраняет состояние устройства на момент прерывания, во-вторых, вызывает следующую процедуру драйвера- процедуру завершения ввода-вывода, которая уже в режиме с разрешёнными прерываниями обработает результат операции. После этого обработчик работу свою заканчивает. Третья процедура : во-первых, анализирует сохранённые обработчиком данные о состоянии устройства и заполняет IRP результатами операции. Во-вторых, разблокировывает главную процедуру связанную с IRP, после чего главная процедура завершается и возвращает IRP главную систему. В-третьих, просматривает очередь к устройству, если очередь не пуста, считывает из неё следующий IRP и запускает определённую в нём операцию ввода-вывода.

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