自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

转载 各种排序算法的稳定性和时间复杂度小结

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法:  这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:  复杂度为O(n*n)。当数据为正序,将不会有交换

2011-09-30 11:31:23 327

转载 关于高端内存的一些笔记

转自:http://bbs.chinaunix.net/thread-1938084-1-1.html闲着无聊,把一些东西写下来给大家分享下吧,有什么不对的,欢迎质疑注:本文提及的物理地址空间可以理解为就是物理内存,但是在某些情况下,把他们理解为物理内存是不对

2011-09-02 00:59:08 741

转载 2.4.18预读算法详解

琢磨ULK2时的一些个人理解。参考了WFG的这篇文章: http://os.51cto.com/art/200711/60574.htm 如果觉得有必要,以后会写写其他版本预读算法的实现分析及改进逻辑。 一 为什么需要预读 1 I/O合并 2 延迟隐藏

2011-08-20 23:46:14 589

转载 page_address()函数分析--如何通过page取得虚拟地址

由于X86平台上面,内存是划分为低端内存和高端内存的,所以在两个区域内的page查找对应的虚拟地址是不一样的。一. x86上关于page_address()函数的定义在include/linux/mm.h里面,有对page_address()函数的三种宏定义,主要

2011-08-17 23:15:03 500

转载 get_user_pages

转自:http://bbs.chinaunix.net/thread-1924966-1-1.html发现get_user_pages()接口真是个好东东,它能获取用户区进程使用内存的某个页(struct page),然后可以在内核区通过kmap_atomic(), km

2011-08-12 22:16:35 1055

转载 linux底层内存管理--用户空间的分级分配系统以及懒惰的含义

转自:http://blog.csdn.net/dog250/article/details/5303676大 内存如果从heap中分配,第一它如果释放了可能不会立即归还操作系统,第二它如果不释放,由于heap中小内存的分配和释放会造成很多碎片,再有大内存 分配需求时可能会失

2011-08-11 23:28:57 596

转载 内核自旋锁

获得自旋锁和释放自旋锁有好几个版本,因此让读者知道在什么样的情况下使用什么版本的获得和释放锁的宏是非常必要的。如果被保护的共享资源只在进程上下文访问和软中断上下文访问,那么当在进程上下文访问共享资源时,可能被软中断打断,从而可能进入软中断上下文来对被保护的共享资源访问,因

2011-08-11 21:24:43 489

转载 Linux内核中常见内存分配函数介绍

Linux内核中常见内存分配函数介绍 - [Linux Programming]Tag:版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://yatusiter.blogbus.com/logs/83541094.html1

2011-08-11 18:25:31 327

转载 Linux内核中的红黑树

引用链接:http://www.kerneltravel.net/jiaoliu/kern-rbtree.html 红黑树是平衡二叉树的一种,它有很好的性质,树中的结点都是有序的,而且因为它本身就是平衡的,所以查找也不会出现非常恶劣的情况,基于二叉树的操作的时间复杂度是O

2011-08-10 01:11:33 494

转载 linux中VM虚拟内存区域及mmap方法实现

linux中VM虚拟内存区域及mmap方法实现        文件映射是虚存的中心概念, 文件映射一方面给用户提供了一组措施, 好似用户将文件映射到自己地址空间的某个部分, 使用简单的内存访问指令读写文件;另一方面, 它也可以用于内核的基本组织模式, 在这种模式种

2011-08-09 17:07:52 4496

转载 unix/linux共享内存应用与陷阱

unix/linux共享内存应用与陷阱 共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一个共享内存区的最大字节数shmmax,系统范围内最大共享内存区标识符数shmm

2011-08-08 10:49:00 546

转载 Linux使用的缓存

Linux使用的缓存不管在硬件设计还是软件设计中,高速缓存是获得高性能的常用手段。Linux 使用了多种和内存管理相关的高速缓存。1. 缓冲区高速缓存:缓冲区高速缓存中包含了由块设备使用的数据缓冲区。这些缓冲区中包含了从设备中读取的数据块或写入设备的数据块。缓冲区高速

2011-08-07 11:04:20 548

转载 start_kernel

