目录
一、计算机的组成
现在计算机由5个部分组成:CPU、存储器、输入设备、输出设备、总线。
CPU:由运算器和控制器组成。
存储器:计算机中的存储器包括内存和磁盘。
输入设备:如鼠标、键盘、扫描仪等。
输出设备:打印机、显示器等。
总线:负责计算机各种功能部件之间信息的传输。
二、处理器
计算机的核心CPU,其作用是从内存中取指令->解码->执行。
取指令:将程序从内存取到指令寄存器的过程。
解码:指令解码器对取出来的指令进行拆分解释。
执行:将解码以后的命令进行执行。
cpu会因为架构的不同,导致它的指令集会有所不同,所能执行的操作也会不一样。
由于访问内存得到指令或数据这个过程话费的时间要比cpu执行指令花的时间多很多,所以每个cpu都有单独用来存储变量和临时数据的寄存器。
计算机中的寄存器有4种:
通用寄存器:用来保存运算过程中所产生的变量和临时结果。
程序计数器:为了保证程序能执行下去,cpu需要有能存储下一条指令的功能,这也就是程序计数器的作用。
堆栈指针:用来保存有关参数、局部变量,以及没有存储在通用寄存器里的临时变量。其中,栈具有后面先出的特性;堆则是先进先出。
程序状态字寄存器(Process Satue Word,PSW):当程序运行的过程中,涉及到对硬件的访问时,cpu需要用它来控制程序访问权限的功能。
计算机同一时刻只能运行一个程序。在计算机运行多个程序的过程中,由于时间片的轮转,当程序停止运行时,会将所有寄存器都停止并保存,供下一次程序运行时调用。
处理器的演变:
1.最初的处理器由取指、解码和执行三个过程,但当执行其中一个过程时,另外两个过程都会停止,时间浪费严重。
2.后来采用流水线的方式,取指令n时,可以对指令n+1解码,执行n+2指令。
3.多条指令同时被取出、解码,并把这些指令保存在同一个缓冲区,直到他们都被执行。在执行效率比2更高的同时,但有可能出现程序的指令不按顺序执行的问题
内核态和用户态:
内核态:当cpu处于该状态时,程序可以执行所用的cpu指令集,包括对硬件的访问
用户态:与内核态相比,只能使用cpu部分指令集,不包括操作硬件的部分。同时也不能访问操作系统所占用的那部分内存。
用户态和内核态的切换,当用户程序要访问磁盘的文件时,该过程需要系统调度(system call),系统调用陷入内核态并调用操作系统,TRAP指令把用户态切换为内核态,并启用操作系统从而获得服务。
三、存储器
常用的存储器
1.寄存器:即L1缓存,位于cpu内。采用了和cpu同材质,可以匹配cpu的访问速度。
2.高速缓存:即L2缓存。经常用使用的数据存在里面。当程序要读取一个字,首先查找的是高速缓存,如果要查找的内容在高速缓存,则称之为“高速缓存命中”,该过程通常需2个时钟周期。若未找到,则会到内存中去找。
3.内存:计算机里的主存,也叫随机访问存储RAM,具有易失性,在断点以后数据会丢失。
除了上述RAM,还有非易失性随机访问存储ROM,典型的例子BIOS里的程序。还有EEPROM(电可擦除可编程ROM)和闪存(flash memory)都是非易失性的。
还有CMOS存储器,也具有易失性,主板上的CMOS需要额外电池供电,保存当前时间,BIOS的配置等。
4.磁盘:数据存放在一段一段的扇区,即一圈一圈的磁道里。
8bit=1bytes
1024bytes=1kb
1024kb=1Mb
1024Mb=1Gb
Linux中:一个扇区是512字节
8个扇区为1个block(512bytes*8=4kB)
从磁盘中读取数据需要经历寻道时间和延迟时间
平均寻道时间:机械手臂移动到相邻的柱面,到读取到所需数据的圈圈所需的最长时间和最短时间的均值。
平均延迟时间:机械臂到达正确的磁道后,仍要等待旋转到说要读取的数据的扇区的时间。
虚拟内存:在磁盘上划出一片区域充当内存的作用,但因磁盘访问速度比较慢,所以会将不怎么重要的数据存储到虚拟内存。但两者之间也保持映射关系,由cpu的一个部件MMU(Memory management unit)负责.
PS:从一个程序切换到另一个程序的过程叫“上下文切换”。
5.磁带:相比硬盘有更高的存储容量,但速度比较慢。常用在服务器或图书馆的重要文件备份。
四、I/O设备
I/O设备主要有两个部分:设备控制器和设备本身。
控制器主要负责控制设备的连接,从操作系统接收命令,数据交换。
设备本身:根据该接口的标准编写相应的驱动程序,安装到操作系统供调用。
五、总线
总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
计算机的总线可以划分为数据总线、地址总线和控制总线.
-
数据总线(Data Bus):在CPU与RAM之间传送需要处理或需要储存的数据。
-
地址总线(Address Bus):用来指定在RAM(Random Access Memory)之中储存的数据的地址。
-
控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号传送到周边设备,一般常见的为 USB Bus和1394 Bus。
PCI桥即北桥:连接高速设备
ISA桥即南桥:连接慢速设备
六、启动计算机
1.计算机通电。
2.BIOS开始运行,检测硬件:cpu、内存、硬盘等。
3.CMOS里保存的参数就会被调用,并启动相应的设备。
4.然后起动设备读取第一个扇区里的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)。
5.根据分区信息启动bootloader启动加载模块,启动操作系统。(同时这一块内存被保护起来)
6.操作系统询问BIOS,获取配置信息。检测每种硬件是否存在,若存在则操作系统就把他加载到内核。然后初始化有关表格,加载进程。
七、启动应用程序
1.双击桌面图标
2.操作系统切换到内核态从磁盘找到应用程序,并读入内存。
3.cpu从内存读取指令,并执行。
4.将结果显示在显示器。