搜索
bottom↓
回复: 355

[交流][下载]傻孩子新书Demo下载

  [复制链接]

出0入296汤圆

发表于 2015-8-31 22:07:37 | 显示全部楼层 |阅读模式
本帖最后由 Gorgon_Meducer 于 2015-9-9 09:08 编辑


写在前面的话


    这是一本描述多任务程序设计思想的书。拖延了很久,放了一些内容,希望大家多多反馈,修改和追加的余地
很大。

    我对大家只有一个要求(虽然脸皮很厚 ),看完以后请务必把你的感想按照章节为单位,以下面的格式反馈给我:

    郑重声明:这本书不是论坛里面原本企划的那本书——那本书仍然在编纂中……这是另外一本书……

    没有操作系统基础,或者对操作系统移植不感兴趣的,请从第三章开始阅读



章节名称:
第一遍阅读看懂了【】%
    具体觉得不太好懂的地方是:
    读懂了什么?
    无理由总体印象是什么?
    对你有没有用?(什么地方有用)
    对你帮助不大的地方是什么?
    让你有没有继续读下去的欲望?
    其它还有看法:

第二遍阅读看懂了【】%
     仍然感觉不好懂的地方是?
     ……

    以上 。



我觉得我有必要描述一下问题的脉络,而这个脉络也是这本书的推理思路:

为了实现多任务,引入了并发,
并发的实现,不可避免的引入了上下文切换
上下文切换,引入了抢占和合作的调度方式
微观上抢占的引入导致了数据访问的原子性问题
针对数据访问的原子性被破坏的后果进行讨论,引入了数据访问的完整性问题
结论是,如果数据访问的完整性被破坏,则整个系统的功能性就得到了破坏,所以必须保证数据访问的完整性,这是强制要求
为了保护数据访问的完整性,就要保证数据访问的原子性
保护数据访问的原子性有可能影响到系统的实时性
为了在确保数据访问的完整性基础上(保证功能的基础上),确保实时性,就必须研究如何一石二鸟,因此,我们需要建立一个模型,从任务之间的原子性关系出发,寻找保证既不影响原子性,又能保证实时性的出路
这个出路就是以小换大策略,依据这个策略,要确保任务的实时性,就要借助多任务通信的基本工具(这些工具就是『小』),通过有效的多任务合理设计,梳理好资源在时间上的关系才能实现

任务间资源在时间上的关系就是数据流,微观上就是生产者和消费者关系

最终整个问题化简为如何根据应用需求,设计数据流,并在微观上正确配置处理数据流的任务之间的生产者和消费者关系——既保证功能性,又保证实时性。

最后,如何根据应用来设计数据流就成了解决这个问题的最后一块砖。


    谢谢大家


相关下载

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入296汤圆

 楼主| 发表于 2015-8-31 22:47:30 | 显示全部楼层
水军慎重~

出0入296汤圆

 楼主| 发表于 2015-8-31 23:12:08 | 显示全部楼层
zt2012 发表于 2015-8-31 23:04
终于出了,拜读,必火。

只是Demo……

出0入296汤圆

 楼主| 发表于 2015-8-31 23:15:30 | 显示全部楼层
sonna 发表于 2015-8-31 23:15
不水也没办法,貌似还没上传内容吧

已经可以下载了啊……

出0入296汤圆

 楼主| 发表于 2015-9-1 08:34:59 来自手机 | 显示全部楼层
LQS1200 发表于 2015-9-1 08:23
是RT-Thread啊,好,那原本的那本今年能出来吗?

那个出不来了,直接下载电子版好了

出0入296汤圆

 楼主| 发表于 2015-9-1 08:35:36 来自手机 | 显示全部楼层
shuimubai 发表于 2015-9-1 08:19
这个封面提到的RT_thread和本坛的那个操作系统有关系吗?

帮他们写得

出0入296汤圆

 楼主| 发表于 2015-9-1 08:37:44 来自手机 | 显示全部楼层
GoingDown 发表于 2015-9-1 07:49
自己发明了好多“术语”,这点没必要。
另外需要少一类比,有些类比把本来很简单的、想要解释清楚的内容反 ...

能具体列举一些,并详细说说你的想法么?比如这个类比/术语没必要,说成xxx就明白了,我认为xxxxxx这样的人群能懂。

谢谢啦

出0入296汤圆

 楼主| 发表于 2015-9-1 08:39:10 来自手机 | 显示全部楼层
