Linux
无忧V
熟悉Voip / Android / Linux / C / C++ / Python / JS / PHP / Java
展开
-
Linux进程上下文和中断上下文总结
在Linux系统下,CPU总是处于下面三种状态之一:1、内核态,运行进程上下文。2、内核态,运行于中断上下文。3、用户态,运行进程上下文。 进程上下文和中断上下文是Linux系统一个比较重要的概念,下面从程序的角度总结一下各属于哪种上下文:1、中断处理程序处于中断上下文。2、异常处理程序通常从用户空间的进程发起,处于进程上下文,可以切换到其他进程。3、软中断(sof原创 2013-09-05 15:17:13 · 3332 阅读 · 2 评论 -
Malloc函数的线程安全与可重入性分析
malloc函数是一个我们经常使用的函数,如果不对会造成一些潜在的问题。下面就malloc函数的线程安全性和可重入性做一些分析。 我们知道一个函数要做到线程安全,需要解决多个线程调用函数时访问共享资源的冲突。而一个函数要做到可重入,需要不在函数内部使用静态或全局数据,不返回静态或全局数据,也不调用不可重入函数。 malloc函数线程安全但是不可重入的,因为malloc函数在用户空间要自己管原创 2013-09-05 15:18:34 · 23701 阅读 · 0 评论 -
Linux进程调度与内核抢占总结
Linux2.6以后支持内核抢占,在开发过程中内核抢占经常会造成一些竞态问题,分析起来比较麻烦,所以有必要总结一下触发抢占的因素和时机。 一、触发抢占的因素1、进程调用sleep或exit等函数进行状态切换,这些函数通过系统调用进入内核会主动调用schedule。2、在时钟中断处理程序检查到进程时间片用完,置位need_resched。3、在中断处理程序或者系统调用中主动调用sch原创 2013-09-05 15:17:39 · 1428 阅读 · 0 评论