0
点赞
收藏
分享

微信扫一扫

560_linux内核学习_sched.c文件sched_init函数分析


         全部学习汇总: ​​https://github.com/GreyZhang/little_bits_of_linux​​

         今天看看这个sched.c的文件中的sched_init函数,且不说能够收获什么,看完这个函数肯定能够让我松一口气。看完这个,这个文件的分析学习也就到此为止了。

         首先应该是有一个数据类型应该是先了解看看:

560_linux内核学习_sched.c文件sched_init函数分析_数组类型

         应该说是一个结构体而不是一个数据类型了,具体的定义如下:

560_linux内核学习_sched.c文件sched_init函数分析_初始化_02

         这里定义了一个数据类型,其实这是我第一次见到这样的用法。疑惑了一下,我自己写了一段测试代码验证了一下,这个desc_table类型其实是一个数组类型了。从存储占用上就能够看得出。我的测试代码如下:

560_linux内核学习_sched.c文件sched_init函数分析_数据类型_03

         运行效果:

560_linux内核学习_sched.c文件sched_init函数分析_初始化_04

         继续看整个函数的前半段:

560_linux内核学习_sched.c文件sched_init函数分析_数组类型_05

         这里首先有一个结构体大小的判断,接下来看看这个结构体的定义。

560_linux内核学习_sched.c文件sched_init函数分析_数据类型_06

         从分析来看的话,应该是没问题的。

560_linux内核学习_sched.c文件sched_init函数分析_数据类型_07

         继续往下的这些部分,循环结构好理解,所有的任务的初始化。其他的部分,屏显和汇编居多。多次遇到的系统调用,其实是在这里注册的ISR服务。

         整个代码的注释状态:

560_linux内核学习_sched.c文件sched_init函数分析_数据类型_07

         好,这次的学习到此收尾。终于消磨完了一个文件,继续下面的学习。


举报

相关推荐

0 条评论