刺眼的日光灯下正式打响。
没有现代化的集成开发环境,没有方便的代码纠错工具。
苏寒坐在工位前,盯着黑色的屏幕。屏幕上跳动着绿色的光标。
他的大脑在飞速运转。他需要将复杂的页面置换算法(Page ReplaCement AlgOrithm)转化为机器能够理解的指令。
键盘的敲击声在大厅里连成一片,就像是一场永不停歇的机械暴雨。
“啪啪啪啪……”
沉重的机械轴体在手指的按压下发出清脆的回弹声。
时间在这里失去了意义。没有白天黑夜的交替,只有食堂按时送来的铝盒饭和不断更换的浓茶。
第三周。 苏寒所在的第六组遇到了致命的逻辑死结。
他们编写的内存调度代码,在模拟运行简单的多任务读写时,总是会在运行到第三十分钟左右发生系统崩溃。屏幕上会突然弹出一长串毫无规律的十六进制乱码,然后主机发出死机报警的长鸣。
“又死锁了!”旁边的一名老教授烦躁地拍了一下键盘,摘下老花镜,痛苦地揉着太阳穴。
“指针地址在发生堆栈溢出,可是我检查了三遍汇编代码,循环逻辑没有任何问题。” 苏寒盯着屏幕上死机前定格的最后一行代码。
他的双眼布满红血丝,头发已经长得很长,乱蓬蓬的像个鸟窝。 他已经连续工作了三十个小时,只靠着两杯特浓的苦丁茶吊着精神。
“不是循环逻辑的问题。”苏寒的声音沙哑,像是在自言自语。 他拿过几张空白的草稿纸,开始在上面画出内存块的寻址地图。
“是中断优先级冲突。”苏寒的笔尖在纸上快速划过,“当软盘驱动器发出读取数据的硬件中断请求时,正好碰上了我们的内存回收子程序在执行关键区的内存释放。两个指令争夺同一个内存地址的控制权,系统不知道该听谁的,所以死锁了。”
“必须在回收子程序执行前,强行屏蔽掉所有非致命的硬件中断。等内存释放完毕后,再重新打开中断允许标志位。” 苏寒转过身,双手在键盘上飞速敲击。 CLI ...执行内存释放... STI 加上这几行底层控制代码后。 重新编译,运行。 系统稳定运转了两个小时,没有再出现乱码崩溃。 老教授看着屏幕,长长地出了一口气,向苏寒投去了赞许的目光。
这种在代码泥潭里的挣扎和突破,每天都在大厅的各个区域上演。
这是一种
…。。本站若有图片广告属于第三方接入,非本站所为,广告内容与本站无关,不代表本站立场,请谨慎阅读。
Copyright © 2020 机遇书屋 All Rights Reserved.kk