操作系统的原理

1.操作系统的引入

在没有操作系统时时,如果想实现一个场景:灯一直闪烁,按键每按下一次,lcd上显示数字加1.

void main(){
	led_init();
	key_init();
	lcd_init();
	while(1){
		led();
		key_scan();
		lcd();
	}
}

程序会顺序执行,但是当灯闪烁时间延长时,再按下按键,可能不起作用,因为程序可能会困在led()函数中,还未执行到key_init函数中。解决方式,可以引入中断或状态机。
现在从操作系统的角度解决该问题:
操作系统主要是解决任务时间的交叉问题的。

2.操作系统的基本思想:

(1)cpu工作原理:
在这里插入图片描述
(2)时间片:是操作系统的计时单位
Tick:时钟节拍,是操作系统的最小计时单位。
一个时间片=n*tick

3.调度策略

有了操作系统后,每个任务或进程都有一个死循环。
由操作系统按照特定的调度策略,在后台对这些进程进行切换。
(1)基于时间片轮转:
操作系统要从众多的进程中挑选(依据进程的状态)一个进程送给cpu执行。
进程的状态:
休眠态:进程不需要执行
就绪态:运行条件是具备的,但os还未切换,差cpu
运行态:
阻塞:运行条件是不具备的,需要等别的进程发信号过来
删除:
操作系统的Tick:
是由处理器硬件上的一个定时器中断产生。一般一个固定周期是10ms。
当中断来临时,对操作系统的相关函数进行一次调用,也就是说需要在硬件定时器的中断函数中去调用操作系统的函数,这个过程叫做系统调用。
操作系统会在每个tick周期对每个进程的状态进行统计、修正(进程的状态保存在进程控制块中 (process control block,PCB))--------作为下次进程调度的依据
(2)基于优先级的进程调度
当有多个就绪任务时,先执行优先级高的任务。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值