【发布时间】:2012-03-10 17:46:41
【问题描述】:
我有一个关于进程执行与分配的内存有关的问题。假设我有两个进程,P1 和 P2。如果 P1 分配了大块内存,只为 P2 留下了很少的可用内存,现在如果我启动 P2,P2 会在不对 P1 的内存进行任何更改的情况下运行吗?还是操作系统会从 P1 中调出一些内存以为 P2 创造空间?为了我的清楚,请您回答这些问题。
谢谢, 拉克什。
【问题讨论】:
我有一个关于进程执行与分配的内存有关的问题。假设我有两个进程,P1 和 P2。如果 P1 分配了大块内存,只为 P2 留下了很少的可用内存,现在如果我启动 P2,P2 会在不对 P1 的内存进行任何更改的情况下运行吗?还是操作系统会从 P1 中调出一些内存以为 P2 创造空间?为了我的清楚,请您回答这些问题。
谢谢, 拉克什。
【问题讨论】:
有两种情况:-
如果不支持分页,我们立即为整个进程分配内存:
假设有两个进程并涉及轮询调度。然后,当 P1 的时间片结束时,如果没有足够的内存供 P2 使用,则将 P1 换出到后备存储并带入 P2。
如果支持分页和虚拟内存:
现在两个进程都将根据优先级或大小为它们分配帧。如果没有空间,将遵循全局或本地页面替换算法。
【讨论】: