CN109408226A - 数据处理方法、装置及终端设备 - Google Patents

数据处理方法、装置及终端设备 Download PDF

Info

Publication number
CN109408226A
CN109408226A CN201811092554.3A CN201811092554A CN109408226A CN 109408226 A CN109408226 A CN 109408226A CN 201811092554 A CN201811092554 A CN 201811092554A CN 109408226 A CN109408226 A CN 109408226A
Authority
CN
China
Prior art keywords
kernel state
user space
memory
access address
data
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.)
Pending
Application number
CN201811092554.3A
Other languages
English (en)
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.)
Shenzhen Transsion Communication Co Ltd
Original Assignee
Shenzhen Transsion Communication 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 Shenzhen Transsion Communication Co Ltd filed Critical Shenzhen Transsion Communication Co Ltd
Priority to CN201811092554.3A priority Critical patent/CN109408226A/zh
Publication of CN109408226A publication Critical patent/CN109408226A/zh
Pending legal-status Critical Current

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种数据处理方法、装置及终端设备。本发明提供的数据处理方法在用户态下调用内存分配函数分配内存;所述内存具有对应的用户态访问地址和内核态访问地址;根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写。该方法可减少用户态和内核态之间数据读写过程中的内存占用,简化了用户态和内核态的交互过程,减少了数据拷贝次数。

Description

