IBM/370的内存保护方案该如何理解?

4

当我在阅读《操作系统概念》(第七版)时,遇到了一个问题,让我感到困惑:

在IBM/370中,通过使用键来提供内存保护。一个键是一个4位的数量。每个2K的内存块都有一个与之关联的键(存储键)。CPU也有一个与之关联的键(保护键)。只有当两个键相等或其中任何一个为零时,才允许存储操作。以下哪种内存管理方案可以成功地与此硬件一起使用?

a. 裸机

b. 单用户系统

c. 具有固定进程数的多程序系统

d. 具有可变进程数的多程序系统

e. 分页

f. 分段

我对此有些疑问:这些键是如何计算的?为什么除了第一种方式看起来已经很安全之外,还提供了“任一为零”的另一种方式?(我的意思是,“任一为零”用于什么情况下,何时“任一为零”比匹配两个键以查看它们是否相同更有效。)


内核计算了这些密钥。 - Basile Starynkevitch
@BasileStarynkevitch 我还有一些其他的问题:如果两个块具有相同的键,该怎么办?在使用这样的硬件时,我们应该注意什么? - BecomeBetter
基本上,该系统仅限于15个同时运行的“用户”进程,尽管内核当然可以“交换”键(以适度的代价)以启用更多进程的时间分片(我想该系统可能已经为“隐藏”页面保留了一个键值,使其对所有进程不可见)。分页或分段与存储键方案基本上无关。 - Hot Licks
允许具有零键的进程可以访问任何地方,这会使内核/操作系统可以访问所有RAM。允许从任何进程访问具有零键的页面可以启用“共享”内存,尽管我不知道在没有单独的写保护标志(可能存在或不存在)的情况下,这有多实用,并且这个“特性”可能只是零进程键方案的一个副产品。 - Hot Licks
1个回答

0

免责声明:这不是一个有根据的答案,只是个人观点

"either is zero" 似乎可以启用以下场景:

  1. CPU 当前持有零保护密钥,因此在上帝/根/内核模式下无限制运行
  2. 由零密钥保护的内存块意味着任何人都可以访问它,而不需要任何官僚手续,它被“公共领域许可证”覆盖

关于操作系统如何计算这些密钥的答案需要进行一些考古工作。起点:

IBM系统参考库,IBM System/360操作原理

第17页

系统结构 → 保护特性

...当存储保护特性被安装时,尝试修改存储器的行为将被监控... 提供了两个指令-SET STORAGE KEYINSERT STORAGE KEY,用于分配和检查密钥中的代码。同一代码可以在许多密钥中使用。

用户对存储器的访问权由四位保护密钥标识。对于CPU引起的引用,使用当前PSW中的保护密钥;通过通道访问由分配给相关I/O操作的保护密钥控制...

另请参阅:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接