为了技术,我不会停下学习的脚步,我相信我还能走二十年。
发布时间:2013-02-20 13:47:32
问题描述:用G(n)表示在有n位的二进制数中没有相邻的两个1的二进制数个数。比如,当n=3时,000,001,010,011,100,101,110,111这8个数中只有000,001,010,100,101这5个是没有相邻为1的,故G(3)=5。请写一个程序,输出G(n)的值。 错误的思路(考虑的不周全):采用"分.........【阅读全文】
发布时间:2013-02-19 11:06:41
要理解内存在程序中是如何分配的,首先需要理解如何将内存从操作系统分配给程序。计算机上的每一个进程都认为自己可以访问所有的物理内存。显然,由于同时在运行多个程序,所以每个进程不可能拥有全部的内存。实际上,这些进程使用的是虚拟内存。 举个例子,让我们假定您的程.........【阅读全文】
发布时间:2013-02-19 11:01:46
一、什么是下半部中断是一个很霸道的东西,处理器一旦接收到中断,就会打断正在执行的代码,调用中断处理函数。如果在中断处理函数中没有禁止中断,该中断处理函数执行过程中仍有可能被其他中断打断。出于这样的原因,大家都希望中断处理函数执行得越快越好。另外,中断上下文中不能阻塞,这也限制了中断上下.........【阅读全文】
发布时间:2013-02-19 11:01:17
1、kmalloc()/kfree()static __always_inline void *kmalloc(size_t size, gfp_t flags)内核空间申请指定大小的内存区域,返回内核空间虚拟地址。在函数实现中,如果申请的内存空间较大的话,会从buddy系统申请若干内存页面,如果申请的内存空间大小较小的话,会从slab系统中申请内存空间。有关buddy和slab,请参.........【阅读全文】
发布时间:2013-02-13 11:58:30
一个连通图的生成树是一个极小的连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边。那么我们把构造连通网的最小代价生成树称为最小生成树。 找连通网的最小生成树,经典的有两种算法,普里姆算法和克鲁斯卡尔算法。下面分别介绍两种算法。一、普里姆(Prim)算法.........【阅读全文】
发布时间:2013-02-13 11:51:07
简介: 本文主要介绍 Linux 2.6 中的页面回收机制是如何工作的,反向映射是如何设计并实现的,以及 Linux 操作系统如何利用反向映射机制进行页面地回收。 Linux 2.6 中关于反向映射和页面回收的代码在不断地更新,不同版本的内核在这部分的代码上会有很大差异,本文将基于 2.6.18.1 版本的内核来探讨 Linux 中的反向映射和页面回收。为什么要进行页面回收操作系统管理内存中的物理页面,同时也担任着内存分配的职责。应用程序可以通过内存分配函数向操作系统申请物理页面;在使用完这些物理页面之后,应用程序可以通过相应的内存释放函数释放这些物理页面。但是,对于内存中的某些物理页面来说,......【阅读全文】