U.S. patent application number 12/751631 was filed with the patent office on 2010-10-07 for computer applications classifier.
This patent application is currently assigned to SOLUTO LTD. Invention is credited to Omer BAKI, Tomer DVIR, Ishay GREEN, Amit LAVIAN.
Application Number | 20100257527 12/751631 |
Document ID | / |
Family ID | 42827053 |
Filed Date | 2010-10-07 |
United States Patent
Application |
20100257527 |
Kind Code |
A1 |
DVIR; Tomer ; et
al. |
October 7, 2010 |
COMPUTER APPLICATIONS CLASSIFIER
Abstract
A computer implemented method comprising: monitoring a plurality
of processes relating to a plurality of applications and using a
plurality of computing resources, at least some of the processes
relating to a user activity; analyzing the use of the computing
resources by each of the processes; analyzing the user activity in
respect to the processes; and classifying the processes in respect
to the analyzed user activity, wherein the monitoring; the
processing; the analyzing use; the analyzing user activity; and the
classifying, are carried out during running the processes, and
wherein at least one of: the monitoring; the processing; the
analyzing use; the analyzing user activity; and the classifying, is
performed by at least one computer.
Inventors: |
DVIR; Tomer; (Netanya,
IL) ; GREEN; Ishay; (Tel-aviv, IL) ; BAKI;
Omer; (Tel-Aviv, IL) ; LAVIAN; Amit;
(Ramat-Gan, IL) |
Correspondence
Address: |
The Law Office of Michael E. Kondoudis
888 16th Street, N.W., Suite 800
Washington
DC
20006
US
|
Assignee: |
SOLUTO LTD
Tel Aviv
IL
|
Family ID: |
42827053 |
Appl. No.: |
12/751631 |
Filed: |
March 31, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61213453 |
Jun 10, 2009 |
|
|
|
61202750 |
Apr 1, 2009 |
|
|
|
Current U.S.
Class: |
718/100 ;
707/737; 707/E17.089 |
Current CPC
Class: |
G06F 11/079 20130101;
G06F 11/3438 20130101; G06F 11/0715 20130101; G06F 11/0793
20130101 |
Class at
Publication: |
718/100 ;
707/737; 707/E17.089 |
International
Class: |
G06F 17/30 20060101
G06F017/30; G06F 9/46 20060101 G06F009/46 |
Claims
1. A data processing system, comprising: an updating database of a
plurality of processes associated respectively with a plurality of
computer applications and using a plurality of computing resources
respectively, wherein at least some of the processes are associated
with at least one user activity, the database comprising a
classification of the processes; a tracker arranged to monitor the
processes associated with the applications, the computing resources
and their relation to the user activities, and to update the
database upon changes thereof; an analyzer arranged to analyze
usage of the computing resources by each of the processes, and to
analyze the user activities in respect to the processes; and a
classifier arranged to classify the processes in respect to the
analyzed user activity, and update the classification in the
database.
2. The data processing system of claim 1, wherein the database
further comprises an inventory of all processes relating to the
computer resources.
3. The data processing system of claim 1, wherein the database
comprises entries relating to each process, the entries comprising:
a list of related binary executable files and resources use
patterns in different scenarios.
4. The data processing system of claim 1, wherein the database
comprises a managing module arranged to monitor and analyze the
processes' use of the computing resources.
5. The data processing system of claim 1, wherein the database, the
tracker, the analyzer and the classifier are embedded within an
operating system running the processes with the computing
resources.
6. The data processing system of claim 1, wherein at least one of:
the database, the tracker, the analyzer and the classifier, are
associated with an operating system running the processes with the
computing resources via a plug-in or an add-on.
7. The data processing system of claim 1, wherein the tracker
implements a real-time Computer Processes Tracking Mechanism (CPTM)
arranged to track ongoing computer activity and ongoing user
activity and to provide the relevant data to the classifier.
8. The data processing system of claim 1, wherein the classifier
comprises predefined user setting associated with specified user
actions.
9. The data processing system of claim 1, wherein the classifier
comprises predefined user setting associated with specified
applications.
10. The data processing system of claim 1, wherein the relation
between a specified application and process are derived by at least
one predefined heuristics.
11. The data processing system of claim 10, wherein at least one
heuristics comprises applying a search engine to a name or file
name of the application.
12. The data processing system of claim 10, wherein at least one
heuristics comprise applying a dictionary function to a file name
or file name of the application.
13. A computer implemented method comprising: monitoring a
plurality of processes relating to a plurality of applications and
using a plurality of computing resources, at least some of the
processes relating to a user activity; analyzing the use of the
computing resources by each of the processes; analyzing the user
activity in respect to the processes; and classifying the processes
in respect to the analyzed user activity, wherein the monitoring;
the processing; the analyzing use; the analyzing user activity; and
the classifying, are carried out during running the processes, and
wherein at least one of: the monitoring; the processing; the
analyzing use; the analyzing user activity; and the classifying, is
performed by at least one computer.
14. The computer implemented method of claim 13, wherein the
monitoring; the processing; the analyzing use; the analyzing user
activity; and the classifying, are carried out substantially
immediately during running the processes.
15. The computer implemented method of claim 13, wherein the
plurality of processes comprises all processes relating to the
computer resources.
16. The computer implemented method of claim 13, further comprising
monitoring and analyzing the processes' use of the computing
resources.
17. The computer implemented method of claim 13, further comprising
incorporating processes of an external software in the plurality of
processes.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional
Patent Application 61/202,750 filed on Apr. 1, 2009 and U.S.
Provisional Patent Application 61/213,453 filed on Jun. 10, 2009,
which are incorporated herein by reference.
BACKGROUND
[0002] 1. Technical Field
[0003] The present invention relates to the field of computing
devices and personal device accessories (PDA), and more
particularly, to enhancing the efficiency of operating system and
runtime environments associated with such devices.
[0004] 2. Discussion of Related Art
[0005] The majority of existing computer and mobile phone operating
systems use a priority-driven scheduler. The scheduling is mostly
based on a simple, predefined priority setting within the
application itself, and ad-hoc monitoring of real-time process
behavior. Thus the priority with which a process or a thread will
be processed in the computer is detached in time and context from
the actual user need, computer processing (and other resources')
capabilities, knowledge regarding the process itself, the
interrelationship between processes, and more. In real-time, these
priority settings only arbitrarily relate to the other concurrent
processes, often leading to user frustration in his computer usage
experience.
[0006] Although existing scheduling procedures are very limited and
largely one dimensional, computer applications differ greatly on
various traits, such as resource requirements over time, mode of
use by the user, multiple-process relationship and others.
Furthermore, critical factors in the computer's purpose and
functionality, for example user requirements and expectations, do
not play a part in the scheduling process.
BRIEF SUMMARY
[0007] Embodiments of the present invention provide a data
processing system, comprising: a updating database of a plurality
of processes relating to a plurality of applications and using a
plurality of computing resources, at least some of the processes
relating to at least one user activity, the database comprising a
classification of the processes; a tracker arranged to monitor the
processes in relation to the applications, the computing resources
and their relation to the user activities, and update the database
substantially immediately upon changes thereof; an analyzer
arranged to analyze the use of the computing resources by each of
the processes, and to analyze the user activities in respect to the
processes; and a classifier arranged to classify the processes in
respect to the analyzed user activity, and update the
classification in the database.
[0008] Embodiments of the present invention provide a computer
implemented method comprising: monitoring a plurality of processes
relating to a plurality of applications and using a plurality of
computing resources, at least some of the processes relating to a
user activity; analyzing the use of the computing resources by each
of the processes; analyzing the user activity in respect to the
processes; and classifying the processes in respect to the analyzed
user activity, wherein the monitoring; the processing; the
analyzing use; the analyzing user activity; and the classifying,
are carried out substantially immediately during running the
processes, and wherein at least one of: the monitoring; the
processing; the analyzing use; the analyzing user activity; and the
classifying, is performed by at least one computer, computing
device, or mobile phone.
[0009] These, additional, and/or other aspects and/or advantages of
the present invention are: set forth in the detailed description
which follows; possibly inferable from the detailed description;
and/or learnable by practice of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The present invention will be more readily understood from
the detailed description of embodiments thereof made in conjunction
with the accompanying drawings of which:
[0011] FIG. 1 is a high level schematic block diagram of a data
processing system, according to some embodiments of the invention;
and
[0012] FIG. 2 is a high level flowchart illustrating a computer
implemented method according to some embodiments of the
invention.
DETAILED DESCRIPTION
[0013] Before explaining at least one embodiment of the invention
in detail, it is to be understood that the invention is not limited
in its application to the details of construction and the
arrangement of the components set forth in the following
description or illustrated in the drawings. The invention is
applicable to other embodiments or of being practiced or carried
out in various ways. Also, it is to be understood that the
phraseology and terminology employed herein is for the purpose of
description and should not be regarded as limiting.
[0014] For a better understanding of the invention, the usages of
the following terms in the present disclosure are defined in a
non-limiting manner:
[0015] The term "computer" as used herein in this application, is
defined as a programmable machine that receives input, stores and
manipulates data, and provides output in a useful format. A
computer comprises at least a processor, a storage and an
input/output unit. In particular, in this application, the term
"computer" is understood to include any computing or communication
device (e.g., mobile phones).
[0016] The term "application" as used herein in this application,
is defined as computer software designed to help the user to
perform a singular or multiple related specific tasks. Typical
examples are word processors, spreadsheets, media players and
database applications.
[0017] The term "process" as used herein in this application, is
defined as an instance of an application that is being executed by
a computer. The process comprises program code and current
activity. Depending on the operating system (OS), a process may be
made up of multiple threads of execution that execute instructions
concurrently.
[0018] Whereas an application is a passive collection of
instructions, a process is the actual execution of those
instructions. Several processes may be associated with the same
application; for example, opening up several instances of the same
program often means more than one process is being executed.
[0019] The term "operating system" as used herein in this
application, is defined as an interface between hardware and user,
which is responsible for the management and coordination of
activities and the sharing of the resources of a computer, that
acts as a host for computing applications run on the machine. One
of the purposes of an operating system is to handle the resource
allocation and access protection of the hardware. This relieves the
application programmers from having to manage these details.
Operating systems offer a number of services to application
programs and users. Applications access these services through
application programming interfaces (APIs) or system calls. By
invoking these interfaces, the application can request a service
from the operating system, pass parameters, and receive the results
of the operation. In the current application, the term operating
system is extended to further comprise run-time environments, being
collections of software services enhancing the interaction with the
operating system, such as virtual machines, interfaces and program
libraries.
[0020] The term "computing resources" as used herein in this
application, is defined as any physical or virtual component of
limited availability within a computer system. Every device
connected to a computer system is a resource. Every internal system
component is a resource. Virtual system resources include files,
network connections and memory areas. Examples of common computing
resources are: CPU time; random access memory and virtual memory;
hard disk space; network throughput; electrical power; external
devices; and input/output operations. Usage of computing resources
comprises any utilization of them, by any process or application,
relating to either users, the system, external devices and
monitoring applications.
[0021] The invention relates to processes 80 relating to user
activities 95 of users 90, and to the processing of applications 82
on computing resources 84, e.g., within an operating system (OS) or
within any runtime environment (.NET framework, JAVA). Current
(prior art) typical underlying operation mode of OS scheduling
resources distribution per application may comprise the preset
priority of the application and ad hoc real-time process behavior
determine the scheduling priority, without taking into account
actual user requirements and priorities, as well as
interrelationship of processes. The scheduler does not analyze nor
allocate the processing resources according to a wider view of
processing analysis, user behavior, existing process knowledge or
any other source.
[0022] FIG. 1 is a high level schematic block diagram of a data
processing system 100, according to some embodiments of the
invention. Data processing system 100 comprises a updating database
140 of a plurality of processes 180 (corresponding to processes
80), e.g., the most common processes, relating to a plurality of
applications 182 (corresponding to applications 82) and using a
plurality of computing resources (including network resources) 184
(corresponding to computing resources 84). Optionally, at least
some of processes 180 relate to at least one user activity 195
(corresponding to user activities 95). Database 140 further
comprises a classification 170 of processes 180.
[0023] Data processing system 100 further comprises a tracker 110
arranged to monitor processes 80 in relation to applications 82,
computing resources 84 and their relation to user activities 95.
Tracker 110 is arranged to update database 140 upon changes of
processes 80, applications 82, computing resources 84, user
activities 95 and interrelations between them. Tracker 110 may
monitor and analyze the relevant real-time and non real-time data
regarding process' requirements, processing resources availability
and user's priorities, and constantly shape the processing
schedule. Tracker 110 may further track the computer and user
activity providing real-time and non real-time data regarding
process' requirements, processing resources availability and user's
priorities.
[0024] Data processing system 100 further comprises an analyzer 120
arranged to analyze the use of computing resources 84 by each of
processes 80, and to analyze user activities 95 in respect to
processes 80.
[0025] Data processing system 100 further comprises a classifier
130 arranged to classify processes 80 in respect to the analyzed
user activity 95, and update classification 170 in database 140
accordingly.
[0026] In embodiments, data processing system 100 may comprise a
processing module 150 comprising tracker 110, analyzer 120 and
classifier 130, that is arranged to generate and update processes
180, user activities 195, applications 182 and computing resources
184 in database 140 in real-time in relation to at least some of:
processes 80, user activities 95, applications 82 and computing
resources 84.
[0027] Processing module 150 and database 140 may be embodied
within the operating system or as external modules communicating
therewith.
[0028] Database 140 may embody an inventory ("Catalog") (based on a
local/remote database, another repository, or an external device)
compiling information of every object run or processed by the
computer ("Catalog Item"), for example software applications,
hardware devices, online services, multimedia codecs, web
applications, drivers, plug-ins, all built-in and add-on hardware,
any software, and more, creating a common basis for data analysis
within the computer over time and between different computers. The
Catalog enables to attribute specific partial processes to an
object, and analyze process behavior in the context of the full
catalog item. The aggregated knowledge may be contributed to a
central repository for future use by the local computer and other
computers utilizing that repository. Examples of the type of
information collected for each catalog item may include: a list of
related binary executable files, its typical use of resources in
different scenarios, its typical method of usage, operational costs
when the catalog item resides on the computer, etc.
[0029] Tracker 110 may embody a real-time Computer Processes
Tracking Mechanism (CPTM) having means of tracking ongoing computer
activity and ongoing user activity (using designated probes, such
as a file system driver, user interaction, network activity, etc.)
and providing the relevant data for the analysis process.
[0030] Classifier 130 maybe be associated with the operating system
as a plug-in, as an add-on, or be built-in in the operating
system.
[0031] Classifier 130 may comprise predefined user setting
associated with specified actions or applications.
[0032] According to some embodiments of the invention classifier
130 may employ several related and unrelated heuristics in order to
determine a relationship between an application and a specified
process. For example, according to one heuristics, the function of
an application may be derived from the file's name of each
application. Another heuristics is to apply a search engine (such
as Google's) to a plurality of application names, to yield meaning
thereof. The meaning is associated with the dominant aspect of the
classified application.
[0033] FIG. 2 is a high level flowchart illustrating a computer
implemented method according to some embodiments of the invention.
The computer implemented method comprises the following stages:
monitoring a plurality of processes relating to a plurality of
applications and using a plurality of computing resources, at least
some of the processes relating to a user activity (stage 200);
analyzing the use of the computing resources by each of the
processes (stage 210); analyzing the user activity in respect to
the processes (stage 220); and classifying the processes in respect
to the analyzed user activity (stage 230). In embodiments, stages
200-230 are carried out substantially immediately during running
the processes. At least one of the stages 200-230 is performed by
at least one computer. In embodiments,
[0034] In embodiments, the plurality of processes comprises all
processes relating to the computer resources.
[0035] In embodiments, the computer implemented method further
comprises any of the following stages, that may be performed by at
least one computer: monitoring and analyzing the processes' use of
the computing resources (stage 240); and incorporating processes of
an external software in the plurality of processes (stage 250).
[0036] In the above description, an embodiment is an example or
implementation of the inventions. The various appearances of "one
embodiment," "an embodiment" or "some embodiments" do not
necessarily all refer to the same embodiments.
[0037] Although various features of the invention may be described
in the context of a single embodiment, the features may also be
provided separately or in any suitable combination. Conversely,
although the invention may be described herein in the context of
separate embodiments for clarity, the invention may also be
implemented in a single embodiment.
[0038] Reference in the specification to "some embodiments", "an
embodiment", "one embodiment" or "other embodiments" means that a
particular feature, structure, or characteristic described in
connection with the embodiments is included in at least some
embodiments, but not necessarily all embodiments, of the
inventions.
[0039] It is to be understood that the phraseology and terminology
employed herein is not to be construed as limiting and are for
descriptive purpose only.
[0040] The principles and uses of the teachings of the present
invention may be better understood with reference to the
accompanying description, figures and examples.
[0041] It is to be understood that the details set forth herein do
not construe a limitation to an application of the invention.
[0042] Furthermore, it is to be understood that the invention can
be carried out or practiced in various ways and that the invention
can be implemented in embodiments other than the ones outlined in
the description above.
[0043] It is to be understood that the terms "including",
"comprising", "consisting" and grammatical variants thereof do not
preclude the addition of one or more components, features, steps,
or integers or groups thereof and that the terms are to be
construed as specifying components, features, steps or
integers.
[0044] If the specification or claims refer to "an additional"
element, that does not preclude there being more than one of the
additional element.
[0045] It is to be understood that where the claims or
specification refer to "a" or "an" element, such reference is not
to be construed that there is only one of that element.
[0046] It is to be understood that where the specification states
that a component, feature, structure, or characteristic "may",
"might", "can" or "could" be included, that particular component,
feature, structure, or characteristic is not required to be
included.
[0047] Where applicable, although state diagrams, flow diagrams or
both may be used to describe embodiments, the invention is not
limited to those diagrams or to the corresponding descriptions. For
example, flow need not move through each illustrated box or state,
or in exactly the same order as illustrated and described.
[0048] Methods of the present invention may be implemented by
performing or completing manually, automatically, or a combination
thereof, selected steps or tasks.
[0049] The term "method" may refer to manners, means, techniques
and procedures for accomplishing a given task including, but not
limited to, those manners, means, techniques and procedures either
known to, or readily developed from known manners, means,
techniques and procedures by practitioners of the art to which the
invention belongs.
[0050] The descriptions, examples, methods and materials presented
in the claims and the specification are not to be construed as
limiting but rather as illustrative only.
[0051] Meanings of technical and scientific terms used herein are
to be commonly understood as by one of ordinary skill in the art to
which the invention belongs, unless otherwise defined.
[0052] The present invention may be implemented in the testing or
practice with methods and materials equivalent or similar to those
described herein.
[0053] Any publications, including patents, patent applications and
articles, referenced or mentioned in this specification are herein
incorporated in their entirety into the specification, to the same
extent as if each individual publication was specifically and
individually indicated to be incorporated herein. In addition,
citation or identification of any reference in the description of
some embodiments of the invention shall not be construed as an
admission that such reference is available as prior art to the
present invention.
[0054] While the invention has been described with respect to a
limited number of embodiments, these should not be construed as
limitations on the scope of the invention, but rather as
exemplifications of some of the preferred embodiments. Other
possible variations, modifications, and applications are also
within the scope of the invention. Accordingly, the scope of the
invention should not be limited by what has thus far been
described, but by the appended claims and their legal
equivalents.
* * * * *