|
|||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Синхронизация и взаимодействие процессовПланирование на основе квантования. В соответствии с этой стратегией каждому процессу поочередно для выполнения предоставляется ограниченный период процессорного времени – квант. Кванты, выделяемые процессором, могут быть одинаковыми для всех процессов или различными. Помимо этого они могут быть фиксированной величины или могут изменяться в разные периоды. Пример: первоначально каждому процессу назначается достаточно большой квант, а величина каждого следующего кванта уменьшается до некоторой заранее заданной величины. В таком случае преимущество получают короткие процессы, которые успевают выполниться в течении первого кванта, а длительные вычисления происходят в фоновом режиме. Может использоваться и обратный алгоритм: каждый последующий квант больше предыдущего. Такой подход позволяет уменьшить затраты, связанные с переключением процессов в случае если сразу несколько процессов выполняют длительные вычисления. Карусельная стратегия планирования Round Robin – карусель Применяется в системах разделения времени. Очередь готовых процессов рассматривается как кольцевая, процессы циклически перемещаются по очереди, получая процессор на время равное одному кванту. Новый процесс добавляется в хвост очереди. Если процесс не завершился в пределах выделенного ему кванта времени, его работа принудительно прерывается и он перемещается в хвост очереди. Пример:
П1=24 П2=4 П3=3 q=3 Свойства стратегии Round Robin сильно зависят от величины временного кванта (q). Чем он больше, тем ближе эта стратегия к FIFO(для рассмотренного примера если q>=24мс) При очень малых значениях временного кванта стратегию Round Robin называют стратегией разделения процессора. Теоретически это обозначает, что каждый из n процессов работает со своим собственным виртуальным процессором, производительность, которого приблизительно равна 1/n производительности физического процессора. Однако при малом размере кванта время процессора непроизводительно расходуется на переключение с процесса на процесс. Планирование с использованием многоуровневой очереди Стратегия многоуровневой очереди разработана для ситуации, когда процессы могут быть легко классифицированы на несколько групп. Например, часто процессор разделяют на 2 группы: интерактивные процессы(первого плана) и пакетные(фоновые). Сущность данной стратегии заключается в том, что общая очередь готовых процессов разделяется на несколько внутренних очередей, в каждой из которых находятся процессы с одинаковыми свойствами. При этом для планирования процессов во внутренних очередях могут независимо использоваться рассмотренные ранее стратегии. Взаимодействие очередей осуществляется по следующим правилам: Ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях с более высоким приоритетом. Планирование с использованием многоуровневой очереди с обратными связями. Рассмотренная выше многоуровневая очередь не допускает перемещения процессов между внутренними очередями. Многоуровневая очередь с обратными связями предполагает, что процессы при определенных условиях могут перемещаться между очередями.
РАЗРАБОТКА ХОРОШО ПЛАНИРУЕМЫХ ПРОЦЕССОВ Каким бы умным не был алгоритм назначения приоритетов и планирования процессов, неверно написанная программа может испортить общую загруженность системы. Пример: Рассмотрим следующую систему: есть 2 входа А1 и А2 и 2 выхода В1 и В2. 2 процесса П1 и П2 занимаются получением данных со входа соответственно, их преобразованием и передачей на соответствующий выход. При использовании классического опроса (polling), когда процессы постоянно опрашивают вход на наличие данных, все процессорное время разделяется между этими двумя процессами. При этом во время обработки данных процессом П1 данные со второго входа А2 могут быть потеряны, т.к. они не были взяты вовремя, а если требуется запустить еще один процесс П3, то время его работы будет зависеть от того, были ли данные на входе процессов П1 и П2. Самый дорогой способ: наилучшее решение для планирования чтоб были 3 постоянно работающих процесса: иметь 3 процессора, но это очень дорого. Если разделять время между этими процессами на одном процессоре, то система будет использовать 2/3 процессорного времени на процессы П1 и П2 даже если входных данных нет. С точки зрения ОС наилучшее решение – это активизация процессов П1 и П2 сигналом прерывания по готовности данных. Синхронизация и взаимодействие процессов Если процессы независимы (не имеют совместно используемых ресурсов), то синхронизация их работы не требуется. Если же процессы используют разделяемые ресурсы, то их деятельность необходимо синхронизировать. Способы осуществления синхронизации подразделяют на: 1. Безопасное взаимодействие – обмен данными осуществляется посредством объектов взаимодействия, предоставляемых системой. При этом целостность информации и неделимость операций с ней неявно обеспечиваются системой. Примерами таких объектов взаимодействия являются семафоры, сигналы и почтовые ящики. 2. Не безопасное взаимодействие - обмен данными осуществляется посредством разделяемых ресурсов, например общих переменных, независимых от системных объектов взаимодействий. При этом целостность информации и неделимость операций с ней явно обеспечивается самим приложением. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.013 сек.) |