Operating system based on dual system paradigm

Through the metacognitive agent of the operating system, monitoring and managing resource consumption of mobile devices and edge devices is achieved, efficient functional execution in resource-constrained environments, solving the problems of loss of functions and unpredictability of devices in resource-constrained environments.

CN119907969APending Publication Date: 2025-04-29INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380067473.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-29
Filing Date
2023-09-06
Publication Date
2025-04-29

AI Technical Summary

Technical Problem

Mobile and edge devices have difficulty performing functions correctly in resource-constrained environments, resulting in loss of functionality and unpredictable results.

Method used

The operating system's metacognitive agent monitors the physical resource consumption of the computing device by monitoring the software program, and decides to switch the operating mode of the software program based on the monitoring data, and switches from high resource consumption mode to low resource consumption mode.

Benefits of technology

It effectively reduces the physical resource consumption of software programs on computing devices, extends the device's usage time and improves the stability of functions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119907969A_ABST
    Figure CN119907969A_ABST
Patent Text Reader

Abstract

Example operations may include one or more of invoking execution of a plurality of software programs having a first mode of operation via an operating system, the first mode of operation causing the plurality of software programs to operate in a first resource consumption mode, the method includes receiving a plurality of software programs from a computing device, monitoring physical resources of the computing device consumed by execution of the plurality of software programs, determining, based on the monitored physical resources, that consumption of the physical resources of the computing device by the plurality of software programs is reduced or allowed to be expanded, and in response to the determination, determining that the physical resources of the computing device are expanded by the plurality of software programs. Switching from a first operating mode of a software program of the plurality of software programs to a second operating mode of the software program, the second operating mode causing the software program to operate in a second resource consumption mode that consumes less or more physical resources than the first resource consumption mode.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Mobile devices and edge devices such as smartphones, tablets, smart wearables, appliances, etc. often struggle with core functionality in resource-constrained settings. For example, as resources of a mobile device such as battery power, network connectivity, processor load, storage capacity, etc. become limited, the functionality of the mobile device's operating system and associated applications (apps) may become impaired, resulting in loss of functionality and unpredictable results from critical applications. Summary of the invention

[0002] An example embodiment provides a device comprising: a memory storing an operating system; and a processor configured to call, via the operating system, the execution of multiple software programs having a first operating mode, wherein the first operating mode causes the multiple software programs to operate in a first resource consumption mode, monitor physical resources of a computing device consumed by the execution of the multiple software programs, determine based on the monitored physical resources to reduce consumption of the physical resources of the computing device by the multiple software programs, and in response to the determination, switch from the first operating mode of a software program among the multiple software programs to a second operating mode of the software program, wherein the second operating mode causes the software program to operate in a second resource consumption mode, wherein the second resource consumption mode consumes fewer physical resources than the first resource consumption mode.

[0003] Another example embodiment provides a device, comprising: a memory, which stores an operating system; and a processor, which is configured to call the execution of multiple software programs having a first operating mode via the operating system, the first operating mode causing the multiple software programs to operate in a first resource consumption mode, monitor physical resources of a computing device consumed by the execution of the multiple software programs, determine to increase the consumption of the physical resources of the computing device by the multiple software programs based on the monitored physical resources, and in response to the determination, switch from the first operating mode of a software program among the multiple software programs to a second operating mode of the software program, the second operating mode causing the software program to operate in a second resource consumption mode, and the second resource consumption mode consumes more physical resources than the first resource consumption mode.

[0004] Another example embodiment provides a method, which includes: calling the execution of multiple software programs having a first operating mode via the operating system, the first operating mode causing the multiple software programs to operate in a first resource consumption mode, monitoring physical resources of a computing device consumed by the execution of the multiple software programs, determining to reduce consumption of the physical resources of the computing device by the multiple software programs based on the monitored physical resources, and in response to the determination, switching from the first operating mode of a software program among the multiple software programs to a second operating mode of the software program, the second operating mode causing the software program to operate in a second resource consumption mode, the second resource consumption mode consuming fewer physical resources than the first resource consumption mode.

[0005] Another example embodiment provides a computer-readable medium comprising instructions, which, when a processor reads the instructions, causes the processor to perform one or more of the following operations: calling, via the operating system, the execution of multiple software programs having a first operating mode, wherein the first operating mode causes the multiple software programs to operate in a first resource consumption mode, monitoring physical resources of a computing device consumed by the execution of the multiple software programs, determining based on the monitored physical resources to reduce consumption of the physical resources of the computing device by the multiple software programs, and in response to the determination, switching from the first operating mode of a software program among the multiple software programs to a second operating mode of the software program, wherein the second operating mode causes the software program to operate in a second resource consumption mode, wherein the second resource consumption mode consumes fewer physical resources than the first resource consumption mode. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] The patent or application file contains at least one drawing drawn in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.

[0007] Figure 1 is a diagram illustrating a cloud computing environment interacting with various devices according to an example embodiment.

[0008] Figure 2A is a diagram illustrating abstract model layers of a cloud computing environment according to an example embodiment.

[0009] Figure 2B is a diagram illustrating an operating system implementing a dual system paradigm according to an example embodiment.

[0010] Figures 3A-3C is a diagram illustrating an example of a permission network according to an example embodiment.

[0011] Figure 3Dis a diagram illustrating a machine learning process via a cloud computing platform according to an example embodiment.

[0012] Figure 3E is a diagram illustrating a quantum computing environment associated with a cloud computing platform according to an example embodiment.

[0013] Figure 4A is a diagram illustrating a process of executing a plurality of software programs according to an example embodiment.

[0014] Figure 4B is a diagram showing a modification according to an exemplary embodiment Figure 4A A diagram of the process of execution of multiple software programs in.

[0015] Figure 5 is a diagram illustrating a method of reducing resource consumption in a resource-constrained environment according to an example embodiment.

[0016] Figure 6 is a diagram illustrating an example of a computing system that supports one or more example embodiments. DETAILED DESCRIPTION

[0017] It should be understood that although the present disclosure includes a detailed description of cloud computing, the implementation of the teachings set forth herein is not limited to a cloud computing environment. Instead, embodiments of the present invention can be implemented in conjunction with any other type of computing environment now known or later developed.

[0018] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be quickly provisioned and released with minimal management effort or interaction with the provider of the service. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0019] Examples of cloud computing features that may be associated with example embodiments include the following.

