第466章 有的是办法对付那样的人

于是,周三了,跑步的时候孙彧跟李媛说他晚上还要去实验室干活,问她跟不跟着一起。

“我们明天考核,今天就不去了。”

“就一科吗?”

李媛嗯了一声,不过不管李媛是不是跟着孙彧去实验室,他俩都不需要再去图书馆抢位置,晚饭后的空余时间还是挺多的,天色黑的又晚,蚊子还没有那么猖獗,两人于是在东湖边看了一阵荷花。

毕竟不是周末,6点前后在东湖边坐着并没有什么打扰,只是看着湖面上飞来飞去的蜻蜓,“你说是不是要下雨了?”李媛问道。

“这个也不好说,傍晚正是蜻蜓觅食的好时间,晚霞中的红蜻蜓嘛。”

“往年五六月份都是要下好大雨的。”

“华南前汛期嘛,不过今年这个月没怎么下雨,6月份可能就要下了。”

“你看过银河吗?”李媛抬头看看天空,除了斜挂在半空的半个月亮,还能看到的就是那颗太阳系第二行星了。

“看过啊,小时候夏天躺在屋顶往天上看,除了银河,星星密密麻麻的,都有一种针扎不进的感觉。上大学那年暑假都还是这样,但是去年暑假回去,天上星星都少了很多。”

“这叫光污染?”

“是吧,反正到了羊城之后,晚上看不到星星也就算了,天都是红彤彤的。”孙彧哈了一声。

“走吧,回去吧。”李媛嗯了一声,抬手看了看表,也快7点了,时间过的也挺快的,要不是湖边晚上蚊子实在太多,好想在这里一直待下去。

于是,把李媛送进宿舍大门,孙彧也回宿舍拿东西去实验室。

两块板硬盘都挂载成功,并且能够在上面编译和运行程序,然后大家一致觉得软盘可以先不管或者干脆放弃掉,先测试一下存储卡。

毕竟这两块板跟个人电脑主机板的区别只是在于集成度更高一些,架构上其实更加简单,而处理器是一样的,于是指令集也是一样的,按照编程指南做了一些修改之后,只是单用户单进程读写存储卡的话,结果也很令人满意。

“这种板的适用场景肯定是单用户,但是多任务也是必须支持的,我们原先写驱动的时候好像没有考虑过这一点?”杨岿说道。

“是的,别说驱动了,我内核进程管理现在其实也很简陋,只是考虑了正确性。”

“那意思就是进程重新调度执行之后,有可能跟原来的执行上下文不同?”

“如果没有换出那就没有问题,如果换出的进程不超过两个,那也没问题,超过的话,调度效率就会很低,恢复现场的时候可能会死等。”

“那内存管理也有问题吧?”

“嗯,说到底,应该就是内存页面调度的问题,调度算法还没有好好琢磨过,每个页面多大合适也没有很认真的测试过。”

“那你打算怎么搞?”

“那就先解决这个问题咯。”

“你们两个先停一下,现在是不是说如果多个设备共同工作,是不支持的?”裴华插话道。

“支持,支持数目有限,具体能支持多少个,还没测试过。”

“本来也没打算支持无限多个外围设备吧,现在最多能支持几个?”裴华又问道。

“至少同时支持硬盘和这个存储卡。”

“那就把软驱加上看看?”靳平说道,现在能接上去的外围设备就这几个。

测试结果多少有些意外,软驱和硬盘之间数据传输速度正常,但是软驱和存储卡之间数据传输很慢,比软驱和硬盘之间的传输速度慢了很多,而存储卡和硬盘之间的数据传输率却又是正常的。

“存储卡和硬盘之间的数据传输率真的正常吗?”孙彧不由得有些怀疑。

“这板支持DMA吗?”杨岿似乎也想到了什么。

“支持,显然软驱和硬盘之间就是通过DMA传输的,”孙彧翻了一下使用手册和编程指南,想了想,然后又说道:“唔,问题又到了驱动程序上了,显然没有发DMA请求。”

“那现在主要就是两个问题,一个是存储卡驱动没有发DMA请求,一个是内存页面管理的参数需要调整?”裴华说道。

“唔,我先解决内存页面管理的问题,驱动没有发DMA请求这个问题有点古怪,我得检查一下我的系统调用是什么回事。”

事情就是这样,一个问题能牵扯出许多问题,不过能找到问题,也算是收获,孙彧决定明天跟老师汇报一下,以及找时间去跟潘智交流交流,看看他那边是个什么情况。

找老师汇报并不是要老师帮忙解决问题,这些问题老师也并不能帮着解决,一般老师就是提供一些解决问题的方向和思路参考,而孙彧汇报的时候也把自己的解决思路一并说了,不论是李老师,还是带操作系统实验的罗老师,都认为他可以先按照自己的思路做下去看看,毕竟从理论的角度看,孙彧的做法还是合理的。

然后孙彧发现本来页面大小他在pc机上设置的是4K,但不知道为什么交叉编译的时候他改成了1K,真是莫名其妙,孙彧也已经忘记了当时是怎么想的,至于调度算法,一时半会儿也看不出什么问题来,只好先不管它,但是为什么会改成2K这个问题,孙彧觉得没有就是随便改的那么简单。

这章没有结束,请点击下一页继续阅读!

所有的常数都是宏定义的,不存在一个地方改了另外的地方没改,改了页面大小,相应的页表项大小,页表大小也会变,不过不管怎么说,孙彧先把页面大小改回了4K。

趁重新编译的功夫,孙彧慢慢思索着当初是怎么想的,应该是为了做个实验,4K的页面可能有些大,为了减少内碎片,所以他改成了1K,打算试试看效果怎么样,效果看来挺显着,进程稍微多了那么两三个,就开始抖动了。

这个问题是有理论根据的,至于是不是改成2K再试试,孙彧决定先不费那神,直接改回4K,先解决存储卡驱动没有发出DMA中断的问题。

显然当初在电脑上测试的时候,存储卡和硬盘之间的数据传输是通过了DMA的,不然通不过那时的验收,于是差别就在于系统调用上了,现在驱动调用的系统调用是孙彧自己实现的,而那时调用的是DOS的。

那就看代码咯,孙彧发了一会儿呆,然后看了看时间,已经快5点了,时间过得可真快。

“先回去了,晚上再过来。”孙彧站起身,东西都不用带回去,下次下午过来的话,就穿运动服好了,可以直接去跑步。

“怎么样?”裴华问道。

“页面参数我改过,本来是想测一下找个最优配置的,我先改回来看看,晚上过来检查一下系统调用的代码,看看什么回事。”

“你现在板上的程序是改回去了的吧?”