数据处理方法、装置及终端设备
技术领域
本发明涉及数据处理技术,尤其涉及一种数据处理方法、装置及终端设备。
背景技术
操作系统中的应用程序可以运行在用户态或内核态,运行在用户态下的程序不能直接访问内核态下的数据,需要切换到内核态来完成相应的程序。
当运行在用户态的程序需要读取内核态下的数据时,可通过在用户态下调用用户态对应的内存分配函数以分配用户态的内存,并且通过系统调用进入内核态,在内核态下调用内核态对应内存分配函数以分配内核态下的内存,然后先将目标数据从源存储位置传输至内核态下的内存,再将该目标数据由内核态下的内存拷贝至用户态下的内存。当运行在用户态的程序需要向内核态写入数据时时,可通过调用用户态下的内存分配函数以分配用户态的内存,将数据拷贝至用户态的内存,并通过系统调用进入内核态,在内核态下调用内核态下的内存分配函数以分配内核态下的内存,并通过将数据由用户态的内存拷贝至内核态的内存,继而再将这些数据传输至内核态下的存储设备。
由于无论是用户态程序读取内核态下的数据,还是向内核态下写入数据,都需要在用户态和内核态各申请一次内存,两份内存用来维持相同的数据,造成了内存的浪费,同时也导致数据读写过程过于复杂,数据拷贝次数过多。
发明内容
本发明提供一种数据处理方法、装置及终端设备,以减少数据读写过程中的内存占用,简化数据读写过程。
本发明提供一种数据处理方法,包括:
在用户态下调用内存分配函数分配内存;所述内存具有对应的用户态访问地址和内核态访问地址;
根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写。
可选的,所述根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写,包括:
根据所述用户态访问地址,将第一数据写入所述内存中;
进入内核态,并在所述内核态下根据所述内核态访问地址从所述内存中读取所述第一数据。
可选的,所述方法还包括:
在所述内核态下,将所述第一数据写入所述内核态下的存储设备。
可选的,所述根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写,包括:
进入内核态,并在所述内核态下根据所述内核态访问地址将第二数据写入至所述内存;
进入用户态,并在所述用户态下根据所述用户态访问地址从所述内存中读取所述第二数据。
本发明还可提供一种数据处理装置,包括:
内存分配模块,用于在用户态下调用内存分配函数分配内存;所述内存具有对应的用户态访问地址和内核态访问地址;
数据读写模块,根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写。
可选的,所述数据读写模块包括:
第一拷贝单元,用于进入内核态,并在所述内核态下根据所述内核态访问地址将第二数据写入至所述内存;
第一访问单元,用于进入内核态,并在所述内核态下根据所述内核态访问地址从所述内存中读取所述第一数据。
可选的,所述数据读写模块还可包括:
第二拷贝单元,用于在所述内核态下,将所述第一数据写入所述内核态下的存储设备。
可选的,所述数据读写模块包括:
第三拷贝单元,用于由用户态进入内核态,并传入所述内核态地址;
第二访问单元,进入用户态,并在所述用户态下根据所述用户态访问地址从所述内存中读取所述第二数据。
本发明还可提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时上任一项所述的方法。
本发明还可提供一种终端设备,包括:
存储器和处理器,所述存储器和所述处理器连接;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器存储的程序指令,使得所述终端设备执行上任一项所述的方法。
本发明提供一种数据处理方法、装置及终端设备,其中,数据处理方法在用户态下调用内存分配函数分配内存;所述内存具有对应的用户态访问地址和内核态访问地址;根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写。该方法可通过内存分配函数得到分配的内存以及与该内存对应的用户态访问地址和内核态访问地址,并基于用户态访问地址和该内核态访问地址实现了用户态和内核态之间的数据读写基于该内存,从而减少了用户态和内核态之间数据读写过程中的内存占用,简化了用户态和内核态的交互过程,减少了数据拷贝次数。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的数据处理方法实施例一的流程图;
图2为本发明提供的数据处理方法实施例二的流程图;
图3为本发明提供的数据处理方法实施例三的流程图;
图4为本发明提供的数据处理装置实施例一的结构示意图;
图5为本发明提供的数据处理装置实施例二的结构示意图;
图6为本发明提供的数据处理装置实施例三的结构示意图;
图7为本发明提供的终端设备实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使得本发明下述各实施例提供的方案更清楚,先对本发明实施例所适用的终端设备的应用场景进行示例说明。
本发明下述各实施例所提供的数据处理方法、装置及终端设备,可适用于安装有预设操作系统的终端设备,该预设操作系统例如可以为安卓(Android)操作系统或者其他Linux操作系统。该终端设备所安装的该预设的操作系统通常可具有两个状态,即用户态和内核态。该预设操作系统处于内核态下,可对该终端设备所运行的应用程序所需的硬件资源及软件资源进行控制,以保障该应用程序的运行。在该预设操作系统处于用户态下,该终端设备上运行的应用程序,也称上层应用程序,可基于内核态所分配控制的软硬件资源进行运行。也就是说,该终端设备上所运行的应用程序必须依托于内核态分配的软硬件资源进行运行。
该内核态下所分配的硬件资源例如可包括中央处理器(Central ProcessingUnit,简称CPU)资源、存储资源、输入或输出(Input/Output,简称I/O)资源等。为了使应用程序在运行时,可访问到该内核态下所分配的上述硬件资源,在操作系统的内核态下,还可为该应用程序分配对应的软件资源,该软件资源例如可以为该应用程序访问上述硬件资源所需的应用程序接口(Application Programming Interface)、系统调用的接口等软件资源。其中,系统调用作为操作系统的最小功能单位,其本质上就是软件中断,也称软中断。对于不同的操作系统,所具有的系统调用的接口数可不同,以Linux操作系统为例,其不同版本的操作系统通常可提供240-260个系统调用的接口。
在实际应用中,应用程序的运行通常是在操作系统的用户态下进行,但在执行的某些指令时,可能需要调用对应的硬件资源,这便需要具有该硬件资源的访问权限才可执行,因此,便需要切换至操作系统的内核态下进行一些操作需要在内核权限下才能执行。例如在应用程序在过程中,需执行到某些执行需要从内核态的存储设备中读取数据,或者,向该内核态写入数据等操作下,便需要从用户态切换到内核态。
为方便应用程序的运行过程,在用户态和内核态之间的数据交互,本发明提供了下述各实施例提供的用户态和内核态之间的数据处理方法。
图1为本发明提供的数据处理方法实施例一的流程图。该数据处理方法可由安装有预设操作系统的终端设备通过软件和/或硬件的方式实现。如图1所示,本实施例的方法可以包括:
S101、在用户态下调用内存分配函数分配内存;该内存具有对应的用户态访问地址和内核态访问地址。
具体的,当运行在用户态下的程序,访问内核态下的数据时,可在用户态下调用内存分配函数进行内存申请,通过该内存分配函数分配该程序对应的内存并输出该内存对应的用户态访问地址和内核态访问地址。也就是说,内存通常具有一个物理地址如物理内存页地址,而该内存的物理地址对应两个虚拟地址,即用户态访问地址和内核态访问地址。
该访问内核态下的数据可以包括:从内核态下的存储设备中读取该内核态下的数据,和/或,向内核态下的存储设备写入数据。
示例地,该内存分配函数可以为malloc_direct函数,malloc_direct函数封装了系统直调函数sys_brk_direct函数。其中,malloc_direct函数基于分配函数malloc函数;系统直调函数sys_brk_direct基于系统调用函数sys_brk函数。该方法中,可通过调用系统直调函数sys_brk_direct函数进行内存申请,以分配物理内存页,即内存的物理地址。sys_brk_direct函数可实现立即分配物理内存页。
系统直调函数sys_brk_direct函数的输入可以为待分配的内存的大小,输出为该分配的物理地址对应的用户态访问地址以及内核态访问地址。由于malloc_direct函数封装了系统直调函数sys_brk_direct函数,因此在用户态下调用malloc_direct函数时,可以得到分配的内存以及该内存对应的用户态访问地址和内核态访问地址。
S102、根据该用户态访问地址和该内核态访问地址进行用户态和内核态之间的数据读写。
在完成了S101所述的内存分配后,用户态和内核态之间的数据读写操作,便可基于上述内存分配操作得到的内存以及该内存对应的用户态访问地址和内核态访问地址来进行。
具体的,在用户态下可根据用户态访问地址将需要操作的数据拷贝至该内存中,由于该用户态访问地址和该内核态访问地址指向同一内存,因此可在内核态下根据内核态访问地址访问该内存,并根据该内存所存储的数据,执行内核态下相应的操作。
通过系统调用进入内核态后,可根据内核态访问地址将需要操作的数据拷贝至该内存中,由于该用户态访问地址和该内核态访问地址指向同一内存,因此可在用户态下根据用户态访问地址访问该内存,并根据该内存所存储的数据执行用户态下的相应操作。
本实施例提供的数据处理方法包括在用户态下调用内存分配函数分配内存;该内存具有对应的用户态访问地址和内核态访问地址;根据该用户态访问地址和该内核态访问地址进行用户态和内核态之间的数据读写。该方法中,在用户态下所分配的内存对应的用户态访问地址和内核态访问地址,因而可基于用户态访问地址和该内核态访问地址实现了用户态和内核态之间的数据读写,无需在用户态和内核态下均分配内存,减少了内存的分配次数,从而减少了用户态和内核态之间数据读写过程中的内存占用,简化了用户态和内核态的交互过程,减少了数据拷贝次数。
基于图1所示的数据处理方法,当运行在用户态的程序向内核态写入数据时,本发明还可提供一种数据处理方法,图2为本发明提供的数据处理方法实施例二的流程图。如图2所示,本实施例的方法可以包括:
S201、在用户态下调用内存分配函数分配内存;该内存具有对应的用户态访问地址和内核态访问地址。
具体的,运行在用户态的程序向内核态写入数据时,可在用户态下调用内存分配函数进行内存申请,该内存分配函数可以分配内存并同时输出该内存对应的用户态访问地址和内核态访问地址。
示例地,该内存分配函数可以为malloc_direct函数,malloc_direct函数封装了系统直调函数sys_brk_direct函数。其中,malloc_direct函数基于分配函数malloc函数;系统直调函数sys_brk_direct函数基于系统调用函数sys_brk函数。该方法中,可通过调用系统直调函数sys_brk_direct函数进行内存申请,以分配物理内存页,即内存的物理地址。
系统直调函数sys_brk_direct函数的输入可以为待分配的内存的大小,输出为该分配的物理地址对应的用户态访问地址以及内核态访问地址。由于malloc_direct函数封装了系统直调函数sys_brk_direct函数,因此在用户态下调用malloc_direct函数时,可以得到分配的内存以及该内存对应的用户态访问地址和内核态访问地址。
S202、根据该用户态访问地址,将第一数据写入该内存中。
由于上述内存分配过程中已经得到了该内存,该内存具有对应的用户态访问地址,因此可以在用户态下,根据该用户态访问地址将第一数据写入该内存中,该第一数据为需要从用户态写入内核态的数据,也称待写入内核态的数据。
S203、进入内核态,并在内核态下根据该内核态访问地址从该内存中读取该第一数据。
该方法中,可在用户态程序的运行过程中,通过系统调用进入内核态,将上述内存分配中得到的内存所对应的内核态访问地址传递给内核态程序。由于该内核态访问地址和上述用户态访问地址所指向的均为上述内存,因此在内核态下,可以根据该内核态访问地址访问该内存,继而可在内核态程序运行过程中,从该内存中读取该内存所存储的该第一数据。
进一步地,当需要将该第一数据拷贝至该内核态下的存储设备时,还可在内核态下,根据该内核态访问地址访问该内存,将其中存储的该第一数据拷贝至该内核态下的存储设备。在该内核态程序的运行过程中,还可从该内核态下的存储设备中读取该内核态下的存储设备所存储的该第一数据。
本实施例提供的数据处理方法包括在用户态下调用内存分配函数分配内存;该内存具有对应的用户态访问地址和内核态访问地址;根据用户态访问地址,将第一数据写入内存中;进入内核态,并在内核态下根据内核态访问地址从内存中读取第一数据。该方法可在用户态下将待写入的数据根据用户态访问地址写入分配的内存中,在内核态下根据内核态访问地址访问该内存并读取该数据,实现了用户态向内核态下的数据写入,减少了从用户态程序向内核态程序写数据的过程中的内存的占用,简化了用户态向内核态写入数据时的交互过程,减少了数据拷贝的次数。
基于图1所示的数据处理方法,当运行在用户态的程序从内核态读取数据时,本发明还可提供一种数据处理方法。图3为本发明提供的数据处理方法实施例三的流程图。如图3所示,本实施例的方法可以包括:
S301、在用户态下调用内存分配函数分配内存;该内存具有对应的用户态访问地址和内核态访问地址。
具体的,当运行在用户态的程序从内核态读取数据时,可在用户态下调用内存分配函数进行内存申请,该内存分配函数可以分配内存并同时输出该内存对应的用户态访问地址和内核态访问地址。
示例地,该内存分配函数可以为malloc_direct函数,malloc_direct函数封装了系统直调函数sys_brk_direct函数。其中,malloc_direct函数基于分配函数malloc函数;系统直调函数sys_brk_direct函数基于系统调用函数sys_brk函数。该方法中,可通过调用系统直调函数sys_brk_direct函数进行内存申请,以分配物理内存页,即内存的物理地址。
系统直调函数sys_brk_direct函数的输入可以为待分配的内存的大小,输出为该分配的物理地址对应的用户态访问地址以及内核态访问地址。由于malloc_direct函数封装了系统调用sys_brk_direct函数,因此在用户态下调用malloc_direct函数时,可以得到分配的内存以及该内存对应的用户态访问地址和内核态访问地址。
S302、进入内核态,并在内核态下根据该内核态访问地址将第二数据写入该内存。
该方法中,可在用户态程序的运行过程中,通过系统调用进入内核态,将上述内存分配过程中得到的内存所对应的内核态访问地址传递给内核态程序。在内核态下,便可根据该内核态访问地址将第二数据拷贝至上述内存中,该第二数据为用户态需要从内核态读取的数据。
S303、进入用户态,并在用户态下根据该用户态访问地址从该内存中读取该第二数据。
由于上述内存分配得到的该用户态访问地址和该内核态访问地址所指向的均为上述内存,因此在用户态下,可以根据该用户态访问地址访问该内存,继而可在用户态程序运行过程中,从该内存中读取该内存所存储的该第二数据。
本实施例提供的数据处理方法包括在用户态下调用内存分配函数分配内存;该内存具有对应的用户态访问地址和内核态访问地址;进入内核态,并在内核态下根据内核态访问地址将第二数据写入至内存;进入用户态,并在用户态下根据用户态访问地址从内存中读取第二数据。该方法可在内核态下将待读取的数据根据内核态访问地址拷贝至内存中,在用户态下根据相应的用户态访问地址访问该内存并读取该数据,实现了从用户态读取内核态下的数据,减少了用户态程序从内核态程序读取数据过程中的内存占用,简化了用户态读取内核态下的数据的过程,减少了数据拷贝的次数。
本发明还可提供一种数据处理方法的实施例,该实施例可以实现从用户态向内核态写入数据以及从用户态读取内核态的数据。
具体的,在用户态下,可根据步骤S101、S201或者S301任一所示的方法进行内存申请,得到分配的物理内存以及该内存对应的用户态访问地址和内核态访问地址。
根据步骤S202所示的方法,在用户态下根据该用户态访问地址将第三数据写入该内存中,该第三数据为待写入内核态的数据。
进一步地,还可根据步骤S203所示的方法,在用户态程序的运行过程中通过系统调用进入内核态,将上述内存分配中得到的内存所对应的内核态访问地址传递给内核态程序,根据该内核态访问地址访问该内存,从该内存中读取该内存所存储的第三数据。
该实施例提供的方法,还可根据S302所示的方法,在内核态下,根据该内核态访问地址将第四数据拷贝至上述内存中,该第四数据为用户态需要从内核态读取的数据。根据步骤S303所示的方法,在用户态下,根据该用户态访问地址访问该内存,从该内存中读取该内存所存储的该第四数据。
本实施例提供的数据处理方法,实现了从用户态向内核态写入数据以及从用户态读取内核态的数据,减少了用户态与内核态之间数据读写的内存占用,简化了用户态与内核态之间数据读写的过程,减少了数据拷贝的次数。
图4为本发明提供的数据处理装置实施例一的结构示意图,如图4所示,本实施例的装置可以包括:内存分配模块41和数据读写模块42。
其中,内存分配模块41用于在用户态下调用内存分配函数分配内存;该内存具有对应的用户态访问地址和内核态访问地址。
数据读写模块42用于根据该用户态访问地址和该内核态访问地址进行用户态和内核态之间的数据读写。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在图4所示的实施例的基础上,本发明还可提供一种数据处理装置。图5为本发明提供的数据处理装置实施例二的结构示意图。如图5所示,该数据处理装置包括内存分配模块41和数据读写模块42。
内存分配模块41用于在用户态下调用内存分配函数分配内存;该内存具有对应的用户态访问地址和内核态访问地址。
数据读写模块42可以包括第一拷贝单元43、第一访问单元44。
第一拷贝单元43用于根据该用户态访问地址,将第一数据写入该内存中。
第一访问单元44用于进入内核态,并在内核态下根据该内核态访问地址从该内存中读取该第一数据。
可选的,数据读写模块42还可包括第二拷贝单元45。
第二拷贝单元45用于在内核态下,将该第一数据拷贝至内核态下的存储设备。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在图4所示的实施例的基础上,本发明还可提供一种数据处理装置。图6为本发明提供的数据处理装置实施例三的结构示意图。如图6所示,该数据处理装置包括内存分配模块41和数据读写模块42。
内存分配模块41用于在用户态下调用内存分配函数分配内存;该内存具有对应的用户态访问地址和内核态访问地址。
数据读写模块42可以包括第三拷贝单元46和第二访问单元47。
第三拷贝单元46用于进入内核态,并在内核态下根据该内核态访问地址将第二数据写入至该内存。
第二访问单元47用于进入用户态,并在用户态下根据该用户态访问地址从该内存中读取该第二数据。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明还可提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现图1-3任一所示的实施例所述的方法。
本发明还可提供一种终端设备,图7为本发明提供的终端设备实施例的结构示意图。如图7所示,终端设备70包括:存储器71和处理器72;存储器71和处理器72连接。
存储器71用于存储程序指令。
处理器72用于调用存储器71存储的程序指令,使得该终端设备执行图1-3任一所示的实施例所述的方法。其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
在用户态下调用内存分配函数分配内存;所述内存具有对应的用户态访问地址和内核态访问地址;
根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写。
2.根据权利要求1所述的方法,其特征在于,所述根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写,包括:
根据所述用户态访问地址,将第一数据写入所述内存中;
进入内核态,并在所述内核态下根据所述内核态访问地址从所述内存中读取所述第一数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述内核态下,将所述第一数据写入所述内核态下的存储设备。
4.根据权利要求1所述的方法,其特征在于,所述根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写,包括:
进入内核态,并在所述内核态下根据所述内核态访问地址将第二数据写入至所述内存;
进入用户态,并在所述用户态下根据所述用户态访问地址从所述内存中读取所述第二数据。
5.一种数据处理装置,其特征在于,包括:
内存分配模块,用于在用户态下调用内存分配函数分配内存;所述内存具有对应的用户态访问地址和内核态访问地址;
数据读写模块,用于根据所述用户态访问地址和所述内核态访问地址进行用户态和内核态之间的数据读写。
6.根据权利要求5所述的装置,其特征在于,所述数据读写模块包括:
第一拷贝单元,用于根据所述用户态访问地址,将第一数据写入所述内存中;
第一访问单元,用于进入内核态,并在所述内核态下根据所述内核态访问地址从所述内存中读取所述第一数据。
7.根据权利要求5所述的装置,其特征在于,所述数据读写模块包括:
第二拷贝单元,用于在所述内核态下,将所述第一数据写入所述内核态下的存储设备。
8.根据权利要求5所述的装置,其特征在于,所述数据读写模块包括:
第三拷贝单元,用于进入内核态,并在所述内核态下根据所述内核态访问地址将第二数据写入至所述内存;
第二访问单元,用于进入用户态,并在所述用户态下根据所述用户态访问地址从所述内存中读取所述第二数据。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4任一项所述的方法。
10.一种终端设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器连接;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器存储的程序指令,使得所述终端设备执行权利要求1-4任一项所述的方法。
CN201811092554.3A 2018-09-19 2018-09-19 数据处理方法、装置及终端设备 Pending CN109408226A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811092554.3A CN109408226A (zh) 2018-09-19 2018-09-19 数据处理方法、装置及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811092554.3A CN109408226A (zh) 2018-09-19 2018-09-19 数据处理方法、装置及终端设备