[0020] On-demand self-service: Cloud consumers can unilaterally and automatically provision computing capabilities, such as server time and network storage, as needed without requiring manual interaction with the service provider.

[0021] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0022] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. There is location independence in the sense that consumers typically do not control or know the exact location of the resources provided, but are able to specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0023] Rapid elasticity: In some cases, the ability to scale out quickly and in quickly can be provisioned quickly and elastically. To the consumer, the capacity available for provisioning often appears to be unlimited and can be purchased in any quantity at any time.

[0024] Measurable services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the utilized services.

[0025] Examples of service models that may be associated with example embodiments include the following:

[0026] Software as a Service (SaaS): The capability provided to the consumer is to use the provider's applications running on the cloud infrastructure. The applications are accessible from a variety of client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0027] Platform as a Service (PaaS): The capability provided to consumers is to deploy consumer-created or acquired applications onto cloud infrastructure, where the applications are created using programming languages ​​and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possible configuration of the application hosting environment.

[0028] Infrastructure as a Service (IaaS): The capabilities provided to consumers are processing, storage, networking, and other basic computing resources on which consumers can deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0029] Examples of deployment models that may be associated with example embodiments include the following:

[0030] Private cloud: The cloud infrastructure is operated only for the organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0031] Community cloud: The cloud infrastructure is shared by several organizations and supports a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0032] Public cloud: Cloud infrastructure is available to the general public or large industrial groups and is owned by an organization that sells cloud services.

[0033] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community or public) that remain a unique entity but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0034] The cloud computing environment is service-oriented, with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure consisting of a network of interconnected nodes.

[0035] The cloud platform may host various applications and services used by network-connected devices such as mobile devices, edge devices, etc. When a mobile device or edge device (such as a smartphone) operates in a resource-constrained environment, it may be difficult for the device to perform functions correctly. For example, limitations resulting from processor load, battery level, network bandwidth, etc. may limit or otherwise restrict the ability of the device to operate correctly.

[0036] The present application relates to an operating system (e.g., for mobile devices, etc.) based on the system one and system two paradigm introduced by Kahneman and Tversky, "Daniel Kahneman, Thinking Fast and Slow, Farrar, Straus and Giroux, New York, 2011," referred to herein as the dual-system paradigm. In the related art, an operating system may include software programs, such as applications or task handlers, for the various services it provides to the device on which it is running. According to various embodiments, compared to the related art, an operating system may include two (or more) independent versions of each software program and / or task handler, including a system one (S1) version that requires fewer resources than a system two (S2) version that runs in an environment that is less restricted in terms of resources and allows software programs to run more robustly. That is, the S2 version consumes more resources than the S1 version of the software.

[0037] The operating system may also include a metacognitive agent configured to monitor resources consumed by software programs and task processors (e.g., CPU, RAM, storage, network bandwidth, input-output (I / O), etc.) and selectively switch software programs between a more resource-consuming mode of operation (S2 version) and a more resource-constrained mode of operation (S1 version). For example, the metacognitive agent may selectively shut down an S2 version of a software application and invoke an S1 version of the software application in its place so that the software application reduces consumption of any of the device's CPU, RAM, storage, network bandwidth, I / O, etc. The metacognitive agent may also selectively launch software applications in S1 or S2 mode based on the expected load on the system as collected from historical usage patterns. The resource requirements (e.g., S1 and S2) for each software application or task processor may be stored in a configuration file of the metacognitive portion of the operating system to be utilized when making evaluations about which versions to invoke.

[0038] In some embodiments, the metacognitive agent may store a dependency graph, such as an application dependency graph, that identifies priorities and prerequisites between different software programs and task handlers on a device. For example, a dependency graph may specify what application or task processor version (S1 vs. S2) another application or task processor version requires in order for the other application or task processor to work properly. The dependency graph may also include data that helps determine the results of throttling an application (and its task processor) from its S2 mode back to its S1 mode, or even shutting down the application / task processor all together. When determining to reduce the power consumed, the metacognitive agent may analyze the dependency graph to figure out which software program can be restricted before other software programs. In other words, the dependency graph can be used to identify which programs can be restricted and the priorities between programs when incorporating such restrictions.

[0039] For example, an apparatus hosting an example embodiment may include a memory storing an operating system and a processor executing the operating system. The operating system may be configured to invoke execution of a plurality of software programs via a plurality of first mode task handlers, the plurality of first mode task handlers causing the plurality of software programs to operate in a first resource consumption mode while monitoring a plurality of physical resources of a computing device on which the operating system is running, the plurality of physical resources being consumed by the execution of the plurality of software programs, and potentially determining to reduce consumption of the physical resources of the computing device by the plurality of software programs based on the monitored physical resources. In response to the determination, the operating system may switch from a first mode of software programs (or task handlers) to a second mode (or task handler) causing the plurality of software programs to operate in a second resource consumption mode that consumes fewer physical resources than the first resource consumption mode.

[0040] Some benefits of the present application include dynamic resource allocation. For example, as resources (e.g., battery, CPU, memory, network bandwidth, etc.) become more and more limited, OS should automatically allocate resources to the most important tasks, and either abandon less important tasks or limit their resource consumption, while letting the user know what it is doing within the practical scope. Other benefits include improved interdependency awareness. For example, effective dynamic allocation of resources can be performed based on the potential dependencies between various processes. In this case, the operating system can identify when a critical process may need input from a process that is not too necessary on the surface, and prevent both from being restricted. Another benefit is improved adaptability. For example, if the operating system receives an important task, but does not have enough resources to handle the task, the operating system should know how to automatically seize the less important task so that the more important task can be run with enough resources. In addition, the operating system can estimate the user value function of the quality of the result relative to the time spent on completing the task, and then the value function can be incorporated into the scheduling and resource management of the task.

[0041] Reference now Figure 1 , depicts an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which a local computing device used by a cloud consumer can communicate, such as a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automobile computer system 54N. The cloud computing nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or a combination thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service for which the cloud consumer does not need to maintain resources on a local computing device. It should be understood that Figure 1 The types of computing devices 54A-N shown in are intended for illustration only, and cloud computing node 10 and cloud computing environment 50 may communicate with any type of computing device over any type of network and / or network addressable connection (eg, using a web browser).