qq开始学单片机 发表于 2015-9-1 01:48
什么是“什么是任务”
什么是“什么是多任务”
另有深意还是?我理解成,上下文,任务,多任务的概念!

辛苦了,期待你读第二遍的评论。另外,能简单说下你的情况么?

出0入296汤圆

 楼主| 发表于 2015-9-1 08:40:16 来自手机 | 显示全部楼层
bsz84 发表于 2015-8-31 22:52
我下载了几次,每次打开出错????

pdf的……现在可以了么?

出0入296汤圆

 楼主| 发表于 2015-9-1 08:52:11 来自手机 | 显示全部楼层
solojimes 发表于 2015-9-1 08:40
傻孩子 是跟RTT有关的吗

以RTT为例子,介绍如何进行多任务的应用设计。这本书的重点并不在解释操作系统的原理,或者怎么写操作系统,而是着重如何根据应用需求划分、设计、分析多任务的行为,最终的目的是要保证系统的实时性。

第一章和第二章是关于操作系统的不得不知道的内容(比如你要移植一个操作系统)

第三章和第四章第六章属于刷三观的……我希望大家能认真阅读这三个部分,读完了对你们没坏处

出0入296汤圆

 楼主| 发表于 2015-9-1 09:03:41 来自手机 | 显示全部楼层
security 发表于 2015-9-1 08:53
编程思想的书,更多出现在面向对象领域。
你可以先去看看 李先静 写的 《系统程序员成长计划》,或许对你 ...

非常感谢帮忙!我也补充一下:这本书的目标用户群体是工作1~3年的嵌入式工程师,对很多系统细节问题有搞清楚愿望、懂得不屋上架屋的人,对有工程经验的学生党有有限的参考意义,并为软件大牛提供吐槽消遣的健胃消食片

出0入296汤圆

 楼主| 发表于 2015-9-1 09:15:57 来自手机 | 显示全部楼层
qq开始学单片机 发表于 2015-9-1 09:12
对Core没有什么概念,一直while(1),刚开始学操作系统,而且第一章太多硬件成分,所以我基础跟不上来,老 ...

那你其实可以说说什么地方或者具体哪个问题不太好理解……流水线部分我的目的就是要讲得大家都懂。所以还希望你帮助我。另外,上下文是现场的集合,这就是本质……是不是还是太抽象了?

出0入296汤圆

 楼主| 发表于 2015-9-1 09:17:16 来自手机 | 显示全部楼层
qq开始学单片机 发表于 2015-9-1 09:12
对Core没有什么概念,一直while(1),刚开始学操作系统,而且第一章太多硬件成分,所以我基础跟不上来,老 ...

推荐你从第三章开始阅读

出0入296汤圆

 楼主| 发表于 2015-9-1 09:34:12 来自手机 | 显示全部楼层
security 发表于 2015-9-1 09:31
关于上下文,我先说点看法
从“什么是上下文”概念的提出,到开始回答问题
这直线距离跨越有点大,

我在认真考虑调整章节结构,把头两章内容往后放,第三章做开头也许更好……甚至……直接把头两章放到附录里面去?毕竟他们是为移植或者说有一定基础的人准备的干货

出0入296汤圆

 楼主| 发表于 2015-9-1 09:40:36 来自手机 | 显示全部楼层
default 发表于 2015-9-1 09:37
RT-Thread相比其他实时操作系统有什么优势?

就是个普通操作系统……

出0入296汤圆

 楼主| 发表于 2015-9-1 09:42:09 来自手机 | 显示全部楼层
strongking 发表于 2015-9-1 09:32
网上有卖的吗? 想买本回来拜读一下!

这只是第一轮测试,还未出版。可能要多迭代一两次

出0入296汤圆

 楼主| 发表于 2015-9-1 09:43:25 来自手机 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2015-9-1 10:00 编辑
ALUMEI 发表于 2015-9-1 09:41
广义上来讲,裸机代码也算是一种操作系统,不是吗?


看第三章,关于这点有原理性的讨论。

出0入296汤圆

 楼主| 发表于 2015-9-1 09:52:21 来自手机 | 显示全部楼层
tanek 发表于 2015-9-1 09:48
李先静的那边已经买不到了,我看过pdf的,一直想买。不过这本跟那本的主题不同,这本核心是围绕着怎么进 ...

感谢水军的介绍~

出0入296汤圆

 楼主| 发表于 2015-9-1 09:55:30 来自手机 | 显示全部楼层
changer15309 发表于 2015-9-1 09:51
终于出来了,到时候一定支持正版

