WO2012095984A1 - スケジューリング方法及びスケジューリングシステム - Google Patents

スケジューリング方法及びスケジューリングシステム Download PDF

Info

Publication number
WO2012095984A1
WO2012095984A1 PCT/JP2011/050485 JP2011050485W WO2012095984A1 WO 2012095984 A1 WO2012095984 A1 WO 2012095984A1 JP 2011050485 W JP2011050485 W JP 2011050485W WO 2012095984 A1 WO2012095984 A1 WO 2012095984A1
Authority
WO
WIPO (PCT)
Prior art keywords
speculative
cpus
speculative process
cpu
maximum
Prior art date
Application number
PCT/JP2011/050485
Other languages
English (en)
French (fr)
Inventor
俊也 大友
浩一郎 山下
鈴木 貴久
宏真 山内
康志 栗原
尚記 大舘
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2012552604A priority Critical patent/JP5644866B2/ja
Priority to PCT/JP2011/050485 priority patent/WO2012095984A1/ja
Publication of WO2012095984A1 publication Critical patent/WO2012095984A1/ja
Priority to US13/940,932 priority patent/US9507635B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a scheduling method and a scheduling system.
  • the success rate of the speculative process increases.
  • resources such as a memory area and power are consumed more.
  • an embedded device with few resources such as a mobile phone, has a problem in that the overhead when threads executed by speculative processing are switched increases, resulting in a decrease in power efficiency and an increase in power consumption.
  • the success rate of the speculative process decreases.
  • An object of the present invention is to provide a scheduling method and a scheduling system that can suppress an increase in power consumption. It is an object of the present invention to provide a scheduling method and a scheduling system that can suppress a decrease in the success rate of speculative processing.
  • the scheduling method and scheduling system require that one CPU among a plurality of CPUs perform the following for each of the plurality of CPUs.
  • One CPU subtracts the number of processes assigned to the corresponding CPU from the maximum value of the number of speculative processes that can be assigned to each of the plurality of CPUs.
  • One CPU adds the subtraction results of a plurality of CPUs to obtain the maximum speculative processing number.
  • One CPU allocates speculative processing equal to or less than the maximum speculative processing count to a plurality of CPUs. Even if the speculative process is processed in the background, the process result may be discarded without being actually required. That is, the speculative process is an unreliable process.
  • an increase in power consumption can be suppressed. It can suppress that the success rate of a speculative process falls.
  • FIG. 1 is a flowchart of the scheduling method according to the first embodiment.
  • FIG. 2 is a schematic diagram illustrating a scheduling method according to the first embodiment.
  • FIG. 3 is a block diagram of an example of the mobile communication system according to the second embodiment.
  • FIG. 4 is a block diagram of the terminal according to the second embodiment.
  • FIG. 5 is a table illustrating an example of a selection frequency table according to the second embodiment.
  • FIG. 6 is a characteristic diagram illustrating an example of the relationship between the execution amount of speculation and the success rate of speculation in the second embodiment.
  • FIG. 7 is a schematic diagram illustrating the thread switch rate according to the second embodiment.
  • FIG. 8 is a characteristic diagram illustrating an example of the relationship between the speculative thread upper limit number and the thread switch rate according to the second embodiment.
  • FIG. 9 is a chart illustrating an example of a coefficient table according to the second embodiment.
  • FIG. 10 is a characteristic diagram illustrating an example of the relationship between the upper limit number of speculative threads and the evaluation value when the battery remaining amount is high in the second embodiment.
  • FIG. 11 is a characteristic diagram illustrating an example of the relationship between the upper limit number of speculative threads and the evaluation value when the battery remaining amount is low in the second embodiment.
  • FIG. 12 is a flowchart illustrating the operation of the scheduler in the scheduling method according to the second embodiment.
  • FIG. 13 is a flowchart of the operation of the speculative library in the scheduling method according to the second embodiment.
  • FIG. 14 is a flowchart of the operation of the calculation library in the scheduling method according to the second embodiment.
  • one CPU among a plurality of CPUs obtains the maximum number of speculative processes that can be allocated to the plurality of CPUs, and speculative processes equal to or less than the maximum speculative process number are assigned to the plurality of CPUs. Assign. Note that the present invention is not limited to the embodiments.
  • FIG. 1 is a flowchart of the scheduling method according to the first embodiment.
  • one CPU among the plurality of CPUs starts from the maximum number of speculative processes that can be assigned to each of the plurality of CPUs.
  • the number of processes assigned to the corresponding CPU is subtracted. By this calculation, the number of speculative processes that can be assigned for each CPU is obtained (step S1).
  • one CPU adds the subtraction results of a plurality of CPUs to obtain the maximum speculative processing number (step S2).
  • one CPU allocates a speculative process equal to or less than the maximum speculative process number to a plurality of CPUs (step S3).
  • the speculative process is assigned to each CPU so that the total value of the speculative processes assigned to the plurality of CPUs is equal to or less than the maximum speculative process number.
  • FIG. 2 is a schematic diagram for explaining a scheduling method according to the first embodiment.
  • FIG. 2 shows an example in which the number of CPUs is four.
  • the speculative process is executed in units of speculative thread 1.
  • all the processes other than the speculative process are the other thread 2.
  • Each CPU (# 0, # 1, # 2, # 3) 3, 4, 5, and 6 can allocate speculative threads up to the speculative thread upper limit number. That is, the speculative thread upper limit number is the maximum number of speculative processes that can be assigned to each CPU.
  • the speculative thread upper limit number is 3 although not particularly limited.
  • each CPU (# 0, # 1, # 2, # 3) 3, 4, 5, 6 is assigned a thread 2 other than the speculative thread 1. Therefore, the number of speculative threads 1 that can actually be assigned to each CPU (# 0, # 1, # 2, # 3) 3, 4, 5, 6 is determined from the upper limit number of speculative threads to each CPU (# 0, # 1). , # 2, # 3) is obtained by subtracting the number of other threads 2 that are actually assigned to 3, 4, 5, and 6.
  • the maximum speculative processing number is a total value of the number of speculative threads 1 that can be assigned to each of the CPUs (# 0, # 1, # 2, # 3) 3, 4, 5, 6 and is shown in FIG. In the example, there are four.
  • the maximum speculative processing number n is expressed by the following equation (1).
  • N represents the upper limit number of speculative threads per CPU
  • Ax represents the number of other threads existing in the CPU #x. If [N ⁇ Ax] is a negative value, it is set to 0.
  • the scheduler of CPU # 0_3 that performs scheduling assigns n or less speculative threads 1 represented by equation (1) to a plurality of CPUs (# 0, # 1, # 2, # 3) 3, 4, 5, 6 Distributed and assigned to.
  • the number of speculative threads 1 to be allocated may be smaller than n.
  • the number of CPUs may be two, three, or five or more.
  • each CPU processes a thread up to the upper limit number of speculative threads by combining the speculative thread and other threads, and thus it is possible to suppress an increase in overhead when the thread is switched. Therefore, a decrease in power efficiency can be suppressed and an increase in power consumption can be suppressed.
  • a plurality of speculative processes equal to or less than the maximum speculative process number are executed by a plurality of CPUs, it is possible to suppress a decrease in the success rate of the speculative process.
  • the scheduling method of the first embodiment is applied to a scheduling method in a portable information terminal such as a mobile phone of a mobile communication system.
  • the portable information terminal may be driven by a battery.
  • FIG. 3 is a block diagram of an example of the mobile communication system according to the second embodiment.
  • a terminal 11 such as a portable information terminal connects to a base station 12 by wireless communication.
  • Base station 12 is connected to carrier network 13.
  • the carrier network 13 is connected to a network 14 such as the Internet.
  • a service server 15 is connected to the network 14.
  • the terminal 11 receives a service from the service server 15 via the network 14, the carrier network 13, and the base station 12.
  • Examples of the service server 15 include a web server and a file server.
  • the web server transmits a web page document or image to the terminal 11 based on a request from the terminal 11, or executes software and transmits the result to the terminal 11.
  • the file server allows access from other devices on the network to the storage device managed by the file server.
  • FIG. 4 is a block diagram illustrating a terminal according to the second embodiment.
  • the terminal 11 has a configuration in which a plurality of CPUs 21, a memory 22, and a power management unit (PMU: Power Management Unit) 23 are connected to a bus 24.
  • the scheduler 25 is realized by an operating system (OS) that operates on any one of the plurality of CPUs 21.
  • OS operating system
  • the scheduler 25 acquires a selection frequency table 36, overhead information 37, and a coefficient table 38 from the memory 22.
  • the scheduler 25 acquires information on the remaining battery level 39 from the power management unit 23.
  • the scheduler 25 calls the speculative library 33.
  • the scheduler 25 operates the speculative library 33 based on the speculative thread upper limit number calculated by the calculation library 31 and the CPU load information 34.
  • the calculation library 31 calculates the speculative thread upper limit number (see FIG. 2) based on the selection frequency table 36, the overhead information 37, the coefficient table 38, the remaining battery level 39, and the evaluation formula 32.
  • the evaluation formula 32 may be a formula represented by the following formula (2), for example.
  • E (N) is an evaluation value for the variable N.
  • P ′ (N) is the success rate of speculation when the variable is N.
  • the success rate of speculation is obtained from the selection frequency table 36.
  • S (N) is the thread switch rate when the variable is N.
  • the thread switch rate is obtained from the overhead information 37.
  • ⁇ and ⁇ are coefficients obtained from the battery remaining amount 39 and the coefficient table 38.
  • the value of the variable N that maximizes the evaluation value E (N) may be the speculative thread upper limit number.
  • the speculation success rate, thread switch rate, and coefficient table 38 will be described later.
  • the scheduler 25 can grasp the number of other threads (Ax in the above formula (1)) assigned to each CPU 21 from the CPU load information 34. Therefore, the speculative library 33 determines the number of speculative threads that can be assigned to each CPU 21 based on the speculative thread upper limit number calculated by the calculation library 31 and the CPU load information 34 ([N ⁇ Ax] in the above equation (1)). ).
  • the speculative library 33 can obtain the maximum speculative processing number (n in the above formula (1)) by summing up the number of speculative threads that can be assigned by each CPU 21.
  • the speculative library 33 generates speculative execution amounts less than the maximum speculative processing number, for example, n speculative threads.
  • the speculative library 33 may generate, as speculative threads, for example, options registered in the selection frequency table 36 in descending order of the selection frequency up to the upper limit number of speculative threads.
  • the speculative thread runs in the background.
  • a statistical information database 35 stores a plurality of selection frequency tables 36.
  • the selection frequency table 36 a relationship between an option and the selection frequency of the option is registered.
  • the overhead information 37 provides the relationship between the number of threads and the ratio of thread switching time to the unit time in the user mode (thread switching ratio).
  • the coefficient table 38 the relationship between the battery remaining amount 39 and the coefficients ⁇ and ⁇ is registered.
  • the selection frequency table 36 may be created from a past operation history, or may be updated to reflect the operation content every time the user operates. Further, the terminal 11 may acquire the selection frequency table 36 from the outside. For example, when the terminal 11 requests a service, the service server may transmit the selection frequency table 36 corresponding to the service requested from the terminal 11 to the terminal 11. As described above, there is no limitation on how the selection frequency table 36 is created or where it is acquired. Since the overhead information 37 is a value specific to the operating system and CPU, the system manufacturer may prepare it in advance. The coefficient table 38 may be prepared in advance by the system manufacturer.
  • the power management unit 23 monitors the remaining battery level and has information on the remaining battery level 39. The power management unit 23 controls the power supplied to each part of the terminal 11.
  • FIG. 5 is a table illustrating an example of a selection frequency table in the second embodiment. As shown in FIG. 5, in the selection frequency table 36, the relationship between the options and the selection frequencies of the options is registered, for example, in descending order.
  • FIG. 6 is a characteristic diagram illustrating an example of the relationship between the execution amount of speculation and the success rate of speculation in the second embodiment.
  • FIG. 6 shows a characteristic curve in which the selection frequencies of up to n-th choices are accumulated in descending order in the selection frequency table 36.
  • the characteristic curve shown in FIG. 6 is expressed by the following equation (3).
  • P (n) is the success rate of speculation when the speculative execution amount is n.
  • Pn is the selection frequency of the n-th option Cn in descending order in the selection frequency table 36.
  • the value of the speculative execution amount n is obtained from the above equation (1), for example. 6 and (3), the speculative success rate P (n) approaches 100% as the speculative execution amount n increases.
  • P ′ (N) is a speculative success rate when the speculative execution amount n (the speculative success rate at this time is P (n)) is the speculative thread upper limit number N.
  • FIG. 7 is a schematic diagram illustrating the thread switch rate in the second embodiment.
  • T for example, 1 nsec
  • t for example, 10 ⁇ sec
  • threads for the speculative thread upper limit number N The switch rate S (N) is expressed by the following equation (4).
  • FIG. 8 shows a characteristic diagram obtained by graphing the equation (4).
  • FIG. 8 is a characteristic diagram showing an example of the relationship between the upper limit number of speculative threads and the thread switch rate in the second embodiment. As shown in FIG. 8, as the number of threads increases, the thread switch rate increases. As the thread switch rate increases, the overhead increases. As overhead increases, power efficiency decreases. Therefore, it is preferable not to increase the number of threads from the viewpoint of power efficiency.
  • FIG. 9 is a table illustrating an example of the coefficient table in the second embodiment.
  • coefficients ⁇ and ⁇ in the evaluation formula (2) are registered in the coefficient table 38 according to the remaining battery level. For example, in the illustrated example, when the remaining battery capacity exceeds 50%, ⁇ is 2 and ⁇ is 1. When the remaining battery capacity exceeds 30% and is 50% or less, ⁇ is 1 and ⁇ is 2. When the remaining battery level is 30% or less, ⁇ is 0 and ⁇ is 2.
  • the weight of the speculative success rate increases as the value of ⁇ increases, and the weight of the thread switch rate increases as the value of ⁇ increases. Accordingly, when the remaining battery capacity is sufficient, the number of speculative threads increases so that the speculative success rate becomes high. On the other hand, as the remaining battery level decreases, the thread switch rate decreases and the number of speculative threads decreases so that power efficiency is prioritized. When there is almost no battery remaining, the speculative process is not performed.
  • the values of ⁇ and ⁇ , and the boundary value of the remaining battery level at which the values of ⁇ and ⁇ change are not limited to the values shown in FIG.
  • FIG. 10 is a characteristic diagram illustrating an example of the relationship between the speculative thread upper limit number and the evaluation value when the battery remaining amount is high in the second embodiment.
  • the example shown in FIG. 10 is an example when the remaining battery capacity exceeds 50% in the coefficient table 38 shown in FIG. 9, for example. Since ⁇ is 2 and ⁇ is 1, the evaluation formula of the above formula (2) is expressed by the following formula (5).
  • FIG. 11 is a characteristic diagram illustrating an example of the relationship between the upper limit number of speculative threads and the evaluation value when the battery remaining amount is low in the second embodiment.
  • the example shown in FIG. 11 is an example in the case where the remaining battery capacity exceeds 30% and is 50% or less in the coefficient table 38 shown in FIG. 9, for example. Since ⁇ is 1 and ⁇ is 2, the evaluation formula of the above formula (2) is expressed by the following formula (6).
  • the evaluation value E (N) is maximum.
  • the speculative thread upper limit number N may be 40, for example.
  • the evaluation value E (N) becomes maximum.
  • the speculative thread upper limit number N may be 28, for example.
  • Scheduling Method As an example, a scheduling method according to the second embodiment will be described by taking a menu operation in which the terminal is a mobile phone and the user performs various selections on the menu on the mobile phone as an example. In the following description, it is assumed that the mobile phone has two CPU cores (CPU # 0, CPU # 1).
  • FIG. 12 is a flowchart illustrating the operation of the scheduler in the scheduling method according to the second embodiment.
  • the scheduler 25 accesses the statistical information database 35 and tries to acquire the selection frequency table 36 corresponding to the menu top screen, for example ( Step S11).
  • the selection in the selection frequency table 36 corresponding to the menu top screen may be a menu that can be shifted from the menu top screen, for example.
  • the selection frequency in the selection frequency table 36 may be a probability that each option has been selected in the past.
  • the scheduler 25 calls the speculative library 33 (step S13) when the acquisition of the corresponding selection frequency table 36 is successful (step S12: Yes), and ends the scheduling. On the other hand, if the scheduler 25 has not succeeded in acquiring the corresponding selection frequency table 36 (step S12: No), the scheduler 25 ends the scheduling without calling the speculative library 33.
  • the scheduler 25 operates in the same manner not only on the menu top screen but also on the menu screen displayed by the menu selected on the menu top screen.
  • FIG. 13 is a flowchart of the operation of the speculative library in the scheduling method according to the second embodiment.
  • the speculative library 33 when the speculative library 33 is called from the scheduler 25, it calls the calculation library 31 (step S21). Thereby, the speculative library 33 acquires the speculative thread upper limit number N from the calculation library 31. The speculative library 33 then speculates based on the speculative thread upper limit number N, the number A0 of other threads waiting for execution existing in the CPU # 0, and the number A1 of other threads waiting for execution existing in the CPU # 1. The execution amount n is calculated (step S22).
  • the speculative thread upper limit number N is 40
  • the number of other threads waiting for execution in CPU # 0 is 37
  • the number of other threads waiting for execution in CPU # 1 is 34.
  • the speculative library 33 acquires options for the speculative execution amount n calculated in step S22 from the selection frequency table 36 acquired by the scheduler 25 in step S11 (step S23). For example, when the speculative execution amount n is 9, the speculative library 33 may acquire nine menus in descending order of selection frequency among the menus that can be selected from the menu top screen.
  • the speculative library 33 generates a speculative thread for speculatively executing the acquired option.
  • the speculative thread is generated in the same manner as the thread generated when the user selects the menu. For example, when the speculation library 33 acquires nine menus from the selection frequency table 36, the speculation library 33 may generate nine speculation threads. Then, the speculative library 33 assigns the generated speculative thread to each CPU (step S24).
  • the speculative library 33 Assigns 3 speculative threads to CPU # 0 and 6 speculative threads to CPU # 1.
  • the speculative thread assigned to each CPU is executed in the background in each CPU.
  • the execution contents in the background are the same as the execution contents in the foreground. Since the content executed in the background is not displayed on the screen of the mobile phone, the work currently performed by the user while looking at the screen of the mobile phone, that is, the content executed in the foreground is not hindered.
  • the speculation library 33 determines whether or not the speculation is successful when any menu is selected by the user's operation (step S25). For example, the speculative library 33 determines whether or not the menu selected by the user operation matches the menu of the speculative thread executed in the background. If the speculation is successful (step S25: Yes), the speculative library 33 shifts the speculative thread that has succeeded to the foreground (step S26).
  • the speculation library 33 displays the menu screen drawn in the background on the screen of the mobile phone. Then, the speculative library 33 deletes all other speculative threads (step S27) and returns to step S13 in FIG. On the other hand, if the speculation is not successful, that is, if all speculations are unsuccessful (step S25: No), the speculative library 33 deletes all speculative threads (step S27) and returns to step S13 in FIG.
  • FIG. 14 is a flowchart of the operation of the calculation library in the scheduling method according to the second embodiment.
  • the calculation library 31 when called from the speculative library 33, acquires the corresponding selection frequency table 36, overhead information 37, and coefficient table 38 (step S31).
  • the calculation library 31 obtains the speculative thread upper limit number N that maximizes the value E (N) of the above-described evaluation formula, for example, as described in “How to obtain the speculative thread upper limit number” (step S32). And it returns to step S21 of FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

 複数のCPU(21)の中の一のCPU(21)が、複数のCPU(21)ごとに、次のことを行う。一のCPU(21)は、複数のCPU(21)のそれぞれに割り当て可能な投機処理数の最大値から対応するCPU(21)に割り当てられている処理数を引き算する。一のCPU(21)は、複数のCPU(21)の引算結果を加算して最大投機処理数を求める。一のCPU(21)は、最大投機処理数以下の投機処理を複数のCPU(21)に割り当てる。投機処理は、信頼性のない処理であり、バックグラウンドで処理されていても、実際にはその処理結果が必要とされずに破棄されることがある。

Description

スケジューリング方法及びスケジューリングシステム
 この発明は、スケジューリング方法及びスケジューリングシステムに関する。
 従来、計算機システムにおいて、将来実行されるであろうと予測される処理を予めバックグラウンドで実行しておく投機処理の技術がある。例えば、ウェブページごとのリンク先一覧を、過去の履歴を基にした選択頻度とともに保持し、過去の選択頻度が高いURL(Uniform Resource Locator)のデータを先読みしてキャッシュ領域に読み込むことによって、ウェブ(Web)ページデータの高速表示を可能とする技術がある。一方、バッテリで動作するマルチタスク計算装置において、バッテリ電力を維持する技術がある。例えば、信頼性のないアプリケーションがバックグラウンドに存在する場合、この信頼性のないアプリケーションの実行を抑止する方法がある。
特開平11-24982号公報 特表2007-520777号公報
 投機処理の実行量を増やすほど、投機処理の結果が実際に使用される確率、すなわち投機処理の成功率が高くなる。しかし、投機処理の実行量が増えると、メモリ領域や電力などのリソースが多く消費される。そのため、携帯電話機などの、リソースが少ない組み込み機器では、投機処理により実行されるスレッドが切り替わる際のオーバーヘッドが増えてしまい、電力効率が下がり、消費電力の増大を招くという問題点がある。一方、投機処理の実行量を減らすと、投機処理の成功率が下がってしまう。
 消費電力の増大を抑制することができるスケジューリング方法及びスケジューリングシステムを提供することを目的とする。投機処理の成功率が下がるのを抑制することができるスケジューリング方法及びスケジューリングシステムを提供することを目的とする。
 スケジューリング方法及びスケジューリングシステムは、複数のCPUの中の一のCPUが、複数のCPUごとに、次のことを行うことを要件とする。一のCPUは、複数のCPUのそれぞれに割り当て可能な投機処理数の最大値から対応するCPUに割り当てられている処理数を引き算する。一のCPUは、複数のCPUの引算結果を加算して最大投機処理数を求める。一のCPUは、最大投機処理数以下の投機処理を複数のCPUに割り当てる。投機処理はバックグラウンドで処理されていても、実際にはその処理結果が必要とされずに破棄されることがある。つまり、投機処理は、信頼性のない処理である。
 上記スケジューリング方法及びスケジューリングシステムによれば、消費電力の増大を抑制することができる。投機処理の成功率が下がるのを抑制することができる。
図1は、実施例1にかかるスケジューリング方法を示すフローチャートである。 図2は、実施例1にかかるスケジューリング方法を説明する模式図である。 図3は、実施例2にかかる移動体通信システムの一例を示すブロック図である。 図4は、実施例2にかかる端末を示すブロック図である。 図5は、実施例2における選択頻度テーブルの一例を示す図表である。 図6は、実施例2における投機の実行量と投機の成功率との関係の一例を示す特性図である。 図7は、実施例2におけるスレッドスイッチ率を説明する模式図である。 図8は、実施例2における投機スレッド上限数とスレッドスイッチ率との関係の一例を示す特性図である。 図9は、実施例2における係数テーブルの一例を示す図表である。 図10は、実施例2においてバッテリ残量が多い場合の投機スレッド上限数と評価値との関係の一例を示す特性図である。 図11は、実施例2においてバッテリ残量が少ない場合の投機スレッド上限数と評価値との関係の一例を示す特性図である。 図12は、実施例2にかかるスケジューリング方法におけるスケジューラの動作を示すフローチャートである。 図13は、実施例2にかかるスケジューリング方法における投機ライブラリの動作を示すフローチャートである。 図14は、実施例2にかかるスケジューリング方法における計算ライブラリの動作を示すフローチャートである。
 以下に、この発明にかかるスケジューリング方法及びスケジューリングシステムの実施例を図面に基づいて詳細に説明する。実施の形態にかかるスケジューリング方法及びスケジューリングシステムは、複数のCPUの中の一のCPUが、複数のCPUに割り当て可能な最大投機処理数を求め、最大投機処理数以下の投機処理を複数のCPUに割り当てるものである。なお、この実施例によりこの発明が限定されるものではない。
(実施例1)
 図1は、実施例1にかかるスケジューリング方法を示すフローチャートである。図1に示すように、複数のCPUを備えた装置において、スケジューリングが開始されると、複数のCPUの中の一のCPUが、複数のCPUのそれぞれに割り当て可能な投機処理数の最大値から対応するCPUに割り当てられている処理数を引き算する。この演算によって、CPUごとに割り当て可能な投機処理数が求まる(ステップS1)。
 次いで、一のCPUは、複数のCPUの引算結果を加算して最大投機処理数を求める(ステップS2)。次いで、一のCPUは、最大投機処理数以下の投機処理を複数のCPUに割り当てる(ステップS3)。それによって、各CPUに、複数のCPUに割り当てられる投機処理数の合計値が最大投機処理数以下となるように、投機処理が割り当てられる。
 図2は、実施例1にかかるスケジューリング方法を説明する模式図である。図2には、CPUの数が4個である例が示されている。図2に示すように、投機処理は投機スレッド1という単位で実行される。また、図2では、投機処理以外の処理は全て他スレッド2とされている。各CPU(#0、#1、#2、#3)3,4,5,6は、投機スレッド上限数まで、投機スレッドを割り当てることができる。つまり、投機スレッド上限数は、CPUのそれぞれに割り当て可能な投機処理数の最大値である。図2に示す例では、特に限定しないが、投機スレッド上限数は3である。
 ただし、各CPU(#0、#1、#2、#3)3,4,5,6には、投機スレッド1以外の他スレッド2が割り当てられている。従って、各CPU(#0、#1、#2、#3)3,4,5,6に実際に割り当て可能な投機スレッド1の数は、投機スレッド上限数から各CPU(#0、#1、#2、#3)3,4,5,6に実際に割り当てられている他スレッド2の数を引いた数となる。
 図2に示す例では、特に限定しないが、CPU#0_3及びCPU#3_6には2個の他スレッド2が割り当てられている。従って、CPU#0_3及びCPU#3_6に割り当て可能な投機スレッド1の数は、投機スレッド上限数の3から他スレッドの数2を引いた1となる。同様に、CPU#1_4では、他スレッドの数が1であるので、割り当て可能な投機スレッド1の数は、3から1を引いた2となる。
 CPU#2_5では、4個の他スレッド2が割り当てられており、引き算の結果が負の値となるので、CPU#2_5には投機スレッドを割り当てることができない。従って、割り当て可能な投機スレッド1の数は0である。このように、投機スレッド上限数が求まれば、CPUごとに割り当て可能な投機スレッドの数が求められる。投機スレッド上限数及び各CPU(#0、#1、#2、#3)3,4,5,6に割り当てられている他スレッド2の数は、スケジューリングを行う一のCPU、例えばCPU#0_3のスケジューラが把握している。
 最大投機処理数は、各CPU(#0、#1、#2、#3)3,4,5,6に割り当て可能な投機スレッド1の数を合計した値であるので、例えば図2に示す例では4個となる。これを式で表すと、最大投機処理数nは次の(1)式で表される。ただし、NはCPUあたりの投機スレッド上限数を表し、Axは、CPU#xに存在する他スレッドの数を表す。また、[N-Ax]が負の値である場合は0とする。
Figure JPOXMLDOC01-appb-M000001
 スケジューリングを行う例えばCPU#0_3のスケジューラは、(1)式で表されるn個以下の投機スレッド1を複数のCPU(#0、#1、#2、#3)3,4,5,6に分散して割り当てる。割り当てる投機スレッド1の数は、nよりも少なくてもよいのは勿論である。なお、CPUの数は2個であってもよいし、3個であってもよいし、5個以上であってもよい。
 実施例1によれば、各CPUで、投機スレッドと他スレッドとを合わせて投機スレッド上限数までのスレッドが処理されるので、スレッドが切り替わる際のオーバーヘッドの増大を抑制することができる。従って、電力効率の低下を抑制し、消費電力の増大を抑制することができる。また、複数のCPUで、合わせて最大投機処理数以下の数の投機処理が実行されるので、投機処理の成功率が下がるのを抑制することができる。
(実施例2)
 実施例2は、実施例1のスケジューリング方法を、例えば移動体通信システムの例えば携帯電話機などの携帯情報端末におけるスケジューリング方法に適用したものである。携帯情報端末はバッテリにより駆動されてもよい。
・移動体通信システムの説明
 図3は、実施例2にかかる移動体通信システムの一例を示すブロック図である。図3に示すように、携帯情報端末などの端末11は無線通信により基地局12に接続する。基地局12はキャリアネットワーク13に接続されている。キャリアネットワーク13はインターネットなどのネットワーク14に接続されている。ネットワーク14にはサービスサーバ15が接続されている。端末11は、サービスサーバ15からネットワーク14、キャリアネットワーク13及び基地局12を介してサービスの提供を受ける。
 サービスサーバ15の一例として、例えばウェブサーバやファイルサーバが挙げられる。ウェブサーバは、端末11からの要求に基づいて端末11にウェブページの文書や画像を送信したり、ソフトウェアを実行して結果を端末11に送信したりする。ファイルサーバは、ネットワーク上の他の装置から、自身が管理する記憶装置へのアクセスを可能にする。
・端末の説明
 図4は、実施例2にかかる端末を示すブロック図である。図4に示すように、端末11は、複数のCPU21、メモリ22及びパワーマネージメントユニット(PMU:Power Management Unit)23がバス24に接続された構成を有する。スケジューラ25は、複数のCPU21のうちのいずれか一つのCPU21で動作するオペレーティングシステム(OS)によって実現される。
 スケジューラ25は、メモリ22から選択頻度テーブル36、オーバーヘッド情報37及び係数テーブル38を取得する。スケジューラ25は、パワーマネージメントユニット23からバッテリ残量39の情報を取得する。スケジューラ25は、選択頻度テーブル36を取得すると、投機ライブラリ33を呼び出す。スケジューラ25は、計算ライブラリ31が算出した投機スレッド上限数及びCPU負荷情報34に基づいて投機ライブラリ33を動作させる。
 計算ライブラリ31は、選択頻度テーブル36、オーバーヘッド情報37、係数テーブル38、バッテリ残量39及び評価式32に基づいて投機スレッド上限数(図2参照)を計算する。評価式32は、例えば次の(2)式で表される式であってもよい。E(N)は変数Nのときの評価値である。P’(N)は変数Nのときの投機の成功率である。投機の成功率は選択頻度テーブル36から求められる。S(N)は変数Nのときのスレッドスイッチ率である。スレッドスイッチ率はオーバーヘッド情報37から求められる。αとβは、バッテリ残量39と係数テーブル38とから求められる係数である。評価値E(N)が例えば最大となるような変数Nの値が投機スレッド上限数であってもよい。投機の成功率、スレッドスイッチ率及び係数テーブル38については後述する。
Figure JPOXMLDOC01-appb-M000002
 スケジューラ25は、CPU負荷情報34により、各CPU21に割り当てられている他スレッドの数(上記(1)式のAx)を把握することができる。従って、投機ライブラリ33は、計算ライブラリ31が算出した投機スレッド上限数とCPU負荷情報34とに基づいて、CPU21ごとに、割り当て可能な投機スレッドの数(上記(1)式の[N-Ax])を把握することができる。
 投機ライブラリ33は、各CPU21の割り当て可能な投機スレッドの数を合計することにより、最大投機処理数(上記(1)式のn)を求めることができる。投機ライブラリ33は、最大投機処理数以下の投機実行量、例えばn個分の投機スレッドを生成する。投機ライブラリ33は、投機スレッドとして、例えば選択頻度テーブル36に登録されている選択肢を選択頻度の降順に、投機スレッド上限数まで生成してもよい。投機スレッドはバックグラウンドで実行される。
 メモリ22には、統計情報データベース35、オーバーヘッド情報37及び係数テーブル38が格納されている。統計情報データベース35には、複数の選択頻度テーブル36が格納されている。選択頻度テーブル36には、選択肢とその選択肢の選択頻度との関係が登録されている。オーバーヘッド情報37により、スレッド数と、ユーザモードの単位時間に占めるスレッドの切り替え時間の割合(スレッドスイッチ率)と、の関係が得られる。係数テーブル38には、バッテリ残量39と係数α及びβとの関係が登録されている。
 選択頻度テーブル36は、過去の操作履歴から作成されてもよいし、ユーザが操作するたびにその操作内容を反映して更新されてもよい。また、端末11が外部から選択頻度テーブル36を取得するようにしてもよい。例えば端末11がサービスを要求すると、サービスサーバが、端末11から要求されたサービスに対応する選択頻度テーブル36を端末11へ送信するようにしてもよい。このように、選択頻度テーブル36をどのようにして作成するか、あるいはどこから取得するか、ということについては限定しない。オーバーヘッド情報37はオペレーティングシステムやCPUに固有な値であるので、予めシステムの製作者が用意してもよい。係数テーブル38は予めシステムの製作者が用意してもよい。
 パワーマネージメントユニット23は、バッテリの残量を監視し、バッテリ残量39の情報を有する。パワーマネージメントユニット23は、端末11の各部に供給する電源を制御する。
・投機の成功率の説明
 図5は、実施例2における選択頻度テーブルの一例を示す図表である。図5に示すように、選択頻度テーブル36には、選択肢とその選択肢の選択頻度との関係が例えば降順に登録されている。
 図6は、実施例2における投機の実行量と投機の成功率との関係の一例を示す特性図である。図6には、選択頻度テーブル36において降順にn番目までの選択肢の選択頻度を累積した特性曲線が示されている。図6に示す特性曲線は次の(3)式で表される。ただし、P(n)は投機実行量n個のときの投機の成功率である。Pnは選択頻度テーブル36において降順でn番目の選択肢Cnの選択頻度である。投機実行量nの値は、例えば上記(1)式から求まる。図6及び(3)式に示すように、投機実行量nが増えるほど、投機の成功率P(n)は100%に近づく。従って、投機の成功率の観点からは、スレッド数が多い方が好ましい。ただし、選択頻度テーブル36に登録されている選択肢を選択頻度の高い順に実行していくと、投機の成功率は鈍化していく。上記(2)式においてP’(N)は、投機実行量n(このときの投機の成功率はP(n))を投機スレッド上限数Nとしたときの投機の成功率である。
Figure JPOXMLDOC01-appb-M000003
・スレッドスイッチ率の説明
 図7は、実施例2におけるスレッドスイッチ率を説明する模式図である。図7に示すように、ユーザモードの単位時間をT(例えば1n秒)とし、スレッド41の切り替え(スレッドスイッチ42)にかかる時間をt(例えば10μ秒)とすると、投機スレッド上限数Nに対するスレッドスイッチ率S(N)は次の(4)式で表される。(4)式をグラフ化した特性図を図8に示す。
Figure JPOXMLDOC01-appb-M000004
 図8は、実施例2における投機スレッド上限数とスレッドスイッチ率との関係の一例を示す特性図である。図8に示すように、スレッド数が増えるとスレッドスイッチ率が大きくなる。スレッドスイッチ率が大きくなると、オーバーヘッドが増えてしまう。オーバーヘッドが増えると、電力効率が低下してしまう。従って、電力効率の観点からは、スレッド数を多くし過ぎないのが好ましい。
・係数テーブルの説明
 図9は、実施例2における係数テーブルの一例を示す図表である。図9に示すように、係数テーブル38には、バッテリ残量に応じて上記(2)式の評価式における係数α及びβが登録されている。例えば図示例では、バッテリ残量が50%を超える場合には、αが2であり、βが1である。バッテリ残量が30%を超え、50%以下である場合には、αが1であり、βが2である。バッテリ残量が30%以下である場合には、αが0であり、βが2である。
 上記評価式より明らかであるように、評価値E(n)において、αの値が大きいほど投機の成功率の重みが大きくなり、βの値が大きいほどスレッドスイッチ率の重みが大きくなる。従って、バッテリ残量が十分である場合には、投機の成功率が高くなるように投機スレッドの数が増える。一方、バッテリ残量が減ってくると、スレッドスイッチ率が下がり、電力効率が優先されるように投機スレッドの数が減る。バッテリ残量が殆どない場合には投機処理が行われない。なお、α及びβの値、並びにα及びβの値が変わるバッテリ残量の境界値は、図9に示す値に限定されないのは勿論である。
・投機スレッド上限数の求め方
 図10は、実施例2においてバッテリ残量が多い場合の投機スレッド上限数と評価値との関係の一例を示す特性図である。図10に示す例は、例えば図9に示す係数テーブル38においてバッテリ残量が50%を超える場合の例である。αが2であり、βは1であるので、上記(2)式の評価式は次の(5)式で表される。また、図11は、実施例2においてバッテリ残量が少ない場合の投機スレッド上限数と評価値との関係の一例を示す特性図である。図11に示す例は、例えば図9に示す係数テーブル38においてバッテリ残量が30%を超え、50%以下である場合の例である。αが1であり、βは2であるので、上記(2)式の評価式は次の(6)式で表される。
Figure JPOXMLDOC01-appb-M000005
Figure JPOXMLDOC01-appb-M000006
 図10に示す特性曲線では、例えばNが40であるときに評価値E(N)が最大となる。図10に示す例では、投機スレッド上限数Nは例えば40であってもよい。一方、図11に示す特性曲線では、例えばNが28であるときに評価値E(N)が最大となる。図11に示す例では、投機スレッド上限数Nは例えば28であってもよい。投機スレッド上限数Nが大きくなると、各CPUに割り当て可能な投機スレッドの数が増えるので、複数のCPUで処理される投機スレッドの数が増える。従って、バッテリ残量が多いときには複数のCPUで処理される投機スレッド数が増えるので、投機の成功率が高くなる。一方、バッテリ残量が少ないときには複数のCPUで処理される投機スレッド数が減るので、電力効率が良くなる。
・スケジューリング方法の説明
 一例として、端末が携帯電話機であり、携帯電話機においてユーザがメニューに対して種々の選択などを行うメニュー操作を例にして、実施例2にかかるスケジューリング方法を説明する。以下の説明では、携帯電話機が2個のCPUコア(CPU#0、CPU#1)を有しているとする。
[スケジューラの動作]
 図12は、実施例2にかかるスケジューリング方法におけるスケジューラの動作を示すフローチャートである。図12に示すように、ユーザが携帯電話機を操作して例えばメニュートップ画面を開くと、スケジューラ25は統計情報データベース35にアクセスし、例えばメニュートップ画面に対応する選択頻度テーブル36の取得を試みる(ステップS11)。メニュートップ画面に対応する選択頻度テーブル36の選択肢は、例えばメニュートップ画面から移行できるメニューであってもよい。選択頻度テーブル36の選択頻度は、各選択肢が過去に選択された確率であってもよい。
 スケジューラ25は、該当する選択頻度テーブル36の取得に成功した場合(ステップS12:Yes)、投機ライブラリ33を呼び出し(ステップS13)、スケジューリングを終了する。一方、スケジューラ25は、該当する選択頻度テーブル36の取得に成功しなかった場合(ステップS12:No)、投機ライブラリ33の呼び出しを行わずに、スケジューリングを終了する。なお、スケジューラ25は、メニュートップ画面に限らず、メニュートップ画面で選択されたメニューによって表示されるメニュー画面などについても、同様に動作する。
[投機ライブラリの動作]
 図13は、実施例2にかかるスケジューリング方法における投機ライブラリの動作を示すフローチャートである。図13に示すように、投機ライブラリ33は、スケジューラ25から呼び出されると、計算ライブラリ31を呼び出す(ステップS21)。それによって、投機ライブラリ33は、計算ライブラリ31から投機スレッド上限数Nを取得する。次いで、投機ライブラリ33は、投機スレッド上限数Nと、CPU#0に存在する実行待ちの他スレッドの数A0と、CPU#1に存在する実行待ちの他スレッドの数A1とに基づいて、投機実行量nを算出する(ステップS22)。
 例えば投機スレッド上限数Nが40であり、CPU#0で実行待ちの他スレッドの数が37であり、CPU#1で実行待ちの他スレッドの数が34であるとする。この場合、CPU#0が行うことができる投機実行量は3(=40-37)であり、CPU#1が行うことができる投機実行量は6(=40-34)である。従って、CPU#0及びCPU#1を合わせた投機実行量nは9(=3+6)である。
 次いで、投機ライブラリ33は、ステップS11でスケジューラ25が取得した選択頻度テーブル36から、ステップS22で算出した投機実行量n個分の選択肢を取得する(ステップS23)。例えば投機実行量nが9である場合、投機ライブラリ33は、メニュートップ画面から選択することができるメニューのうち、選択頻度が高いものから順に9個のメニューを取得してもよい。
 次いで、投機ライブラリ33は、取得した選択肢を投機実行する投機スレッドを生成する。投機スレッドは、ユーザがメニューを選択したときに生成されるスレッドと同様に生成される。例えば投機ライブラリ33が選択頻度テーブル36から9個のメニューを取得した場合には、投機ライブラリ33は9個の投機スレッドを生成してもよい。そして、投機ライブラリ33は、各CPUに、生成した投機スレッドを割り当てる(ステップS24)。
 例えばCPU#0が行うことができる投機実行量が3であり、CPU#1が行うことができる投機実行量が6であり、投機ライブラリ33が9個の投機スレッドを生成した場合、投機ライブラリ33はCPU#0に3個の投機スレッドを割り当て、CPU#1に6個の投機スレッドを割り当てる。各CPUに割り当てられた投機スレッドは、各CPUにおいてバックグラウンドで実行される。バックグラウンドでの実行内容は、フォアグラウンドでの実行内容と同じである。バックグラウンドでの実行内容は携帯電話機の画面に表示されないので、携帯電話機の画面を見ながらユーザが現在行っている作業、すなわちフォアグラウンドでの実行内容に支障が生じることはない。
 次いで、投機ライブラリ33は、ユーザの操作によって何らかのメニューが選択されると、投機が成功したか否かを判断する(ステップS25)。例えば投機ライブラリ33は、ユーザ操作により選択されたメニューと、バックグラウンドで実行されている投機スレッドのメニューとが一致しているか否かを判断する。投機が成功した場合(ステップS25:Yes)、投機ライブラリ33は成功した投機スレッドをフォアグラウンドに移行させる(ステップS26)。
 例えば投機に成功した投機スレッドがバックグラウンドでの実行によってバックグラウンドでメニュー画面を描画している場合、投機ライブラリ33は、バックグラウンドで描画されたメニュー画面を携帯電話機の画面に表示する。そして、投機ライブラリ33は、その他の全ての投機スレッドを削除し(ステップS27)、図12のステップS13に戻る。一方、投機が成功しなかった場合、すなわち投機が全て失敗した場合には(ステップS25:No)、投機ライブラリ33は全ての投機スレッドを削除し(ステップS27)、図12のステップS13に戻る。
[計算ライブラリの動作]
 図14は、実施例2にかかるスケジューリング方法における計算ライブラリの動作を示すフローチャートである。図14に示すように、計算ライブラリ31は、投機ライブラリ33から呼び出されると、対応する選択頻度テーブル36、オーバーヘッド情報37及び係数テーブル38を取得する(ステップS31)。次いで、計算ライブラリ31は、例えば「・投機スレッド上限数の求め方」の項において説明したようにして、上述した評価式の値E(N)が最大となる投機スレッド上限数Nを求める(ステップS32)。そして、図13のステップS21に戻る。
 実施例2によれば、実施例1と同様の効果が得られる。
 21 CPU
 25 スケジューラ
 36 選択頻度テーブル
 37 オーバーヘッド情報
 39 バッテリ残量

Claims (18)

  1.  複数のCPUの中の一のCPUが、
     前記複数のCPUごとに、前記複数のCPUのそれぞれに割り当て可能な投機処理数の最大値から対応するCPUに割り当てられている処理数を引き算し、
     前記複数のCPUの引算結果を加算して最大投機処理数を求め、
     前記最大投機処理数以下の投機処理を前記複数のCPUに割り当てること
     を特徴とするスケジューリング方法。
  2.  投機処理が実行される確率に基づいて、前記最大投機処理数以下の投機処理を選択すること
     を特徴とする請求項1に記載のスケジューリング方法。
  3.  前記割り当て可能な投機処理数の最大値は、
     投機処理が実際に実行される確率と、処理を切り替えるための時間と、バッテリの残量の少なくとも何れか一の要素に基づいて設定されること
     を特徴とする請求項1に記載のスケジューリング方法。
  4.  前記割り当て可能な投機処理数の最大値は、
     投機処理が実際に実行される確率と、処理を切り替えるための時間と、バッテリの残量の少なくとも何れか一の要素に基づいて設定されること
     を特徴とする請求項2に記載のスケジューリング方法。
  5.  前記最大投機処理数以下の投機処理の一の投機処理が実際に実行されるときは、他の投機処理は削除されること
     を特徴とする請求項1乃至請求項4の何れか一に記載のスケジューリング方法。
  6.  前記最大投機処理数以下の投機処理の一の投機処理が外部から指定される処理と一致するとき、前記投機処理をバックグラウンドからフォアグラウンドに移行すること
     を特徴とする請求項1乃至請求項4の何れか一に記載のスケジューリング方法。
  7.  前記最大投機処理数以下の投機処理の一の投機処理が外部から指定される処理と一致するとき、前記投機処理をバックグラウンドからフォアグラウンドに移行すること
     を特徴とする請求項5に記載のスケジューリング方法。
  8.  複数のCPUと、
     前記複数のCPUに処理を割り当てるスケジューラと、
     を含み、
     前記スケジューラによって前記複数のCPUに割り当てられる投機処理数が最大投機処理数を超えないこと
     を特徴とするスケジューリングシステム。
  9.  前記最大投機処理数は、
     前記複数のCPUのそれぞれに割り当て可能な投機処理数の最大値から前記複数のCPUのそれぞれに割り当てられている処理数を引き算し、引き算された結果を前記複数のCPUの数分加算することで得られること
     を特徴とする請求項8に記載のスケジューリングシステム。
  10.  前記スケジューラは、前記投機処理が実際に実行される確率に基づいて前記最大投機処理数以下の投機処理を選択し、前記複数のCPUに選択された投機処理を割り当てること
     を特徴とする請求項8に記載のスケジューリングシステム。
  11.  前記スケジューラは、前記投機処理が実際に実行される確率に基づいて前記最大投機処理数以下の投機処理を選択し、前記複数のCPUに選択された投機処理を割り当てること
     を特徴とする請求項9に記載のスケジューリングシステム。
  12.  前記選択された投機処理はバックグラウンドで実行され、前記選択された投機処理の中で実際に実行される投機処理がフォアグラウンドに移行されること
     を特徴とする請求項8に記載のスケジューリングシステム。
  13.  前記選択された投機処理はバックグラウンドで実行され、前記選択された投機処理の中で実際に実行される投機処理がフォアグラウンドに移行されること
     を特徴とする請求項9に記載のスケジューリングシステム。
  14.  前記選択された投機処理はバックグラウンドで実行され、前記選択された投機処理の中で実際に実行される投機処理がフォアグラウンドに移行されること
     を特徴とする請求項10に記載のスケジューリングシステム。
  15.  前記選択された投機処理はバックグラウンドで実行され、前記選択された投機処理の中で実際に実行される投機処理がフォアグラウンドに移行されること
     を特徴とする請求項11に記載のスケジューリングシステム。
  16.  前記実際に実行される投機処理以外の投機処理は削除されること
     を特徴とする請求項12乃至請求項15の何れか一に記載のスケジューリングシステム。
  17.  投機処理が実際に実行される確率と、処理を切り替えるための時間と、バッテリの残量の少なくとも何れか一の要素に基づいて前記割り当て可能な投機処理数の最大値が設定されること
     を特徴とする請求項9乃至請求項15の何れか一に記載のスケジューリングシステム。
  18.  投機処理が実際に実行される確率と、処理を切り替えるための時間と、バッテリの残量の少なくとも何れか一の要素に基づいて前記割り当て可能な投機処理数の最大値が設定されること
     を特徴とする請求項16に記載のスケジューリングシステム。
PCT/JP2011/050485 2011-01-13 2011-01-13 スケジューリング方法及びスケジューリングシステム WO2012095984A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012552604A JP5644866B2 (ja) 2011-01-13 2011-01-13 スケジューリング方法及びスケジューリングシステム
PCT/JP2011/050485 WO2012095984A1 (ja) 2011-01-13 2011-01-13 スケジューリング方法及びスケジューリングシステム
US13/940,932 US9507635B2 (en) 2011-01-13 2013-07-12 Assigning speculative processes to plurality of CPUs based on calculated maximum number of speculative processes capable of being assigned and other processes assigned to each CPU

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/050485 WO2012095984A1 (ja) 2011-01-13 2011-01-13 スケジューリング方法及びスケジューリングシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/940,932 Continuation US9507635B2 (en) 2011-01-13 2013-07-12 Assigning speculative processes to plurality of CPUs based on calculated maximum number of speculative processes capable of being assigned and other processes assigned to each CPU

Publications (1)

Publication Number Publication Date
WO2012095984A1 true WO2012095984A1 (ja) 2012-07-19

Family

ID=46506905

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/050485 WO2012095984A1 (ja) 2011-01-13 2011-01-13 スケジューリング方法及びスケジューリングシステム

Country Status (3)

Country Link
US (1) US9507635B2 (ja)
JP (1) JP5644866B2 (ja)
WO (1) WO2012095984A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11140243B1 (en) 2019-03-30 2021-10-05 Snap Inc. Thermal state inference based frequency scaling
US11442513B1 (en) 2019-04-16 2022-09-13 Snap Inc. Configuration management based on thermal state

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259280A (ja) * 1998-03-13 1999-09-24 Matsushita Electric Ind Co Ltd プログラム開発支援装置及びコンピュータシステムに適用されるプログラムを記録した記録媒体
JP2001356904A (ja) * 2000-06-13 2001-12-26 Fujitsu Ltd プロセッサ
JP2008513912A (ja) * 2004-09-28 2008-05-01 インテル・コーポレーション 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
JP2008242647A (ja) * 2007-03-26 2008-10-09 Telefon Ab L M Ericsson プロセッサ
JP2009048269A (ja) * 2007-08-14 2009-03-05 Mitsubishi Electric Corp 並列処理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124982A (ja) 1997-06-30 1999-01-29 Nec Corp 履歴に基づくWebページ先読み方式
GB0315492D0 (en) 2003-07-02 2003-08-06 Symbian Ltd A method of enabling a multitasking wireless information device to conserve battery power
US7594228B2 (en) * 2003-09-23 2009-09-22 Lam Siu H Method and apparatus to perform task scheduling
US20050144602A1 (en) * 2003-12-12 2005-06-30 Tin-Fook Ngai Methods and apparatus to compile programs to use speculative parallel threads
US7765450B2 (en) * 2005-10-20 2010-07-27 Jon Udell Methods for distribution of test generation programs
US8060884B2 (en) * 2007-07-10 2011-11-15 Sharp Laboratories Of America, Inc. Deterministic task scheduling in a computing device
US8140646B2 (en) * 2009-06-04 2012-03-20 Microsoft Corporation Network application performance enhancement using speculative execution
US8799911B2 (en) * 2009-10-12 2014-08-05 International Business Machines Corporation Managing job execution

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259280A (ja) * 1998-03-13 1999-09-24 Matsushita Electric Ind Co Ltd プログラム開発支援装置及びコンピュータシステムに適用されるプログラムを記録した記録媒体
JP2001356904A (ja) * 2000-06-13 2001-12-26 Fujitsu Ltd プロセッサ
JP2008513912A (ja) * 2004-09-28 2008-05-01 インテル・コーポレーション 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
JP2008242647A (ja) * 2007-03-26 2008-10-09 Telefon Ab L M Ericsson プロセッサ
JP2009048269A (ja) * 2007-08-14 2009-03-05 Mitsubishi Electric Corp 並列処理装置

Also Published As

Publication number Publication date
JP5644866B2 (ja) 2014-12-24
US20130305257A1 (en) 2013-11-14
US9507635B2 (en) 2016-11-29
JPWO2012095984A1 (ja) 2014-06-09

Similar Documents

Publication Publication Date Title
US10101910B1 (en) Adaptive maximum limit for out-of-memory-protected web browser processes on systems using a low memory manager
JP5939740B2 (ja) 動的にリソースを割り当てる方法、システム及びプログラム
US9588809B2 (en) Resource-based scheduler
US10289446B1 (en) Preserving web browser child processes by substituting a parent process with a stub process
JP5380093B2 (ja) コンピュータリソース管理装置、コンピュータリソース提供システム
CN108154298B (zh) 配送任务分配方法、装置、电子设备及计算机存储介质
CN112825042A (zh) 资源管理方法和装置、电子设备及存储介质
WO2009156847A1 (en) Coordinating services
CN111625339A (zh) 集群资源调度方法、装置、介质和计算设备
US20230379268A1 (en) Resource scheduling method and system, electronic device, computer readable storage medium
JP5644866B2 (ja) スケジューリング方法及びスケジューリングシステム
CN114116173A (zh) 动态调整任务分配的方法、装置和系统
JP4862056B2 (ja) 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法
JP2018190355A (ja) リソース管理方法
CN109189581B (zh) 一种作业调度方法和装置
JP2006107197A (ja) メモリ制御方法およびプログラムならびに端末装置
JP2005309868A (ja) 処理割当管理装置、処理割当管理装置の制御方法、及びプログラム
CN115964152A (zh) Gpu资源调度方法、设备和存储介质
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
US8850438B2 (en) Managing the processing of processing requests in a data processing system comprising a plurality of processing environments
CN114816741A (zh) Gpu资源管理方法、装置、系统与可读存储介质
CN111190733B (zh) 用于进行rsa计算的计算资源调度方法及装置
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP5476208B2 (ja) リクエスト処理システム、方法及びプログラム
Xie et al. A novel independent job rescheduling strategy for cloud resilience in the cloud environment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11855583

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012552604

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11855583

Country of ref document: EP

Kind code of ref document: A1