上一页 1 ··· 6 7 8 9 10 11 下一页
摘要: 2.6版以前内核进程调度机制简介Linux的进程管理由进程控制块、进程调度、中断处理、任务队列、定时器、bottom half队列、系统调用、进程通信等等部分组成。进程调用分为实时进程调度和非实时进程调度两种。前者调度时,可以采用基于动态优先级的轮转法(RR),也可以采用先进现出算法(FIFO)。后者调度时,一律采用基于动态优先级的轮转法。某个进程采用何种调度算法由改进程的进程控制块中的某些属性决定,没有专门的系统用来处理关于进程调度的相关事宜。Linux的进程调度由schedule()函数负责,任何进程,当它从系统调用返回时,都会转入schedule(),而中断处理函数完成它们的响应任务以后 阅读全文
posted @ 2013-06-02 11:24 飞奔的猪 阅读(864) 评论(0) 推荐(0)
摘要: 大部分软件开发项目依靠结合代码检查、结构测试和功能测试来识别软件缺陷。尽管这些传统技术非常重要,而且能发现 大多数软件问题,但它们无法检查出当今复杂系统中的许多共性错误。本文将介绍如何避免那些隐蔽然而常见的错误,并介绍的几个技巧帮助工程师发现软件中隐藏 的错误。结构测试或白盒测试能有效地发现代码中的逻辑、控制流、计算和数据错误。这项测试要求对软件的内部工作能够一览无遗(因此称为" 白盒"或"玻璃盒"),以便了解软件结构的详细情况。它检查每个条件表达式、数学操作、输入和输出。由于需要测试的细节众多,结构测试每次检查一个软件单 元,通常为一个函数或类。代码审 阅读全文
posted @ 2013-06-02 11:23 飞奔的猪 阅读(294) 评论(0) 推荐(0)
摘要: 1. 包含头文件和定义:#define _CRTDBG_MAP_ALLOC#include <stdlib.h>#include <crtdbg.h>如果定义了_CRTDBG_MAP_ALLOC,打印出来的是文件名和行数等更加直观的信息。2. 方法一在程序入口写几个语句: int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG ); tmpFlag |= _CRTDBG_LEAK_CHECK_DF; _CrtSetDbgFlag( tmpFlag );程序退出时,如果发现有内存泄漏,会自动在DEBUG OUTPUT窗口和Deb 阅读全文
posted @ 2013-06-02 11:21 飞奔的猪 阅读(241) 评论(0) 推荐(0)
摘要: 北京恒基伟业电子产品有限公司 徐 文 来自:单片机与嵌入式系统应用 摘要:介绍一个动态内存管理模块,可以有效地检测C程序中内存泄漏和写内存越界等错误,适用于具有标准C语言开发环境的各种平台。关键词:C语言 动态内存 内存泄漏 写越界引言当 前,绝大多数嵌入式平台上的软件都采用C语言编写。除了代码简洁、运行高效之外,灵活操作内存的能力更是C语言的重要特色。然而,不恰当的内存操作通常也 是错误的根源之一。如“内存泄漏” ——不能正确地释放已分配的动态内存,就是一种非常难于检测的存错误。持续的内存泄漏会使程序性能下降到最终完全不能运行,进而影响到所有其它有动态内存 需求的程序,在某些相对简单的嵌入式 阅读全文
posted @ 2013-06-02 11:20 飞奔的猪 阅读(253) 评论(0) 推荐(0)
摘要: 每个链接都由链接脚本控制着,脚本由链接器命令语言组成。脚本的主要目的是描述如何把输入文件中的节(sections)映射到输出文件中,并控制输出文件的存储布局。大多数的链接脚本就是做这些事情的,但在有必要时,脚本也可以指导链接器执行一些其他的操作。链接器总是使用链接器脚本,如果你没有提供一个你自己的脚本文件的话,编译器会使用一个缺省的脚本,而它被编译进链接器(?)。你可以使用"-verbose"命令行参数来显示缺省的链接脚本。而某些命令行选项,像"-r","-N"会影响缺省的链接脚本。在命令行选项中,通过参数"-T" 阅读全文
posted @ 2013-06-02 11:19 飞奔的猪 阅读(741) 评论(0) 推荐(0)
摘要: 动态分配的选择、折衷和实现级别: 中级Jonathan Bartlett (johnnyb@eskimo.com) 技术总监, New Media Worx2004 年 11 月 本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存,以及如何使用垃圾收集自动管理内存。为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来 阅读全文
posted @ 2013-06-02 11:17 飞奔的猪 阅读(158) 评论(0) 推荐(0)
摘要: 1、概述 C++中出了const关键字以后,宏定义常量的功能已经不在被推荐使用。这使得宏似乎没有了用武之地。实际上,宏还可以做很多事情,笔者也难以全部列举。这里,仅仅列举几个典型的用法,希望大家能够从中获益。 2、实现多环境兼容 常见的情况是,我们实现了一个函数,希望它只在某种编译条件满足是被编译和使用。例如,我希望在源码中插入调试语句,以便以Debug方式运行时能够通过调试信息观察程序运行情况。但是,在产品发售给用户时,我又希望这些调试信息不要输出,以降低代码尺寸,提高运行性能。 这一问题的解决方法就是使用宏。根据条件编译指令,对于不同的编译条件,提供不同的实现。例如:我们希望在特定的位置向 阅读全文
posted @ 2013-06-02 11:08 飞奔的猪 阅读(281) 评论(0) 推荐(0)
摘要: njustcxy(原作)下面关于C++的几个关键字是经常和我们打交道的而我们又经常对这些含糊不清的,本文根据自己的学习体会作以总结,以期达到真正理解和活用的目的。staticl 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可改变其值。l 静态变量或静态函数,即只有本文件内的代码才可访问它,它的名字(变量名或函数名)在其它文件中不可见。l 在函数体内生成的静态变量它的值也只能维持int max_so_far( int curr )//求至今(本次调用)为止最大值{ static int biggest; //该变量保持着每次调用时的最新值,它的有效期等 阅读全文
posted @ 2013-06-02 11:06 飞奔的猪 阅读(161) 评论(0) 推荐(0)
摘要: 第一章 前言目的本文的目的,是讲述嵌入式Linux系统的建立、开发的一般过程。制作一个小型的Linux的系统,可以移植至其它硬盘、软盘、优盘、flash rom……关于作者 九贱,E名kendo,喜欢网络入侵技术、防火墙、入侵检测技术及网络技术,对Linux也颇感兴趣,想认识有共同爱好的朋友。最近闲暇,把一些学过的东西写下来,总结总结,以作备忘这需。已完成的有《网络入侵检测设计与Snort2.2源码分析》和这篇《我也来学做嵌入式Linux》。正在进行中的有《Windows防火墙技术实现大全》和《Linux防火墙实现及源码分析》。大家可以在CU上,或者是到我的小站www.skynet... 阅读全文
posted @ 2013-06-02 11:03 飞奔的猪 阅读(495) 评论(0) 推荐(0)
摘要: 对于实时系统,如何调试是一个很难解决的问题,包括对系统内核的调试,对驱动程序的调试,对应用程序的调试等。对于应用程序,通常各集成开发环境都提供了 常规的单步跟踪等调试手段。而对于另两个的调试,Platform Builder除了为我们提供了常规的断点跟踪等手段以外,还和系统的源程序配合使用了一种新的调试手段——Debug Zones调试区。 通常,我们都是利用OutpubDebugString函数来实现调试信息的输出的,但是由于系统底层的调试信息非常繁多,如果这样大量的调试信息用于实时输出的话一定会影响到系统的性能和实时性,也就影响到了系统的运行。如果有一种方式能允许开发人员自己选择输出... 阅读全文
posted @ 2013-06-02 11:02 飞奔的猪 阅读(242) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 下一页