陈教授来的时候,是个大晴天。
九月初的北京,热浪从地面蒸起来,把远处的楼宇烤得发虚。
一辆草绿色的吉普车停在红星所门口,陈教授从副驾驶下来,手里拎着一个军绿色的帆布包,包带在肩上勒出一道深痕。
他穿着短袖白衬衫,领口的扣子解了一颗,露出晒得黝黑的脖颈。
头发花白,但梳得一丝不苟,眼镜片后面的眼睛不大,却很亮,像两颗打磨过的黑石子。
宋颜教授和吕辰已经等在门口。
“陈教授,辛苦了。”宋颜迎上去,接过帆布包,沉甸甸的,里面全是资料。
陈教授摆摆手,在台阶上站定,抬头看了看主楼上“红星工业研究所”几个大字,然后低头看了看表:“不辛苦,时间紧。机房准备好了?”
“准备好了。”
“数据库的框架写完了,我今天把微程序装上,跑通之后,你们就可以开始填数据了。”
他顿了顿:“另外,汪教授那边的分布式调度微程序也编译好了,存在二维卡里,我一并带过来了。”
他又补了一句:“三百多张卡,装了两个箱子,在后备箱里。”
宋颜眼睛一亮:“微程序也好了?”
“好了。”陈教授一边往车子后面走,一边说,“汪教授带着人熬了六个多月,调度器的核心代码写了1万多条指令。已经在计算机所的模拟环境里跑通了基本功能,任务分发、负载均衡、结果回收。但还没在你们这个16节点的真机上跑过。今天一并试。”
三个人走到后备箱,两个木箱子和那个帆布包,一人抱一个,往右附楼走。
机房的铁门开着,冷气从门缝里溢出来,在走廊里凝成一层薄薄的白雾。
陈教授站在门口,没有立刻进去,而是先透过门上的玻璃窗往里看了几秒。
“好。”他轻轻说了一个字,推门进去。
冷气扑面而来,干燥,带着一种电子设备特有的气味,焊锡、松香、还有一点臭氧。
陈教授把帆布包放在管理员桌上,宋颜教授和吕辰把两个木箱子放在地上,撬开盖子。
里面是码得整整齐齐的二维卡,每一张都用牛皮纸信封封装,信封上贴着标签,写着程序模块名称、版本号、日期和负责人签名,信封里还有具体的指令文本。
字迹工工整整,一丝不苟。
陈教授从帆布包里抽出一沓厚厚的资料,翻开第一页,是一张手绘的系统架构图。
中央是一个大方块,写着“调度器”,周围围着16个小方块,代表16台KJ-0A,线缆连接成星型和环型的混合拓扑。
“我先讲一下整体设计。”他把图纸摊在管理员桌上,宋颜、吕辰、诸葛彪、钱兰、曾祺、陈工都围过来。
“分布式辅助设计系统,分成三层。”
他竖起一根手指:“最底层,是硬件和通信。16台KJ-0A,星型网连存储柜,环状网做协同。这一层你们已经跑通了,我不多说。”
竖起第二根手指:“中间层,是调度器。跑在16台机器中的一台,我们叫它‘主控节点’。它负责任务的接收、分解、分发、监控、回收。工程师坐在任何一台终端上提交一个仿真任务,调度器会根据当前各节点的负载,决定把任务分给哪台机器去算。算完了,结果返回给终端,同时存入存储柜。”
他顿了顿,竖起第三根手指:“最上层,是应用软件。标准单元库的数据库管理程序、版图编辑器的交互程序、仿真器的前端界面。这些是你们红星所要自己写的,理论组只提供底层调用的接口。”
陈教授讲得很细,从任务队列的数据结构,到节点负载的衡量标准,到故障节点的检测与隔离。
吕辰一边听一边在笔记本上记,偶尔提问。
钱兰问的是数据一致性,如果主控节点把同一个任务分给了两台机器怎么办?
陈教授说调度器里有一个“任务去重表”,每个任务有唯一编号,分出去之前先查表,分出去之后立刻写入。
诸葛彪问的是环网通信的可靠性,如果令牌在传输过程中被干扰了怎么办?
陈教授说微程序里实现了超时重传机制,发送方发出令牌后启动定时器,如果在规定时间内没收到应答,就重发。连续三次失败,就判定节点故障,启动隔离流程。
其他人也纷纷提问。
一个小时后,方案讲完了。
陈教授合上资料,看着所有人:“有问题吗?现在提。等装上去了再改,麻烦。”
沉默了几秒。
吕辰说:“有一个问题。如果主控节点自己死机了怎么办?”
陈教授看了他一眼,嘴角微微翘了一下:“这个问题,汪教授想到了。所以调度器不是单点,而是双机热备。两台机器同时运行调度器,一台主用,一台备用。主用每十秒钟向备用发送心跳。如果备用连续三次没收到心跳,就自动接管。工程师终端上的任务提交接口有两个地址,主用连不上就切备用。”
这章没有结束,请点击下一页继续阅读!