深入研究:我国工业实时操作系统的核心技术与演进路径

news2024/11/15 22:51:21

实时操作系统(RTOS)在各类工业场景中发挥着中枢神经系统的关键作用,是数字化工业的重要基础。当前,全球大部分工业实时操作系统市场被国外厂商占据,围绕主流RTOS产品内核提供了完备的上下游软件配套,并以嵌入式形式开展了大量硬件捆绑,形成锚定。本文梳理了工业实时操作系统软件体系中关键技术及发展趋势,为国产系统加速发展提供参考。

在这里插入图片描述

一、RTOS概述

RTOS是面向工业应用的实时操作系统,广泛应用于工业自动化、军事、电力、新能源等工业领域关键场景中,通常对处理器性能没有较高要求,对资源的需求也相对有限,但在操作系统实时性、并行性、可靠性、功耗等方面的要求较为严苛,其处理器芯片的更新换代周期通常为几年到几十年。在工业产品或工业制造流程中,实时操作系统通常以嵌入式形态作为装备或生产系统的“大脑”,对提高装备与生产过程的智能化,满足工业生产对于高效、可靠、实时、绿色等方面的要求具有显著作用。在实际应用过程中,RTOS并非单一、封闭的软件工具,而是与硬件、协议、应用软件等广泛连接和协同,形成纵横连通的生态网络。现代RTOS应重点考虑工业互联网对泛在感知、互联、智能环境下的人机物融合发展趋势所带来的新挑战,例如在云边端协同环境中的嵌入式软硬件耦合、资源受限、硬件异构、多类别或无操作系统、通信方式各异等情况下,如何实现任务的优化调度和任意迁移等。

二、国内外发展现状

随着“工业4.0”和智能制造等国家战略的推进,对实时操作系统的深入研究越来越受到国内外科研团队的重视,取得了大量的研究成果。但是从整体上来看,国内面向RTOS领域的研究还处于发展阶段,依然有很多具有挑战性的工作需进一步深入探索。以下围绕RTOS整体框架,对当前相关研究现状进行阐述分析,并进一步梳理目前全球主流的实时操作系统产品。

(一)相关研究工作当前,国内围绕工业操作系统软件整体框架设计开展了大量研究,重点提升系统安全、可靠、可信等能力。为确保操作系统内核的安全性和可靠性,华东师范大学团队将形式化方法引入操作系统内核验证中,提出了一种通用性的操作系统内核自动化验证框架,辅助解决软件系统基础组件的安全可靠问题。针对现有基于MILS架构的嵌入式操作系统在出现运行故障后无法有效进行正确、安全迁移等问题,西安航空计算技术研究所团队提出了一种嵌入式操作系统多级安全域动态管理架构,保证了任务的动态迁移和功能重构。浙江大学团队提出了一种基于人工智能的高可信嵌入式操作系统,能够在不同任务数量、类别的情况下拥有较高的可信率、精准率及召回率。

(二)此外,对于RTOS软件框架研究逐渐细化深入,与重点行业典型场景紧密结合。如南京理工大学团队搭建了一种基于Sylix OS嵌入式实时操作系统的火控系统总体框架,实现了弹道解算和火控命中过程的仿真。基于对飞行器飞行控制软件需求的分析结果,北京航天自动控制研究所团队提出了一种基于战星嵌入式实时操作系统的多核分布式飞行控制软件架构,提高了飞行控制软件的可靠性与安全性。针对目前相控阵天线控制系统通信方面的高速、高实时、高稳定需求,西安交通大学团队设计了一种基于Zynq-7000和RT-Thread操作系统的实时控制系统,保证了系统执行处理的实时性和稳定性。在船舶及海航相关领域,中船重工第713研究所团队设计了一种基于VxWorks的系统控制软件,该软件在稳定性和快速性方面取得了较好的控制效果;南昌大学团队设计了一种基于嵌入式技术的船舶操作系统通用软件架构,实现了恶劣海洋环境下的船舶精确航线控制。

