自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

专业减肥计划

linux 瘦身之路

  • 博客(69)
  • 收藏
  • 关注

原创 写在分析Nginx源码之前

给自己的一些废话

2016-02-19 12:58:31 661

原创 2、设计包含min函数的栈

要求O(1)时间push、pop和min函数分析:push和pop是O(1)的若要求min也是O(1)的,那么在每次push时都应计算当前最小值。又因为是栈,所以每个栈元素项保存当前的min值。push时有两种情况:当前值  当前值是min值当前值 > 之前栈顶的min值  ===> 之前栈顶的min值是min值解:      栈数据结构设计:struct 栈元

2015-04-27 17:09:25 563

原创 1、如何将二叉排序树转换为排序的双向链表

输入:二叉查找树左边子树比根小,右边子树比根大输出:双向排序的链表头开始 : 增序尾开始: 降序分析:中序遍历二叉查找树,可以的到一个有序的链表;每次访问一个树节点时,如果左子树和右子树是有序的,那么只需要调整三个节点:左边子树链表的尾节点(lr),当前根节点(root),右边子树的头结点(rh)典型的递归思想。解:节点指针 *head = NULL

2015-04-27 16:39:08 943

原创 分布式和服务器并发

服务器并发http://itindex.net/detail/49438-%E6%80%A7%E8%83%BD-%E7%BD%91%E7%BB%9C-%E9%80%9A%E4%BF%A1  高性能模块间通信http://itindex.net/detail/47180-%E6%80%A7%E8%83%BD-%E6%9C%8D%E5%8A%A1%E5%99%A8-%E8%AE%BE%E8

2015-04-08 21:12:14 697

转载 IDE

http://www.cnblogs.com/zhongcq/p/3642794.html

2014-09-24 16:00:46 495

原创 c 左值右值

http://blog.youkuaiyun.com/code_crash/article/details/7038292

2014-09-18 17:25:32 474

原创 C语言运算符 优先级

运算符优先级不是运算优先级,而是结合性优先级,意指:高优先级的运算符所结合的变量或表达式,不能被低优先级的运算符分离。优先级决定运算符和哪些子表达式结合,表达式在取值时,按照递推结合,递归返回的顺序运算,所以编译器会先处理优先级低的运算符。

2014-07-07 15:03:28 503

原创 c 语言编译器 (32bit测试)对整数类型long long截断

#include int main (){ long long a = 0x123456789a; printf("%llx\n",a); printf("%d %d %d\n", sizeof(long), sizeof(int), sizeof(long long)); return 0;}

2014-06-22 12:39:12 1186

转载 fread和fwrite注意

fwrite(将数据写至文件流)定义函数  size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);函数说明  fwrite()用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr 指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。Fwrite()会返回实际写入

2014-06-21 11:49:43 1408

转载 C语言文件操作函数

转自clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值   fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf 表头文件 #in

2014-06-21 11:45:12 653

转载 sublime IDE

转自一.下载和安装  Sublime Text2是一款开源的软件,不需要注册即可使用(虽然没有注册会有弹窗,但是基本不影响使用)。  下载地址:http://www.sublimetext.com/,请自行根据系统版本进行下载。下载好之后直接安装即可。  默认的sublime的配置文件是在C盘目录下的,如果有朋友觉得放C盘不习惯,那么在安装好sublime之后,不要直接运行subl

2014-06-19 22:22:06 994

转载 gvim编辑器

转自http://www.cnblogs.com/xiekeli/archive/2012/08/13/2637176.html

2014-06-18 19:02:01 729

转载 libxls 与 xlslib的结合

程序读xls中的内容并且 行列掉换 输出xls文件。 gcc a.c -o a.out -I /usr/include/libxls/ -L /usr/lib/libxls  -lxlsreader -I /usr/include/xlslib/ -L /usr/lib/ -lxls./a.out test2.xls hello.xls #include #include

2014-05-27 15:34:56 2291

转载 libxls 与 数据库

什么excel什么表格我表示一概不懂,最近刚好在看数据库方面的知识,我在想如果把excel文件里面的内容导入到mysql中用起来该是多么的方便,(当然这只是在我不懂excel前提下的一厢情愿),再加上我也要找个数据库练练手,手里还有两个excel文件,于是乎就想到了将excel文件中的内容导入到mysql数据库中。我并不知道有没有其它的什么方法,因为我压根就没去搜索过,我的方法只有一个,那就是

2014-05-27 15:22:05 1160

原创 内存管理

http://blog.youkuaiyun.com/vanbreaker/article/category/1132690/1内存管理

2014-04-15 20:02:20 483

原创 低分辨率时钟动态定时器处理(2 )

// 触发低分辨率定时器软中断// 调用路径:update_process_times->run_local_timers// 注:// 1.update_process_times以HZ频率被调用,因此低分辨率定时器的分辨率为HZ// 2.当未激活高分辨率定时器框架时,高分辨率定时器在时钟中断被运行,因此高分辨率定时器的分辨率也HZ1.1 void run_local_timers

