19.1 Вычислительные процессы и ресурсы
Понятие «вычислительный процесс» (или просто — «про¬цесс») является одним из основных при рассмотрении операцион¬ных систем. Как понятие, процесс является определенным видом абстракции, и мы будем придерживаться следующего неформаль¬ного определения. Последовательный процесс (иногда называе¬мый «задачей») — это выполнение отдельной программы с ее данными на последовательном процессоре. Концептуально про¬цессор рассматривается в двух аспектах: во-первых, он является носителем данных и, во-вторых, он (одновременно) выполняет опе¬рации, связанные с их обработкой.
В качестве примеров можно назвать следующие процессы (задачи): выполнение прикладных программ пользователей, утилит и других системных обрабатывающих программ. Процессами могут быть редактирование какого-либо текста, трансляция исходной программы, ее компоновка, исполнение. Причем трансляция какой-нибудь исходной программы является одним процессом, а трансля¬ция следующей исходной программы — другим процессом, по¬скольку, хотя транслятор как объединение программных модулей здесь выступает как одна и та же программа, но данные, которые он обрабатывает, являются разными.
Определение концепции процесса преследует цель вырабо¬тать механизмы распределения и управления ресурсами. Понятие ресурса, так же как и понятие процесса является, пожалуй, основ¬ным при рассмотрении операционных систем. Термин ресурс обычно применяется по отношению к повторно используемым, от¬носительно стабильным и часто недостающим объектам, которые запрашиваются, используются и освобождаются процессами в пе¬риод их активности. Другими словами, ресурсом называется всякий объект, который может распределяться внутри системы.
Ресурсы могут быть разделяемыми, когда, несколько про¬цессов могут их использовать одновременно (в один и тот же мо¬мент времени) или параллельно (в течение некоторого интервала времени процессы используют ресурс попеременно), а могут быть и неделимыми (рис. 70).
При разработке первых систем ресурсами считались про¬цессорное время, память, каналы ввода/вывода и периферийные устройства. Однако очень скоро понятие ресурса стало гораздо бо¬лее универсальным и общим. Различного рода программные и ин¬формационные ресурсы также могут быть определены для системы как объекты, которые могут разделяться и распределяться, и доступ к которым необходимо соответствующим образом контролировать. В настоящее время понятие ресурса превратилось в абстрактную структуру с целым рядом атрибутов, характеризующих способы доступа к этой структуре и ее физическое представление в системе. Более того, помимо системных ресурсов, о которых мы сейчас го¬ворили, как ресурс стали толковать и такие объекты, как сообщения и синхросигналы, которыми обмениваются задачи.

19.2 Однопрограммные и мультипрограммные режимы работы
В первых вычислительных системах любая программа могла выполняться только после полного завершения предыдущей. Поскольку эти первые вычислительные системы были построены в соответствии с принципами, изложенными в известной работе Яноша Джон фон Неймана, все подсистемы и устройства компью¬тера управлялись исключительно центральным процессором. Цен¬тральный процессор осуществлял и выполнение вычислений, и управление операциями ввода/вывода данных. Соответственно, пока осуществлялся обмен данными между оперативной памятью и внешними устройствами, процессор не мог выполнять вычисления. Введение в состав вычислительной машины специальных контрол¬леров позволило совместить во времени (распараллелить) операции вывода полученных данных и последующие вычисления на цен-тральном процессоре. Однако все равно процессор продолжал ча¬сто и долго простаивать, дожидаясь завершения очередной опера¬ции ввода/вывод. Поэтому было предложено организовать так называемый мультипрограммный (мультизадачный) режим работы вычислительной системы. Суть его заключается в том, что пока одна программа (один вычислительный процесс или задача) ожи¬дает завершения очередной операции ввода/вывода, другая про¬грамма (а точнее, другая задача) может быть поставлена на реше¬ние (рис. 71).

При мультипрограммировании повышается пропускная способность системы, но отдельный процесс никогда не может быть выполнен быстрее, чем если бы он выполнялся в однопро¬граммном режиме (всякое разделение ресурсов замедляет работу одного из участников за счет дополнительных затрат времени на ожидание освобождения ресурса).
Операционная система поддерживает мультипрограммиро¬вание (многопроцессность) и старается эффективно использовать ресурсы путем организации к ним очередей запросов, составляемых тем или иным способом. Это требование достигается поддержива¬нием в памяти более одного процесса, ожидающего процессор, и более одного процесса, готового использовать другие ресурсы, как только последние станут доступными. Общая схема выделения ре¬сурсов такова. При необходимости использовать какой-либо ресурс (оперативную память, устройство ввода/вывода, массив данных и т.п.) задача обращается к супервизору операционной системы — ее центральному управляющему модулю, который может состоять из нескольких модулей, например: супервизор ввода/вывода, суперви¬зор прерываний, супервизор программ, диспетчер задач и т. д. — по¬средством специальных вызовов (команд, директив) и сообщает о своем требовании. При этом указывается вид ресурса и, если надо, его объем (например, количество адресуемых ячеек оперативной памяти, количество дорожек или секторов на системном диске, устройство печати и объем выводимых данных и т. п.).
Директива обращения к операционной системе передаст ей управление, переводя процессор в привилегированный режим ра¬боты, если такой существует. Не все вычислительные комплексы имеют два (и более) режима работы: привилегированный (режим супервизора), пользовательский, режим эмуляции какого-нибудь другого компьютера и т. д.
Ресурс может быть выделен задаче, обратившейся к супер¬визору с соответствующим запросом, если:
• он свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;
• текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;
• ресурс используется задачей низшего приоритета и мо¬жет быть временно отобран (разделяемый ресурс).
Получив запрос, операционная система либо удовлетворяет его и возвращает управление задаче, выдавшей данный запрос, либо, если ресурс занят, ставит задачу в очередь к ресурсу, пере¬водя ее в состояние ожидания (блокируя). Очередь к ресурсу может быть организована несколькими способами, но чаще всего это осу¬ществляется с помощью списковой структуры.
После окончания работы с ресурсом задача опять с помо¬щью специального вызова супервизора (посредством соответству¬ющей директивы) сообщает операционной системе об отказе от ре¬сурса, или операционная система забирает ресурс сама, если управ¬ление возвращается супервизору после выполнения какой-либо си¬стемной функции. Супервизор операционной системы, получив управление по этому обращению, освобождает ресурс и проверяет, имеется ли очередь к освободившемуся ресурсу. Если очередь есть — в зависимости от принятой дисциплины обслуживания (правила обслуживания) и приоритетов заявок он выводит из состояния ожидания задачу, ждущую ресурс, и переводит ее в состояние го¬товности к выполнению. После этого управление либо передается данной задаче, либо возвращается той, которая только что освобо¬дила ресурс.
При выдаче запроса на ресурс задача может указать, хочет ли она владеть ресурсом монопольно или допускает совместное использование с другими задачами. Например, с файлом можно работать монопольно, а можно и совместно с другими задачами.
Если в системе имеется некоторая совокупность ресурсов, то управлять их использованием можно на основе определенной стратегии. Стратегия подразумевает четкую формулировку целей, следуя которым можно добиться эффективного распределения ре¬сурсов.
При организации управления ресурсами всегда требуется принять решение о том, что в данной ситуации выгоднее: быстро обслуживать отдельные наиболее важные запросы, предоставлять всем процессам равные возможности, либо обслуживать максимально возможное количество процессов и наиболее полно использовать ресурсы.

Оставить комментарий