![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 67
imtgj
在某通信公司从事软件平台设计开发,关注OS、协议栈、中间件。
展开
-
linux实时任务调度算法分析
鉴于最近有关cpu占有率的一些问题涉及到linux内核的调度算法,有必要进行了解。因此,写了这篇文章。linux常见的任务有两种,实时任务与非实时任务。实时任务的调度算法是大家都非常熟悉的优先级抢占或优先级抢占加时间片两种,其主要思想是效率优先。非实时任务的调度算法是CFS(完全公平算法),从名字就可以知道,其思想是公平优先,兼顾效率。由于我们使用上,实时任务比较多,本篇就先介绍实时任务的调度机制原创 2011-12-27 23:31:27 · 8856 阅读 · 2 评论 -
linux负载均衡调度算法的实现
按照计划,本想写一篇负载均衡的调度算法分析,但查看了网上的资料,发现这篇文章已经写的比较好,我都没用那么大的耐心写的那么详细。下面是我在网上找到的资料,这里发个链接。http://blog.csdn.net/dog250/article/details/6538240另外,在这里简单总结一下:1,负载均衡的调度只是针对非实时任务,原因,参考我前面的文章:实时任务调度算法原创 2012-02-20 23:11:31 · 2889 阅读 · 0 评论 -
linux非实时任务调度CFS算法分析
CFS算法是基于一个理想的,精确的多任务CPU设计的(在这种CPU下,各个任务的运行速度是一致的),实际上这个CPU并不存在,因此,算法模拟了硬件的实现,通过分割CPU的时间使得每个任务的运行时间总是相等的。实现上,在每个任务控制块的调度实体上有一个变量vruntime保存了本任务的运行时间,调度时找时间最小的任务运行,使得最后每个任务的运行时间都相等。当然,不会当运行时间最小的任原创 2012-02-12 17:04:44 · 3533 阅读 · 0 评论 -
pthread互斥信号量使用总结
----一年前写的东西,重新抄录以防遗忘。glibc提供的pthread互斥信号量可以用在进程内部,也可以用在进程间,可以在初始化时通过pthread_mutexattr_setpshared接口设置该信号量属性,表示是进程内还是进程间。进程内的使用较为简单,本文的总结主要是针对进程间的,进程内的也可以参考,其代码实现原理是类似的。一、实现原理pthread mut原创 2012-05-21 19:24:24 · 8216 阅读 · 0 评论 -
中断机制
一、中断概述中断的目的就是让CPU能响应某种突发事件并做出处理。如网卡收到了一个报文,需要通知CPU对该报文进行处理。这种一般称之为外部中断,让CPU与其他硬件设备能够配合工作。另外一类中断(或者说异常),是由CPU内部触发的,如代码执行过程中发生了除0错误,访问了不存在的地址等,这种一般称之为内部中断。由于这两类中断的处理机制与流程基本一致,因此,从中断处理代码来说,通常不加原创 2012-05-19 23:52:52 · 1803 阅读 · 0 评论 -
从printk和logMsg看linux和vxworks的设计理念差异
printk是linux内核的打印函数,类似用户态下的printf,可在中断上下文调用;同样,logMsg是vxworks内核的打印函数,也可在中断上下文调用。linux开始作为桌面系统设计,后来广泛用于服务器领域,慢慢扩展到了嵌入式系统;而vxworks则以高性能实时嵌入式系统闻名。从这可以看出,它们的差异是很大的,考查两个同样的功能在不同系统的实现,管中窥豹,虽有不足,但也可以了解原创 2012-09-17 00:33:00 · 4315 阅读 · 0 评论 -
linux互斥信号量pthread_mutex的两个问题
pthread mutex是glibc实现,在linux下实现互斥的信号量,可用于进程内或者进程间。下面是使用上碰到的两个问题。问题一、超时时间基准pthread mutex超时采用的是系统时间(如windows右下角的时间),这个时间是会被修改的,如果使用者本来是想延迟等待一段时间的,刚好时间 被修改了,将导致超时时间不准。这个问题在代码从vxworks移植到linux下,很原创 2012-11-29 00:07:09 · 2238 阅读 · 0 评论 -
慎用进程间条件变量pthread_cond_t
条件变量是用于多线程/多进程间同步,是一种典型的睡眠唤醒用法。P1等待某个事件的发生,P2触发事件,唤醒P1。条件变量在初始化时,可以通过接口pthread_condattr_setpshared指定该条件变量可用于进程内的线程间同步,还是用于进程间同步。但是,在linux的glibc实现中,进程间同步却存在着一个缺陷。将导致问题扩散,非常严重。原因如下:pthread_cond_t结原创 2013-01-09 23:47:21 · 5336 阅读 · 1 评论