十一月初。
又是双休日。
江寒差不多一整天待在寝室里,捧着笔记本电脑,敲代码。
其他人也都挺忙。
吴理舒在刷高数题,于树在背英语单词,裴必盛则躺在床上,拿着手机,努力上荣耀三星……
没错,大江公司的MOBA手游已经公测了。
这款明显有着模仿LOL端游痕迹的大型手游,一上线就引爆了手游市场。
在线人数天天创新高,流水周周破纪录。
要不是还有着更加远大的人生规划,以及某种来自“命运”的压力,江寒现在就可以退学回家,天天数钱玩!
“嗳,老江,看你一整天都没动地方,忙什么呢?”
问话的是周新星,他和江寒相处得挺好,说话很随意。
当然,寝室里所有人都和江寒关系不错。
有钱,有能力,又有人脉,这样的人,不管走到哪,都很容易成为核心……
江寒没抬头,手下继续狂敲键盘:“做毕业设计。”
“毕业设计?”周新星一愣,以为自己听错了。
其他三个人也放下了手中的事情,纷纷看向江寒。
大一上学期刚过完一半,这就开始搞毕业设计了?
江寒耸耸肩:“还不是张院长,给我安排了个破活儿,说我本科阶段也没啥要学的了,做完这个东西就可以毕业了。”
裴必盛一阵无语:“还有这么好的事儿?这得省去多少学费和宝贵时间啊!”
江寒叹了口气:“关键他还说:啥时候做完,啥时候才能给我发证……”
意思很简单,不做完不给毕业!
江寒上次做的那个课题,不但提前结题了,听说还拿了个什么部门的科技进步奖。
江寒估计,老张这是有点得寸进尺、得意忘形了。
也不考虑一下,自己才大一……
江寒手下不停:“这东西倒不算很难搞,就是挺费工夫的,只能抓紧点时间了……”
“说了半天,你这个毕业设计,它到底是什么啊?”吴理舒忍不住插话。
“一个操作系统,大型机上用的。”江寒随口回答。
众人大惊失色。
操作系统,大型机……
这俩词放在一起,怎么光是听着,就让人有点胆战心惊呢?
张大院长这么不靠谱的吗?
这种规模的工程,只怕至少需要几十个人,一起攻关好几年吧?
吴理舒等人面面相觑,跟着不约而同,一齐长舒了口气。
好在院长大人只“针对”江寒,要是他们的毕设也是这种规模……
只怕拼到头发掉光,也别想正常毕业了。
裴必盛沉思良久,悄悄地收起了手机,摸出一本教材,开始埋头苦读。
——再玩下去,他怕自己毕不了业……
两个小时后,到了饭点。
好不容易又到了周末,几个人商量了一下,决定去校外改善下伙食。
江寒无可无不可。
当下五人迅速出门,打车来到一家米其林三星。
地方是江寒挑的,至于原因……
这家店的特色招牌菜里,赫然有道“鲜辣红极参”!
几个人进入店中,团团围坐在一起。
江寒直接点了10份“鲜辣红极参”,然后手一挥:“这些是给我自己的,你们想吃啥,自己随便点,今天我请。”
吴理舒、于树:“江哥大气!”
裴必盛本来还想争取这个请客的机会,但在看了“鲜辣红极参”的标价后,又默默坐了回去。
周新星没发表任何看法。
一顿饭吃了差不多1个多小时。
江寒见大家吃得差不多了,就去买了单。
回到学校后,时间还早。
但江寒一进入寝室,就迫不及待地洗漱、上床,进入了虚拟空间。
没办法,不想拖到最后一学期才毕业的话,那就只能稍微开点挂了。
事实上,要不是为了掩人耳目,他根本用不着当着别人敲笔记本……
很多人一提起操作系统,就想起Windows、Linux,要不就是MacOS。
反正都是规模庞大、复杂度惊人的代名词。
的确,在现代软件行业里,操作系统的确是名列前茅的巨型工程。
但其实,不同的操作系统之间,差别很大。
别忘了,10来Kb的Dos1.0,那也叫操作系统……
早期的操作系统,正是为大型机设计出来的,后来才移植到小型机和微机上。
那时候的操作系统都很精简,基本都是论Kb的。
谁让那时候的大型机,性能、内存容量什么的,还比不上现在10块钱一个的“计算器”呢?
当然,江寒要设计的操作系统,自然不可能那么简略。
不但该有的功能要有,还得有个说得过去的UI。
毕竟现在的大型机,和几十年前根本不可同日而语。
好吧,张德昭本来也没打算让江寒从零开始,完全独力打造这个操作系统。
那根本不现实,老张虽然年纪不小了,但还没老糊涂。
所以,江寒手中是有个框架的。
这是之前一些专家搞出来的半成品,由于某些原因项目被搁置了,项目组也解散了……
江寒最简单的做法,只要在这个框架的基础上,修修补补,让其能正常跑起来就够了。
但他思量了一下,没有“投机取巧”。
他只参考了一下那个框架的整体架构,至于代码,一行也没沿用。
相比之下,他更信任自己写出来的代码。
时代在发展,江寒现在掌握的知识和技能,是之前那些专家也学不到的。
因此无论设计理念,代码可读性还是鲁棒性,两者都无法相提并论。
江寒正式开工后,进度并不算慢。
先行者的经验、国内外同类系统的完整反汇编代码、详实的硬件手册……
有这么多可参考的东西,基本不可能“卡关”。
再通过虚拟空间百倍加速,开发进度可以说日新月异。
但在开发“作业和进程调度”、“内存分配”等模块时,还是稍微耽误了一点时间。
主流的操作系统,不管运行在哪种机型里,在这些部分采用的算法都差不多。
在调度进程时,如果是批处理系统,使用的不外乎FCFS(先来先服务)、SJF(短作业优先)、高响应比优先等算法。
而在更先进一些的分时系统里,一般采用FPF(看优先权调度)、时间片轮转、多级反馈队列等方法。
此外还有“彩票法”、“最少裕度法”、限期调度、单比率调度……
可惜的是,无论哪种策略,都不能一劳永逸,完美适应复杂多变的运行环境。
各种算法都有自身的优势,但也难以避免地各有不足。
能不能搞个新算法呢?
要求不高,在极端情况下,表现不是太差;而在正常情况下,各项指标又足够过硬,这样也就差不多了……
江寒想到了机器学习。
如果能训练个“神经网络”,来智能地分配内存,调度作业和进程……
江寒直觉这个思路应该可行。
只是,系统开销是个问题。
就算是巨型计算机,资源也是有限的。
以削弱整个系统的运行效率,来换取稳定性和适应性,似乎有点得不偿失?
江寒计算了一下,根据目标计算机的规模,如果训练一个“人工神经网络”放进去,差不多要增加10%的算力开销!
至于浪费一些内存,倒比较无所谓,哪个大型机也不差这几十G……
那么,这个问题有没有可能解决呢?
怎么打造操作系统,才能提高它运行的效率?
江寒想到了一个事实:相比常用的C,汇编才是效率最高的编程语言。
汇编的执行效率,一般要比C语言高上20%~30%!
如果全盘采用汇编开发的话……
一个降低大约10%,另一个提高20%以上。
里外一抵消,貌似非但不亏,应该还有得赚?
虽然用汇编搞开发,又麻烦又低效,复杂度直接上天。
可自己强化了这么多的大脑,不就是用来解决这种事情的么?
江寒想到这里,顿时豁然开朗。
于是,权衡了一番利弊后,他毅然做出决定。
就用汇编来写整个操作系统,并在其中内嵌一个“人工神经网络”。
以内存请求、进程申请等参数,作为神经网络的输入,然后输出动态的分配和调度策略……
说起来简单,实现起来还挺复杂。
仅用基本的“人工神经网络”,效果不算特别理想。
江寒反复思考、测试后,将“人工神经网络”和“遗传算法”结合到了一起。
试了一下,效果赫然不俗。
只是,这么复杂的算法训练起来自然不容易,足足耗费了半个多月。
这还是学校里的大型计算阵列,换成普通超算,只怕得上万个机时……
学期临近结束的时候,江寒终于完成了这项工作。
他把多达1g的开发文档和源代码,装进U盘送到了张德昭手中。
老张简单翻看了一下,愣了很久,才不着痕迹地抽了下嘴角。
真特么妖孽啊!
还不到三个月,就干完了这样一份大工程……
老张想了想:“东西先放我这吧,我先分析、测试一下,别有太多bug。”
没BUG是绝对是不可能的。
Windows卖出去10多年,还不定期发布漏洞补丁呢。
关键在于BUG是否严重、致命。
还有,在目标计算机上,到底能不能跑起来,性能怎么样……
江寒对此自然没意见。
估计再怎么快,这个系统也得明年才能通过鉴定。
望着江寒离去的背影,老张一阵牙疼。
本来想用这个项目,“稳住”这小子至少半年,可现在……
还有大半年,这日子可怎么过哟!
可惜这个时候,尽管老张已经有了一定的思想准备,也完全预想不到江寒提交的这份“毕业设计”,将给自己带来怎样的震撼!
……
距离寒假还剩没几天。
江寒从“科研任务”中解脱出来后,和普通大一生一样,参加了院里组织的期末考试。
说形式主义也罢,说多此一举也行。
反正该走的程序,一样也不能少……