CN109462663B - Method for limiting system resource occupation, voice interaction system and storage medium - Google Patents

Method for limiting system resource occupation, voice interaction system and storage medium Download PDF

Info

Publication number
CN109462663B
CN109462663B CN201811584384.0A CN201811584384A CN109462663B CN 109462663 B CN109462663 B CN 109462663B CN 201811584384 A CN201811584384 A CN 201811584384A CN 109462663 B CN109462663 B CN 109462663B
Authority
CN
China
Prior art keywords
sub
subprocess
main process
calling
system resources
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
CN201811584384.0A
Other languages
Chinese (zh)
Other versions
CN109462663A (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.)
China Innovation Technology Co Ltd
Volkswagen China Investment Co Ltd
Original Assignee
Volkswagen China Investment Co Ltd
Mobvoi Innovation 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 Volkswagen China Investment Co Ltd, Mobvoi Innovation Technology Co Ltd filed Critical Volkswagen China Investment Co Ltd
Priority to CN201811584384.0A priority Critical patent/CN109462663B/en
Publication of CN109462663A publication Critical patent/CN109462663A/en
Application granted granted Critical
Publication of CN109462663B publication Critical patent/CN109462663B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Telephonic Communication Services (AREA)

Abstract

The embodiment of the invention relates to the technical field of computers, and particularly discloses a method for limiting system resource occupation, a voice interaction system and a storage medium, wherein the method comprises the following steps: receiving a sub-process calling request sent by a main process; distributing a subprocess for the main process according to the subprocess calling request, and limiting the range of calling system resources by the subprocess; and establishing communication connection between the main process and the sub-process so that the main process can send the operation instruction and the operation parameters to the sub-process, calling system resources by the sub-process within a range, and calling a preset program from a pre-established database to execute the operation instruction according to the operation parameters. By the mode, the sub-process is guaranteed to complete self tasks, and excessive system resources cannot be occupied wirelessly. The situation that malicious program codes occupy system resources without limitation is avoided. And system resources of other processes are used to the maximum extent, so that the feasibility of using the system by a large number of users is ensured.

Description