很期待你的反馈,最终版本的定稿需要你的意见

出0入296汤圆

 楼主| 发表于 2015-9-1 10:16:50 来自手机 | 显示全部楼层
bd7qw 发表于 2015-9-1 10:00
支持出书,坛友优惠?

论坛首发,这就是至尊的特权啊

出0入296汤圆

 楼主| 发表于 2015-9-1 10:23:05 来自手机 | 显示全部楼层
changer15309 发表于 2015-9-1 10:20
很期望能出一本讲解 如 oop  FSM c语言技巧的书籍。

那是论坛企划的那本……

出0入296汤圆

 楼主| 发表于 2015-9-1 10:23:52 来自手机 | 显示全部楼层
jm2011 发表于 2015-9-1 10:20
傻孩子的书要支持的,已经下载了,排版不错,淡绿色护眼;

嗯,整体对比度我都调低了

出0入296汤圆

 楼主| 发表于 2015-9-1 10:34:31 来自手机 | 显示全部楼层
bd7qw 发表于 2015-9-1 10:00
支持出书,坛友优惠?

论坛首发,这就是优惠啊

出0入296汤圆

 楼主| 发表于 2015-9-1 11:00:50 来自手机 | 显示全部楼层
LQS1200 发表于 2015-9-1 10:55
纸质书好啊,不如在论坛搞个预定,看下有多少人买,够数量就印出来

非法出版会死人的……出版社不让印刷

出0入296汤圆

 楼主| 发表于 2015-9-1 11:36:08 来自手机 | 显示全部楼层
jamesdeep 发表于 2015-9-1 11:21
图文并茂,很不错,想请教LZ文中的图是用什么软件画的?

这也是一个FAQ了,哈哈~
这些全部是用word直接画的

出0入296汤圆

 楼主| 发表于 2015-9-1 12:11:37 来自手机 | 显示全部楼层
zhenghe 发表于 2015-9-1 11:59
共享资源一节可以提一下线程安全与可重入

线程安全没有明确提出,但本质上讨论的就是线程安全。可重入的确没说……我考虑下

出0入296汤圆

 楼主| 发表于 2015-9-1 12:46:51 来自手机 | 显示全部楼层
tanek 发表于 2015-9-1 12:40
要做到这一点通常有两种方法:
1)让“check apple”所在的任务优先级高于。。。。。。
2)当“check_apple ...

呃……被抓到了,三种方法是并列的……具体内容好理解么?

出0入296汤圆

 楼主| 发表于 2015-9-1 12:55:36 来自手机 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2015-9-1 13:00 编辑
zhenghe 发表于 2015-9-1 12:47
可以考虑在每章结尾增加推荐读物,要深入了解某一问题可以参考哪些经典书籍或网络资源,不至于讲的太广或太 ...


你说的内容就是这本书深入的地方(8、9、10、11层层递进,都在说这些方面,不光是你说的内容,本质上这是数据流设计的内容),但demo没放出全貌

出0入296汤圆

 楼主| 发表于 2015-9-1 12:58:19 来自手机 | 显示全部楼层
tanek 发表于 2015-9-1 12:54
我要吐槽一下早餐店故事的解说:
“生产者/消费者”模型的提出使得我们有能力在任务间纷繁复杂的关系中单独 ...

你只说不爽,没说不爽的原因啊……我咋改进?

出0入296汤圆

 楼主| 发表于 2015-9-1 13:01:55 来自手机 | 显示全部楼层
tanek 发表于 2015-9-1 12:58
我再读一遍,不爽给你看

不过不得不承认,文字上还很粗糙,没有时间来深耕……后面会好一点

出0入296汤圆

 楼主| 发表于 2015-9-1 13:45:52 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2015-9-1 13:51 编辑
tanek 发表于 2015-9-1 13:16
恰恰相反,我觉得技术类的书籍就是直接了当的,不需要那些华丽的词语做为修饰。在你的帖子以及上一本书中 ...


你说的问题很在点子上。这可能跟我深信“技术灵感来源于生活”有关系。干货通常是为有准备的人准备的,
受众面有点窄,即便我说面向1~3年工作经验的人,实际上,这个范围仍然很大,因为众所周知的原因,
国内嵌入式教育水准和工程师素养整体不理想……很多知识点都是缺失的,你直接说一个术语往往别人的
字典里面可能就是没有的……特别是当你试图讲解思想而不是应用案例的时候,最好用别人熟悉的语言来
描述才能让人更容易把注意力集中到思考上——而不是具体技术点上——而生活中的例子恰恰就是人们熟
悉的语言。

