阅读linux内核源代码,看到了sched.c文件。这是内核中比较核心的一个功能了,我可以做一个精读。这次先来看看_BLOCKABLE的功能。
_BLOCKABLE在这个代码中其实用到的位置也只有一个,用于处理信号。
关于这部分的代码实现如下:
相应的实现分析我也在注释中写了,接下来做一个测试看看我的理解是否正确。
最终的数据处理结果我转成了二进制的显示形式。printf没有二进制的输出模式,而linux上没有itoa函数,因此我做了一个按位的循环输出。
代码的编译运行效果如下:
这样,结合输出的信息就能够看得出分析的正确性了。