[0042] Reference now Figure 2A , showing that Figure 1 A set of functional abstraction layers provided by the cloud computing environment 50. It should be understood in advance that Figure 2AThe components, layers, and functions shown in are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided: Hardware and software layer 60 includes hardware and software components. Examples of hardware components include: host 61; server 62 based on RISC (Reduced Instruction Set Computer) architecture; server 63; blade server 64; storage device 65; and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68. Virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73, including virtual private network; virtual application and operating system 74; and virtual client 75. In one example, management layer 80 can provide the functions described below.

[0043] Resource provisioning 81 provides dynamic procurement of computing resources and other resources for performing tasks within a cloud computing environment. Metering and pricing 82 provides cost tracking when utilizing resources in a cloud computing environment, as well as bills or invoices for consuming these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management so that the required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides pre-arrangement and procurement of cloud computing resources, where future demand is anticipated based on the SLA.

[0044] The workload layer 90 provides examples of functions that can take advantage of the cloud computing environment. Examples of workloads and functions that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analysis processing 94; transaction processing 95; and other processing 96.

[0045] Figure 2B An operating system 210 implementing a dual system paradigm according to an example embodiment is shown. Figure 2B , operating system 210 includes multiple metacognitive agents 220. Although multiple agents are shown, it should be understood that the agent functions can be combined into a single agent, but for the purpose of example, they are shown as separate agents. In this example, metacognitive agents 220 include preemptive agents 221, supervisory agents 222, and dispatcher agents 223. Metacognitive agents 220 can run continuously in operating system 210 and are responsible for dispatching component task processors and applications of the system, preempting them and switching between their S1 and S2 variants.

[0046] The metacognitive agent 220 can monitor the performance of the hardware device on which the operating system 210 is installed. Figure 2B In the example, when the operating system determines to reduce the resources consumed by the application controlled by the S2 task processor, the preemption agent 221 is responsible for shutting down the S2 task processor and the throttling agent that supports continuous throttling. Occasionally, the preemption agent 221 may also be required to shut down the S1 agent. The supervisory agent 222 is responsible for monitoring resource consumption and balancing the expected utility associated with each application and service relative to its resource consumption when resources become limited. The supervisory agent 222 can also decide when to preempt the task processor and switch to the S1 or S2 variant or throttle the agent in the case of a continuously throttling agent. For example, the supervisory agent 222 can read data from a log or from a table stored on the device, which includes information such as storage usage / available capacity, RAM usage / available capacity, network bandwidth, battery power level, etc. The device information can be compared with a predefined threshold or a threshold determined dynamically by the system to determine to reduce the resource consumption of the device and switch at least one software program on the device from S2 mode to S1 mode. The scheduler agent 223 is responsible for scheduling the component agents of the system.

[0047] exist Figure 2B , the operating system 210 also includes a registry 230 of running applications and services, which includes a list of identifiers of applications and services currently running on the hardware device on which the operating system 210 is installed. The operating system 210 also includes a registry 240 of available applications and services (including those that are not currently running). The registry 240 includes identifiers of all applications and services available to the device. Each entry in the registry 240 can include the name of the corresponding software program (i.e., application, service, etc.), an indicator of whether the software program runs continuously, an indicator of whether the software program runs at system startup, the resource requirements of the software program, whether it has S1 and S2 versions, and if so, an estimated benefit of S2 operation relative to S1 operation.

[0048] The operating system 210 also includes a data store 260 with learned utilities of applications and services. Here, the operating system can store an estimate of the utility of running S2 mode versus S1 mode (or in the case of a continuously throttleable agent, running the agent at the highest throttle versus the lowest throttle). In addition, the data store 260 can store learned utilities of running different agents and services from each other. The operating system also includes a dependency graph 250 that identifies what other software programs (e.g., applications and services, etc.) each software program requires when running. Thus, the dependency graph 250 identifies the dependencies of other software programs relative to the target software program. These dependencies, along with the data stored in the registry 240 and the data store 260, can be used by the metacognitive agent 220 to determine when to reduce resource consumption and switch from S2 mode (e.g., slow and accurate) to S1 mode (e.g., fast but less accurate), and also to identify any software programs that should not be restricted (e.g., core functions, etc.) and to identify priorities between software programs that can be restricted.

[0049] The operating system 210 also includes a set of S1 agents 225 and a set of S2 agents 226 for one or more software programs and task processors. Here, any software program or task processor that can be switched between S2 mode (unlimited resource consumption) and S1 mode (limited resource consumption) will have two different instances, an S1 version and an S2 version. When the device is operating under conditions that are not harsh enough to require reduced resources, the operating system 210 (e.g., metacognitive agent 220, etc.) can use / call the S2 agent 226 to call the S2 version of the software program. When resources become limited, the operating system 210 can call the corresponding S1 version of the software program via the corresponding S1 agent 225, and shut down the S2 version of the software program via the corresponding S2 agent 226. If resource consumption should become sufficiently less limited at some future moment, the operating system 201 can call the S2 agent 226 again.

[0050] As another example, the operating system 210 may initially run one or more software programs in a resource-constrained mode (i.e., the S1 version of the corresponding software program). In some embodiments, this may even be the default mode. For example, if the operating system anticipates a high-load process or some other resource-consuming operation, this mode may be selected. If, after startup, the operating system 210 detects low utilization of the physical resources of the device, the operating system 210 may switch from the S1 version of the software program to the S2 version of the software program to replace the detected availability of the physical resources.

[0051] The operating system 210 also includes throttleable resources 224 that identify which software programs can have their resources continuously limited, and a heartbeat application / service 227 that identifies software programs that receive heartbeat messages and are never throttled. The heartbeat application / service is typically a critical / important system component.

[0052] The operating system 210 has various benefits over traditional operating systems. For example, dynamic resource allocation can be achieved via the metacognitive agent 220. As the system (e.g., the hardware device on which the operating system 210 is installed, etc.) becomes more and more resource-constrained, the supervisory agent 222 will call the preemption agent 221 to preempt more and more software programs. For example, the preemption agent 221 can preempt (or otherwise restrict) an application by shutting down the S2 version of the application and launching the corresponding S1 version in its place. On the other hand, if the system releases resources, the supervisory agent 222 will call the preemption agent 221 to shut down the S1 version 225 and launch the S2 version 226 in its place.