对于XXX范例之类的书籍,我觉得如果你所说,直接上例子就好,的确不必废话。但显然,这本书不是讲
范例的,而是更多讲怎么思考的。总结来说:
1、读者缺乏较为集中的知识基础范围
2、读者理解力千差万别
3、觉得废话多的人,实际上已经懂了——本书达到目的;觉得刚刚好的人,恰恰是最需要这些知识的人,
     综合来说,让更多人都懂才是一本书的目标所在。
4、一般来说,反馈说书的内容比较水,我是不太在意的,但如果反馈说水的没在点子上,根本没传达
     正确的内容,那就是我的问题了。

你说的问题,我会更多的在日后的章节中做出考虑(其实第9、10、11就是非常直接的干货),但作为一种
风格,只要达到我最初的目的——让更多的人“确认自己真的懂”——我觉得我就不太会改变这种风格。


另外,这个假想敌的说法我觉得很正确,其实不是假想敌,而是这根本就是我平时培训时候用的语言和
内容……所以我总是习惯性的用面授培训的语言来书写文字……这种感觉咋说呢……应该还好吧?你应该算是
课堂上比较聪明的孩子,接受的快,不要紧,后面慢慢虐你,想要提高难度,这太简单了,放学后不要走……

出0入296汤圆

 楼主| 发表于 2015-9-1 13:47:10 | 显示全部楼层
gsq19920418 发表于 2015-9-1 13:15
demo,感觉好少呀!

说说你看了Demo以后还想知道啥?我好知道内容上是否有遗漏。
另外,Demo已经99页了,一本书也就300~400页的规模……

出0入296汤圆

 楼主| 发表于 2015-9-1 14:07:20 | 显示全部楼层
PEcontrol 发表于 2015-9-1 14:05
顶楼主, 如有时间, 一定拜读

谢顶~望不吝赐教

出0入296汤圆

 楼主| 发表于 2015-9-1 20:52:55 来自手机 | 显示全部楼层
tanek 发表于 2015-9-1 19:42
这里是不是有点问题

问题是什么?

出0入296汤圆

 楼主| 发表于 2015-9-1 21:07:27 | 显示全部楼层
tanek 发表于 2015-9-1 21:05
Y中调用了Z,而从main而言Z是不可见的。从图上看main下的两个任务进行上下文切换,应该是funX和funY,但代 ...

哦……明显写反了……赞一个

出0入296汤圆

 楼主| 发表于 2015-9-1 22:30:24 来自手机 | 显示全部楼层
jiespring 发表于 2015-9-1 22:12
楼主辛苦,短短24小时,下载量已达到1200+,牛~

我也好感动。但如果效果不好,实际书出版的时候,销量就会很惨淡……双刃剑啊……我现在很忐忑

出0入296汤圆

 楼主| 发表于 2015-9-2 11:22:16 | 显示全部楼层
sbk100 发表于 2015-9-2 08:52
1.1.1 第二段中的 “MCU--内其部”应该是“其内部”吧

少侠好眼力!

出0入296汤圆

 楼主| 发表于 2015-9-2 18:28:38 来自手机 | 显示全部楼层
macaroni 发表于 2015-9-2 17:05
阁下是RTT开发成员么?

RTT粉丝之一

出0入296汤圆

 楼主| 发表于 2015-9-2 18:29:52 来自手机 | 显示全部楼层
ecat 发表于 2015-9-2 16:44
把三级流水线比喻成固定长度的贪吃蛇,挺形象的!喜欢这样的风格。

其实是书稿早期测试员提供的灵感~我也挺喜欢

出0入296汤圆

 楼主| 发表于 2015-9-3 09:08:27 来自手机 | 显示全部楼层
pcb_newbie 发表于 2015-9-2 21:52
完整电子版 最后能下载吗?  
不是不买纸质版, 只是想早点读到, 就算有电子版这种小清新的好书还是会买纸 ...

我没有完整电子版的发行权

出0入296汤圆

 楼主| 发表于 2015-9-4 11:43:56 来自手机 | 显示全部楼层
cpumaker 发表于 2015-9-3 23:37
设计过16-bit处理器,移植改写过Minix,表示看不懂

具体哪里看不懂呢?有明确的点,才有明确改进的可能。谢谢啦

出0入296汤圆

 楼主| 发表于 2015-9-4 11:46:10 来自手机 | 显示全部楼层
