US20100257533A1 - Computer applications scheduler - Google Patents

Computer applications scheduler Download PDF

Info

Publication number
US20100257533A1
US20100257533A1 US12/751,494 US75149410A US2010257533A1 US 20100257533 A1 US20100257533 A1 US 20100257533A1 US 75149410 A US75149410 A US 75149410A US 2010257533 A1 US2010257533 A1 US 2010257533A1
Authority
US
United States
Prior art keywords
processes
user
scheduler
computing resources
relating
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.)
Abandoned
Application number
US12/751,494
Inventor
Tomer DVIR
Ishay Green
Liran TAM
Omri HAIM
Shai DUVDEVANI
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.)
SOLUTO Ltd
Original Assignee
SOLUTO 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 SOLUTO Ltd filed Critical SOLUTO Ltd
Priority to US12/751,494 priority Critical patent/US20100257533A1/en
Assigned to SOLUTO LTD reassignment SOLUTO LTD ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DUVDEVANI, SHAY, DVIR, TOMER, GREEN, ISHAY, HAIM, OMRI, TAM, LIRAN
Publication of US20100257533A1 publication Critical patent/US20100257533A1/en
Assigned to SOLUTO LTD reassignment SOLUTO LTD CORRECTIVE ASSIGNMENT TO CORRECT THE INVENTOR NAME PREVIOUSLY RECORDED AT REEL: 024180 FRAME: 0750. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: DUVDEVANI, SHAI, DVIR, TOMER, GREEN, ISHAY, HAIM, OMRI, TAM, LIRAN
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions

