多任务系统基本思想.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多任务系统基本思想 谢国经1+ 1(广东海洋大学 电子信息工程1071班,湛江 524088) Basic idea of multi-task system Xie Guo Jing1+ 1(Department of Electronic Engineering of Guangdong Ocean University, ZhanJiang 524000, China) Abstract: *Single-task systems are often unable to satisfy the demand for modern embedded products. And there are more and more integrated technology chip, in a very small chip can integrate the rich hardware resources, if it is single-task system will lead to a serious waste of hardware resources. Therefore, building a system used for on-chip multi-task system, has become inevitable. This article is to build a multi-task system introduced the basic idea. Task in a multi-task system is perceived by the system how? How to create a task? Why scheduling between tasks? How do they dispatch? When the scheduling of tasks? Key words: * Multi-task; system 摘 要: 单任务的系统往往不能满足人们对现代化嵌入式产品的需求。再加上现在芯片的集成技术越来越高,在一块极小的芯片上可以集成丰富的硬件资源,如果还使用单任务的系统会导致硬件资源的严重浪费。因此,构建适合片上系统使用的多任务系统,成了必然。本文就是要介绍构建一个多任务系统的基本思想。任务在多任务系统中是怎样被系统感知的?如何创建任务?任务之间为什么要调度?他们又是如何调度的?什么时候进行任务的调度? 关键词: 多任务;系统 一、多任务系统概述 什么是任务呢?单任务与多任务有什么区别? 任务他不仅仅是一段能被CPU执行的代码,还包括CPU分配的各种资源。我们在裸机上开发的小程序可以理解为单任务的系统,CPU是按照一条线执行代码,他完全占有CPU的资源,包括CPU的栈。芯片启动的时候就直接进入这个任务的运行,一直到关机,这个任务才会结束。但是多任务系统就有很多这样的任务组成的,系统启动的时候不是直接进入任务的执行,而是要经过系统初始化之后CPU才能进入多任务的执行环境。每个任务都有自己的任务栈,可以向系统申请系统的资源,使用完后可以归还系统让别的任务可以使用。任务之间可以进行通信,一个任务可以创建另一个任务,任务之间通过任务调度的方式轮流的占有CPU。多任务系统的出现,使得本来只能完成一项工作的片上系统,可以同时完成很多项工作,CPU的利用率明显的提高了。 二、多任务系统 2.1任务在系统中是怎样被系统感知的 如图1所示,一个任务在系统中是以一个数据结构的形式存在的,这个数据结构记录了任务栈的地址,在栈中保存着任务的CPU状态,说状态是有点抽象了,实际上这些CPU状态就是CPU的寄存器。这些寄存器入栈的顺序是不能随随便便的,他们都是要以一定的顺序入栈,这样的顺序就是我们通常说的栈结构。除了保存任务栈外还要保存任务的各种状态,就是认为是在被CPU执行中还是在挂起状态,是在等待某个事件的发生还是获得了某个事件,是否需要时间服务等等。 既然任务可以在等待状态,那样就应当给一个位置让任务可以“休息”。这个位置通常用链表来实现,更专业一点就叫挂起,这样的过程好像我们去找一个人,但是他不在家,这样的话我们要么直接离开,要么在他家里等他回来。我们总不能给任务一个凳子吧!呵呵······因此,在数据结构中要定义两个指针(双向链表)用来实现任务的挂起。同理,任务可以挂在事件上等待他的发生,也可以挂在就绪队列等待任务被CPU调度,这样的话任务还需要两个任务指针。再加上任务需要时间服务,因此还需要两个任务指针。到现在为止已经需要为任务定义三对指针了。加上之前讲的用来描述任务状态的变量,现在不管任务在什么地方都可以被系统感知了。系统只需要查看链表上有没有挂接到东西就可以知道有没有任务

文档评论(0)

ea238982 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档