一位大师级的人物写的,不看要后悔的哟!!如果以为到了c代码可以松一口气的话,就大错特措了,linux的c也不比汇编好懂多少,相反到掩盖了汇编的一些和机器相关的部分,有时候更难懂。其实作为编写操作系统的c代码,只不过是汇编的另一种写法,和机器代码的联系是很紧密的。

2011-08-06 19:21:18 917

转载 缓冲区高速缓存

缓冲区高速缓存Linux 采用了缓冲区高速缓存机制,而不同于其他操作系统的“写透”方式,也就是说,当你把一个数据写入文件时,内核将把数据写入内存缓冲区,而不是直接写入磁盘。在这里要用到一个数据结构 buffer_head 它是用来描述缓冲区的数据结构,缓冲区的大小一般要比

2011-08-05 22:19:24 2637

转载 直接内存访问(DMA)

1. 什么是DMA直接内存访问是一种硬件机制,它允许外围设备和主内存之间直接传输它们的I/O数据,而不需要系统处理器的参与。使用这种机制可以大大提高与设备通信的吞吐量。 2. DMA数据传输有两种方式引发数据传输:第一种情况:软件对数据的请求1. 当进程调用r

2011-07-03 23:44:08 3329

转载 Linux 系统内核空间与用户空间通信的实现与分析

多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通信。1 引言Linux 是一个源码开放的操作系统,无论是普通用户还是企业用户都可以编写自己的内核代码,再加上对标准内核的裁剪从

2011-06-28 00:29:00 637

转载 闲着没事测了一下memcpy

原文转自:http://blog.csdn.net/z2007b/archive/2011/06/21/6559457.aspx前阵的时候领导提出要对memcpy做一个测试。也没有交代具体的细节。我就直接自已写了个常规memcpy,然后再把内核的__memcpy和glibc的memcpy整出来,对三者进行比较,不比不知道,一比吓一大跳。 测试结论是:kernel和glibc的m

2011-06-21 19:36:00 1349

转载 linux的物理内存与线性地址空间布局--2