Method for limiting system resource occupation, voice interaction system and storage medium
Technical Field
The embodiment of the invention relates to the technical field of computers, in particular to a method for limiting system resource occupation, a voice interaction system and a storage medium.
Background
On the voice open platform, non-working personnel can develop program codes by themselves and are called to run in the voice interaction system. Moreover, the codes of a plurality of developers are all executed on the unified host, and the allocation of system resources is not specified clearly. Once there are cases where developers are writing malicious code, such as the following:
while(true){
i++;
}
then the system resources of the system will be occupied by the program code and circulate wirelessly, resulting in other program codes in the voice open platform executing no too much or no system resources at all. Therefore, the operation instruction of the consumer using the voice interaction system can not be executed, the working efficiency is low, and the system resource can be infinitely wasted.
Therefore, how to effectively control the effective use of system resources and avoid the system resources from being occupied by malicious program codes written by users without limitation becomes a technical problem to be solved by the application.
Disclosure of Invention
Therefore, embodiments of the present invention provide a method, a voice interaction system, and a storage medium for limiting system resource occupation, so as to solve a problem in the prior art that a malicious program may occupy system resources without limitation because the voice interaction system cannot effectively control occupation of the system resources.
In order to achieve the above object, an embodiment of the present invention provides the following:
in a first aspect of embodiments of the present invention, there is provided a method for limiting system resource occupation, including: receiving a sub-process calling request sent by a main process, wherein the calling request at least comprises an operation instruction and an operation parameter;
distributing a subprocess for a main process according to a subprocess calling request, and limiting the range of calling system resources by the subprocess;
and establishing communication connection between the main process and the sub-process so that the main process can send the operation instruction and the operation parameters to the sub-process, calling system resources by the sub-process within a range, and calling a preset program from a pre-established database to execute the operation instruction according to the operation parameters.
In an embodiment of the present invention, the sub-process call request is a call request generated by processing voice information after the main process receives the voice information input by the user.
In another embodiment of the present invention, the sub-process invocation request includes a Linux Cgroups parameter, and the range of the sub-process invocation system resource is defined according to the sub-process invocation request, which specifically includes:
and determining an upper limit value of the system resource called by the subprocess according to the Linux Cgroups parameter.
In another embodiment of the present invention, the main process sends the operation instruction and the operation parameter to the sub-process, specifically:
and sending the operation instruction and the operation parameter to the sub-process in a socket request mode.
In a second aspect of the embodiments of the present invention, there is provided a voice interaction system, where a receiving unit is configured to receive a sub-process invocation request sent by a host process, where the sub-process invocation request at least includes an operation instruction and an operation parameter;
the processing unit is used for allocating a subprocess to the main process according to the subprocess calling request and limiting the range of calling system resources by the subprocess;
and the communication unit is used for establishing communication connection between the main process and the sub-process so that the main process can send the operation instruction and the operation parameter to the sub-process, the sub-process calls the system resource within the range, and the preset program is called from the pre-established database to execute the operation instruction according to the operation parameter.
In an embodiment of the present invention, the sub-process call request is a call request generated by processing voice information after the main process receives the voice information input by the user.
In another embodiment of the present invention, the sub-process call request includes a Linux Cgroups parameter, and the processing unit is specifically configured to determine an upper limit value of a system resource called by the sub-process according to the Linux Cgroups parameter.
In another embodiment of the present invention, the main process sends the operation instruction and the operation parameter to the sub-process, specifically:
and sending the operation instruction and the operation parameter to the sub-process in a socket request mode.
In a third aspect of embodiments of the present invention, there is provided a voice interaction system, the system comprising: a processor and a memory;
the memory is used for storing one or more program instructions;
one or more program instructions are executed by the processor to perform any of the method steps of a method of limiting system resource utilization as described above.
In a fourth aspect of embodiments of the present invention, there is provided a computer storage medium having one or more program instructions embodied therein for use by a speech interactive system to perform any one of the method steps of a method of limiting system resource occupation as described above.
According to the embodiment of the invention, the following advantages are provided: after the main process sends a sub-process calling request to the system, the system allocates a sub-process to the main process. However, the sub-process is not allowed to use the system resource without limitation, but the range of the sub-process calling the system resource is limited according to the preset rule. Therefore, the subprocess can be guaranteed to complete the task of the subprocess, and meanwhile, excessive system resources cannot be occupied without limitation. Therefore, the situation that the malicious program codes occupy system resources without limitation is avoided. And system resources of other processes are used to the maximum extent, so that the feasibility of using the system by a large number of users is ensured.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below. It should be apparent that the drawings in the following description are merely exemplary, and that other embodiments can be derived from the drawings provided by those of ordinary skill in the art without inventive effort.
Fig. 1 is a flowchart illustrating a method for limiting system resource occupation according to an embodiment of the present invention;
FIG. 2 is a schematic structural diagram of a voice interaction system according to another embodiment of the present invention;
fig. 3 is a schematic structural diagram of another voice interaction system according to another embodiment of the present invention.
Detailed Description
The present invention is described in terms of particular embodiments, other advantages and features of the invention will become apparent to those skilled in the art from the following disclosure, and it is to be understood that the described embodiments are merely exemplary of the invention and that it is not intended to limit the invention to the particular embodiments disclosed. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Embodiment 1 of the present invention provides a method for limiting system resource occupation, which is specifically shown in fig. 1. The method can be applied to a voice interaction system, and the technical scheme of the application can be explained in more detail. An application scenario in which, when a user uses the intelligent speech recognition device, the intelligent speech recognition device can perform corresponding operations according to speech information of the user through speech input is described as an example.
Step 110, receiving a sub-process calling request sent by a main process, wherein the sub-process calling request at least comprises an operation instruction and an operation parameter.
After the system in the intelligent speech recognition device collects the speech information of the user, a main process (hereinafter, described as a master process) is inevitably allocated to process the speech information, and then a subprocess calling request is generated. The specific processing may include corresponding processing procedures such as speech recognition and semantic understanding, and then the execution intention of the user is determined. And determining a calling request generated after a required sub-process (hereinafter, described as a slave process) completes some related processing according to the execution intention of the user. For example, when the master process receives a voice input by a user, after the voice recognition and the intention recognition are performed, a code segment corresponding to a function is determined according to the intention of the user. The code segment is program code written in advance by a developer into the voice open platform. The voice open platform stores the program code written by the developer to realize a certain function and the configuration persistence in the database according to the request of the developer, and sends the program code and the configuration persistence to the voice interaction system. After a master process in the voice interaction system generates a sub-process calling request, a sample process calling request is sent to the system, and the calling request can definitely explain an operation instruction and an operation parameter which need to be executed by the sample process.
For example, the voice message input by the user is "please help me inquire about weather information of sunrise, 12 months, 10 days. Then, the master process may determine that the user intention is "query weather" after performing corresponding processing by reading the voice information, and the parameters thereof are "location: shenyang; time: 12 months and 10 days ".
Inquiring weather requires to acquire an inquiry result after establishing communication connection with other applications (for example, an application program capable of acquiring weather forecast) through a salve process. Then, the system is first required to assign a sample process to the master process, i.e., perform step 120.
And step 120, distributing the subprocess to the main process according to the subprocess calling request.
And step 130, limiting the range of the system resource called by the subprocess according to the subprocess calling request.
In particular, as described in the background, since some programs in the system are written by the user, they can also be called and executed by the slave process in the system. In order to prevent the malicious program from being invoked and executed by the slave process without limiting the occupation of system resources, a large amount of resources are wasted. The range of system resources that can be called by the slave process can be set in advance according to a preset rule.
For example, in one embodiment, the sub-process call request further includes a Linux Cgroups parameter. The system determines the upper limit value of the system resource that can be occupied by the slave process. Specifically, the Linux Cgroups parameter is specified by the staff of the voice open platform. The Linux Cgroups parameter is a resource control mechanism provided by a Linux operating system, and the maximum resource quantity which can be obtained by the Slave process is limited by the specified parameter actually, wherein the maximum resource quantity comprises a CPU (central processing unit) time ratio, network bandwidth and the like. Therefore, the system can limit the upper limit value of the system resource which can be tied by the slave process according to the Linux Cgroups parameter, so that the system resource is prevented from being occupied by a malicious program without limitation, and the condition that other processes have no system resource to use is avoided.
The use of the limited resource is not the final purpose of the present application, and the final purpose of the present application is to avoid that the system resource is not limited and maliciously occupied, and it is also necessary to ensure that the user's requirement is completely executed. Thus, the method further comprises a step 140 of establishing a communication connection between the main process and the sub-process.
The master process sends the operation instruction and the operation parameter to the slave process in the form of a socket request. And calling system resources by the slave process within the range, and calling a preset program from a database pre-established in the voice interaction system to execute an operation instruction according to the operation parameters. For example, the above-mentioned slave process establishes a communication connection with an application program that can obtain a weather forecast), and then obtains a query result.
And feeding back the query result to the master process. So that the master process performs other processes. For example, the execution results are collected and converted into voice, and then the voice is fed back to the user through the intelligent voice recognition device. When the system controls the occupation of system resources, the situation that the slave process calls the system resources can be controlled through a system interface related to Linux CGroups.
According to the method for limiting system resource occupation provided by the embodiment of the invention, after the main process sends the sub-process calling request to the system, the system allocates a sub-process for the main process. However, the sub-process is not allowed to use the system resource without limitation, but the range of the sub-process calling the system resource is limited according to the preset rule. Therefore, the subprocess can be guaranteed to complete the task of the subprocess, and meanwhile, excessive system resources cannot be occupied without limitation. Therefore, the situation that the malicious program codes occupy system resources without limitation is avoided. And system resources of other processes are used to the maximum extent, so that the feasibility of using the system by a large number of users is ensured.
Corresponding to the foregoing embodiment 1, an embodiment 2 of the present invention further provides a voice interaction system, specifically as shown in fig. 2, where the system includes: a receiving unit 201, a processing unit 202 and a communication unit 203.
A receiving unit 201, configured to receive a sub-process invocation request sent by a main process;
the processing unit 202 is configured to allocate a subprocess to the main process according to the subprocess call request, and limit a range in which the subprocess calls system resources;
the communication unit 203 is configured to establish a communication connection between the main process and the sub-process, so that the main process sends the operation instruction and the operation parameter to the sub-process, and the sub-process invokes the system resource within the range and invokes a preset program from a pre-established database to execute the operation instruction according to the operation parameter.
Optionally, the sub-process call request is a call request generated by processing the voice information after the main process receives the voice information input by the user.
Optionally, the subprocess call request includes a Linux Cgroups parameter, and the processing unit 202 is specifically configured to determine an upper limit value of a system resource called by the subprocess according to the Linux Cgroups parameter.
Optionally, the main process sends the operation instruction and the operation parameter to the sub-process, specifically:
and sending the operation instruction and the operation parameter to the sub-process in a socket request mode.
The functions executed by each component in the voice interaction system provided by the embodiment of the present invention have been described in detail in embodiment 1, and therefore, redundant description is not repeated here.
In the voice interaction system provided by the embodiment of the invention, after the main process sends the sub-process calling request to the system, the system allocates a sub-process to the main process. However, the sub-process is not allowed to use the system resource without limitation, but the range of the sub-process calling the system resource is limited according to the preset rule. Therefore, the subprocess can be guaranteed to complete the task of the subprocess, and meanwhile, excessive system resources cannot be occupied without limitation. Therefore, the situation that the malicious program codes occupy system resources without limitation is avoided. And system resources of other processes are used to the maximum extent, so that the feasibility of using the system by a large number of users is ensured.
Corresponding to the foregoing embodiment 1, an embodiment 3 of the present invention further provides a voice interaction system, specifically as shown in fig. 3, where the system includes: a memory 301 and a processor 302.
A memory 301 for storing one or more program instructions; one or more program instructions are executed by processor 302 to perform the method steps of any of the methods of limiting system resource utilization as described in the previous embodiments.
The functions executed by each component in the system for limiting system resource occupation provided by the embodiment of the present invention have been described in detail in the method for limiting system resource occupation of the above embodiment, and therefore, redundant description is not repeated here.
In the voice interaction system provided by the embodiment of the invention, after the main process sends the sub-process calling request to the system, the system allocates a sub-process to the main process. However, the sub-process is not allowed to use the system resource without limitation, but the range of the sub-process calling the system resource is limited according to the preset rule. Therefore, the subprocess can be guaranteed to complete the task of the subprocess, and meanwhile, excessive system resources cannot be occupied without limitation. Therefore, the situation that the malicious program codes occupy system resources without limitation is avoided. And system resources of other processes are used to the maximum extent, so that the feasibility of using the system by a large number of users is ensured.
In correspondence with the above embodiments, embodiments of the present invention also provide a computer storage medium containing one or more program instructions therein. Wherein one or more program instructions are for executing by a voice interactive system a method of limiting system resource occupation as described above.
Although the invention has been described in detail above with reference to a general description and specific examples, it will be apparent to one skilled in the art that modifications or improvements may be made thereto based on the invention. Accordingly, such modifications and improvements are intended to be within the scope of the invention as claimed.

