1、增加任务的HASH表,HASH值是任务的PID,这样通过任务的PID就能查找到任务的task_struct。
2、增加任务挂起队列、死亡队列。
- 运行态的任务在运行队列。
- 被挂起的任务在挂起队列。
- 被杀死的任务在死亡队列。
3、增加任务挂起函数、任务唤醒函数、任务杀死函数、任务清理函数。并增加相应的系统调用。
- sys_suspend_task把在运行队列上的任务移动到挂起队列。
- sys_resume_task把在挂起队列上的任务移动到运行队列。
- sys_delete_task把在运行队列或挂起队列上的任务移动到死亡队列。
- sys_clear_task清理死亡队列上的任务,并回收资源。
在操作系统中,双向链表用处很多,因此需要设计好双向链表,重用代码。
对任务管理模块的扩展都在task.c文件中,源代码请看 http://blog.csdn.net/metaxen/article/details/6747631。