草庐IT

real-time

全部标签

linux - 什么是同时具有实时循环和非实时功能的更好方法

抱歉标题不好,我真的不知道如何简短地描述...我的场景是,对于机器人应用,我们需要一个实时循环来每1毫秒控制一次电机。同时我们可能想做一些没有实时要求的事情,比如路径规划、图像处理、物体识别等。此外,一些非实时任务的结果会被发送到实时电机控制循环控制机器人。对于实时部分,我使用带有RT-Preempt补丁的Ubuntu。因此,我可以像示例代码一样在while循环中运行实时控制循环here.但是,我对非实时部分一无所知。以我的拙见,我会在同一进程中新建一个线程并在该线程中运行非实时任务。由于我是实时编程的新手,我不知道我的设计会有什么问题。此外,我想知道是否有设计这种程序的范例?---编

c - 如何避免服务器套接字出现 TIME_WAIT?

这个问题在这里已经有了答案:Binderrorwhilerecreatingsocket(4个答案)关闭8年前。我知道您会将其掩盖为重复项(question1、question2、question3),但答案不是我要找的(我认为其他人也是)。所以,我指的是套接字大师(我爱你们):如果我关闭套接字,我怎么会得到绑定(bind)错误(地址已经在使用中)?我将描述我的问题。I'vegotaclientthatcommunicatewithaserverIntheserver,Ihavetwosockets:sockS(themainsocket,thatlistens)andsockTX(t

c - 如何避免服务器套接字出现 TIME_WAIT?

这个问题在这里已经有了答案:Binderrorwhilerecreatingsocket(4个答案)关闭8年前。我知道您会将其掩盖为重复项(question1、question2、question3),但答案不是我要找的(我认为其他人也是)。所以,我指的是套接字大师(我爱你们):如果我关闭套接字,我怎么会得到绑定(bind)错误(地址已经在使用中)?我将描述我的问题。I'vegotaclientthatcommunicatewithaserverIntheserver,Ihavetwosockets:sockS(themainsocket,thatlistens)andsockTX(t

linux - 低优先级进程延迟的实时进程中的串行通信 (Linux)

我有一个实时进程,通过RS232将偶尔的通信发送到高速摄像机。我还有其他几个占用大量CPU时间的实时进程,使用CUDA在几个GPU板上进行图像处理。通常串行通信速度非常快,每次消息和响应大约需要50毫秒。然而,当后台进程忙于进行图像处理时,串行通信速度会变慢,通常需要数秒(有时超过10秒)。综上所述,在串行通信过程中,如果进程B、C等非常忙,即使进程A具有最高优先级,进程A也会延迟:进程A(实时,最高优先级):偶尔的串行通信进程B、C、D等(实时,低优先级):CPU和GPU处理繁重当我将后台进程更改为SCHED_OTHER(非实时)进程时,串行通信速度很快;但是,这对我来说不是解决方案

linux - 低优先级进程延迟的实时进程中的串行通信 (Linux)

我有一个实时进程,通过RS232将偶尔的通信发送到高速摄像机。我还有其他几个占用大量CPU时间的实时进程,使用CUDA在几个GPU板上进行图像处理。通常串行通信速度非常快,每次消息和响应大约需要50毫秒。然而,当后台进程忙于进行图像处理时,串行通信速度会变慢,通常需要数秒(有时超过10秒)。综上所述,在串行通信过程中,如果进程B、C等非常忙,即使进程A具有最高优先级,进程A也会延迟:进程A(实时,最高优先级):偶尔的串行通信进程B、C、D等(实时,低优先级):CPU和GPU处理繁重当我将后台进程更改为SCHED_OTHER(非实时)进程时,串行通信速度很快;但是,这对我来说不是解决方案

linux - TIME_WAIT 连接太多,得到 "Cannot assign requested address"

我有一个小型Web应用程序,它打开TCP套接字连接,发出命令,读取响应,然后关闭针对特定REST端点的每个请求的连接。我已经开始使用ApacheJMeter对端点进行负载测试,我注意到在运行一段时间后,我开始看到诸如“无法分配请求的地址”之类的错误,打开此连接的代码是:deflookup(word:String):Option[String]={try{valsocket=newSocket(InetAddress.getByName("localhost"),2222)valout=newPrintStream(socket.getOutputStream)valreader=new

linux - TIME_WAIT 连接太多,得到 "Cannot assign requested address"

我有一个小型Web应用程序,它打开TCP套接字连接,发出命令,读取响应,然后关闭针对特定REST端点的每个请求的连接。我已经开始使用ApacheJMeter对端点进行负载测试,我注意到在运行一段时间后,我开始看到诸如“无法分配请求的地址”之类的错误,打开此连接的代码是:deflookup(word:String):Option[String]={try{valsocket=newSocket(InetAddress.getByName("localhost"),2222)valout=newPrintStream(socket.getOutputStream)valreader=new

python - 为什么 python Wnck window.activate(int(time.time()))

这对我来说很奇怪。有人可以解释为什么activate()函数需要时间戳吗?难道99.9%的时间不是现在、尽快或“尽早方便”吗?此外,如果您尝试w.activate(0)您会收到此警告:Wnck-WARNING:Receivedatimestampof0;windowactivationmaynotfunctionproperly我读到的关于此警告的每个论坛帖子都以没有答案告终。但它们似乎都表明除非您实际输入时间戳,否则代码无法正常工作。如果你输入(0),事情就不起作用,你会收到警告。但是,对我来说,如果我输入时间戳,那就是事情不起作用的时候。如果我使用(0),除了我收到警告(仅当我在终

python - 为什么 python Wnck window.activate(int(time.time()))

这对我来说很奇怪。有人可以解释为什么activate()函数需要时间戳吗?难道99.9%的时间不是现在、尽快或“尽早方便”吗?此外,如果您尝试w.activate(0)您会收到此警告:Wnck-WARNING:Receivedatimestampof0;windowactivationmaynotfunctionproperly我读到的关于此警告的每个论坛帖子都以没有答案告终。但它们似乎都表明除非您实际输入时间戳,否则代码无法正常工作。如果你输入(0),事情就不起作用,你会收到警告。但是,对我来说,如果我输入时间戳,那就是事情不起作用的时候。如果我使用(0),除了我收到警告(仅当我在终

c - 为什么我们需要将进程的地址空间锁定在 RAM 中?

http://linux.die.net/man/2/mlockallmlockall()locksallofthecallingprocess'svirtualaddressspaceintoRAM,preventingthatmemoryfrombeingpagedtotheswaparea.为什么这在实时系统中很重要? 最佳答案 它确保内存始终在RAM中并且永远不会移动到交换磁盘。这使得访问这些内存位置大大更快,因为与RAM相比,磁盘非常慢。在实时系统中(顺便说一句,linux不是RTS!)您需要极低的延迟,因此导致磁盘访问的