计算机基础
BIOS:基本输入输出系统
PSW:程序状态寄存器
RAM:随机访问存储器
ROM:只读存储器
CMOS存储器:保存BIOS设置完电脑参数后的数据
SWAP:虚拟内存
MMU:内存管理单元
PCI:即北桥 连接高速设备
ISA:即南桥 连接慢速设备
一、计算机的发展过程
1、 1946年—1957年 电子管时代
2、 1958年—1964年 晶体管时代
3、 1965年—1970年 集成电路时代
4、 1971年至今 大规模超大规模集成电路
冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。
二进制是逢2进位的进位制。
二、计算机的构成
计算机是由硬件系统和软件系统两大部分组成的。
硬件系统主要有五大部分组成:运算器、控制器、存储器、输入设备、输出设备。
运算器:是负责算术运算与逻辑运算。与控制器共同组成了中央处理器(CPU)。
控制器:是负责发送和接收指令。
存储器:是用来存储正在进行程序、将要进行程序的数据及刚处理完的数据。
输入设备:是用来进行输入的设备。如键盘,扫描仪等。
输出设备:是用来进行输出的设备。如显示器,音箱等。
主板:主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS芯片、I/O控制芯片、键和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件。
BIOS是英文"Basic Input Output System"的缩略语,即"基本输入输出系统"。是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
I/O控制芯片:负责提供串行、并行接口及软盘驱动器控制接口。
三、计算机系统
计算机系统包括硬件系统和软件系统。
软件分为系统软件和应用软件。
系统软件:系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。
硬件、软件及用户的关系:
硬件是基础,硬件需要通过系统软件控制来启动硬件,并让各个硬件之间相互协同工作,在系统软件的基础上是用户,用户操控的是系统软件,并在系统软件的基础上安装相应的应用软件,来完成用户所需要的工作。所以说最底层的是硬件,硬件上一层是系统软件,系统软件上一层是应用软件,而最上层的则是用户。
四、计算机的工作原理
执行一条指令可分为以下3个基本操作:
1、取出指令:从存储器某个地址中取出要执行的指令送到CPU内部的指令寄存器暂存。
2、分析指令:把保存在指令寄存器中的指令送到指令译码器,译出该指令对应的微操作。
3、执行指令:根据指令译码,向各个部件发出相应控制信号,完成指令规定的各种操作。
总结:
五、寄存器
寄存器的分类:
1、通用寄存器:
2、程序计数器:程序计数器是用于存放下一条指令所在单元的地址的地方(先进先出)。
3、堆栈指针:它是按"先进后出"的原则存取数据,它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。
4、程序状态寄存器(Program Status Word,PSW),用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常重要。
六、处理器设计的演变
1、取值、解码、执行
2、流水线式,执行指令n时,可以对指令n+1解码,并且可以读取指令n+2,完全是一套流水线
3、超变量cpu,比流水线更加先进,有多个执行单元,可以同时负责不同的事情
两个或更多的指令被同时取出、解码并装入一个保持缓冲区中,直至它们都执行完毕。只有有一个执行单元空闲,就检查保持缓冲区是否还有可处理的指令
这种设计存在一种缺陷,即程序的指令经常不按照顺序执行,在多数情况下,硬件负责保证这种运算结果与顺序执行的指令时的结果相同。
七、内核态和用户态
除了在嵌入式系统中的非常简单的CPU之外,多数CPU都有两种模式,即内核态与用户态。通常,PSW中有一个二进制位控制这两种模式
内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)
用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的
内核态与用户态切换
用户程序必须使用系统调用(system call),系统调用陷入内核并调用操作系统,Trap指令把用户态切换成内核态,并启用操作系统从而获得服务。
在系统调用中,Trap负责由用户模式转换为内核模式,并将返回地址保存至堆栈中以备后用。
异常处理
需要强调的是,计算机使用TRAP来执行系统调用,多数的TRAP是由硬件引起的,用于警告有异常情况发生,如试图I/0等操作。在所有的情况下,操作系统都得到控制权并决定如何处理异常情况,有时,由于出错的原因,程序不得不停止。在其他的情况下可以忽略出错,如果程序已经提前宣布它希望处理某类异常时,那么控制权还必须返回给程序,让其处理相关的问题。
八、多线程和多核芯片
I.第一步增强:在cpu芯片中加入更大的缓存,一级缓存L1(寄存器),用和cpu相同的材质制成,cpu访问它没有时延
II.第二步增强:intel公司首次提出,称为多线程(multithreading)或超线程(hyperthreading),对用户来说一个有两个线程的cpu就相当于两个cpu,我们后面要学习的进程和线程的知识就起源于这里,进程是资源单位而线程才是cpu的执行单位。
多线程运行cpu保持两个不同的线程状态,可以在纳秒级的时间内来回切换,速度快到你看到的结果是并发的,伪并行的,然而多线程不提供真正的并行处理,一个cpu同一时刻只能处理一个进程(一个进程中至少一个线程)。
III.第三步增强:要使用多核芯片需要多核操作系统
AMD多核芯片L2缓存在CPU外面
九、存储器:
寄存器即L1缓存
高速缓存即L2缓存
第一级缓存称为L1总是在CPU中,通常用来将已经解码的指令调入cpu的执行引擎,另外往往设计有二级缓存L2,用来存放近来经常使用的内存字。L1与L2的差别在于对cpu对L1的访问无时间延迟,而对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。
内存:
再往下一层是主存,主存通常称为随机访问存储器RAM(random access memory),就是所说的内存,所有不能再高速缓存中找到的内存字,都会到主存中找,主存是易失性存储,断电后数据全部消失
除了主存RAM之外,许多计算机已经在使用少量的非易失性随机访问存储如ROM(Read Only Memory,ROM),在电源切断之后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,然后再也不能修改。ROM速度快且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制。
EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存通常作为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。
还有一类存储器就是CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的配置和时间等都将丢失。
CMOS是电脑主板上的一块可读写的RAM芯片,因为可读写的特性,所以在电脑主板上用来保存BIOS设置完电脑硬件参数后的数据,还保存计算机基本启动信息(如日期、时间、启动设置等),这个芯片仅仅是用来存放数据的。
十、磁盘
每个磁道划成若干扇区,扇区典型的值是512字节
平均寻道时间
机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻道时间。
平均延迟时间
机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间。
十一、虚拟内存
许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)。
Swap分区:在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
MMU:是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。
PS:从一个程序切换到另外一个程序,成为上下文切换(context switch),缓存和MMU的出现提升了系统的性能,尤其是上下文切换
磁带:容量大,常用来备份
十二、I/O设备
CPU和存储器并不是操作系统唯一需要管理的资源,I/O设备也是非常重要的一环。I/O设备一般包括两个部分:设备控制器和设备本身。
控制器:控制器负责控制连接的设备,它从操作系统接收命令,然后就对设备发起读请求。
控制器的功能:为操作系统提供一个接口。
设备本身:有相对简单的且标准的接口,这样大家都可以为其编写驱动程序了。
要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。
总线:
北桥即PCI桥:连接高速设备
南桥即ISA桥:连接慢速设备
十三、启动计算机
在计算机的主板上有一个基本的输入输出程序(Basic Input Output system)。BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中。
启动流程:
1、计算机加电;
2、BIOS开始运行,检测硬件:cpu、内存、硬盘等;
3、BIOS读取CMOS存储器中的参数,选择启动设备;
4、从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位);
5、根据分区信息读入bootloader启动装载模块,启动操作系统;
6、然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),上传需要的进程,并在每个终端上启动登录程序或GUI。