[0053] In addition, interdependency awareness can be achieved via a dependency graph 250 that identifies interdependencies between software programs on the system. Adaptation can be achieved via a data store 260 that includes learned utilities of applications and services, which feeds this data into the metacognitive agent 220 during the dynamic resource allocation process to ensure that the system adapts both in response to resource limitations and in response to learned (and potentially changing) user preferences over time. In addition, the operating system 210 performs continuous learning via a continuous learning system 260 of learned utilities of applications and services installed on the device. The continuous learning system 260 monitors user actions when resources become low and preemption is proposed. The continuous learning system 260 observes which applications and services users voluntarily shut down when resources become limited, and monitors which applications and services are most frequently requested and also learns from these choices. One or more machine learning models can be trained to help identify the most preferred software programs to be shut down and / or the priority between multiple software programs.

[0054] For example, the continuous learning system 260 may include one or more models that monitor and learn the utilities associated with running applications and / or task handlers compared to not running them. The model can learn the utilities of running an application or task handler in S2 mode versus in S1 mode, as well as the load that can be expected to run on the system, possibly learning it as a time-varying function. The user can veto the OS's decision. Thus, the operating system can receive feedback during the learning of these utilities. For example, when a user raises the priority of an application from S1 to S2, the system learns to upgrade its utility by a small amount. A given model is stored with an associated metacognitive agent responsible for building it as part of the OS. The exact machine learning model used is open to the user. Any form of regression model is possible.

[0055] Figures 3A-3E Various examples of additional features that can be used in association with the cloud computing environment described herein are provided. These examples should be considered additional extensions or additional examples of the embodiments described herein.

[0056] Figure 3A An example of a permissioned blockchain network 300 is shown, which features a distributed, decentralized peer-to-peer architecture. The blockchain network can interact with a cloud computing environment 50, allowing additional functionality such as peer authentication of data written to a distributed ledger. In this example, a blockchain user 302 can initiate a transaction to a permissioned blockchain 304. In this example, the transaction can be a deployment, call, or query, and can be issued through a client-side application utilizing an SDK, directly through an API, etc. The network can provide access to a regulator 306 (such as an auditor). The blockchain network operator 308 manages member permissions, such as registering a regulator 306 as an "auditor" and registering a blockchain user 302 as a "client." Auditors can be restricted to querying only the ledger, while clients can be authorized to deploy, call, and query certain types of chaincodes.

[0057] Blockchain developers 310 can write chaincodes and client applications. Blockchain developers 310 can deploy chaincodes directly to the network through an interface. In order to include credentials from traditional data sources 312 in the chaincode, developers 310 can use out-of-band connections to access the data. In this example, blockchain users 302 connect to the permissioned blockchain 304 through peer nodes 314. Before any transaction is made, peer nodes 314 retrieve the user's registration and transaction certificates from the certificate authority 316 that manages user roles and permissions. In some cases, blockchain users must have these digital certificates in order to trade on the permissioned blockchain 304. At the same time, users who attempt to utilize chaincodes may need to verify their credentials on traditional data sources 312. In order to confirm the user's authorization, the chaincode can use an out-of-band connection to the data through a traditional processing platform 318.

[0058] Figure 3B Another example of a permissioned blockchain network 320 is shown, featuring a distributed, decentralized peer-to-peer architecture. In this example, a blockchain user 322 may submit transactions to a permissioned blockchain 324. In this example, a transaction may be a deployment, call, or query, and may be issued through a client-side application utilizing an SDK, directly through an API, or the like. The network may provide access to regulators 326, such as auditors. A blockchain network operator 328 manages member permissions, such as registering regulators 326 as “auditors” and blockchain users 322 as “clients.” Auditors may be restricted to querying only the ledger, while clients may be authorized to deploy, call, and query certain types of chaincodes.

[0059] Blockchain developers 330 write chaincodes and client applications. Blockchain developers 330 can deploy chaincodes directly to the network through interfaces. In order to include credentials from traditional data sources 332 in chaincodes, developers 330 can use out-of-band connections to access data. In this example, blockchain users 322 connect to the network through peer nodes 334. Before conducting any transactions, peer nodes 334 retrieve the user's registration and transaction certificates from certificate authorities 336. In some cases, blockchain users must have these digital certificates in order to trade on the permissioned blockchain 324. At the same time, users trying to use chaincodes may need to verify their certificates on traditional data sources 332. To confirm the user's authorization, the chaincode can use an out-of-band connection to the data through a traditional processing platform 338.

[0060] In some embodiments, the blockchain herein may be a permissionless blockchain. In contrast to a permissioned blockchain that requires permission to join, anyone can join a permissionless blockchain. For example, to join a permissionless blockchain, a user can create a personal address and begin interacting with the network by submitting transactions and thereby adding entries to the ledger. Additionally, all parties may choose to run nodes on the system and employ a mining protocol to help validate transactions.

[0061] Figure 3C A process 350 of a transaction processed by a permissionless blockchain 352 including a plurality of nodes 354 is shown. A sender 356 desires to send a payment or some other form of value (e.g., a deed, medical record, contract, goods, services, or any other asset that can be encapsulated in a digital record) to a receiver 358 via the permissionless blockchain 352. In one embodiment, each of the sender device 356 and the receiver device 358 may have a digital wallet (associated with the blockchain 352) that provides user interface controls and display of transaction parameters. In response, the transaction is broadcast to the nodes 354 throughout the blockchain 352. Depending on the network parameters of the blockchain 352, the nodes verify 360 the transaction based on rules established by the creator of the permissionless blockchain 352 (which may be predefined or dynamically assigned). For example, this may include verifying the identities of the parties involved, etc. The transaction may be verified immediately, or it may be placed in a queue with other transactions, and the nodes 354 determine whether the transaction is valid based on a set of network rules.

[0062] In structure 362, valid transactions are formed into blocks and sealed with locks (hashes). This process can be performed by a mining node in node 354. The mining node can utilize additional software dedicated to mining and creating blocks of the permissionless blockchain 352. Each block can be identified by a hash (e.g., a 256-bit number, etc.) created using an algorithm agreed upon by the network. Each block can include a header, a pointer or reference to the hash of the previous block header in the chain, and a set of valid transactions. The reference to the previous block hash is associated with the creation of a secure independent block chain.

