Cтраница 1
Промежуточный планировщик может вызываться системой в тех случаях, когда начинает ощущаться недостаток в реальной памяти. Вместо того чтобы вводить ограничения на размеры программ, в нужные моменты система просто обращается к управляющим модулям, удаляющим определенные программы из состава смеси и освобождающим соответствующие страницы. [1]
Промежуточные планировщики очень удобны при поддержке функционирования интерактивных систем. В диалоговой среде требования к времени завершения программ могут быть довольно жесткими. В отдельных версиях TSS / 370 фирмы IBM существует понятие интервала ожидания, позволяющее установить для каждой программы время, через которое ее выполнение обязательно должно быть возобновлено. Если время ожидания истекло, промежуточный планировщик переводит программу в диспетчерскую очередь. [2]
Во многих системах промежуточный планировщик передает очередную программу диспетчеру только при наличии соответствующего количества свободной памяти. Объясните, каким образом даже в этих условиях память может оказаться перегруженной. [3]
Во многих системах промежуточный планировщик передает очередную программу диспетчеру только при наличии соответствующего объема свободной памяти. Если промежуточный планировщик не только обеспечивает каждой включаемой им в диспетчерскую очередь программе требуемый участок реальной памяти, но и заполняет эту память той же информацией, которая там была в момент последнего перевода рассматриваемой программы в состояние ожидания, то налицо существенный отход от стратегии выделения страниц по запросам. Такая стратегия носит название стратегии опережающего замещения. При постановке программы в диспетчерскую очередь содержимое ее рабочей области загружается в память, а при удалении программы из очереди выводится обратно на внешнее устройство. Конечно, за то время, пока программа выполняется под управлением диспетчера, ее рабочее пространство может расширяться и сжиматься. Другими словами, размеры рабочей области изменяются динамически. [4]
Программа SRM - это фактически промежуточный планировщик, появившийся как следствие развития мониторной программы подсистемы TSO. SRM позволяет обеспечить наиболее полный контроль функционирования системы, обслуживающей значительное число диалоговых пользователей на фоне выполнения больших пакетных заданий. Однако чем полнее контроль, тем более гибкими должны быть управляющие функции. Поэтому в SRM включено несколько параметризуемых механизмов, которые дают пользователям возможность самим устанавливать критерии обслуживания, а также определять требуемые соотношения между временем реакции системы, расходами на своевременное завершение срочных заданий, уровнем нагрузки на процессор, память и систему ввода-вывода. [5]
Во многих современных системах предусмотрены промежуточные планировщики, дополнительно динамически перерабатывающие информацию, которую передают им планировщики высокого уровня. [6]
В частности, в системе OS / VS2 промежуточный планировщик SRM запускается всякий раз, когда число свободных областей памяти падает ниже установленного предела. В таких случаях SRM приостанавливает выполнение некоторых программ, выводя их из очереди диспетчера и освобождая соответствующие участки памяти. Приостановленные программы помещаются в специальную очередь ( OUT-очередь), из которой в дальнейшем тем же SRM они снова могут быть переведены в очередь диспетчера. Наличие промежуточной очереди позволяет на основании каких-либо критериев динамически изменять число задач в мультипрограммной смеси, не выбрасывая сворачиваемые программы, а лишь переводя их на время в нерабочее состояние. В дальнейшем свернутые программы можно запускать, тогда как в ранних версиях системы OS / MVT существовал единственный способ борьбы с перегрузкой памяти, заключавшийся в принудительном завершении некоторых заданий по командам оператора. Естественно, выполнение таким образом завершенных заданий необходимо было начинать заново. [7]
Если, например, оказывается, что все активные задания счетные и их следует поместить в конец циклической очереди, то промежуточный планировщик в состоянии перевести некоторые из них на время в нерабочее состояние, заменив их заданиями, интенсивно обращающимися к вводу-выводу, из числа заданий, находящихся в OUT-очереди. В частности, SRM при выполнении своих функций пользуется указаниями компонентов управления рабочей нагрузкой, использованием процессора и каналов. На основе этих указаний задания ставятся в диспетчерскую очередь или удаляются из нее. Управление рабочей нагрузкой ( Work-load Manager) контролирует скорость обслуживания программ, относящихся к различным приоритетным группам. Управление использованием процессора ( CPU Manager) постоянно анализирует, используется ли должным образом центральный процессор. В общем, все рекомендации компонентов управления рабочей нагрузкой и использованием процессора комплексно применяются для формирования заключения о том, какие программы следует приостановить, переместив их в OUT-очередь. [8]
Во многих системах промежуточный планировщик передает очередную программу диспетчеру только при наличии соответствующего объема свободной памяти. Если промежуточный планировщик не только обеспечивает каждой включаемой им в диспетчерскую очередь программе требуемый участок реальной памяти, но и заполняет эту память той же информацией, которая там была в момент последнего перевода рассматриваемой программы в состояние ожидания, то налицо существенный отход от стратегии выделения страниц по запросам. Такая стратегия носит название стратегии опережающего замещения. При постановке программы в диспетчерскую очередь содержимое ее рабочей области загружается в память, а при удалении программы из очереди выводится обратно на внешнее устройство. Конечно, за то время, пока программа выполняется под управлением диспетчера, ее рабочее пространство может расширяться и сжиматься. Другими словами, размеры рабочей области изменяются динамически. [9]
Обычно при удалении из диспетчерской очереди некоторой программы для нее определяется приблизительный размер рабочего пространства. Значения этого параметра используются в дальнейшем промежуточным планировщиком при анализе находящихся в его распоряжении программ с целью выяснения, какие из них лучше всего в данный момент передать диспетчеру для выполнения. Опыт эксплуатации мультипрограммных систем показал, что при включении в состав смеси программ, для которых суммарный объем рабочего пространства превышает объем физической памяти вычислительной установки, возникают слишком большие дополнительные нагрузки на процессор и механизм ввода-вывода, заметно снижающие эффективность работы систем в целом. [10]
Фактически введение нового уровня планирования означает организацию промежуточной очереди, в которую пакетные задания ставятся планировщиком высокого уровня, а диалоговые попадают по запросам с терминалов. Задания, находящиеся в этой очереди, передаются диспетчеру только после обработки промежуточным планировщиком. Возможны два варианта работы такого планировщика. [11]
Промежуточные планировщики очень удобны при поддержке функционирования интерактивных систем. В диалоговой среде требования к времени завершения программ могут быть довольно жесткими. В отдельных версиях TSS / 370 фирмы IBM существует понятие интервала ожидания, позволяющее установить для каждой программы время, через которое ее выполнение обязательно должно быть возобновлено. Если время ожидания истекло, промежуточный планировщик переводит программу в диспетчерскую очередь. [12]
При вводе этой программы определяется значение относительного приоритета, которое позволит ей получать половину общего числа сервисных единиц. После этого программа с вычисленным значением приоритета помещается в диспетчерскую очередь. Однако в результате конкуренции между параллельно выполняющимися программами, а также из-за несбалансированности потребления ресурсов на отдельных этапах выполнения рассматриваемой программы может получиться, что на очередном интервале она получит не строго 50 % всех единиц обслуживания, а чуть больше или чуть меньше. По окончании очередного интервала управление передается промежуточному планировщику, который определяет, сколько единиц получено данной программой и идет ли ее выполнение по графику, а если нет, то опережает ли оно график или отстает от него. При отставании от графика предпринимается попытка увеличить скорость выполнения путем повышения приоритета программы. Если в течение следующего интервала догнать график все равно не удается, то принимаются более серьезные меры - от частичной до полной свертки остальных заданий с целью освобождения системных ресурсов для выполнения критичной по времени программы. [13]
Если очередное обращение к памяти требует подкачки новой страницы, а свободных страниц нет, то механизм LRU находит страницу, дольше всего не адресовавшуюся в рамках всей системы, и делает ее доступной для перераспределения. Конечно, к данной странице могли долго не обращаться исключительно потому, что она относится к уже давно не запускавшейся программе, выполнение которой, кроме того, могло быть приостановлено по причине ее обращения к другой странице. Когда же, наконец, программа будет запущена, скорее всего окажется, что ей нечего делать, поскольку часть необходимой информации удалена из памяти. Подкачка только что удаленной информации свидетельствует о несовершенстве управляющего механизма и является типичным примером пробуксовывания. С целью снижения вероятности пробуксовывания обычно ограничивают размеры диспетчерской очереди, а также вводят промежуточные планировщики. [14]