1.物理地址扩展 (PAE) 允许将最多64GB 的物理内存用作常规的4 KB 页面,并扩展内核能使用的位数以将物理内存地址从32扩展到36。
注意:单进程地址空间是不可能超过3G(一部分给了内核)。 如32bits Mysql:是单进程,多线程模型。所以Mysql最多只能用2.7G。
2.缓存能提高速度的基本前提是: 程序具有局部性。(CPU和内存RAM的速度不匹配,应用缓存机制,即一次性读取大量数据或者代码)。每个CPU都有自己的内置缓存,一级二级都是独有,三级一般共享,通过北桥和RAM连接。
3.固态硬盘就是可以支持并行读写的U盘,最好将之接在北桥上,速度更快。 不然接到South Bridge上,速度还是不明显。
4.CPU如何区分不同的IO设备,都挂载在同一总线上。
区分标志: IO端口号;一旦IO设备向CPU进行注册了,然后CPU就通过此端口去进行交互嘞。
5.CPU和IO设备进行交互,都是通过中断。
6.数据传输,使用DMA。使用低地址的地址空间,最容易被访问的,一般留出来给DMA用的,用来减少CPU的负载。(IO<--->DMA内存区域<--->硬盘)。
最后DMA要发起中断,报告CPU.CPU负责收回总线权利,继续执行。
-----------你度过的每个今天都是这辈子最年轻的一天--------------!!!
7.CPU运行多个程序时,进程调度。
Process,一个独立的运行单位。需要占用CPU,RAM,etc...
方法1:CPU让时间切片。
CPU内部含有指令计数器,指向的是下一条指令要执行的位置。进程切换需要保存现场,回来的时候得恢复现场。
那么这个现场被保存在什么位置呢?思考。。。
方法2: 内存
虚拟内存,进行物理内存<----->虚拟内存进行映射。
8.内核模式和用户模式:
Ring 0 :内核模式,特权指令模式。
Ring3 : 用户模式。
虚拟机运行在Ring3模式,那么无法获得特权指令运行权限。没办法,只能让你虚拟机运行在限制模式下,并且让虚拟机知道自己运行在限制模式下。
或者让软件【模拟】出一套硬件,给虚拟机使用。
-1 Ring的解释:要让虚拟机运行在Ring0 ,因为这样可以直接操作硬件,加速效率。但同时又剥夺了某些特权指令,防止对物理机的损害。 这样让物理机运行在-1Ring,虚拟机运行在Ring 0。(这样是硬件虚拟化技术来实现的。)
用户模式--> System Call--->Kernel mode. 一般来说,和IO进行交互都需要进行系统调用。
进程调度:进程队列。