为什么有些应用非VxWorks不可】的更多相关文章

      实时操作系统(RTOS)是专用于对时间精确度敏感的操作系统.典型的情况是,这种应用需要从传感器收集数据.做出分析并对关键性设备进行控制,例如飞机.列车.手术刀.这类控制必须精准,不容许出现丝毫差错.这与通用操作系统(General Purpose Operating Systems, GPOS形成对比. 典型的通用操作系统,例如Android.Linux或者Windows,其设计目标是以复杂的调度规则来管理多种多样的处理器.GUI和外设功能,最高原则就是让系统中的各个功能部件都保持均…
        在linux进行非阻塞的socket接收数据时经常出现Resource temporarily unavailable,errno代码为11(EAGAIN),这表明你在非阻塞模式下调用了阻塞操作,在该操作没有完成就返回这个错误,这个错误不会破坏socket的同步,不用管它,下次循环接着recv就可以. 对非阻塞socket而言,EAGAIN不是一种错误.在VxWorks和Windows上,EAGAIN的名字叫做EWOULDBLOCK. 另外,如果出现EINTR即errno为4,错…
看我之前的文章就知道,一般对于网络读的socket,都会加上O_NONBLOCK,非阻塞的选项. int setnonblocking(int fd) { int old_option = fcntl(fd, F_GETFL); int new_option = old_option | O_NONBLOCK; fcntl(fd, F_SETFL, new_option); return old_option; } 为什么要加上呢.是为了效率.下面详细说一下阻塞和非阻塞. 基本概念: 阻塞IO:…
VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统.Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似MicrosoftVisual C,但是提供了更丰富的调试.仿真环境和工具. 外文名 VxWorks 公    司 Wind River System(风河公司 ) 产品类型 实时操作系统 开发时间 1983年 产    地 美国 开发环境 Tornado/Wind River Workbench 目录…
中断服务程序 ISR 硬件中断处理是实时系统的关键,因为它是外部时间通知系统的方式. ISR亦称为中断处理函数,是对中断的正确响应.可以使用任何ISR连接到任何没有被VxWorks使用的中断上.当关联的中断发生时,VxWorks运行ISR:ISR的处理不会延迟,除非你配置系统去延迟. VxWorks的ISR配置 默认支持ISR.但是,中断栈和额外特征可以被配置.此外,ISR的延迟支持和显示函数支持可以被增加到系统. 配置中断栈 所有中断使用相同的中断栈.栈在系统启动时更加配置参数来分配和初始化.…
Signals 信号是操作系统用于异常处理和异步控制流的关键.在很多方面,信号相当于软件方面的硬件中的中断.操作系统产生的信号包括总线错误和浮点处理异常.信号也提供了API来管理和产生信号.在应用程序中,信号是最合适用来处理异常,而不是为了任务间通信.常见用法包括kill进程和任务,当定时器触发时发送事件或消息到消息队列时发送事件等. 为了兼容POSIX,VxWorks支持63种Signals,每个Signal都有独一无二的标识值和默认的处理(定义在signal.h).值0用于表示NULL的si…
概述 VxWork系统任务 任务调度 任务创建和管理 任务的错误状态 任务异常处理 共享代码和重入 概述 现代实时操作系统是基于多任务和任务间通信的概念的.多任务环境运行一个实时进程RTP可以被作为一系列相互独立的任务集,每一个任务都有自己的执行线程和系统资源.任务是VxWorks调度的基本单元.所有任务,不管是在内核中,还是进程中,使用相同的调度(VxWorks进程本身不被调度). 任务的概念与其他操作系统的线程概念比较类似.多任务为应用程序对多个孤立的实时事件的控制和反应对提供了基础.在单核…
http://blog.csdn.net/tianmohust/article/details/8691644 在Linux中使用非阻塞的socket的情形下. (一)发送时 当客户通过Socket提供的send函数发送大的数据包时,就可能返回一个EAGAIN的错误.该错误产生的原因是由于send 函数中的size变量大小超过了tcp_sendspace的值.tcp_sendspace定义了应用在调用send之前能够在kernel中缓存的数据量.当应用程序在socket中设置了O_NDELAY或…
除了自己实现之外,还有个c语言写的基于事件的开源网络库:libevent http://www.cnblogs.com/Anker/p/3265058.html 最简单的select示例: #include <stdio.h> #include <sys/time.h> #include <sys/types.h> #include <unistd.h> #define STDIN 0 // file descriptor for standard inpu…
VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统.Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似MicrosoftVisual C,但是提供了更丰富的调试.仿真环境和工具. 外文名 VxWorks 公    司 Wind River System(风河公司 ) 产品类型 实时操作系统 开发时间 1983年 产    地 美国 开发环境 Tornado/Wind River Workbench  …