于是,周三了,跑步的时候孙彧跟李媛说他晚上还要去实验室干活,问她跟不跟着一起。
“我们明天考核,今天就不去了。”
“就一科吗?”
李媛嗯了一声,不过不管李媛是不是跟着孙彧去实验室,他俩都不需要再去图书馆抢位置,晚饭后的空余时间还是挺多的,天色黑的又晚,蚊子还没有那么猖獗,两人于是在东湖边看了一阵荷花。
毕竟不是周末,6点前后在东湖边坐着并没有什么打扰,只是看着湖面上飞来飞去的蜻蜓,“你说是不是要下雨了?”李媛问道。
“这个也不好说,傍晚正是蜻蜓觅食的好时间,晚霞中的红蜻蜓嘛。”
“往年五六月份都是要下好大雨的。”
“华南前汛期嘛,不过今年这个月没怎么下雨,6月份可能就要下了。”
“你看过银河吗?”李媛抬头看看天空,除了斜挂在半空的半个月亮,还能看到的就是那颗太阳系第二行星了。
“看过啊,小时候夏天躺在屋顶往天上看,除了银河,星星密密麻麻的,都有一种针扎不进的感觉。上大学那年暑假都还是这样,但是去年暑假回去,天上星星都少了很多。”
“这叫光污染?”
“是吧,反正到了羊城之后,晚上看不到星星也就算了,天都是红彤彤的。”孙彧哈了一声。
“走吧,回去吧。”李媛嗯了一声,抬手看了看表,也快7点了,时间过的也挺快的,要不是湖边晚上蚊子实在太多,好想在这里一直待下去。
于是,把李媛送进宿舍大门,孙彧也回宿舍拿东西去实验室。
两块板硬盘都挂载成功,并且能够在上面编译和运行程序,然后大家一致觉得软盘可以先不管或者干脆放弃掉,先测试一下存储卡。
毕竟这两块板跟个人电脑主机板的区别只是在于集成度更高一些,架构上其实更加简单,而处理器是一样的,于是指令集也是一样的,按照编程指南做了一些修改之后,只是单用户单进程读写存储卡的话,结果也很令人满意。
“这种板的适用场景肯定是单用户,但是多任务也是必须支持的,我们原先写驱动的时候好像没有考虑过这一点?”杨岿说道。
“是的,别说驱动了,我内核进程管理现在其实也很简陋,只是考虑了正确性。”
“那意思就是进程重新调度执行之后,有可能跟原来的执行上下文不同?”
“如果没有换出那就没有问题,如果换出的进程不超过两个,那也没问题,超过的话,调度效率就会很低,恢复现场的时候可能会死等。”
“那内存管理也有问题吧?”
“嗯,说到底,应该就是内存页面调度的问题,调度算法还没有好好琢磨过,每个页面多大合适也没有很认真的测试过。”
“那你打算怎么搞?”
“那就先解决这个问题咯。”
“你们两个先停一下,现在是不是说如果多个设备共同工作,是不支持的?”裴华插话道。
“支持,支持数目有限,具体能支持多少个,还没测试过。”
“本来也没打算支持无限多个外围设备吧,现在最多能支持几个?”裴华又问道。
“至少同时支持硬盘和这个存储卡。”
“那就把软驱加上看看?”靳平说道,现在能接上去的外围设备就这几个。
测试结果多少有些意外,软驱和硬盘之间数据传输速度正常,但是软驱和存储卡之间数据传输很慢,比软驱和硬盘之间的传输速度慢了很多,而存储卡和硬盘之间的数据传输率却又是正常的。
“存储卡和硬盘之间的数据传输率真的正常吗?”孙彧不由得有些怀疑。
“这板支持dma吗?”杨岿似乎也想到了什么。
“支持,显然软驱和硬盘之间就是通过dma传输的,”孙彧翻了一下使用手册和编程指南,想了想,然后又说道:“唔,问题又到了驱动程序上了,显然没有发dma请求。”
“那现在主要就是两个问题,一个是存储卡驱动没有发dma请求,一个是内存页面管理的参数需要调整?”裴华说道。
“唔,我先解决内存页面管理的问题,驱动没有发dma请求这个问题有点古怪,我得检查一下我的系统调用是什么回事。”
事情就是这样,一个问题能牵扯出许多问题,不过能找到问题,也算是收获,孙彧决定明天跟老师汇报一下,以及找时间去跟潘智交流交流,看看他那边是个什么情况。
找老师汇报并不是要老师帮忙解决问题,这些问题老师也并不能帮着解决,一般老师就是提供一些解决问题的方向和思路参考,而孙彧汇报的时候也把自己的解决思路一并说了,不论是李老师,还是带操作系统实验的罗老师,都认为他可以先按照自己的思路做下去看看,毕竟从理论的角度看,孙彧的做法还是合理的。
然后孙彧发现本来页面大小他在pc机上设置的是4k,但不知道为什么交叉编译的时候他改成了1k,真是莫名其妙,孙彧也已经忘记了当时是怎么想的,至于调度算法,一时半会儿也看不出什么问题来,只好先不管它,但是为什么会改成2k这个问题,孙彧觉得没有就是随便改的那么简单。
所有的常数都是宏定义的,不存在一个地方改了另外的地方没改,改了页面大小,相应的页表项大小,页表大小也会变,不过不管怎么说,孙彧先把页面大小改回了4k。
趁重新编译的功夫,孙彧慢慢思索着当初是怎么想的,应该是为了做个实验,4k的页面可能有些大,为了减少内碎片,所以他改成了1k,打算试试看效果怎么样,效果看来挺显着,进程稍微多了那么两三个,就开始抖动了。
这个问题是有理论根据的,至于是不是改成2k再试试,孙彧决定先不费那神,直接改回4k,先解决存储卡驱动没有发出dma中断的问题。
显然当初在电脑上测试的时候,存储卡和硬盘之间的数据传输是通过了dma的,不然通不过那时的验收,于是差别就在于系统调用上了,现在驱动调用的系统调用是孙彧自己实现的,而那时调用的是dos的。
那就看代码咯,孙彧发了一会儿呆,然后看了看时间,已经快5点了,时间过得可真快。
“先回去了,晚上再过来。”孙彧站起身,东西都不用带回去,下次下午过来的话,就穿运动服好了,可以直接去跑步。
“怎么样?”裴华问道。
“页面参数我改过,本来是想测一下找个最优配置的,我先改回来看看,晚上过来检查一下系统调用的代码,看看什么回事。”
“你现在板上的程序是改回去了的吧?”
“是的。”
“那行,你那个参数在哪里改?打算怎么改?我来测一下。我等下要到研究生饭堂那边吃饭,吃完就回来,你们晚上要来的话直接过来就行,我肯定在的。”裴华说道。
“就这里,我打算测一下4k,2k,1k都有什么变化的。”
“好,我试一下。”
有点晚了,孙彧便没有去跑步,吃过饭去找李媛,免不了被李媛盘问了一番。
两人交往到现在,这种程度的小脾气,对于孙彧来说,就当是李媛在跟他调情撒娇了,因为李媛真的从来没有跟孙彧撒过娇。
“你晚上有什么事不?我等下就要去实验室了。”把李媛拉到路边的偏僻处,控制住她,孙彧这才问道。
“没事,晚上夏衡去不?不会吵到你吧?”李媛反控制住孙彧,咬着他的耳朵说道。
“去的,就是晚上恐怕要忙,不一定顾得到你。”
李媛没有吭声,只是加紧了搂住孙彧的胳膊,半晌才又问道:“你什么时候去?”
“要去现在就可以去了。”
“那我回去拿本书。”
孙彧应了一声,两人这才分开,牵手往东五走去。
“今天考核感觉怎么样?”
“没什么怎么样,就是摸下底,算平时分。”
“那你准备拿什么书去看?”
“继续看小说咯。”
“你们这算不算看小说看到想吐?”
“是啊,唉。”
李媛拿了书,是跟张薇薇和于熙一起下来的,张薇薇一如既往的微笑着跟孙彧打了个招呼,于熙只是点了点头,不过表情也看不出什么端倪来。
“你们现在去图书馆还有位子吗?”孙彧有些没话找话地问道。
“没有就去新教咯,你们这是干嘛去?”搭话的却是于熙。
“去我们老师的实验室。”
“实验室?”张薇薇有些诧异。
“想去看看不?”李媛能猜到张薇薇奇怪什么,她刚开始听到这个词的时候也是一下没转过弯来的。
“方便吗?”
“差不多跟新教就在草坪两对面,门口看一看也不妨碍你们去自习。”
“里面都有什么?”于熙也是有些好奇,但她并不打算跟着去。
“就是几排桌子,一台电脑,两块什么电路板,还有一些杂七杂八的东西。”李媛说道。
“没有什么试管烧瓶天平酒精灯显微镜?进去不用穿白大褂戴帽子戴口罩?”于熙继续好奇着。
“没有没有,电子系的实验室应该都是电路板比较多,我们计算机系的实验室基本上都是电脑。化学系生物系的实验室大概就有你说的这些了。”孙彧不由得嘴角抽了一下。
“那算了,没什么好看的。”张薇薇于是说道。
孙彧于是笑笑,李媛更是无所谓,本来她也就那么一说,不去最好。
其实实验室这个概念,中学和大学所指是不大一样的。至少,中学的实验室是给学生做实验用的,而大学里,实验室大概有两种,一种是挂到某个人或者某个单位名下的实验室,这是实实在在干活搞研究出成果的地方,还有一种跟中学一样,是给学生做课程实验用的实验室,孙彧他们的普通物理实验便是去物理系这样的实验室做的。
不过对于计算机系的学生来说,去做他们自己专业的课程实验,一般都说的是去机房上机,而不是去什么实验室做实验。
一开始虽然不大好理解实验室这个词内涵上的差异,但孙彧很快也就接受了,毕竟实验这个词的涵义还是很广泛的。
实验室里除了裴华,夏衡已经先到了,看到李媛进来,便把她拉到一边,很快两人就说笑起来。
“测试得怎么样?”孙彧问裴华。
“4k跑起来好像顺滑一些,就是感觉,没有数据支持的,我还试了一下8k,跑起来感觉跟1k差不多。”
“没什么别的问题吧?4k,2k都没什么问题,或者我感觉不出来有什么问题,1k,8k大概就是你说的那个抖动问题?总有种卡顿感。”
“那现在上面跑的是多大?”
“4k,要是内存大一些,页面是不是可以设置的更大?”
“4k应该是一个合理大小了,32位地址线,页表可以刚好凑成一页。”
“页表大小跟你页表项长度也有关系啊?”
“是啊,对了,我就是定好页面大小才把页表项长度凑出来的,所以页表项现在有不少冗余位,留到以后说不定有用。”
“所以,页面小了,页数就多了,然后一页就放不下一个页表了?”
“是啊,我操。”孙彧稍微心算了一下,确实如此。
裴华于是大笑起来,看到靳平进来,于是又招呼了一下夏衡:“来,我们继续。”
不管怎样,算是大体解决了一个问题,孙彧便专心看起系统调用的代码,一边对照着使用手册和编程指南。
显然,这两块单板机上dma的配置跟pc上的不一样,于是孙彧的代码里发dma请求失败,便转入非dma方式进行数据传输。
问题找到了,但是不能头痛医头脚痛医脚这么处理,不同的架构里中断和各种硬件请求的配置很大可能都不一样,必须找个比较普适的办法来处理,或者首先需要定义一个通用的适配接口。
用c语言来实现多态吗?孙彧不由得笑了起来,这可不是一件简单的事情,但是值得尝试。
“你又中了三笑逍遥散?”旁边李媛已经盯着孙彧看了半天,一开始看到他略微皱着眉头,她心里多少有些紧张,现在孙彧笑了起来,看来是问题解决了,于是她也轻松了下来。
靳平和夏衡哈哈笑了起来,裴华正喝着水,于是被呛了一口。
孙彧也笑了笑,站起来伸了个懒腰,然后扭头看向裴华他们那边,说道:“配置不一样,所以dma请求失败,这个数据结构我要重新定义一个。”
“系统没崩溃啊。”裴华缓了缓,说道。
“我就主要是关注系统不要因为这些失败请求而崩溃的问题,反倒是把可能出现的问题隐藏起来了。”
“不提示一下?”夏衡问道。
“操作系统啊,除非是执行不下去,不然是不会提示的。”
“现在咱们不是在测试嘛。”靳平也说道。
“唔,这也不是不行。”孙彧点点头,他觉得他今晚的任务算是结束,不过现在还没到9点,说要走有些不大好意思,于是又看着显示器发起呆来,怎么处理那个通用数据结构,他需要先想一想。
当然,可以认为这是用c语言来实现一个类,或者说用面向对象,或者泛型,的思想来实现这个结构,以及使用回调函数来实现具体的操作。
发了一会呆,孙彧从书包里拿出纸笔,挪到了一边空桌面上,开始写写划划。
&nb
该站采集不完全,请到原文地址:(https://www.dynxsw.com/book/490016/107101002.html)阅读,如您已在悠闲小说(https://www.dynxsw.com),请关闭浏览器广告拦截插件,即可显示全部章节内容!该站采集不完全,请到原文地址:(https://www.dynxsw.com/book/490016/107101002.html)阅读,如您已在悠闲小说(https://www.dynxsw.com),请关闭浏览器广告拦截插件,即可显示全部章节内容!