Понятие вычислительного процесса и ресурса
Понятие «вычислительный процесс» (или просто — «процесс») является одним из основных при рассмотрении операционных систем.
Последовательный процесс (задача) - это выполнение отдельной программы с ее данными на последовательном процессоре.
В настоящее время задача (task) – это единица работы, для выполнения которой предоставлен центральный процессор. Вычислительный процесс может включать в себя несколько задач.
Процессор при этом рассматривается в двух аспектах:
1. он является носителем данных
2. он одновременно выполняет программы по их обработке.
Примеры процессов: выполнение прикладных программ пользователей, утилит и других системных обрабатывающих программ. Процессами могут быть редактирование какого-либо текста, трансляция исходной программы, ее компоновка, исполнение.
Следует учитывать, что при смене данных обрабатываемых одной и той же программой будет начинается другой процесс.
Определение концепции процесса преследует цель выработать механизмы распределения и управления ресурсами.
Термин ресурс применяется по отношению к повторно используемым относительно стабильным и часто недостающим объектам, которые запрашиваются, используются и освобождаются процессами в период их работы.
Ресурс – это всякий объект, который может распределяться внутри системы.
Ресурсы могут быть разделяемые, когда несколько процессов могут их использовать одновременно или параллельно, а могут быть неделимыми.
Ресурсами считаются процессорное время, память, каналы ввода\вывода, периферийные устройства.
В настоящее время также выделяют программные и информационные ресурсы.
Ресурсы характеризуются атрибутами, способом доступа и физическим представлением. К ресурсам стали относить сообщения и синхросигналы, которыми обмениваются задачи.
В первых компьютерах построенных по принципам Джона фон Неймана все подсистемы и устройства компьютера управлялись центральным процессором. ЦП осуществлял и выполнение вычислений, и управление операциями ввода/вывода.
Затем в состав ЭВМ были введены специальные контролеры. Контролер - электронная схема, предназначенная для управления работой внешнего устройства.
Это позволило совместить во времени (распараллелить) операции ввода/вывода полученных данных и последующие вычисления на ЦП. Однако процессор продолжал часто и долго простаивать, дожидаясь завершения очередной операции ввода/вывода.
Следующим шагом в решении проблемы стала организация мультипрограммного (мультизадачного) режима работы вычислительной системы.
Суть его заключается в том, что пока один процесс ожидает завершения очередной операции ввода/вывода, другой процесс может быть поставлен на решение.
Рис. Пример выполнения программ: а) однопрограммный б) мультипрограммный
Общее время выполнения процессов уменьшается, но время выполнения каждого - увеличивается.
Самое главное при реализации этого режима работы – не позволять к.-л. Двум приложениям одновременно задействовать один и тот же ресурс компьютера – будь то ЦП, память или периферийное устройство.
В оперативной памяти применяется разделение адресного пространства на непересекающиеся области.
Каждой программе выделяется квант времени ~ 2 мс.
Каждой программе назначается приоритет.
Эффективность использования ресурсов достигается путем организации к ним очередей запросов.
Очередь управляется супервизором ОС – центральным управляющим модулем, который может состоять из нескольких модулей, например супервизор ввода/вывода, супервизор прерываний, супервизор программ, диспетчер задач и т.д.
Задача обращается к супервизору посредством специальных вызовов (команд, директив) и сообщает о своем требовании. При этом указывается вид ресурса и, если надо, его объем (например, количество адресуемых ячеек оперативной памяти, количество дорожек или секторов на системном диске, устройство печати и объем выводимых данных и т. п.).
Ресурс может быть выделен задаче, если:
1. он свободен, и нет запросов от задач более высокого приоритета к этому же ресурсу
2. текущий запрос и ранее выданные запросы позволяют совместное использование ресурсов.
3. ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).
Получив запрос, операционная система либо удовлетворяет его и передает управление задаче, выдавшей данный запрос, либо, если ресурс занят, ставит задачу в очередь к ресурсу, переводя ее в состояние ожидания (блокируя). Очередь к ресурсу может быть организована несколькими способами, но чаще всего это осуществляется с помощью списковой структуры.
После окончания работы с ресурсом, задача опять с помощью специального вызова супервизора сообщает ОС об отказе от ресурса. Супервизор, получив управление по этому обращению, освобождает ресурс и проверяет, имеется ли очередь к освободившемуся ресурсу. Если очередь есть — в зависимости от принятой дисциплины обслуживания (правила обслуживания) и приоритетов заявок он выводит из состояния ожидания задачу, ждущую ресурс, и переводит ее в состояние готовности к выполнению. После этого управление либо передается данной задаче, либо возвращается той, которая только что освободила ресурс.
При выдаче запроса на ресурс задача может указать, хочет ли она владеть ресурсом монопольно или допускает совместное использование с другими задачами. Например, с файлом можно работать монопольно, а можно и совместно с другими задачами.
Если в системе имеется некоторая совокупность ресурсов, то управлять их использованием можно на основе определенной стратегии. Стратегия подразумевает четкую формулировку целей, следуя которым можно добиться эффективного распределения ресурсов.
При организации управления ресурсами всегда требуется принять решение о том, что в данной ситуации выгоднее: быстро обслуживать отдельные наиболее важные запросы, предоставлять всем процессам равные возможности, либо обслуживать максимально возможное количество процессов и наиболее полно использовать ресурсы