1 程序员用高级语言编写程序。

程序员并不直接和内存和cpu打交道,程序员只是负责编写代码,现在程序猿更是使用高级语言来编写代码,如C,C++,Java等。

2 经过编译 链接等形成机器语言的EXE文件。

由于CPU内存读不懂高级语言的代码,那个是给程序员看的,所以需要进行翻译,翻译成它们这些机器明白的机器语言,就是100101001010这些机器码了。不过这样一来看不懂的就是我们了。哈哈。

3 EXE文件保持在磁盘的某个或多个扇区内

程序编写之后,会以文件的形式存在在硬盘中,虽然cpu的寄存器,内存RAM等也可以存数据,而且寄存器的速度快过内存,内存又快过硬盘。但是寄存器的内存有限,仅够支持指令段。而内存又是断电不保存数据的。所以程序还是应该存在硬盘妥当一些。

4 程序运行是在内存中生成EXE的副本

但是运行程序的时候还是需要将硬盘中的数据和指令加载到运行内存才能运行。由于磁盘和内存的速度不匹配的问题,有时会为了减少磁盘寻址的时间,人们设计出了相应的数据结构来作为索引,如B树,B+树等,可以减少磁盘访问次数来提示性能。总之,磁盘是要比内存慢几个级别的。用户发出启动程序的指示 后,Windows 等操作系统 会把硬盘中保存的程序复制到内存中。

5 将指令读入cpu的寄存器

首先寄存器是CPU里的,当然是最快的。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。其主要用途:

  • 1.可将寄存器内的数据执行算术及逻辑运算
  • 2.存于寄存器内的地址可用来指向内存的某个位置,即寻址
  • 3.可以用来读写数据到电脑的周边设备。

6 由cpu中的控制器,运算器,和时钟配合解析运行

计算机每执行一条指令都可分为三个阶段进行。即取指令—–分析指令—–执行指令
  
- 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。
- 分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。
  计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。

【图解】cpu,内存,硬盘,指令的关系的更多相关文章

  1. Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数)

    [转]Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题.我是在运维过程中要用到的.因此,今天给出Wind ...

  2. Windows 性能监视器的基本指标(CPU,内存,硬盘参数)

    转载:http://kms.lenovots.com/kb/article.php?id=7045 Windows 性能监视器的基本指标(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的 ...

  3. VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试

    现在便宜的VPS主机越来越多了,一些美国的VPS主机甚至给出1美元一月的VPS,堪比虚拟主机还要便宜,巨大的价格优势吸引不少人购买和使用,而近些年来国内的主机商也开始意识到便宜的VPS对草根站长的诱惑 ...

  4. 一个统计 CPU 内存 硬盘 使用率的shell脚本

    一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 #!/bin/bash #This script is use for describle CPU Hard Memery Uti ...

  5. centOS7下实践查询版本/CPU/内存/硬盘容量等硬件信息

    1.系统 1.1版本 uname -a 能确认是64位还是32位,其它的信息不多 [root@localhost ~]# uname -a Linux localhost.localdomain 3. ...

  6. linux 查看cpu 内存 硬盘 文件夹大小

    文件夹大小 显示cpu使用率 top 1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | w ...

  7. DSAPI 获取实时统计信息CPU/内存/硬盘/网络

    有时,我们需要获取当前计算机中CPU.内存.硬盘.网络等实时信息,如下图:\ 要实现上述几项信息的获取,通常需要使用Timer控件来间隔获取,以便刷新最新的数据. 本示例中,放一个Timer控件,放一 ...

  8. 查看CPU 内存 硬盘 网络 查看进程使用的文件 uptime top ps -aux vmstat iostat iotop nload iptraf nethogs

    #安装命令 yum install  sysstat #包含 iostat vmstat yum install iotop yum install  nload yum install iptraf ...

  9. CPU 内存 硬盘的区别

    第一点:CPU 是处理器,内存和硬盘是存储器,受CPU 的控制.  第二点:由于内存的速度很快,在电脑运行的过程中,CPU通常只与内存交换数据,但内存断电数据就会全部丢失,因此电脑使用硬盘作为主要的存 ...

  10. centOS下实践查询版本/CPU/内存/硬盘容量等硬件信息

    更详细参考: https://blog.csdn.net/dream_broken/article/details/52883883 1.查看内存 DirectMap2M: 33544192 kB [ ...

随机推荐

  1. Git命令相关

    特别说明 关于命令行中参数前面的-和--的区别 - 通常后面接参数的缩写 -- 通常后面接参数的全拼 eg: git status --short 等价于 git status -s 常用命令 创建版 ...

  2. 刷题记录:[SUCTF 2019]Pythonginx

    目录 刷题记录:[SUCTF 2019]Pythonginx 一.涉及知识点 1. CVE-2019-9636:urlsplit不处理NFKC标准化 2.Nginx重要文件位置 二.解题方法 刷题记录 ...

  3. 网络营销CPA、CPS、CPM、CPT、CPC 是什么

    网络营销之所以越来越受到重视一个主要的原因就是因为“精准”.相比较传统媒体的陈旧广告形式,网络营销能为广告主带来更为确切的效果与回报,更有传统媒体所没有的即时互动性.很多企业借助于精准的网络营销成为人 ...

  4. Cache管理机制(System.Web.Caching)

    一,System .Web.Caching与缓存工作机制简介 System.Web.Caching是用来管理缓存的命名空间,其父级空间是System.Web,由此可见,缓存通常用于Web网站的开发,包 ...

  5. 从Linux服务器下载文件夹到本地

    从Linux服务器下载文件夹到本地 1.使用scp命令 scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文 ...

  6. C语言 宽字符串

    /* 宽字符串的打印 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include ...

  7. 搭建SpringCloud微服务

    建立spring父模块 删除不必要的src目录 父模块中的pom.xml中添加相应的依赖以及插件.远程仓库地址 <!-- 项目的打包类型, 即项目的发布形式, 默认为 jar. 对于聚合项目的父 ...

  8. QT中添加图片资源

    1.在ui设计界面中添加label,用于显示图片 2.添加QT资源文件 往项目中添加新文件,选择QT分类中的资源文件,名称为"myImage",其他选项默认. 3.添加资源 在项目 ...

  9. 【转】SOA架构和微服务架构的区别

    SOA架构和微服务架构的区别 https://blog.csdn.net/zpoison/article/details/80729052

  10. jQuery fancy box 移除close "X" button

    version: fancybox 2.1.4 <div id="reloadPagePopup" class="div-fancy-box"> & ...