Claims (6)

1. A method for limiting system resource occupation is applied to a voice interaction system, and comprises the following steps:
receiving a sub-process calling request sent by a main process;
distributing a subprocess to the main process according to the subprocess calling request, and limiting the range of calling system resources by the subprocess; the subprocess calling request comprises a Linux Cgroups parameter, and the range of the subprocess calling system resources is limited according to the subprocess calling request, which specifically comprises the following steps:
determining an upper limit value of system resources called by the subprocess according to the Linux Cgroups parameter;
and establishing communication connection between the main process and the sub-process so that the main process sends an operation instruction and an operation parameter to the sub-process, the operation instruction and the operation parameter are sent to the sub-process in a socket request mode, the sub-process calls system resources in the range, and a preset program is called from a pre-established database to execute the operation instruction according to the operation parameter.
2. The method according to claim 1, wherein the sub-process call request is a call request generated by processing voice information input by a user after the main process receives the voice information.
3. A voice interaction system, the system comprising:
the receiving unit is used for receiving a subprocess calling request sent by a main process;
the processing unit is used for allocating a subprocess to the main process according to the subprocess calling request and limiting the range of calling system resources by the subprocess; the subprocess calling request comprises a Linux Cgroups parameter, and the processing unit is specifically used for determining an upper limit value of a system resource called by the subprocess according to the Linux Cgroups parameter;
and the communication unit is used for establishing communication connection between the main process and the sub-process so that the main process can send the operation instruction and the operation parameters to the sub-process, the operation instruction and the operation parameters are sent to the sub-process in a socket request mode, the sub-process calls system resources in the range, and calls a preset program from a pre-established database to execute the operation instruction according to the operation parameters.
4. The system according to claim 3, wherein the sub-process call request is a call request generated by processing the voice information after the main process receives the voice information input by the user.
5. A voice interaction system, the system comprising: a processor and a memory;
the memory is to store one or more program instructions;
the one or more program instructions being executable by the processor to perform the method of any of claims 1-2.
6. A computer storage medium comprising one or more program instructions for performing the method of any of claims 1-2 by a voice interactive system that restricts occupation of system resources.
CN201811584384.0A 2018-12-24 2018-12-24 Method for limiting system resource occupation, voice interaction system and storage medium Active CN109462663B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811584384.0A CN109462663B (en) 2018-12-24 2018-12-24 Method for limiting system resource occupation, voice interaction system and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811584384.0A CN109462663B (en) 2018-12-24 2018-12-24 Method for limiting system resource occupation, voice interaction system and storage medium

