- •Семафоры. Синхронизация процессов при помощи семафоров.
- •Организация параллелизма с помощью монитора. Кольцевой буфер.
- •Проблемы тупиков. Бесконечное откладывание и старение процессов.
- •Концепция ресурсов. Четыре необходимых условия возникновения тупика. Стратегия предотвращения тупиков.
- •Графы распределения ресурсов. Простая тупиковая ситуация
- •6.9.2 Приведение графов распределения ресурсов
- •Алгоритмы обнаружения тупиков. Редукция графа распределения ресурсов.
- •Организация памяти. Стратегии управления памятью. Связное и несвязное распределение памяти.
- •Мультипрограммные системы. Разделы памяти фиксированного и переменного размеров. Свопинг в мультипрограммировании.
- •Концепция виртуальной памяти. Пространство виртуальных адресов.
- •Многоуровневая организация виртуальной памяти. Поблочное отображение. Страницы и сегменты.
- •Системы с комбинированной странично-сегментной организацией. Таблица процессов и преобразование адресов.
- •Стратегии вталкивания и размещения страниц.
- •Стратегия выталкивания страниц. Понятия рабочего множества и трешинга.
- •Подкачка страниц по запросу и с упреждением.
- •Управление процессорами. Планирование загрузки процессоров. Цели планирования.
- •11.2 Цели планирования
- •Планирование с переключением и без переключения. Интервальный таймер.
- •Приоритеты. Планирование по сроку завершения.
- •Планирование по принципу fifo. Размер кванта.
- •Планирование по принципам sjf, srt и hrn.
- •Многоуровневые очереди с обратными связями.
- •Требования, предъявляемые к операционной системе. Многозадачность и ее виды.
Мультипрограммные системы. Разделы памяти фиксированного и переменного размеров. Свопинг в мультипрограммировании.
Мультипрограммная система - система, в памяти которой одновременно находится несколько программ. Когда одна из программ ожидает завершения операции ввода-вывода, другая программа может исполняться
система, в памяти которой находится несколько программ, чье исполнение чередуется по прошествии определенного промежутка времени
Распределение памяти фиксированными разделами
Самым простым способом управления оперативной памятью является разделение ее на несколько разделов фиксированной величины. Это может быть выполнено вручную оператором во время старта системы или во время ее генерации. Очередная задача, поступившая на выполнение, помещается либо в общую очередь (рисунок 2.9,а), либо в очередь к некоторому разделу (рисунок 2.9,б).
Рис. 2.9. Распределение памяти фиксированными разделами:
а - с общей очередью; б - с отдельными очередями
Подсистема управления памятью в этом случае выполняет следующие задачи:
сравнивая размер программы, поступившей на выполнение, и свободных разделов, выбирает подходящий раздел,
осуществляет загрузку программы и настройку адресов.
При очевидном преимуществе - простоте реализации - данный метод имеет существенный недостаток - жесткость. Так как в каждом разделе может выполняться только одна программа, то уровень мультипрограммирования заранее ограничен числом разделов не зависимо от того, какой размер имеют программы. Даже если программа имеет небольшой объем, она будет занимать весь раздел, что приводит к неэффективному использованию памяти. С другой стороны, даже если объем оперативной памяти машины позволяет выполнить некоторую программу, разбиение памяти на разделы не позволяет сделать этого.
Распределение памяти разделами переменной величины
В этом случае память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера. На рисунке 2.10 показано состояние памяти в различные моменты времени при использовании динамического распределения. Так в момент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 задачами, причем задача П4, завершаясь, покидает память. На освободившееся после задачи П4 место загружается задача П6, поступившая в момент t3.
Рис. 2.10. Распределение памяти динамическими разделами
Задачами операционной системы при реализации данного метода управления памятью является:
ведение таблиц свободных и занятых областей, в которых указываются начальные адреса и размеры участков памяти,
при поступлении новой задачи - анализ запроса, просмотр таблицы свободных областей и выбор раздела, размер которого достаточен для размещения поступившей задачи,
загрузка задачи в выделенный ей раздел и корректировка таблиц свободных и занятых областей,
после завершения задачи корректировка таблиц свободных и занятых областей.
Программный код не перемещается во время выполнения, то есть может быть проведена единовременная настройка адресов посредством использования перемещающего загрузчика.
Выбор раздела для вновь поступившей задачи может осуществляться по разным правилам, таким, например, как "первый попавшийся раздел достаточного размера", или "раздел, имеющий наименьший достаточный размер", или "раздел, имеющий наибольший достаточный размер". Все эти правила имеют свои преимущества и недостатки.
По сравнению с методом распределения памяти фиксированными разделами данный метод обладает гораздо большей гибкостью, но ему присущ очень серьезный недостаток - фрагментация памяти. Фрагментация - это наличие большого числа несмежных участков свободной памяти очень маленького размера (фрагментов). Настолько маленького, что ни одна из вновь поступающих программ не может поместиться ни в одном из участков, хотя суммарный объем фрагментов может составить значительную величину, намного превышающую требуемый объем памяти.
Условия мультипрограммирования. Swapping.
1. ВЗУ способны хранить информацию некоторое время, связанное с физическими свойствами конкретного устройства, и обеспечивать чтение и/или запись информации.
Если рассматривать ВЗУ, то можно выделить следующие виды устройств:
· магнитные диски.
· Надо дополнить тут, какие-нить флешки
Диск разбит на сектора. Сектор - часть дорожки. Концентрическим поверхностям окружности на диске одного радиуса соответствует условно цилиндр, т. е. цилиндр - набор дорожек на разных поверхностях, расположенных одна под другой. Например, если диск состоит из 20 поверхностей и на каждой по 100 дорожек, то на диске доступно 2000 дорожек или 100 цилиндров.
Обмен информацией осуществляется следующим образом: на блок управления диском подается набор координат с требуемым объемом информации. Блок головок вводится внутрь диска между поверхностями до заданного номера цилиндра, затем включается магнитная головка, которая читает заданную поверхность диска. После этого выбирается новый сектор и начинается обмен.
· винчестер.
· флоппи.
· магнитный барабан.
Характерно для больших вычислительных комплексов. Используется ОС для хранения системной информации.
2. Несмотря на реализацию асинхронного администрирования, ЦП должен был поставить прерывания на выполнение небольших по размеру команд для управления внешними устройствами. Тогда придумали интеллектуальное устройство, которое назвали каналом ввода/вывода.
УВВ - специализированная вычислительная машина, которая имеет внутри себя процессорный элемент и необходимую память. Устройство ввода/вывода содержит:
· высокоскоростной канал с памятью машины;
· управляющий канал для взаимодействия с ЦП;
· несколько каналов для подключения внешних устройств.
Функцией УВВ является выполнение макрокоманд, обеспечивающих ввод/вывод.
ЦП дает не последовательность команд (включить шаговый двигатель магнитного диска, переместить головку на заданный цилиндр, дождаться нужного сектора, считать блок данных, проверить считанное и т. д.), а более общую команду (произвести обмен данными указанного объема с указанными устройствами). УВВ разгружают ЦП.
3. Чтобы подчеркнуть связь между аппаратной частью и СПО, выделим необходимые условия мультипрограммирования:
· защита памяти. Это означает, что для надежной работы системы должен быть механизм, который реализован аппаратом и который для обеспечения доступа по указанному адресу будет сначала проверять корректность доступа. При страничной организации памяти таблицы страниц содержат бит присутствия страницы. Если страницы нет, то срабатывает защита памяти.
· наличие привилегированного режима системы. Это режим, которому в программе доступны все возможные команды ЦП.
· наличие прерывания по таймеру.
· механизм программно-аппаратной подкачки.
Допустим, ОС работает в мультипрограммном режиме. Следовательно, ЦП обрабатывает несколько программ. В системе может находиться столько программ, сколько позволяет разместить оперативная память, но в действительности это не так, так как программы разбиваются на виртуальные страницы, кроме того, программы в основном представляют собой нелинейные участки, состоящие из цикла в пределах одной страницы. Это значит, что если мы разместим в ОЗУ весь код и данные, то большая часть ОП будет простая, следовательно, не будет работать, и, следовательно, разумно в ОП держать только те части кода и данных, которые в данный момент используются аппаратом подкачки (swapping) - это аппаратно - программное средство.
Суть swapping. Бит обращения к страницам - это поле, которое характеризует частоту обращения к страницам и формируется оно аппаратом. Используя эти данные, ОС может откачивать страницы, которые принадлежат существующему процессу на диске. Т. е. после загрузки, по прошествии некоторого времени, ОС выбирает те страницы, к которым обращение было реже всего, и выталкивает их на внешний носитель. Если происходит обращение к откаченной странице, то ОС устанавливает запрос на подкачку этой страницы обратно. Этот механизм эффективен, т. к. позволяет в ОП держать незначительную часть от каждой из программ.
