搜索
bottom↓
回复: 7

关于操作系统的时间片的疑问

[复制链接]

出0入0汤圆

发表于 2014-7-7 22:14:05 | 显示全部楼层 |阅读模式
最近看看了操作系统原理这本书的一些章节,里面有说到分时操作系统。分时操作系统允许多个用户通过终端访问系统,由操作系统控制每个用户程序以很短的时间为单位交替执行。系统时钟以大约0.2秒一个的速度产生中断,在每个时钟中断处,操作系统恢复控制权,并将处理器分配给另外的一个用户。因此在固定的时间间隔内,当前用户被抢占,另一个用户被载入。为了以后便于恢复,保留老的用户的程序状态,在新的用户程序和数据载入之前被读入之前,老的用户程序和数据被写到磁盘,到获得下次机会时再恢复到内存中。
        我对这个时间片的理解是:操作系统是一段控制应用程序运行和进行资源管理的程序。操作系统运行之前设定好一个定时器,这个定时器专门用于产生固定的时间片,这个时间片的长短可由操作系统动态设定。当定时器产生中断时,跳到中断服务程序中。这个这中断服务函数==操作系统?中断产生之后跳到中断服务函数中,就相当于中断服务函数取得了cpu的使用权,对应说到在每个时钟中断处操作系统恢复控制权。又或者是在中断服务函数中将PC值指向操作系统的入口处。
        如果我的理解是大概正确的话,那么在linux系统中用于设定该时间片的函数是哪个?

阿莫论坛20周年了!感谢大家的支持与爱护!!

该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981

出0入0汤圆

发表于 2014-7-7 22:43:00 | 显示全部楼层
linux中具体是哪个函数不清楚,但是基本的原理还是遵循处理器调度的基本规则,也就是基本状态图和扩展的调度模式
就绪->执行->阻塞的三态转换
在一般调度中就绪---实现为就绪“队列”,任务按照调度算法(如FIFO,SJF等)顺序调度,
中断某种意义上可以理解为“插队”,中断发生时中断任务被插入这个“就绪队列”的队首,在下一个CPU时间片得到处理

时间片一般不会设计为完全动态的,但是可以设定几个级别,例如1级=1个单位,2级=2个单位,3级=4个单位
或者说将几个基本时间片链接起来形成一个宏观上看起来更大的时间片也是可行的方法

出0入0汤圆

 楼主| 发表于 2014-7-8 08:48:32 | 显示全部楼层
调度算法也是要通过执行指令去实现的,在其他任务占用cpu的情况下,也只有通过分配给该任务的时间片使用完而产生的中断才能够抢占cpu,而这些调度算法也就是中断后所执行的指令。调度算法属于操作系统的部分代码,那么操作系统是不断地靠插队来获得控制权的。我这样理解可以吗?

出0入0汤圆

 楼主| 发表于 2014-7-8 08:59:36 | 显示全部楼层
目前纠结于这个时间片的实现,对它的实现原理不是很明了,希望各位能够给我说说或者提供点学习资源。

出0入0汤圆

发表于 2014-7-8 09:50:43 | 显示全部楼层
这个中断服务函数==操作系统?

1、这个中断服务函数只是操作系统的一部分,但确实是非常重要的一部分。很多内核的任务调度器就放在这个中断函数中。
2、时间片其实就是上述时基定时器的溢出周期。通过修改这个定时器的初值,就能改变任务执行的时间片。
3、中断使操作系统获得CPU的控制权——这在抢占式系统中尤其如此。
4、你的理解基本上是正确的,继续深入吧。个人认为,只有明白了內核怎样才能不关中断实现任务切换,才算完全理解了操作系统。

出0入0汤圆

 楼主| 发表于 2014-7-8 21:35:33 | 显示全部楼层
谢谢大侠的解答,遇到什么问题还要向你们请教。

出0入0汤圆

发表于 2014-7-15 14:32:14 | 显示全部楼层
wallemm 发表于 2014-7-8 08:59
目前纠结于这个时间片的实现,对它的实现原理不是很明了,希望各位能够给我说说或者提供点学习资源。 ...

建议可以先看看任意一款带时间片轮转的rtos就明白了
我大概提下,rtos一般带一个定时器,每个定时周期是一个tick,一个时间片就是若干个tick,每次tick发生时,定时中断函数内就会计算当前任务执行的时间已经过了多少个tick,时间一到就会切换到下一个就绪任务(优先级要相同)

出0入0汤圆

 楼主| 发表于 2014-7-21 17:43:24 | 显示全部楼层
我现在只是想从整体上把握一下操作系统的实现原理,但是也不必具体到某个函数上去,那样的话理解起来还是很困难的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-1 18:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表