进程独立

发布于 2022-09-14 22:54:08 字数 271 浏览 9 评论 9

在目前的操作系统里(如:linux,BSD,winxp等),实现进程的独立(我所理解的进程独立是进程拥有自己的地址空间和相关的访问机制)是通过硬件实现的。是这样吗?如果是这样的话,那我相信如果一个进程非法访问了另一个进程(如:进程A非法将数据写入了进程B),系统一定报硬件错误。我查了一下资料,应该会报一个叫做“#GP”的错误。而这个错误的产生过程通常是跟特权级相关联的。如果以上猜测都是对的话,那是否可以说目前的操作系统的“进程独立”是通过特权级保护(硬件)去实现的?如果以上说法都是对的,那如何由软件的方式(取代硬件的方式)实现进程独立?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

冷夜 2022-09-19 13:43:36

“进程能执行的服务都是定义好了的“,我相信是硬件定义好的,以保护进程代码和数据。现在是要将这套机 ...
kallytin 发表于 2010-11-24 10:42

    没有硬件支持的情况下,除了反复复制,没有第二条出路

悲凉≈ 2022-09-19 12:56:35

进程能执行的服务都是定义好了的,所以不会有非法访问另一个进程这样的问题,就像关在笼子里的老虎不用假设 ...
flw2 发表于 2010-11-24 10:15

“进程能执行的服务都是定义好了的“,我相信是硬件定义好的,以保护进程代码和数据。现在是要将这套机制(硬件)去掉,用纯软件的方式实现该如何.....

江心雾 2022-09-19 11:37:52

进程能执行的服务都是定义好了的,所以不会有非法访问另一个进程这样的问题,就像关在笼子里的老虎不用假设她会随便咬人一样

我做我的改变 2022-09-19 10:19:32

这些所谓的检查都是要硬件支持的,否则就只能反复复制数据一条出路了
cjaizss 发表于 2010-11-24 09:22

你提到的检测是我最头痛的事情,目前我也没有头绪,但我知道这个方式已有系统实现了(但它具体是任何实现,目前还不知道),且效率很高(应该不是通过数据复制实现的)........

素染倾城色 2022-09-19 09:36:17

为何要复制数据?我的理解是,在不同进程之间切换的话,要不断的保护现场和恢复现场(寄存器,堆 ...
kallytin 发表于 2010-11-24 09:10

    这些所谓的检查都是要硬件支持的,否则就只能反复复制数据一条出路了

墨离汐 2022-09-19 08:43:08

为何要复制数据?我的理解是,在不同进程之间切换的话,要不断的保护现场和恢复现场(寄存器,堆 ...
kallytin 发表于 2010-11-24 09:10

    那你如何保证数据独立呢?在没有硬件级的支持下

ゃ人海孤独症 2022-09-18 12:48:03

MMU来模拟切换,通过软件理论上也可不断切换,但软件的不断复制数据实在太慢,因此根本不现实.
你试想,为什么 ...
cjaizss 发表于 2010-11-24 08:50

    为何要复制数据?我的理解是,在不同进程之间切换的话,要不断的保护现场和恢复现场(寄存器,堆栈等),并不需要复制数据吧(只需要告诉进程的起始地址(物理地址)及作相应的边界检测和增加访问机制就应该差不多了,是吗?)......

何以笙箫默 2022-09-17 06:52:09

MMU来模拟切换,通过软件理论上也可不断切换,但软件的不断复制数据实在太慢,因此根本不现实.
你试想,为什么软件实现慢呢,比如每一个进程有着独立的2G空间,没有硬件级的支持,纯软,怎么办呢?只好在这个进程不用的时候,把其纯2G的内存数据压到固定存储上,每当进程切换的时候,就必须要把所有的2G数据都先保存,然后再调2G数据出来,这个,太恐怖了

甜心 2022-09-16 21:57:54

回复 1# kallytin

    顶一下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文