网站建设的风险识别,php网站开发代做,南宁云尚网络,开发app需要的资源和团队目录 信号捕捉1.用户态与内核态1.1关于内核空间与内核态#xff1a;1.2关于用户态与内核态的表征#xff1a; 2.信号捕捉过程 信号捕捉
1.用户态与内核态
用户态#xff1a;执行用户代码时#xff0c;进程的状态 内核态#xff1a;执行OS代码时#xff0c;进程的状态
… 目录 信号捕捉1.用户态与内核态1.1关于内核空间与内核态1.2关于用户态与内核态的表征 2.信号捕捉过程 信号捕捉
1.用户态与内核态
用户态执行用户代码时进程的状态 内核态执行OS代码时进程的状态
1.1关于内核空间与内核态
进程地址空间分为用户空间(3G)和内核空间(1G)不同进程的内核空间是相同的通过同一张内核级页表映射到物理内存当调用系统调用接口或时间片到了需要执行进程切换逻辑时CPU会访问内核空间执行相应的OS的代码本质上还是在进程的地址空间内跳转。
1.2关于用户态与内核态的表征
在CPU中有一个叫CR3的寄存器保存了当前进程所使用的虚拟地址空间的页目录地址以及其他标志位用来表征执行级别比如在执行OS提供的系统调用时CR3中的执行级别会先被修改为内核态执行完从系统调用返回时又会将其设置为用户态据此CPU即可根据执行级别决定是否执行内核空间和用户空间的访问请求确保了用户不能随意访问OS的代码和数据只能借由OS提供的系统调用接口进行间接访问。
2.信号捕捉过程
由于时间片到了或者系统调用进程下陷到内核 -- 进入内核先完成当前优先级更高的任务 -- 执行完任务后通过内核空间访问进程PCB -- 检测PCB中的信号保存的三张表(block, pending, handler)依次检测一个信号 -- 如果方法为默认或忽略直接处理若为自定义则进入用户态执行捕捉方法 -- 执行完毕通过特定系统调用 sigreturn 回到内核态 -- 通过 sys_sigreturn()检查陷入内核时的上下文保护并恢复跳转到进入内核的位置继续执行后续操作 --