[0063] Before blocks can be added to the blockchain, they must be verified. Verification of the permissionless blockchain 352 may include proof of work (PoW) as a solution to a puzzle derived from the header of the block. Figure 3C Not shown in the example, but another process for validating blocks is Proof of Stake. Unlike Proof of Work, where an algorithm rewards miners for solving mathematical problems, with Proof of Stake, the creators of new blocks are selected in a deterministic manner based on their wealth, also defined as “stake”. Similar proofs are then performed by the selected / chosen nodes.

[0064] Through mining 364, nodes attempt to solve the block by incrementally changing a variable until the solution meets a network-wide goal. This creates a PoW, thereby ensuring a correct answer. In other words, a potential solution must prove that computing resources are exhausted in solving the problem. In some types of permissionless blockchains, miners can be rewarded with value (e.g., coins, etc.) for correctly mining a block.

[0065] Here, the PoW process, together with the block chain, makes modification of the block chain extremely difficult, as an attacker must modify all subsequent blocks in order for a modification of a block to be accepted. In addition, as new blocks are mined, the difficulty of modifying blocks increases, and the number of subsequent blocks increases. Through distribution, successfully verified blocks are distributed through the permissionless blockchain 352, and all nodes 354 add the block to the majority chain, which is an auditable ledger of the permissionless blockchain 352. In addition, the value in the transaction submitted by the sender 356 is deposited or otherwise transferred to the digital wallet of the recipient device 358.

[0066] Figure 3D and 3E Additional examples of use cases for cloud computing that may be incorporated and used herein are shown. Figure 3D An example 370 of a cloud computing environment 50 storing machine learning (artificial intelligence) data is shown. Machine learning relies on large amounts of historical data (or training data) to build predictive models for making accurate predictions about new data. Machine learning software (e.g., neural networks, etc.) can often sift through millions of records to find non-intuitive patterns.

[0067] exist Figure 3D In the example of , host platform 376 builds and deploys a machine learning model for predictive monitoring of asset 378. Here, host platform 366 may be a cloud platform, an industrial server, a web server, a personal computer, a user device, etc. Asset 378 may be any type of asset (e.g., a machine or equipment, etc.), such as an airplane, a locomotive, a turbine, medical machinery and equipment, oil and gas equipment, a ship, a vessel, a vehicle, etc. As another example, asset 378 may be a non-tangible asset, such as a stock, currency, a digital currency, insurance, etc.

[0068] The cloud computing environment 50 can be used to significantly improve both the training process 372 of the machine learning model and the prediction process 374 based on the trained machine learning model. For example, in 372, historical data can be stored on the cloud computing environment 50 by the asset 378 itself (or through a medium, not shown), rather than requiring a data scientist / engineer or another user to collect the data, which can significantly reduce the collection time required by the host platform 376 when performing predictive model training. For example, data can be directly and reliably transferred directly from its original location to the cloud computing environment 50. By using the cloud computing environment 50 to ensure the security and ownership of the collected data, smart contracts can send data directly from the asset to the individual who uses the data to build a machine learning model. This allows data to be shared between assets 378.

[0069] In addition, training the machine learning model on the collected data can be performed by the host platform 376 for several rounds of refinement and testing. Each round can be based on additional data or data that was not previously considered to help expand the knowledge of the machine learning model. In 372, the different training and testing steps (and the data associated therewith) can be stored by the host platform 376 on the cloud computing environment 50. Each refinement of the machine learning model (e.g., changes in variables, weights, etc.) can be stored in the cloud computing environment 50 to provide verifiable proof of how the model was trained and what data was used to train the model. For example, the machine learning model can be stored on a blockchain to provide verifiable evidence. In addition, when the host platform 376 has implemented the trained model, the resulting model can be stored on the cloud computing environment 50.

[0070] After the model has been trained, it can be deployed to a field environment where predictions / decisions can be made based on the execution of the final trained machine learning model. For example, in 374, the machine learning model can be used for condition-based maintenance (CBM) of assets such as aircraft, wind turbines, healthcare machines, etc. In this example, data fed back from asset 378 can be input into the machine learning model and used to make event predictions, such as failure events, error codes, etc. The determination made by executing the machine learning model at the host platform 376 can be stored on the cloud computing environment 50 to provide auditable / verifiable proof. As a non-limiting example, the machine learning model can predict a future failure / failure of a portion of the asset 378 and create an alert or notification to replace the portion. The data behind the decision can be stored by the host platform 376 and / or stored on the cloud computing environment 50, and in one embodiment, the features and / or actions described and / or depicted herein can occur on or with respect to the cloud computing environment 50.

[0071] Figure 3EAn example 380 of a quantum-safe cloud computing environment 382 is shown that implements quantum key distribution (QKD) to prevent quantum computing attacks. In this example, cloud computing users can verify each other's identities using QKD. This uses quantum particles such as photons to send information, which an eavesdropper cannot copy without destroying the quantum particles. In this way, the sender and receiver can be confident of each other's identities through the cloud computing environment.

[0072] exist Figure 3E In the example of , there are four users 384, 386, 388, and 390. Each pair of users can share a key 392 between themselves (i.e., QKD). Since there are four nodes in this example, there are six pairs of nodes, so six different keys 392 are used, including QKD AB , QKD AC , QKD AD , QKD BC , QKD BD and QKD CD Each pair can create a QKD by sending information using quantum particles such as photons, which an eavesdropper cannot copy without destroying the QKD. In this way, a pair of users can be confident of each other's identity.

[0073] The operation of the cloud computing environment 382 is based on two processes: (i) the creation of transactions, and (ii) the construction of blocks that aggregate new transactions. New transactions can be created similarly to traditional networks such as blockchain networks. Each transaction can contain information about the sender, the receiver, the creation time, the amount (or value) to be transferred, a list of reference transactions that prove that the sender has funds for the operation, etc. The transaction record is then sent to all other nodes, where it is entered into a pool of unconfirmed transactions. Here, two parties (i.e., a pair of users in 384-390) authenticate the transaction by providing their shared secret key 392 (QKD). The quantum signature can be attached to each transaction, making it very difficult to tamper with. Each node checks its entry on the local copy of the cloud computing environment 382 to verify that each transaction has sufficient funds.

