SylixOS信号系统(1)

SylixOS 经得起检验的国产操作系统 (五) 本篇开始介绍“信号系统”、“IO系统”以及“标准设备”。详细信息请访问SylixOS官网:http://www.sylixos.com。 阅读详情

信号简介

信号是一种软中断,用来通知进程或者线程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程或者线程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是一种异步通信机制,一个进程或者线程不必通过任何操作来等待信号的到达,事实上,进程或者线程也不知道信号到底什么时候到达。进程之间可以互相kill函数发送信号。内核也可以因为内部事件而给进程或者线程发送信号,通知进程或者线程发生了某个事件。信号机制除了基本通知功能外,还可以传递附加信息。
在某信号发生时,可以告诉内核按下列3种方式之一进行处理:

  • 忽略信号。大多数信号都可使用这种方式进行处理,但有两种信号不能被忽略。它们是SIGKILL和SIGSTOP。这两种信号不能被忽略的原因是:它们向内核提供了是进程终止的可靠方法。另外,如果忽略某些由硬件异常产生的信号(如非法内存访问)则进程的运行行为是未定义的;
  • 捕捉信号。为了做到这一点,要通知内核在某种信号发生时,调用一个用户函数。在用户函数中,可执行用户想要的动作。例如,捕捉到SIGALRM信号后,用户可在相应的处理函数中去控制某个线程。如果捕捉到SIGCHLD信号,则表示一个子进程已经终止,所以此信号的捕捉函数可以调用waitpid以取得该子进程的退出状态。又例如,如果进程创建了临时文件,那么可能要为SIGTERM信号编写一个信号捕捉函数以清除临时文件(SIGTERM是终止信号,kill命令传送的系统默认信号是终止信号)。注意,不能捕捉SIGKILL和SIGSTOP信号。
  • 执行系统默认动作。对大多数信号的系统默认动作是终止该进程。

信号类型

从可靠性方面讲信号分为:可靠信号和不可靠信号。

早期Unix系统中的信号机制比较简单和原始,信号值小于SIGRTMIN的信号都是不可靠信号。这就是”不可靠信号”的来源。它的主要问题是信号可能丢失。随着时间的发展,实践证明了有必要对信号的原始机制加以改进和扩充。由于原来定义的信号已有许多应用,不好再做改动,最终只好又新增加了一些信号,并在一开始就把它们定义为可靠信号,这些信号支持排队,不会丢失。信号值位于SIGRTMIN和SIGRTMAX之间的信号都是可靠信号,可靠信号克服了信号可能丢失的问题。
这里不可靠信号又称为非实时信号,而可靠信号又称为实时信号。
因为不可靠信号可能会丢失,所以这样的一个信号在处理完之前不会再接收相同的信号,在SylixOS信号的实现上,这种信号不支持排队。相应地可靠信号,在SylixOS实现上市支持排队。

<待续>

DDS实现层深度解析:实时系统中的RTPS协议、内存与QoS硬核调优 DDS(Data Distribution Service)作为分布式实时系统的通信中间件,其核心价值在于将发布-订阅抽象模型落地为纳秒级确定性的二进制实现。它依托RTPS有线协议,在操作系统、CPU缓存、网络硬件与实时调度约束下完成协议栈映射、零拷贝传输、静态内存池分配及QoS语义到OS原语的精准翻译。技术关键点包括共享内存(SHM)替代UDP内核路径以降低延迟、缓存行对齐规避伪共享、RTPS报文精简优化处理耗时,以及基于CLOCK_TAI的时间戳统一机制。本文聚焦DDS implementations在 阅读详情

相关推荐

AMBA总线—APB总线协议详解

文章目录一、APB总线介绍1.1.什么是APB总线1.2.典型的基于 AMBA 总线的系统架构1.3.APB信号列表(重点)二、APB总线传输(时序)2.1.APB 状态机2.2.写操作(重要)2.3.读操作(重要)2.4.APB组件接口(重要)2.4.1.APB Bridge框图2.4.2.APB Slave框图三、APB到AHB的接口3.1.读操作3.2.写操作3.3.读写交替传送 一、APB...

