嵌入式学习(二)-分时操作系统与实时操作系统

分时操作系统(Time-sharing Operating System)

  分时操作系统将系统处理机时间与内存空间按一定的时间间隔(划分时间片),采用轮转运行方式轮流地切换给各终端用户的程序使用(例如规定每个作业每次只能运行一个时间片)。由于时间间隔很短,每个用户就感觉像独占全机一样。例如Linux下可以同时开不同的用户终端。

实时操作系统(Real Time Operating System), VxWorks、μClinux、μC/OS-II和eCos是4种性能优良并被广泛应用的实时操作系统

实时操作系统是指是指可以在规定的时间内完成任务,其中按对截止时间的要求来划分,可将实时任务分为硬实时和软实时任务。硬实时任务是指系统必须满足任务对截止时间的要求,否则将会出现错误,带来难以预测的后果(工业和武器控制系统常用)。

软实时任务对截止时间的要求不那么严格,即使偶尔出现错过截止时间,对系统影响也不会太大(信息查询系统和多媒体系统等常用)。

例子:在工业生产线上,工业机器人运作,若采用硬实时,当运算时间大于规定时间,那么工业机器人上停止运动,停止生产;而采用软实时,当当运算时间大于规定时间,工业机器人运转还是会继续运动,但产量会减少。

Linux系统属于分时系统的原因?

实时任务抢占时间是不可预期的。Linux内核化代码使用其中spin_lock锁,直至释放才会运行其他任务。

一个普通任务运行过程中,通过系统调用进入内核态拿了一把spin_lock这样的锁,在拿锁过程中,发生了硬件中断,于是cpu立即去处理硬件中断,在这个硬件中断处理函数(ISR)中唤醒了一个RT任务,硬件中断处理完后,还有可能处理软中断,也有可能没有,根据设备驱动实际场景决定(中断底半步)。当中断顶半步&底半步全部执行完后,事实上RT任务还是得不到运行的,因为前面有一个普通任务拿了spinlock锁,spinlock是会关抢占的,所以还要等到普通任务调用到spin_unlock的那一刻,RT任务才能进行抢占。
 

如何让linux变成一个硬实时操作系统呢?

给inux版本都有实时补丁,实质上为RT补丁将spin_lock锁变成可以抢占了,这样就不用等到unlock时才能调度到rt任务。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值