64 位 Windows 7 系统?能否用简单的话谈谈PC机的整体工作流程

发表时间:2017-12-20 18:56:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《想入手macbook air?MacBookMacBook Pro & MacBook Air咋选择》相关知识。本篇中小编将再为您讲解标题64 位 Windows 7 系统?能否用简单的话谈谈PC机的整体工作流程。

补①张图给 @Rio 吧

下图中任务管理器显示内存占用是 ⑤.④ GB ,但实际上真正占用的只有 ④⑦⑧⑨ MB ,黄色的那部分 “已修改” 也被算作了正在使用了。

补充①下黄色和蓝色部分的区别吧:

黄色部分准确的来说指的是传统意义上的磁盘缓存,这里只存放 “曾经用过” 的数据,也就是说这里的数据都是 “留下来” 的 。

蓝色部分其实也是磁盘缓存,但这里存放的数据是 Windows “猜你想要” 的数据,也就是说这里的数据都是 “取出来” 的。

两者相比较,后者的重要性显然低①些,所以当需要内存的时候,后者会比前者更先释放掉。

---------------②⓪①②-⓪④-①⑧ 补充:

评论中 @冯东 提出了不同的看法

解释得有问题:

绿色:从磁盘中读取到内存中,并且被使用。但是读取到内存之后没有修改。①旦内存不足,这部分可以直接挪作它用,不必写回磁盘。

黄色:从磁盘中读取到内存中,或者被 app 新申请的内存(比如经过 memset 清⓪),被使用。并且其内容被修改过(新申请的都视为被修改过)。①旦内存不足,这部分内容必须 swap 到磁盘上(不包括进程被 kill 时)。黄色的多寡不代表磁盘操作的频繁程度。如果内存没有底到①定限度,系统对待黄色和绿色的行为是①样的(没有引发 paging out)。黄色的也不是 @Rio 说的缓存,蓝色才是。

蓝色:操作系统预测 app 马上会用到的磁盘数据(①般是可执行文件的某部分)。

黄色和绿色都是任何 paging 系统必有的,它们的多少只和 app 的行为有关(除非引发 paging out,这时 swap 黄色的哪部分由系统决定)。蓝色才是 Vista 之后多用的内存部分。

简要说说win③②应用程序的执行(本人认识很浅薄,很可能有错误的描述和表达):

假定你打开的是WoW.exe,首先windows的explorer.exe调用CreateProcess创建进程,创建①个内核对象(这个可以理解成进程的数据结构),然后系统给它分配④GB的虚拟地址空间,CreateProcess开始读取WoW.exe的文件头,载入所需的dll文件和代码以及数据到上面说的那④GB内存中。加载完毕后,NtCreateThread创建①个主线程,然后主线程创建其他的线程执行代码,直到主线程执行ExitProcess()函数。

针对你的问题:

何时放多少数据到缓存,exe中代码和数据是分好多个段存储的并读入内存的,这些段的所需内存长度在exe文件的头部会有描述,操作系统会根据这个描述信息分配内存。

硬件搬至内存需要经过什么,简单说是通过系统总线读取硬盘数据,然后放入内存,中间可能会经过若干低速/高速缓存。

显卡扮演什么角色,何时出场以及显示器相关,首先可以这么理解,CPU对于外部IO设备(例如键盘鼠标打印机)的控制可以理解成对于内存的读写(当然具体有DMA方式,中断方式,IO通道方式等),所以显示器显示什么取决于CPU如何操作显存里面的数据。不过由于现在主板上面有集成显卡或者独立显卡,所以根据显卡驱动程序的分配,图形数据的处理工作是CPU承担①部分,显卡的GPU承担①部分(所谓“图形加速器”),总之处理完毕的数据会写入RAMDAC做数模转换,转换完毕的模拟信号就可以通过VGA口输出到显示器了。

编后语:关于《64 位 Windows 7 系统?能否用简单的话谈谈PC机的整体工作流程》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《Linux学来有什么样用?linux的top命令是如何实现获取到每个线程的cpu占用率等信息》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题