Составители:
минальной. Если же это однопользовательская система, но с возможностью мультипро-
граммной обработки, то желательно, чтобы те программы, с которыми производится не-
посредственная работа, имели лучшее время реакции, нежели фоновые задания. При
этом желательно, чтобы некоторые приложения, выполняясь без непосредственного
участия пользователя (например, программа получения электронной почты, использую-
щая модем и коммутируемые линии для передачи данных), гарантированно получали бы
необходимую часть процессорного времени. Для решения подобных проблем использу-
ется дисциплина обслуживания, называемая RR (round robin, круговая, карусельная), и
приоритетные методы обслуживания.
Дисциплина обслуживания RR предполагает, что каждая задача получает процес-
сорное время порциями (говорят: квантами времени, q). После окончания кванта вре-
мени q задача снимается с процессора и он передается следующей задаче. Снятая задача
ставится в конец очереди задач, готовых к выполнению. Эта дисциплина обслуживания
иллюстрируется рис.2.4. Для оптимальной работы системы необходимо правильно вы-
брать закон, по которому кванты времени выделяются задачам.
Рис.2.4. Карусельная (round robin) дисциплина диспетчеризации
Величина кванта времени q выбирается как компромисс между приемлемым вре-
менем реакции системы на запросы пользователей (с тем, чтобы их простейшие запросы
не вызывали длительного ожидания) и накладными расходами на частую смену контек-
ста задач. Очевидно, что при прерываниях ОС вынуждена сохранить достаточно боль-
шой объем информации о текущем (прерываемом) процессе, поставить дескриптор сня-
той задачи в очередь, загрузить контекст задачи, которая теперь будет выполняться.
Если величина q велика, то при увеличении очереди готовых к выполнению задач реак-
ция системы станет плохой. Если же величина мала, то относительная доля накладных
расходов на переключения между исполняющимися задачами станет большой и это
ухудшит производительность системы. В некоторых ОС есть возможность указывать в
явном виде величину q либо диапазон ее возможных значений.
Дисциплина диспетчеризации RR - это одна из самых распространенных дисцип-
лин. Однако бывают ситуации, когда ОС не поддерживает в явном виде дисциплину ка-
русельной диспетчеризации. Например, в некоторых ОС реального времени использует-
ся диспетчер задач, работающий по принципам абсолютных приоритетов (процессор
предоставляется задаче с максимальным приоритетом, а при равенстве приоритетов он
действует по принципу очередности). Другими словами, снять задачу с выполнения мо-
жет только появление задачи с более высоким приоритетом. Поэтому если нужно орга-
низовать обслуживание задач таким образом, чтобы все они получали процессорное
время равномерно и равноправно, то системный оператор может сам организовать такую
дисциплину. Для этого достаточно всем пользовательским задачам присвоить одинако-
вые приоритеты и создать одну высокоприоритетную задачу, которая не должна ничего
делать, но которая, тем не менее, будет по таймеру через указанные интервалы времени
54
минальной. Если же это однопользовательская система, но с возможностью мультипро-
граммной обработки, то желательно, чтобы те программы, с которыми производится не-
посредственная работа, имели лучшее время реакции, нежели фоновые задания. При
этом желательно, чтобы некоторые приложения, выполняясь без непосредственного
участия пользователя (например, программа получения электронной почты, использую-
щая модем и коммутируемые линии для передачи данных), гарантированно получали бы
необходимую часть процессорного времени. Для решения подобных проблем использу-
ется дисциплина обслуживания, называемая RR (round robin, круговая, карусельная), и
приоритетные методы обслуживания.
Дисциплина обслуживания RR предполагает, что каждая задача получает процес-
сорное время порциями (говорят: квантами времени, q). После окончания кванта вре-
мени q задача снимается с процессора и он передается следующей задаче. Снятая задача
ставится в конец очереди задач, готовых к выполнению. Эта дисциплина обслуживания
иллюстрируется рис.2.4. Для оптимальной работы системы необходимо правильно вы-
брать закон, по которому кванты времени выделяются задачам.
Рис.2.4. Карусельная (round robin) дисциплина диспетчеризации
Величина кванта времени q выбирается как компромисс между приемлемым вре-
менем реакции системы на запросы пользователей (с тем, чтобы их простейшие запросы
не вызывали длительного ожидания) и накладными расходами на частую смену контек-
ста задач. Очевидно, что при прерываниях ОС вынуждена сохранить достаточно боль-
шой объем информации о текущем (прерываемом) процессе, поставить дескриптор сня-
той задачи в очередь, загрузить контекст задачи, которая теперь будет выполняться.
Если величина q велика, то при увеличении очереди готовых к выполнению задач реак-
ция системы станет плохой. Если же величина мала, то относительная доля накладных
расходов на переключения между исполняющимися задачами станет большой и это
ухудшит производительность системы. В некоторых ОС есть возможность указывать в
явном виде величину q либо диапазон ее возможных значений.
Дисциплина диспетчеризации RR - это одна из самых распространенных дисцип-
лин. Однако бывают ситуации, когда ОС не поддерживает в явном виде дисциплину ка-
русельной диспетчеризации. Например, в некоторых ОС реального времени использует-
ся диспетчер задач, работающий по принципам абсолютных приоритетов (процессор
предоставляется задаче с максимальным приоритетом, а при равенстве приоритетов он
действует по принципу очередности). Другими словами, снять задачу с выполнения мо-
жет только появление задачи с более высоким приоритетом. Поэтому если нужно орга-
низовать обслуживание задач таким образом, чтобы все они получали процессорное
время равномерно и равноправно, то системный оператор может сам организовать такую
дисциплину. Для этого достаточно всем пользовательским задачам присвоить одинако-
вые приоритеты и создать одну высокоприоритетную задачу, которая не должна ничего
делать, но которая, тем не менее, будет по таймеру через указанные интервалы времени
54
Страницы
- « первая
- ‹ предыдущая
- …
- 50
- 51
- 52
- 53
- 54
- …
- следующая ›
- последняя »