Linux内存线性地址空间大小为4GB,分为2个部分:用户空间部分(通常是3G)和内核空间部分(通常是1G)。在此我们主要关注内核地址空间部分。内核通过内核页全局目录来管理所有的物理内存,由于线形地址前3G空间为用户使用,内核页全局目录前768项(刚好3G)除0、1两项外全部为0,后256项(1G)用来管理所有的物理内存。内核页全局目录在编译时静态地定义为swapper_pg_dir数组,该数组从物理内存地址0x101000处开始存放。由图可见,(1) 内核线形地址空间部分从PAGE_OFFSET(通常定义

2011-05-28 20:12:00 612

转载 linux的物理内存与线性地址空间布局--1

 linux的物理内存与线性地址空间布局--1 收藏 在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。n 物理存储空间布局Linux的物理存储空间布局与处理器相关,详细情况可以从处理器用户手册的存储空间分布表(memory map)相关章节中查

2011-05-28 19:05:00 797

转载 内存的分配和回收

 内存的分配和回收 转自:http://www.eefocus.com/html/09-06/74976s.shtml在内存初始化完成以后,内存中就常驻有内核映象(内核代码和数据)。以后,随着用户程序的执行和结束,就需要不断地分配和释放物理页面。内核应该为分配一组连续的页面而建立一种稳定、高效的分配策略。为此,必须解决一个比较重要的内存管理问题,即外碎片问题。频繁地请求和释放不同大小的一组连续页面,必然导致在已分配的内存块中分散许多小块的空闲页面。由此带来的问题是,即使这些小块的空闲页面加起来足以满足所请求

2011-05-27 23:11:00 2726

原创 Linux模块编程[ZT]

<br /><br />[来自:http://blog.chinaunix.net/u/7217/showart.php?id=370441]摘要<br />Linux内核模块编程的资料有些纷繁复杂,有的过于简单,有的过于庞杂,我试图用笔记的形式想读者展示怎样来进程Linux模块编程,力图做到简明扼要,这篇文章也是作为本人备忘的资料,所以有些地方过于简略是难免的。本来这篇文章的目的就是让用户知其然,至于所以然还是请参考相应的资料,其实最好的资料莫过于Linux Kernel Source。<br />适用范

2011-05-16 00:58:00 375

转载 调用Xvid编码器流程(基于xvid1.1.0)

<br />xvid有两种编码方式:single pass和twopass<br />  single pass模式编码简单,速度也快,但最终效果不如twopass。<br />  twopass就是视频压制需要经过两次编码,分别为twopass-1st pass(简称1pass)和twopass-2nd pass(简称2pass)<br />  1pass时,编码器会用最高质量编码采集可供第2次运算参考的画面信息,而在2 pass时。编码器会根据第一次压缩获得的信息和用户指定的文件大小,自动分配比特率,使

2011-04-27 18:26:00 378

转载 内存

内存目 录内存内存管理子系统导读from aka用户态内核页目录的初始化内核线程页目录的借用用户进程内核页目录的建立内核页目录的同步mlock代码分析memory.ccopy_pageclear_page_tablesoomfree_page_tablesnew_page_tablescopy_one_ptecopy_pte_rangecopy_pmd_rangecopy_page_rangefree_pteforget_ptezap_pte_rangezap_pmd_rangezap_page_range

2011-04-24 18:36:00 756

原创 二叉树创建及遍历算法(递归及非递归)

<br /><br />//二叉树处理头文件<br />//包括二叉树的结构定义,二叉树的创建,遍历算法(递归及非递归),<br />/*<br /> 作者:成晓旭<br /> 时间:2001年10月7日(18:49:38-20:00:00)<br /> 内容:完成二叉树创建,二叉树的前,中,后序遍历(递归)<br /> 时间:2001年10月7日(21:09:38-22:09:00)<br /> 内容:完成二叉树的前,中序遍历(非递归)<br /> 时间:2001年10月8日(10:09:38-11:29

2011-04-20 18:21:00 348

原创 Write Something

<br />Well, it's anther day now. Time goes by.<br />I will write something, when I have a rest. I want to practice writing English, speaking English. Now, the first step is write the right words. I try to write wrong words as little as possible. And the ne

2010-09-07 00:47:00 651

原创 Follow My Dream

<br />I know I'm not good at English.But I will try to study it well.English is very important for me.<br />No matter in my study or in our life, English plays an important role for us. I'm in grade three now, I have no time to waste now. And I have lots o

2010-09-05 01:03:00 410

转载 iptables 应用初探(nat+三层访问控制)

<br />iptables 应用初探(nat+三层访问控制)本文作者:张天成    zhangtiancheng#gmail.com 转发请注明出处。<br /><br />    iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活强劲的防火墙+nat系统,小有心得,看了网上也有很多这方面的文章,但是似乎要么说的比较少,要么就是比较偏,内容不全,容易误导,我研究了一段时间的iptables同时也用了很久,有点滴经验,写来供大家参考,同时也备日后自己翻

2010-09-05 00:47:00 259

转载 iptables端口映射

<br />iptables 应用初探(nat+三层访问控制)本文作者:张天成    zhangtiancheng#gmail.com 转发请注明出处。<br /><br />    iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活强劲的防火墙+nat系统,小有心得,看了网上也有很多这方面的文章,但是似乎要么说的比较少,要么就是比较偏,内容不全,容易误导,我研究了一段时间的iptables同时也用了很久,有点滴经验,写来供大家参考,同时也备日后自己翻

2010-08-25 23:38:00 345

转载 Linux防火墙下的简单路由配置与端口映射- Linux - 懒人的世界

<br />网址:http://www.360doc.com/content/10/0528/15/50888_29982739.shtml

2010-08-23 22:27:00 513

原创 fprintf:格式化输出函数

<br /><br />函数原型:int fprintf(FILE *fp, char *format[, argument,...]);<br />头文件:#include<stdio.h><br />是否是标准函数:是<br />函数功能:把argument的值以format所指定的格式输出到fp指向的文件中。这个函数理解起来和printf类似,在一般的使用中,第二个参数可以是一个字符串的头指针,也可以就是一个字符串。例如:fprintf(fp, "Cannot open this file!!"),意

2010-06-21 16:15:00 6976

飞鸽传书源码

飞鸽传书源码

2011-12-23

socket文件传输源码

提供socket文件传输方面的源码,有详细的源代码。

2010-11-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除