CPU,内存,磁盘,指令以及它们之间的关系

一、Cpu:

cpu是central process unit的简称,是计算机的核心处理器。Cpu的作用是运行机器语言指令。高级语言和汇编语言程序被编译成cpu能理解的机器语言后,存入到内存中,cpu就会从内存中读取并执行这些指令序列,完成程序功能。

包括控制器、寄存器、运算器、时钟四个部分组成。

其中运算器是用来计算的,

寄存器是临时存放中间数据以及指令的,包括程序计数器、指令寄存器、数据寄存器、地址寄存器等。 寄存器是汇编语言所研究的对象,汇编语言通过对寄存器的控制(写入,读出,加),实现功能。eg:

第一句——对象:eax寄存器;动作:mov;目的地:内存(dword);具体地址:ebp寄存器中存储的地址。

第二句——对象eax寄存器;动作:add;参数:内存中的数;具体地址:ebp寄存器中存储的地址。

第三句——对象:eax寄存器;动作:mov;目的地:内存(dword);具体地址:ebp寄存器中存储的地址。

程序计数器的作用是指定当前执行指令的地址。通过改变程序计数器,可以实现程序的逻辑控制。但是,虽然通过改变程序计数器的值可以实现程序跳转,但是单纯通过改变程序计数器的值却无法实现函数调用。因为跳转不需要回来,而函数调用结束之后还要回到原指令的下一条指令。为了实现函数调用,需要将程序计数器与call/return指令结合使用。也就是说,在函数调用时,在改变程序计数器值的同时,还要调用call指令,将返回位置写入栈内存中还需要在被调用函数的末尾添加return指令,这样在被调用函数执行结束后会继续执行return指令,return指令会将程序计数器的值设置为栈的最上边的值,也就是函数调用的返回地址。

程序计数器和内存的关系:程序计数器记录了当前执行的指令在内存中年存储的位置。

控制器是用来控制何时将内存的数据及指令读入寄存器,何时将寄存器中的值输出到内存。

时钟是同步各个部件之间的步调。

二、内存:

内存又叫主存,与cpu的寄存器链接,用于将数据以及指令输入到寄存器中;同时也可以接受寄存器的输出。本质是作为磁盘与寄存器的中间件,起到缓冲作用。断电后会丢失所有数据。

内存和磁盘的关系:由于磁盘的读写速度与cpu相差太大,如果cpu直接从磁盘中读取数据,会造成cpu计算能力极大的浪费。为了解决这个问题,在磁盘与cpu之间加一个内存,将磁盘存储的程序以及数据线读入内存中,cpu直接与内存打交道。此外,由于内存的空间比磁盘小很多,会出现内存不够用的情况,此时,会将一部分磁盘当做内存来使用,也就是虚拟内存。

三、磁盘:

存放数据的,容量比内存大,速度慢。

断电不会丢失数据。

四、指令:

指令是控制cpu按照一定功能运算的机器码。每一种cpu有自己的一套指令集。高级语言编写的程序最终也要编译成可以让cpu理解的一条条机器指令,才能被cpu执行。Cpu除了可以计算数据以外,还可以控制硬件,方法是通过cpu寄存器与I/O端口进行数据交换。计算机中主机与外围硬件的链接方式是通过I/O端口进行的(端口是用于主机寄存器与外围设备交换数据时临时存储数据的寄存器)。所以,指令通过控制cpu的输出和输入位置,可以让cpu寄存器向I/O端口寄存器发送数据,外围设备通过与I/O寄存器交换数据,从而达到控制外围设备的效果。而操作系统的作用是封装一套指令序列,cpu通过执行这套指令序列,可以让硬件完成一系列动作。而应用程序如果需要对硬件进行操作,只需要将操作系统的这套指令序列复制到自己的程序中即可。复制这套指令的方式就是API。从这个角度来看,操作系统就是封装了控制硬件完成一系列动作的指令序列的集合,这套集合提供给应用程序以及计算机的使用者。从而达到了将人、应用程序与硬件隔离的效果。

五、它们之间的关系

可执行程序(也就是机器码序列)首先从磁盘中被读入到内存中,然后内存中的程序会被一条一条的读到指令寄存器中被执行。

