计算机硬件基础
一、编程语言的作用以及与操作系统和硬件的关系
编程语言本质就是用来沟通的介质,程序员通过编程语言与计算机沟通,从而让计算机完成某样工作。
而一套完整的计算机系统分为:计算机硬件、操作系统、软件(程序员开发的及软件)。
软件(编程语言开发的程序)将一系列指令传递给操作系统,操作系统经过识别,传递到硬件来完成软件里的一系列指令。
现在应用软件与操作系统及硬件的关系已经有所了解了,那么接下来我们介绍计算机硬件的一些相关知识。
二、计算机硬件介绍
简单的来理解,一台简单的计算机可以理解为:CPU、内存以及I/O设备通过一条系统总线(BUS)并通过总线与其他的设备进行通信。
随着科技的发展,现代的计算机更加复杂,包括多重总线。接下面我们会以下面的图例来介绍各个部件。
简单得理解各部分功能:
2.1中央处理器
中央处理器即CPU,它是由计算机的运算器和控制器组成的。它的作用就是,从内存中:取指令→解码→执行,然后再取指令→解码→执行,周而复始直到整个程序完成。
CPU要从内存中读取到数据花费的时间比较长,所以CPU内部有一些用来存储关键变量和临时数据的寄存器。
寄存器的分类:
1.最开始取值、解码、执行这三个过程是同时进行的,这意味着任何一个过程完成都需要等待其余两个过程执行完毕,时间浪费
2.后来被设计成了流水线式的设计,即执行指令n时,可以对指令n+1解码,并且可以读取指令n+2,完全是一套流水线。
3.超变量cpu,比流水线更加先进,有多个执行单元,可以同时负责不同的事情,比如看片的同时,听歌,打游戏。
两个或更多的指令被同时取出、解码并装入一个保持缓冲区中,直至它们都执行完毕。只有有一个执行单元空闲,就检查保持缓冲区是否还有可处理的指令
这种设计存在一种缺陷,即程序的指令经常不按照顺序执行,在多数情况下,硬件负责保证这种运算结果与顺序执行的指令时的结果相同。
2.2存储器
人们总是想要容量大、速度快、价钱便宜的存储器,三者兼得是不可能的。所以才有了如下图所示的各类存储器。
寄存器即L1缓存:
制作材料与CPU相同,与CPU一样快,所以CPU访问它没有延迟。
高速缓存即L2缓存:
存在于主存和CPU之间的一级存储器,容量小速度比主存快,接近于CPU的速度。
内存:
存储系统的主力,即主存。主存又通常被称为随机访问存储RAM。主存是易失性存储,断电后数据全部消失。
非易失性随机访问存储ROM:
断电后,ROM中的数据也不会消失。ROM在工厂中被编程完后就不能再修改。
ERRROM(电可擦除可编程ROM)和闪存:
它们都是可擦除和重写的,不过重写的时间比RAM写入的时间长的多。便携式电子产品中,闪存作为存储媒介。数码相机中的胶卷、便携式音箱中的磁盘都是闪存,另外闪存还应用在固态硬盘。
闪存的速度介于RAM和磁盘之间,与磁盘不同的是,擦写次数过多,会影响到寿命。
CMOS:
CMOS也是易失性的,它用来保持计算机当前的日期和时间,它由一块小电池来供电驱动。除此之外,它还存储了配置的一些参数,比如哪个是启动磁盘。
2.3磁盘
硬盘中,不同盘片相同半径的磁道所组成的圆柱称为柱面。
每个盘片有两面,都可记录信息。盘片被分成许多扇形的区 域,每个区域叫一个扇区。
盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。
传统的磁盘速度慢的原因是它是一种机械装置。
磁盘信息挂载在一些同心圆的隧道上,是一连串的二进制,为了更好的统计容量大小,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,
所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。
数据都存放于一段一段的扇区,从磁盘读取一段数据需要经历寻道时间和延迟时间。
平均寻道时间:
机械手臂从一个柱面随机移动到相邻的柱面的时间称为寻道时间,找到了磁道就以为找到了数据所在的那个扇区,但是还不知道数据具体扇区的具体位置。
平均延迟时间:
机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。
虚拟内存:
从磁盘里拿出一块地方存放当前不需要执行的程序,这块地方称为虚拟内存。
在LINUX中称为SWAP,这种机制在于快速的映射内存地址,由CPU中的一个部件构成,称之为存储器管理单元(Memory Management Unit MMU)。
2.4磁带
在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。
2.5I/O设备
I/O设备一般包括两个部分:设备控制器和设备本身。
设备控制器:
硬盘,网卡,声卡等都需要插到一个口上,这个口连接的便是控制器。其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。
设备本身:
有相对简单的接口且标准的设备,这样大家就可以为其编写驱动程序。必须把驱动程序安装在操作系统中,才能用设备控制器调用设备。
2.6总线
北桥即PCI桥:连接高速设备
南桥即ISA桥:连接慢速设备
地址总线:用来选择存储器指定单元、指定接口
控制总线:用来传送控制信号,时序信号,和状态信息等。其中有的是CPU向内存和外设发出的信息,有的则是内存和外设向CPU发出的信息。
数据总线:用来传输CPU与存储器间、CPU与接口间指令和数据
2.7计算机及应用程序启动流程
计算机启动流程:
1.计算机加电
2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5.根据分区信息读入bootloader启动装载模块,启动操作系统
6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。
然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI
应用程序启动流程:
1.双击桌面应用程序的快捷方式。
2.操作系统从硬盘里找到该应用程序的数据,并加载到内存中。
3.CPU从内存中读取指令并执行。
4.CPU执行的结果通过显示器显示出来,应用程序被启动。