(三)国内外主要产品

1.国外主要产品国外RTOS相关先进技术及主流产品由美国、英国、德国等国家掌握和主导,产品的成熟度与易用性较高,广泛应用于航天、船舶、能源等核心领域,占据高比例的国际市场份额。其中,美国方面的主要产品包括WindRiver公司的VxWorks、Micrium公司的μC/OS-II、TexasInstruments公司的TI-RTOS、GreenHillssoftware公司的INTEGRITYRTOS与μ-velOSityRTOS、Microsoft公司的AzureRTOS、LynxSoftware公司的LynxOS、DDC-I公司的DEOS、Amazon公司的AmazonFreeRTOS、MIPS公司的MIPSEmbeddedOS、FSMLabs公司的RTLinux等;英国方面的主要产品包括RTOS公司的FreeRTOS、ARM公司的MbedOS与RTX、WITTENSTEIN公司的SAFERTOS等;德国方面的主要产品包括Segger公司的embOS、SYSGO公司的PikeOS、Siemens公司的NucleusRTOS等。此外,瑞典EneaDataAB公司的ENEAOSE、瑞士SCIOPTASystems公司的SCIOPTA、加拿大BlackBerry公司的QNXNeutrinoRTOS、荷兰NXP公司的MQXRTOS、Linux基金会的Zephyr、GPL组织的μClinux,以及TizenRT、OpenWrt、DuinOS、ApacheNuttX等在内的实时操作系统产品也占据了稳定的市场份额。

2.国内主要产品

近年来,我国RTOS产业规模持续提升,涌现出了很多优秀企业和产品,包括上海睿赛德RT-thread、科东软件Intewell OS、翼辉信息Sylix OS、科银京成Delta OS、中航计算所Acore OS天脉、凯思昊鹏Hopen OS、中船716所JARI-Works、中电科32所ReWorks、致远电子AworksS等代表性产品。

从整体上看,国内工业实时操作系统产品的水平依然落后于发达国家,在产品可靠性、图1国内外主要工业实时操作系统产品三维图形支持能力等方面与国外软件存在差距,同时缺乏完善的软硬件生态系统。当前,国内市场依然主要应用美国VxWorks、μC/OS-Ⅱ等产品,关键领域国产化率较低。嵌入式实时操作系统市场占比如图2所示。

在这里插入图片描述
在这里插入图片描述

三、RTOS关键技术

RTOS产品体系主要由内核层、中间件层、辅助设计工具3部分组成,如图3所示。

(一)实时操作系统内核

内核提供实时操作系统最基本的功能,是操作系统工作的核心部分。内核基于硬件进行第一层软件扩充,主要实现任务管理、内存管理、文件管理、队列管理、时钟管理等功能。工业实时操作系统对内核具有较强的实时性约束,要求其能够快速处理外部请求,并在规定时间内对请求做出响应,涉及任务调度、中断管理、时钟管理、同步与通信机制等关键技术。目前,大多实时操作系统内核主要可划分为微内核和宏内核两类。微内核一般只包含必要的任务调度、内存管理等核心功能,而外设驱动等服务在其他进程中运行,并可通过裸内核相互传递消息,其主要优势是具备模块化的灵活特性。宏内核设计中的内核和操作进程共享空间,消息在进程之间直接传递,具有集成特性,无需额外调解模块之间的调用,具备一定的性能优势。

目前,广泛应用于各关键工业场景中的VxWorks等操作系统产品沿用了宏内核设计,随着硬件平台资源有限性日益受到关注,越来越多新兴的工业实时操作系统产品采用了微内核架构,以实现其维护简单、修改方便、操作灵活等优势。

1.任务调度算法

任务调度算法是提升多任务管理实时性的关键,高效的调度算法可使系统在满足高性能、高稳定性的条件下快速完成任务调度和切换。

