- 博客(9)
- 资源 (4)
- 收藏
- 关注
原创 嵌入式操作系统内核原理和开发(最快、最优、最差内存分配算法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 前面我们说到了基于链表的内存分配算法。但是之前我们也说过,其实内存分配一般有三个原则,最快、最优和最差。最快比较好理解,就是寻找到合适的节点就立即分配内存,我们在前面一篇博客采用的就是这个方法。最优呢,就是寻找可以满足当前内存分配的最小节点,这样不会有很大的浪费,但是有可能会产生碎片
2012-06-27 21:06:08 8819 2
原创 嵌入式操作系统内核原理和开发(基于链表节点的内存分配算法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 链接节点的内存分配方法,其实就是一种按需分配的内存分配方法。简单一点说,就是你需要多少内存,我就给你多少内存。当然,为了把分配的内存都连起来,我们还需要对分配节点进行管理记录。就比如下面这个数据结构,typedef struct _MNG_NODE{ struct _MN
2012-06-26 21:42:34 4165 1
原创 嵌入式操作系统内核原理和开发(固定内存分配算法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 固定内存方式是最简单的方法,也是最容易想到的方法。所谓的固定内存,就是所有分配的内存单元都是一致的。不管你申请的内存大小是多少,它都有一个最小的内存。因此,你申请的内存都会转化为单元内存的倍数。所以,算法会根据申请的内存计算出一个合适的申请内存,int get_best_fit_si
2012-06-24 22:39:19 4660
原创 嵌入式操作系统内核原理和开发(内存分配算法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 内存分配是操作系统必须面对的一个环节,除非这个系统本身不需要内存安排,所有业务可以通过全局数据和堆栈搞定。内存分配其实不困难,但是由内存引申出来的东西就比较复杂了。早前没有MMU,系统本身的空间和用户空间没有优先级之分,所以不同的程序之间的内存都是共享的,相互影响也是不可避免的。
2012-06-18 22:46:20 4736
原创 嵌入式操作系统内核原理和开发(头文件调整)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 很长一段时间,我个人对头文件的功能了解得不是很明白。虽然在平时的开发中,对于头文件也没有犯过什么大的错误,但是总觉得对头文件这块理解得不是很透彻。所以趁着这次嵌入式开发的机会,好好对头文件这部分的内容进行了分析和总结。下面我们主要从两个方面对头文件进行分析,即头文件是做什么的,头文件编
2012-06-10 22:23:46 4753
原创 嵌入式操作系统内核原理和开发(改进型优先级调度)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 上面的一篇博客说到了优先级调度,但是那个优先级调度算法比较极端。打个比方说,现在王先生有三个小孩,分别是老大、老二、老三。假设现在到了饭点,王先生需要给三个小孩喂饭。此时如果是时间片轮转的话,那么就是绝对公平,王先生每人一口不停地进行喂饭。如果是优先级调度,那么王先生首先自己有一个优先级
2012-06-06 22:13:04 3131
原创 嵌入式操作系统内核原理和开发(通用优先级调度)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 相比较其他调度算法而言,时间片的轮转更多的注重公平性。但是,任务与任务之间也是有先后之分的,有的任务我们希望多安排一些时间片,而有的任务我们则希望少安排一些时间片。比较说,如果我们在上网的话,我们就希望上网的操作响应的更快一些;如果我们在进行GUI操作,我们当然就希望图形响应更快一些。这
2012-06-05 23:17:32 3903
原创 嵌入式操作系统内核原理和开发(多线程轮转)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 之前我们也谈到了线程创建,基本上简单的系统就可以跑起来了,但是还没有到多线程运行的地步。所以,我们下面试图所要做的工作就是创建更多的线程,让更多的线程运行起来。为了做好这一点,首先我们需要对task_init重新修整一下,void task_init(int index, UINT32
2012-06-03 22:24:07 4183
原创 嵌入式操作系统内核原理和开发(任务创建和堆栈溢出检查)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 虽然写操作系统的博客要比写普通的技术点要麻烦一些,但是心中还是挺开心的。一方面,通过几行代码就可以说明一些问题,把理论实践化,这本身就很具有挑战性;另外一方面还锻炼自己的沟通能力,让更多的人明白你的想法,认可你的想法。 其实,通过上面一篇博客,我们就已经清楚任务的创建是怎么一回事,
2012-06-01 23:57:05 6764 6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人