这周也没看多少,不知道我还能坚持多久
1. Linux中进程硬件上下文一部分存在TSS段,一部分存
在内核态堆栈中。
2. Linux不使用硬件上下文切换,但仍为每个CPU创建一
个TSS,因为(1)CPU从用户态切换到内核态时,需从TSS中
取内核态堆栈的地址(2)I/O许可位图存在TSS中,硬件上
下文被保存在thread_struct中。
3. 在硬件上下文切换时设置cr0寄存器中的TS标志,当执
行ESCAPE、MMX、SSE或SSE2指令且TS被设置时,产生异常
,用异常处理程序加载浮点寄存器(懒加载)
4. Linux进程:(1)写复制使父子进程读相同的物理页,
写却并不冲突(2)轻量级进程允许父子进程共享内核数据
结构(3)vfork父子进程共享内存地址空间且阻塞父进程。
几个重要的函数:clone,do_fork,copy_process,do_group_exit,do_exit,release_task。
5. CPU产生的称同步中断,也叫异常;硬件产生的称异步中断,也叫中断;
中断: 可屏蔽的,屏蔽时控制单元忽略它
非屏蔽的,CPU来辩认
异常:
处理器探测异常
故障:可以纠正,重新执行产生故障的指令 陷阱:重新执行下一条指令
异常中止:只能中止
编程异常:(软中断)用途:(1)系统调用(2)报告调试程序
非屏蔽中断和异常的向量是固定的,可屏蔽中断的向量是可设置的
中断的约束:(1)只处理必须的尽快完成(2)尽可能支持终端嵌套(3)关中断,尽可能少禁止的中断不能丢失
6. IRQ线的个数,限制为15个
APIC:I/O高级可编程控制器
IPI处理器间中断,被Linux用来在SMP的CPU间交换信息