1、冯诺依曼体系
计算机基本结构分为:运算器、控制器、存储器、输入设备和输出设备。
运算器(完成运算指令,整数、浮点数运算单元(逻辑运算单元、寄存器))和控制器(控制整个CPU工作,取指令、分析指令)在CPU中。
存储器在内存中。
键盘鼠标输入设备。
显示器输出设备。
总线分为:
1、地址总线:用于指定CPU将要操作的内存地址。
2、数据总线:用于读写内存的数据
3、控制总线:用于发送和接收信号,比如中断复位等信号,CPU收到信号后进行响应,这个时候需要控制总线。
CPU操作一条指令,读取一条数据一般需要两条总线:
首先要通过总线来指定内存的地址,再通过数据总线来传输数据。
程序执行的基本过程:
CPU执行程序的过程如下:
1、第一步,CPU通过读取程序计数器的值,这个值是指令的内存地址,然后CPU控制单元操作地址总线指定需要访问的内存地址;接着
通知内存设备准备数据,数据准备好后通过数据总线将指令传给CPU,CPU收到内存传来的数据后,将这个指令存入到指令寄存器。
2、第二步,CPU分析指令寄存器的指令,确定指令的类型和参数,如果是计算类型的指令,就把指令交给逻辑运算单元,如果是存储指令交给控制单元执行。
3、第三步,CPU执行完指令后,程序计数器的值自增,表示指向下一条指令。这个自增的大小,由CPU的位宽决定,比如32位的CPU,指令是四个字节,需要4个内存地址存放,因此程序计数器需要自增4。
程序a=1+2执行的具体过程:
CPU不认识a=1+2这个字符串,这些字符串必须翻译为机器码。需要这个程序跑起来,需要将程序翻译为汇编语言程序,这个过程称为编译成汇编代码。
针对汇编代码,我们还需要用汇编器翻译成机器码,这些就是二进制机器码,一条一条的机器指令,CPU能知道的东西。
bios程序通常是固化存在只读存储器(ROM)中。
程序的执行过程:
计算机
陷入:
一种是用户态,一种内核态,内核态可执行所有指令特权指令和非特权指令,用户态只能执行非特权指令系统中硬件全是操作系统所控制的,
所以当应用程序使用硬件设备等,这个时候系统会产生一个陷入指令,将状态从用户态切换到内核态,然后交给操作系统去执行。
中断:
中断是外部事件导致并且它发生的时间不可预测,外部事件主要是时钟中断,硬件中断等。由于CPU一次只能运行一条指令,所以只能有一个程序运行。
顾名思义由硬件引起中断,比如程序需要用户输入一个数据,操作系统决定是一直等待输入还是转而运行其他进程。如果用户的输入来了,那么键盘驱动器
会产生一个中断操作系统,操作系统保存正在运行的程序状态,从而切换到原来的数据。
所以中断发生是随机的主要作用就是进程切换。从而支持CPU和设备之间的并行。
异常:(内中断)
异常就是程序执行过程中的异常行为,除零异常,缓冲区异常等。不同操作系统定义了不同种类和数量的异常,且每个异常都有一个唯一的异常号,异常会扰乱程序的正常执行流程。