Publications (2)

Publication Number Publication Date
CN109462663A CN109462663A (en) 2019-03-12
CN109462663B true CN109462663B (en) 2022-04-15

Family

ID=65614770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811584384.0A Active CN109462663B (en) 2018-12-24 2018-12-24 Method for limiting system resource occupation, voice interaction system and storage medium

Country Status (1)

Country Link
CN (1) CN109462663B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110708366A (en) * 2019-09-24 2020-01-17 深圳市迅雷网络技术有限公司 Plug-in process management method, related method and related device
CN110706706A (en) * 2019-11-01 2020-01-17 北京声智科技有限公司 Voice recognition method, device, server and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105825851A (en) * 2016-05-17 2016-08-03 Tcl集团股份有限公司 Method and system for speech control based on Android system
CN106411558A (en) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 Data flow limitation method and system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106411558A (en) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 Data flow limitation method and system
CN105825851A (en) * 2016-05-17 2016-08-03 Tcl集团股份有限公司 Method and system for speech control based on Android system

Also Published As

Publication number Publication date
CN109462663A (en) 2019-03-12

Similar Documents

Publication Publication Date Title
KR100509794B1 (en) Method of scheduling jobs using database management system for real-time processing
CN109155782B (en) Inter-process communication between containers
US20190114202A1 (en) Task scheduling method and apparatus of artificial intelligence heterogeneous hardware, device and readable medium
CN113037794B (en) Method, device and system for computing resource allocation scheduling
CN108021400B (en) Data processing method and device, computer storage medium and equipment
CN109800083B (en) Method, device, system and storage medium for micro-service collaborative call
CN106897299B (en) Database access method and device
CN111338779B (en) Resource allocation method, device, computer equipment and storage medium
CN109462663B (en) Method for limiting system resource occupation, voice interaction system and storage medium
CN114979286B (en) Access control method, device, equipment and computer storage medium for container service
CN111709723A (en) RPA business process intelligent processing method, device, computer equipment and storage medium
CN116185623A (en) Task allocation method and device, electronic equipment and storage medium
JP4862056B2 (en) Virtual machine management mechanism and CPU time allocation control method in virtual machine system
CN113419839A (en) Resource scheduling method and device for multi-type jobs, electronic equipment and storage medium
CN110502343B (en) Resource allocation method, system, device and computer readable storage medium
CN111435319A (en) Cluster management method and device
CN115964152A (en) GPU resource scheduling method, equipment and storage medium
CN115168040A (en) Job preemption scheduling method, device, equipment and storage medium
CN114675954A (en) Task scheduling method and device
CN114490000A (en) Task processing method, device, equipment and storage medium
US20170269968A1 (en) Operating system support for game mode
CN111866159A (en) Method, system, device and storage medium for calling artificial intelligence service
CN110750330A (en) Virtual machine creating method, system, electronic equipment and storage medium
KR20190061241A (en) Mesos process apparatus for unified management of resource and method for the same
KR100487743B1 (en) An Apparatus and a Method for Processing Distributed Object Using Priority Inheritance Technique

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211115

Address after: 210034 floor 8, building D11, Hongfeng Science Park, Nanjing Economic and Technological Development Zone, Jiangsu Province

Applicant after: China Innovation Technology Co., Ltd

Applicant after: Volkswagen (China) Investment Co., Ltd

Address before: 1001, floor 10, office building a, No. 19, Zhongguancun Street, Haidian District, Beijing 100086

Applicant before: Information Technology Co., Ltd

GR01 Patent grant
GR01 Patent grant