Linux内核学习笔记——3.系统进程的运转方式

系统时间:(jiffies  系统滴答)

        CPU内部有一个RTC,会在上电的时候调用mktime函数算出从1970年1月1日开始到当前开机点所过的秒数,给MKTIME函数传来的时间结构体的赋值是由初始化时从RTC(cmos)中读出的参数,转化为时间存入全局变量中,并且会为JIFFIES所用。

        JIFFIES是一个系统的时钟滴答,一个系统滴答是10ms

        1.10ms一个系统滴答——>每隔10ms会引发一个定时器中断

                                                (中断服务函数中,首先进行了jiffies的自加time_interrupt

                                                   call_do_timer

         2.调用do_timer函数

if (cpl)//CPL变量是内核中用来指示被中断程序的特权(0表示内核进程、1表示被中断的是用户进程)
    current->utime++;//utime用户程序的运行时间
else
    current->stime++;//stime内核程序的运行时间

        3.next_timer 是嫁接与jiffies变量的所有定时器的时间链表

        4.current->counter——>进程的时间片

        5.task_struck        一个进程        task_struct[ ]进程向量表

        6.counter->在哪里用:进程的调度就是task_struct[ ]进程链表的检索,找时间片最大的那个进程对象(task_struck),然后进行调用,直到时间片为0,退出。之后再进行新一轮的调用。

        7.counter->在哪里被设置:当全部的 task_struct[ ](task[ ])所有的进程的counter都为0,就进行新一轮的时间片分配。

        8.优先级分配        (*p)->counter = ((*p)->counter >> 1) + (*p)->priority;

        9.优先级时间片轮转调度算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值