Definitions

  • the present invention relates to the field of computing devices, and more particularly, to enhancing the efficacy of such devices by scheduling the computer applications associated with such devices.
  • the majority of existing computer 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.
  • 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, including storage reading/writing, network communication) capabilities, knowledge regarding the process itself, the interrelationship between processes, and more.
  • these priority settings only arbitrarily relate to the other concurrent processes, often leading to user frustration in his computer usage experience.
  • Embodiments of the present invention provide a data processing system, comprising: an 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 profiler arranged to generate a user application use profile by analyzing the user activities in respect to the applications, and to assign each process a priority relating to the analysis of the user activity, user preferences and the user application use profile; and a scheduler arranged to schedule the processes in respect to the assigned priorities such as to enhance processes with a high priority, and such as to adapt an allocation of the computing resources to the user application use profile.
  • Embodiments of the present invention provide a computer implemented method comprising: classifying a plurality of processes relating to a plurality of applications and using a plurality of computing resources, wherein at least some of the processes relate to a user activity, and wherein the classification is carried our in respect to the user activity; generating a user application use profile by analyzing the user activity in respect to the processes; assigning each process a priority relating to the analysis of the user activity, user preferences, user typical usage hours, and the user application use profile; and scheduling the processes in respect to the assigned priorities such as to enhance processes with a high priority, wherein the scheduling is carried out such as to adapt an allocation of the computing resources to the user application use profile, and wherein at least one of: the classifying; the generating; the assigning; and the scheduling, is performed by at least one computer.
  • FIG. 1 is a high level schematic block diagram of a data processing system, according to some embodiments of the invention.
  • FIG. 2 is a high level flowchart illustrating a computer implemented method according to some embodiments of the invention.
  • 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.
  • the term “computer” is understood to include any computing or communication device (e.g., mobile phones).
  • 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.
  • 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.
  • OS operating system
  • a process may be made up of multiple threads of execution that execute instructions concurrently.
  • 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.
  • operating system 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.
  • APIs application programming interfaces
  • 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.
  • 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).
  • OS operating system
  • 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.
  • 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 an updating database 140 of a plurality of processes 180 (corresponding to processes 80 ) relating to a plurality of applications 182 (corresponding to applications 82 ) and using a plurality of computing resources 184 (corresponding to computing resources 84 ), at least some of processes 180 relating to at least one user activity 195 (corresponding to user activities 95 ).
  • Database 140 further comprises a classification 170 of processes 180 .
  • Computing resources 84 comprise processing resources, memory, memory access, communication resources, etc.
  • Database 140 may embody an inventory (“Catalog”) (based on a local/remote database or another repository) 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, 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.
  • Database 140 may comprise a managing module 145 arranged to 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.
  • Managing module 145 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.
  • Managing module 145 may further classify processes 80 in respect to the analyzed user activity 95 , and update classification 170 in database 140 accordingly.
  • Managing module 145 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.
  • CPTM Computer Processes Tracking Mechanism
  • Data processing system 100 further comprises a profiler 110 arranged to generate a user application use profile by analyzing user activities 195 in respect to processes 180 , and to assign each process 80 a priority relating to the analysis of user activity (either real time or long term) 195 , user preferences and the user application use profile, user typical usage hours, etc.
  • a profiler 110 arranged to generate a user application use profile by analyzing user activities 195 in respect to processes 180 , and to assign each process 80 a priority relating to the analysis of user activity (either real time or long term) 195 , user preferences and the user application use profile, user typical usage hours, etc.
  • Data processing system 100 further comprises a scheduler 120 arranged to schedule processes 80 in respect to the assigned priorities such as to enhance processes 80 with a high priority, and such as to adapt an allocation of computing resources 84 to the user application use profile.
  • a scheduler 120 arranged to schedule processes 80 in respect to the assigned priorities such as to enhance processes 80 with a high priority, and such as to adapt an allocation of computing resources 84 to the user application use profile.
  • Scheduler 120 may embody Smart Scheduling Component (SSC) including a scheduling algorithm and may receive and analyze the data regarding real-time inputs (such as resources' real-time status; user real-time preferences; process' current resource needs; etc.) and non-real-time inputs (such as typical resource requirements; typical usage method; etc.) per application/process, and create and control the processing schedule accordingly, effectively producing the user's wants in real-time.
  • SSC Smart Scheduling Component
  • the analysis of this knowledgebase enables the SSC to create a resource-specific schedule, allocating specific computing resources such as CPU; i/o; RAM; Network; etc.
  • the SSC may be implemented as part of the operating system scheduler, or as an external module by means of a Scheduler Controller Gateway (SCG).
  • SCG Scheduler Controller Gateway
  • Scheduler 120 may further embody a Scheduler Controller Gateway (SCG) that monitors and controls the communication between the OS and the various active applications demanding processing resources. It serves to enable the SSC, when external to the OS built-in scheduler, to externally control and improve the OS scheduler's prioritization process. External Control of the Scheduler may be achieved, for example, through controls provided by the operating system scheduler itself; or through the implementation of several drivers between the applications and the resources, prioritizing/delaying resource requests (for example—file access driver, network access driver, CPU virtualization etc).
  • SCG Scheduler Controller Gateway
  • Scheduler 120 may comprise a User & Resource Aware Scheduler (URAS) including the SSC, the CPTM and the Catalog, and may be implemented within the OS scheduler or as a separate module.
  • URAS User & Resource Aware Scheduler
  • the OS Scheduler enables the OS Scheduler to 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.
  • the SCG is made up of individual units acting as regulators unique for each resource, as well as a central unit aggregating and controlling these regulators.
  • the SSC constantly uses the regulators to control the resource allocation to different processes and if the OS scheduler supports it—dictates the smart priority list and additional scheduling information to the OS Scheduler.
  • Scheduler 120 prioritizes different applications with different resource needs—for example one application requires high network, another requires high CPU. Scheduler 120 can prioritize both.
  • Data processing system 100 may further comprise a scheduling API (application programming interface) 130 designed to allow 3 rd party software to improve their scheduling by delegating the internal application scheduling control to a centralized scheduling controller.
  • a scheduling API application programming interface 130 designed to allow 3 rd party software to improve their scheduling by delegating the internal application scheduling control to a centralized scheduling controller.
  • This element enables the processing of each application's/process's current needs in the broader scope of all running applications, processes and threads' requirements, thereby also enabling resource-specific and/or per-functionality-application-internal scheduling.
  • Scheduling API 130 may enable, when scheduler 120 is outside the OS, to delegate of the application internal scheduling to the interactive priority setting at the application level based on a broad perspective—a central understanding of all running processes' current requirements.
  • the CPTM tracks the computer and user activity and integrating the API data, provides real-time and non real-time data regarding process' requirements, processing resources availability and user's priorities.
  • the SCG which monitors and controls the communication between the OS and the applications, the SSC constantly dictates the smart priority list to the OS Scheduler in real-time.
  • the concept can work in a similar way when the scheduling components are implemented within the OS scheduler to enhance existing OS schedulers.
  • the SSC is implemented within the OS scheduler, along with the Catalog and the CPTM.
  • the CPTM is continually tracking and analyzing usage data regarding each active Catalog Item.
  • Such data may be computer resource (e.g. CPU, RAM. Storage I/O, Network, etc.) usage; typical user interaction with that particular item; correlating usage of items; and more. These data serve to deduce users' real-time preferences and the computer processing resources applied to these preferences.
  • Another CPTM probe or set of probes may aggregate the typical usage method, resource requirements and background operation needs of each application.
  • the SSC analyzes both the real-time data (for example: user and usage related real-time data) and the non-real-time data (for example: application typical usage method data) and creates a schedule based on the user preferences and the availability of each of the specifically required various computer processing resources (e.g. CPU, RAM. Storage I/O, Network, etc.).
  • This embodiment displays an intelligent learning system constantly analyzing user and application requirements and their interaction, thereby creating continuously 8 improving intelligent scheduling.
  • This scheduling may be based on real-time user needs, as well as long-term aggregated knowledge of typical application usage by users and typical application usage of resources.
  • the method and system outlined above enable scheduling of computer application processing tailored to the user's preferences.
  • data processing system 100 may comprise a processing module comprising profiler 110 , scheduler 120 and scheduler API 130 , that is arranged to schedule processes 80 , user activities 95 , applications 82 and computing resources 84 .
  • the processing module and database 140 may be embodied within the operating system or as external modules communicating therewith.
  • Scheduler 120 may be associated with the operating system as a plug-in, as an add-on, or be built-in in the operating system. Scheduler 120 is arranged to provide the user with a high quality of service, higher than that of the operating system in itself.
  • FIG. 2 is a high level flowchart illustrating a computer implemented method according to some embodiments of the invention.
  • the computer implemented method may be implemented in any computer, mobile phone or any computing device.
  • the computer implemented method comprises the following stages: classifying a plurality of processes relating to a plurality of applications and using a plurality of computing resources, wherein at least some of the processes relate to a user activity, and wherein the classification is carried our in respect to the user activity (stage 200 ); generating a user application use profile by analyzing the user activity in respect to the applications (stage 210 ); assigning each process a priority relating to the analysis of the user activity, user preferences and the user application use profile (stage 220 ); and scheduling the processes in respect to the assigned priorities such as to enhance processes with a high priority (stage 230 ).
  • Scheduling (stage 230 ) is carried out such as to adapt an allocation of the computing resources to the user application use profile. Stages 200 - 230 are carried out substantially immediately during running the processes, and at least one of the stages 200 - 230 is performed by at least one computer.
  • the plurality of processes comprises all processes relating to the computer resources.
  • 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 ); maximizing computer resources use by analyzing data relating to the computing resources and process requirements (stage 250 ); monitoring and controlling communication between an operating system running the processes with the computing resources and the applications (stage 260 ); and incorporating processes of an external software in the plurality of processes (stage 270 ).
  • Methods of the present invention may be implemented by performing or completing manually, automatically, or a combination thereof, selected steps or tasks.
  • 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.
  • the present invention may be implemented in the testing or practice with methods and materials equivalent or similar to those described herein.

