>

Linux Kernel Map

Operting System

操作系统环境
进程线程模型
处理器调度
同步机制
存储模型
文件系统
I/O系统
死锁

内存泄漏检测

死锁检测

活锁

操作系统环境

CPU:运算器、控制器、通用寄存器、控制和状态寄存器(PC、IR、PSW)、高速缓存
CPU状态:内核态(特权指令R0)、用户态(用户R3)
中断/异常机制:CPU暂停当前执行程序,保留现场,硬件自动转去处理程序,处理完后回到断点,继续被打断的程序
事件:中断响应外部事件,异步处理,总是返回下一条指令,如I/O、时钟、硬件故障;异常源于内部正在执行的程序,同步处理,分为陷入、故障、终止,如系统调用、页故障、断点、权限保护、程序
中断响应(硬件):指令周期末扫描中断寄存器,CPU切换到内核态,保存现场(PSW+PC),通过中断码查中断向量表(中断处理程序入口+处理机状态字),推送中断处理程序入口到寄存器
中断处理程序(软件):保存相关寄存器信息,分析发生原因。执行处理功能,恢复现场
系统调用:用户在编程时可以调用的操作系统功能,如进程控制、通信、文件使用、目录操作、设备管理、信息维护
程序调用:应用程序可以通过库函数和API进入系统调用,也可直接引发系统调用,系统调用再调用对应内核函数
系统调用设计:中断/异常机制(支持系统调用服务的实现),陷入指令(引发异常,用户态切换到内核态),系统调用号和参数(不同系统调用的编号),系统调用表(服务程序的入口地址),参数传递(陷入指令自带、通用寄存器、内存中专用堆栈区)
系统调用过程:CPU执行到特殊的陷入指令;中断硬件保护现场,通过门描述符(段选择符+偏移量)查系统调用表;转入查到的系统调用总入口程序,保护现场,保存参数到内核堆栈,通过系统调用号查系统调用表;执行查到的系统调用例程;恢复现场,返回用户程序