摘要:进程:一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。进程有自己的栈空间,用于保存函数中的局部变量和控制函数的调用与返回。进程还有自己的环境空间,包含专门位这个进程建立的环境变量。进程必须维护自己的程序计数器,这个计数器用来记录它执行到的位置,即在执行线程中的位置。在使用线程时,进程可以有不止一个执行线程。 Linux进程表就像一个数据结构,它把当前加载在内存中的所有进程的有关信息保存在一个表中,其中包括进程的PID、进程的状态、命令字符串和其它一些ps命令输出的各类信息。 子进程终止时,它与父进程之间的关联还会保持,直到父进程也正常的终止或父进程调用wait才告结束。因此,
阅读全文
摘要:linux抢占发生的时间:抢占分为用户抢占和内核抢占。用户抢占在以下情况下产生:1、从系统调用返回用户空间2、从中断处理程序返回用户空间内核抢占发生在:1、当从中断处理程序返回内核空间的时候,且当时内核具有可抢占性;2、当内核代码再一次具有可抢占性的时候(如spin_unlock);3、如果内核中的任务显式调用主调度函数schedule()4、如果内核中的任务阻塞 基本的进程调度就是发生在时钟中断后,并且发现进程的时间片已经使用完了,则发生进程抢占。通常我们会利用中断处理程序返回内核空间的时候可以进行内核抢占这个特性来提高一些I/O操作的实时性,如:当I/O事件发生的时候,对应的中断处理程序.
阅读全文
摘要:完全引述自:http://blog.csdn.net/dog250/article/details/7459533自Linux 2.6以来(严格说应该是2.5),O(n)调度器被人们认为是一种千年之前就应该抛弃的东西被重重的甩开了,此后出现了O(1),CFS等,再也没人提 起O(n)了。说实话,Linux的调度器远比标准Unix的来得复杂,因为Linux被用于不同的场合,从手机一直到大型服务器,跨度如此之大就需要兼 各种情况,你既要使网络服务器的吞吐量达到最大,又要使交互体验更佳,然而有时候吞吐量和延迟却是鱼与熊掌的关系... O(n)被彻底遗忘,某种程度上反映了人们的思维误区,那就是“解决问
阅读全文
摘要:1 #include 2 3 void show(unsigned int value, unsigned int start, unsigned seq_end) 4 { 5 int i = 0; 6 printf("%d = %d + ", value, start); 7 for(i = 1; i = value)37 break;3...
阅读全文
摘要:unicore32-linux-gcc -dM -E - </dev/null
阅读全文
摘要:下载alsa-lib-1.0.26.tar.bz2 alsa-utils-1.0.26.tar.bz2将alsa-lib目录下的config.sub做如下修改:# Decode aliases for certain CPU-COMPANY combinations.case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 17...
阅读全文
摘要:想画下流程图,感觉word不好用,无意间看了这个,可是流程图这个周末是画不出来了。apt-get install texlive apt-get intall context 下载字体至/usr/share/fonts/truetype/adobe/ 目录下 并设置环境变量 OSFONTDIR 每次放置好字体后需要运行mtxrun --scripts fonts --reload mtxrun --scripts fonts --list --pattern=* -all 显示支持字体引述:http://liyanrui.is-programmer.com/2009/10/21/not-jus
阅读全文
摘要:引述自:http://blog.csdn.net/lizhibin1091666592/article/details/6976254 内核的一个基本原则就是:在中断或者说原子上下文中,内核不能访问用户空间,而且内核是不能睡眠的。也就是说在这种情况下,内核是不能调用有可能引起睡眠的任何函数。一般来讲原子上下文指的是在中断或软中断中,以及在持有自旋锁的时候。内核提供了四个宏来判断是否处于这几种情况里:#define in_irq() (hardirq_count()) //在处理硬中断中#define in_softirq() (softirq_count()) //在处理软中断...
阅读全文
摘要:thread_info中的preempt_count域设置当前进程是否可被抢占,但是我们还得注意下内核中会用到preempt_count() & PREEMPT_ACTIVE,这就是判断preempt_count 的PREEMPT_ACTIVE是否被置位,preempt_count的PREEMPT_ACTIVE位只有在内核抢占中才会被置位。__irq_svc: svc_entry#ifdef CONFIG_PREEMPT get_thread_info tsk ldr r8, [tsk, #TI_PREEMPT] @ get preempt count add...
阅读全文
摘要:1 #include 2 3 class CSofa 4 { 5 public: 6 CSofa() 7 { 8 m_nColor = 2; 9 } 10 11 virtual ~CSofa()12 { 13 ...
阅读全文