(第一集)计算机硬件知识

网友投稿 703 2022-12-01

(第一集)计算机硬件知识

(第一集)计算机硬件知识

一、计算机系统

计算机硬件,操作系统,软件(程序员开发的就是软件)

二、处理器

CPU、内存以及I/O设备都由一条系统总线(bus)连接起来并通过总线与其他设备通信

cpu是人的大脑,负责运算; 内存是人的记忆,负责临时存储 硬盘是人的笔记本,负责永久存储 输入设备是耳朵或眼睛,负责接收外部的信息传给cpu; 输出设备是你的表情,负责经过处理后输出的结果 以上所有的设备都通过总线连接,总线相当于人的神经 cpu从内存中取指令->解码->执行

寄存器:

概念:因访问内存得到指令/数据的时间比cpu执行指令花费的时间要长,所以CPU内部有用来保存关键变量和临时数据的寄存器

寄存器分类:

通用寄存器:保存变量和临时结果程序计数器:保存了将要取出的下一条指令的内存地址堆栈指针:保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量程序状态字寄存器PSW(重要):条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位

处理器设计的演变:

第1阶段:取值、解码、执行这三个过程同时进行,时间浪费第2阶段:流水线式的设计。即执行指令n时,可以对指令n+1解码,并且可以读取指令n+2第3阶段:超变量cpu,有多个执行单元,同时负责不同的事情。但程序指令不按顺序执行

内核态与用户态:

概念:多数CPU都有两种模式,即内核态与用户态。PSW中有一个二进制位控制这两种模式内核态:cpu可执行指令集中所有的指令,使用硬件的所有功能用户态:执行cpu整个指令集的一个子集,不包含操作硬件功能系统调用:特别的过程调用指令,从用户态切换到内核态的特别能力

多线程和多核芯片:

cpu中的处理逻辑增多称为多线程/超线程进程是资源单位,线程才是cpu的执行单位多线程运行cpu保持两个不同的线程状态,可在纳秒级时间内切换,属于伪并行,多线程不提供真正的并行处理,一个cpu同一时刻只能处理一个进程(一个进程中至少有一个线程)

三、 存储器

寄存器,即L1缓存:

与cpu一样快,在32位cpu中为32*32,在64位cpu中为64*64,在两种情况下容量均<1KB

高速缓存,即L2缓存:

由硬件控制高速缓存的存取,放置在cpu内部或者非常接近cpu的高速缓存. 用来存放经常使用的内存字。L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。

内存(随机访问存储RAM):

属于易失性存储,断电后数据全部消失

非易失性随机访问存储(ROM)::

电源切断后,内容不会丢失,用于启动计算机的引导加载模块就存放在ROM中,不可以擦除和重写

EEPROM存储器:

电源切断后,内容不会丢失,可以擦除和重写,重写花费的时间比写入RAM多

闪存(flash mmemory):

通常作为存储媒介,可以擦除和重写,在速度上介于RAM和磁盘之间

CMOS存储器:

数据易失性,用于保持当前时间和日期+保存配置的参数,由电池进行供电

四、 磁盘

一连串的2进制位(称为bit位),8个bit称为1个字节bytes,1024bytes=1k,1024k=1M。 数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间。

平均寻道时间:

机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间

平均延迟时间:

机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下

虚拟内存:

将暂时不需要执行的程序放到磁盘的某块地方,称为虚拟内存。 在linux中称为swap,机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元

上下文切换:

从一个程序切换到另外一个程序

五、总线

多总线模式处理I/O设备及cpu到存储器的速度都更快。 北桥即PCI桥:连接高速设备。南桥即ISA桥:连接慢速设备

六、计算机启动

BIOS就相当于一个小的操作系统,程序存放于一非易失性闪存RAM中。

启动流程:

1.计算机加电 2.BIOS开始运行,检测硬件:cpu、内存、硬盘等 3.BIOS读取CMOS存储器中的参数,选择启动设备 4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位) 5.根据分区信息读入bootloader启动装载模块,启动操作系统 6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在, 如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。 然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringData JPA中@OneToMany和@ManyToOne的用法详解
下一篇:(第十一集)并发编程之多线程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~