佚名通过本文主要向大家介绍了磁盘内存不足怎么办,内存卡磁盘被写保护,内存或磁盘空间不足,怎么清理磁盘内存,内存或者磁盘空间不足等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:请问,内存上的数据是如何刷新到磁盘等存数设备的?
描述:
操作系统想CPU发出指令,CPU从磁盘去数据到内存,CPU从内存取数据运算,CPU将算好的数据写到内存,然后操作系统再发指令给CPU,CPU从内存取数据存储到磁盘。 这个过程错在哪里?
我不是学操作系统的,一时好奇,望高人指点一二。
解决方案1:
描述:
操作系统数据存储cpu
加载数据的时候和回写数据的时候是不是相似的过程呢?操作系统想CPU发出指令,CPU从磁盘去数据到内存,CPU从内存取数据运算,CPU将算好的数据写到内存,然后操作系统再发指令给CPU,CPU从内存取数据存储到磁盘。 这个过程错在哪里?
我不是学操作系统的,一时好奇,望高人指点一二。
解决方案1:
这要看你想知道的是cpu访问外部设备的物理过程还是只是软件过程了,硬件过程根据总线类型的不同而不同,我熟悉的是PCIe总线和AMBA总线,这两种总线就是完全不同的,PCIe总线就像是TCP/IP一样的异步过程,而AMBA总线是一个同步总线。
而软件过程就相对简单,为了效率,操作系统会有daemon程序不断检测对物理存储设备的请求,当请求累积到一定数量或者系统空闲或者到了一定的时间点,操作系统就会把需要向物理设备写入的数据刷出去。
至于文件,就是一簇簇按照文件系统组织好的数据而已,根据文件名,操作系统可以在文件系统中索引到他们在磁盘或者内存中的位置,这样针对他们的读写就转变成了对磁盘的读写。
建议你还是先去看看几本讲计算机的书吧,把问题缩小到一个较小的范围内。
首先需要纠正的是操作系统不会向CPU发出指令,所谓的操作系统对于CPU来说也不过是一簇指令集而已,只是这簇指令集能够按照人类的预想去操作某些硬件,完成某些功能。CPU只是忠实地根据预设条件去不断向下执行,而操作系统是人类基于对CPU的理解,利用某种手段写在内存中的指令。
在类似于Linux这种操作系统中,写到磁盘上的数据也是根据软件提前制定的条件来完成,比如文件系统会定期检查有没有未写入磁盘的数据,如果有就执行真正向磁盘写的物理操作。