如果一个应用程序被运行两次那么是否在操作系统中就有两个独立的进程存在?

在看《深入浅出MFC》这本书的时候,书上有句话说:“在windows3.x时代,窗口类只需注册一次,即可供同一程序的后续每一个实例使用(之所以能够如此,是因为所有进程同在... 在看《深入浅出MFC》这本书的时候,书上有句话说:“在windows 3.x时代,窗口类只需注册一次,即可供同一程序的后续每一个实例使用(之所以能够如此,是因为所有进程同在一个地址空间”
我的问题是:什么叫应用程序的实例?我的理解是一个包含应用程序的进程。
如果这样的话,同一个应用程序被运行两次比方说打开两个记事本程序是不是就应该有两个独立的进程存在,那括号里说的所有的进程同在一个地址空间又怎么理解?因为据我所知每个进程有自己独立的地址空间的。难道是在早期的windows版本中地址空间是共享的这个意思?
展开
 我来答
hoarymarmot
2011-12-04 · TA获得超过1481个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:216万
展开全部
是的,一般来说,每个进程是拥有自己独立的存储空间,那怕它们是同一个程序的多次执行。
但其实每个进程所占用的空间其实包含了代码段,数据段,堆栈段等。这些用途不同的存储空间是可以分别进行管理的,这也是段式内存管理的一个重要目标。这直接导致了不同的进程间可以拥有不同的数据内容(比如写字板里不同的文本),但它们可以共用一个代码段,因为这一部分不会因为运算的数据不同而有任何变化。
其实在Windows里,dll动态链接库也是这个思想,一些函数功能和它的代码部分,甚至在程序执行时并不装入内存,只有当程序运行到需要调用他们时才会被动态的真正装入内存,同时只装入内存一次,如果再有其它程序也需要调用这个dll,那么它们会共享这部分代码段,从而能有效的提高内存的使用,减少浪费。尤其是很多操作系统的底层调用,比如用于处理图形界面的显示等功能就可能被所有的图形界面程序用到,这时就可以大大提高内存的利用率。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式