Основные виды ресурсов вычислительной системы и способы их разделения


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