|
8#
楼主 |
发表于 2013-10-26 20:22:24
|
只看该作者
本帖最后由 chq00123 于 2013-10-26 20:43 编辑
GFree_Wind 发表于 2013-10-26 19:41
看似强大,但实现起来会有问题的
那当然了,这只是程序设计的思路,要是随随便便就可以的话,那程序也太不值钱了。。实际上,还有很多东西没考虑进去,我只是想说明,,单纯的低级给高级让路,并不是很难实现的!~
其实就这个单纯优先级控制的设计图,还有2个问题点没提到
1.缓存的容量是固定的。数据,进进出出,要怎么排列?
2.如何判断缓存内的数据已经全部转发完。
解决方法。。1.缓存在内存中的实际物理地址,是固定的。缓存物理地址的利用,采用循环的办法,就可以,也就是,每存进缓存一个数据,就用堆栈把这个地址保存起来,下次数据在存进来,就从下个地址存起。 转发出去的,同理。同时,还必须对缓存的地址做校对,看是否超出设定的缓存范围,一旦超出还要从缓存的第一个地址循环起,还要加入,存入和取出的数据的地址做比较。一旦2个地址相同,后面的数据全部丢弃,否则就会发生,数据还没转发出去,又被存入的覆盖掉。
2.这个就比较容易了。每存入一个数据,就在后面加个结束符,后面再存,就把结束符覆盖掉。并继续在末尾加个结束符。转发完成时,只要判断,下个数据是否是结束符,就可以知道数据是否全部转发完。 |
|