今天网课上(计算机组成原理第一节),老师问了这样一个问题:
双击一个程序图标后,程序是如何运行起来的?
这是我之前都没有思考过的问题,不过听听我们班大佬们的回答,
同学一:编码,加载到CPU
同学二:计算机先找到那个程序,然后开一个进程,然后运行程序机器码
同学二补充:忘了要读到内存去了,不过不一定是程序结束才放出内存,还有可能是其他调度情况
同学三:将程序读到内存,程序有多条指令,然后一直取指令分析指令执行指令
同学四:操作系统双击程序图标开始执行程序,执行期间计算机内部的工作是读取程序存储在硬盘的数据,将其加载在内存里面,一直到程序结束
还有一个更专业的:
操作系统创建进程,分配文件描述符等系统资源,然后将程序可执行文件加载进内存,执行完毕,父进程回收系统资源。
what???我是谁?我在哪?
收获一大波小迷妹、小迷弟,膜拜大佬!!!
老师给你个专业回答!!!!!
双击图标之后程序的运行过程,简单来说:程序首先是存放在硬盘上的,但是,硬盘对于CPU来讲,它属于是一个外设。那么CPU是不能够直接去和外设进行通信的,它需要通过接口。所以呢,存放在硬盘上的这个程序,当我们点击图标之后,操作系统会把其相关的信息从硬盘加载到内存中去。
也就是说,程序运行的时候,是操作系统把它所需要的指令和数据从硬盘加载到内存中。进入内存之后,CPU按照冯诺依曼的思想,从内存里面按顺序去执行指令,直到这个程序所有的指令都执行完为止。