Время центрального процессора и оперативная память являются основными ресурсами в случае реализации мультипрограммых вычислений.
Как было показано выше, оперативная память, без которой в принципе невозможно выполнение ни одной программы, является разделимым ресурсом. От выбранных механизмов распределения памяти между процессорами сильно зависит эффективность использования ресурсов системы, ее производительность, и возможности, которыми могут пользоваться программисты при создании своих программ.
Способы распределения времени центрального процессора тоже сильно влияют и на скорость выполнения отдельных вычислений, и на общую эффективность вычислительной системы.
Операционная система выполняет следующие основные функции, связанные с управлением задачами:
- создание и удаление задач;
- планирование процессов и диспетчеризация задач;
- синхронизация задач, обеспечение их средствами коммуникации.
Диспетчеризация задач является краткосрочным планированием процессов в отличии от долгосрочного планирования, заключающегося в подборе таких вычислительных процессов, которые бы меньше всего конкурировали между собой за ресурсы вычислительной системы.
|
|
Стратегия планирования определяет, какие процессы должны выполняться, чтобы достичь поставленной цели. Известно большое количество стратегий выбора процесса, которому необходимо представить процессор. Среди них можно назвать следующие стратегии:
- по возможности заканчивать вычисления в том же самом порядке, в котором они были начаты;
- отдавать предпочтение более коротким процессам;
- предоставлять всем пользователям (процессам пользователей) одинаковые услуги, в том числе и одинаковое время ожидания.
Известно большое количество правил (дисциплин диспетчеризации), в соответствии с которыми формируется список (очередь) готовых к выполнению задач. Различают два больших класса дисциплин обслуживания – бесприоритетные и приоритетные. При приоритетном обслуживании отдельным задачам предоставляется преимущественное право попасть в состояние исполнения. При бесприоритетном обслуживании выбор задачи производится в некотором заранее установленном порядке без учета их отдельной важности и времени обслуживания. Перечень дисциплин обслуживания задач и их классификация приведены на рисунок 4
Рисунок 4. Дисциплины диспетчеризации задач
Если не принимать во внимание программирование на машинном языке (эта технология практически не используется уже давно), то можно сказать, что программист обращается к памяти с помощью некоторого набора логических имен, которые чаще всего являются символьными, а не числовыми и для которых отсутствует отношение порядка. Другими словами, в общем случае множество переменных не упорядочено, хотя отдельные переменные и могут иметь частичную упорядоченность (например, элементы массива). Имена переменных и входных точек программных модулей составляют пространство имен. С другой стороны, существует понятие физической операционной памяти с которой и работает процессор, извлекая из нее команды и данные и помещает в нее результаты вычислений. Физическая память представляет собой упорядоченное множество ячеек, и все они пронумерованы, то есть к каждой из них можно обратиться, указав ее порядковый номер (адрес). Количество ячеек физической памяти ограничено и фиксировано.
|
|
Системное программное обеспечение должно связать каждое указанное пользователем имя с физической ячейкой памяти, то есть осуществить отображение пространства имен на физическую память компьютера. В общем случае это отображение осуществляется в два этапа (рисунок 5): сначала системой программирования, а затем операционной системой (с помощью специальных программных модулей управления памятью и использования соответствующих аппаратных средств вычислительной системы). Между этими этапами, обращения к памяти имеют форму виртуального или логического адреса. Виртуальное адресное пространство программы прежде всего зависит от архитектуры процессора и от системы программирования и практически не зависит от объема реальной физической памяти, установленной в компьютере. Можно сказать, что адреса команд и переменных в готовой машинной программе, подготовленной к выполнению системой программирования, как раз и являются виртуальными адресами.
Рисунок 5. Память и отображения