UCOS任务切换
在学习这个操作系统。但是对于任务到底是如何切换的,始终不太明白。书上说每个任务都是大循环,既然是大循环,那它又是如何交出CPU的使用权的呢?是用时间控制的?还是用其它的什...
在学习这个操作系统。但是对于任务到底是如何切换的,始终不太明白。书上说每个任务都是大循环,既然是大循环,那它又是如何交出CPU的使用权的呢?是用时间控制的?还是用其它的什么方法?谢谢。学习这个操作系统,对于linux的学习有没有帮助呢?谢谢。
展开
2个回答
展开全部
UCOS有一个任务调度机制,根据任务的优先级进行调度,具体的调度方式你可以看邵贝贝的书,关于交出CPU使用权的问题主要有二个方面:
一个是硬件中断,那么系统会将当前任务有关变量入栈,然后执行中断服务程序,执行完成后出栈返回.
另一个是任务之间的切换,使用的方法就是任务调度,每一个任务有自己的栈,顺度也是一样的入栈,然后执行另一个程序,然后出线返回.
具体的你可以看邵贝贝的书,网上一搜一大堆.
关于LINUX的问题,首先它俩应用有些区别,UCOS是嵌入式实时操作系统,关键在实时方面,应用于对时间要求较高的地方,虽然LINUX也有一些版本是实时的如RTlinux但是相对来说选择UCOS的多些,而LINUX应用方向有很多,如服务器,电脑的操作系统,嵌入式操作系统等等,我不知道你要问的是哪方面的学习,如果是嵌入式操作系统的话学习UCOS是有一些帮助的,如事件,消息等系统级的应用方法,在LINUX上是一样的,只是函数名有可能不一样,但是直接学习LINUX系统编程更有助于了解这些东西,最好刚学时不要去看内核代码,先会用,然后再去看,学习LINUX的话,你要会LINUX下的常用命令,SHELL命令解析器的使用,LINUX下的编缉器的使用,MAKEFILE的使用,GCC的使用等等,其实就有一些类似于DOS,这些东西也就是现在最热的ARM_LINUX学习的东西,再学学ARM的架构,那么你就可以开发了.
关于ARM_LINUX的东西你在优酷上可以找到一些视频看,然后跟着学,最好买一套开发板,方便实践,现在比较多的也就是S3C2440和S3C6410 资料多,论坛多,学的人多.
如果学LINUX系统编程推荐你一本书 UNIX环境高级编程
打字真累,就这些吧,如果还有问题的话也可以问,要是想系统的学去培训吧!
一个是硬件中断,那么系统会将当前任务有关变量入栈,然后执行中断服务程序,执行完成后出栈返回.
另一个是任务之间的切换,使用的方法就是任务调度,每一个任务有自己的栈,顺度也是一样的入栈,然后执行另一个程序,然后出线返回.
具体的你可以看邵贝贝的书,网上一搜一大堆.
关于LINUX的问题,首先它俩应用有些区别,UCOS是嵌入式实时操作系统,关键在实时方面,应用于对时间要求较高的地方,虽然LINUX也有一些版本是实时的如RTlinux但是相对来说选择UCOS的多些,而LINUX应用方向有很多,如服务器,电脑的操作系统,嵌入式操作系统等等,我不知道你要问的是哪方面的学习,如果是嵌入式操作系统的话学习UCOS是有一些帮助的,如事件,消息等系统级的应用方法,在LINUX上是一样的,只是函数名有可能不一样,但是直接学习LINUX系统编程更有助于了解这些东西,最好刚学时不要去看内核代码,先会用,然后再去看,学习LINUX的话,你要会LINUX下的常用命令,SHELL命令解析器的使用,LINUX下的编缉器的使用,MAKEFILE的使用,GCC的使用等等,其实就有一些类似于DOS,这些东西也就是现在最热的ARM_LINUX学习的东西,再学学ARM的架构,那么你就可以开发了.
关于ARM_LINUX的东西你在优酷上可以找到一些视频看,然后跟着学,最好买一套开发板,方便实践,现在比较多的也就是S3C2440和S3C6410 资料多,论坛多,学的人多.
如果学LINUX系统编程推荐你一本书 UNIX环境高级编程
打字真累,就这些吧,如果还有问题的话也可以问,要是想系统的学去培训吧!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询