2014-04-08 21:10:21 636

原创 低分辨率定时器框架(1 )

// 低分辨率定时器框架初始化// 调用路径:start_kernel->init_timers// 函数任务:// 1.创建当前cpu的定时器框架数据结构// 2.监听cpu状态信息// 3.注册低分辨率软中断1.1 void __init init_timers(void){ //创建当前cpu的定时器框架数据结构 int err = timer_cpu_notify(

2014-04-08 21:05:14 554

转载 计算机分类经典书籍

计算机科学理论Introduction to the Theory of Computation 2ndAutomata, Computability and Complexity: Theory andApplicationsLanguages and Machines: An Introduction to the Theory ofComputer ScienceComputabil

2014-04-01 16:47:34 985

翻译 G41 MCH 简介

The role of a (G)MCH in a system is to manage the flow of informationbetween its interfaces: the processor interface, the System Memory interface, theExternal Graphics or PCI Express interface, in

2014-03-31 16:27:17 1224

原创 64位系统深入剖析:不仅是内存这么简单

http://tech.sina.com.cn/h/2007-12-05/10581893687.shtml

2014-03-30 23:00:48 438

转载 X86内存布局

This article describes the contents of the computer's physical memory at the moment that the BIOS jumps to your bootloader code.本文主要描述从BIOS代码工作到OS bootloader之前的计算机物理内存分析。"Low" memory (低地址内存(

2014-03-30 22:22:15 766

原创 ubuntu bochs环境

操作系统:ubuntu13.04内核: 3.8.6$ tar zxvf bochs-2.6.2.tar.gz$ ./configure --enable-debugger --enable-disasm   ## 打开编译功能和反汇编$ make$ sudo make install 关于make报错:1,没有多线程库/usr/bin/ld: gui

2014-03-30 19:13:07 649

转载 x86体系结构

abi: 分i386和x86-64i386的:www.sco.com/developers/devspecs/abi386-4.pdfx86-64的:http://www.x86-64.org/documentation/abi-0.99.pdfsystem programming:TNND,这个好多啊。。1, Intel手册卷3(分A和B):

2014-03-28 17:01:53 884

转载 linux下汇编

Linux下的汇编语法使用的应该是GNU汇编(AT&T汇编)。下面的文章介绍了AT&T汇编相关的知识: linux中的x86内联汇编:http://www.ibm.com/developerworks/cn/linux/sdk/assemble/inline/ linux汇编开发指南:http://www.ibm.com/developerworks/cn/linux/l-

2014-03-28 17:00:59 463

转载 深入linux设备驱动底层模型

------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一:前言Linux设备模型是一个极其复杂的结构体系,在编写驱动程序的时候,通常不会用到这方面的东西,但

2014-03-28 16:58:54 658

转载 软中断机制

软件中断(softIRQ)是内核提供的一种延迟执行机制,它完全由软件触发,虽然说是延迟机制,实际上,在大多数情况下,它与普通进程相比,能得到更快的响应时间。软中断也是其他一些内核机制的基础,比如tasklet,高分辨率timer等。/*********************************************************************************

2014-03-28 16:50:34 609

转载 驱动接口层&通用逻辑层

在本系列文章的第一篇:Linux中断(interrupt)子系统之一:中断系统基本原理,我把通用中断子系统分为了4个层次,其中的驱动程序接口层和中断通用逻辑层的界限实际上不是很明确,因为中断通用逻辑层的很多接口,既可以被驱动程序使用,也可以被硬件封装层使用,所以我把这两部分的内容放在一起进行讨论。本章我将会讨论这两层对外提供的标准接口和内部实现机制,几乎所有的接口都是围绕着irq_desc和i

2014-03-28 16:47:17 799

转载 中断流控层处理

1.  中断流控层简介早期的内核版本中,几乎所有的中断都是由__do_IRQ函数进行处理,但是,因为各种中断请求的电气特性会有所不同,又或者中断控制器的特性也不同,这会导致以下这些处理也会有所不同:何时对中断控制器发出ack回应;mask_irq和unmask_irq的处理;中断控制器是否需要eoi回应?何时打开cpu的本地irq中断?以便允许irq的嵌套;中断数据结构的同步和保护;

2014-03-28 16:46:30 476

转载 arch相关的硬件封装

Linux的通用中断子系统的一个设计原则就是把底层的硬件实现尽可能地隐藏起来,使得驱动程序的开发人员不用关注底层的实现,要实现这个目标,内核的开发者们必须把硬件相关的内容剥离出来,然后定义一些列标准的接口供上层访问,上层的开发人员只要知道这些接口即可完成对中断的进一步处理和控制。对底层的封装主要包括两部分:实现不同体系结构中断入口,这部分代码通常用asm实现;中断控制器进行封装和实现;

2014-03-28 16:44:55 593

转载 中断系统基本原理

/*****************************************************************************************************/声明:本博内容均由http://blog.youkuaiyun.com/droidphone原创,转载请注明出处,谢谢!/**************************************

