《处理器中的方法,装置和计算机程序产品.pdf》由会员分享,可在线阅读,更多相关《处理器中的方法,装置和计算机程序产品.pdf(37页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201280074716.5(22)申请日 2012.05.16G06F 21/74(2006.01)G06F 9/48(2006.01)G06F 9/38(2006.01)G06F 9/50(2006.01)(71)申请人 诺基亚公司地址 芬兰埃斯波(72)发明人 M拉蒂马基(74)专利代理机构 北京市中咨律师事务所 11247代理人 杨晓光 于静(54) 发明名称处理器中的方法,装置和计算机程序产品(57) 摘要公开了一种方法,在该方法中检查与线程的指令序列有关的信息以确定所述线程的安全条件。还通过使用所述安全条件,确定多核处理器中的。
2、哪个处理器核心具有满足所述安全条件的合适的安全模式。如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行所述线程的所述指令序列。还公开了用于实现所述方法的装置和计算机程序产品。(85)PCT国际申请进入国家阶段日2015.01.14(86)PCT国际申请的申请数据PCT/FI2012/050472 2012.05.16(87)PCT国际申请的公布数据WO2013/171362 EN 2013.11.21(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利。
3、申请权利要求书7页 说明书21页 附图8页(10)申请公布号 CN 104471587 A(43)申请公布日 2015.03.25CN 104471587 A1/7 页21.一种方法,包括 :检查与线程的指令序列有关的信息以确定所述线程的安全条件 ;通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式 ;如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行所述线程的所述指令序列。2.根据权利要求 1 所述的方法,其中所述确定包括 :检查具。
4、有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列 ;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程的所述指令序列的那个处理器核心作为所述潜在的处理器核心。3.根据权利要求 2 所述的方法,其中如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是空闲的以用于运行所述线程的所述指令序列的另一个处理器核心 ;以及如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述处理器核心的安全模式是否能够被改变以满足所述安全。
5、条件 ;以及如果能够,则改变所述处理器核心的所述安全模式以满足所述安全条件。4.根据权利要求 1、2 或 3 所述的方法,其中所述选择包括 :检查是否存在可用于被选择作为所述潜在的处理器核心的超过一个的处理器核心 ;以及如果是,则比较所述超过一个的处理器核心的可以使用的安全模式以确定哪个处理器核心提供满足所述线程的所有安全要求的最接近于所述安全条件的安全模式。5.根据权利要求 1 至 4 中的任何一项所述的方法,所述方法包括 :确定针对所述线程的优先级 ;以及使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间。6.根据权利要求 5 所述的方法,所述方法包括 :针对具有相同优先级以及被选。
6、择由相同的处理器核心运行的线程,使用循环调度法。7.根据权利要求 1 至 6 中的任何一项所述的方法,其中所述确定包括检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列 ;以 及如果否,则所述方法还包括 :选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器核心 ;以及将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。8.根据权利要求 1 至 7 中的任何一项所述的方法,所述方法包括 :运行具有相同优先级水平的多个线程的指令序列 ;确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所有的线程的安全状态的组。
7、合 ;以及如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。9.根据权利要求1至8中的任何一项所述的方法,其中装置包括所述多核处理器,以及权 利 要 求 书CN 104471587 A2/7 页3效率涉及所述多核处理器的工作负载。10.根据权利要求 9 所述的方法,所述方法包括 :提供包括针对所述潜在处理器核心的指令序列的第一二进制代码 ;以及提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二进制代码。11.根据权利要求 1 至 10 中的任何一项所述的方法,所述方法包括 :使用异构处理器作为所。
8、述多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。12.根据权利要求 1 至 11 中的任何一项所述的方法,所述方法包括 :提供针对每个处理器核心的线程队列,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。13.根据权利要求 1 至 12 中的任何一项所述的方法,所述方法包括 :使用所述多核处理器核心作为移动终端的组件。14.一种装置,包括至少一个处理器和包含计算机程序代码的至少一个存储器,所述至少一个存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置 :检查与线程的指令序列有关的信息以确定所述线程的安全条件 ;通过使用所述安全条件,确定多核。
9、处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式 ;如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的指令序列。15.根据权利要求 14 所述的装置,其中所述确定包括 :检查具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列 ;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程的所述指令序列的那个处理器核心作为所述潜在的处理器核心。16.根据权利要求 14 或 15 所。
10、述的装置,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置 :如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是空闲的以用于运行所述线程的所述指令序列的另一个处理器核心 ;以及如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述处理器核心的安全模式是否能够被改变以满足所述安全条件 ;以及如果能够,则改变所述处理器核心的所述安全模式以满足所述安全条件。17.根据权利要求 14、15 或 16 所述的装置,其中所述选择包括 :检查是否存在可用。
11、于被选择作为所述潜在的处理器核心的超过一个的处理器核心 ;以及如果是,则比较所述超过一个的处理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但是仍然满足所述线程的所有安全要求。18.根据权利要求14至17中的任何一项所述的装置,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置确定针对所述线程的优先级 ;以及使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间。权 利 要 求 书CN 104471587 A3/7 页419.根据权利要求 18 所述的装置,所述至少一个存储器具有存储在其上的代码,当由所述至。
12、少一个处理器运行所述代码时,所述代码还使得所述装置针对具有相同优先级以及被选择由相同的处理器核心运行的线程,使用循环调度法。20.根据权利要求14至19中的任何一项所述的装置,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置通过以下中的至少一个来执行所述检查以及重定向 :检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列 ;以及如果否,则选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器核心 ;以及将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。21.根据权利要求14至。
13、20中的任何一项所述的装置,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置 :运行具有相同优先级水平的多个线程的指令序列 ;确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所有的线程的安全状态的组合 ;以及如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。22.根据权利要求14至21中的任何一项所述的装置,其中效率涉及所述多核处理器的工作负载。23.根据权利要求 22 所述的装置,所述至少一个存储器具有存储在其上的代码,当由所述至少。
14、一个处理器运行所述代码时,所述代码还使得所述装置提供包括针对所述潜在处理器核心的指令序列的第一二进制代码 ;以及提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二进制代码。24.根据权利要求14至23中的任何一项所述的装置,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置使用异构处理器作为所述多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。25.根据权利要求14至24中的任何一项所述的装置,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置提供针对每个处理器核心的线程队。
15、列,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。26.根据权利要求 14 至 25 中的任何一项所述的装置,其中所述装置是移动终端的组件。27.一种计算机程序产品,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置至少执行以下 :检查与线程的指令序列有关的信息以确定所述线程的安全条件 ;通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件权 利 要 求 书CN 104471587 A4/7 页5的合适的安全模式 ;如果所述确定指示的是,所述。
16、多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的指令序列。28.根据权利要求 27 所述的计算机程序产品,其中所述确定包括 :检查具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列 ;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程的所述指令序列的那个处理器核心作为所述潜在的处理器核心。29.根据权利要求27或28所述的计算机程序产品,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个。
17、处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置 :如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是空闲的以用于运行所述线程的所述指令序列的另一个处理器核心 ;以及如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述处理器核心的安全模式是否能够被改变以满足所述安全条件 ;以及如果能够,则改变所述处理器核心的所述安全模式以满足所述安全条件。30.根据权利要求 27、28 或 29 所述的计算机程序产品,其中所述选择包括 :检查是否存在可用于被选择作。
18、为所述潜在的处理器核心的超过一个的处理器核心 ;以及如果是,则比较所述超过一个的处理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但是仍然满足所述线程的所有安全要求。31.根据权利要求27至30中的任何一项所述的计算机程序产品,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置确定针对所述线程的优先级 ;以及使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间。32.根据权利要求 31 所述的计算机程序产品,所述计算机程序产品包含一个或多个指令的一。
19、个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置针对具有相同优先级以及被选择由相同的处理器核心运行的线程,使用循环调度法。33.根据权利要求27至32中的任何一项所述的计算机程序产品,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置 :检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列 ;以及如果否,则选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器核。
20、心 ;以及将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。34.根据权利要求27至33中的任何一项所述的计算机程序产品,所述计算机程序产品权 利 要 求 书CN 104471587 A5/7 页6包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置 :运行具有相同优先级水平的多个线程的指令序列 ;确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所有的线程的安全状态的组合 ;以及如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程的所述指令序列的一部分,同。
21、时所述多个线程的其它指令序列等待运行。35.根据权利要求27至34中的任何一项所述的计算机程序产品,其中装置包括所述多核处理器,以及效率涉及所述多核处理器的工作负载。36.根据权利要求 35 所述的计算机程序产品,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置至少提供包括针对所述潜在处理器核心的指令序列的第一二进制代码 ;以及提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二进制代码。37.根据权利要求27至36中的任何一项所述的计算机程序产品,所述计算机程序产品包含一个。
22、或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置至少使用异构处理器作为所述多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。38.根据权利要求27至37中的任何一项所述的计算机程序产品,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置至少提供针对每个处理器核心的线程队列,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。39.根据权利要求27至38中的任何一项所述的计算机程。
23、序产品,其中所述计算机程序产品是移动终端的软件的一部分。40.一种装置,包括 :多核处理器,其包括至少第一处理器核心和第二处理器核心 ;被配置为在所述多核处理器的处理器核心中运行的第一线程的指令序列 ;检查单元,其被配置为 :检查与线程的指令序列有关的信息以确定所述线程的安全条件 ;通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式 ;如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列。41.根据权利要求 40 。
24、所述的装置,其中所述装置是移动终端的组件。42.一种装置,包括 :用于检查与线程的指令序列有关的信息以确定所述线程的安全条件的构件 ;用于通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全权 利 要 求 书CN 104471587 A6/7 页7条件的合适的安全模式的构件 ;用于如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列的构件。43.根据权利要求 42 所述的装置,所述装置包括用于检查具有所述合适的安全模式的所述一个或多个处。
25、理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列 ;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程的所述指令序列的那个处理器核心作为所述潜在的处理器核心的构件。44.根据权利要求 42 或 43 所述的装置,其中所述用于检查的构件包括 :用于如果具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是空闲的以用于运行所述线程的所述指令序列的另一个处理器核心 ;以及如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述处理器核心的安全模式是否能够被改变以满足所述安全条件 。
26、;以及如果能够,则改变所述处理器核心的所述安全模式以满足所述安全条件的构件。45.根据权利要求 42、43 或 44 所述的装置,所述装置包括 :用于检查是否存在可用于被选择作为所述潜在的处理器核心的超过一个的处理器核心 ;以及如果是,则比较所述超过一个的处理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但是仍然满足所述线程的所有安全要求的构件。46.根据权利要求 42 至 45 中的任何一项所述的装置,所述装置包括 :用于确定针对所述线程的优先级的构件 ;以及用于使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间的构件。47.根据权利要求 46 所述。
27、的装置,所述装置包括 :用于针对具有相同优先级以及被选择由相同的处理器核心运行的线程,使用循环调度法的构件。48.根据权利要求 42 至 47 中的任何一项所述的装置,所述装置包括 :用于检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列的构件 ;用于选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器核心的构件 ;以及用于将所述潜在的处理器核心的安全模式改变为与所述安全条件对应的构件。49.根据权利要求 42 至 48 中的任何一项所述的装置,所述装置包括 :用于运行具有相同优先级水平的多个线程的指令序列的构件 ;用于确定在所述多。
28、核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所有的线程的安全状态的组合的构件 ;以及用于如果在所述多核处理器的处理器核心上不存在以便能够由所述多核处理器运行所有线程的安全状态的组合,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行的构件。50.根据权利要求42至49中的任何一项所述的装置,其中所述装置包括所述多核处理器,以及效率涉及所述多核处理器的工作负载。权 利 要 求 书CN 104471587 A7/7 页851.根据权利要求 50 所述的装置,所述装置包括 :用于提供包括针对所述潜在处理器核心。
29、的指令序列的第一二进制代码的构件 ;以及用于提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二进制代码的构件。52.根据权利要求 42 至 51 中的任何一项所述的装置,所述装置包括 :用于使用异构处理器作为所述多核处理器的构件,其中至少两个处理器核心的指令集是至少部分不同的。53.根据权利要求 38 至 52 中的任何一项所述的装置,所述装置包括 :用于提供针对每个处理器核心的线程队列的构件,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。54.根据权利要求 38 至 53 中的任何一项所述的装置,所述装置包括 :用于使用所述多核处理器核心作为移动终端的组件。
30、的构件。权 利 要 求 书CN 104471587 A1/21 页9处理器中的方法,装置和计算机程序产品技术领域0001 本发明涉及运行多核处理器中的线程的指令序列的方法。本发明还涉及一种装置,该装置包括至少一个处理器和包含计算机程序代码的至少一个存储器,该至少一个存储器和该计算机程序代码被配置为使用所述至少一个处理器使得所述装置运行多核处理器中的线程的指令序列。本发明还涉及计算机程序产品,该计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置至少执行以下 :运行多核处理器中的线程的指令序列。背景。
31、技术0002 这部分旨在提供在权利要求书中陈述的本发明的背景或上下文。此处的描述可以包含可以被追求的构思,但其不是必须是先前已设想或追求的构思。因此,除非此处另外指出,否则本节所述的内容不是本申请中的说明书和权利要求书的现有技术,并且不通过包含在本部分中而承认其为现有技术。0003 在含有两个或更多处理器核心的处理器中,即多核处理器,不同的应用可以同时由不同的处理器核心来运行。如果所有的处理器核心具有相同的指令集或如果应用已经被编译到不同的指令集,则还可能在多核处理器的两个或更多处理器核心之间共享应用的运行。0004 多核处理器的不同处理器核心可以实现类似的指令集,或处理器核心中的全部或一些处。
32、理器核心可以实现至少部分不同的指令集。当处理器核心实现部分不同的指令集时,可能存在重叠的指令集,该重叠的指令集对于处理器核心中的两个或更多处理器核心而言或甚至对于所有的处理器核心而言是共同的。发明内容0005 在下文中,术语多核处理器涉及具有两个和更多处理器核心的处理器,以及该核心可以具有类似或不同的指令集。术语异构多核处理器涉及多核处理器,在该多核处理器中,至少一个处理器核心比该多核处理器的另一个处理器核心具有至少部分不同的指令集。在一些实施例中,异构多核处理器中的每个处理器核心比其它处理器核心具有至少不同的指令集。在异构处理器核心中,在处理器核心中可能存在可以使用的不同类型的安全状态 ( 。
33、模式 )。0006 在具有多核处理器的装置中实现的一些应用中,不是总是需要所有可以使用的处理器能力,以及所述多核处理器的处理器核心中的一些处理器核心可以在大多数时间是空闲的。在另一方面,一些应用或一些应用的线程可能需要针对运行该线程的一些安全要求。因此,可能需要选择能够支持该安全要求的此类处理器核心,或在处理器核心中运行该线程前,能够将处理器核心的状态改变到对应于该安全要求的安全状态。0007 根据本发明的一些示例实施例,可以如下来执行具有一些安全要求的线程的调说 明 书CN 104471587 A2/21 页10度:0008 在没有运行任何线程的此类处理器核心上调度线程,以便能够由该处理器核。
34、心满足它们的安全要求。如果针对选择处理器核心存在若干可能性,则可以在最接近该安全要求的处理器核心上,但是以满足该安全要求的方式,来调度该线程。也就是说,在可能具有更多安全能力但是不小于由该线程所要求的安全能力的此类处理器核心上调度线程。0009 在一个处理器核心上,存在针对在这个处理器核心上的具有相同优先级的所有线程的循环调度法。如果存在准备运行的较高优先级线程,则不执行较低优先级的线程。0010 当在系统上将调度新线程以及没有合适的处理器核心空闲时,调度器尝试改变空闲处理器核心的安全状态,以便它满足该线程的安全要求。如果这是可能的,则改变该处理器核心的状态,以及在该核心上调度该线程。如果没有。
35、空闲的处理器核心,则调度器尝试改变繁忙处理器核心的安全状态以及将正在该处理器核心上运行的线程移动到一个或多个其它处理器核心。如果不能找到针对新线程的合适的处理器核心,则改变处理器核心中的一个处理器核心的安全状态,以及在此之后,调度器将进行线程的负载均衡,以便在该处理器核心上可以更均匀地均衡负载。0011 如果在该系统的处理器核心上没有以便在该系统上能够运行处于相同优先级水平的所有线程的安全状态的组合,则调度器可以以循环的方式开始改变处理器核心的安全状态,以便能够运行一部分线程,同时其它线程等候轮到它们。0012 调度算法旨在用于异构多核处理器系统,其中核心具有不同数目的安全状态,能够动态地改变。
36、该安全状态。操作系统可以具有针对每个线程的比特向量以描述它的安全要求。0013 在一些实施例,以某些类型的代码块(连续的指令集,也称复合语句)被包含在该线程的相同片中而不管该线程的该片的长度是否与一个时间片的长度相同还是不同于一个时间片的长度的方式,将线程分成片。在这个上下文中,术语不可以分割的代码块可以用于表示应当在相同处理器核心内运行的以及被包含在线程的相同片中的代码块。例如,循环,if 声明,switch 声明等,可以是将被包含在线程的相同片中的此类代码块,以便在该片中的整个代码块由调度器已经选择的用于运行该线程的该片的相同处理器核心来运行。0014 在一些实施例中,编译器可以尝试,以线。
37、程的片的长度(以运行时间为单位)尽可能接近于一个时间片的长度的方式,但是这可能不是总是可能的,来生成针对该线程的代码。0015 在运行时间,如果不需要考虑安全问题,则可以以以下方式来执行该调度。在每个时间片的开始,可以重新调度线程。可以针对该线程的前一个片已经结束的此类线程来执行该调度。线程主要地继续地在上一个时间片中它位于的相同处理器 ( 如果在二进制代码中,它仍然被标记为潜在的或最优的处理器核心,或如果该线程的该片还没有结束 ) 上运行。然而,在下一个时间片期间,该线程可能不总是继续运行,而是可以将该线程放入处理器核心的队列中以等待直到调度器给予该线程处理时间。如果存在新进程或调度器确定的是,不同于先前用于该线程的处理器核心的另一个处理器核心是针对该线程的最优的处理器核心,则将该线程放入该最优处理器核心的队列中。在将线程已经放入它们最优的处理器核心的队列中后,可以存在针对具有超过一个可以应用的处理器核心的线程的负载均衡以优化整体负载情况。可以执行这个操作,以便调查具有最高负载的第一处理器核心。线说 明 书CN 104471587 A。