计算机体系结构
计算机发展历史
计算机组成
计算机硬件组成
1. CPU
原文链接:https://blog.csdn.net/stone_fall/article/details/88414017
一条指令的执行过程分为以下5个周期:
取指令周期(Instruction Fetch,IF)
以程序计数器PC中的内容作为地址,从存储器中取出指令并放入指令寄存器IR;
同时PC值加4(假设每条指令占4个字节),指向顺序的下一条指令。
指令译码/读寄存器周期(Instruction Decode,ID)
对指令进行译码,并用IR中的寄存器地址去访问通用寄存器组,读出所需的操作数。
执行/有效地址计算周期(Execute,EX)
不同指令所进行的操作不同:
load和store指令:ALU把指令中所指定的寄存器的内容与偏移量相加,形成访存有效地址。
寄存器-寄存器ALU指令:ALU按照操作码指定的操作对从通用寄存器组中读出的数据进行运算。
寄存器-立即数ALU指令:ALU按照操作码指定的操作对从通用寄存器组中读出的操作数和指令中给出的立即数进行运算。
分支指令:ALU把指令中给出的偏移量与PC值相加,形成转移目标的地址。同时,对在前一个周期读出的操作数进行判断,确定分支是否成功。
存储器访问/分支完成周期(Memory,MEM)
该周期处理的指令只有load、store和分支指令。
其它类型的指令在此周期不做任何操作。
load和store指令
load指令:用上一个周期计算出的有效地址从存储器中读出相应的数据;
store指令:把指定的数据写入这个有效地址所指出的存储器单元。
分支指令
分支“成功”,就把转移目标地址送入PC。
分支指令执行完成。
写回周期(WB)
ALU运算指令和load指令在这个周期把结果数据写入通用寄存器组。
ALU运算指令:结果数据来自ALU。
load指令:结果数据来自存储器。
其中存在流水线冲突问题,暂时不讲
CPU重要参数
核心数:物理核心数 (有几个银行柜员–核心在干活,一个网点-CPU,有6个柜员在干活)
线程:超线程技术,逻辑处理器 (线程数) 虚拟内核=逻辑处理器=线程数
1个柜员只能办一个业务,但是有超线程这个技术,能让一个柜员同时办理几个业务。
因为在遇到IO操作,从disk读取文件的时候,需要大量的时间,而此时CPU是没有事情干的,处于等待状态,这种时候就可以干别的业务。
频率:工作频率,1秒钟产生的脉冲信号 (一个脉冲周期能执行一个指令)
32位和64位:CPU一次能处理的位数
芯片与CPU
芯片有很多种,CPU芯片是其中一种 其他还有GPU、NPU、FPGA芯片等等
GPU:Graphic Processing Unit 图形处理单元
NPU:Neural Networks Process Units 神经网络处理单元
FGCA:Field-Programmable Gate Array 现场可编程门
CPU指令集和架构
指令是用来控制硬件的,经过编译后:01010101的电信号
复杂指令集(Complex Instruction Set Computer):
每个指令做复杂动作,完成操作需要较少指令,庞大 代表:Intel X86
精简指令集(Reduced Instruction Set Computer):
每个指令做简单动作,完成操作需要很多指令,灵活 代表:ARM、RISC-V、MIPS
2. 内存(主存) RAM
作用:
- 临时存储CPU要算的数据
- 读取/写入文件,CPU要先发出指令将外部设备(disk)的内容加载到内存(里面来)
运行内存:RAM(Random Access Memory)
存储空间:ROM(Read Only Memory)
3. 硬盘
机械硬盘和固态硬盘
机械硬盘是真的有一个盘片,通过加电后加磁和去磁(录音磁带)。教科书上很多,就不再讲述
固态硬盘加粗样式==(待完善)==
4. 输入输出设备
输入设备:键盘、鼠标、麦克风、摄像头、扫描仪、数位
板、游戏手柄等等;
输出设备:显示器、打印机、音响等等。
显卡(GPU)
声卡
从源代码到可执行程序
(待完善)
操作系统
可执行程序执行需要操作系统
为什么需要操作系统(Operating System)?
1、提供API,屏蔽底层硬件差异
2、协调系统资源,比如QQ,360等等软件如果直接调用硬件,一定会出现抢资源的情况
应用程序运行(java有jdk环境)-> jdk调用操作系统封装的api -> 操作系统会调用机器语言(CPU指令)
服务器操作系统
软件架构(客户端访问浏览器的方式)
C/S架构:Client/Server
客户端:迅雷、QQ、百度网盘、腾讯课堂、网易云音乐、游戏 客户端、腾讯视频…
特点:需要安装和升级,占用资源多,性能高
B/S架构:Browser/Server
浏览器:Chrome、FireFox、Edge、360… 站点:百度、知乎、微博、贴吧、淘宝…
特点:不用安装维护,跨操作系统,占用资源低
服务器的组成部分
配置的类型和个人电脑差不多,但是配置的级别/性能会高非常多
服务器硬件 服务器操作系统 HTTP容器 应用程序
应用程序就是业务逻辑书写的地方,基本也就是与数据库交互
虚拟机
容器-docker
VMware
基本功能
除了自己下载.iso镜像包外,还可以直接官网下载/下载别人配置好的.vmx
本机和虚拟机互传文件可以通过vmtools或者xshell工具(将文件拖入,自动出命令)
克隆和快照
克隆
- 用于想要得到一摸一样的
- 担心会被破坏
所以我们可以配置好一个模板机,完成基本的配置,然后去clone
快照
原文链接:https://blog.csdn.net/qq_40644809/article/details/107229420
介绍
虚拟机是由各种虚拟文件所构成的虚拟计算机,而这些虚拟文件都可以由文件系统进行管理。快照本身就是帮助用户记录当前虚拟机状态的方式,这个状态包含虚拟磁盘状态(相当于真实机中的硬盘)、机器内存状态、虚拟机配置信息。
1、虚拟磁盘状态:数据、分区格式、文件内容等;
2、机器内存状态:需要判断当前计算机是否正在运行,如果没有运行,内存里是没有内容的,内存状态是一个可有可无的状态,所以此时保存快照时,开机状态下的快照和关机状态下的快照是不同的,相比于另外两项,由于内存状态必须要写入文件,所以相对来说占用空间最大,是影响快照速度的主要原因;
3、虚拟机配置信息:内存、处理器、磁盘、网络适配器、DVD、USB等设备的设置以及选项的设置,记录在 .vmx 文件中。
**快照的基本原理:**在使用虚拟机时会给虚拟机分配一个虚拟磁盘,在使用过程中可能并未占用全部的分配空间,其与 .vmdk 虚拟磁盘文件标识的大小相同,如果此时记录快照,那么 .vmdk 文件就会被锁定,变成只读状态,在此后的虚拟机使用中进行的任何修改都不是在 .vmdk 文件上做更改,而是在另外生成一个新的文件上进行修改。也就是说,在做快照时,将原虚拟磁盘文件锁定,重新生成新的虚拟磁盘文件,新生成的虚拟磁盘会记录生成快照之后,虚拟机的使用情况。快照可以做多个,每记录一次快照, .vmdk 文件就会多出一个,并可以根据需求选择其中任一一个进行恢复。
快照的拍摄:
右键选择虚拟机 --> 在快照菜单中选择拍摄快照或者打开快照管理器 --> 选择当前位置并拍摄快照 --> 此时在虚拟机最下面会看到保存状态的进度条 --> 进度条完成后表示快照制作成功
快照的恢复:
右键选择虚拟机 --> 在快照菜单中选择恢复到最近一次快照或者打开快照管理器 --> 选择快照并点击转到 --> 此时会提示当前状态(最近一次快照之后的虚拟机更改)会丢失 --> 点击是 --> 弹出还原虚拟机状态进度条,完成后虚拟机恢复到快照时状态
三种网络模式
正常的网络
虚拟交换机
VMnet0 桥接模式
VMnet1 仅主机模式
VMnet8 NAT模式
让相同模式的虚拟机相互连接
虚拟网卡
网卡本身就是用来连接网络用的。
比如我的电脑,执行ipconfig/all,会得到
以太网适配器:
作用:连接计算机与有线网络(例如通过网线连接到路由器)。
用途:实现有线数据传输,例如通过以太网连接上网。
无线局域网适配器 本地连接 1*:
作用:支持 Wi-Fi Direct 技术,用于直接在设备之间进行无线通信。
用途:Wi-Fi Direct 允许设备之间直接连接,而无需通过路由器。
无线局域网适配器 本地连接 2*:
作用:类似于上述 Wi-Fi Direct 适配器,支持 Wi-Fi Direct 技术。
用途:用于设备之间的直接无线通信。
以太网适配器 VMware Network Adapter VMnet1:
作用:用于虚拟机网络连接,例如在 VMware 虚拟机中创建的虚拟网络。
用途:连接虚拟机之间或虚拟机与主机之间的网络通信。
以太网适配器 VMware Network Adapter VMnet8:
作用:类似于 VMnet1,用于虚拟机网络连接。
用途:连接虚拟机之间或虚拟机与主机之间的网络通信。
无线局域网适配器 WLAN:
作用:连接计算机与 Wi-Fi 网络。
用途:通过 Wi-Fi 连接到无线路由器,实现无线上网。
以太网适配器 蓝牙网络连接:
作用:支持蓝牙技术,用于设备之间的短距离无线通信。
用途:连接蓝牙设备,例如耳机、键盘、鼠标等。
虚拟机网卡的作用:让主机和虚拟机相互连接
(为什么没有VMnet0呢?带着这个疑问继续走)
VMware Network Adapter VMnet1 仅主机模式
VMware Network Adapter VMnet8 NAT模式
虚拟机就像我们电脑一样,可以配置多个网卡
理解当前问题的关键
- 主机怎么和虚拟机连接?
- 虚拟机怎么连接到互联网?
桥接模式
- 虚拟机和主机一个地位,一个虚拟机就占用了局域网一个ip。现在是我们的局域网,如果是在阿里云服务器开启一个桥接模式的虚拟机的话,那么就相当于我们又占用了一个公网ip,因为桥接模式下,虚拟机和主机一个地位。
- 直接用物理机的网卡来上网的。
- 想让主机和虚拟机相互访问,把网段设置成一样的就可以
使用场景:创建一个虚拟服务器在内网提供网络服务
NAT模式(默认模式)
- 通过虚拟网卡来进行主机和虚拟机之间的通信
- 通过虚拟路由器连接主机网卡来上网
- 虚拟机此刻可以理解为躲在主机后面,虚拟机在外部网络中没有自己的IP地址,虚拟NAT设备会把专用网络中的 IP 地址转换为主机系统的 IP 地址——也就是所说的网络地址转换,外界看网络请求是不知道是虚拟机发起的,都认为是主机发起的
使用场景:大部分情况
仅主机模式
没有了NAT设备(虚拟路由),所以不能上网
使用场景:创建一个与其他机器隔离的网络
网关是什么?
https://blog.csdn.net/chengqiuming/article/details/78601331?ops_request_misc=&request_id=&biz_id=102&utm_term=%E9%85%8D%E7%BD%AE%E7%BD%91%E5%85%B3%E7%9A%84%E7%94%A8%E5%A4%84&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-78601331.142v100pc_search_result_base3&spm=1018.2226.3001.4187
一般来说,路由器的LAN接口的IP地址就是你所在局域网中的网关。当你所在的局域网的计算机需要和其它局域网中的计算机,或者需要访问互联网的时候,你所在局域网的计算机会先把数据包传输到网关(路由器的LAN接口),然后再由网关进行转发。
网关的作用
1、网关在所有内网计算机访问的不是本网段的数据报时使用。
2、将内网IP转换成公网IP,将公网IP转换为内网IP。