【图解】cpu,内存,硬盘,指令的关系-程序员宅基地

技术标签: java  操作系统  数据结构与算法  

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中的值从程序存储器读出现行指令,送到指令寄存器。
- 分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。
  计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。

转载于:https://www.cnblogs.com/cmi-sh-love/p/tu-jiecpu-nei-cun-ying-pan-zhi-ling-de-guan-xi.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33884611/article/details/94752048

智能推荐

TortoiseGit解决TortoiseGitPlink要求输入密码-程序员宅基地

文章浏览阅读3.2k次,点赞4次,收藏10次。解决TortoiseGitPlink要求输入密码_tortoisegitplink

什么是大端存储和小端存储-程序员宅基地

文章浏览阅读4.7k次,点赞2次,收藏5次。详细了解大端和小端的存储_大端存储和小端存储

【共读】企业信息安全建设与运维指南(一)_信息安全运营服务实施指南研究-程序员宅基地

文章浏览阅读6.3k次,点赞5次,收藏49次。一、从零开始建设企业信息安全系统:企业信息安全体系分为:信息安全技术体系和信息安全管理体系 信息安全技术体系: 两个层面: 1.需建设安全相关基础设施和系统,以具备解决相关安全问题的能力。 2.需具备安全运营能力,只有正确部署和使用设备,才能真正保障信息安全。 信息安全管理体系: 两个层面: 1.具备信息安全相关的制度、规范、流程及策略。 2.具..._信息安全运营服务实施指南研究

python遍历文件夹轻松拷贝所有固定格式的文件_python遍历所有文件复制指定文件?tn=02003390_71_hao_pg-程序员宅基地

文章浏览阅读455次。import osimport shutil def select_file(dir, dir_out): # dir为查询文件路径,dir_out为拷贝路径 if os.path.isfile(dir): if(dir[-4:] == '.bmp' or '.jpg' or 'png'): #拷贝所有以上格式的文件,也可以修改为其他格式 filename = dir.split('\\')[-1] # 提取文件名称 s_python遍历所有文件复制指定文件?tn=02003390_71_hao_pg

Win cuda11+cudnn11网盘下载_win11 cudatookit安装包 百度云-程序员宅基地

文章浏览阅读5.1k次,点赞17次,收藏10次。https://pan.baidu.com/s/1IV_lBCeFFM712xx_iXnhqQ 提取码:0pr5_win11 cudatookit安装包 百度云

springboot集成thymeleaf时css js加载不出来的问题_springboot thymeleaf 不显示css js-程序员宅基地

文章浏览阅读2.1k次。springboot项目的css 和js默认位置是在static中,所以如果没有另外的修改的话,直接创建一个static文件夹,把css和js放入即可。这里放一个实例<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>儿童随访记录表</title> <!-- 引入 echarts.js --> <script src="ht._springboot thymeleaf 不显示css js

随便推点

【教程】CDQ套CDQ——四维偏序问题【转载】-程序员宅基地

文章浏览阅读128次。转自前言 上一篇文章已经介绍了简单的CDQ分治,包括经典的二维偏序和三维偏序问题,还有带修改和查询的二维/三维偏序问题。本文讲介绍多重CDQ分治的嵌套,即多维偏序问题。四维偏序问题给定N(N<=20000)个有序四元组(a,b,c,d),求对于每一个四元组(a,b,c,d),有多少个四元组(a2,b2,c2,d2)满足a2<a &..._cdq处理四维偏序

Unity两个相机设置_unity设置两个摄像机-程序员宅基地

文章浏览阅读571次,点赞8次,收藏10次。Culling Mask:bg(将背景图片的layer设置为bg,层级在最后面,比如这里设置为9,背景图片一般放在2DObject-sprite里)main Camera:用来照物体的,CameraUI:用来照背景的。_unity设置两个摄像机

瑞_VMware虚拟机安装Linux纯净版(含卸载,图文超详细)_虚拟机安装linuxqq和卸载的图片-程序员宅基地

文章浏览阅读3.7k次,点赞90次,收藏24次。VMware虚拟机安装Linux纯净版(含卸载,图文超详细)_虚拟机安装linuxqq和卸载的图片

即时通讯开发平台AnyChat的开发流程及应用_axchat的使用过程-程序员宅基地

文章浏览阅读1.1k次。AnyChat开发流程指南下面列出AnyChatPlatform Core SDK基本开发流程,适用于开发视频会议系统、语音视频聊天系统、远程教育平台以及即时通讯平台(IM)等。 一、初始化该部分是首先要完成的,用于设置SDK的一些行为,包括设置对应的回调函数、设置SDK组件路径、设置是否产生日志文件等,通常初始化AnyChat SDK的代码如下(C++): 01.// 打_axchat的使用过程

计算机毕设Python+Vue疫情期间学生作业线上管理系统(程序+LW+部署)_在线作业管理系统测试用例-程序员宅基地

文章浏览阅读190次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:SSM + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。_在线作业管理系统测试用例

Unicode与FFFE(记一个蛋疼的项目)-程序员宅基地

文章浏览阅读758次。好久没更新博客了。近期忙着一个项目, 还要应付各种考试就顾不上博客了。今天遇到了一个蛋疼的问题, 通过BLE4.0与蓝牙外设通信。按照客户给的协议文档发送的数据, 可是外设不能正确识别。折腾了一下午。最后问了客户才知道... 数据头fffe, 他们在外设里面已经做规定了。 所以不须要发送。真是蛋疼。也怪自..._unicode fffe

推荐文章

热门文章

相关标签