CN106227613B - Linux下“生产者-消费者”模型的改进方法 - Google Patents

Linux下“生产者-消费者”模型的改进方法 Download PDF

Info

Publication number
CN106227613B
CN106227613B CN201610623007.8A CN201610623007A CN106227613B CN 106227613 B CN106227613 B CN 106227613B CN 201610623007 A CN201610623007 A CN 201610623007A CN 106227613 B CN106227613 B CN 106227613B
Authority
CN
China
Prior art keywords
module
producer
buffer zone
consumer
deadlock
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
Application number
CN201610623007.8A
Other languages
English (en)
Other versions
CN106227613A (zh
Inventor
秦龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Gui Fei Technology Co ltd
Original Assignee
Chongqing Gui Fei Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing Gui Fei Technology Co Ltd filed Critical Chongqing Gui Fei Technology Co Ltd
Priority to CN201610623007.8A priority Critical patent/CN106227613B/zh
Publication of CN106227613A publication Critical patent/CN106227613A/zh
Application granted granted Critical
Publication of CN106227613B publication Critical patent/CN106227613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明介绍了一种Linux下“生产者‑消费者”模型的改进方法,它包括生产者模块、消费者模块、观察者模块和缓冲区模块,所述生产者模块向缓冲区模块输入数据,消费者模块从缓冲区模块读出数据,观察者模块分别监测生产者模块和消费者模块是否出现不能被唤醒的情况,并进行相应处理。本发明的模型中,引入了观察者模块,能够解决现有模型中不能被唤醒的情况,从而解决死锁的情况,并且改进后的模型能用于各种情况,即使偶尔突发性数据情况也能健壮运行,真正保证嵌入式软件的健壮性,确保嵌入式产品的质量;而且还具有读和写死锁标志的引入和处理,能够连续正常运行。

Description

Linux下“生产者-消费者”模型的改进方法
技术领域
本发明涉及一种Linux下“生产者-消费者”模型的改进方法,属于通信技术领域。
背景技术
UNIX下的通信应用软件设计时,“生产者-消费者模型”应用非常普遍,并且非常稳定。基于Linux的嵌入式应用中,“生产者-消费者”模型同样也得到大量的应用。一般生产者模块用于接收来自的数据,将数据放入到缓冲区模块里,消费者模块从缓冲区模块里取数据进行分析处理,模型如图1所示。由于生产者模块和消费者模块处理速度不同,因此需要防止数据的脏读脏写。为了防止脏读脏写,一般采用互斥锁和条件变量来实现,通过图2所示的左图知道,生产者先将写互斥锁锁定,只能由本模块对缓冲区模块进行写操作。生产者模块判断缓冲区模块是否已满,如果已满的情况下,则进入条件等待,直到被唤醒,直到可以写入数据为止。如果缓冲区模块未满的情况下,则进行数据写入。指针前移,条件变量通知消费者模块有数据可读,写互斥解锁,完成一次完整的数据生产。如果模型退出,则退出生产者模块,否则进行循环处理。消费者模块同样才采用互斥锁和条件变量来实现,防止数据的脏读,图2的右图为具体的实现流程。通过图2的右图知道,消费者模块先将读互斥锁锁定,只能由本模块对缓冲区模块进行读操作。消费者模块判断缓冲区模块是否为空,如果为空的情况下,则进入条件等待,直到被唤醒,直到有可读的数据为止。如果缓冲区模块不为空的情况下,则进行数据读取。指针前移,条件变量通知生产者模块可以写入数据,读互斥解锁,完成一次完整的数据消费。如果模型退出,则退出消费者模块,否则进行循环处理。
但是,当生产者模块不生产数据时,则消费者模块会处于等待。如果生产者模块不是周期性生产数据时,即偶尔突发性的生产数据,则生产者模块通知消费者模块会出现消费者模块不能被正常唤醒的情况,从而造成死锁。同样也存在生产者模块不能被唤醒而造成死锁的情况。由此可见,嵌入式Linux下的多模块通信应用时,“生产者-消费者”模型存在死锁的情况。
发明内容
针对现有技术中的上述不足,本发明的主要目的在于解决现目前的“生产者-消费者”模型会出现死锁的问题,而提供一种能够不间断运行的Linux下“生产者-消费者”模型的改进方法。
本发明的技术方案:Linux下“生产者-消费者”模型的改进方法,其特征在于,包括生产者模块、消费者模块、观察者模块和缓冲区模块,所述生产者模块向缓冲区模块输入数据,缓冲区模块向消费者模块输出数据,观察者模块分别监测生产者线程和消费者线程是否出现不能被唤醒的情况,并进行相应处理;
所述生产者模块在模型启动后,将清空写死锁标志,然后向缓冲区模块输入写互斥锁锁定信号,然后判断缓冲区模块是否数据已满,如果缓冲区模块内数据已满,则设置写死锁标志,然后进入等待状态,在等待状态时判断是否接收到唤醒通知信号,如果未接收到唤醒通知信号,则继续设置写死锁标志并进入等待状态,如果接收到唤醒通知信号,则返回判断缓冲区模块是否数据已满;如果判断缓冲区模块内数据未满,则向缓冲区模块内输入数据,此时缓冲区模块内的指针前移,缓冲区模块内的条件变量通知消费者模块有数据可读,然后生产者模块向缓冲区模块内输入写互斥锁解锁信号;然后生产者模块判断模型是否退出,若模型退出,则生产者模块退出,若模型未退出,则生产者模块返回清空写死锁标志,然后进入下一个循环;
所述消费者模块在模型启动后,将清空读死锁标志,然后向缓冲区模块输入读互斥锁锁定信号,然后判断缓冲区模块是否数据已空,如果缓冲区模块内数据已空,则设置读死锁标志,然后进入等待状态,在等待状态时判断是否接收到唤醒通知信号,如果未接收到唤醒通知信号,则继续设置读死锁标志并进入等待状态,如果接收到唤醒通知信号,则返回判断缓冲区模块是否数据已空;如果判断缓冲区模块内数据未空,则从缓冲区模块内读出数据,此时缓冲区模块内的指针前移,缓冲区模块内的条件变量通知生产者模块可写入数据,然后消费者模块向缓冲区模块内输入读互斥锁解锁信号;然后消费者模块判断模型是否退出,若模型退出,则消费者模块退出,若模型未退出,则消费者模块返回向缓冲区模块输入读互斥锁锁定信号,然后进入下一个循环;
所述观察者模块在模型启动后,进入周期检测状态,然后判断消费者模块内读死锁标志是否被设置,若消费者模块内设置了读死锁标志,则向消费者模块发送释放读条件变量广播信号,若消费者模块内未设置读死锁标志,则进一步判断生产者模块内写死锁标志是否被设置,若生产者模块内设置了写死锁标志,则向生产者模块发送释放写条件变量广播信号,若生产者模块内未设置写死锁标志,则返回到周期检测状态,进入下一个检测周期。
本发明中,只要观察者模块检测到任一模块不能被唤醒,则观察者模块会主动向所有模块发送对应的条件变量通知信号,从而使得对应的模块被唤醒,解决死锁的问题。为了解决检测是否死锁问题,需要改进生产者模块和消费者模块,因此本发明在生产者模块和消费者模块中都增加了死锁标志处理问题。
相对于现有技术,本发明具有以下有益效果:
1、本发明的“生产者-消费者”模型中,引入了观察者模块,能够解决现有“生产者-消费者”模型中不能被唤醒的情况,从而解决死锁的情况,并且改进后的模型能用于各种情况,即使偶尔突发性数据情况也能健壮运行,真正保证嵌入式软件的健壮性,确保嵌入式产品的质量。
2、本发明的改进的生产者模块的实现方法中,具有写死锁标志的引入和处理;而消费者模块的实现方法中,具有读死锁标志的引入和处理,在观察者模块的实现方法中,具有读写死锁标志的检测,向相关模块广播条件变量的释放信号,因此它能够连续正常运行。
附图说明
图1为现有的“生产者-消费者”模型结构示意图。
图2为现有的“生产者-消费者”模型工作流程图。
图3为本发明改进方法的模型结构示意图。
图4为本发明改进方法中生产者模块的工作流程图。
图5为本发明改进方法中消费者模块的工作流程图。
图6为本发明改进方法中观察者模块的工作流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步说明。
如图3、图4、图5和图6所示,本发明的一种Linux下“生产者-消费者”模型的改进方法,包括生产者模块、消费者模块、观察者模块和缓冲区模块,所述生产者模块向缓冲区模块输入数据,消费者模块从缓冲区模块读出数据,观察者模块分别监测生产者模块和消费者模块是否出现不能被唤醒的情况,并进行相应处理。
所述生产者模块在模型启动后,将清空写死锁标志,这里的写死锁标志是用于告知生产者模块处于锁死状态,清空写死锁标志后生产者模块开始正常工作,然后生产者模块向缓冲区模块输入写互斥锁锁定信号,这里写互斥锁锁定信号是用于向缓冲区模块指定生产者模块是唯一的输入数据来源,然后判断缓冲区模块是否数据已满,如果缓冲区模块内数据已满,则设置写死锁标志,然后进入等待状态,在等待状态时判断是否接收到唤醒通知信号(需要说明的是,这里的唤醒通知信号即下文所述的释放写条件变量广播信号,该信号由观察者模块发送),如果未接收到唤醒通知信号,则继续设置写死锁标志并进入等待状态,如果接收到唤醒通知信号,则返回判断缓冲区模块是否数据已满;如果判断缓冲区模块内数据未满,则向缓冲区模块内输入数据,此时缓冲区模块内的指针前移,缓冲区模块内的条件变量通知消费者模块有数据可读,然后生产者模块向缓冲区模块内输入写互斥锁解锁信号,这里的写互斥锁解锁信号是用于解除生产者模块是唯一的输入数据的指定;然后生产者模块判断模型是否退出,若模型退出,则生产者模块退出,若模型未退出,则生产者模块返回清空写死锁标志,然后进入下一个循环。可以看出,生产者模块在循环的开始处清空写死锁标志,在等待状态前设置写死锁的标志。如果生产者模块不能被唤醒,则写死锁标志就会一直被设置,如果生产者模块能被唤醒,并且进行后续的操作,则进入下一次循环时,写死锁标志就会被清空。
所述消费者模块在模型启动后,将清空读死锁标志,这里的读死锁标志是用于告知消费者模块处于锁死状态,清空读死锁标志后消费者模块开始正常工作,然后消费者模块向缓冲区模块输入读互斥锁锁定信号,这里读互斥锁锁定信号是用于向缓冲区模块指定消费者模块是唯一的读取数据模块,然后判断缓冲区模块是否数据已空,如果缓冲区模块内数据已空,则设置读死锁标志,然后进入等待状态,在等待状态时判断是否接收到唤醒通知信号(需要说明的是,这里的唤醒通知信号即下文所述的释放读条件变量广播信号,该信号由观察者模块发送),如果未接收到唤醒通知信号,则继续设置读死锁标志并进入等待状态,如果接收到唤醒通知信号,则返回判断缓冲区模块是否数据已空;如果判断缓冲区模块内数据未空,则从缓冲区模块内读出数据,此时缓冲区模块内的指针前移,缓冲区模块内的条件变量通知生产者模块可写入数据,然后消费者模块向缓冲区模块内输入读互斥锁解锁信号,这里的读互斥锁解锁信号是用于解除消费者模块是唯一的读取数据的指定;然后消费者模块判断模型是否退出,若模型退出,则消费者模块退出,若模型未退出,则消费者模块返回向缓冲区模块输入读互斥锁锁定信号,然后进入下一个循环。可以看出,消费者模块在循环的开始处清空读死锁标志,在等待状态前设置读死锁的标志。如果消费者模块不能被唤醒,则读死锁标志就会一直被设置,如果消费者模块能被唤醒,并且进行后续的操作,则进入下一次循环时,读死锁标志就会被清空。
需要说明的是,在说明书中,生产者模块和消费者模块中均有唤醒信号,这两个不同模块中的唤醒信号是不同的,在上文中已有描述,它们分别是观察者模块分别发送的唤醒对应模块的信号,虽然作用相同,但是分别是对应不同模块的,因此是两个不同信号。
所述观察者模块在模型启动后,进入周期检测状态,这里的检测周期根据需求而设定,然后观察者模块判断消费者模块内读死锁标志是否被设置,若消费者模块内设置了读死锁标志,则向消费者模块发送释放读条件变量广播信号(即上文所述的消费者模块内的唤醒信号,但此唤醒信号是专用于唤醒消费者模块),若消费者模块内未设置读死锁标志,则进一步判断生产者模块内写死锁标志是否被设置,若生产者模块内设置了写死锁标志,则向生产者模块发送释放写条件变量广播信号(即上文所述的生产者模块内的唤醒信号,但此唤醒信号是专用于唤醒生产者模块),若生产者模块内未设置写死锁标志,则返回到周期检测状态,进入下一个检测周期。本发明中,观察者模块则定期检测是否出现读或写死锁标志,如果发现读或写死锁标志,则向所有的模块广播相应的条件释放变量,使相应的模块被唤醒,从而解决死锁问题。
因此,可以看出,本发明中,观察者模块周期性检测死锁标志,一旦发现死锁标志,则广播相应条件变量的释放信号,从而唤醒不能被正常唤醒的标志,如果一次不能被唤醒,则循环到下一次再进行唤醒,直到被唤醒为止。这样就解决了锁死的问题。
需要说明的是,以上实施例仅用以说明本发明技术方案而非限制技术方案,尽管申请人参照较佳实施例对本发明作了详细说明,本领域的普通技术人员应当理解,那些对本发明技术方案进行的修改或者等同替换,不能脱离本技术方案的宗旨和范围,均应涵盖在本发明权利要求范围当中。

Claims (1)

1.Linux下“生产者-消费者”模型的改进方法,其特征在于,包括生产者模块、消费者模块、观察者模块和缓冲区模块,所述生产者模块向缓冲区模块输入数据,消费者模块从缓冲区模块读出数据,观察者模块分别监测生产者模块和消费者模块是否出现不能被唤醒的情况,并进行相应处理;
所述生产者模块在模型启动后,将清空写死锁标志,然后向缓冲区模块输入写互斥锁锁定信号,然后判断缓冲区模块是否数据已满,如果缓冲区模块内数据已满,则设置写死锁标志,然后进入等待状态,在等待状态时判断是否接收到唤醒通知信号,如果未接收到唤醒通知信号,则继续设置写死锁标志并进入等待状态,如果接收到唤醒通知信号,则返回判断缓冲区模块是否数据已满;如果判断缓冲区模块内数据未满,则向缓冲区模块内输入数据,此时缓冲区模块内的指针前移,缓冲区模块内的条件变量通知消费者模块有数据可读,然后生产者模块向缓冲区模块内输入写互斥锁解锁信号;然后生产者模块判断模型是否退出,若模型退出,则生产者模块退出,若模型未退出,则生产者模块返回清空写死锁标志,然后进入下一个循环;
所述消费者模块在模型启动后,将清空读死锁标志,然后向缓冲区模块输入读互斥锁锁定信号,然后判断缓冲区模块是否数据已空,如果缓冲区模块内数据已空,则设置读死锁标志,然后进入等待状态,在等待状态时判断是否接收到唤醒通知信号,如果未接收到唤醒通知信号,则继续设置读死锁标志并进入等待状态,如果接收到唤醒通知信号,则返回判断缓冲区模块是否数据已空;如果判断缓冲区模块内数据未空,则从缓冲区模块内读出数据,此时缓冲区模块内的指针前移,缓冲区模块内的条件变量通知生产者模块可写入数据,然后消费者模块向缓冲区模块内输入读互斥锁解锁信号;然后消费者模块判断模型是否退出,若模型退出,则消费者模块退出,若模型未退出,则消费者模块返回向缓冲区模块输入读互斥锁锁定信号,然后进入下一个循环;
所述观察者模块在模型启动后,进入周期检测状态,然后判断消费者模块内读死锁标志是否被设置,若消费者模块内设置了读死锁标志,则向消费者模块发送释放读条件变量广播信号,若消费者模块内未设置读死锁标志,则进一步判断生产者模块内写死锁标志是否被设置,若生产者模块内设置了写死锁标志,则向生产者模块发送释放写条件变量广播信号,若生产者模块内未设置写死锁标志,则返回到周期检测状态,进入下一个检测周期。
CN201610623007.8A 2016-08-02 2016-08-02 Linux下“生产者-消费者”模型的改进方法 Active CN106227613B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610623007.8A CN106227613B (zh) 2016-08-02 2016-08-02 Linux下“生产者-消费者”模型的改进方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610623007.8A CN106227613B (zh) 2016-08-02 2016-08-02 Linux下“生产者-消费者”模型的改进方法

Publications (2)

Publication Number Publication Date
CN106227613A CN106227613A (zh) 2016-12-14
CN106227613B true CN106227613B (zh) 2019-03-15

Family

ID=57536305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610623007.8A Active CN106227613B (zh) 2016-08-02 2016-08-02 Linux下“生产者-消费者”模型的改进方法

Country Status (1)

Country Link
CN (1) CN106227613B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153579B (zh) * 2017-04-21 2020-10-09 北京思特奇信息技术股份有限公司 一种进程间数据传递的方法和系统
CN109684186B (zh) * 2018-12-27 2022-06-10 长安大学 一种非侵入式的网络化嵌入式系统评测装置及评测方法
CN111182019B (zh) * 2019-08-08 2021-10-15 腾讯科技(深圳)有限公司 跨平台通信方法及装置、电子设备
CN111208985B (zh) * 2020-04-21 2020-07-28 南京云信达科技有限公司 基于生产者消费者模型的数据处理方法、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702231A (zh) * 2008-11-06 2010-05-05 威盛电子股份有限公司 绘图处理单元同步系统与方法
CN101861568A (zh) * 2007-09-17 2010-10-13 通用电气公司 用于交换数据的方法和系统
US8893134B2 (en) * 2011-04-13 2014-11-18 International Business Machines Corporation Locating bottleneck threads in multi-thread applications
CN104636182A (zh) * 2013-11-06 2015-05-20 国际商业机器公司 一种操作数据处理系统的方法、数据处理系统和处理器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101861568A (zh) * 2007-09-17 2010-10-13 通用电气公司 用于交换数据的方法和系统
JP5469066B2 (ja) * 2007-09-17 2014-04-09 ゼネラル・エレクトリック・カンパニイ データを交換する方法及びシステム
CN101702231A (zh) * 2008-11-06 2010-05-05 威盛电子股份有限公司 绘图处理单元同步系统与方法
US8893134B2 (en) * 2011-04-13 2014-11-18 International Business Machines Corporation Locating bottleneck threads in multi-thread applications
CN104636182A (zh) * 2013-11-06 2015-05-20 国际商业机器公司 一种操作数据处理系统的方法、数据处理系统和处理器

Also Published As

Publication number Publication date
CN106227613A (zh) 2016-12-14

Similar Documents

Publication Publication Date Title
CN106227613B (zh) Linux下“生产者-消费者”模型的改进方法
CN101877120B (zh) 支持多个绘图处理器的互动的方法与系统
Chen et al. Quantum discord of two-qubit X states
CN103412634B (zh) 一种soc芯片的mcu唤醒装置和方法
US7529956B2 (en) Granular reduction in power consumption
CN100527111C (zh) 一种片上dma电路及其实现方法
CN101702231A (zh) 绘图处理单元同步系统与方法
CN103765343B (zh) 用于连接待机的进程的挂起和/或节制
CN101261591A (zh) 多核dsp系统中自适应的任务调度方法
US8195975B2 (en) Semiconductor integrated circuit device and clock control method
CN103645794A (zh) 一种通过边沿检测电路实现睡眠模式唤醒的芯片及方法
CN106575221A (zh) 用于simd执行引擎的非结构化控制流的方法和设备
CN107566296B (zh) 接口设备和接口方法
CN102063749A (zh) 具有省电功能的安全监控系统及其省电方法
CN105404555A (zh) 医疗多线程共享资源分配处理方法及系统
CN101083704A (zh) 图像形成处理电路和图像形成设备
US5428756A (en) Pipelined computer with control of instruction advance
CN104133805A (zh) Atp车载设备中的数据同步方法与装置
CN106528092A (zh) 系统唤醒方法及装置
CN106656817A (zh) 降低tcam由读写引起查找冲突的方法
CN114363478B (zh) 信号处理单元、方法、加速单元、电子设备和片上系统
CN111327933A (zh) 设备唤醒方法、装置和电子设备
CN108303914A (zh) 一种多dsp嵌入式计算机系统的同步方法
CN117008538A (zh) Pc机+i/o接口数控系统g指令和开关量指令协同方法及装置
CN105430409A (zh) 一种基于计数器的流水控制方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 400037 moonlight village 7-12, new street, Dadukou District, Chongqing

Applicant after: Qin Long

Address before: 400037 No. 139 Fengtian Avenue, Shapingba District, Chongqing, 2, 17-4

Applicant before: Qin Long

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20190130

Address after: 400084 Yueguangcun 7-12, New Street, Dadukou District, Chongqing

Applicant after: Chongqing Gui Fei Technology Co.,Ltd.

Address before: 400037 moonlight village 7-12, new street, Dadukou District, Chongqing

Applicant before: Qin Long

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: An Improved Method for the Producer Consumer Model in Linux

Granted publication date: 20190315

Pledgee: Chongqing Rural Commercial Bank Co.,Ltd. Dadukou Branch

Pledgor: Chongqing Gui Fei Technology Co.,Ltd.

Registration number: Y2024500000015

PE01 Entry into force of the registration of the contract for pledge of patent right