cumt_123456 发表于 2015-9-3 13:18
喜欢这种风格的书,简洁,风趣实用。谢谢

一定有什么不过瘾的地方,不妨说出来~

出0入296汤圆

 楼主| 发表于 2015-9-4 14:52:35 来自手机 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2015-9-4 14:56 编辑
cpumaker 发表于 2015-9-4 14:38
从前面几章来看, 没有看到一个开发者所希望了解的细节, 例如文中大量提到了ALU,寄存器,PC,指令,却没 ...


这类图书太多,这里只是提供开发者所需的最小信息。而且我私以为这是软件开发者最需要的基本信息,每一个信息都是为了介绍上下文和操作系统结构和原理所必须的。我并不是想提供一个系统体系架构的详细内容,只是做一个素描式的内容补充。目的不一样,所以写法不一样。我觉得可以从你觉得没有提供别人所需信息这里入手,一点一点讨论,如何?

这本书的目标人群是嵌入式软件工程师,不是从事SoC设计的人员,对软件工程师来说,流水线内部结构是透明的。为了解释寄存器页和跳转的原理才不得不涉及一些内容,然而,计算机组成原理的内容对大部分软件工程师来说是然并卵的细节。

出0入296汤圆

 楼主| 发表于 2015-9-4 15:17:23 来自手机 | 显示全部楼层
cumt_123456 发表于 2015-9-4 15:07
其实是优缺点并存,章节命名是很有才,但不利于后期翻阅,查找。  ...

既然你提出来了,我就真心实意的提问: 缺点有哪些?至少列出一个吧~谢谢啦。标题党也是无奈,现在社会要博取点眼球才能不输给评论水平啊。

出0入296汤圆

 楼主| 发表于 2015-9-4 22:02:28 来自手机 | 显示全部楼层
水军自重……节操……节操

出0入296汤圆

 楼主| 发表于 2015-9-5 22:47:28 来自手机 | 显示全部楼层
277955973 发表于 2015-9-5 21:14
状态机章节中的 delay_fsm(uint32_t wTime)虽然是非阻塞的但是如何准确的定时呢

其实我比较推荐你自己思考答案。还是要借助定时器的。

出0入296汤圆

 楼主| 发表于 2015-9-6 09:37:49 来自手机 | 显示全部楼层
xiaoliusheng 发表于 2015-9-5 23:51
大师书终于出来了啊 .. 等了好久了

快读读看,把第一遍读的感受告诉我,有什么读起来不太清楚的地方一定要告诉我。谢谢啦

出0入296汤圆

 楼主| 发表于 2015-9-6 12:46:16 来自手机 | 显示全部楼层
kinsno 发表于 2015-9-6 09:45
于我个人而言,略为失望,我不想看的篇幅略多,想看的略少,因为我现在主要关注构架方面的,特别是大程序多CPU ...

这本书架构的内容很少。模型的内容较多。关于多任务模型的部分,可能是少数对你有用的部分了。后面没展示出来的两章可能对你进行架构设计有所帮助。总的来说,这本书介绍的只是应用设计中多任务设计和实现的理论和方法,对架构涉及甚少。你关心的东西,是我另外一本书内容所覆盖的。

出0入296汤圆

 楼主| 发表于 2015-9-6 13:32:29 | 显示全部楼层
tanek 发表于 2015-9-6 13:13
另一本在哪里?

在我心里~放学后别走,保证不打死你

出0入296汤圆

 楼主| 发表于 2015-9-6 19:26:53 来自手机 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2015-9-6 19:29 编辑
kinsno 发表于 2015-9-6 16:58
笑喷,谁说工科男不与时俱进的,你看这网络新词用的溜溜的!


只要你有一颗热(hao)爱(wu)生(jie)活(cao)的心,看什么都会充(zi)满(dai)乐(dan)趣(mu)。
23333333

出0入296汤圆

 楼主| 发表于 2015-9-9 08:06:11 来自手机 | 显示全部楼层
tanek 发表于 2015-9-9 05:28
还有一个问题,处于不同的任务平面的任务。他们的阶是否不同

可以相同也可以不同。阶描述的是优先级,是谁可以打断谁的概念。比如,高优先级任务可以打断低优先级任务,这两个任务明显不在一个任务平面上。再比如,同优先级的不同任务,用时间片轮转,他们彼此可以打断,也不在同一个任务平面上。阶是任务平面的一个属性,每个任务平面都有一个阶值。

