计算机硬件基础

一、编程语言的作用以及与操作系统和硬件的关系

二、计算机硬件介绍

  2.1中央处理器

  2.2存储器

  2.3磁盘

  2.4磁带

  2.5I/O设备

  2.6总仙

  2.7计算机及应用程序启动流程

一、编程语言的作用以及与操作系统和硬件的关系

  编程语言本质就是用来沟通的介质,程序员通过编程语言与计算机沟通,从而让计算机完成某样工作。

  而一套完整的计算机系统分为:计算机硬件、操作系统、软件(程序员开发的及软件)。

  软件(编程语言开发的程序)将一系列指令传递给操作系统,操作系统经过识别,传递到硬件来完成软件里的一系列指令。

现在应用软件与操作系统及硬件的关系已经有所了解了,那么接下来我们介绍计算机硬件的一些相关知识。

二、计算机硬件介绍

  简单的来理解,一台简单的计算机可以理解为:CPU、内存以及I/O设备通过一条系统总线(BUS)并通过总线与其他的设备进行通信。

  随着科技的发展,现代的计算机更加复杂,包括多重总线。接下面我们会以下面的图例来介绍各个部件。

一台简单的计算机图例

简单得理解各部分功能:

cpu:人的大脑,来负责运算。
内存:人的记忆,负责临时存储数据。
硬盘:人的笔记本,用来永久存储数据。
I(输入设备):人的眼睛、耳朵,来接收外界信息传给大脑。
O(输出设备):人的表情,负责经过处理后的结果。
总线:人的神经。

2.1中央处理器

  中央处理器即CPU,它是由计算机的运算器和控制器组成的。它的作用就是,从内存中:取指令→解码→执行,然后再取指令→解码→执行,周而复始直到整个程序完成。

  

  CPU要从内存中读取到数据花费的时间比较长,所以CPU内部有一些用来存储关键变量和临时数据的寄存器。

  寄存器的分类:  

  1.通用寄存器:保存变量和临时结果。
  2.程序计数器:保存了将要取出下一条指令的内存地址,方便CPU执行。指令被取出后,程序计数器被更新。
  3.堆栈指针:它指向了当前栈的顶端,该栈包含了已进入但是还没有退出的每个过程中的一个框架。
  4.程序状态字寄存器(PSW):存储了条位码,CPU优先级、模式(用户态或者内核态)及其他控制位。
 
  内核态与用户态
  大多数CPU都有两种模式。即内核态和用户态。通常PSW中有一个二进制位控制这2种模式。
  内核态:CPU在内核态状态下运行时,可以执行指令集中的所有指令。
  用户态:用户程序在用户态下运行,只能执行指令集中的子集,不包括操作硬件功能的部分。
 
  内核态与用户态之间的切换
  用户态状态下不能对硬件进行操作,这时候需要用户程序使用系统调用(system call),系统调用陷入内核并调用操作系统,TRAR指令把用户态切换成内核态。
 
  处理器设计的演变 

  1.最开始取值、解码、执行这三个过程是同时进行的,这意味着任何一个过程完成都需要等待其余两个过程执行完毕,时间浪费

  2.后来被设计成了流水线式的设计,即执行指令n时,可以对指令n+1解码,并且可以读取指令n+2,完全是一套流水线。

  

  3.超变量cpu,比流水线更加先进,有多个执行单元,可以同时负责不同的事情,比如看片的同时,听歌,打游戏。

  两个或更多的指令被同时取出、解码并装入一个保持缓冲区中,直至它们都执行完毕。只有有一个执行单元空闲,就检查保持缓冲区是否还有可处理的指令

  

  这种设计存在一种缺陷,即程序的指令经常不按照顺序执行,在多数情况下,硬件负责保证这种运算结果与顺序执行的指令时的结果相同。

  多线程和多核芯片  
  进程是资源单位而线程才是cpu的执行单位。
  多线程:多线程运行cpu保持两个不同的线程状态,可以在很短的时间快速的来回切换,让你看都的结果是并行的,伪并行的,一个CPU一个时刻只能处理一个进程。
  多核芯片:除了有多线程,后续还出现了拥有2个或者4个完整处理器的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执行的结果通过显示器显示出来,应用程序被启动。

原文地址:https://www.cnblogs.com/G-YUE/p/6530718.html