Mr.翟的博客 4万+

Linux的信号量

信号量(semaphore)与已经介绍过的 IPC 结构不同,它是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。 ** 1、特点 ** 1、信号量用于进程间同步,若要在进程间传递数据需要结合共享内存。 2、信号量基于操作系统的 PV 操作,程序对信号量的操作都是原子操作。 3、每次对信号量的 PV 操作不仅限于对信号量值加 1 或减 1,而且可以加减任意正整数。 4、支持信号量组。 例子:就像一个房间,信号量相当于开门的钥匙,房间相当于连接资源(一次仅允许一个进程使用的资源;如

肖肖的博客 1960

速腾16线激光雷达(RS-16)在ubuntu18.04系统下跑SC-A-LOAM算法

说明: 简要记录一下速腾16线激光雷达即RS-16在ubuntu18.04系统下跑SC-A-LOAM算法的过程,因为SC-A-LOAM算法源码不支持RS雷达的数据,大致思想就是先将rs雷达发布的激光数据转换为velodyne类型的数据,考虑到接下来还要基于RS-16实时运行SC-A-LOAM算法,这里提前将RS_SDK驱动安装好。 1 搭建SC-A-LOAM算法运行环境 首先需要在电脑上搭建SC-A-LOAM算法的运行环境,见文章《ubuntu18.04搭建SC-A-LOAM环境并运行》 本文所使用的系统架

超爱吃小蛋糕的66的博客 2373

SylixOS线程间通信-SylixOS信号量

SylixOS线程间通信-SylixOS信号量SylixOS信号量有两种类型:二进制信号量和计数型信号量。 二进制信号量的取值范围为FALSE或TRUE;计数型信号量的最小取值为0,而最大取值在创建计数型信号量时决定。 二进制信号量主要应用在以下场合: 有允许线程访问的一个资源,使用二进制信号量作为互斥手段; 线程或中断通知另一个线程某种事件发生。 计数型信号量主要应用在以下场合: 有允

flags_s的博客 1028

Conda换源全攻略:从清华源到默认源的保姆级切换教程(附常见问题解决)

本文提供Conda换源的完整教程,详细讲解如何从清华源切换到默认源,包括配置步骤、常见问题解决方案及高级技巧。针对国内开发者遇到的下载速度慢问题,清华源提供了高速稳定的解决方案,同时文章也介绍了恢复默认源的方法和多种镜像源选择。

weixin_28837817的博客 940

卸载Office 16 Click-to-Run Extensibility Component详细步骤

卸载Office 16 Click-to-Run Extensibility Component详细步骤 第一步:按住键盘上的“Win+R”,打开运行窗口 在运行窗口输入“Installer”回车,打开Installer文件夹 第二步:在Installer文件夹红框最右侧,即“大小”后面,右击选择“其他”,找到“主题”,勾选,点击“确定”,添加主题列成功 第三步:在“主题”列找到“Office 16 Click-to-Run Extensibility Component

M_try的博客 3万+

SylixOS 不同容器(ECS)间使用信号量同步方案

1、概述 在 SylixOS 容器版本中由于容器间存在命名空间隔离的问题因此无法直接使用信号量进行同步操作,这在某些场合下可能无法完成实际需求,如共享内存通信时。本文介绍一种在容器间实现信号量同步功能的解决方案。 2、解决方案 此解决方案思路是在 SylixOS 标准信号量的基础上封装一层字符设备,在内核层创建信号量并提供相关接口使容器内的 APP 可以通过字符设备接口获取内核信号量句柄,再通过标准信号量 API 进行操作。实现不同容器间的 APP 同步操作。基本框架如下图...

stone8761的专栏 528

MDB协议中设备级别和选项(Levels and Options)

MDB协议的LEVEL级别介绍

hbstart的博客 939

SylixOS学习三—— SylixOS的引导与安装2

自学SylixOS启程之旅笔记 《SylixOS启程之旅》是一门公开课,点开下面链接即可观看: SylixOS启程之旅

graceyun的博客 1715

成功解决 OllamaError: status code 400, message: model ‘llama3.2:latest‘ not found 报错

本文针对Ollama更新后出现的OllamaError: status code 400, message: model 'llama3.2:latest' not found报错,分析了其根本原因——2026年1月Ollama将Llama 3.2模型命名从llama3.2:latest改为meta-llama/Llama-3.2:7b-instruct等新格式。解决方案包括:1)使用新模型名称;2)升级Ollama SDK;3)查询确认本地可用模型;4)批量更新旧项目脚本。通过正确适配新命名规则,