Publications (1)

Publication Number Publication Date
CN109408226A true CN109408226A (zh) 2019-03-01

Family

ID=65466035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811092554.3A Pending CN109408226A (zh) 2018-09-19 2018-09-19 数据处理方法、装置及终端设备

Country Status (1)

Country Link
CN (1) CN109408226A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377436A (zh) * 2019-07-12 2019-10-25 清华大学 持久性内存的数据存储访问方法、设备及装置
CN112463662A (zh) * 2020-12-16 2021-03-09 福州创实讯联信息技术有限公司 一种用户态控制i2c设备的方法与终端
CN116107764A (zh) * 2023-04-03 2023-05-12 阿里云计算有限公司 数据处理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034544A (zh) * 2012-12-04 2013-04-10 杭州迪普科技有限公司 一种用户态与内核态共享内存的管理方法和装置
CN105677597A (zh) * 2014-11-20 2016-06-15 中兴通讯股份有限公司 数据写入方法及装置
CN107729159A (zh) * 2017-09-29 2018-02-23 华为技术有限公司 一种共享内存的地址映射方法及装置
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034544A (zh) * 2012-12-04 2013-04-10 杭州迪普科技有限公司 一种用户态与内核态共享内存的管理方法和装置
CN105677597A (zh) * 2014-11-20 2016-06-15 中兴通讯股份有限公司 数据写入方法及装置
CN107729159A (zh) * 2017-09-29 2018-02-23 华为技术有限公司 一种共享内存的地址映射方法及装置
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377436A (zh) * 2019-07-12 2019-10-25 清华大学 持久性内存的数据存储访问方法、设备及装置
CN112463662A (zh) * 2020-12-16 2021-03-09 福州创实讯联信息技术有限公司 一种用户态控制i2c设备的方法与终端
CN112463662B (zh) * 2020-12-16 2024-04-05 福州创实讯联信息技术有限公司 一种用户态控制i2c设备的方法与终端
CN116107764A (zh) * 2023-04-03 2023-05-12 阿里云计算有限公司 数据处理方法及系统
CN116107764B (zh) * 2023-04-03 2023-09-26 阿里云计算有限公司 数据处理方法及系统