[0074] Figure 4A shows a process of executing multiple software programs according to an example embodiment, and Figure 4B shows modifying when resources become limited according to an example embodiment Figure 4A The process of executing multiple software programs in a Figure 4A , multiple software programs are installed on the device, and include application 410, service 420, application 430, application 440, and service 450. Each of these software programs can be registered with the operating system of the device through a configuration file.

[0075] The configuration file may include information about the task processor and the software program, such as what the resource requirements of each version are, whether they are called by the user or the operating system, what the environment in which they are called is, etc. The configuration file may also include parameters for switching between the S2 version of the application (S2 mode) and the S1 version of the application (S1 mode). Each software program may include a corresponding configuration file provided to the operating system and used by the metacognitive agent 220 of the operating system. In addition, the operating system may learn the relationship between different applications and services, and establish or modify the dependency graph that the metacognitive agent 220 can use when deciding whether to switch from S2 mode to S1 mode or vice versa, and also identify which software programs should be restricted and which should not be restricted.

[0076] exist Figure 4A and 4B In the example of , the hardware device (not shown) includes an operating system having a metacognitive agent 220. In addition, the hardware device has installed an application 410, a service 420, an application 430, an application 440, and a service 450. Each of these software programs has two versions, an S1 version and an S2 version. For example, in Figure 4A In FIG. 4 , application 410 includes an S1 version and an S2 version.

[0077] exist Figure 4A In the example of , the metacognitive agent 220 may call default settings or non-restricted settings by calling the S2 versions of all applications. For example, when the device is turned on or initially loads an application, the metacognitive agent 220 may call the S2 version of application 420, as well as the S2 version of application 410, service 430, application 440, and service 450. To this end, the metacognitive agent 220 may trigger / call the corresponding S2 agents associated with the S2 versions of the corresponding applications and services. For example, in order to call the S2 version of application 420, the metacognitive agent may call the S2 agent 422 of the operating system, which communicates with the S2 version of application 420 and can turn it on or off. Similarly, the operating system may communicate with the corresponding S1 version of application 420 via the S1 agent 424 of the operating system.

[0078] Now refer to Figure 4B , the metacognitive agent 220 may monitor the performance of various device attributes based on the consumption of device attributes by software programs. Here, the monitored device attributes may include one or more of battery power, network bandwidth availability, input / output operations, available RAM capacity, CPU / processor load, etc. The metacognitive agent 220 may compare the performance level of one or more of these attributes to predefined or controlled Figure 2BThe continuous learning system 260 shown in FIG. 2 compares various thresholds of one or more attributes learned by the continuous learning system 260. The thresholds may be parameters of the operating system, and they may be stored in one or more of the hard disk of the device and the memory of the operating system.

[0079] In response to detecting one or more attributes having performance values ​​exceeding a threshold, the metacognitive agent 220 may determine to downgrade one or more applications from S2 mode to S1 mode, which is more resource-restrictive than S2 mode. For example, the metacognitive agent 220 may detect when the battery charge drops below a critical threshold level (e.g., 25% remaining, etc.). As another example, the metacognitive agent 220 may detect when the load on the device's CPU exceeds a predetermined threshold load (e.g., 80% utilization, etc.), and the metacognitive agent 220 may identify which applications are considered less important to the user or which applications are not a priority based on a configuration file and / or information learned by the continuous learning system 260, and downgrade the identified applications to S1 mode. As another example, the metacognitive agent 220 may identify which applications suffer the least degradation by switching from S2 mode to S1 mode, and downgrade these identified applications to S1 mode.

[0080] exist Figure 4B In the example of , the metacognitive agent 220 determines to downgrade the application 420, the application 440, and the service 450 from the S2 mode to the S1 mode. Here, the metacognitive agent 220 may instruct the S1 agent 424 to start the S1 version of the application 420, and may instruct the S2 agent 422 to shut down the S2 version of the application 420, thereby invoking the S1 version of the application 420, which operates in a resource-constrained manner, wherein the application 420 consumes fewer resources than in the S2 mode. For example, the application 420 may be suppressed to consume less battery, less bandwidth, less storage, less RAM, less processor load, etc.

[0081] Likewise, the metacognitive agent 220 may instruct the S1 agent 444 to launch the S1 version of the application 440, and may instruct the S2 agent 442 to shut down the S2 version of the application 440, thereby causing the application 440 to operate in a resource-constrained mode. In addition, the metacognitive agent 220 may instruct the S1 agent 454 to launch the S1 version of the application 450, and may instruct the S2 agent 452 to shut down the S2 version of the application 450, thereby causing the application 450 to operate in a resource-constrained mode. When the metacognitive agent 220 detects that resources are no longer constrained, the reverse process of the process may be performed. Likewise, the reverse process may slowly return the software programs to S2 mode one at a time or all at once.

[0082] Figure 5A method 500 for reducing resource consumption in a resource-constrained environment according to an example embodiment is illustrated. For example, the method 500 may be performed by a computer system such as a cloud platform, a web server, a personal computer or other user device. Figure 5 In 510, the method may include invoking the execution of multiple software programs in the first resource consumption mode respectively via the operating system. For example, the first resource consumption mode may actually be called S2 mode, which enables the software application / program to execute at a high level of operation and consume more resources.

[0083] At 520, the method may include monitoring physical resources of a computing device consumed by execution of a plurality of software programs. At 530, the method may include determining, based on the monitored physical resources, to reduce or expand consumption of physical resources of the computing device by the plurality of software programs. Further, in response to the determination, at 540, the method may include switching from a first mode to a second mode, the second mode causing the software programs to operate in a second resource consumption mode that consumes less or more physical resources than the first resource consumption mode. For example, if the switching is based on a determination to reduce physical resource consumption, the switching may include switching to a mode that consumes fewer physical resources than the current operating mode.

[0084] In some embodiments, the monitoring may include tracking consumption of one or more of a central processing unit (CPU), a battery, network bandwidth, and storage capacity of the computing device by the plurality of software programs. In some embodiments, monitoring physical resources of the computing device and determining to reduce consumption of physical resources may be performed via one or more metacognitive agents of an operating system. In some embodiments, switching may include selecting a software program based on a comparison of a resource requirement of a software program in the plurality of software programs with a resource requirement of other software programs. In some embodiments, switching may include selecting a software program based on one or more of a rate constant and a duty cycle of the software program identified by the operating system from a configuration file.