博客 1398

4、基于球面波展开的近场/远场变换技术解析

本文深入解析了基于球面波展开的近场/远场变换技术,涵盖坐标系统选择、截断测量处理、高级SWE方法及实际应用场景。重点介绍了广义SWE、全探头补偿、平移SNF测量(TSWE)等关键技术,结合吸收材料与导电地板系统的误差处理方案,系统总结了各类方法的优缺点与适用场景,并通过流程图和案例分析展示了技术应用路径。该技术在汽车、通信和航空航天领域的天线测量中具有重要价值,可显著提升测量效率与精度。

dell8的博客 255

SylixOS内存屏障、信号量

如果我们在一个核上对数据执行写入操作,并且通过一个标记来表示此数据已经写入完毕,另一个核通过此标记来判断数据是否已经写入完毕,就可能存在风险,这是因为标记可能已经被修改,但是数据操作还未完成,最终导致另一个核未能使用到正确的数据,从而带来不可预估的后果。需要注意的是,中断服务程序不能调用API_SemaphoreBPend函数来等待一个二进制信号量,因为该函数在二进制信号量值为FALSE时会阻塞当前执行的任务,而中断服务程序用来处理最紧急的事情,因此是不允许阻塞的。这种机制满足了读的高并发性。

FirePig的博客 828

huggingface使用git上传model或者Dataset到HF,当然也可以上传代码,以及大文件,很哇塞!!!

huggingface使用git上传model或者Dataset到HF,当然也可以上传代码,以及大文件,很哇塞!!! 第一次使用时,需要使用设置系统全局的huggingface token,这。点击huggingface首页右上角的头像 → settings → access tokens,创建一个write权限的token,名字可以随便取。

拥抱具身智能,昇腾Ascend C 3104

SylixOS 下的信号系统

信号是一种软中断,用来通知进程或者线程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程或者线程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是一种异步通信机制,一个进程或者线程不必通过任何操作来等待信号的到达,事实上,进程或者线程也不知道信号到底什么时候到达。进程之间可以互相 kill 函数发送信号。内核也可以因为内部事件而给进程或者线程发送信号,通知进程或者线程发生了某个事件。信号机制除了基本通知功能外,还可以传递附加信息。

日常学习记录 921

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

基于SylixOS的中断浅析

目  录 1.中断... 1 1.1           中断的定义... 1 1.2           中断的分类... 1 1.2.1    外部中断... 1 1.2.2    内部中断... 1 2. SylixOS下的中断浅析... 2 2.1           SylixOS信号系统... 2 2.2           SylixOS时间管理... 2

u013702699的博客 501

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SylixOS 信号系统(3)

信号内部机制SylixOS的信号机制分为3类发送信号方法:kill类型、队列类型和事件类型,这3中类型分别由_doKill()、_doSigQueue()、_doSigEvent()函数实现,上层所有的发送信号函数都直接或者间接地通过调用这几个函数来实现,而这3个函数中,_doKill()设置信号源为SI_KILL、_doSigQueue()设置信号源为SI_QUEUE、_doSigEvent()设

flags_s的博客 887

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SylixOS信号系统(2)

信号机制原理关键数据结构POSIX标准定义了sigset_t类型来定义一个信号集,然而sigset_t类型在不同的系统可能有不同的定义方式,因此去猜测sigset_t类型是不明确的,在SylixOS中,将sigset_t定义成了unsigned long long型,也即是一个64位的数据类型,每一位代表了一个信号,最高位不被使用。 SylixOS信号机制的实现离开不了下面几个关键数据结构;1.