出0入296汤圆

 楼主| 发表于 2015-9-9 08:09:12 来自手机 | 显示全部楼层
tanek 发表于 2015-9-8 20:47
操作系统环境下,如果任务的优先级允许相同,且优先级任务彼此能够打断,则所有任务都独占一个平面任务平面。 ...

一个任务独占一个任务平面

如果多个任务在一个任务平面上,就应该用共享而不是独占了。不过这里确实容易造成歧义,我后面会修改。谢谢啦

出0入296汤圆

 楼主| 发表于 2015-9-9 08:33:54 来自手机 | 显示全部楼层
tanek 发表于 2015-9-9 05:23
我的理解是抽象出任务平面这个概念是简化分析多任务之间的联系。应该说任务平面还是从资源的角度来建立的 ...

首先,任务平面不是从资源角度(空间)来划分的,是从上下文切换的角度(时间)来划分的。因为切换会带来资源访问的原子性问题,因而和资源扯上了关系(资源访问的完整性问题)

其次,同一个任务平面上的任务在执行的时候,不是没有『上下文切换』,这显然是不对的,因为别的任务平面上的任务会打断当前任务平面上的任务。同一个任务平面上的任务彼此不能打断,不代表其中任何一个任务执行的时候不会发生上下文切换,这是明显不同的。只能说同一个任务平面上的任务是按照事先安排好的顺序依次执行,但不代表不同任务平面上的任务不能打断进来。
如果太抽象,不好理解,思考超级循环里面两个『阻塞执行』的任务,它们彼此不能打断对方,在同一个任务平面上,但这个时候,中断任务平面上的中断处理程序(任务)还是可以妥妥的造成上下文切换的。

出0入296汤圆

 楼主| 发表于 2015-9-9 08:48:26 来自手机 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2015-9-9 09:05 编辑

我觉得我有必要描述一下问题的脉络,而这个脉络也是这本书的推理思路:

为了实现多任务,引入了并发,
并发的实现,不可避免的引入了上下文切换
上下文切换,引入了抢占和合作的调度方式
微观上抢占的引入导致了数据访问的原子性问题
针对数据访问的原子性被破坏的后果进行讨论,引入了数据访问的完整性问题
结论是,如果数据访问的完整性被破坏,则整个系统的功能性就得到了破坏,所以必须保证数据访问的完整性,这是强制要求
为了保护数据访问的完整性,就要保证数据访问的原子性
保护数据访问的原子性有可能影响到系统的实时性
为了在确保数据访问的完整性基础上(保证功能的基础上),确保实时性,就必须研究如何一石二鸟,因此,我们需要建立一个模型,从任务之间的原子性关系出发,寻找保证既不影响原子性,又能保证实时性的出路
这个出路就是以小换大策略,依据这个策略,要确保任务的实时性,就要借助多任务通信的基本工具(这些工具就是『小』),通过有效的多任务合理设计,梳理好资源在时间上的关系才能实现

任务间资源在时间上的关系就是数据流,微观上就是生产者和消费者关系

最终整个问题化简为如何根据应用需求,设计数据流,并在微观上正确配置处理数据流的任务之间的生产者和消费者关系——既保证功能性,又保证实时性。

最后,如何根据应用来设计数据流就成了解决这个问题的最后一块砖。

谢谢大家

出0入296汤圆

 楼主| 发表于 2015-9-9 10:52:09 | 显示全部楼层
tanek 发表于 2015-9-9 09:31
我的理解是抽象出任务平面这个概念是简化分析多任务之间的联系。应该说任务平面还是从资源的角度来建立的 ...


任务有三种状态,就绪,运行和阻塞,阻塞和就绪状态的任务也是任务(虽然他们没有得到运行,他们也可能获得了资源),所以你关于任务的理解是片面的——睡着的人也是人……。
其次,之所以要提出这个模型,我前面提出的思维脉络已经回答你的问题了——这是解决一系列问题中必须的一环——以任务之间的原子性关系为视角
(也就是是否能彼此打断这样的视角)来看待现有的任务模型,通过这个视角,我们就能分析和平衡数据访问的完整性需求(功能性要求)和系统的实时性要求。

出0入296汤圆

 楼主| 发表于 2015-9-9 14:14:43 来自手机 | 显示全部楼层
second_chan 发表于 2015-9-9 11:56
看一遍,整体思想还是理解到!再看一遍才进行反馈!可以的话,多发布几章! ...

讨论的多,干货多