Abstract

A data processing system, comprising: an updating database of processes relating to applications and using computing resources, at least some of the processes relating to user activities. The database comprises a classification of the processes. The data processing system further comprises a profiler arranged to generate a user application use profile by analyzing the user activities in respect to the applications, and to assign each process a priority relating to the analysis of the user activity, user preferences and the user application use profile; and a scheduler arranged to schedule the processes in respect to the assigned priorities such as to enhance processes with a high priority, and such as to adapt an allocation of the computing resources to the user application use profile.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • 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
  • 1. Technical Field
  • The present invention relates to the field of computing devices, and more particularly, to enhancing the efficacy of such devices by scheduling the computer applications associated with such devices.
  • 2. Discussion of Related Art
  • The majority of existing computer 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, including storage reading/writing, network communication) 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.
  • While the present scheduling procedure is very limited and largely one dimensional, 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
  • Embodiments of the present invention provide a data processing system, comprising: an 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 profiler arranged to generate a user application use profile by analyzing the user activities in respect to the applications, and to assign each process a priority relating to the analysis of the user activity, user preferences and the user application use profile; and a scheduler arranged to schedule the processes in respect to the assigned priorities such as to enhance processes with a high priority, and such as to adapt an allocation of the computing resources to the user application use profile.
  • Embodiments of the present invention provide a computer implemented method comprising: classifying a plurality of processes relating to a plurality of applications and using a plurality of computing resources, wherein at least some of the processes relate to a user activity, and wherein the classification is carried our in respect to the user activity; generating a user application use profile by analyzing the user activity in respect to the processes; assigning each process a priority relating to the analysis of the user activity, user preferences, user typical usage hours, and the user application use profile; and scheduling the processes in respect to the assigned priorities such as to enhance processes with a high priority, wherein the scheduling is carried out such as to adapt an allocation of the computing resources to the user application use profile, and wherein at least one of: the classifying; the generating; the assigning; and the scheduling, is performed by at least one computer.
  • 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
  • The present invention will be more readily understood from the detailed description of embodiments thereof made in conjunction with the accompanying drawings of which:
  • FIG. 1 is a high level schematic block diagram of a data processing system, according to some embodiments of the invention; and
  • FIG. 2 is a high level flowchart illustrating a computer implemented method according to some embodiments of the invention.
  • DETAILED DESCRIPTION
  • 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.
  • For a better understanding of the invention, the usages of the following terms in the present disclosure are defined in a non-limiting manner:
  • 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).
  • 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.
  • 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.
  • 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.
  • 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.
  • 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). 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.
  • 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 an updating database 140 of a plurality of processes 180 (corresponding to processes 80) relating to a plurality of applications 182 (corresponding to applications 82) and using a plurality of computing resources 184 (corresponding to computing resources 84), at least some of processes 180 relating to at least one user activity 195 (corresponding to user activities 95). Database 140 further comprises a classification 170 of processes 180. Computing resources 84 comprise processing resources, memory, memory access, communication resources, etc.
  • Database 140 may embody an inventory (“Catalog”) (based on a local/remote database or another repository) 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, 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.
  • Database 140 may comprise a managing module 145 arranged to 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. Managing module 145 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.
  • Managing module 145 may further classify processes 80 in respect to the analyzed user activity 95, and update classification 170 in database 140 accordingly.
  • Managing module 145 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.
  • Data processing system 100 further comprises a profiler 110 arranged to generate a user application use profile by analyzing user activities 195 in respect to processes 180, and to assign each process 80 a priority relating to the analysis of user activity (either real time or long term) 195, user preferences and the user application use profile, user typical usage hours, etc.
  • Data processing system 100 further comprises a scheduler 120 arranged to schedule processes 80 in respect to the assigned priorities such as to enhance processes 80 with a high priority, and such as to adapt an allocation of computing resources 84 to the user application use profile.
  • Scheduler 120 may embody Smart Scheduling Component (SSC) including a scheduling algorithm and may receive and analyze the data regarding real-time inputs (such as resources' real-time status; user real-time preferences; process' current resource needs; etc.) and non-real-time inputs (such as typical resource requirements; typical usage method; etc.) per application/process, and create and control the processing schedule accordingly, effectively producing the user's wants in real-time. The analysis of this knowledgebase enables the SSC to create a resource-specific schedule, allocating specific computing resources such as CPU; i/o; RAM; Network; etc. The SSC may be implemented as part of the operating system scheduler, or as an external module by means of a Scheduler Controller Gateway (SCG).
  • Scheduler 120 may further embody a Scheduler Controller Gateway (SCG) that monitors and controls the communication between the OS and the various active applications demanding processing resources. It serves to enable the SSC, when external to the OS built-in scheduler, to externally control and improve the OS scheduler's prioritization process. External Control of the Scheduler may be achieved, for example, through controls provided by the operating system scheduler itself; or through the implementation of several drivers between the applications and the resources, prioritizing/delaying resource requests (for example—file access driver, network access driver, CPU virtualization etc).
  • Scheduler 120 may comprise a User & Resource Aware Scheduler (URAS) including the SSC, the CPTM and the Catalog, and may be implemented within the OS scheduler or as a separate module. Implementing URAS within the OS scheduler enables the OS Scheduler to 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. Implementing URAS as an add-on to the OS scheduler the SCG is made up of individual units acting as regulators unique for each resource, as well as a central unit aggregating and controlling these regulators. By means of the SCG which monitors and controls the communication between the OS and the applications, the SSC constantly uses the regulators to control the resource allocation to different processes and if the OS scheduler supports it—dictates the smart priority list and additional scheduling information to the OS Scheduler.
  • Advantageously, Scheduler 120 prioritizes different applications with different resource needs—for example one application requires high network, another requires high CPU. Scheduler 120 can prioritize both.
  • Data processing system 100 may further comprise a scheduling API (application programming interface) 130 designed to allow 3rd party software to improve their scheduling by delegating the internal application scheduling control to a centralized scheduling controller. This element enables the processing of each application's/process's current needs in the broader scope of all running applications, processes and threads' requirements, thereby also enabling resource-specific and/or per-functionality-application-internal scheduling.
  • Scheduling API 130 may enable, when scheduler 120 is outside the OS, to delegate of the application internal scheduling to the interactive priority setting at the application level based on a broad perspective—a central understanding of all running processes' current requirements. Based on the Catalog, and probes, the CPTM tracks the computer and user activity and integrating the API data, provides real-time and non real-time data regarding process' requirements, processing resources availability and user's priorities. By means of the SCG which monitors and controls the communication between the OS and the applications, the SSC constantly dictates the smart priority list to the OS Scheduler in real-time.
  • The concept can work in a similar way when the scheduling components are implemented within the OS scheduler to enhance existing OS schedulers.
  • By one embodiment of the system, the SSC is implemented within the OS scheduler, along with the Catalog and the CPTM. Based on the Catalog information, (which can be derived from a central repository accumulating Catalog Item data from each computer in the system, or added & researched locally), the CPTM is continually tracking and analyzing usage data regarding each active Catalog Item. Such data may be computer resource (e.g. CPU, RAM. Storage I/O, Network, etc.) usage; typical user interaction with that particular item; correlating usage of items; and more. These data serve to deduce users' real-time preferences and the computer processing resources applied to these preferences. Another CPTM probe or set of probes may aggregate the typical usage method, resource requirements and background operation needs of each application. The SSC analyzes both the real-time data (for example: user and usage related real-time data) and the non-real-time data (for example: application typical usage method data) and creates a schedule based on the user preferences and the availability of each of the specifically required various computer processing resources (e.g. CPU, RAM. Storage I/O, Network, etc.). This embodiment displays an intelligent learning system constantly analyzing user and application requirements and their interaction, thereby creating continuously 8 improving intelligent scheduling. This scheduling may be based on real-time user needs, as well as long-term aggregated knowledge of typical application usage by users and typical application usage of resources. In conclusion, the method and system outlined above enable scheduling of computer application processing tailored to the user's preferences. This is brought about through constant tracking of the computer usage, aggregated data regarding typical usage characteristics of a specific application, and a comprehensive analysis of computer processing resources' availability (including, e.g., the time of day, day of week, workday VS non-work, daylight saving time, etc). Together, these mechanisms enable efficient computer usage adapting itself to the specific user in real-time. 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. Those skilled in the art will envision other possible variations, modifications, and applications that 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.
  • In embodiments, data processing system 100 may comprise a processing module comprising profiler 110, scheduler 120 and scheduler API 130, that is arranged to schedule processes 80, user activities 95, applications 82 and computing resources 84. The processing module and database 140 may be embodied within the operating system or as external modules communicating therewith.
  • Scheduler 120 maybe be associated with the operating system as a plug-in, as an add-on, or be built-in in the operating system. Scheduler 120 is arranged to provide the user with a high quality of service, higher than that of the operating system in itself.
  • FIG. 2 is a high level flowchart illustrating a computer implemented method according to some embodiments of the invention. The computer implemented method may be implemented in any computer, mobile phone or any computing device. The computer implemented method comprises the following stages: classifying a plurality of processes relating to a plurality of applications and using a plurality of computing resources, wherein at least some of the processes relate to a user activity, and wherein the classification is carried our in respect to the user activity (stage 200); generating a user application use profile by analyzing the user activity in respect to the applications (stage 210); assigning each process a priority relating to the analysis of the user activity, user preferences and the user application use profile (stage 220); and scheduling the processes in respect to the assigned priorities such as to enhance processes with a high priority (stage 230). Scheduling (stage 230) is carried out such as to adapt an allocation of the computing resources to the user application use profile. Stages 200-230 are carried out substantially immediately during running the processes, and at least one of the stages 200-230 is performed by at least one computer.
  • In embodiments, the plurality of processes comprises all processes relating to the computer resources.
  • 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); maximizing computer resources use by analyzing data relating to the computing resources and process requirements (stage 250); monitoring and controlling communication between an operating system running the processes with the computing resources and the applications (stage 260); and incorporating processes of an external software in the plurality of processes (stage 270).
  • 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.
  • 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.
  • 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.
  • 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.
  • The principles and uses of the teachings of the present invention may be better understood with reference to the accompanying description, figures and examples.
  • It is to be understood that the details set forth herein do not construe a limitation to an application of the invention.
  • 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.
  • 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.
  • If the specification or claims refer to “an additional” element, that does not preclude there being more than one of the additional element.
  • 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.
  • 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.
  • 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.
  • Methods of the present invention may be implemented by performing or completing manually, automatically, or a combination thereof, selected steps or tasks.
  • 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.
  • 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.
  • 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.
  • The present invention may be implemented in the testing or practice with methods and materials equivalent or similar to those described herein.
  • 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.
  • 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.