[0085] In some embodiments, the switching may include selecting a software program based on historical actions of a user learned by the operating system from previous closings of a plurality of software programs. In some embodiments, the switching may include selecting a software program based on a dependency graph that identifies dependencies between the software program and other software programs in the plurality of software programs. In some embodiments, the switching may include closing a first mode version of the software program and executing a second mode version of the software program in its place.

[0086] The above embodiments may be implemented in hardware, a computer program executed by a processor, firmware, or a combination thereof. The computer program may be contained on a computer-readable medium, such as a storage medium. For example, the computer program may reside in a random access memory ("RAM"), a flash memory, a read-only memory ("ROM"), an erasable programmable read-only memory ("EPROM"), an electrically erasable programmable read-only memory ("EEPROM"), a register, a hard disk, a removable disk, a compact disk read-only memory ("CD-ROM"), or any other form of storage medium known in the art.

[0087] An exemplary storage medium may be coupled to a processor such that the processor can read information from the storage medium and write information to the storage medium. In an alternative, the storage medium may be integrated into the processor. The processor and the storage medium may reside in an application specific integrated circuit ("ASIC"). In an alternative, the processor and the storage medium may reside as discrete components. For example, Figure 6 An example computer system architecture 600 is shown, which may be representative of or integrated in any of the above components, among others.

[0088] Figure 6 An example system 600 is shown that supports one or more of the example embodiments described and / or depicted herein. System 600 includes a computer system / server 602 that can operate with many other general or special computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with computer system / server 602 include, but are not limited to, personal computer systems, server computer systems, thin clients, fat clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments including any of the above systems or devices, etc.

[0089] Computer system / server 602 may be described in the general context of computer system executable instructions, such as program modules, executed by the computer system. In general, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform specific tasks or implement specific abstract data types. Computer system / server 602 may be practiced in a distributed cloud computing environment, where tasks are performed by remote processing devices linked through a communication network. In a distributed cloud computing environment, program modules may be located in local and remote computer system storage media, including memory storage devices.

[0090] like Figure 6As shown, the computer system / server 602 in the cloud computing node 600 is shown in the form of a general-purpose computing device. The components of the computer system / server 602 may include, but are not limited to, one or more processors or processing units 604, a system memory 606, and a bus that couples various system components including the system memory 606 to the processor 604.

[0091] Bus refers to one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example and not limitation, these architectures include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.

[0092] Computer system / server 602 generally includes various computer system readable media. Such media can be any available media that can be accessed by computer system / server 602, and it includes volatile and non-volatile media, removable and non-removable media. In one embodiment, system memory 606 implements the flow charts of other figures. System memory 606 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 610 and / or cache memory 612. Computer system / server 602 can also include other removable / non-removable, volatile / non-volatile computer system storage media. As an example only, storage system 614 can be provided for reading from and writing to non-removable, non-volatile magnetic media (not shown, and generally referred to as "hard drive"). Although not shown, a disk drive for reading from and writing to a removable, non-volatile disk (e.g., "floppy disk") can be provided, as well as an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media. In this case, each can be connected to the bus through one or more data medium interfaces. As will be further depicted and described below, the memory 606 may include at least one program product having a set (eg, at least one) of program modules configured to perform the functions of various embodiments of the present application.

[0093] A program / utility 616 having a set (at least one) of program modules 618, as well as an operating system, one or more application programs, other program modules, and program data may be stored in memory 606, by way of example and not limitation. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networking environment. Program modules 618 generally perform the functions and / or methods of various embodiments of the application as described herein.

[0094] As will be appreciated by those skilled in the art, various aspects of the present application may be implemented as a system, method or computer program product. Therefore, various aspects of the present application may take the form of a complete hardware embodiment, a complete software embodiment (including firmware, resident software, microcode, etc.) or a combination of software and hardware embodiments, which may be collectively referred to herein as a "circuit", "module" or "system". In addition, various aspects of the present application may take the form of a computer program product, which includes one or more computer-readable media having a computer-readable program code embodied therewith.

[0095] The computer system / server 602 may also communicate with one or more external devices 620, such as a keyboard, a pointing device, a display 622, etc.; one or more devices that enable a user to interact with the computer system / server 602; and / or any device that enables the computer system / server 602 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may occur via an I / O interface 624. In addition, the computer system / server 602 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), via a network adapter 626. As depicted, the network adapter 626 communicates with other components of the computer system / server 602 via a bus. It should be understood that, although not shown, other hardware and / or software components may be used in conjunction with the computer system / server 602. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

[0096] Although exemplary embodiments of at least one of the systems, methods, and non-transient computer-readable media are shown in the drawings and described in the foregoing detailed description, it will be understood that the present application is not limited to the disclosed embodiments, but is capable of numerous rearrangements, modifications, and substitutions as set forth and defined in the appended claims. For example, the capabilities of the systems of the drawings may be performed by one or more of the modules or components described herein or in a distributed architecture, and may include a transmitter, a receiver, or a pairing of both. For example, all or part of the functions performed by each module may be performed by one or more of these modules. In addition, the functions described herein may be performed at various times and may be related to various events inside or outside the module or component. Moreover, the information sent between the various modules may be sent between the modules via at least one of the following: a data network, the Internet, a voice network, an Internet protocol network, a wireless device, a wired device, and / or via multiple protocols. Moreover, messages sent or received by any module may be sent or received directly and / or via one or more other modules.

[0097] Those skilled in the art will appreciate that a "system" may be implemented as a personal computer, server, console, personal digital assistant (PDA), cellular phone, tablet computing device, smart phone, or any other suitable computing device, or combination of devices. Presenting the above functions as being performed by a "system" is not intended to limit the scope of the present application in any way, but is intended to provide an example of many embodiments. In fact, the methods, systems, and devices disclosed herein may be implemented in localized and distributed forms consistent with computing technology.

[0098] It should be noted that some of the system features described in this specification have been presented as modules in order to more specifically emphasize their implementation independence. For example, a module can be implemented as a hardware circuit including a custom very large scale integration (VLSI) circuit or gate array, an off-the-shelf semiconductor such as a logic chip, a transistor, or other discrete components. A module can also be implemented in a programmable hardware device such as a field programmable gate array, a programmable array logic, a programmable logic device, a graphics processing unit, etc.