当前,国内外科研团队围绕实时操作系统内核任务调度方面已取得了一定的研究成果与技术突破。上海理工大学团队提出了一种混合关键级任务半分区调度算法,该算法能够对多核处理器的空闲资源进行回收计算,在触发高关键级模式的情况下,为被抛弃的低关键级任务分配空闲时间片。此外,该高校团队提出了一种嵌入式多核系统中的实时混合任务调度算法。该算法在改进的边界公平实时混合任务算法的基础上,通过引入松弛度参数来改进判定任务的优先级,并进一步提出了基于松弛度与启发式策略相结合的启发式算法改进任务的分配策略,有效满足系统的实时性要求。北京邮电大学团队提出了一种基于多核操作系统的RTOS流数据任务调度模型,该模型采用实时流式处理任务包的结构,提高了流数据处理的效率。河南大学团队提出了一种基于任务执行时间的启发式独立任务调度算法,该算法通过对任务执行时间矩阵的预处理、分解、预调度、调整等将任务分配至不同的资源,在拥有较低时间复杂度的同时节约了任务的完成时间。

2.中断/异常管理

中断/异常管理直接影响系统对外部事件的响应及处理速度,以确保具有时间特性的功能部分得到及时运行。主要包括面向应用层和面向底层的两个处理部分,同时可对用户提供统一的中断处理接口。

针对系统异常验证和中断管理,北京控制工程研究所团队面向SPARC处理器架构的操作系统提出了一种基于Hoare-logic的验证框架,该框架能够用于证明SPARC处理器架构操作系统异常管理的正确性;航空工业西安航空计算技术研究所团队提出了一种基于PowerPC处理器的操作系统异常处理方法,建立了一种PowerPC异常处理机制;云南大学团队围绕Forth实时系统提出了一种新的中断任务类型,该中断任务类型能够处理嵌入式操作系统中的实时突发事件,并基于进一步提出的任务调度算法来完成系统终端、后台以及中断任务的顺利运行;北京中控院团队提出了一种基于SPARCv8(可扩展处理器架构第8版)的实时操作系统异常管理验证方法,建立了一种Hoare式程序框架EMS,以北斗三号卫星上实时操作系统SpaceOS的执行场景为例,利用该框架对异常管理进行验证。

3.时钟

时钟是实时操作系统的脉搏与心跳,其粒度大小及准确性同时影响任务响应的及时性和整个系统的效率。时钟管理主要功能包括时间管理、定时管理、进程账务管理、负载管理等,时钟中断机制驱动着操作系统中的时间与定时器,是系统中与时间相关所有操作的基础。

时钟管理相关研究方面,国防科技大学团队在实时操作系统时钟管理方面取得了一定的突破,提出了一种面向MCU的轻量级精确时钟同步协议实现技术,该技术采用共享存储机制减少数据处理过程中的拷贝,并使用移位操作实现的近似计算处理替换了部分精确计算处理,减少对计算和存储资源的占用;中国航发控制系统研究所团队在进行时钟同步精度影响因子分析的基础上,提出了一种基于分布式仿真系统的高精度时钟同步方法,该方法包含高精度逻辑时钟构建、网络回路优化、时钟晶振频率在线补偿等,推进了时钟同步在分布式仿真系统中的实际应用;布达佩斯大学团队提出了一种基于微控制器系统的便携式PTP时钟同步实现及其性能评估方法,该方法对PTP包时间戳、PPS信号生成和外部HW事件时间戳进行了抽象,保证了良好的可移植性。

同步与通信机制同步与通信机制允许实时操作系统进行任务和中断的配合,以确保各任务的协同完成。涉及的技术包括优先级置顶协议、优先级集成182024年第03期第14卷科研创新ScientificResearchandInnovation协议等,可用于避免由于优先级反转、倒置等造成的延迟问题。

