Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1725723
  • 博文数量: 98
  • 博客积分: 667
  • 博客等级: 上士
  • 技术积分: 1631
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-27 15:59
个人简介

一沙一世界 一树一菩提

文章分类

全部博文(98)

文章存档

2021年(8)

2020年(16)

2019年(8)

2017年(1)

2016年(11)

2015年(17)

2014年(9)

2013年(4)

2012年(19)

2011年(1)

2009年(4)

分类: LINUX

2016-01-05 20:25:02

这几天,阅读nuttx官网的文档,记录如下,理解不对的地方,大家积极提出。
nuttx是flat地址形式的OS,所以不支持进程概念,这个linux不一样。nuttx是只支持简单的线程运行在同一地址空间。
关于flat地址模型以及分页机制,这一篇blog说的不错,连接如下:
http://blog.csdn.net/jn1158359135/article/details/7106383
尽管说nuttx只支持线程模型,但是也有任务和线程的区别。
任务是有一定独立程度的线程
线程共享资源

个人理解就是,线程和linux下的线程区别不大,任务就是没有linux环境下的进程那么独立,但是比线程独立性强一些。

task由task_create创建的任务,会复制三个最小的文件描述符,这个linux相同,并且这三个继承来的fds,可以放心的使用而对父任务没有影响。当然也可以重定向。
而threads则与其父线程共享文件描述符。并且同一父亲线程的子线程共享这些描述符。

默认,nuttx执行严格的优先级调度。高优先级任务会独占cpu运行直到被blocked。这时候,低优先级的任务才会使用cpu。相同优先级的任务按照FIFO来调度。
通常,nuttx的task和thread可以配置成轮询调度或者专用的零星调度。轮询调度和优先级调度类似,除了下面提到的2点,任务具有相同的优先级和通过时间片机制共享cpu时间。时间片间隔是由系统配置CONFIG_RR_INTERVAL设置为正的非负值。另外的调度不太明白,不说了。
阅读(2682) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~