《30天自制操作系统》学习笔记--第10天

原创 2013年12月02日 13:42:06

       内存管理和叠加处理

       今天的代码比较多,对于写过程序的人来说应该还是比较容易看懂的。

       首先说的内存管理,昨天说道把很多内存分成0x1000字节大小的块,然后分配给程序使用,但是不一定所有的程序用到的都是0x1000的整数倍字节,所以就要设计一个取整的方法,就有了书中提到的聪明做法(size+0xfff)&0xfffff000;这个做法或者称为算法的正确性证明很简单,带两个数试一下就知道玄机了,就是把一个12位非零二进制数向前进位,而零不进位,最后把后3位归零。我们还可以把大于x的任何数进位,小于等于x的舍去(size+0x1000-x-1)&0xfffff000;哈哈,应该是对的,我也没有证明。。不过x=0是和原式一样的。。举一反三山寨之本。。。

       接着就到了我很疑惑的地方了。叠加处理,但是!!!注意!!!作者开始给结构体显示的分配内存了,就是图层的控制结构体,我不明白,之前写的那些结构体也没分配内存,为啥突然从这开始分配了,而作者根本没提,难道是因为昨天才写的内存管理,今天就开始用了?那之前的程序怎么办呢。我一会儿还是好好研究一下。

       感觉要设计系统,就应该对这个系统的宏观结构应该完全清楚,骨架清晰,内容就可以随意发挥了。现在是骨架还没搞清楚,所以博猪没有一开始就写自己山寨版,而是想把书看完,然后找点操作系统相关的书再看看然后再做个试验品出来玩玩。。哈哈。。不知道思路正确不正确。。

       至于这个叠加处理,其基本目的是控制多个图层,设计相应的数据结构。而刷新那里作者反复的实验,但其本质就是减少冗余计算,就是说有些计算能剩就不做,就像一个简单的图像卷积(好吧,博猪以前做过一段时间图像处理,听不懂的可以完全忽略。。)如果按照算法做,时间复杂度是O(x*y*size*size)(x,y是图像的大小x

*y个像素,size是卷积核宽度),但经过优化可以做到只要O(x*y),而方法就是要用到前一步的计算结果,减少冗余的计算量(好吧,这是博猪第一次面试的面试题,很幸运。公司没要我0.0)。好,叠加的优化原理是哪个地方改变了,就刷新改变的区域的像素。至于实现细节,书中的代码有详细介绍,关键是确定叠加区域,然后重绘叠加区域。。。 

        明天继续努力。。。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

《30天自制操作系统》学习笔记--第7天

今天看的还是比较顺利,很快一天的就看完了,总结一下今天的主要知识。        首先是中断处理程序,中断处理程序尽量高效,短小精悍,所以像显示啊什么的操作尽量不再中断处理程序中出现,因为一旦进入中...

《30天自制操作系统》学习笔记--Mac环境搭建

弄了三天了,终于弄好了,先说结果,就是作者在网站上放了os x的工具(hrb.osask.jp,也有linux下的工具,可以自己去下载),也就是说我白忙活了三天。。。          再说一下这几天...

《30天自制操作系统》学习笔记--第15天

今天的内容是多任务,所谓多任务就是“同时”执行多个任务,作者写的是在单核cpu上轮流执行多个任务,在短时间进行各种切换,但是实际上还是串联的,虽然表面上看的是同时执行,不知道现在的多核处理器是如何完成...

《30天自制操作系统》学习笔记--第2天

昨天一天看了5天内容,把觉得有些可能不好理解的写下来,内容不分先后,感觉作者写的通俗易懂,而且代码以及工具在xp下运行流畅,根本不需要软盘,直接在工具提供的虚拟机上跑就可以,下面来描述下昨天的学习心得...

《30天自制操作系统》学习笔记--第6天

中断处理        我感觉中断处理应该是系统底层设计的关键,因为这是在控制硬件,和给c提供接口,如果接口搞不好,一路兵败如山倒。。。        分割编译其实就是c语言初等知识,就是别写的太乱,...

《30天自制操作系统》学习笔记--第12天

昨天一直在搭建环境,想在mac下实现书上制作镜像和编译连接相关文件的功能,无奈,弄了一天还是不太好用,看到另外一个微博上的童鞋用Linux完成了相关操作,想试一下,但os x上没有objcopy等命令...

《30天自制操作系统》学习笔记--第8天

今天看的有点纠结,因为竟然看困了很少有这种情况,主要是有好多东西作者并没有做深入介绍,只是说这样是对的,至于为啥这样以后再说,这让我感觉很不爽。具体来说说。        首先,先解决了鼠标运动的问题...

《30天自制操作系统》学习笔记--Mac下工具的使用

现在来介绍官网上下的工具怎么用首先是官网地址,书上有个注释上有:hrb.osask.jp 翻译成中文大概是这个样子滴。 上面有两个文件可以下载,一个是工具,一个是工具的源代码,很好的学习资料 下面...

《30天自制操作系统》学习笔记--番外篇之Mac环境下的工具介绍

这几天又有点不务正业了,书也没看,一直在搞这个破环境,尝试各种做法,网上各种垃圾信息,浪费了很多时间,说的基本都是废话,不过还是找到了一些,赶紧写下来,不然这个过几天又忘了         首先是环境...

《30天自制操作系统》学习笔记--第16天

今天是多任务第二讲,比昨天的层次更高,更加接近实际使用的设计。         首先是任务的自动化,所谓任务就是正在执行的程序,程序成千上万,可以自己随意安装,所以,管理就不能靠人工修改代码,而要自...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)