Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая_планировщик.docx
Скачиваний:
3
Добавлен:
23.09.2019
Размер:
328.98 Кб
Скачать

1.3.Модель функционирования параллельных программ.

1.3.1. Понятие ресурса

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

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

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

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

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

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

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

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

Рис. 3. Варианты взаиморасположения траекторий одновременно исполняемых процессов (отрезки линий изображают фрагменты командных последовательностей процессов)

1.4.Алгоритм планирования процессов

«Многоуровневые очереди с обратной связью»

Алгоритмы назначения приоритетов процессов могут опираться как на внутренние параметры, связанные с происходящим внутри вычислительной системы, так и на внешние по отношению к ней. К внутренним параметрам относятся различные количественные и качественные характеристики процесса такие как: ограничения по времени использования процессора, требования к размеру памяти, число открытых файлов и используемых устройств ввода-вывода, отношение средних продолжительностей I/O burst к CPU burst и т. д. В качестве внешних параметров могут выступать важность процесса для достижения каких-либо целей, стоимость оплаченного процессорного времени и другие политические факторы.

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

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

Система представлена совокупностью взаимосвязанных очередей (см. рис. 5, стр.7). Планирование процессов происходит по одному критерию – это интерактивность. Под интерактивностью понимается потребность во взаимодействии с пользователем, то есть интенсивность реакции процесса на внешние (по отношению к системе и процессу) факторы. В такой системе процесс не постоянно приписан к определенной очереди, а может мигрировать из одной очереди в другую в зависимости от своего поведения.

Планирование процессов между очередями осуществляется на основе вытесняющего приоритетного механизма. Чем выше на рисунке очередь, тем выше ее приоритет, и соответственно приоритет процессов, находящихся в ней. Процессы в очереди 1 не могут исполняться, если в очереди 0 есть хотя бы один не заблокированный процесс. Процессы в очереди 2 не будут выбраны для выполнения, пока есть хоть один незаблокированный процесс в очередях 0 и 1 и т.д. И наконец, процесс в очереди N может получить процессор в свое распоряжение только тогда, когда очереди 0, 1, 2 … N пусты. В итоге, после полной итерации алгоритма, то есть прохода всех очередей, мы получим систему в которой очереди ожидания пусты и все процессы оказываются в заблокированном состоянии. Планирование процессов внутри очередей осуществляется с использованием алгоритма RR.

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

Родившийся процесс поступает в очередь 0. При выборе на исполнение он получает в свое распоряжение квант времени размером 1 условная единица. Если продолжительность его CPU burst меньше этого кванта времени, процесс остается в очереди 0. В противном случае он переходит в очередь 1. Для процессов из очереди 1 квант времени имеет величину 2 условные единицы. Если процесс не укладывается в это время, он переходит в очередь 2. Если укладывается – остается в очереди 1. В очереди 2 величина кванта времени составляет 3 условные единицы и т.д. Если процесс дошел до очереди N, то для него квантование времени не применяется и, при отсутствии готовых процессов в других очередях, может исполняться до окончания своего CPU burst. Чем больше значение продолжительности CPU burst, тем в менее приоритетную очередь попадает процесс, но тем на большее процессорное время он может рассчитывать. Таким образом, через некоторое время все процессы, требующие малого времени работы процессора, окажутся размещенными в высокоприоритетных очередях, а все процессы, требующие большого счета и с низкими запросами к времени отклика, – в низкоприоритетных.

Многоуровневые очереди с обратной связью представляют собой наиболее общий подход к планированию процессов из числа подходов, рассмотренных нами. Они наиболее трудны в реализации, но в то же время обладают наибольшей гибкостью. Понятно, что существует много других разновидностей такого способа планирования, помимо варианта, приведенного выше. Для полного описания их конкретного воплощения необходимо указать:

1. Количество очередей для процессов, находящихся в состоянии готовность.

2. Алгоритм планирования, действующий между очередями.

3. Алгоритмы планирования, действующие внутри очередей.

4. Правила помещения родившегося процесса в одну из очередей.

5. Правила перевода процессов из одной очереди в другую.

6. Число, указывающее увеличение длины кванта времени при переходе от одной очереди к другой.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]