《Linux内核设计与实现》
chp3 进程管理
常见的解决竞争的办法就是:自旋锁和信号量
在内核中,访问进程通常需要获得指向其pd的指针,实际上,内核中大部分处理进程的代码都是直接通过pd进行的,因此通过current宏找到当前正在运行进程的pd的速度很重要。硬件体系不同,该宏的实现也不同,他必须针对专门的硬件体系结构做处理。有的硬件体系结构可以拿出一个专门寄存器来存放指向当前进程pd的指针,用于加快访问速度。而像x86体系结构(寄存器不富裕),就只能在内核栈的尾端创建thread_info结构,通过计算偏移间接地查找pd。
一般程序在用户空间执行。当一个程序调执行了系统调用或者触发了某个异常,他就陷入了内核空间。此时我们称内核“代表进程执行”并处于进程上下文中。在此上下文中current宏是有效的。
系统调用和异常处理程序是对内核明确定义的接口,进程只有通过这些接口才能陷入内核执行--对内核的所有访问都必须通过这些接口。
chp3 进程管理
常见的解决竞争的办法就是:自旋锁和信号量
在内核中,访问进程通常需要获得指向其pd的指针,实际上,内核中大部分处理进程的代码都是直接通过pd进行的,因此通过current宏找到当前正在运行进程的pd的速度很重要。硬件体系不同,该宏的实现也不同,他必须针对专门的硬件体系结构做处理。有的硬件体系结构可以拿出一个专门寄存器来存放指向当前进程pd的指针,用于加快访问速度。而像x86体系结构(寄存器不富裕),就只能在内核栈的尾端创建thread_info结构,通过计算偏移间接地查找pd。
一般程序在用户空间执行。当一个程序调执行了系统调用或者触发了某个异常,他就陷入了内核空间。此时我们称内核“代表进程执行”并处于进程上下文中。在此上下文中current宏是有效的。
系统调用和异常处理程序是对内核明确定义的接口,进程只有通过这些接口才能陷入内核执行--对内核的所有访问都必须通过这些接口。
2021-03-23
在牛客打卡22天,今天也很努力鸭!
全部评论
相关推荐
点赞 评论 收藏
分享