上一页 1 2 3 4 5 6 7 8 9 10 ··· 30 下一页
摘要: 内中调度器分为周期性调度器和主调度器,他们是调度工作的主体,而更为详细的调度根据策略的不同交给不同的调度类,比如交给公平调度类; 周期性调度器: 周期调度器按照一定的频率周期性的运行,除了进行调度相关的数据统计之外,还会激活具体进程调度类的周期性调度方法; 在完全公平调度类的周期性调度方法中,首先更 阅读全文
posted @ 2019-10-29 22:21 AlexAlex 阅读(630) 评论(0) 推荐(0) 编辑
摘要: 总览 进程调度的总览图如下,当进程被标记为运行状态时,会加入到就绪队列中;队列中的调度实体(进程)维护自己的虚拟时间,该虚拟时间与就绪队列虚拟时间的差值作为红黑树的键值,将调度实体存入红黑树中,其中左下节点为键值最小的节点,最急需被调度,越向右节点的优先级越低; 调度子系统总图如下,进程调度激活有两 阅读全文
posted @ 2019-10-29 22:06 AlexAlex 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 在单处理器系统上,在给定时刻只有一个程序可以运行,在多处理器系统上,可以真正并行运行的进程数据,取决于物理CPU的数目; 进程优先级 在比较粗糙的划分中,进程分为实时进程和非实时进程; 1. 硬实时进程具有严格的时间限制,某些任务必须在指定的时间内完成; 2. 软实时进程是硬实时进程的一种弱化形式, 阅读全文
posted @ 2019-10-29 21:59 AlexAlex 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。负载均衡基本概念有:实服务、实服务组、虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡, 阅读全文
posted @ 2019-10-29 21:56 AlexAlex 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 中断和锁 1. 硬中断和软中断(包括tasklet和timer)共享数据,硬中断中使用spin_lock/spin_unlock,软中断中使用spin_lock_irq/spin_unlock_irq或者spin_lock_irqsave/spin_unlock_irqrestore; 硬中断可以打 阅读全文
posted @ 2019-10-29 21:52 AlexAlex 阅读(2484) 评论(0) 推荐(0) 编辑
摘要: 工作队列可以把工作推后,交给一个内核线程去执行–这个下半部分总是会在进程上下文中执行;通过工作队列执行的代码占尽进程上下文的优势;最重要的是工作队列允许重新调度甚至睡眠; 在工作队列和软中断/tasklet中做出选择很容易;如果推后执行的任务需要睡眠,那么就选择工作队列;如果推后执行的任务不需要睡眠 阅读全文
posted @ 2019-10-29 21:50 AlexAlex 阅读(1239) 评论(0) 推荐(0) 编辑
摘要: 多数情况下,为了控制一个寻常的硬件设备,tasklet机制都是实现自己下半部的最佳选择;tasklet可以动态创建,使用方便,执行起来还算快; 声明tasklet tasklet既可以静态的创建,也可以动态的创建;如果准备静态的创建一个tasklet,可以使用下面的两个宏之一: 1 #define 阅读全文
posted @ 2019-10-29 21:44 AlexAlex 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 软中断保留给系统中对时间要求严格以及最重要的下半部使用;目前,只有两个子系统(网络和SCSI)直接使用软中断;此外,内核定时器和tasklet都是建立在软中断上的;在使用软中断之前,要先确定为什么不能使用tasklet,tasklet可以动态生成,并且对加锁的要求不高,使用起来也很方便,性能也不错; 阅读全文
posted @ 2019-10-29 21:42 AlexAlex 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 中断处理程序的局限 1. 中断处理程序以异步的方式执行,并且它有可能会打断其他重要代码的执行,因此,为了避免被打段的代码停止时间过长,中断处理程序应该执行的越快越好; 2. 如果当前有一个中断处理程序在执行,在最好的情况下(没有设置IRQF_DISABLED),与该中断同级别的其他中断就会被屏蔽,在 阅读全文
posted @ 2019-10-29 21:40 AlexAlex 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 注册中断处理程序 中断处理程序是管理硬件驱动程序的组成部分;如果设备使用中断,那么相应的驱动程序就注册一个中断处理程序; 驱动程序通过request_irq()函数注册,并且激活给定的中断线,以处理中断;request_irq()函数可能会睡眠,因此,不能再中断上下文或者其他不行允许阻塞的代码中调用 阅读全文
posted @ 2019-10-29 21:37 AlexAlex 阅读(1416) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 30 下一页