• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 请问,内存上的数据是如何刷新到磁盘等存数设备的?

请问,内存上的数据是如何刷新到磁盘等存数设备的?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了磁盘内存不足怎么办,内存卡磁盘被写保护,内存或磁盘空间不足,怎么清理磁盘内存,内存或者磁盘空间不足等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:请问,内存上的数据是如何刷新到磁盘等存数设备的?
描述:

操作系统数据存储cpu

加载数据的时候和回写数据的时候是不是相似的过程呢?
操作系统想CPU发出指令,CPU从磁盘去数据到内存,CPU从内存取数据运算,CPU将算好的数据写到内存,然后操作系统再发指令给CPU,CPU从内存取数据存储到磁盘。 这个过程错在哪里?
我不是学操作系统的,一时好奇,望高人指点一二。


解决方案1:

这要看你想知道的是cpu访问外部设备的物理过程还是只是软件过程了,硬件过程根据总线类型的不同而不同,我熟悉的是PCIe总线和AMBA总线,这两种总线就是完全不同的,PCIe总线就像是TCP/IP一样的异步过程,而AMBA总线是一个同步总线。
而软件过程就相对简单,为了效率,操作系统会有daemon程序不断检测对物理存储设备的请求,当请求累积到一定数量或者系统空闲或者到了一定的时间点,操作系统就会把需要向物理设备写入的数据刷出去。
至于文件,就是一簇簇按照文件系统组织好的数据而已,根据文件名,操作系统可以在文件系统中索引到他们在磁盘或者内存中的位置,这样针对他们的读写就转变成了对磁盘的读写。
建议你还是先去看看几本讲计算机的书吧,把问题缩小到一个较小的范围内。

解决方案2:

首先需要纠正的是操作系统不会向CPU发出指令,所谓的操作系统对于CPU来说也不过是一簇指令集而已,只是这簇指令集能够按照人类的预想去操作某些硬件,完成某些功能。CPU只是忠实地根据预设条件去不断向下执行,而操作系统是人类基于对CPU的理解,利用某种手段写在内存中的指令。
在类似于Linux这种操作系统中,写到磁盘上的数据也是根据软件提前制定的条件来完成,比如文件系统会定期检查有没有未写入磁盘的数据,如果有就执行真正向磁盘写的物理操作。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 请问,内存上的数据是如何刷新到磁盘等存数设备的?

相关文章

  • 2017-06-05 at91的bootsharp里边添加新的nandflash,参数如何获取
  • 2017-06-17以太网接口
  • 2017-06-05 WiFi小车制作问题
  • 2017-06-05 请教一个关于DEBUGMSG的问题
  • 2017-06-05 STM32里for函数有延时程序怎么立即break跳出呀
  • 2017-06-05 关于SPI16位和8位通信的一个疑问。
  • 2017-06-17嵌入式系统的应用领域
  • 2017-06-05 user_modebuffer&kernel_modebufferproblen
  • 2017-06-05 关于SMBus协议议的数据结构的实现
  • 2017-06-05 stm32中输出独立的PWM波和外部中断会干扰?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • s3c440x+pdiusbd12关于usb枚举不成功的问题?
    • FPGA设计中如何减小clockskew
    • Altiumdesigner画原理图,总线部分的NetLabel部分出现错误警告。
    • 有关WDM驱动程序造成系统不能启动的原因?
    • CC2541板载温度传感器数据采集问题
    • 基于单片机直流电机调速系统的小问题
    • 关于模拟器件信号与数字器件信号的关系问题(或数字地与模拟地的关系)
    • BCD编码二进制与十进制之间的转换
    • 100分求解关于NDIS的简单问题
    • 为什么系统调用比普通的函数调用更耗时?用户态和内核态切换的代价在哪?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有