多任务系统

来源:互联网 发布:苹果看图软件 编辑:程序博客网 时间:2024/06/15 16:24

什么是多任务系统?就是同时执行多个并行任务,多个任务之间互相独立。通过操作系统执行任务调度来实现“并发运行”,好像每个任务都有自己的CPU一样。

在单一CPU情况下,并不存在真正的多任务机制,实质是不同的任务轮流使用CPU。但是由于CPU速度非常快,加上任务切换的非常快,所以感觉上是多个任务在同时运行。这就是所谓的多任务机制。


多任务的最大好处是充分利用硬件资源。在51程序中,遇到delay,CPU就是在空转;多任务的时候呢,遇到delay就去运行下一个任务了,这样可以提高效率


【动态】任务的状态:就绪,运行,挂起。挂起就是条件不满足而不能运行的状态

【独立】任务之间互相独立,不存在相互调用的关系,逻辑上是平等的。任务之间看不见,需要各种通信机制来实现:信号量,消息油箱,队列等

【并发性】由同一个处理器轮换的运行多个程序,或者说多个程序轮班占用处理器。在占用资源期间,并不一定能把程序运行完。


什么是抢占式调度?

调度的概念,就是系统在多个任务中选择合适的任务来执行,需要优先级别。那个任务高就执行哪个。优先级是任务的唯一表示好,不同的优先级对应就绪表中的每一位。0优先级最高,31优先级别最低

抢占式调度就是:一旦就绪状态中出现跟高优先级的任务,立刻剥夺当前任务的运行权,把cpu分配给更高优先级的任务


如何实现多任务:如果一个任务有自己的cpu,堆栈,程序代码,数据存储区,那就是独立的任务。

【可重入函数】可重入函数的所有变量都是局部变量,局部变量在调用时临时分配空间,所有不同的任务在不同的时刻调用该函数时,他们的同一个局部变量所分配的存储空间不同,互不干扰。如果可重入函数调用了其他函数,则调用的函数也必须是重入函数

【临界资源】是一次仅允许一个任务使用的共享资源,每个任务中访问临界资源的那段程序是【临界区】。在多任务系统中,为了保障数据的可靠性和完整性,共享资源要互斥访问,所有全局变量不能同时被多个任务访问,也就是说一个任务访问的时候不能被其他程序打算。共享资源是一种临界资源。实现互斥方位的方法:关中断,关调度,互斥信号量,计数信号量等

在临界区,只要任务不放弃cpu使用权,别的任务就没办法占用cpu的几乎,相当去独占了。临界区的代码要尽量短


系统干啥:处理器管理,任务管理,存储管理,io外设管理,文件管理,网络和通信的管理

0 0