Системное программное обеспечение
Вид материала | Документы |
СодержаниеВопрос №2. Вычислительный процесс и ресурсы. Виды ресурсов Мультипрограммирование: задачи, процессы, потоки. |
- Методика рейтингового контроля знаний студентов по дисциплине «Системное программное, 42.76kb.
- Методические указания по выполнению курсовых работ по дисциплине «Системное программное, 710.3kb.
- М. В. Ломоносова Факультет вычислительной математики и кибернетики Н. В. Вдовикина,, 2124.49kb.
- Рабочая учебная программа по дисциплине «Системное программное обеспечение» Направление, 78.8kb.
- Методические указания и контрольные задания по дисциплине системное программное обеспечение, 196.97kb.
- Программа вступительного экзамена, 67.56kb.
- Программное обеспечение ЭВМ, 209.59kb.
- Системное программное обеспечение, 874.72kb.
- Задания для студентов гр. Пз-21 Составил: к ф. м н. Цветков, 170.59kb.
- Системное программное обеспечение, 30.48kb.
Вопрос №2. Вычислительный процесс и ресурсы. Виды ресурсов
Понятия вычислительного процесса и ресурса.
Понятие последовательного вычислительного процесса, или просто процесса, является одним из основных при рассмотрении операционных систем. Последовательный процесс, иногда называемый задачей (task), - это отдельная программа с ее данными, выполняющаяся на последовательном процессоре. Напомним, что под последовательным понимаем такой процессор, в котором текущая команда выполняется после завершения предыдущей. В современных процессорах мы сталкиваемся с ситуациями, когда возможно параллельное выполнение нескольких команд. Это делается для повышения скорости вычислений. В этих процессорах параллелизм достигается двумя основными способами – организацией конвейерного механизма выполнения команды и созданием нескольких конвейеров. Концепция процесса предполагает два аспекта: во-первых, он является носителем данных и, во-вторых, он собственно и выполняет операции, связанные с обработкой этих данных. В качестве примеров процессов (задач) можно назвать прикладные программы пользователей, утилиты и другие системные обрабатывающие программы. Процессом может быть редактирование какого-либо текста, трансляция исходной программы, ее компоновка, исполнение. Причем трансляция какой-нибудь исходной программы является одним процессом, а трансляция следующей исходной программы – другим процессом, поскольку транслятор как объединение программных модулей здесь выступает как одна и та же программа, но данные, которые он обрабатывает, являются разными. Концепция процесса преследует цель выработать механизмы распределения и управления ресурсами. Понятие ресурса, так же как и понятие процесса, является, пожалуй, основным при рассмотрении операционных систем. Термин ресурс обычно применяется по отношению к многократно используемым, относительно стабильным и часто недостающим объектам, которые запрашиваются, задействуются и освобождаются в период их активности. Другими словами, ресурсом называется всякий объект, который может распределяться внутри системы. Ресурсы могут быть разделяемыми, когда несколько процессов используют их одновременно (в один и тот же момент времени) или параллельно (попеременно в течение некоторого интервала времени), а могут быть и неделимыми. При разработке первых систем ресурсами считались процессорное время, память, каналы ввода-вывода и периферийные устройства. Однако очень скоро понятие ресурса стало гораздо более универсальным и общим. Различного рода программные и информационные ресурсы также могут быть определены для системы как объекты, которые могут разделяться и распределяться и доступ к которым необходимо соответствующим образом контролировать. В настоящее время понятие ресурса превратилось в абстрактную структуру с целым рядом атрибутов, характеризующих способы доступа к этой структуре и ее физическое представление в системе. Более того, помимо системных ресурсов, о которых мы сейчас говорили, ресурсами стали называть и такие объекты, как сообщения и синхросигналы, которыми обмениваются задачи. В первых вычислительных системах любая программа могла выполняться только после полного завершения предыдущей. Все подсистемы и устройства компьютера управлялись исключительно центральным процессором. Центральный процессор осуществлял и выполнение вычислений, и управление операциями ввода-вывода данных. Соответственно, пока осуществлялся обмен данными между оперативной памятью и внешними устройствами, процессор не мог выполнять вычисления. Введение в состав вычислительной машины специальных контроллеров позволило совместить во времени (распараллелить) операции вывода полученных данных и последующие вычисления на центральном процессоре. Однако все равно процессор продолжал часто и долго простаивать, дожидаясь завершения очередной операции ввода-вывода. Поэтому было предложено организовать так называемый мультипрограммный, или мультизадачный, режим работы вычислительной системы.
Мультипрограммирование: задачи, процессы, потоки.
Вкратце суть мультипрограммного режима работы заключается в том, что пока одна программа (один вычислительный процесс, как мы теперь говорим) ожидает завершения очередной операции ввода-вывода, другая программа (а точнее, другая задача) может быть поставлена на решение. Это позволяет более полно использовать имеющиеся ресурсы (например, центральный процессор начинает меньше простаивать, как это видно из рисунка) и уменьшить общее (суммарное) время, необходимое для решения некоторого множества задач. При мультипрограммировании повышается пропускная способность системы, но отдельный процесс никогда не может быть выполнен быстрее, чем если бы он выполнялся в однопрограммном режиме (всякое разделение ресурсов замедляет работу одного из участников за счет дополнительных затрат времени на ожидание освобождения ресурса).
t
а) Однопрограммный режим работы
t
б) Мультипрограммный режим работы
Рис. 1. Однопрограммный и мультипрограммный режимы работы.
Итак, операционная система может поддерживать мультипрограммирование (многопроцессность). В этом случае она должна стараться эффективно использовать имеющиеся ресурсы путем организации к ним очередей запросов, составляемых тем или иным способом. Это требование достигается поддерживанием в памяти более одного вычислительного процесса, ожидающего процессор, и более одного процесса, готового использовать другие ресурсы, как только последние станут доступными. Общая схема выделения ресурсов такова. При необходимости использовать какой-либо ресурс (оперативную память, устройство ввода-вывода, массив данных и т. п.) вычислительный процесс (задача) путем обращения к супервизору (supervisor) операционной системы посредством специальных вызовов (команд, директив) сообщает о своем требовании. При этом указывается вид ресурса и, если надо, его объем. Например, при запросе оперативной памяти указывается количество адресуемых ячеек, необходимое для дальнейшей работы. Команда обращения к операционной системе передает ей управление, переводя процессор в привилегированный режим работы, если такой существует. Большинство компьютеров имеют два (и более) режима работы: привилегированный (режим супервизора) и пользовательский. Ресурс может быть выделен вычислительному процессу (задаче), обратившемуся к операционной системе с соответствующим запросом, если:
• ресурс свободен и в системе нет запросов от задач более высокого приоритета к этому же ресурсу;
• текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;
• ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).
Получив запрос, операционная система либо удовлетворяет его и возвращает управление задаче, выдавшей данный запрос, либо, если ресурс занят, ставит задачу в очередь к ресурсу, переводя ее в состояние ожидания (блокируя). Очередь к ресурсу может быть организована несколькими способами, но чаще всего она реализуется с помощью списковой структуры. После окончания работы с ресурсом задача опять с помощью специального вызова супервизора (посредством соответствующей команды) сообщает операционной системе об отказе от ресурса, либо операционная система забирает ресурс сама, если управление возвращается супервизору после выполнения какой-либо системной функции. Супервизор операционной системы, получив управление по этому обращению, освобождает ресурс и проверяет, имеется ли очередь к освободившемуся ресурсу. Если очередь есть, то в зависимости от принятой дисциплины обслуживания и приоритетов заявок он выводит из состояния ожидания задачу, ждущую ресурс, и переводит ее в состояние готовности к выполнению, после чего либо передает управление ей, либо возвращает управление задаче, только что освободившей ресурс. При выдаче запроса на ресурс задача может указать, хочет ли она владеть ресурсом монопольно или допускает совместное использование с другими задачами. Например, с файлом можно работать монопольно, а можно и совместно с другими задачами. Если в системе имеется некоторая совокупность ресурсов, то управлять их использованием можно на основе некоторой стратегии. Стратегия подразумевает четкую формулировку целей, следуя которым можно добиться эффективного распределения ресурсов. При организации управления ресурсами всегда требуется принять решение о том, что в данной ситуации выгоднее: быстро обслуживать отдельные наиболее важные запросы, предоставлять всем процессам равные возможности или обслуживать максимально возможное количество процессов и наиболее полно использовать ресурсы.
Виды ресурсов.
Ресурсы могут быть разделяемыми и неделимыми. Одним из важнейших ресурсов в компьютерной системе является процессор, вернее процессорное время. Это делимый ресурс и существует много различных способов его деления между задачами. Следующим по значимости ресурсом является оперативная память (ОП). Этот ресурс может быть распределен разными способами. В ОП могут располагаться несколько процессов одновременно, но они могут использовать ОП и попеременно. Внешняя память (например, память на винчестере) содержит данные к этим данным – это один вид ресурса, а сама внешняя память – это другой вид ресурса. Для работы с внешней памятью нужно иметь оба ресурса. Но эти ресурсы могут распределяться операционной системой по-разному. Внешняя память может разделяться одновременно между разными задачами, а доступ к ней попеременно. К неразделяемым видам ресурсов можно отнести принтеры, графопостроители, стримеры (накопители на магнитных лентах), т.к. две задачи не могут выводить результаты расчетов попеременно (например, через слово) на лист бумаги.
Программные модули (прежде всего системные) являются важным видом ресурса. Они могут быть однократно используемыми и многократно используемыми. Однократно используемые модули – это такие, которые правильно могут быть использованы только один раз, т.к. в процессе своего исполнения они могут «испортить» входные данные. Такие модули не могут быть делимыми ресурсами и используются при загрузке ОС. Т.к. во внешней памяти они не модифицировались, то при следующей загрузке ОС их можно использовать повторно. Многократно используемые программные модули бывают трех видов: привилегированными, непривилегированными и реентерабельными. Привилегированные программные модули – это такие программные модули, которые работают при отключенной системе прерываний и, чтобы не случилось, они проходят до конца. Затем этот модуль может быть вызван другой задачей. В начальной секции таких модулей выключается система прерываний, а в конце система прерываний включается. Непривилегированные программные модули - это такие программные модули, которые могут быть прерваны во время своей работы. Это неразделяемые ресурсы. Если этот модуль прерван при выполнении какой-либо задачи, то промежуточные данные его запоминаются, и они не могут использоваться с другой программой. Реентерабельные программные модули - это такие программные модули, которые могут запоминать свое состояние при прерывании для определенной задачи и затем начинать выполнение с этой точки при возобновлении прерванной задачи. Для другой задачи этот модуль может вызываться повторно, но при прерывании запоминает свое состояние в другом отведенном для этого месте.
Наконец, имеются и информационные ресурсы, то есть в качестве ресурсов могут выступать данные. Информационные ресурсы могут существовать как в виде переменных, находящихся в оперативной памяти, так и в виде файлов. Если процессы используют данные только для чтения, то такие информационные ресурсы можно разделять.