在同步与通信机制研究方面,中国科学院微电子研究所团队于操作系统同步与通信机制方面取得了一定的突破,提出了一种基于多核通信接口框架的多核通信机制,该机制分为逻辑层、操作系统移植层、传输层和移植层,满足嵌入式非对称多核处理器在上层应用移植方面的需求;华东计算技术研究所团队提出了一种嵌入式操作系统确定性核间通信机制,该机制设计了端到端通信延迟的上限,可以满足多核高安全嵌入式操作系统的要求;华北科技学院团队围绕实时操作系统同步与通信机制开展了一系列研究,设计了一种基于FreeRTOS操作系统同步与通信机制的浓度监测报警装置,以及一种基于μC/OS-Ⅲ同步与通信机制的人机交互终端;埃因霍芬理工大学团队提出了一种分布式多处理器实时嵌入式系统中XRCE-DDS通信标准应用的建模、实现和分析方法,建立了一种场景感知数据流模型,用于根据不同的执行场景捕获系统行为的动态。

(二)中间件

中间件层位于实时操作系统内核和应用软件之间,用于协调和管理应用程序之间的通信和交互,是否支持丰富的中间件成为影响实时操作系统可扩展性的关键因素。中间件层为应用软件提供数据管理、应用服务、消息传递等功能和服务,具体包括文件系统、网络协议栈、图形用户界面、设备驱动框架等。此外,面向航空、航天、汽车、电子等行业,存在大量行业专用的中间件及标准接口。从代码量看,中间件开发工作量远大于实时操作系统内核,中间件层薄弱成为制约我国实时操作系统产品研发应用的主要因素之一。

中间件相关研究方面,陕西国际商贸学院团队设计了一种基于发布/订阅机制的实时中间件,该中间件具有基于分布式对象的数据同步功能与实时保障机制,以及基于以太网的发布订阅通信机制,满足了分布式应用中数据分发对实时性方面的要求;复旦大学团队设计了一种数据服务中间件,该中间件引入了虚拟实体和协议适配器,通过对物联网环境感知数据进行数据建模,消除了数据格式的异构性;天津理工大学团队设计了一种混合计算中间件,能够将高并发实时处理业务逻辑、批处理业务逻辑和跨层次动态调用有效融合,缩短了开发时间;图森未来技术团队提出了一种结合高性能和高可靠性的机器人中间件,对比于传统方法,该中间件能够降低40%以上的通信延迟和CPU使用率。

相关产品方面,经历较长时间的发展后,Micrium等商业公司为其内核配套了丰富的中间件,FreeRTOS等开源项目在其OpenRTOS等商业项目发展中也积累了较完备的中间件,能够构建形成相对完整的实时操作系统软件平台。国内RT-Thread等产品虽然提供posix接口、网络协议栈、GUI、设备文件系统、shell、libc库等中间件,但其中相当大一部分依赖其他开源组件,且缺乏相应辅助设计和调试工具。

(三)辅助设计工具

成熟完备的辅助设计工具能够显著降低RTOS开发难度和成本,提升整体设计开发的技术水平,是打造RTOS生态的重要基础。辅助设计工具主要包括集成开发环境、模拟器、测试框架等。集成开发环境提供源代码编译器、工程管理工具等工具模块;模拟器能够模拟软/硬件功能,从而实现嵌入式工业实时操作系统软/硬件协同验证;测试框架能够有效提升开发、执行和报告自动化测试脚本的效率。

辅助设计工具相关研究方面,武汉理工大学团队提出了一种基于知识图谱的嵌入式操作系统测试用例推荐模型,该模型根据历史用例知识设计本体模型,结合知识推荐建立复用推荐模型,节约了测试成本,具有一定的工程应用价值;上海微小卫星工程中心团队提出了一种嵌入式操作系统自动化测试方法,该方法利用版本管理工具以及持续集成工具,实现了脚本自动编译、自动运行并记录测试结果,提升了测试的自动化水平;首都师范大学团队提出了一种面向ROS的差分模糊测试方法,该方法能够精准找出ROS不同版本功能包中的漏洞;北京计算机技术及应用研究所团队提出了一种基于依赖要素比对的国产操作系统兼容性测试方法,该方法对依赖要素进行了分级,并通过比对两个操作系统依赖要素的一致性获得操作系统兼容性测试结果。

