Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1445455
  • 博文数量: 209
  • 博客积分: 464
  • 博客等级: 下士
  • 技术积分: 3772
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 18:25
个人简介

阿弥陀佛

文章分类

全部博文(209)

文章存档

2019年(3)

2018年(5)

2017年(6)

2016年(10)

2015年(9)

2014年(73)

2013年(90)

2012年(13)

分类: 系统运维

2015-01-02 21:21:56

       假设系统中有三个进程ABC,那么操作系统会动态调度这些程序的执行,那么什么时候来执行调度程序呢?调度程序是被谁来执行的呢?
        按照时间顺序,程序的执行顺序可能是这样的一个序列:ABABCBABACB。实际的调度是靠计算机外部会有一个外部计时器,调度的工作全靠这个寄存器了。按照一定的频率来产生时钟频率,如果计时器产生了中断,系统就会执行其中断处理函数,进入内核态,并执行调度程序,如果要切换进程,则需要保存上下文,这个时间大概需要1000个时钟周期,因此如果时钟中断特别频繁,将严重的影响系统的性能。一般10ms左右会产生一个中断程序。
     一般情况下定时器sleep都无法实现准确的定时功能,这个主要是由于其他进程的时间片还没有执行完,所以不会轮到sleep来执行。
     
阅读(1761) | 评论(0) | 转发(0) |
0

上一篇:CPU流水线原理

下一篇:内存虚拟化技术

给主人留下些什么吧!~~