出0入296汤圆

 楼主| 发表于 2015-9-9 14:20:54 来自手机 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2015-9-9 14:39 编辑
tanek 发表于 2015-9-9 12:10
恩。通过我自己的理解,任务的执行的时间,任务平面的阶数、任务这三者的关系是各占一个维度。
同一个任 ...


还是错的,既然已经在同一个任务平面上了,就说明任何情况下任务彼此不可打断。所以,不存在你说的元素的概念。总有相同阶的任务平面可以有多个……
你要记住,任务平面是一个集合,集合里面装的是任务。阶是任务平面的一个属性。拥有相同阶的任务平面在一起可以组成一个集合,这个集合的里元素特点就是大家阶值相同,平起平坐,彼此可以打断,这里的元素不是任务,而是任务平面……

阶是任务平面的属性,不是!!!任务的属性!!!

操作系统中的任务,每个任务独占一个任务平面,不要在这种情况下把任务平面的阶混淆为任务的一个属性。

出0入296汤圆

 楼主| 发表于 2015-9-11 14:04:09 来自手机 | 显示全部楼层
zwhzwh_11 发表于 2015-9-10 10:50
傻孩子老师呕心沥血之作。教师节快乐!!!

谢谢哈~我在努力,要做好也需要你的反馈

出0入296汤圆

 楼主| 发表于 2015-9-23 05:10:03 | 显示全部楼层
ALUMEI 发表于 2015-9-22 15:07
第3章描述并行与并发的关系的时候,举的笔记本电脑这个例子应该是 2核表示可以 任意时刻执行两个进程,而不 ...

谢谢您的反馈。关于2核系统,实际上准确的说法是,任意时刻可以有两个调度的任务最小单位
在执行。又由于现代操作系统的通常线程是调度的最小单位,因而这里我直接说线程而不是进
城。一个进城由一个或多个线程组成,进程现在更多是一个资源的单位(拥有虚拟地址空间),
而线程是调度的单位。

关于内容难易程度的拿捏问题,我比较倾向于稍微偏简单,对会的人来说,这本书作用有限,
也许只是提供了一种梳理知识结构的作用,但对不会的人来说,填补鸿沟对他们意义是很大的。
从市场的角度,基础稍差的人购买的可能性较高,对基础较好的人,他们往往看看网上资料就
足够了,所以,请允许我面向购买的主力群体有所倾斜。如果对基础差的人来说,内容也跟
念经一样,那就有大问题了。

谢谢你哈

出0入296汤圆

 楼主| 发表于 2015-9-25 09:07:40 来自手机 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2015-9-25 09:17 编辑
airwolf09921 发表于 2015-9-25 00:17
19页“上下文切换可以浓缩为栈顶指针的切换”这句话对于没有操作系统基础的读者有些误导 其实1.5.3的三句话 ...


上下文的切换不是寄存器的切换,而是寄存器内容的切换,也不是所有寄存器都要切换,前面说那么多就是为了解决这个错误的理解。我们可以就这个问题进行讨论,为什么说栈指针的切换是误导呢?误导了什么呢?ucos那本书说的未必是对的,关键看论证过程,我用大篇幅给出了论证,目的是让有思考意愿的人自己判断,而不是直接记结论。

补充说明,寄存器切换这种说法在处理器架构上有别的意思,是指存在BANK寄存器的情况下,在不同寄存器版本间切换,比如MSP和PSP的切换。上下文是内容,寄存器是内容的容器。如果你执意混淆,我同意你的观点,对你对我都有好处。

另外,一个重要的问题是,根据很多人的反馈,大家普遍认为第一章第二章放在最前面是不太合适的,因为只有需要移植系统的人才需要这些知识。我后面会调整结构,将这两章放到全书的最后。或者以导读的形式引导读者选择性的跳过这些内容而直接进入第三章。你觉得是否合适呢?

最后,非常感谢你的反馈。希望听到更多针锋相对的意见。

出0入296汤圆

 楼主| 发表于 2015-9-25 22:17:33 | 显示全部楼层
airwolf09921 发表于 2015-9-25 12:43
感谢傻孩子老师的知道 我只看过ucos 也没有深入了解过过多的mcu妄下结论对不住了 您的回复确实让我了解了 ...

你的建议正是我所想的,我会加入醒目的章节内导读来引导读者根据自己的需要进行选择性阅读。
毕竟,思路上,上下文的本质是后续讨论的基础,具体参考本帖楼主位的思路描述。

很开心你弄懂了一个概念。

