1895_分离进程的能力

1895_分离进程的能力

全部学习汇总: g_unix: UNIX系统学习笔记 (gitee.com)

有些理念可能在控制类的嵌入式系统中不好实施,尤其是没有unix这样的系统搭载的情况下。如果是考虑在RTOS的基础上看是否有一些理念可以做尝试,我觉得还是可以有一定的参考意义的。如果是让处理相互独立,设计上其实可以考虑为不同的task。但是,这样不同的task之间可能就会涉及到数据的传递。就我们现在看到的比较流行的开源RTOS来说,FreeRTOS中的队列等功能应该就是这样功能的一个很好模型。

对于前面我想到的嵌入式实时系统FreeRTOS中的可用模型来说,协议的传递机制其实是已经存在了的。如果考虑进一步的设计,那可能是传递协议中承载的数据格式。

我看到过有的RTOS也是支持管道机制的,如果按照这种描述我觉得这个功能还是非常不错的一个功能。因为在信息处理上,有了一个并行处理的模型。这样的话,数据处理其实是有更加灵活的处理方式,可能在大的数据组包等处理上会有更低延迟的可能性。

程序的分离涉及到的一个很重要的问题点就是分离后的各个模块之间的通信,前面考虑到了管道、信号等不同的形式,但是有一个很大的短板:信号的流向是单向的。如果要实现双向的信号流向功能,套接字是一个很好的选择。关于套接字,闻名已久,但是实际的用法还是不是很了解。可能在网络应用角度,这个会是一个很基础的应用。关于这个技术的基本的机制,后面可以了解一下以看看是否可以在我现在的一些工作中有借鉴的意义。至于我现在常用的RTOS以及控制类的嵌入式设计中,这种超级灵活的双向信息流转似乎的确是很少看到。

前面的很多技术考虑的方法都是协议或者机制,但是从实时性以及快速性的角度考虑,数据的共享以及交换通过一块可以多方一起访问的内存来实现也是一个方式。但是在这种多方操作的过程中,可能会有竞争以及同步等问题。这个是需要再软件层面做设计上的考虑。从资源开销上来说,共享内存会比套接字的方式有改善。

如果软件设计考虑分离设计的方式,那么就会带来数据共享以及传递的问题。继而,这样的设计可能会有锁定以及解锁以保证数据可靠的方式。如果是在性能要求敏感的设计中,这样的操作会比较低效。

类似的,这种处理的形式在嵌入式的程序中似乎也有这样的影子。如果是考虑有共享数据的存在,不同的任务甚至CPU之间的数据的同步在一致性上就得有独到的设计。否则,依赖于操作系统的同步机制,可能会带来很多响应上的延迟。

在unix的环境中做设计,如果考虑进行程序设计的分解,线程通常也不会是首选的方法。另外,线程解决的不是不同程序时间的通讯问题,而是单个程序的一个实例内的某种分时形式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/450424.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

绝世唐门:霍挂六个十万年魂环,一穿七灭团再现,淘汰赛顺利晋级

Hello,小伙伴们,我是拾荒君。 国漫《斗罗大陆2绝世唐门》第32期超前爆料,霍雨浩开局便释放六个十万年魂环,以绝对的气场碾压天灵学院代表队。首次参与高级魂师大赛,霍雨浩便大放异彩秀出超级霍挂,此等操作就连当初的唐…

[Python] scikit-learn中数据集模块介绍和使用案例

sklearn.datasets模块介绍 在scikit-learn中,可以使用sklearn.datasets模块中的函数来构建数据集。这个模块提供了用于加载和生成数据集的函数。 API Reference — scikit-learn 1.4.0 documentation 以下是一些常用的sklearn.datasets模块中的函数 load_iris() …

数字巨轮航行大数据海洋:数据可视化引领时代潮流

在大数据时代的潮流中,数据可视化如同一艘畅行无阻的科技巨轮,引领我们穿越数字浩瀚的大海,使我们在信息的航程中游刃有余。下面我就从可视化从业者的角度,来简单说说数据可视化是如何帮助我们在大数据时代畅行无阻的。 数据可视化…

1、安全开发-Python爬虫EDUSRC目标FOFA资产Web爬虫解析库

用途:个人学习笔记,有所借鉴,欢迎指正 前言: 主要包含对requests库和Web爬虫解析库的使用,python爬虫自动化,批量信息收集 Python开发工具:PyCharm 2022.1 激活破解码_安装教程 (2022年8月25日…

CentOS 8 下载

https://mirrors.bfsu.edu.cn/centos/8-stream/isos/x86_64/ 下载地址: https://mirrors.bfsu.edu.cn/centos/8-stream/isos/x86_64/CentOS-Stream-8-x86_64-latest-dvd1.iso

【第二十二课】最短路:多源最短路floyd算法(acwing-852 spfa判断是否存在负环 / acwing-854 / c++代码)

目录 acwing-852 代码如下 一些解释 acwing-854 foyld算法思想 代码如下 一些解释 acwing-852 在spfa求最短路的算法基础上进行修改。 代码如下 #include<iostream> #include<cstring> #include<algorithm> #include<queue> using names…

适用于 Windows 7/8/10/11电脑的 12 款顶级数据恢复软件

很多时候&#xff0c;我们在 Windows 7 /8/10/11下不小心按了删除键&#xff0c;从而丢失了硬盘或 USB 驱动器中的重要文件和数据。在某些情况下&#xff0c;病毒或软件错误可能会损坏您的硬盘&#xff0c;从而影响您的文件。在这种情况下&#xff0c;您迫切需要一款适用于 Win…

坚持刷题|二叉树的前、中、后序遍历(递归迭代)

文章目录 题目思考递归实现迭代实现前序遍历后序遍历中序遍历 在前、中、后序的迭代遍历中&#xff0c;为什么都采用栈来模拟递归&#xff0c;而非队列&#xff1f; Hello&#xff0c;大家好&#xff0c;我是阿月。坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天刷&…

030 可变参数

可变参数定义 public static void main(String[] args) {// 多参数方式传递System.out.println(max(1,3,5,3,6,1,2));// 数组方式传递System.out.println(max(new int[]{1,3,5,3,6,1,2})); }static int max(int... nums){int max Integer.MIN_VALUE;for (int num : nums) {if(…

redis布隆过滤器(Bloom)详细使用教程

文章目录 布隆过滤器1. 原理2. 结构和操作3. 特点和应用场景4. 缺点和注意事项 应用-redis插件布隆过滤器使用详细过程安装以及配置springboot项目使用redis布隆过滤器下面是布隆过滤器的一些基础命令 扩展 布隆过滤器 Bloom 过滤器是一种概率型数据结构&#xff0c;用于快速判…

echarts step line

https://ppchart.com/#/ <template><div class"c-box" ref"jsEchart"></div> </template><script> import * as $echarts from echarts // 事件处理函数 export default {props: {// 需要传递的数据data: {type: Array,defa…

SSL 证书如何工作?

SSL 的原理是确保用户和网站之间或两个系统之间传输的任何数据始终无法被读取。它使用加密算法对传输中的数据进行加密&#xff0c;从而防止黑客读取通过连接发送的数据。该数据包括潜在的敏感信息&#xff0c;例如姓名、地址、信用卡号或其他财务详细信息。 该过程如下所示&am…