flags_s的博客 668

【069】南京市“2020十项重大创新成果”重磅发布!翼辉SylixOS成功入选!

南京市“2020十项重大创新成果”重磅发布!翼辉SylixOS成功入选! 发布于2021年01月07日 2021年01月04日举行的南 京 市创新名城建设推进大会上,重磅发 布2021年市委一号文件《关于新发展阶段全面建设创新名城的若干政策措施》。在新年“第一会”上,南京市公布了创新名城建设十项重大创新成果,翼 辉“国产大型实时操作 系统的研发与应用”成功入选。 翼辉 SylixOS大型实时操作系统拥有完整自主知识产权,在航空航天、轨交、电力、自动化控制等领域,解决了工业操作系统“卡脖子”问题,已成功应

ScilogyHunter的博客 485

硬实时操作系统(Hard Real-Time OS)与软实时操作系统(Soft Real-Time OS)的区别

针对 FreeRTOS(代表软实时系统)和 SylixOS(代表硬实时系统)的具体对比分析,通过实际技术细节说明两者的差异。

bifudoph的博客 905

SylixOS 信号发送、接收机制

SylixOS 可以通过 kill() 或 sigqueue() 向线程发送信号(向进程发送信号相当于发送给进程的主线程)。kill() 与 sigqueue() 的区别主要在发送信号的类型不一样,kill() 发送非排队信号,sigqueue() 发送排队信号。 kill() 中首先会调用 _doKill() 接口,在 _doKill() 中构建信号信息结构 struct siginfo 和 LW_CLASS_SIGPEND 结构,这里主要是保存信号值、信号产生源、发送信...

stone8761的专栏 437

SylixOS下kill 15信号问题分析

1.适用范围 本文档适用于希望了解SylixOS下kill 15信号的工程师。2.SylixOS与Linux的现象差异2.1构建测试用例 构建一个简单的测试用例,主线程与子线程均运行20秒后结束,程序代码如程序清单 2.1所示:程序清单 2.1 构建测试用例void *fun(void *arg){int n = 0;while(n < 20) ...

weixin_34407348的博客 222

SylixOS进程介绍

进程介绍 进程是操作系统中资源的容器,所有程序都必须依附于一个进程运行,进程管理程序的代码、数据、线程、信号量等资源。当一个进程销毁时,所有属于该进程的资源也会被销毁,如:文件句柄、socket套接字、线程等。 SylixOS支持进程,就如前面介绍的一样,SylixOS进程管理应用程序资源。与linux、Windows操作系统不一样的是,SylixOS是充分考虑实时系统需求设计的,我们称之为实

糊涂岁月的专栏 2115

SylixOS中CTRL+C的大致处理流程

1.这几天在处理GPU方面的问题时碰到了在终端执行CTRL+C报错的问题,具体见Vivante GPU驱动报:SAFE mode error错误解决方法这篇帖子,这里主要记录CTRL+C的大致处理流程。 2.当键盘按下CTRL+C时,主机就向目标板发送一个控制字符,其ASSIC码为0x03,在SylixOS下常用的控制字符如下,此定义是在tyLib.c文件中 /*****************...

li5830的博客 1095

SylixOS的信号屏蔽浅析

1.信号介绍       信号是一种软中断,用于通过异步的方式对进程进行事件通知。信号分为实时信号和非实时信号,各个进程对于信号的处理方式不一,处理方式分为三类:忽略,捕捉,执行系统默认动作。进程可以选择屏蔽某个或某些信号。 2.信号屏蔽      SylixOS可以通过sigprocmask函数对某个信号集内的信号进行屏蔽。在信号被屏蔽的期间,进程对所屏蔽的大部分信号不会进行响应,只有解除

qq_16328735的博客 318
上一篇: SylixOS 唤醒链
下一篇: SylixOS信号系统(2)
flags_s
博客等级 码龄11年 15粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值