在开发语言方面,目前国内实时操作系统主要支持C和C++,相比国外主流产品,国内产品对于Python、JAVA、RUST等语言的支持较为欠缺。同时,面向机器人等专用领域,缺乏完备的上层仿真和辅助设计工具,导致设计和调试时间长、控制算法和控制策略等现有成果难以充分利用等问题仍然存在。结合嵌入式系统的复杂化和规模化趋势,自动的开发配置和测试验证、离线仿真开发等成为重要发展方向,可以有效提高开发效率。

四、工业实时操作系统发展趋势

(一)轻量化趋势

随着RTOS应用更加广泛和深入,系统规模及复杂程度显著增加,为系统灵活性、可靠性、可维护性以及硬件要求等各方面带来挑战,要求RTOS以更精简的结构实现更多的功能集合。同时,用户对RTOS的可裁剪性需求更加显著,通过构件的“即插即用”,实现基于硬件环境和应用环境的灵活裁剪和配置,从而降低硬件开销,提升系统运行效率及可靠性。RTOS轻量化灵活部署的实现离不开强开放性的支持,RTlinux、μClinux等基于Linux内核开发的嵌入式实时操作系统具有开放源代码优势,可利用Linux先进的微内核体系,实现层次结构的灵活裁剪和便利的系统调试。同时,Linux生态积累了丰富的资源,对应用程序开发的支持性较强,因而基于Linux的实时操作系统迅速发展,逐渐对传统嵌入式实时操作系统形成有力竞争。

(二)虚拟化及云化趋势随着计算机技术的不断发展,主流的处理器架构已经从单核处理器过渡到了多核处理器,基于多核的硬件平台正在迅速发展和广泛应用。多核系统中多个运算核心独立运行,每个核心上的任务以共享的方式使用缓存、内存等系统资源,相比于同样使用了并行任务计算模式的多处理器系统,共享部件可以提高硬件模块的利用效率,减少硬件数量。这种片上资源的互联提高了计算核心间的通信效率,也为实时操作系统资源使用和分配带来了更多挑战。伴随着这一技术趋势,嵌入式工业实时操作系统的虚拟化进程正在加速,通过采用虚拟化技术来对不同子系统的功能进行隔离,从而允许多个嵌入式系统在单个硬件之上的系统管理程序中运行。此外,在工业互联网等场景的应用推动了工业实时操作系统的云化发展,如将工业控制中对时间敏感的控制过程放至云端、边缘端进行集中管理,使控制过程之间的交互与合作更加便利,降低了系统成本,具有较高的应用价值。

(三)跨平台移植及网络化应用嵌入式RTOS开发过程中一大困难是代码可重用性差,实时操作系统升级替代过程中涉及大量现有软件的移植甚至重新开发,已有的工作成果得不到充分利用,造成资源的严重浪费,因此相关标准化工作越来越引发重视。操作系统相关应用的快速发展同样对系统的自身性能提出了更高要求,单一处理器芯片的计算机系统已不能很好地满足复杂实时应用系统的需求。基于X86、ARM、MIPS、C-SKY、PPC、RISC-V架构的不同硬件平台以及龙芯处理器、飞腾处理器等国产硬件将得到更加广泛地应用,而RTOS也将更加注重跨平台兼容性,以改善嵌入式软件复用能力,提高系统的可移植性、可扩展性。同时,随着互联网技术的快速发展,工业实时操作系统将更加易于移植和联网,基于配备的标准网络通信接口,提供TCP、UDP等协议支持,以及统一的MAC访问层接口,便于连接各种移动计算设备。

五、总结

