免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10545 | 回复: 13
打印 上一主题 下一主题

“以事件为调度核心”是什么意思? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2009-02-03 18:54 |只看该作者
好亂,都不想看

论坛徽章:
0
2 [报告]
发表于 2009-02-04 15:06 |只看该作者
要是重新排版一下就更好了

论坛徽章:
0
3 [报告]
发表于 2009-02-13 16:18 |只看该作者
原帖由 djyos 于 2009-2-3 18:06 发表
... djyos下程序运行的过程,就是新事件不断发生,操作系统不断组织、创建、分配线程、进程以及其他资源去处理事件的过程。每弹出一条事件,djyos操作系统就为它分配一个事件控制块,事件处理完毕后收回事件控制块。未处理完毕的事件就会堆积在队列中,操作系统对队列的容量有一定的限制,当队列中事件数量达到限制数时,操作系统将拒绝接受新事件。 ...


支持又一中国人主持研发的操作系统!!

没看出来跟普通的linux主要区别在哪里,通用的linux不也是这样处理系统事件??请指点一二...另外,采用了djy系统的新模式后,整个系统的优势是什么?运行效率提高还是稳定性提高?

其实在现在众多的措作系统中,如果要脱颖而出,最主要的是要有自己的特色,运行效率又或是系统功能

比如android,它就是一个linux,但是由于运行效率比其他的linux高很多(比如摩托罗拉搞的),功能特色很明显(google地图功能),马上就让人眼前一亮...我想多了解一些djy系统的亮点,谢谢

[ 本帖最后由 cafeice 于 2009-2-13 16:19 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-02-13 16:29 |只看该作者
明显的区别在于:
1、linux的进程(线程)是由应用程序fork出来的,应用程序员控制线程从出生到消亡的全过程。而djyos中,应用程序员唯一的工作就是弹出事件。
2、linux内核调度器队列中接受调度的是线程(进程),而djyos是事件。
3、linux中,事件是作为线程的输入数据(资源)而存在,djyos中,线程是事件的资源。
4、linux中是线程(进程)等待事件发生,然后处理它,djyos中,是事件等待空闲线程,然后用线程处理自己。
5、linux中,程序员需要掌握线程(进程)技术,而djyos中,程序员根本就不知道线程的存在。

论坛徽章:
0
5 [报告]
发表于 2009-02-13 16:38 |只看该作者
原帖由 djyos 于 2009-2-13 16:29 发表
明显的区别在于:
明显的区别在于:
1、linux的进程(线程)是由应用程序fork出来的,应用程序员控制线程从出生到消亡的全过程。而djyos中,应用程序员唯一的工作就是弹出事件。
2、linux内核调度器队列中接受调度的是线程(进程),而djyos是事件。
3、linux中,事件是作为线程的输入数据(资源)而存在,djyos中,线程是事件的资源。
4、linux中是线程(进程)等待事件发生,然后处理它,djyos中,是事件等待空闲线程,然后用线程处理自己。
5、linux中,程序员需要掌握线程(进程)技术,而djyos中,程序员根本就不知道线程的存在。


这下明白多了,呵呵

不过我有些疑问:
1 这个会节省系统开销吗?无论是fork出来还是通过事件来'fork',开销会减少吗?
2,3: 可是最终都是作用于线程/进程,对系统开销有影响吗?
4 如果没有空闲线程的话,还不是要启动一个?好处在哪里呢?
5 如果这样的话,程序员怎么来获得对线程/进程的完全控制呢?在实际应用中,经常要用到多线程程序,还有线程间的同步问题,会受到影响吗?

论坛徽章:
0
6 [报告]
发表于 2009-02-13 16:57 |只看该作者
原帖由 cafeice 于 2009-2-13 16:38 发表


这下明白多了,呵呵

不过我有些疑问:
1 这个会节省系统开销吗?无论是fork出来还是通过事件来'fork',开销会减少吗?
2,3: 可是最终都是作用于线程/进程,对系统开销有影响吗?
4 如果没有空闲线程 ...

关于系统开销的问题,我没有做过测试,更没有跟其他操作系统比较过,djyos注重的是实时性,实时性主要关注的是确定性,其次才是快速性,也可以说两者并重。我想,当今的编程界中,系统开销差几个字节,或者运行时间节省几个周期,应该不是程序员首要关注的目标,就是某些没有其他卖点可宣传的系统拿来炒的指标罢了。软件的运行效率其实是一个系统问题,不是上下文切换等多几个少几个周期能决定得了的,这,考的其实是项目的系统设计师。
关于您的第五个问题,说起来要长篇大论,在我共享的书《都江堰操作系统与嵌入式系统设计》的4.3.2节和第4.3.3.7节有比较详细的说明。

论坛徽章:
0
7 [报告]
发表于 2009-02-13 17:20 |只看该作者
我只能说,一个操作系统最终表现出来的运行效率对用户体验是至关重要,应用软件系统设计师固然重要,但是来自操作系统级的容忍度及健壮度仍然是非常重要,就如同现在人们一提起windows mobile,几乎成了不稳定和效率地下的代名词

看了那两个章节,貌似程序员只能对程序作有限控制,也就是说假设我针对某个任务发了n次事件,但是并不知道他们实在并发运行与否,操作系统会根据情况作调度处理... 类似的想法曾出现在jvm中:即系统为你做好一切...但实际效果不是很理想,就算是jvm也是允许程序员强行启动线程的,这个在实际应用中几乎是必需的

另外想问问楼主对未来都江堰操作系统应用设备的大概定位是什么?mid, pda/smartphone类?

论坛徽章:
0
8 [报告]
发表于 2009-02-13 17:52 |只看该作者
我上面说注重整体结构而不是个别极限参数,是作为一个系统的设计策略,这并不代表djyos的执行效率低,我的在arm7上慢如牛的flash上执行程序(无cache),把ticks设为1mS,在fifo只有16字节的uart上,以115200的Baud连续发送数据,运行非常顺畅。为避免引导用户过分关注这些细枝末节的东西,djyos没有宣传这方面的性能。
djyos除了不允许控制别的事件的线程外,是可以完整控制线程的,但有一点小小的要求,就是你必须明确告诉操作系统启动或者停止线程的理由,不允许无缘无故地停止或启动,其实,无缘无故第停止和开始线程,就像随意地定义全局变量一样,是初级程序员制造混乱代码的利器,我不提供这些功能,其实是对他们微言大义式的引导。
djyos可用于所有嵌入式设备,包括手持设备和工业控制。

[ 本帖最后由 djyos 于 2009-2-13 17:57 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-02-17 19:52 |只看该作者
强大呀 其实linux操作系统的最大的便捷就是socket的进程通信比哈

论坛徽章:
8
2015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2015-02-04 12:00:07羊年新春福章
日期:2015-02-04 11:57:56双子座
日期:2014-12-02 11:44:59金牛座
日期:2014-10-08 16:47:08狮子座
日期:2014-08-29 13:37:46巳蛇
日期:2014-08-26 17:32:29NBA常规赛纪念章
日期:2015-05-04 22:32:03
10 [报告]
发表于 2009-12-24 15:30 |只看该作者

回复 #1 djyos 的帖子

学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP