CN108153597B - 一种linux设备管理装置及方法 - Google Patents
一种linux设备管理装置及方法 Download PDFInfo
- Publication number
- CN108153597B CN108153597B CN201711403775.3A CN201711403775A CN108153597B CN 108153597 B CN108153597 B CN 108153597B CN 201711403775 A CN201711403775 A CN 201711403775A CN 108153597 B CN108153597 B CN 108153597B
- Authority
- CN
- China
- Prior art keywords
- real
- time
- read
- data
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于设备控制系统技术领域,公开了一种LINUX设备管理模型及方法,基于LINUX基础设备模型,通过在库函数层增加控制类读写函数和信息类读写函数,在内核程序层的第一调度程序中添加第一目标选择程序,以及在内核程序层的第二调度程序中添加第二目标选择程序,并增加实时数据缓冲区,能够同时兼顾实时性和非实时性的设备管理模型。
Description
技术领域
本发明属于设备控制系统技术领域,尤其涉及一种LINUX设备管理装置及方法。
背景技术
各主流操作系统,如LINUX操作系统,在实现主机对设备的操作方面一般提供两种方式,一类为字符设备,另一类为块设备(流设备)。对设备控制操作,一般要求具有实时性,传递数据量小,此时通常把设备定义为字符设备;设备间信息交互,通常涉及较多的数据,属于非实时性应用场景,通常把设备定义为块设备。
目前,在LINUX下,由于主机对设备操作方式要么基于字符设备,要么基于块设备(流设备),这种限制使得一种设备同时应用于实时性控制领域和非实时性信息交互领域的实现还比较困难。因此,当需要开发同时涉及两个领域的应用时,至少需要提供两种设备,一方面,这极大的增加了成本投入,其次需要开发两套独立的驱动程序支持,增加了操作系统及其设备驱动程序的复杂度。
现有将一种设备同时兼顾实时性控制领域和非实时性信息交互领域时,通常不太关注控制类应用的实时性,或者,由于非实时类应用数据量较少,对实时类控制指令数据的传输影响较少,但是当存在大量非实时类应用数据量传输的场合,控制类应用的实时性得不到满足。
发明内容
针对上述问题,本发明的目的在于提供一种LINUX设备管理模型及方法,基于LINUX基础设备模型,进行局部改进,能够同时兼顾实时性和非实时性的设备管理模型。
为达到上述目的,本发明采用如下技术方案予以实现。
技术方案一:
一种LINUX设备管理模型,所述LINUX设备管理模型依次包含应用程序层、库函数层、内核程序层、驱动程序层以及物理层;
其中,所述应用程序层包含信息类应用模块、控制类应用模块以及打包解析类服务模块;所述信息类应用模块用于传送非实时信息类数据,所述控制类应用模块用于传送实时控制类指令;
所述库函数层包含读写函数模块;所述读写函数模块用于对所述非实时信息类数据和所述实时控制类指令进行读写操作;
所述内核程序层包含第一调度模块、数据缓冲区以及第二调度模块;所述数据缓冲区为非实时数据缓冲区,所述第一调度模块用于在所述数据缓冲区中写入所述非实时信息类数据和所述实时控制类指令,所述第二调度模块用于在所述数据缓冲区中读出所述非实时信息类数据和所述实时控制类指令;
所述LINUX设备管理模型的库函数层还包含:控制类读写函数模块和信息类读写函数模块;所述控制类读写函数模块用于对所述实时控制类指令进行读写操作,所述信息类读写函数模块用于对所述非实时信息类数据进行读写操作;
所述LINUX设备管理模型内核程序层的第一调度模块中还包含:第一目标选择模块,所述第一目标选择模块用于对所述非实时信息类数据和所述实时控制类指令进行解析,分离实时控制类指令和非实时信息类数据,并设置实时控制类指令的优先级高于非实时信息类数据;
所述LINUX设备管理模型内核程序层的第二调度模块中还包含:第二目标选择模块,所述第二目标选择模块用于对所述非实时信息类数据和所述实时控制类指令进行解析,分离实时控制类指令和非实时信息类数据,并设置实时控制类指令的优先级高于非实时信息类数据;
所述LINUX设备管理模型内核程序层的数据缓冲区还包含:实时数据缓冲区。
本发明技术方案一的特点和进一步的改进为:
所述控制类读写函数模块优先对实时控制类指令进行读写操作,并对读写的实时控制类指令增加报文的前缀信息,所述前缀信息用于标识所述控制类读写函数模块读写的数据为实时控制类指令;
所述信息类读写函数模块对非实时信息类数据进行读写操作,并对读写的非实时信息类数据增加报文的前缀信息,所述前缀信息用于标识所述信息类读写函数模块读写的数据为非实时信息类数据。
技术方案二:
一种LINUX设备管理方法,所述LINUX设备管理方法应用于如技术方案一所述的LINUX设备管理模型,信息类应用模块采用信息类读写函数模块向LINUX设备的物理层传送数据,控制类应用模块采用控制类读写函数模块向LINUX设备的物理层传送数据;所述LINUX设备管理方法包括如下步骤:
步骤1,所述信息类读写函数模块获取信息类应用模块发送的非实时信息类数据,对所述非实时信息类数据加上报文的前缀信息1,并调用LINUX设备管理模型库函数层中的读写函数模块;
所述控制类读写函数模块获取控制类应用模块发送的实时控制类指令,对所述实时控制类指令加上报文的前缀信息0,并调用LINUX设备管理模型库函数层中的读写函数模块;
步骤2,第一调度模块中的第一目标选择模块根据报文的前缀信息,优先将实时控制类指令写入实时数据缓冲区,然后将非实时信息类数据写入非实时数据缓冲区;
步骤3,第二调度模块中的第二目标选择模块根据报文的前缀信息,优先将实时控制类指令从实时数据缓冲区读出,然后将非实时信息类数据从非实时数据缓冲区读出。
本发明技术方案的优点为:(1)充分挖掘WIFI设备的通信优点和性能,基于本发明改进的LINUX设备管理模型,在同一设备上能同时兼顾实时性和非实时性;(2)即使在存在大量非实时信息传递的场景下,也能保证控制指令的实时传递,实现传统LINUX设备管理模型实现不了的需求;(3)基于本发明改进的LINUX设备管理模型提供的库函数层,能极大的简化要同时兼顾实时性和非实时性的应用程序的开发;(4)在设备智能化成为主流趋势的今天,本发明改进的LINUX设备管理模型为各个行业各种智能设备的开发,特别是具有大量非实时信息传递和实时性控制要求的智能设备,提供了一种新的思路。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的传统LINUX设备管理体系结构示意图;
图2为本发明实施例提供的改进LINUX设备管理模型示意图;
图3为本发明实施例提供的数据格式示意图;
图4为本发明实施例提供的双向控制、双向信息传递的系统结构示意图;
图5为本发明实施例提供的单向控制、双向信息传递的系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在LINUX下,要实现非实时大量信息传输,只能基于块设备(流设备结构)。在如图1所示传统的LINUX设备管理体系结构下,基于WIFI要实现非实时类应用(又称信息类应用)和实时类应用(又称控制类应用),只能基于块设备(流设备结构)模型,只能通过在应用程序层进行控制。应用程序层既要实现信息类应用,又要实现控制类应用,两类应用的要求不同,要在同一设备模型中实现,就出现了两个问题:
1)应用程序中要实现一整套打包、解析服务程序,即为各类信息交互设计不同格式的报文,定义统一的解析方法,并提供接口给两类应用。此类打包、解析的服务程序会极大的消耗资源,在数据量大时易造成控制类应用的实时性能较差。
2)控制类应用一般传递和接收数据量极少的指令,在这些数据进入操作系统层时,由于信息类数据和控制类数据混在一起运行,两类数据属于相同的优先级,对操作系统调度器而言,控制类数据要求的实时性体现不出来。当信息类数据较少时,信息类应用对控制类应用实时性的影响较小,基本能保证系统近乎实时,但是当信息类数据量大时,将会使得控制类应用完全被拖累,不再实时。
综上,传统LINUX设备体系结构不能很好的实现同时兼顾实时性和非实时性的设备控制系统。
本发明技术方案提出的改进设备管理模型(IMPM)是在传统的设备管理模型的基础上改进。由于字符设备只支持少量字符数据的传输,不适合非实时大量信息传输,因此,要同时实现非实时大量信息传输和实时控制指令的传输,在LINUX基本特性不变的前提下,只能改进基于块设备(流设备)结构。本发明实施例提供的改进设备管理模型IMPM如图2所示。所做的改进工作如下:
(1)应用层在库函数发布针对信息类应用和控制类应用的读写函数库。控制类读写函数分别是WriteControlData和ReadControlData,信息类读写函数分别是WriteMessageData和ReadMessageData,如表1所示。
表1发布的库函数
序号 | 函数名 | 描述 |
1 | WriteControlData | 发出控制类应用的控制指令数据 |
2 | ReadControlData | 接收控制类应用的控制指令数据 |
3 | WriteMessageData | 发出非实时信息数据 |
4 | ReadMessageData | 接收非实时信息数据 |
应用程序层的控制类应用和信息类应用将分别使用这两套接口函数,将控制类指令和信息类数据向底层传送。由于库函数实现两类接口分离,在应用层的打包和解析服务程序将不再需要开发,简化了应用中的逻辑处理。WriteControlData、ReadControlData、WriteMessageData、ReadMessageData实现与基本库函数的Write/Read操作连接。基本库函数的Write/Read逻辑不需要做任何处理,只是由WriteControlData、ReadControlData、WriteMessageData、ReadMessageData传递的数据增加报文的前缀信息,如图3所示。这个前缀信息用于标识数据的分类。
(2)在LINUX操作系统内核的调度程序中,嵌入目标选择(解析)程序,并在内核中建立实时数据缓冲区。实时数据缓冲区用于与非实时数据缓冲区相分离。在调度程序执行读写缓冲区操作时,首先由目标选择(解析)程序对数据进行报文级解析,即通过识别数据的报文前缀,将实时数据和非实时数据相分离,并进入各自的环形缓冲区。当有大量非实时信息传输的场景下,非实时数据缓冲区将有大量数据,而实时数据缓冲区只有少量数据。目标选择(解析)程序将优先保证实时数据缓冲区的数据得到处理,只有当实时数据缓冲区读写结束,目标选择(解析)程序才能选择处理非实时数据区的数据。这样,保证了控制类应用的传输需求得到及时执行,实现了实时性。当有大量非实时信息传输的场景下,效果尤为明显。
示例性的,本发明实施例提供的改进设备管理模型(IMPM)可应用于如下两个场景:
场景一:双向控制、双向信息传递的系统结构,如图4所示。
在WIFI通信的场景下双向控制、双向信息传递的系统结构(由于WiFi的特性,本发明的技术方案最适合WiFi这种短距离、高速、信息量大、数据稳定、无物理连接的场景,当然,不排除有其他场景),要求实现信息交互和控制指令传递的两个AP(Access Point,WiFi接入点)具有相同的体系结构(即IMPM)。这种场景通常两端的系统是相同的,即既是控制设备,也是非控制设备,又可执行非实时信息双向传输。在LINUX下,基于IMPM进行两个AP上应用程序的开发。部署是要求AP设备部署基于IMPM的LINUX,并部署基于WriteControlData、ReadControlData、WriteMessageData、ReadMessageData的库函数。
场景二:单向控制、双向信息传递的系统结构,如图5所示。
这种场景通常由主机侧与被控制设备侧组成。在LINUX下,被控制设备侧基于IMPM进行AP上应用程序的开发。被部署的AP要部署基于IMPM的LINUX系统,并部署基于WriteControlData、ReadControlData、WriteMessageData、ReadMessageData的库函数。主机侧也可按照IMPM模型部署。但由于考虑兼顾传统应用程序,即在库函数层不变的前提下,来完成传统应用程序改动最小的开发,主机侧可不部署基于IMPM的LINUX系统。这对于保证传统应用程序的移植具有重要意义。只要将传统应用程序中的打包、解析类服务程序改进为满足IMPM模型的处理程序即可,此时,改进打包、解析类处理程序需按照数据增加报文的前缀信息的格式,对传输的数据进行打包或接收的数据进行解析,这增加了打包、解析类处理程序的开发复杂性。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (3)
1.一种LINUX设备管理装置,所述LINUX设备管理装置依次包含应用程序层、库函数层、内核程序层、驱动程序层以及物理层;
其中,所述应用程序层包含信息类应用模块、控制类应用模块以及打包解析类服务模块;所述信息类应用模块用于传送非实时信息类数据,所述控制类应用模块用于传送实时控制类指令;
所述库函数层包含读写函数模块;所述读写函数模块用于对所述非实时信息类数据和所述实时控制类指令进行读写操作;
所述内核程序层包含第一调度模块、数据缓冲区以及第二调度模块;所述数据缓冲区为实时数据缓冲区和非实时数据缓冲区,所述第一调度模块用于在所述实时数据缓冲区中写入所述实时控制类指令和在所述非实时数据缓冲区中写入所述非实时信息类数据,所述第二调度模块用于在所述数据缓冲区中读出所述非实时信息类数据和所述实时控制类指令;
其特征在于,
所述LINUX设备管理装置的库函数层还包含:控制类读写函数模块和信息类读写函数模块;所述控制类读写函数模块用于对所述实时控制类指令进行读写操作,所述信息类读写函数模块用于对所述非实时信息类数据进行读写操作;
所述LINUX设备管理装置内核程序层的第一调度模块中还包含:第一目标选择模块,所述第一目标选择模块用于对所述非实时信息类数据和所述实时控制类指令进行解析,分离实时控制类指令和非实时信息类数据,并设置实时控制类指令的优先级高于非实时信息类数据;
所述LINUX设备管理装置内核程序层的第二调度模块中还包含:第二目标选择模块,所述第二目标选择模块用于对所述非实时信息类数据和所述实时控制类指令进行解析,分离实时控制类指令和非实时信息类数据,并设置实时控制类指令的优先级高于非实时信息类数据。
2.根据权利要求1所述的一种LINUX设备管理装置,其特征在于,所述控制类读写函数模块优先对实时控制类指令进行读写操作,并对读写的实时控制类指令增加报文的前缀信息,所述前缀信息用于标识所述控制类读写函数模块读写的数据为实时控制类指令;
所述信息类读写函数模块对非实时信息类数据进行读写操作,并对读写的非实时信息类数据增加报文的前缀信息,所述前缀信息用于标识所述信息类读写函数模块读写的数据为非实时信息类数据。
3.一种LINUX设备管理方法,所述LINUX设备管理方法应用于如权利要求1所述的LINUX设备管理装置,其特征在于,信息类应用模块采用信息类读写函数模块向LINUX设备的物理层传送数据,控制类应用模块采用控制类读写函数模块向LINUX设备的物理层传送数据;所述LINUX设备管理方法包括如下步骤:
步骤1,所述信息类读写函数模块获取信息类应用模块发送的非实时信息类数据,对所述非实时信息类数据加上报文的前缀信息1,并调用LINUX设备管理装置库函数层中的读写函数模块;
所述控制类读写函数模块获取控制类应用模块发送的实时控制类指令,对所述实时控制类指令加上报文的前缀信息0,并调用LINUX设备管理装置库函数层中的读写函数模块;
步骤2,第一调度模块中的第一目标选择模块根据报文的前缀信息,优先将实时控制类指令写入实时数据缓冲区,然后将非实时信息类数据写入非实时数据缓冲区;
步骤3,第二调度模块中的第二目标选择模块根据报文的前缀信息,优先将实时控制类指令从实时数据缓冲区读出,然后将非实时信息类数据从非实时数据缓冲区读出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711403775.3A CN108153597B (zh) | 2017-12-22 | 2017-12-22 | 一种linux设备管理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711403775.3A CN108153597B (zh) | 2017-12-22 | 2017-12-22 | 一种linux设备管理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108153597A CN108153597A (zh) | 2018-06-12 |
CN108153597B true CN108153597B (zh) | 2021-08-03 |
Family
ID=62464398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711403775.3A Active CN108153597B (zh) | 2017-12-22 | 2017-12-22 | 一种linux设备管理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108153597B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614221B (zh) * | 2018-10-30 | 2024-01-09 | 北京技德系统技术有限公司 | 一种实时操作系统的应用框架及其方法 |
CN112612523B (zh) * | 2020-12-17 | 2022-06-03 | 威胜集团有限公司 | 一种嵌入式设备驱动系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101268445A (zh) * | 2005-09-21 | 2008-09-17 | 英特尔公司 | 用于分区的多处理器系统的实时线程服务 |
CN104794003A (zh) * | 2015-02-04 | 2015-07-22 | 汉鼎信息科技股份有限公司 | 一种整合实时和非实时模式的大数据分析系统 |
CN105573763A (zh) * | 2015-12-23 | 2016-05-11 | 电子科技大学 | 一种支持rtos的嵌入式系统建模方法 |
CN106452563A (zh) * | 2016-11-25 | 2017-02-22 | 中国航空无线电电子研究所 | 基于通信卫星的无人机数据链通用接入系统 |
CN107256360A (zh) * | 2017-06-07 | 2017-10-17 | 努比亚技术有限公司 | 文件加密方法、移动终端及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101567795B1 (ko) * | 2013-11-08 | 2015-11-11 | 숭실대학교산학협력단 | 멀티프로세서 기반 모션 제어 소프트웨어의 파이프라인 스케줄링을 위한 방법 및 장치 |
-
2017
- 2017-12-22 CN CN201711403775.3A patent/CN108153597B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101268445A (zh) * | 2005-09-21 | 2008-09-17 | 英特尔公司 | 用于分区的多处理器系统的实时线程服务 |
CN104794003A (zh) * | 2015-02-04 | 2015-07-22 | 汉鼎信息科技股份有限公司 | 一种整合实时和非实时模式的大数据分析系统 |
CN105573763A (zh) * | 2015-12-23 | 2016-05-11 | 电子科技大学 | 一种支持rtos的嵌入式系统建模方法 |
CN106452563A (zh) * | 2016-11-25 | 2017-02-22 | 中国航空无线电电子研究所 | 基于通信卫星的无人机数据链通用接入系统 |
CN107256360A (zh) * | 2017-06-07 | 2017-10-17 | 努比亚技术有限公司 | 文件加密方法、移动终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108153597A (zh) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2530599B1 (en) | Method and mobile terminal for realizing audio transmission | |
CN106919494B (zh) | 安卓应用日志的实现方法和装置 | |
US20140019574A1 (en) | Remote Direct Memory Access Socket Aggregation | |
US20240106754A1 (en) | Load Balancing Method for Multi-Thread Forwarding and Related Apparatus | |
CN110380992A (zh) | 报文处理方法、装置及网络流量采集设备 | |
CN108153597B (zh) | 一种linux设备管理装置及方法 | |
CN102402401A (zh) | 一种磁盘io请求队列调度的方法 | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
CN105160018A (zh) | 一种复制/粘贴图片的方法、装置和系统 | |
CN115408108A (zh) | 一种云环境下的i/o卸载方法、设备、系统及存储介质 | |
CN113296979B (zh) | 一种虚幻引擎与外部程序的数据通信方法 | |
CN108829530B (zh) | 一种图像处理方法及装置 | |
CN112114982B (zh) | 基于VxWorks系统的多任务间共享内存的管理方法 | |
CN110990169B (zh) | 一种利用共享内存进行进程间字节流通信的结构及方法 | |
CN107911317B (zh) | 一种报文调度方法及装置 | |
CN102170401B (zh) | 一种数据的处理方法和设备 | |
CN111190746A (zh) | 基于VxWorks653多核分区实时操作系统及通信方法 | |
CN108140005B (zh) | 在存储器系统协议中提供文件信息的系统及方法 | |
CN116917876A (zh) | 一种数据处理方法及装置 | |
CN108107750B (zh) | 一种电力系统仿真的实时io数据处理方法及系统 | |
CN103294560A (zh) | 跨进程传递字符串的方法及装置 | |
CN105653477A (zh) | 一种基于双口ram的fpga内部硬核与软核通信的方法 | |
Ayaz et al. | Data management platform for smart orchestration of decentralized and heterogeneous vehicular edge networks | |
CN111200594B (zh) | 接收数据的方法、装置、数据接收设备和存储介质 | |
CN103605622B (zh) | 一种传输数据的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |