贴片电感
贴片电感
・  当前位置::扁平线圈电感 > 技术文章
uClinux进程调度器的实现分析
作者:    来源:    时间:2015-12-29 14:27:04浏览量:

If( bh_active & bh_mask)

{ intr_count =1;

do_bottom_half();

intr_count = 0;

}

来判断此时是否有bottom_half服务要处理,若有则执行do_bottom_half()。该函数

会调用时钟响应函数timer_bh( ),分别由updates_times( )、run_old_timers( )和run_timer_list( )检查、执行调用服务。Update_times( )又调用update_process_times( )函数调整进程的时间片,当时间片小于0时,need_resched( 需要重调度)标志会被置位。当时钟中断处理完毕后,系统会返回到入口ret_from_intr,ret_with_reschedule处,判断 need_resched 标志是否置位,若是则转入执行schedule( )。

(4)当唤醒一个睡眠进程时,发现被唤醒的进程比当前进程优先级更高。www.51kaifa.com

(5)一个进程通过执行系统调用来改变调度策略或降低自身的优先级,从而引起调度。

4 Schedule调度程序核心部分源代码分析[3]

该调度程序的目标是选择下一个要执行的进程:首先对所有进程进行检测,唤醒任何一个得到信号的进程,即改变进程的state属性;然后根据时间片和优先级调度机制来计算处于就绪队列中每个进程的综合优先级,其计算方法由goodness( )函数实现;接着选择综合优先级最高的进程作为随后要执行的进程,若就绪队列中没有可调度的,则重新分配时间片,即改变进程的counter属性值,并利用switch_to( )函数进行进程切换。

asmlinkage void schedule(void){

struct schedule_data * sched_data;

/*描述进程的数据结构,

包含指向所运行CPU的属性。*/

struct task_struct *prev, *next, *p;

struct list_head *tmp;

int this_cpu, c;

spin_lock_prefetch(&runqueue_lock);

need_resched_back:

prev = current;

this_cpu = prev->processor;

if (unlikely(in_interrupt())) {

/*判断是否在中断服务程序中*/扁平线圈电感制造厂

  • 关于N沟道MOSFET做双电源切换方案有没有人做过使用N沟道MOS管做开关,实现的功能:电池和适配器两路电源供电,一般使用适配器供电,在户外时使用电池供电,两种电源都有时选择适配器供电,使用N沟道mosfet作为开关,要求m

  • 电网调度自动化系统安全运维管理探讨 电网调度自动化系统安全运维管理探讨来源:朱国庆发布时间:2015-01-23分类:[杂志期刊] 关键词:调度自动化;安全生产;隐患排查;运维管理一、电网调度自动化系统的作用随着微电子技术、计算机技术和通信技术的发展,电网生产运行管理进入到新的层次,对电网调度自动化系统的安全运维管理也提出了更高要求

  • 请问这个恒流源电路的确定基准电压后,怎么选取采
    先设定好IC1-1正端输入的电压基准,再反算R7就可以了;或者先设定R7,根据流过R7的电流,可以计算出R7上的电压,再反推正向端的基准电压。
    431的基準點是2.5V, 假設你VR1打到最大

  • 上一篇:PCB高速信号电路设计技巧分享之布线技术