操作系统是如何实现外存中的程序被载入内存并被CPU执行的
1个回答
关注
展开全部
是,但并不完全是。操作系统想要运行,将必要的系统文件加载进内存是必需的,实际上无论是运行单个程序还是运行操作系统,加载进内存都是必需的。这是存储原理所决定的。操作系统通常都安装在硬盘上,硬盘属于外存,而外存是没法与cpu进行通信的,只有内存(ROM RAM Cache)才能和cpu直接通信,内存中只有RAM是可读写的,所以硬盘上的程序需要先加载进内存,然后才能被cpu识别并运行。此外由于内存直接和CPU打交道,所以内存的速度肯定是比外存快的,如果外存中的程序直接让cpu识别并运行的话,那我估计程序运行肯定得慢死。但是不可能做到将所有的系统文件都加载进内存,只能按需加载,因为现在的操作系统动辄就是几十GB,如果全加载进内存的话,16GB的内存肯定就爆满了,可能32GB内存都不一定够用。将必要的系统文件(内核,基础组件等)加载进内存,就已经可以实现系统的正常运行了,开机完成后再打开其他组件的时候再按需加载。
咨询记录 · 回答于2022-12-26
操作系统是如何实现外存中的程序被载入内存并被CPU执行的
是,但并不完全是。操作系统想要运行,将必要的系统文件加载进卖则内存是必需的,实际上无论是运行单个程序还是运行操作系统,加载进内存都是必需的。这是存储原理所决定的。操作系统通常都安装在硬盘上,硬盘属于外存,而外存是没法与cpu进行通信的,只有内存(ROM RAM Cache)才能和cpu直接通信,内存中只有RAM是可读写的,所以硬盘上的程序需要先加载进内存,然后才能被cpu识别并运行。此外由于内存直接和CPU打交道,所以内存的速度肯定是比外存快的,如果外存中的程序直接让cpu识别并运行的话,那我估计程序运行肯定得慢死。但是不可能做到将所有的系统文件都加载进内存,只能按需加载,因为现在的操作系统动辄就是几十GB,如果全加载进猜困内存的话,16GB的内存肯定就爆满了,可能32GB内存都不一定够中兆棚用。将必要的系统文件(内核,基础组件等)加载进内存,就已经可以实现系统的正常运行了,开机完成后再打开其他组件的时候再按需加载。
是,但并不完全是。操作系统想要运行,将必要的系统文件加载进卖则内存是必需的,实际上无论是运行单个程序还是运行操作系统,加载进内存都是必需的。这是存储原理所决定的。操作系统通常都安装在硬盘上,硬盘属于外存,而外存是没法与cpu进行通信的,只有内存(ROM RAM Cache)才能和cpu直接通信,内存中只有RAM是可读写的,所以硬盘上的程序需要先加载进内存,然后才能被cpu识别并运行。此外由于内存直接和CPU打交道,所以内存的速度肯定是比外存快的,如果外存中的程序直接让cpu识别并运行的话,那我估计程序运行肯定得慢死。但是不可能做到将所有的系统文件都加载进内存,只能按需加载,因为现在的操作系统动辄就是几十GB,如果全加载进猜困内存的话,16GB的内存肯定就爆满了,可能32GB内存都不一定够中兆棚用。将必要的系统文件(内核,基础组件等)加载进内存,就已经可以实现系统的正常运行了,开机完成后再打开其他组件的时候再按需加载。
如果是大明Win7及之前的Windows版本的话,进入安全模式会告仿伏显示加载进内存的文件列袜携表,当然了正常启动的话加载进内存的系统文件要更多一些。
请定义一个过程,求消迟某一个数值的平方a的平方,再进扒桥猜一步求解5的平方,(需要模拟给出计算过程)而春型后请描述这一条程序指令的实现过程
/// /// 求一个数的平方 /// public double SquareNum(double num) { 族悉 return num * num; } private void button1_Click(object sender, EventArgs e) { string strNum = tb_InputNum.Text;//记录TextBox文本框中的内容 if(strNum!="")//判断是否输入了数据 { 禅穗陵 try 贺戚 { tb_Result.Text = SquareNum(double.Parse(strNum)).ToString();//调用自定义方法进行求平方运算 } catch