RTOS广泛应用于各类关键场景,且相较于传统软件单品,更需要通过建设丰富的软、硬件生态,进一步满足广泛连接和多样化负载的需求。在此背景下,统一而规范的接口和基础设施是代码移植和复用的前提,也是各种软硬件协同合作的基础,可使终端用户在同一平台上累积和复用软件的使用习惯和相关经验。国产RTOS应通过强化多方协作补齐短板,加强系统的可用性、可靠性、可控性。一是加强关键共性技术研究,推动RTOS内核在高可信、高可用、强实时等方面的技术发展;二是共建开放产品生态平台,丰富通用及行业中间件生态,推动软硬件适配,完善集成化、可调试化的设计开发环境及工具集支持;三是强化质量标准支撑保障,发展数据模型、接口及管理评价标准,提升第三方测评能力,加强开源风险防控,推动工业实时操作系统规范化、安全化发展。

文章来源于:《新型工业化》

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

目标检测标签分配策略,难样本挖掘策略

在目标检测任务中,样本的划分对于模型的性能具有至关重要的影响。其中,正样本指的是包含目标物体的图像或区域,而负样本则是不包含目标物体的图像或区域。然而,在负样本中,有一部分样本由于其与正样本在特征上的相似性…

开启虚拟机时出现此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态怎么解决

问题描述 虚拟机安装完成后,点击开启此虚拟机弹出系统提示 原因分析: Intel VT-x 处于禁用状态,需要开启。 解决方案: 以联系小新笔记本电脑为例,进入BIOS界面,将Intel Virtual Technology设置成Enabl…

在不同操作系统中搭建Python编程环境

1 在不同操作系统中搭建Python编程环境 1.1 在Linux系统中搭建Python编程环境 1. 检查Python版本 在你的系统中运行应用程序Terminal(如果你使用的是Ubuntu,可按Ctrl Alt T),打开一个终端窗口。为确定是否安装了Python&…

SpringBoot实现邮箱验证

目录 1、开启邮箱IMAP/SMTP服务,获取授权码 2、相关代码 1、使用配置Redis(用于存储验证码,具有时效性) 2、邮箱依赖和hutool(用于随机生成验证码) 3、配置Redis和邮箱信息 4、开启Redis服务 5、编写发送…

广东智慧公厕管理系统哪家好@光明源

随着城市发展和人民生活水平的提高,智慧公厕作为城市公共卫生设施的重要组成部分,受到了越来越多城市管理者的重视。在广东,智慧公厕管理系统的选择成为了一个备受关注的话题。那么,在广东,到底哪家智慧公厕管理系统比…

某程旅行安全工程师一面

一、自我介绍 阿吧阿吧,不多说了 二、两段实习经历,看你在南京中孚数据安全部做实习生,你能大概讲一下做什么的吗 当时做的是一个隐写溯源项目,是我们实验室跟南京中孚那边共同合作的。主要是针对电子文档信息泄露,…

牛市来临,模块化赛道可能会出现下个以太坊?

市场专家普遍预测,2024年将成为加密货币市场迎来新一轮牛市的关键时刻。研究人员将下一次比特币(BTC)减半以及2024年现货BTC ETF(交易所交易基金)的可能性视为推动下一次牛市的潜在因素。这一牛市的可能爆发有望吸引大…

C# Web应用调用EXE文件的一些实践

目录 需求 范例运行环境 可执行文件的设计 调用可执行文件方法 RunExecuteFile RunShellExecuteFile 方法的区别 WEB调用举例 小结 需求 最近同事使用Python开发了一款智能文字转语音的程序,经讨论部署在WINDOWS环境服务器下,因此需要生成目标…

C语言函数实现冒泡排序

前言 今天我们来看看怎么使用函数的方式实现冒泡排序吧&#xff0c;我们以一个数组为例arr[] {9,8,7,6,5,4,3,2,1,0},我们将这个数组通过冒泡排序的方式让他变为升序吧。 代码实现 #include<stdio.h> void bubble_sort(int arr[], int sz) {int i 0;for (i 0;i < s…

如何使用GraphQL和Apollo构建一个宝可梦应用

