操作系统是怎么管理软件的?

虚拟内存

是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

个人理解:

1、操作系统需要知道软件的安装路径(具体到哪个文件夹下)。安装jdk时,需要配置环境变量(就是告知操作系统jdk的路径)。

安装软件不用说了,不懂,总之,是把软件放到外存储器硬盘上。

2、用户点击某个软件的exe文件时,

操作系统会把该软件的可执行二进制文件(就是二进制指令)加载到内存中。

在这期间,操作系统:(1)、为该软件开启了一个进程,并且分配了单独的内存空间。并通过虚拟内存技术来管理这个内存空间。

大概就是为这个软件分配了多少页的内存,页号+行号(虚拟内存地址),映射对应了内存中一个绝对地址。

猜想,操作系统既然管理内存,那这个映射关系表,操作系统当然会记录下来。


软件的界面是如何展示给用户的? 界面当然是软件开发者写的,而展示这个界面(执行界面代码,并输出到显示器),大概都是操作系统做的。

3、当用户点击该软件的某个命令时,操作系统做了什么?

在这期间(1)、会有一个中断,操作系统切换到该进程。

(2)、首先一个常识,命令应该都是一个函数方法,是由一堆二进制机器码组成的。有开始代码,和结束代码。

操作系统,应该知道该命令的虚拟内存地址,然后根据映射关系表,找到绝对内存地址(开始代码),并把这个地址放到address  count中,

然后,cpu按照程序执行。

你可能感兴趣的:(操作系统是怎么管理软件的?)