出0入296汤圆

 楼主| 发表于 2015-9-29 16:46:48 | 显示全部楼层
airwolf09921 发表于 2015-9-28 22:45
14页 15页中关于SP切换的步骤项目符号没有标a b c d但是在下文里说了步骤a b 建议加上       17页第二行 “ ...

说了你也许不信,这是猫踩键盘的结果……书中很多地方都出现了明显的字符位置交换的情况……这是我家猫太淘气的证据
我写书的时候,她总是跳到键盘上……然后你懂得……我恢复的时候,有时候不注意就变成现在这个样子了。

出0入296汤圆

 楼主| 发表于 2015-9-29 16:47:36 | 显示全部楼层
hitsxg 发表于 2015-9-29 09:06
经过这么多年历练,傻孩子也成长为大牛了。

正能量,立志贴啊,大家加油,只要有梦想,一直努力积累就有可能成功。

出0入296汤圆

 楼主| 发表于 2015-9-29 16:49:19 | 显示全部楼层
airwolf09921 发表于 2015-9-29 02:07
后面排版有一些错字和多了标点符号的地方,这些问题都会解决的!今天看完了,感谢这本书让我对操作系统有了 ...

对你有帮助,非常高兴。你说的图,其实我不太明白,能不能说一说你希望用图示演示具体什么内容呢?
另外,大例子是最后两章覆盖的——就是Demo目录页上的最后两章。例子就是本版块的一个开源项目。

出0入296汤圆

 楼主| 发表于 2015-9-29 16:49:50 | 显示全部楼层
nishuizhou 发表于 2015-9-29 01:41
看了一遍,不太懂,是不是我水平太差了?

说来听听,具体什么地方听不懂?有没有尝试直接从第三章开始阅读?

出0入296汤圆

 楼主| 发表于 2015-10-29 14:00:40 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2015-10-29 14:02 编辑
dengmengcan 发表于 2015-10-27 22:06
下载很久了,今天才开始看,看了快一半。
第一章直到上下文之前我看的都挺明白的,有很多的知识点,尤其是 ...


非常感谢你的耐心反馈。因为是Demo,所以只是章节节选。而且最终稿件的章节顺序很可能会调整。
关于章节内容跳跃的问题,能具体说说感受么? 另外,我记得第二章的标题是“什么是任务”,所以主要是介绍任务这一概念。而上下文切换方式只是任务分类的一个要素。

出0入296汤圆

 楼主| 发表于 2015-12-24 19:58:46 | 显示全部楼层
xf331785508 发表于 2015-11-9 21:21
1. 图1.1.4及释文中”哈弗“与”哈佛“混用,望统一翻译用字。
2.  1.2.1中第三段,”但单纯使用栈来实现存 ...

  非常感谢你的认真阅读和反馈

出0入296汤圆

 楼主| 发表于 2015-12-24 19:59:28 | 显示全部楼层
lzly0302 发表于 2015-12-24 09:09
实体书大概什么时候能出来呢

估计中间还要发一次Demo以后才会有日程

出0入296汤圆

 楼主| 发表于 2017-2-23 13:34:42 来自手机 | 显示全部楼层
BSMGood 发表于 2017-2-23 11:30
下载下来扫了一下,非常好,有些地方让人茅塞顿开。这得一句一句的扣了,巩固下自己的基本知识。 ...

关于并发的讲解在后续版本中已经修正。Demo里的说法欠妥。

出0入296汤圆

 楼主| 发表于 2018-10-14 06:49:11 | 显示全部楼层
mdcao 发表于 2018-10-13 10:51
纸质版的书籍出版了吗?计划什么时候上市,想买一本看看,送人几本,  ...

惭愧,还没有最终完成

出0入296汤圆

 楼主| 发表于 2019-1-2 16:43:32 来自手机 | 显示全部楼层
很遗憾,并没有……

出0入296汤圆

 楼主| 发表于 2019-1-21 19:29:55 | 显示全部楼层
hidden 发表于 2019-1-21 13:17
这本书是没写完还是没出版?

没……写……完……

出0入296汤圆

 楼主| 发表于 2019-1-23 20:32:48 | 显示全部楼层
hidden 发表于 2019-1-23 10:04
已经出版的只有 深入浅出AVR-从ATMega48/88/168开始 吗?我学过STC89C52 现在想学AVR。用ATMega48芯片开 ...

从ATmega48开始挺好的。不过建议你跳过这一步……直接去学STM32……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 18:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表