[0099] Modules can also be implemented at least in part with software executed by various types of processors. The identification unit of the executable code can, for example, include one or more physical or logical blocks of computer instructions, which can, for example, be organized as objects, processes, or functions. However, the executable code of the identification module does not need to be physically located together, but can include different instructions stored in different locations, which, when logically combined together, include the module and achieve the purpose specified by the module. In addition, the module can be stored on a computer-readable medium, which can be, for example, a hard drive, a flash memory device, a random access memory (RAM), a magnetic tape, or any other such medium for storing data.

[0100] In practice, a module of executable code may be a single instruction or multiple instructions, and may even be distributed over several different code segments, between different programs, and across several memory devices. Similarly, operational data may be identified and shown within a module, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including different storage devices, and may exist, at least in part, only as electronic signals on a system or network.

[0101] It is easy to understand that the components of the present application, as generally described and shown in the drawings herein, can be arranged and designed in a variety of different configurations. Therefore, the detailed description of the embodiments is not intended to limit the scope of the claimed application, but is only a representative of the selected embodiments of the present application.

[0102] Those skilled in the art will readily appreciate that the above content may be practiced with steps in different orders and / or with hardware elements having configurations different from those disclosed. Therefore, although the present application has been described based on these preferred embodiments, some modifications, variations, and alternative configurations will be apparent to those skilled in the art.

[0103] Although preferred embodiments of the present application have been described, it should be understood that the described embodiments are merely illustrative and that the scope of the present application is limited solely by the appended claims when considering its full range of equivalents and modifications (e.g., protocols, hardware devices, software platforms, etc.).

Claims

1. A device comprising: a memory storing an operating system; as well as The processor is configured as: invoking, via the operating system, execution of a plurality of software programs having a first operating mode, the first operating mode causing the plurality of software programs to operate in a first resource consumption mode, monitoring physical resources of the computing device consumed by execution of the plurality of software programs; Based on the monitored physical resources, determining to reduce or expand consumption of the physical resources of the computing device by the plurality of software programs, and In response to the determination, a switch is made from a first operating mode of a software program among the multiple software programs to a second operating mode of the software program, wherein the second operating mode causes the software program to operate in a second resource consumption mode, and the second resource consumption mode consumes fewer or more physical resources than the first resource consumption mode.

2. The device according to claim 1, wherein: The processor is configured to track consumption of one or more of a central processing unit (CPU), a battery, network bandwidth, and storage capacity of the computing device by the plurality of software programs.

3. The device according to claim 1, wherein: The processor is configured to monitor physical resources of the computing device via one or more metacognitive agents of the operating system and determine to reduce consumption of the physical resources.

4. The device according to claim 1, wherein: The processor is configured to select the software program based on a comparison of a resource requirement of the software program with resource requirements of other software programs among the plurality of software programs.

5. The device according to claim 1, wherein: The processor is configured to select the software program based on one or more of a rate constant and a duty cycle of the software program identified by the operating system from a configuration file.

6. The device according to claim 1, wherein: The processor is configured to select the software program based on historical actions of a user learned by the operating system from previous closings of the plurality of software programs.

7. The device according to claim 1, wherein: The processor is configured to select the software program based on a dependency graph that identifies dependency relationships between the software program and other software programs among the plurality of software programs.

8. The device according to claim 1, wherein: The processor is configured to close the first mode software program and execute the second mode software program in its place.

9. A method comprising: invoking, via the operating system, execution of a plurality of software programs having a first operating mode, the first operating mode causing the plurality of software programs to operate in a first resource consumption mode; monitoring physical resources of the computing device consumed by execution of the plurality of software programs; Based on the monitored physical resources, determining to reduce or expand consumption of the physical resources of the computing device by the plurality of software programs; as well as In response to the determination, a switch is made from a first operating mode of a software program among the multiple software programs to a second operating mode of the software program, wherein the second operating mode causes the software program to operate in a second resource consumption mode, and the second resource consumption mode consumes fewer or more physical resources than the first resource consumption mode.

10. The method according to claim 9, wherein: The monitoring includes tracking consumption of one or more of a central processing unit (CPU), a battery, network bandwidth, and storage capacity of the computing device by the plurality of software programs.

11. The method according to claim 9, wherein: Monitoring physical resources of the computing device and determining to reduce consumption of the physical resources is performed via one or more metacognitive agents of the operating system.

12. The method according to claim 9, wherein: The switching includes selecting the software program based on a comparison of resource requirements of the software program with resource requirements of other software programs among the plurality of software programs.

13. The method according to claim 9, wherein: The switching includes selecting the software program based on one or more of a rate constant and a duty cycle of the software program identified by the operating system from a configuration file.

14. The method according to claim 9, wherein: The switching includes selecting the software program based on historical actions of a user learned by the operating system from previous closings of the plurality of software programs.

15. The method according to claim 9, wherein: The switching includes selecting the software program based on a dependency graph that identifies dependency relationships between the software program and other software programs among the plurality of software programs.

16. The method according to claim 9, wherein: The switching includes closing the first mode software program and executing the second mode software program in its place.

17. A computer-readable storage medium comprising instructions which, when read by a processor, cause the processor to perform a method comprising: invoking, via the operating system, execution of a plurality of software programs having a first operating mode, the first operating mode causing the plurality of software programs to operate in a first resource consumption mode; monitoring physical resources of the computing device consumed by execution of the plurality of software programs; Based on the monitored physical resources, determining to reduce or expand consumption of the physical resources of the computing device by the plurality of software programs; as well as In response to the determination, a switch is made from a first operating mode of a software program among the multiple software programs to a second operating mode of the software program, wherein the second operating mode causes the software program to operate in a second resource consumption mode, and the second resource consumption mode consumes fewer or more physical resources than the first resource consumption mode.

18. The computer-readable storage medium of claim 17, wherein: The monitoring includes tracking consumption of one or more of a central processing unit (CPU), a battery, network bandwidth, and storage capacity of the computing device by the plurality of software programs.

19. The computer-readable storage medium of claim 17, wherein: Monitoring physical resources of the computing device and determining to reduce consumption of the physical resources is performed via one or more metacognitive agents of the operating system.

20. The computer-readable storage medium of claim 17, wherein: The switching includes selecting the software program based on a comparison of resource requirements of the software program with resource requirements of other software programs among the plurality of software programs.