Рейтинг:3

Применяет ли z/OS защиту памяти между процессами одного и того же пользователя?

флаг za

Часто указывается, что у каждого пользователя есть собственное (виртуальное) адресное пространство в z/OS; это говорится так, как будто это хорошо, и я полагаю, что это сравнивается с реальным образом жизни. Но в большинстве современных систем я привык к тому, что большинство процессов (или заданий, как я полагаю, на языке z/OS) имеют собственное адресное пространство. Такой подход Unix на первый взгляд кажется более безопасным.

Тем не менее, у меня есть слышал, как это утверждалось что задания z/OS также получают свое собственное адресное пространство, но я не видел никакой официальной документации по этому поводу. Конечно, если пользователь может запускать только одно задание за раз (я это не проверял), то, конечно, это не будет проблемой. (Кроме того: традиционно z/OS должна была использоваться для пакетной обработки, так что это может быть разумным предположением. Но на дворе 2021 год, и, возможно, все изменилось, поэтому было бы неплохо знать об ограничениях заданий для каждого пользователя. .)

Рейтинг:3
флаг us

Ваш первый абзац не ясен, поскольку он кажется противоречивым.

В IBM Z у вас есть аппаратное обеспечение, а затем операционная система. Аппаратное обеспечение имеет набор функций, позволяющих использовать отдельные адресные пространства, а виртуальное хранилище каждого из них защищено от доступа к данным других пользователей. Есть некоторые предостережения, поскольку аппаратное обеспечение IBM Z использует ключ защиты хранилища для дополнительной идентификации того, как хранилище защищено. Клавиши могут находиться в диапазоне от 0 до 15 (F), а клавиши ниже 8 зарезервированы для ОС. z/OS использует эту функцию таким образом, что состояние проблемы (пользовательские программы) запускается в ключе 8 в z/OS. Аппаратное обеспечение также обеспечивает защиту хранилища, так что часть хранилища доступна для чтения всеми адресными пространствами (обычно памятью ОС), а часть защищена от выборки, что означает, что для чтения данных требуется правильный ключ. В целом, это довольно полный набор возможностей.

В z/OS существуют адресные пространства, которые имеют собственную виртуальную память, независимую и недоступную (контролируемым образом) от других процессов. Адресные пространства могут содержать JOB (управляемый JES) или системную задачу (Started Task), … в каждом адресном пространстве может быть несколько потоков выполнения.

Тем не менее, вся эта сложность основана на том, что z/OS является общей моделью системных ресурсов, которая отличается от Linux. Linux блокирует свое ядро ​​и контролирует доступ через системные вызовы. На самом деле это делает z/OS высокоэффективной, но также является ее ахиллесовой пятой, поскольку когда что-то идет не так, это может сказаться на всех процессах.

Платформа достаточно надежна, разработана с использованием аппаратного обеспечения и операционных систем для защиты данных и доступа. Тем не менее, операционные системы (все они) написаны склонными к ошибкам людьми, и любую из них можно взломать. z/OS, вероятно, сложнее, чем Linux или Windows.

флаг za
Спасибо за информативный ответ - вы сделали все возможное, и я ценю это, поскольку информация не всегда доступна. Похоже, что существует две степени разделения адресов: на аппаратном уровне (для пользователей) и на уровне ОС (для процессов). Может быть, я ошибся. Кроме того, я перечитал свой вопрос и не заметил противоречия, поэтому, если бы вы могли уточнить, это может помочь прояснить ситуацию (и я попытаюсь прояснить свой вопрос).
Kevin McKenzie avatar
флаг vn
@bbarker Я думаю, что часть проблемы в том, что вы не понимаете модель процесса. В z/OS существуют адресные пространства. Каждое задание имеет собственное адресное пространство.У каждого вошедшего в систему пользователя есть собственное адресное пространство, и отдельное адресное пространство может быть создано, когда пользователь выполняет команду, или задача/поток может выполняться в одном и том же адресном пространстве, в зависимости от того. Запущенные задачи (например, демоны) запускаются в своих собственных адресных пространствах. И аппаратное, и программное обеспечение обеспечивают разделение памяти на разных уровнях.
Kevin McKenzie avatar
флаг vn
Внутри адресного пространства есть разные разделы виртуальной памяти. Некоторые из них являются общими для всех адресных пространств, поэтому все они имеют одинаковое представление о мире. Доступ к этому хранилищу контролируется ключами хранилища. Таким образом, на аппаратном уровне принудительно установлено, что процесс состояния проблемы может видеть определенную информацию, но не изменять ее.
Kevin McKenzie avatar
флаг vn
Все это задокументировано; Я бы предложил начать с азбуки системного программирования или, для хардкорных, с принципов работы.
флаг za
Отлично выглядящие ресурсы - в ABC я нашел эту цитату: «Существует по крайней мере одно адресное пространство для каждого выполняемого задания и одно адресное пространство для каждого пользователя, вошедшего в систему через TSO/E». Я думаю, это может объяснить мое замешательство - мне было непонятно, зачем пользователю нужно адресное пространство, если оно уже есть у процессов, но, похоже, это относится не к пользователю как таковому, а к пользовательскому сеансу TSO/E. Подобно (но, вероятно, сильно отличается) пользовательскому процессу оболочки в ОС Unix.
флаг us
@bbarker Это был раздел: «Но в большинстве современных систем я привык к тому, что большинство процессов (или заданий, на языке z/OS, я полагаю) имеют собственное адресное пространство. Этот подход Unix кажется строго более безопасным на первый взгляд. " Это была часть «Этот подход Unix», так как вы, вероятно, сделали математику в своей голове о том, как Unix выполняет процессы и управление памятью.
флаг us
@bbarker В ответ на комментарий к ABC. Адресное пространство — это самый большой контейнер, и в нем можно разместить множество процессов. Таким образом, большое количество адресных пространств означает большое разделение. TSO похож на пользователя, который входит в систему и использует оболочку. Оттуда возможно множество процессов/потоков выполнения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.