宝可梦是一个由视频游戏、动画系列与电影、交换卡牌游戏以及其他相关媒体组成的日本媒体特许经营权。 在本文中&#xff0c;我们将使用一个宝可梦GraphQL API&#xff0c;该API提供有关不同宝可梦的数据。 我们将使用Apollo和GraphQL来处理数据获取&#xff0c;以及React来构…

数据库之DCL操作(用户、访问权限。)

DCL英文全称是Data control language(数据控制语言)&#xff0c;用来管理数据库用户、控制数据库的访问权限。 1.管理用户 1.1查询用户 select * from mysql.user; 其中 Host代表当前用户访问的主机&#xff0c;如果为localhost&#xff0c;仅代表只能够在当前本机访问&…

git上传到本地仓库

摘要&#xff1a;本地初始化init仓库&#xff0c;进行pull和push&#xff1b;好处是便于利用存储设备进行git备份 git init --bare test.git 随便到一个空的目录下git clone 然后使用git上传 把git仓库删除之后再clone一次验证一下是否上传成功&#xff1a; 如果在ubantu上面没…

嵌入式面向对象学习 RT-Thread I/O 设备管理框架 设备驱动层 案例测试

嵌入式面向对象 RT-Thread I/O 设备管理框架 设备驱动层 注&#xff1a;本文介绍性内容转载于《RT-Thread记录&#xff08;十、全面认识 RT-Thread I/O 设备模型&#xff09;》 注&#xff1a; 本次使用的开发板 &#xff1a; ​ 兆易创新GD32F407VET6开发板 ​ 雅特力科技…

c++的学习之路:7、类和对象(3)

目录 一、初始化列表 二、static成员 三、友元 四、内部类 五、匿名对象 六、类和对象的思维导图 一、初始化列表 初始化列表&#xff1a;以一个冒号开始&#xff0c;接着是一个以逗号分隔的数据成员列表&#xff0c;每个"成员变量"后面跟一个放在括号中的初始…

求m和n的最大公约数(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int remainder 1;int m 0;int n 0;int middle 0;//提示用户&#xff1b;printf("请输入整数m和n的值&#xff…

辅助PC端教程

使用谷歌浏览器打开京东,并登录好账号进入到 https://home.jd.com/ ,在根据下面操作 更多工具 - 开发者工具,会有一个窗口打开,选择network,点击XHR

撸代码时,有哪些习惯一定要坚持?

我从2011年开始做单片机开发&#xff0c;一直保持以下撸代码的习惯。 1.做好代码版本管理 有些人&#xff0c;喜欢一个程序干到底&#xff0c;直到实现全部的产品功能&#xff0c;我以前做51单片机的项目就是这样。 如果功能比较多的产品&#xff0c;我不建议这样做&#xff0…

编译原理实验2(自上而下语法分析)

一、实验目的 给出 PL/0 文法规范&#xff0c;要求编写 PL/0 语言的语法分析程序。通过设计、编制、调试一个典型的自上而下语法分析程序&#xff0c;实现对词法分析程序所提供的单词序列进行语法检查和结构分析&#xff0c;进一步掌握常用的语法分析方法。选择有代表性的语法…

一款轻量、干净的 Vue 后台管理框架

开始之前 在开始介绍之前我想谈谈为什么要自己做一个后台管理&#xff0c;我知道很多人都用一些开源的后台管理项目&#xff0c;这些老前辈有很多亮点值得学习&#xff0c;但是存在的一些问题同样不可忽视&#xff0c;我认为很多开发者会被困扰(仅代表个人观点) 技术栈老旧不升…

面试(03)————多线程和线程池

一、多线程 1、什么是线程?线程和进程的区别? 2、创建线程有几种方式 &#xff1f; 3、Runnable 和 Callable 的区别&#xff1f; 4、如何启动一个新线程、调用 start 和 run 方法的区别&#xff1f; 5、线程有哪几种状态以及各种状态之间的转换&#xff1f; 6、线程…