Claims (16)

1. A data processing system, comprising:
an 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 profiler arranged to generate a user application use profile by analyzing the user activities in respect to the applications, and to assign each process a priority relating to the analysis of the user activity, user preferences and the user application use profile; and
a scheduler arranged to schedule the processes in respect to the assigned priorities such as to enhance processes with a high priority, and such as to adapt an allocation of the computing resources to the user application use profile.
2. The data processing system of claim 1, wherein the database 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 scheduler comprises a Smart Scheduling Component (SSC) implementing a scheduling algorithm arranged to create and control the processing schedule such as to maximize the use of computer resources by analyzing data relating to the computing resources and process requirements.
6. The data processing system of claim 1, wherein the scheduler comprises a Scheduler Controller Gateway (SCG) arranged to monitor and control communication between an operating system running the processes with the computing resources and the applications.
7. The data processing system of claim 1, wherein the database, the profiler and the scheduler are embedded within an operating system running the processes with the computing resources.
8. The data processing system of claim 1, wherein at least one of: the database; the profiler; and the scheduler, are associated with an operating system running the processes with the computing resources via a plug-in or an add-on.
9. The data processing system of claim 1, further comprising a scheduling application programming interface (API) arranged to allow incorporation of processes of an external software in the plurality of processes.
10. A computer implemented method comprising:
classifying a plurality of processes relating to a plurality of applications and using a plurality of computing resources, wherein at least some of the processes relate to a user activity, and wherein the classification is carried our in respect to the user activity;
generating a user application use profile by analyzing the user activity in respect to the applications;
assigning each process a priority relating to the analysis of the user activity, user preferences and the user application use profile; and
scheduling the processes in respect to the assigned priorities such as to enhance processes with a high priority,
wherein the scheduling is carried out such as to adapt an allocation of the computing resources to the user application use profile, and
wherein at least one of: the classifying; the generating; the assigning; and the scheduling, is performed by at least one computer.
11. The computer implemented method of claim 10, wherein the plurality of processes comprises all processes relating to the computer resources.
12. The computer implemented method of claim 10, further comprising monitoring and analyzing the processes' use of the computing resources.
13. The computer implemented method of claim 10, further comprising maximizing computer resources use by analyzing data relating to the computing resources and process requirements.
14. The computer implemented method of claim 10, further comprising monitoring and controlling communication between an operating system running the processes with the computing resources and the applications.
15. The computer implemented method of claim 10, further comprising incorporating processes of external software in the plurality of processes.
16. The computer implemented method of claim 10, wherein the method is implemented within an existing operating system (OS) having an OS scheduler, wherein the method interacts with the OS scheduler such that scheduling of the OS scheduler is executed at least partially in accordance with the method.
US12/751,494 2009-04-01 2010-03-31 Computer applications scheduler Abandoned US20100257533A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/751,494 US20100257533A1 (en) 2009-04-01 2010-03-31 Computer applications scheduler

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US20275009P 2009-04-01 2009-04-01
US21345309P 2009-06-10 2009-06-10
US12/751,494 US20100257533A1 (en) 2009-04-01 2010-03-31 Computer applications scheduler

