打印

什么样的os可以任意增加进程?

[复制链接]
1971|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
potter|  楼主 | 2011-9-15 18:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Linux、winCE都可以在os运行的时候复制一些可执行程序到flash,然后可以直接运行,运行后会多一个或者若干个相应的进程。而uc/os好想在编译的时候就固定了烧写到flash里面的内容。任务数量也不能随意更改,除非重新编译全部代码。
是什么原因使linux/winCE有这种特性?

相关帖子

沙发
ayb_ice| | 2011-9-16 08:37 | 只看该作者
uc/os-II应该和winCE,linux不是一个应用层次的

使用特权

评论回复
板凳
airwill| | 2011-9-16 08:56 | 只看该作者
Linux、winCE 执行的时候从 FLASH 复制执行代码进入 RAM 中。其实这不是 OS 的问题, 而是处理器的问题。一些 arm9 也会把 FALSH 的启动代码复制到 RAM 中再运行。因为 FLASH 的读取速度太慢造成的。这一点跟 OS 没有关系。
从本质上讲, 楼主的三个 OS 没有多大差别。就是支持的资源和任务数量上的差别。
其实 UC/OS 也可以增加和删除任务的。

使用特权

评论回复
地板
ayb_ice| | 2011-9-16 08:58 | 只看该作者
UC/OS才最多64个任务

使用特权

评论回复
5
potter|  楼主 | 2011-9-16 09:09 | 只看该作者
3# airwill
谢谢你的回答!

是不是 可以这样理解:如果把uc/os放到arm9上运行也可以像linux一样在运行时添加进程(任务)?且这个进程(任务)的代码不是在一开始烧写ucos系统是一并写进去的,而是在uc/os已经运行起来的时候复制进去的

使用特权

评论回复
6
potter|  楼主 | 2011-9-16 15:37 | 只看该作者
自己再顶一下

使用特权

评论回复
7
流行音乐| | 2011-9-17 17:29 | 只看该作者
我曾经思考过这个问题,结论是这个问题既可以从软件解决,也可以从硬件解决。

使用特权

评论回复
8
potter|  楼主 | 2011-9-18 17:55 | 只看该作者
7# 流行音乐
怎么解决?

使用特权

评论回复
9
原野之狼| | 2011-9-18 21:59 | 只看该作者
这个问题还真不好回答 我觉得至少有这么几方面原因
1 各进程之间的地址空间是隔离的
2 Linux带文件系统
3 Linux有exec调用

使用特权

评论回复
10
ahgao| | 2011-9-18 23:05 | 只看该作者
这个问题我也是半桶水,权当抛砖引玉吧。
我认为需要两个条件。
1. 任务或者说是进程,应用程序的堆栈需要由OS为其设置。
2. 任务的代码和数据访问是地址无关或者有MMU的虚拟地址支持。
理由是动态加载任务时它的运行地址和堆栈状态是任务编译/连接时未知的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

70

帖子

1

粉丝