- 博客(8)
- 资源 (1)
- 收藏
- 关注
转载 Linux内存管理之三 页的分配和释放
Linux对内存区内的页框的分配和释放,采用的算法是伙伴系统。如上图,Linux分配页时,只能分配2^n个页。内核维护MAX_ORDER个链表,每个链表记录着连续的空闲页。第一个链表中的每一项为1个空闲页,第二个链表中的每一项为2个空闲页,第三个链表中的每一项为4个空闲页。。。,依次类推。分配页时,从对应的链表上摘除空闲页;释放页时,将对应的页归还到对应的链表。分配释放页的过程中,可能
2012-10-30 16:16:03 1520
转载 Linux内存管理之二 内存节点和内存分区
UMA和NUMA:UMA(Uniform Memory Access),即一致性内存访问。这种情况下,CPU访问内存的任何位置,代价都是一样的。NUMA)(Non Uniform Memory Access),即非一致性内存访问。这种情况下,CPU访问不同位置的内存,代价是不一样的。在多CPU情况下,对每个CPU来说有本地内存和远端内存,访问本地内存的代价比访问远端内存的代价小。确保CPU
2012-10-30 16:14:48 3445
转载 Linux内存管理之一 分段与分页
现代操作系统的内存管理机制有两种:段式管理和页式管理。段式内存管理,就是将内存分成段,每个段的起始地址就是段基地址。地址映射的时候,由逻辑地址加上段基地址而得到物理地址。纯粹的段式内存管理的缺点很明显,就是灵活性和效率比较差。首先是段的长度是可变的,这给内存的换入换出带来诸多不便,如何选择一个段的长度是一个棘手的问题;其次进程在运行过程中,可能会扩充地址空间,这就要增加段,从而造成进程的地
2012-10-30 16:12:57 3824 1
转载 UTF-8 GBK UTF8 GB2312 之间的区别和关系
UTF-8 GBK UTF8 GB2312 之间的区别和关系UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的
2012-10-29 11:03:16 1007
原创 utf8转gbk,去掉繁体字符
function myTrans($str){ $in = iconv('UTF-8', 'BIG5//IGNORE', $str); $in = iconv('BIG5', 'GB2312//IGNORE', $in); $out = iconv('GB2312', 'UTF-8//IGNORE', $in); return $out;}
2012-10-27 11:45:22 1119
转载 线程池 范例
#include #include #include #include #include #include /* *线程池里所有运行和等待的任务都是一个CThread_worker *由于所有任务都在链表里,所以是一个链表结构 */typedef struct worker{ /*回调函数,任务运行时会调用此函数,注意也可声明成其它形式*/ void *(*
2012-10-19 01:29:54 765
转载 pthread线程使用小结
1.奇怪的线程参数初始化for( i=0; i{//会有什么问题?pthread_create(&tid,NULL, &thread_client_function, (void*)&i );}上面代码应该很容易明白,创建多个线程,传入序列号作为线程id。基实这里存在一个大bug, 传递的参数会不成功!!示例代码:#include
2012-10-19 01:02:56 812
转载 Mutex, semaphore, spinlock的深度解析
Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。对于N=1的情况,称为binary semaphore。一般的用法是,用于限制对于某一资源的同时访问。
2012-10-18 23:34:13 3483
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人