Publications (1)

Publication Number Publication Date
US20100257533A1 true US20100257533A1 (en) 2010-10-07

Family

ID=42827053

Family Applications (5)

Application Number Title Priority Date Filing Date
US12/751,631 Abandoned US20100257527A1 (en) 2009-04-01 2010-03-31 Computer applications classifier
US12/751,544 Active 2031-01-16 US9135104B2 (en) 2009-04-01 2010-03-31 Identifying frustration events of users using a computer system
US12/751,600 Active 2030-11-12 US8812909B2 (en) 2009-04-01 2010-03-31 Remedying identified frustration events in a computer system
US12/751,494 Abandoned US20100257533A1 (en) 2009-04-01 2010-03-31 Computer applications scheduler
US14/323,757 Active 2030-10-21 US9652317B2 (en) 2009-04-01 2014-07-03 Remedying identified frustration events in a computer system

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US12/751,631 Abandoned US20100257527A1 (en) 2009-04-01 2010-03-31 Computer applications classifier
US12/751,544 Active 2031-01-16 US9135104B2 (en) 2009-04-01 2010-03-31 Identifying frustration events of users using a computer system
US12/751,600 Active 2030-11-12 US8812909B2 (en) 2009-04-01 2010-03-31 Remedying identified frustration events in a computer system

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/323,757 Active 2030-10-21 US9652317B2 (en) 2009-04-01 2014-07-03 Remedying identified frustration events in a computer system