Similar Documents

Publication Publication Date Title
US11720993B2 (en) Dynamic kernel memory space allocation
Wulf et al. C. mmp: A multi-mini-processor
US8151275B2 (en) Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS
CN103198450B (zh) 图像形成装置
JP5085180B2 (ja) 情報処理装置およびアクセス制御方法
CN107368379B (zh) 面向EVP的跨Guest OS进程间通信方法及系统
CN109408226A (zh) 数据处理方法、装置及终端设备
CN102667714B (zh) 支持访问由操作系统环境外的资源提供的功能的方法和系统
CN110781016B (zh) 一种数据处理方法、装置、设备及介质
CN112955880B (zh) 用于处理片上系统中的地址解码的装置和方法
CN112667354B (zh) 计算机可读取存储介质、虚拟化寄存器装置及访问该装置的方法
CN104239096A (zh) Android系统实现安全数据区的方法及装置
US20150205738A1 (en) Controlling direct memory access page mappings
US8910136B2 (en) Generating code that calls functions based on types of memory
CN114302040A (zh) 多应用共享单一摄像头的方法及相关产品
CN114691300A (zh) 一种虚拟机实例的热迁移方法
EP1760580A1 (en) Processing operation information transfer control system and method
CN115629882A (zh) 多进程中的内存的管理方法
CN115576716A (zh) 一种基于多进程的内存管理方法
CN114296951A (zh) 一种进程间数据共享的方法、系统、终端以及存储介质
US6295587B1 (en) Method and apparatus for multiple disk drive access in a multi-processor/multi-disk drive system
KR20190069134A (ko) 응용 프로그램간 파일 공유 장치 및 방법
CN116069451B (zh) 一种虚拟化方法、装置、设备、介质、加速器及系统
US9251100B2 (en) Bitmap locking using a nodal lock
US10649809B2 (en) Fork-aware smart pointers

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190301

RJ01 Rejection of invention patent application after publication