cpu、内存、磁盘、操作系统的关系相关推荐

  1. CPU 内存 磁盘的关系

    CPU是处理器,是大脑和核心,内存和硬盘都是存储器,受CPU的指挥. CPU工作的时候: 1.需要从存储器里取数据出来. 2.进行运算,要不停地用存储器读写. 3.计算出结果再返回到存储器里. 如果硬 ...

  2. Linux系统监控命令整理汇总-掌握CPU,内存,磁盘IO等找出性能瓶颈

    的性能有问题,总之,每到晚上挖站否的主机就出现了不稳定的情况,系统负载忽高忽低.利用服务器日志分析利器:ngxtop和GoAccess也能查出有一些IP一直在不断地扫描服务器端口还有WP后台. 但是, ...

  3. kvm性能优化方案---cpu/内存/磁盘/网络

    kvm性能优化方案 kvm性能优化,主要集中在cpu.内存.磁盘.网络,4个方面,当然对于这里面的优化,也是要分场景的,不同的场景其优化方向也是不同的,下面具体聊聊这4个方面的优化细节. cpu 在介 ...

  4. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1, #cat /proc/stat/  信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s   或者 #vmstat    虚拟内存统 ...

  5. AIX和LINUX主机 CPU 内存 磁盘使用率监控

    AIX监控 磁盘使用率监控 df -g|grep -v Filesystem|grep -v proc|awk ' gsub(/%/,"",$4) {print $7 " ...

  6. docker(三)——cpu/内存/磁盘资源控制

    目录 一.资源控制 1.1 cgroups工具 1.1.1 概述 1.1.2 功能 1.2 设置CPU使用率上限 1.2.1 cpu-period与cpu-quota 1.2.2 查看两个配额数值 1 ...

  7. Linux查看硬件配置-cpu内存磁盘网卡

    Linux查看硬件配置 资产管理命令dmidecode 查看服务器型号 查看主板的序列号 查看系统序列号 查看cpu 查看占用cpu最多的几个进程 查看内存 查看内存信息 查看内存数量和内存大小 查询 ...

  8. 脚本监控windows的cpu 内存 磁盘 使用率

    监控cpu使用率的vbs脚本, cpu.vbs(注意cpu0代表第一个cpu) On Error Resume Next Set objProc = GetObject("winmgmts: ...

  9. linux cpu内存磁盘使用情况查询 python日志打印 ssh连接 scp文件传输 nohup后台运行 环境变量

    登录 执行 ssh root@host(host:ip地址或者域名)-p 端口号 ssh root@152.136.*** 上传文件scp:(r加上) scp -P 43498 -r city_hot ...

  10. linux监控cpu内存磁盘网络使用率,linux服务器性能——CPU、内存、流量、磁盘使用率的监控...

    4. 什么是AJAX 术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验.在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的"思考 ...

最新文章

  1. linux下如何解压缩zip,tar,tar.gz,tar.bz2文件
  2. 在 Java 中高效使用锁的技巧--转载
  3. 安装docx模块出现Import Error: No module named 'exceptions'的解决方案
  4. 2--mkdir命令
  5. python ssh实现_SSH协议的Python实现paramiko
  6. 最优化理论——线搜索技术·黄金分割法
  7. iOS活体人脸识别的Demo和一些思路
  8. vmware mac os 10.11.6 安装xcode 8
  9. 05_grep-搜索
  10. Glide遇到重定向url产生的bug分析以及解决
  11. sklearn机器学习:随机森林学习与调参
  12. 刺激战场android闪退,刺激战场闪退怎么办
  13. linux 移动磁盘空间,如何将Linux下移动磁盘空间?
  14. Matlab电影动画的初级制作
  15. Node.js Express博客项目实战 之 前台页面数据的显示
  16. 语音识别中的词错率(SER)以及字错率(WER)
  17. 京东云与金山云合并!云计算行业真的要大洗牌吗?
  18. 使用包configparser,出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 155: illegal mu
  19. 河源职业技术学院计算机一级考试人数满了,2017年下半年(第49次)全国计算机等级考试(NCRE)河源职业技术学院考点报名时间及方法...
  20. 根据物料序列号获取最新的HU号码_SAP刘梦_新浪博客

热门文章

  1. 简单实现图片多选功能
  2. 使用Python自动生成带有图表文字的PDF(附带万字完整代码)
  3. 微信开发-错误码大全
  4. Android shape画一个圆角虚线框
  5. 福布斯专栏:小米手机难成主流
  6. 关于钉钉投屏功能(通过企业工作台设置投屏)无法通过js取得数据的问题
  7. 打怪游戏(进度29%)
  8. Dubbo后台管理和监控中心部署
  9. Android 系统时间自动更新机制
  10. java lambda表达式 list转string