Country Status (1)

Country Link
US (5) US20100257527A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100257543A1 (en) * 2009-04-01 2010-10-07 Soluto Ltd Identifying frustration events of users using a computer system
US20120047509A1 (en) * 2010-08-23 2012-02-23 Yuval Ben-Itzhak Systems and Methods for Improving Performance of Computer Systems
US20120185776A1 (en) * 2011-01-14 2012-07-19 Microsoft Corporation Analyzing resource consumption of software executing during a usage scenario
US20130006955A1 (en) * 2011-06-28 2013-01-03 Amadeus S.A.S Method and system for processing data for database modification
CN103946802A (en) * 2011-11-08 2014-07-23 布尔简易股份公司 Method, computer program, and device for allocating computer resources of a cluster for carrying out a job controlled by said cluster
US20150006593A1 (en) * 2013-06-27 2015-01-01 International Business Machines Corporation Managing i/o operations in a shared file system
EP3203422A1 (en) * 2016-01-21 2017-08-09 Accenture Global Solutions Limited Intelligent scheduling and work item allocation
US20180189485A1 (en) * 2017-01-05 2018-07-05 Tata Consultancy Services Limited System and method for consent centric data compliance checking
US20200034156A1 (en) * 2018-07-25 2020-01-30 Futurewei Technologies, Inc. Resource Optimization and Reuse in Resource Constrained Environment

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209759B2 (en) * 2005-07-18 2012-06-26 Q1 Labs, Inc. Security incident manager
US10387927B2 (en) 2010-01-15 2019-08-20 Dell Products L.P. System and method for entitling digital assets
US9256899B2 (en) 2010-01-15 2016-02-09 Dell Products, L.P. System and method for separation of software purchase from fulfillment
US9235399B2 (en) 2010-01-15 2016-01-12 Dell Products L.P. System and method for manufacturing and personalizing computing devices
US9100396B2 (en) 2010-01-29 2015-08-04 Dell Products L.P. System and method for identifying systems and replacing components
US8170783B2 (en) 2010-03-16 2012-05-01 Dell Products L.P. System and method for handling software activation in entitlement
US8707087B2 (en) * 2010-05-18 2014-04-22 Dell Products L.P. Restoration of an image backup using information on other information handling systems
WO2012094021A1 (en) * 2011-01-07 2012-07-12 Empire Technology Development Llc Quantifying frustration via a user interface
US8522137B1 (en) * 2011-06-30 2013-08-27 Zynga Inc. Systems, methods, and machine readable media for social network application development using a custom markup language
US9727232B2 (en) * 2011-09-30 2017-08-08 Nokia Technologies Oy Methods, apparatuses, and computer program products for improving device behavior based on user interaction
US8949401B2 (en) 2012-06-14 2015-02-03 Dell Products L.P. Automated digital migration
US8468139B1 (en) 2012-07-16 2013-06-18 Dell Products L.P. Acceleration of cloud-based migration/backup through pre-population
US9779219B2 (en) 2012-08-09 2017-10-03 Dell Products L.P. Method and system for late binding of option features associated with a device using at least in part license and unique ID information
GB201322317D0 (en) 2013-12-17 2014-01-29 Ibm Computer system processes
US10282171B2 (en) 2015-03-30 2019-05-07 Hewlett Packard Enterprise Development Lp Application analyzer for cloud computing
US11106337B2 (en) * 2016-03-11 2021-08-31 Sap Se Adaptation of user interfaces based on a frustration index
US11237950B2 (en) 2020-01-02 2022-02-01 International Business Machines Corporation Quantifying tester sentiment during a development process
US11327747B2 (en) 2020-09-08 2022-05-10 International Business Machines Corporation Sentiment based offline version modification

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040226015A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Multi-level computing resource scheduling control for operating system partitions
US20050132014A1 (en) * 2003-12-11 2005-06-16 Microsoft Corporation Statistical models and methods to support the personalization of applications and services via consideration of preference encodings of a community of users
US20050222819A1 (en) * 2004-04-02 2005-10-06 International Business Machines Corporation System, method, and service for efficient allocation of computing resources among users
US20070240161A1 (en) * 2006-04-10 2007-10-11 General Electric Company System and method for dynamic allocation of resources in a computing grid
US20080222647A1 (en) * 2005-10-03 2008-09-11 Neil Allen Taylor Method and system for load balancing of computing resources
US20090183168A1 (en) * 2008-01-16 2009-07-16 Satoshi Uchida Resource allocation system, resource allocation method and program
US7640547B2 (en) * 2002-02-08 2009-12-29 Jpmorgan Chase & Co. System and method for allocating computing resources of a distributed computing system
US20100131959A1 (en) * 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
US20100169893A1 (en) * 2008-12-31 2010-07-01 Dell Products L.P. Computing Resource Management Systems and Methods
US8156502B1 (en) * 2007-06-08 2012-04-10 Hewlett-Packard Development Company, L.P. Computer resource allocation as a function of demand type

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8326965B2 (en) * 2001-05-03 2012-12-04 Hewlett-Packard Development Company, L.P. Method and apparatus to extract the health of a service from a host machine
US6694308B2 (en) * 2001-07-23 2004-02-17 Hewlett-Packard Development Company, L.P. System and method for user adaptive software interface
US7280988B2 (en) * 2001-12-19 2007-10-09 Netuitive, Inc. Method and system for analyzing and predicting the performance of computer network using time series measurements
US20040103193A1 (en) * 2002-11-08 2004-05-27 Pandya Suketu J. Response time and resource consumption management in a distributed network environment
US8332263B2 (en) * 2002-12-19 2012-12-11 Oracle International Corporation System and method for configuring scoring rules and generating supplier performance ratings
US20040176991A1 (en) * 2003-03-05 2004-09-09 Mckennan Carol System, method and apparatus using biometrics to communicate dissatisfaction via stress level
US7266726B1 (en) * 2003-11-24 2007-09-04 Time Warner Cable Inc. Methods and apparatus for event logging in an information network
US8347268B2 (en) * 2006-10-13 2013-01-01 Infosys Limited Automated performance monitoring
US7984139B2 (en) * 2006-12-22 2011-07-19 Business Objects Software Limited Apparatus and method for automating server optimization
US9524296B2 (en) * 2006-12-29 2016-12-20 Teradata Us, Inc. Managing events in a computing environment
US7890318B2 (en) * 2007-05-23 2011-02-15 Xerox Corporation Informing troubleshooting sessions with device data
US8082218B2 (en) * 2007-08-21 2011-12-20 Microsoft Corporation Analysis of software conflicts
US8510123B2 (en) * 2007-12-17 2013-08-13 Smooth Productions Inc. Communications system and method for serving electronic content
US8932368B2 (en) * 2008-04-01 2015-01-13 Yougetitback Limited Method for monitoring the unauthorized use of a device
US20100082516A1 (en) * 2008-09-29 2010-04-01 Microsoft Corporation Modifying a System in Response to Indications of User Frustration
US20100121954A1 (en) * 2008-11-13 2010-05-13 Zheng Yang Communication Method and System Using User ID-Based Domain Name
US20100257527A1 (en) * 2009-04-01 2010-10-07 Soluto Ltd Computer applications classifier

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640547B2 (en) * 2002-02-08 2009-12-29 Jpmorgan Chase & Co. System and method for allocating computing resources of a distributed computing system
US20040226015A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Multi-level computing resource scheduling control for operating system partitions
US20050132014A1 (en) * 2003-12-11 2005-06-16 Microsoft Corporation Statistical models and methods to support the personalization of applications and services via consideration of preference encodings of a community of users
US20050222819A1 (en) * 2004-04-02 2005-10-06 International Business Machines Corporation System, method, and service for efficient allocation of computing resources among users
US20080222647A1 (en) * 2005-10-03 2008-09-11 Neil Allen Taylor Method and system for load balancing of computing resources
US20070240161A1 (en) * 2006-04-10 2007-10-11 General Electric Company System and method for dynamic allocation of resources in a computing grid
US8156502B1 (en) * 2007-06-08 2012-04-10 Hewlett-Packard Development Company, L.P. Computer resource allocation as a function of demand type
US20090183168A1 (en) * 2008-01-16 2009-07-16 Satoshi Uchida Resource allocation system, resource allocation method and program
US20100131959A1 (en) * 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
US20100169893A1 (en) * 2008-12-31 2010-07-01 Dell Products L.P. Computing Resource Management Systems and Methods

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652317B2 (en) 2009-04-01 2017-05-16 Soluto Ltd Remedying identified frustration events in a computer system
US9135104B2 (en) 2009-04-01 2015-09-15 Soluto Ltd Identifying frustration events of users using a computer system
US20100257543A1 (en) * 2009-04-01 2010-10-07 Soluto Ltd Identifying frustration events of users using a computer system
US20120047509A1 (en) * 2010-08-23 2012-02-23 Yuval Ben-Itzhak Systems and Methods for Improving Performance of Computer Systems
US9280391B2 (en) * 2010-08-23 2016-03-08 AVG Netherlands B.V. Systems and methods for improving performance of computer systems
US20120185776A1 (en) * 2011-01-14 2012-07-19 Microsoft Corporation Analyzing resource consumption of software executing during a usage scenario
US20130006955A1 (en) * 2011-06-28 2013-01-03 Amadeus S.A.S Method and system for processing data for database modification
US9086927B2 (en) * 2011-06-28 2015-07-21 Amadeus S.A.S. Method and system for processing data for database modification
CN103946802A (en) * 2011-11-08 2014-07-23 布尔简易股份公司 Method, computer program, and device for allocating computer resources of a cluster for carrying out a job controlled by said cluster
US20140310718A1 (en) * 2011-11-08 2014-10-16 Bull Sas Method, computer program and device for allocating computer resources of a cluster for executing a task submitted to said cluster
US9880887B2 (en) * 2011-11-08 2018-01-30 Bull Sas Method, computer program and device for allocating computer resources of a cluster for executing a task submitted to said cluster
US9244939B2 (en) * 2013-06-27 2016-01-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Managing I/O operations in a shared file system
US20160110219A1 (en) * 2013-06-27 2016-04-21 Lenovo Entpr Solutions Singapore Pte Ltd Managing i/o operations in a shared file system
US20150006593A1 (en) * 2013-06-27 2015-01-01 International Business Machines Corporation Managing i/o operations in a shared file system
US9772877B2 (en) * 2013-06-27 2017-09-26 Lenovo Enterprise Solution (Singapore) PTE., LTD. Managing I/O operations in a shared file system
EP3203422A1 (en) * 2016-01-21 2017-08-09 Accenture Global Solutions Limited Intelligent scheduling and work item allocation
US20180189485A1 (en) * 2017-01-05 2018-07-05 Tata Consultancy Services Limited System and method for consent centric data compliance checking
US11003768B2 (en) * 2017-01-05 2021-05-11 Tata Consultancy Services Limited System and method for consent centric data compliance checking
US20200034156A1 (en) * 2018-07-25 2020-01-30 Futurewei Technologies, Inc. Resource Optimization and Reuse in Resource Constrained Environment

