字体:大 中 小
护眼
关灯
上一章
目录
下一章
第670章 活过来的盘古之心!
第(1/3)页
二十四小时。
对于西山基地的核心实验室来说,这不仅仅是一个时间单位,更像是一道军令状。
在经历了“内核恐慌”带来的短暂崩溃后,整个“天枢”项目组,爆发出了一种知耻而后勇的,近乎疯狂的工作热情。
没有人抱怨,没有人休息。
所有人都憋着一股劲,要将那个“思想钢印”留下的耻辱,彻底洗刷干净。
黄建功再次坐到了主控台前。
这一次,他的眼神中没有了初次编写时的激动与忐忑,只剩下一种如同磐石般的沉稳和绝对的精准。
他首先打开了那份《天枢内核V0.1设计规范》的电子文档。
在PCB(任务控制块)的数据结构定义中,他找到了通用寄存器备份区的末尾,果断地敲下了回车,增加了一个新的条目。
【字段名:`task_stack_pointer`】
【偏移量:72】
【大小:4字节】
【描述:用于保存该任务私有堆栈的栈顶指针。】
这个小小的改动,就像是在原本的建筑图纸上,为每一间房屋,都增配了一个独立的下水管道。
一个看似微小,实则从根本上解决了所有问题的改动。
设计规范修改完毕。
接下来,就是最艰难的代码重写工作。
“孙立国!”黄建功头也不抬地喊道。
“到!”孙立国立刻应声,他手里拿着更新后的指令集,神情专注。
“重写`task_create`函数!注意,调用‘女娲’内存管理模块的`malloc`函数两次!一次为PCB分配空间,一次为新任务的私有堆栈分配空间!堆栈大小暂定为1024字节!”
“明白!”
另一边,钱学敏正带领着“架构理论”组,激烈地讨论着。
“不行!1024字节的固定堆栈大小太浪费了!如果一个任务只是打印字符,可能只需要几十个字节。如果一个任务需要进行复杂的递归运算,1024字节可能又不够用,会导致堆栈溢出!”
“我同意!应该设计成可配置的!在创建任务时,可以指定需要的堆栈大小!”
“这个可以放到V0.2版本里去优化!当前V0.1版本的首要目标,是跑通!是稳定!先用固定大小,简单粗暴,但最不容易出错!”
争论很快达成了一致:先生存,再优化。
黄建功听着耳边的讨论,手中的动作没有丝毫停顿。
他已经开始重写整个项目的核心——`task_yield`函数。
他的手指在键盘上敲出一行行冰冷的二进制代码,大脑却在以恐怖的速度进行着多线程工作。
他要修改的,不仅仅是增加一条切换SP(堆栈指针)寄存器的指令那么简单。
他要重构整个上下文切换的逻辑。
(本章未完,请翻页)
记住手机版网址:m.lewenwx.cc
上一章
目录
下一章