2014-03-28 16:42:55 1295

原创 intel 芯片组简介

南桥基于Intel处理器的个人电脑主板芯片组两枚芯片中的一枚,另一枚即为北桥。南桥设计用来处理低速信号,通过北桥与CPU联系。南桥包含大多数周边设备接口、多媒体控制器和通信接口功能。例如PCI控制器、ATA控制器、USB控制器、网络控制器、音效控制器。各世代的南桥性能大多雷同,但偶然听到某些南桥会有较差的Serial ATA或USB性能。大多数南桥都支持PCI Express Hub,但主板制

2014-03-24 10:57:04 1460

原创 PCI总线概述

1.计算机总线概述计算机总线技术包括通道控制功能、使用发放、仲裁方法和传输方式。主要职能是负责计算机各模块之间的信息传输,总线的传输率是其性能的主要指标。多总线结构是指将CPU与存储器、I/O等设备之间有两种以上的总线,这样可以将慢速的设备和快速的设备挂在不同的总线上,减少总线竞争,提升系统的效率。总线性能:(1)总线宽度:数据总线的数量  用bit表示(2)传输率:  每秒在

2014-03-22 13:44:11 1308

转载 中断子系统(8)软中断入口

// irq统计信息1.1 typedef struct { unsigned int __softirq_pending;//softirq标志位,32种softirq unsigned long idle_timestamp; unsigned int __nmi_count; //nmi中断发生次数 unsigned int apic_timer_irqs; /* arch dep

2014-03-21 12:55:08 581

转载 中断子系统(7) 中断退出处理

// 中断公共入口1.1 common_interrupt: //所有可屏蔽中断函数的公共入口 SAVE_ALL //寄存器入栈 movl %esp,%eax // eax保存栈顶指针 call do_IRQ //中断处理函数 jmp ret_from_intr //从中断返回// 从中断返回// 函数主要任务:// 1.

2014-03-20 21:00:35 778

转载 中断子系统(6)中断嵌套的处理

// current_thread_info()->preempt_count bit划分// /*// * - bits 0-7 are the preemption count (max preemption depth: 256)// * - bits 8-15 are the softirq count (max # of softirqs: 256)// */

2014-03-20 20:47:25 686

转载 中断子系统(5)电流层中断处理

// 中断电流类型:// 边沿型(edge);// 通过电位变化触发中断(上升沿/下降沿),如果外设希望触发一个中断,它在irq line上发送一个脉冲,// 然后释放irq line恢复到inactive状态。cpu通过检测irq line上的脉冲来触发中断处理函数的执行。// 电平型(level):// 通过

2014-03-20 17:24:02 669

转载 中断子系统(4)中断入口处理

// 中断入口// 注:gnu 每个符号分属global(被输出)和local(不被输出)两类中的一种。1.1 #define ENTRY(name) \ .globl name; \ ALIGN; \//之后的代码对齐到32字节,使用NOP(0x90)补齐 name:// 代码对齐// .align(n) power-of-2对齐// 4 对齐到16字节, 5 对齐到3

2014-03-20 17:02:09 768

转载 中断子系统(3)8259A中断控制器

// 8259A 中的寄存器:// ICW: Initialization Command Word,初始化命令字 寄存器// OCW: Operation Command Word,操作命令字 寄存器,用于控制 8259A// IRR: Interrupt Request Register,中断请求寄存器,共 8bit,对应 IR0~IR7 八个中断管脚。当某个管脚的中断请求到来后,

2014-03-20 16:18:45 970

转载 中断子系统(2)APIC

// io apic、apic// 1.io apic, intel从pentiun III开始引入一种名为I/O高级可编程控制器(io apic)用于代替老式8259A可编程控制器。// 2.apic, cpu内部都包含一个本地apic,每个本地apic都有32位的寄存器,一个内部时钟,一个本地定时设备// 及为本地apic中断保留的两条额外的IRQ线,LINT0和LINT1。所有

2014-03-20 15:44:44 647

转载 中断子系统( 1)初始化

// 控制单元对中断信号的处理:// 当cpu执行一条指令后,cs和eip包含下一条要执行的指令的逻辑地址,在处理那条指令之前,// 控制单元会检查在运行前一条指令时是否发生了一个中断或异常,如果发生了一个中断或异常,// 控制单元执行下列操作:// 1.确定与中断或异常关联的向量i// 2.读入由idtr寄存器指向的IDT表中的第i项// 3.从gdtr寄存器获得G

2014-03-20 15:39:08 670

空空如也

空空如也

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

TA关注的人

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