Arithmetic processing unit and arithmetic processing method
The arithmetic processing device and method allow multiple OSs to operate in parallel on a single CPU by converting task priorities into a common priority, enabling efficient resource allocation and optimized processor utilization.
Patent Information
- Application Number
- JP2023162958
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-26
- Publication Date
- 2025-04-07
AI Technical Summary
Existing technologies do not allow multiple operating systems (OS) to operate in parallel on a single CPU, and they fail to efficiently allocate physical processor resources based on task priority across different OS.
An arithmetic processing device and method that enables multiple OSs to operate in parallel on a single physical processor by converting task priorities into a common priority, allowing for dynamic resource allocation based on task priority across multiple OSs.
Enables efficient operation of multiple OSs in parallel on a single CPU by ensuring that tasks with higher common priorities are allocated more resources, thereby optimizing processor utilization.
Smart Images

Figure 2025053872000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a processing device and a processing method. [Background technology]
[0002] In the technology of Patent Document 1, two operating systems (hereinafter referred to as OS) are switched and executed by one CPU according to the result of comparing the priority and the result of the occurrence of an interrupt. In order to switch between the two OS, a memory area is provided to store these execution environments (register values). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2000-242512 A Summary of the Invention [Problem to be solved by the invention]
[0004] In recent years, a technology that allows multiple OSs to run in parallel on one CPU (physical processor) using virtualization technology has been put to practical use. However, the technology of Patent Document 1 does not use virtualization technology, and two OSs are switched between and run, and therefore cannot be run in parallel.
[0005] Furthermore, when the priorities of tasks executed on multiple OSs differ among each OS, it is desirable to allocate physical processor resources to each OS while taking into account the priority of each task.
[0006] Therefore, an object of the present disclosure is to provide a processing device and a processing method that, when multiple OSs are run in parallel on a single physical processor, can appropriately change the allocation of physical processor resources to each OS, taking into account the priority of tasks executed on each OS. [Means for solving the problem]
[0007] The arithmetic processing device according to the present disclosure includes: an OS operation unit that runs a plurality of OSs, each of which is a plurality of operating systems that executes a single task or a plurality of tasks, in parallel on one physical processor; a common scheduling implementation unit that acquires a priority of each of the tasks executed on each of the OSs and converts the priority of each of the tasks of each of the OSs into a common priority that is a priority common to a plurality of the OSs; an operation control unit that causes each of the OSs to operate on the physical processor by allocating resources of the physical processor to each of the OSs in accordance with the common priority of each of the tasks of each of the OSs; It is equipped with the following:
[0008] The computation method according to the present disclosure is a computation method for causing a physical processor to execute the following steps: an OS operation step of operating a plurality of OSs in parallel on one of the physical processors, the OSs being a plurality of operating systems each executing one or a plurality of tasks; a common scheduling implementation step of acquiring a priority of each of the tasks executed on each of the OSs and converting the priority of each of the tasks of each of the OSs into a common priority that is a priority common to a plurality of the OSs; an operation control step of operating each of the OSs on the physical processor by allocating resources of the physical processor to each of the OSs in accordance with the common priority of each of the tasks of each of the OSs; It is equipped with the following: Effect of the Invention
[0009] According to the arithmetic processing device and arithmetic processing method of the present disclosure, even if the scale of task priority differs among multiple OSs, the priority is converted into a common priority common to the multiple OSs, so that the priority of each task can be compared relatively among the multiple OSs. Then, the resource ratio of the physical processor allocated to each OS can be optimized according to the common priority of each task of each OS, and tasks with high common priority can be preferentially executed. [Brief description of the drawings]
[0010] [Figure 1] 1 is a schematic block diagram of a processing device according to a first embodiment. [Diagram 2] 1 is a schematic block diagram of a processing device according to a first embodiment. [Diagram 3] 4 is a diagram for explaining conversion from the priority of each task of each OS to a common priority of each task of each OS according to the first embodiment. FIG. [Figure 4] FIG. 2 is a diagram for explaining a determination of a priority order based on a common priority of each task according to the first embodiment. [Diagram 5] 4 is a flowchart for explaining processing of the arithmetic processing device according to the first embodiment. [Figure 6] FIG. 11 is a schematic block diagram of a processing device according to a second embodiment. [Figure 7] FIG. 11 is a schematic block diagram of a processing device according to a second embodiment. [Figure 8] 11 is a flowchart for explaining processing of a calculation processing device according to the second embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] 1. First embodiment A processing device 1 according to the first embodiment will be described with reference to the drawings. The processing device 1 is mounted on a vehicle and serves as a processing device for the vehicle. The processing device 1 may be used as a processing device for various purposes other than a processing device for the vehicle.
[0012] 1, the arithmetic processing device 1 includes a physical processor 10, a memory 20 used by the physical processor 10, an OS operation unit 50, a common scheduling execution unit 60, and an operation control unit 70. In this embodiment, the arithmetic processing device 1 also includes other hardware 30 (also referred to as other H / W 30).
[0013] The hardware includes a physical processor 10, a memory 20, and other hardware 30. The memory 20 includes a volatile memory 21 such as a random access memory (RAM), and a non-volatile memory 22 such as a read only memory (ROM), a solid state drive (SSD), or an embedded multi media card (eMMC).
[0014] The OS operating unit 50, the common scheduling implementing unit 60, the operation control unit 70, each operating system (hereinafter referred to as OS), and each task executed on each OS are functional units realized by software. A task is typically an application system. Each functional unit such as the OS operating unit 50, the common scheduling implementing unit 60, and the operation control unit 70 is realized by the physical processor 10 executing software (programs) stored in the memory 20 (non-volatile memory 22) and the like, and cooperating with other hardware such as the memory 20 (volatile memory 21, non-volatile memory 22) and other hardware 30.
[0015] The other hardware 30 includes various types of hardware such as a GPU (Graphics Processing Unit) mounted on a SoC (System-on-a-chip) or a processing unit for AI (Artificial Intelligence) processing, an input / output device, a communication device, etc.
[0016] The physical processor 10 includes a plurality of physical processor cores 11 (hereinafter referred to as physical cores 11). In this embodiment, four physical cores 11 are provided.
[0017] <OS operation unit 50> The OS operation unit 50 operates a plurality of operating systems (OSs), each of which executes a single or plural tasks, in parallel on one physical processor 10.
[0018] In the present embodiment, as shown in FIG. 2, the OS operation unit 50 generates a plurality of virtual machines (hereinafter referred to as VMs) that operate using the physical processor 10, and operates the corresponding OS on each VM. Each OS executes the corresponding single or plural tasks. In the present embodiment, a first VM and a second VM are generated, the first OS operates on the first VM, and the second OS operates on the second VM. The number of VMs and the number of OSs may be greater than 2.
[0019] The physical processor 10 has a plurality of physical cores 11 (four in this example). The OS operation unit 50 allocates the resources of the plurality of physical cores 11 to each VM according to the resource allocation of each OS (each VM) transmitted from the operation control unit 70 described later, and operates each VM. Note that the number of physical cores 11 may be any integer of 2 or more.
[0020] Further, the OS operation unit 50 allocates the volatile memory 21 such as RAM to each VM according to the resource allocation of each OS (each VM), and generates the virtual memory used by each VM (each OS). Further, the OS operation unit 50 causes the other H / W 30 to be used in parallel by each VM (each OS).
[0021] In the present embodiment, the OS operation unit 50 uses a host OS type virtualization method as the virtualization method. As shown in FIG. 2, in the host OS type virtualization method, the host OS is operated on hardware such as the physical processor 10 and the memory 20, and the host type virtualization software is operated on the host OS. Then, the host type virtualization software (such as a hypervisor) allocates the resources of the physical processor 10, the memory 20, etc. to each VM and generates each VM. In the present embodiment, the virtualization software forms the core of the OS operation unit 50.
[0022] The OS operation unit 50 sets one or more virtual cores (hereinafter simply referred to as virtual cores of each VM) for each VM, and operates each VM by the virtual cores of each VM. The OS operation unit 50 schedules the resources of the physical processor 10 (multiple physical cores 11) to be time-divided in units of clocks and assigned to the virtual cores of each VM. The OS operation unit 50 operates each VM and each OS by changing the allocation of the divided time of the resources of the physical processor 10 (multiple physical cores 11) to be assigned to each VM in accordance with the resource allocation of each OS (each VM). Note that, when each physical core 11 can be assigned to a virtual core of each VM without time division, the OS operation unit 50 changes the allocation of the physical cores 11 to be assigned to each VM in accordance with the resource allocation of each OS (each VM) without performing time division in order to improve the calculation efficiency. As described above, the allocation of resources of the physical processor 10 (the multiple physical cores 11) to each OS (each VM) is changed according to the resource allocation of each OS (each VM) transmitted from the operation control unit 70.
[0023] <Common scheduling execution unit 60> The common scheduling execution unit 60 acquires the priority of each task executed on each OS and converts the priority of each task of each OS into a common priority, which is a priority common to multiple OSs. The common priority of each task of each OS is transmitted to the operation control unit 70.
[0024] According to this configuration, even if the scale of task priority differs between multiple OSs, it is converted into a common priority that is common to the multiple OSs, so that the priority of each task can be compared relatively between the multiple OSs.
[0025] Each OS has unique task information in which the priority of each task executed on the OS is set. The unique task information of each OS is stored in an area of the non-volatile memory 22 used by the OS. The tasks are typically application systems executed on the OS. Each OS obtains the priority of each task currently being executed from the unique task information. Note that each OS does not obtain the priority of a task that is not currently being executed. In other words, when tasks executed on each OS are switched and changed in real time, the priority of only the task currently being executed can be obtained and evaluated.
[0026] The common scheduling implementation unit 60 acquires the priority of each task of each OS from each OS through a communication function. In this embodiment, the common scheduling implementation unit 60 is incorporated in the OS operation unit 50 (e.g., virtualization software), and acquires the priority of each task from each OS through a communication function between the virtualization software and each OS. Alternatively, the common scheduling implementation unit 60 may be software that operates on the host OS, or may be executed by one OS (representative OS).
[0027] In this embodiment, as shown in the upper part of Fig. 3, the priority of each task of each OS is set by a numerical value. In this example, the priority of each task of the first OS is set so that the priority becomes higher as the numerical value becomes larger. The priority of each task of the second OS is set so that the priority becomes higher as the numerical value becomes larger. Note that the priority may also be set so that the priority becomes higher as the numerical value becomes smaller.
[0028] However, the scale of the priority of each OS is set independently for each OS, and it cannot be directly compared between multiple OSes. Therefore, the priority of each OS is converted into a common priority that can be compared between multiple OSes.
[0029] The common scheduling implementation unit 60 converts the priority of each task of each OS into a common priority of each task of each OS using a conversion function preset for each OS. For the conversion function, a mathematical expression such as a linear expression having a gain and an offset, or map data, etc. is used. The conversion function for each OS is stored in an area of the non-volatile memory 22 used by the common scheduling implementation unit 60.
[0030] As shown in the lower part of Figure 3, the common priority of each task of each OS after conversion is a value that can be compared between multiple OSs.
[0031] <Operation control unit 70> The operation control unit 70 causes each OS to operate on the physical processor by allocating the resources of the physical processor to each OS according to the common priority of each task of each OS.
[0032] According to this configuration, the common priority common to the multiple OSs converted by the common scheduling implementation unit 60 is used, so that the priority of each task can be compared relatively between the multiple OSs. Then, the resource ratio of the physical processor allocated to each OS can be optimized according to the common priority of each task of each OS, and tasks with high common priority can be preferentially executed.
[0033] In this embodiment, the operation control unit 70 determines resource allocation for each OS based on the common priority of each task of each OS transmitted from the common scheduling implementation unit 60, and instructs the OS operation unit 50 to operate each OS (in this example, each VM corresponding to each OS) on the physical processor 10 (multiple physical cores 11) with the resource allocation for each OS.
[0034] The operation control unit 70 transmits the determined resource ratios of each OS to the OS operating unit 50. As described above, the OS operating unit 50 changes the resource allocation of the physical processor 10 to be allocated to each VM (in this example, the time allocation of the resources of the multiple physical cores 11) in accordance with the resource allocation of each OS, and operates each VM and each OS.
[0035] The operation control unit 70 is incorporated in the OS operating unit 50 (for example, virtualization software), and obtains the common priority of each task of each OS from the common scheduling execution unit 60 by using a communication function of the virtualization software, and transmits resource allocation of each OS to the OS operating unit 50. Alternatively, the operation control unit 70 may be software that operates on the host OS, or may be executed by one OS (representative OS).
[0036] <First Method> The operation control unit 70 determines the priority of each task common to the multiple OSs based on the common priority of each task of each OS, determines a priority execution task that is a task with a priority equal to or higher than the determined priority, and determines resource allocation for each OS based on the ratio of the number of priority execution tasks of each OS among the multiple OSs. For example, the operation control unit 70 sets the ratio of the number of priority execution tasks among the multiple OSs as the resource allocation for each OS. Alternatively, when time division is not performed, the operation control unit 70 may set the allocation of the multiple physical cores 11 that is closest to the ratio of the number of priority execution tasks as the resource allocation for each OS.
[0037] For example, in the example shown in FIG. 3, as shown in FIG. 4, the order of priority is task 1, task 2, task A, task 3, task B, task C, task 4, and task D, and when the judgment order is set to 4, the priority tasks are task 1, task 2, task A, and task 3. The number of priority tasks of the first OS is 3, that is, task 1, task 2, and task 3, and the number of priority tasks of the second OS is 1, that is, task A. Therefore, the ratio of the number of priority tasks of the first OS to the number of priority tasks of the second OS is 3:1. 3:1 is set as the resource allocation between the first OS and the second OS. That is, the resource allocation of the first OS is set to 75%, and the resource allocation of the second OS is set to 25%. In this case, time division is not performed, and three physical cores 11 may be distributed to the first VM, and one physical core 11 may be distributed to the second VM.
[0038] Alternatively, when the judgment priority is set to 5, the priority execution tasks are task 1, task 2, task A, task 3, and task B, and the ratio of the number of priority execution tasks between the first OS and the second OS is 3:2. 3:2 is set as the resource allocation between the first OS and the second OS. That is, the resource allocation of the first OS is set to 60%, and the resource allocation of the second OS is set to 40%. In this case, time division is performed, and the resources of the four physical cores 11 are distributed to the first VM and the second VM in a ratio of 60% and 40% by time division.
[0039] <Second method> Alternatively, the operation control unit 70 may calculate a total evaluation value that comprehensively evaluates the common priority of one or more tasks for each OS based on the common priority of each task of each OS, and determine the resource allocation for each OS based on the total evaluation value of each OS.
[0040] For example, the operation control unit 70 calculates the total value of the common priorities of all tasks for each OS, and calculates a total evaluation value for each OS based on the total value for each OS. The total value for each OS may be directly set as the total evaluation value for each OS, or a converted value obtained by converting the total value for each OS using a conversion function may be set as the total evaluation value for each OS. Then, the ratio of the total evaluation values of the multiple OSs is set as the resource allocation for each OS. When time division is not performed, the allocation of the multiple physical cores 11 that is closest to the ratio of the total evaluation values may be set as the resource allocation for each OS.
[0041] 3, the total common priority value of all tasks in the first OS is 500, and the total evaluation value of the first OS is 500. The total common priority value of all tasks in the second OS is 310, and the total evaluation value of the second OS is 310.
[0042] The ratio of the total evaluation value of the first OS to the total evaluation value of the second OS is 500:310. 500:310 is set as the resource allocation between the first OS and the second OS. That is, the resource allocation of the first OS is set to 61.7%, and the resource allocation of the second OS is set to 38.3%. Time division is performed, and the resources of the four physical cores 11 are distributed to the first VM and the second VM in a ratio of 61.7% and 38.3% by time division.
[0043] <Flowchart> Fig. 5 is a schematic flow chart for explaining the processing (arithmetic processing method) of the arithmetic processing device 1 according to this embodiment. The processing in Fig. 5 is executed by the physical processor 10 executing software (programs) stored in the memory 20 (non-volatile memory 22) or the like. The processing of each step is repeatedly executed in parallel while transmitting information to each other.
[0044] In step S01, as described above, the OS operation unit 50 runs multiple OSs, which are multiple operating systems each executing one or multiple tasks, in parallel on one physical processor 10. In this embodiment, the OS operation unit 50 generates multiple VMs that operate using the physical processor 10, and runs a corresponding OS on each VM. The OS operation unit 50 allocates resources of the physical processor 10 (multiple physical cores 11) to each VM in accordance with the resource allocation of each OS (each VM) transmitted from the operation control unit 70, and runs each VM.
[0045] In step S02, as described above, the common scheduling implementation unit 60 obtains the priority of each task executed on each OS, and converts the priority of each task of each OS into a common priority, which is a priority common to multiple OSs.
[0046] In step S03, as described above, the operation control unit 70 causes the physical processor to operate each OS with a resource allocation of the physical processor to be assigned to each OS according to the common priority of each task of each OS transmitted from the common scheduling implementation unit 60. In this embodiment, the operation control unit 70 determines a resource allocation for each OS based on the common priority of each task of each OS, and commands the OS operation unit 50 to operate each OS (each VM) on the physical processor 10 (multiple physical cores 11) with the resource allocation of each OS. The operation control unit 70 executes the first method or the second method described above.
[0047] 2. Second embodiment Next, a description will be given of a processing device 1 according to a second embodiment. Descriptions of components similar to those of the first embodiment will be omitted. The basic configuration and processing of the processing device 1 according to this embodiment are similar to those of the first embodiment. In this embodiment, the processing device 1 further includes a task control unit 80, and the processing of the operation control unit 70 differs from that of the first embodiment. FIGS. 6 and 7 show schematic block diagrams of the processing device 1 according to this embodiment.
[0048] <Task control unit 80> The task control unit 80 changes the execution state of each task executed on each OS based on the common priority of each task of each OS.
[0049] According to this configuration, the execution state of each task executed on each OS is changed based on the common priority of each task of each OS, and the computation load of each OS is changed.
[0050] In this embodiment, the task control unit 80 judges the priority of each task common to a plurality of OSs based on the common priority of each task of each OS, judges priority execution tasks that are tasks with priorities equal to or higher than the judged priority, and non-priority execution tasks that are tasks with priorities lower than the judged priority, and causes the corresponding OS to execute the priority execution tasks and not to execute the non-priority execution tasks. The task control unit 80 transmits execution and non-execution commands for each task to each OS. Each OS executes the priority execution tasks and does not execute the non-priority execution tasks according to the command of the task control unit 80.
[0051] According to this configuration, the calculation load of an OS having a large number of priority execution tasks whose priorities are equal to or greater than the determined priority and a small number of non-priority execution tasks is large, whereas the calculation load of an OS having a large number of non-priority execution tasks whose priorities are below the determined priority and a small number of priority execution tasks is small.
[0052] 4, the order of priority is task 1, task 2, task A, task 3, task B, task C, task 4, and task D, and when the judgment rank is set to 5, the priority execution tasks are task 1, task 2, task A, task 3, and task B, and the non-priority execution tasks are task C, task 4, and task D. The task control unit 80 commands the first OS to execute the priority execution tasks, task 1, task 2, and task 3, and commands it not to execute the non-priority execution task, task 4. The task control unit 80 commands the second OS to execute the priority execution tasks, task A and task B, and commands it not to execute the non-priority execution tasks, task C and task D.
[0053] In this embodiment, one OS (in this example, the first OS) among the multiple OSs serves as a representative OS and executes a common scheduling execution unit 60. The representative OS also executes a task control unit 80. Information is transmitted between the representative OS and the other OSs via a communication function. Alternatively, one or both of the common scheduling execution unit 60 and the task control unit 80 may be incorporated into the OS operation unit 50, and information may be transmitted between the virtualization software and each OS via a communication function. Alternatively, one or both of the common scheduling execution unit 60 and the task control unit 80 may be software that operates on the host OS, and information may be transmitted between each OS via a communication function.
[0054] <Operation control unit 70> The operation control unit 70 causes each OS to operate on the physical processor by allocating the resources of the physical processor to each OS according to the common priority of each task of each OS.
[0055] In this embodiment, the operation control unit 70 monitors the computational load of each OS, which changes according to the common priority of each task of each OS, determines the resource allocation for each OS based on the computational load of each OS, and instructs the OS operation unit 50 to operate each OS on the physical processor 10 with the resource allocation for each OS.
[0056] The task control unit 80 changes the execution state of each task executed on each OS based on the common priority of each task of each OS, and the computation load of each OS changes. Then, resource allocation for each OS is determined based on the computation load of each OS, and each OS (each VM) is operated on the physical processor 10 with the resource allocation of each OS, so that the resources of the physical processor 10 can be allocated to each OS (each VM) according to the computation load of each OS to operate each OS (each VM). Therefore, by changing the execution state of each task executed on each OS based on the common priority, the resource allocation of the physical processor 10 for each OS can be indirectly changed via monitoring the computation load of each OS.
[0057] For example, the utilization rate per unit time of the physical processor 10 of each OS or each VM (so-called CPU utilization rate) may be monitored as the computation load of each OS.
[0058] For example, the operation control unit 70 sets the ratio of the computation load of each of the multiple OSs as the resource allocation of each OS. Alternatively, when time division is not performed, the operation control unit 70 may set the allocation of the multiple physical cores 11 that is closest to the ratio of the computation load of each of the multiple OSs as the resource allocation of each OS.
[0059] For example, if the computational load of the first OS (first VM) is 70 and the computational load of the second OS (second VM) is 30, the resource allocation of the first OS is set to 70% and the resource allocation of the second OS is set to 30%.
[0060] The operation control unit 70 is incorporated in the OS operating unit 50 (e.g., virtualization software), and uses a communication function of the virtualization software to transmit resource allocation of each OS to the OS operating unit 50. Alternatively, the operation control unit 70 may be software that operates on the host OS, or may be executed by one OS (representative OS).
[0061] <Flowchart> Fig. 8 is a schematic flow chart for explaining the processing (arithmetic processing method) of the arithmetic processing device 1 according to this embodiment. The processing in Fig. 8 is executed by the physical processor 10 executing software (programs) stored in the memory 20 (non-volatile memory 22) or the like. The processing of each step is repeatedly executed in parallel while transmitting information to each other.
[0062] In step S11, as described in the first embodiment, the OS operation unit 50 runs multiple OSs, which are multiple operating systems each executing one or multiple tasks, in parallel on one physical processor 10. In this embodiment, the OS operation unit 50 generates multiple VMs that operate using the physical processor 10, and runs a corresponding OS on each VM. The OS operation unit 50 allocates resources of the physical processor 10 (multiple physical cores 11) to each VM in accordance with the resource allocation of each OS (each VM) transmitted from the operation control unit 70, and runs each VM.
[0063] In step S12, as described in embodiment 1, the common scheduling implementation unit 60 obtains the priority of each task executed on each OS, and converts the priority of each task of each OS into a common priority, which is a priority common to multiple OSs.
[0064] In step S13, as described above, the task control unit 80 changes the execution state of each task executed on each OS based on the common priority of each task of each OS. In this embodiment, the task control unit 80 determines the priority of each task common to multiple OSs based on the common priority of each task of each OS, determines priority execution tasks that are tasks with priorities equal to or higher than the determined priority, and non-priority execution tasks that are tasks with priorities lower than the determined priority, and causes the corresponding OS to execute the priority execution tasks and does not cause the corresponding OS to execute the non-priority execution tasks.
[0065] In step S14, as described above, the operation control unit 70 causes the physical processor to operate each OS with a resource allocation of the physical processor to be assigned to each OS according to the common priority of each task of each OS transmitted from the common scheduling implementation unit 60. In this embodiment, the operation control unit 70 monitors the computational load of each OS, which changes according to the common priority of each task of each OS, determines the resource allocation of each OS based on the computational load of each OS, and commands the OS operation unit 50 to cause the physical processor 10 to operate each OS with the resource allocation of each OS.
[0066] <Other embodiments> In each of the above embodiments, the OS operation unit 50 has been described by way of example with respect to a case where the OS operation unit 50 uses a host OS type virtualization method as the virtualization method. However, the OS operation unit 50 may use a hypervisor type (bare metal type) virtualization method as the virtualization method. In the hypervisor type virtualization method, virtualization software called a hypervisor runs directly on the hardware instead of the host OS. Even in this case, the OS operation unit 50 can allocate the resources of the multiple physical cores 11 to each VM according to the resource allocation of each OS (each VM) to operate each VM. Alternatively, a container type virtualization method may be used as the virtualization method. Alternatively, the OS operation unit 50 may operate multiple OSs in parallel on one physical processor by a method other than the virtualization technology.
[0067] In the present disclosure, various exemplary embodiments and examples are described, but various features, aspects, and functions described in one or more embodiments are not limited to the application of a specific embodiment, but can be applied to the embodiments alone or in various combinations. Therefore, countless modifications not illustrated are expected within the scope of the technology disclosed in the present disclosure specification. For example, the modification, addition, or omission of at least one component, and the extraction and combination of at least one component with components of other embodiments are included. [Explanation of symbols]
[0068] 1: arithmetic processing unit, 10: physical processor, 11: physical core, 50: OS operation unit, 60: common scheduling execution unit, 70: operation control unit, 80: task control unit
Claims
1. an OS operation unit that runs a plurality of OSs, which are a plurality of operating systems each executing a single task or a plurality of tasks, in parallel on one physical processor; a common scheduling implementation unit that acquires a priority of each of the tasks executed on each of the OSs and converts the priority of each of the tasks of each of the OSs into a common priority that is a priority common to a plurality of the OSs; an operation control unit that causes each of the OSs to operate on the physical processor by allocating resources of the physical processor to each of the OSs in accordance with the common priority of each of the tasks of each of the OSs; A processing unit comprising:
2. 2. The processing device according to claim 1, wherein the operation control unit determines the resource allocation for each of the OSs based on the common priority of each of the tasks of each of the OSs, and instructs the OS operation unit to operate each of the OSs on the physical processor using the resource allocation for each of the OSs.
3. 3. The processing device according to claim 2, wherein the operation control unit determines a priority of each of the tasks common to the plurality of OSs based on the common priority of each of the tasks of each of the OSs, determines a priority execution task which is a task whose priority is equal to or higher than the determined priority, and determines the resource allocation of each of the OSs based on a ratio of the number of priority execution tasks of each of the OSs among the plurality of OSs.
4. 3. The processing device according to claim 2, wherein the operation control unit calculates a total evaluation value that comprehensively evaluates the common priority of one or more tasks for each of the OSs based on the common priority of each of the tasks of each of the OSs, and determines the resource allocation for each of the OSs based on the total evaluation value of each of the OSs.
5. a task control unit that changes an execution state of each of the tasks executed on each of the OSs based on the common priority of each of the tasks of each of the OSs; 2. The processing device according to claim 1, wherein the operation control unit monitors the computational load of each of the OSs, determines the resource allocation for each of the OSs based on the computational load of each of the OSs, and instructs the OS operation unit to operate each of the OSs on the physical processor based on the resource allocation.
6. 6. The processing device according to claim 5, wherein the task control unit determines a priority of each task common to a plurality of the OSs based on the common priority of each task of each of the OSs, determines priority execution tasks which are the tasks whose priority is equal to or higher than the determined priority, and non-priority execution tasks which are the tasks whose priority is lower than the determined priority, and causes the corresponding OS to execute the priority execution tasks and does not cause the corresponding OS to execute the non-priority execution tasks.
7. 2. The processor according to claim 1, wherein one of the plurality of OSs serves as a representative OS and executes the common scheduling execution unit.
8. the OS operation unit generates a plurality of virtual machines that operate using the physical processor, and operates the corresponding OS on each of the virtual machines; The arithmetic processing device according to claim 1 , wherein the operation control unit instructs the OS operation unit to operate the virtual machines corresponding to each of the OSs on the physical processor with the resource allocation of each of the OSs.
9. the physical processor has a plurality of physical cores; The processor according to claim 7 , wherein the OS operation unit changes allocation of resources of the plurality of physical cores to each of the OSs in accordance with the resource allocation of each of the OSs.
10. A computation method for causing one physical processor to execute the following steps: an OS operation step of operating a plurality of OSs, each of which executes one or more tasks, in parallel on one of the physical processors; a common scheduling implementation step of acquiring a priority of each of the tasks executed on each of the OSs and converting the priority of each of the tasks of each of the OSs into a common priority that is a common priority among a plurality of the OSs; an operation control step of operating each of the OSs on the physical processor by allocating resources of the physical processor to each of the OSs in accordance with the common priority of each of the tasks of each of the OSs; A computation method comprising:
Citation Information
Patent Citations
Computer executing plural operating systems
JP2000242512A