Also Published As

Publication number Publication date
US9652317B2 (en) 2017-05-16
US20100257527A1 (en) 2010-10-07
US20100257543A1 (en) 2010-10-07
US9135104B2 (en) 2015-09-15
US20140325269A1 (en) 2014-10-30
US20100257185A1 (en) 2010-10-07
US8812909B2 (en) 2014-08-19

Similar Documents

Publication Publication Date Title
US20100257533A1 (en) Computer applications scheduler
US9280391B2 (en) Systems and methods for improving performance of computer systems
US10133602B2 (en) Adaptive contention-aware thread placement for parallel runtime systems
Polo et al. Resource-aware adaptive scheduling for mapreduce clusters
Zheng et al. Goldrush: Resource efficient in situ scientific data analytics using fine-grained interference aware execution
US8849891B1 (en) Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system
Juhnke et al. Multi-objective scheduling of BPEL workflows in geographically distributed clouds
Piraghaj et al. Efficient virtual machine sizing for hosting containers as a service (services 2015)
US9396028B2 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US20130219385A1 (en) Batch scheduler management of virtual machines
US10102042B2 (en) Prioritizing and distributing workloads between storage resource classes
US11467874B2 (en) System and method for resource management
Tang et al. Dynamic memory-aware scheduling in spark computing environment
Schulte et al. Introducing the vienna platform for elastic processes
Sfakianakis et al. Skynet: Performance-driven resource management for dynamic workloads
Walraven et al. Adaptive performance isolation middleware for multi-tenant saas
KR20090081749A (en) The device and method of resource monitoring for application
Alam et al. An NBDMMM algorithm based framework for allocation of resources in cloud
Rumi et al. Optimization techniques within the hadoop eco-system: A survey
De Sensi et al. Nornir: A customizable framework for autonomic and power-aware applications
Qouneh et al. Optimization of resource allocation and energy efficiency in heterogeneous cloud data centers
Meyer et al. Towards interference-aware dynamic scheduling in virtualized environments
Panahi et al. The design and implementation of service reservations in Real-Time SOA
Atrey et al. BRAHMA+: A framework for resource scaling of streaming and ASAP time-varying workflows
Wust et al. Dynamic query prioritization for in-memory databases

Legal Events

Date Code Title Description
AS Assignment

Owner name: SOLUTO LTD, ISRAEL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DVIR, TOMER;GREEN, ISHAY;TAM, LIRAN;AND OTHERS;REEL/FRAME:024180/0750

Effective date: 20100321

AS Assignment

Owner name: SOLUTO LTD, ISRAEL

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE INVENTOR NAME PREVIOUSLY RECORDED AT REEL: 024180 FRAME: 0750. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNORS:DVIR, TOMER;GREEN, ISHAY;TAM, LIRAN;AND OTHERS;SIGNING DATES FROM 20100321 TO 20140715;REEL/FRAME:033330/0553

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION