1、计算机硬件

本篇导航:

 

一、计算机硬件与编程语言

1、编程语言的作用

编程语言也是一种语言,语言是用来交流。和中国人交流用普通话;和外国人交流用英语;同理和计算机交流需要用编程语言。程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质

2、计算机硬件与编程语言

编程语言主要的作用是开发软件。这些软件必然会占用计算机硬件的资源,而这些软件并不能够直接控制硬件,如果去研究硬件会严重影响我们的开发效率。因此软件会通过操作系统对硬件进行控制,即操作系统为软件提供简单的接口。


 

二、计算机硬件

1、硬件总介

计算机硬件一般而言由:系统主板、中央处理器及CPU、内存、显卡、硬盘、光驱、输入输出设备等。

 2、CPU

CPU作为计算机中最重要的硬件,主要负责控制各个硬件及进行各种运算(包括数字运算以及逻辑运算)。它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。

因CPU运行速度远远大于内存,所以在CPU中都有一些用来保存关键变量及临时数据的寄存器,也称为一级缓存,其中一种比较特殊的寄存器叫做程序状态字寄存器(Program Status Word, PSW)。多数CPU都有两种运行模式:内核态用户态,通常程序状态字寄存器中有一个二进制文件控制这两种模式。

内核态:运行的是操作系统的内核,可以操作硬件(可以获取CPU的所有指令集)

用户态:运行的是应用程序,不可以操作硬件(可以获取CPU指令集的一个子集,不包括控制硬件的指令集)

用户态下工作的软件不能操作硬件,但是我们的软件比如暴风影音,一定会有操作硬件的需求,比如从磁盘上读一个电影文件,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用,系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

3、储存器

3.1 L1缓存

  L1缓存就是寄存器,其容量小于1kb,但访问时间极短,材质与CPU相同。CPU访问无延迟。

3.2 L2缓存

  L2缓存是高速缓存,容量高于寄存器,访问时间略高于寄存器。

3.3 内存RAM

  是易失性存储,断电后全部消失。调用数据时,磁盘里的数据会传到内存中以便进行进一步的调用、处理。

3.4 EEPROM

  EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存通常作为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。

3.5 CMOS与BIOS电池

  CMOS是易失性的,常用于保持时间和日期。也可以记忆哪个是启动磁盘等。通过BIOS电池供电,可运行数年。

4、硬盘

4.1 硬盘结构

  硬盘断电后数据不会消失,所以用于存储用户数据和文件。

  硬盘最主要的组成部分为盘片和磁头,一般每块硬盘都包含多个盘片,而每个盘片上下各有一个磁头。

  磁头在盘片上读取的相同半径的一圈,称为磁道,所有盘片相同半径的磁道称为一个柱面。每个磁道又可划分为多段圆弧,叫做扇区,扇区最典型的大小是512 Bytes(字节),数据就存放在一段段的扇区中。其中,第一个扇区中存放着主引导记录(MBR),前446Bytes为引导信息,64Bytes为分区信息,最后2Bytes为标志位。

  从磁盘读取数据需要经历寻道时间和延迟时间。其中有两个概念叫做平均寻道时间平均延迟时间

  平均寻道时间指的是硬盘在接收到系统指令后,磁头从开始移动到移动至数据所在的磁道所花费时间的平均值,它在一定程度上可以体现硬盘读取数据的能力。而在磁头移动到数据所在的磁道之后,并不一定就直接落在数据所在的扇区,磁头再移动到数据所在扇区所用的时间称为平均延迟时间

4.2 虚拟内存

  许多计算机支持虚拟内存机制,它可以使电脑运行大于自身内存的程序,虚拟内存其实是从硬盘中划分出的一块区域,其工作原理是将目前要使用的程序放入内存中执行,暂时用不到的部分程序放入虚拟内存。

5、磁带

  磁带的读写速度很慢,但由于其成本低和容量大的特性,常用于作备份。

6、总线

 总线(Bus)是计算机各功能部件之间传送信息的公共通信干线。

北桥即图中的PCI桥,它连接的都是一些高速设备,南桥即图中的ISA桥,它连接的都是一些低速设备。


 

三、驱动程序

驱动程序是连接操作系统和硬件的重要部分,它通过操作系统来控制硬件。因为不同厂商的标准不同,如果系统单独为每一个硬件编写程序,工作量将无比庞大且兼容性很差,所以厂商一般为自家出厂的硬件编写驱动程序。


 

四、操作系统和应用程序的启动流程

1、操作系统的启动流程

  开机后,计算机通电,BIOS(Basic Input Output System)开始运行,检测各硬件(CPU、内存、硬盘等),然后BIOS通过储存在CMOS中的配置文件在多个存储设备中识启动盘,然后读取启动盘中主引导扇区中的主引导记录(MBR),通过加载其中的bootloader装载模块(例如GRUB)启动系统。然后操作系统询问BIOS,获取所有硬件的配置信息,检测各硬件是否都有驱动程序,一旦所有驱动程序全部加载,操作系统会将其调入内核,然后将系统内核(kernel)加载至内存来启动系统,该部分存放操作系统的内存为受保护内存,其他程序不可使用。

2、应用程序的启动流程

  前提:应用程序是运行于操作系统之上的

  打开快捷方式后,操作系统通过路径找到源文件并执行,此时CPU由用户态切换到内核态,读取硬盘中应用程序的代码调入内存,CPU从内存中读取代码执行,执行后内核态切回用户态,将执行结果显示在操作系统中。

 

posted @ 2017-07-13 16:15  布吉岛丶  阅读(305)  评论(0编辑  收藏  举报