学过底层的朋友 或者看过我那一篇“深度理解指令集”文章都应该知道CPU运行时要先通过南桥芯片把磁盘(硬盘)里的数据传输到内存中去,CPU才能通过内部前端总线对内存里的数据进行操作
首先南桥芯片通过外部前端总线与磁盘交换数据,这个交换过程是磁盘的磁头和前端总线进行交互工作的而非磁盘磁头会把磁盘里的磁信号转换成电信号在通过前端总线传输到内存中去。
加载到内存后实际上就是入栈/堆操作从硬盘加载到内存是需偠耗费一点时间的,要是每次都从硬盘上读取的话那么速率会降低所以CPU不会那么傻每次都从硬盘上读取,当你第一次读取这个数据时内存芯片会对这个数据在内存中做记录下一次在加载时CPU首先到内存中去找,找不到在到硬盘里面去找!
当你从硬盘运行一个文件时这个文件里的数据会被加载到内存中去加载到内存中的数据叫程序,当你关闭这个程序时它在内存中的数据也就随之被释放了不过当你这个程序在加载到内存时内存芯片会对这个初始数据做记录,保存在内存里下次在执行这个程序时直接把记录的数据拷贝过来用就可以了,所以比第一次运行要快许多!
当你内存里记录数据满了时比如我打开a软件后打开了b软件那么内存里面已经记录了a、b软件的初始数据在打開c软件时内存已经满了无法记录了,那么内存就会删除a软件的初始数据来记录c软件的初始数据相反如果在起初加载到内存中时内存就已經满了,那么内存芯片也会删除a软件的初始记录数据!