Пул памяти, (не путать с пулом вспомогательной памяти!) — это средство резервирования для подсистемы некоторого объема основной (оперативной) памяти. В основной памяти может быть размещено до 16 пулов памяти, один из которых всегда зарезервирован машиной. Пул памяти — это часть памяти, куда осуществляется динамическая подкачка страниц процессов, связанных с этим пулом. Например, один пул памяти может быть выделен для всех интерактивных заданий, а другой — для всех пакетных. Такой подход позволяет гарантировать, что пакетное задание не отберет себе страничный фрейм у интерактивного задания, и таким образом не повлияет на время ожидания ответа пользователем. Пакетные задания могут отбирать только страничные фреймы у других пакетных задач из пакетного пула памяти. Пулы памяти определяются в описании подсистемы.
Размеры, число и уровни активности пулов памяти управляются пользователем системы. Таким образом, система может быть настроена так, чтобы обеспечить максимальную производительность именно для данного пользователя. Подобная настройка в AS/400 при помощи различных средств выполняется вручную или автоматически при изменении характера рабочей нагрузки.
С появлением модели процессов ILE, описанной ранее, изменилась и структура задания в AS/400. Как именно — можно понять, сравнив ресурсы приложений, доступные в старой и новой структурах заданий, а также особенности их использования. Как правило, ресурсы приложений для задания включают в себя разделяемые файлы, управление транзакциями и память.
Старая структура задания | Новая структура задания на основе |
модели процессов ILE | |
Разделяемые файлы видимы всем | Разделяемые файлы видимы всем |
прикладным программам задания | прикладным программам задания, |
либо каждое приложение определяет | |
собственное использование файлов | |
Внешние имена — общие на уровне | Область видимости внешних имен — |
задания, а не на уровне приложений | одиночное приложение, то есть каж |
дое приложение задания имеет свое | |
собственное пространство имен для | |
внешних переменных | |
Управление транзакциями | Управление транзакциями осуществ |
осуществляется для всего задания | ляется как на уровне задания, так и |
на уровне приложений | |
Допускается только одна активизация | Допускаются множественные активи |
программы в задании | зации одной и той же программы. |
Каждая активизация имеет собствен | |
ные (защищенные) области памяти | |
Выделяется только одна область | У каждой программы своя собствен- |
статической и автоматической (стек) | ная защищенная статическая, авто- |
памяти и одна область динамической | матическая (стек) и динамическая |
памяти для каждого языка | (куча) память |
программирования |
Как уже упоминалось, первоначально в AS/400 было определено три уровня работы. Самый низкий уровень, под MI, — задача. Процесс «живет» на уровне MI и построен на структуре задач SLIC. Поверх модели процессов MI OS/400 в качестве единицы работы поддерживает задание. Большинство других ОС работают непосредственно с процессами. Но не OS/400. В этом отношении задание в ней — аналог процесса в других ОС.
Полнофункциональное задание обеспечивает лучшие возможности разделения ресурсов и защиты, чем процессы в других ОС; однако, для создания такого задания нужно больше времени. Задание AS/400 можно называть «полновесным».
Приложения, написанные специально для AS/400, обычно соответствуют структуре полнофункционального задания, то есть, исполняются внутри одного задания. Динамическое создание множества заданий для одного приложения не рекомендуется, из-за больших накладных расходов.