Cтраница 1
Распределение основной памяти при мультипрограммировании. [1] |
Динамическая область памяти делится на разделы. В каждый момент времени раздел обслуживает только одно задание. В режиме с постоянным числом задач число разделов ( от 3 до 15) фиксируется при генерации ОС. Тогда же устанавливаются размеры разделов. В режиме с переменным числом задач динамическая область памяти распределяется между разделами не заранее, а в самом процессе обработки заданий, что позволяет лучше использовать ОП и таким образом увеличить коэффициент мультипрограммности. Каждому разделу выделяются определенные периферийные устройства, и за ним закрепляется некоторый класс ( подпакет) заданий. [2]
В другой, динамической области памяти размещаются задания, а также те части управляющей программы, которые используются в данной задаче. [3]
Определяется размером свободной части динамической области памяти. [4]
Чем удобно размещение объектов в динамической области памяти. [5]
Программа системного ввода выполняется в динамической области памяти и может иметь транзитный или резидентный статус. В ОС может одновременно функционировать до трех программ системного ввода, обрабатывающих входные потоки заданий ( поступающих с различных внешних устройств) и заполняющих один и тот же набор данных с системными очередями ввода. [6]
По требованию оператора загружается программа Системный ввод в динамическую область памяти. Ей передается управление для считывания входного потока заданий и формирования Очередей заданий. Управление возвращается Супервизору, который загружает Планировщик в разделы с наибольшим приоритетом, имеющими размеры Планировщика. Управление передается Планировщику, находящемуся в наиболее приоритетном разделе. [7]
Для работы с данными описанным способом прежде всего нужно создать указатель на ячейки динамической области памяти. [8]
Но, в отличие от загрузки управляющей программы MVT, при инициализации ядра MFT динамическая область памяти делится на разделы, размер и количество которых устанавливается при генерации системы. Всего может быть образовано да 52 разделов, из них: до трех разделов для программ системного ввода RDR, до 36 разделов для программ системного вывода WTR, до 15 разделов для программ пользователей. Если программы RDR и WTR помещены в самостоятельные разделы, то они называются резидентными программами, а если в разделы программ пользователя, то транзитными. Каждая подзадача выполняется в том же разделе, что и создавшая ее задача. Каждому разделу присваивается приоритет. Раздел Р0 является разделом с наивысшим приоритетом. Кроме того, разделам присваиваются классы. Разделам, в которых будут находиться резидентные программы системного вывода, присваивается класс W. Разделам, в которых будут находиться системные программы ввода, присваивается класс R. Программы прямого системного вывода DSO обычно размещаются в тех же разделах, что и проблемные программы. Количество программ DSO определяется числом доступных устройств вывода. Разделы проблемных программ пользователя могут быть двух размеров: большие и малые. [9]
В НСС-системах, которые в настоящее время составляют меньшую часть от существующих реализаций, используются, как правило, две основные динамические области памяти. Первая из них представляет собой локальный стек, который фактически соответствует локальному стеку в СС-системах за исключением того, что в каждом фрейме помимо обычных управляющих ячеек предусмотрены локальные ячейки для всех различных переменных из вызываемой процедуры. Второй стек играет вспомогательную роль: в него помещаются явные ( или конкретные) представления структурированных термов, присвоенных ( посредством унификации) в качестве значений локальным переменным. [10]
Общая схема функционирования планировщика заданий. [11] |
Остальные программы СУ 3 - системный ввод ( RDR), системный вывод ( WTR) и инициатор-терминатор ( 1МГТ) - часто объединяемые одним понятием-планировщик-работают в разделах динамической области памяти и выполняют основные функции по обработке входного потока заданий. [12]
При большом объеме данных удобно размещать их в динамической, области памяти. Динамическая область памяти, или kyna ( heap) - это фактически вся память, занимаемая программой, за исключением кода, стека и сегмента данных. Начало и конец кучи указывается специальными переменными модуля System: HeapOrg и HeapEnd соответственно. [13]
Функция возвращает размер указанного фрагмента в байтах. Образ фрагмента удобно хранить в динамической области памяти, то есть результат работы ImagSize может являться входной информацией для процедуры GetMem, которая выделяет указанный объем в верхней области памяти. [14]
В строках 17 и 18 объявляется две переменные-члены, представляющие собой указатели на целочисленные значения. В реальной жизни трудно вообразить, для чего может понадобиться создание переменных-членов как указателей на целочисленные значения. Но в данном случае такие переменные являются отличными объектами для демонстрации методов управления переменными-членами, сохраненными в динамической области памяти. [15]