Страница: 8/11
Основные виды ресурсов.
1) Процессорное время
2) Память. Оперативная память может быть разделена одновременным способом, в этом сл-е в памяти может располагаться одновременно несколько процессов, либо целиком, либо текущие фрагменты; и попеременно – в разные моменты времени она может предоставляться для различных вычислительных процессов. В каждый конкретный момент времени процессор при выполнении вычислений обращается опять к ограниченному числу ячеек оперативной памяти. С этой точки зрения полезно разделять память для возможно большего числа идущих параллельно процессов. С другой стороны, как правило, чем больше оперативной памяти может быть свободно для конкретного текущего процесса, тем лучше условия его выполнения. Поэтому проблема эффективного разделения оперативной памяти между параллельно выполняемыми процессами является одной из самых актуальных. Сие явление называют также балансировкой загрузки.
Когда говорят о внешней памяти (магнитные диски, винт), то собственно сама память и доступ к ней разными видами ресурсов. каждый из этих ресурсов может предоставляться независимо от другого. Но для работы с внешней памятью необходимо иметь оба этих ресурса. Внешняя память может разделяться одновременно, а доступ к ней разделяется попеременно (параллельно). Если говорить о внешних устройствах, то оне как правило могут разделяться параллельно, если используются механизмы прямого доступа. если устройство работает с последовательным доступом оно не может считаться разделяемым ресурсом (принтер, стример).
3) Программные модули. Системные программные ресурсы. Могут быть разделены между выполняющимися процессами. Программные модули могут быть однократно исполняемыми (исполняются правильно только один раз, и являются неделимыми ресурсами, более того их вообще можно не рассматривать как ресурс системы. Такие модули используются, как правило, при загрузке системы.) и многократно исполняемыми. Многократно исполняемые программные модули могут быть непривилегированные, привилегированные и реентерабельные.
Привилегированный программный модуль работает в так называемом привилегированном режиме, при отключенной системе прерываний, и ничто не может нарушить естественный порядок вычислений. В результате программный модуль выполняется до конца. после чего он может быть вызван из другой задачи на исполнение. Такой модуль можно рассматривать как попеременно разделяемый ресурс.
Структура модуля:
Отключение прерываний |
Тело программного модуля |
Включение прерываний |
Непривилегированные модули – обычные программные модули. которые могут быть прерваны во время своей работы. Следовательно их нельзя в общем случае считать разделяемыми, потому что если после прерывания вычисления такого модуля запустить его исчо раз по требованию вычислительно процесса, то промежуточные расчеты для прерванных вычислений могут быть потеряны.
Реентерабельные программные модули (reenter able) допускают повторное многократное прерывание своего исполнения и повторный их запуск при обращении из других задач. Для чего такие программные модули должны быть созданы таким образом, чтобы было обеспечено сохранение промежуточных вычислений для прерываемых вычислений и возврат к ним, когда вычислительный процесс возвращается к прерванной ранее точке.
Это может быть реализовано двумя способами с помощью статических методов определения памяти и динамических методов. Основной, часто используемый метод – метод динамической памяти. (рисунок нарисуй) 1) Привилегированный модуль, который заказывает в системной области памяти блок ячеек для хранения текущих промежуточных данных. 2) Основное тело реентерабельного программного модуля, которое может быть прервано работает в непривилегированном режиме. 3) Привилегированный модуль освобождающий в системной области памяти блок памяти, используемой для хранения промежуточных данных. Системная область памяти используется динамическим образом для буферизованного ввода/вывода и реентерабельной обработки.
Реферат опубликован: 26/02/2010