第11章 计时/计数器及其服务 与 第12章 I/O子系统

今天看的内容主要是再次试图理解了计时器里的一些概念!好玄啊!!作者是玄真教的?!

续昨天,
我的理解是:
这里使用了与精灵任务相似的做法,即使用两个部分,分别存在于ISR和任务的上下文中。但是目标不同。
精灵任务是为了防止ISR长时间占用系统资源使任务处于饥饿状态,而采取的措施。而这里是为了防止ISR过长,会产生系统时间的飘逸甚至丢失。同时还可以用一个timer同时管理若干个软计时器任务(这里好像应该称其为worker task),它与作为系统计时器ISR一部分的计数器连接起来。
减少安装的ISR计时器的个数可以改进这个系统的性能。

[size=4]可能的处理延迟[/size]

第一个延迟是时间驱动任务调度延迟。
整个延迟过程:在计时器INT发生和软计数器到时之后一个时间段,ISR服务完成,之后才是任务调度,最后才是worker task准备好。
第二个延迟是基于优先权的任务调度延迟。
整个延迟过程:在worker task准备好之后一个时间片段,高优先级任务恰巧在执行,一直等到高优先级任务完成后一个时刻,worker task才开始运行。

[size=4]实现考虑[/size]
多个软计时器设施可以采用双向链队的方式组织起来,好处是启动并插入一个Timer速度最快,但是要查找并删除就只能一个个挨个遍历了!
而使用线性表的形式组织,如果不使用有序的方法就是最糟糕的形式了。通常会对超时时间按升序进行排序会产生更高效的计算器薄记(timer bookkeeping)。好处是计时器安装要求搜索和插入、删除实际上在使用二分查找法来定位。不知道我的理解是否准确。

[size=5]时间片轮转[/size]

timing wheel这一节更加让我相信了作者是个道士!!来自玄真教!!看着发晕!!难道作者李庆就不能用更加容易让别人明白的方式来写作吗?真是佩服他啊!!我理解的他介绍的时间片轮转的调度方式是这样的:
用前面描述过的timer bookkeeping来记录所有任务所在的“槽”,然后在一个计时器产生的INT后,同时倒计时一次,然后去运行到时的任务,同时再给那个槽赋值。就这么循环下去了!我觉得我这么理解李庆的想法,他可能都要哭了!!不知道对不对啊!!

在这章的最后一节,提供了一些软计时器和与软计时器相关的操作对象,可以记录到我的数据字典了。(如果用的上的话!)主要分为三个组,1、底层硬件相关操作。2、软计时器相关操作。3、对实时时钟或系统时钟存储器的访问。

[size=6]I/O子系统[/size]

所有的嵌入系统中都包括一些I/O形式的操作。其实就是与设备的通信,对设备的编程初始化I/O的请求、执行设备与系统之间的实际数据传输以及完成后同志请求者。

[size=5]基本I/O概念[/size]

在分配地址的时候有两种方法!一种是端口映射,另一种是内存映射
通过设备控制寄存器的地址来初始化I/O设备、从I/O设备上读取状态信息。所以选用哪种方法映射地址是必须面对的问题。
端口映射的好处是使用独立的编址,和系统地址相互独立,但是需要特殊的处理器指令来访问(如8086系列的IN 和 OUT)
内存映射的好处是在控制和获取外部设备的信息时如同更改内存一样便利,但是占用了内存空间分配。
最后还提到了DMA!!我再熟悉不过了!考试考了我N(N趋近于100)次了!!就是Direct Memory Access!我就不多说了!
提到传输模式,讲了两种模式1、字符模式。小数据量串行的一次一个字符的传输。2、块模式设备。每次传输一个帧或者一个包的数据。
对系统I/O设备要提供一个统一的访问方法,这就是[color=Red]I/O子系统[/color]的概念。
每个I/O设备驱动程序可以为应用程序提供一个I/O应用编程接口,而吧这些启动程序集合起来以适应某个系统需求。为了减少实现依赖性,嵌入式系统常常包括一个I/O子系统。它包括一组在应用层统一标准的I/O操作函数,它们1:n的对应着若干不同设备的操作驱动程序。标准的操作有:Create   Destroy    Open   Close   Read   Write   Ioctl。
通过驱动程序表来记录所有用到的驱动程序。再通过设备表来记录系统提供的各种设备,这个表指向驱动程序表的一个项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值