2012年11月20日

摘要: 2009/02/25 01:27An Introduction to GCC 学习笔记:作者:吴学军 内容摘要 注:转载时请注明出处和作者(吴学军 )来源于GNU文档学习手册前三章:要点1。强烈推荐使用-Wall选项;注:Warning 的显示格式: ?le:line-number:message2。编译选项-o 文件名:直接产生可执行文件-c 文件名:只编译为.o的库文件,不链接 (.c => .o )在将多个.o连接为一个可执行文件时,仅使用-o指定可执行文件名即可,不需要使用-Wall选项,因为链接是一个明确的过程(unambiguous),只有successed或者fail两种结 阅读全文
posted @ 2012-11-20 15:38 i活着 阅读(517) 评论(0) 推荐(0)
摘要: 转自:http://www.lupaworld.com/article-216737-1.html1. 产生原因: 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程。通过ps命令查看其带有defunct的标志。僵尸进程是一个早已死亡的进程,但在进程表 (processs table)中仍占了一个位置(slot)。 但是如果该进程的父进程已经 先结束了,那么该进程就不会变成僵尸进程。因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看看有没有哪个进程是刚刚结束的这个进程的 子进程,如果是的话,就由Init.. 阅读全文
posted @ 2012-11-20 15:36 i活着 阅读(340) 评论(0) 推荐(0)
摘要: 转自:http://www.cppblog.com/mysileng/archive/2012/10/16/193380.html1.概述 CFS(completely fair schedule)是最终被内核采纳的调度器。它从RSDL/SD中吸取了完全公平的思想,不再跟踪进程的睡眠时间,也不再企图区分交互式进程。它将所有的进程都统一对待,这就是公平的含义。CFS的算法和实现都相当简单,众多的测试表明其性能也非常优越。 CFS 背后的主要想法是维护为任务提供处理器时间方面的平衡(公平性)。这意味着应给进程分配相当数量的处理器。分给某个任务的时间失去平衡时(意味着一个或多个任务相对于其他任务而言 阅读全文
posted @ 2012-11-20 15:35 i活着 阅读(1300) 评论(1) 推荐(0)
摘要: 转自:http://www.ibm.com/developerworks/cn/linux/l-cn-scheduler/引言进程调度是操作系统的核心功能。调度器只是是调度过程中的一部分,进程调度是非常复杂的过程,需要多个系统协同工作完成。本文所关注的仅为调度器,它的主要工作是在所有 RUNNING 进程中选择最合适的一个。作为一个通用操作系统,Linux 调度器将进程分为三类:交互式进程此类进程有大量的人机交互,因此进程不断地处于睡眠状态,等待用户输入。典型的应用比如编辑器 vi。此类进程对系统响应时间要求比较高,否则用户会感觉系统反应迟缓。批处理进程此类进程不需要人机交互,在后台运行,需要 阅读全文
posted @ 2012-11-20 15:33 i活着 阅读(360) 评论(0) 推荐(0)
摘要: 转自:http://hi.baidu.com/_kouu/item/38c81042455c97d2c1a592d9操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说"某某函数比某某函数效率高XX倍"一样,脱离了实际环境,这些结论是比较片面的。 而进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对TASK_RUNNING状态的进程进行调度(参见《linux进程状态浅析》)。如果进程不可执行(正在睡眠或其他),那么它跟进程调度没多大关系。所以,如果你的系统负载非常低,盼星星盼月 阅读全文
posted @ 2012-11-20 15:32 i活着 阅读(279) 评论(0) 推荐(0)
摘要: 转自:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.htmlvolatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数 据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。 下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;void test(){do1();while(flag==0);d 阅读全文
posted @ 2012-11-20 15:31 i活着 阅读(191) 评论(0) 推荐(0)
摘要: 转自:http://hi.baidu.com/yuzjgfsuhpbamqq/item/fdb3044e8c68343efa8960351.内存对齐:计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数k则被称为该数据类型的对齐模数(alignment modulus)2.不同编译器默认的最大对齐字节数是不一样的,比如vc==8,gcc==4,可以通过#progma pack (n)来修改,分析程序的时候要注意编译器的区别3.一个结构体里面,按照alignment modulus最大的数据成员来进行对齐,超过编译器规定最大的对齐字节 阅读全文
posted @ 2012-11-20 15:30 i活着 阅读(210) 评论(0) 推荐(0)

导航