调度方法以及调度装置的制作方法

文档序号:6567536阅读:186来源:国知局
专利名称:调度方法以及调度装置的制作方法
技术领域
本发明涉及多处理器系统中的并行处理的执行单位的调度方法以及装置。
背景技术
现在的支持多任务的操作系统搭载了多线程(multi thread)技术,该多 线程技术实现可同时执行多个进程(process)的多任务环境,同时这些进程 在进程内部生成多个线程来进行并行处理。进程在I^U亍时^R分配固有的资源 或地址空间,无法访问到其他进程的区域。相对于此,线程是在进程内部中 生成的执行单位,各个线程可以互相自由地访问进程内的区域。线程成为操 作系统分配CPU (Central Processing Unit)的执行时间的基本的执行单位。 在本说明书中,将线程的分配称为调度。
在一个系统中搭载了多个处理器的多处理器系统中,可并行地或者协调 地执行处理,从而可实现处理整体的高速化。通常,在多处理器系统中,在 共享存储器中的被称为任务队列的等待队列中保存可执行的线程。这些线程 分配给任一个处理器而被执行。根据分配线程的方法,进程的运行速度或存 储器消耗量等的性能改变,所以在多处理器系统中,需要与单处理器系统中 的调度有所不同的方法。
对于多处理器系统中的调度,可考虑以下方法例如,担任管理线程的 作用的管理单元与各个处理器进行通信,调度对各个处理器所分配的线程。
在通过管理单元进行调度的这个方法中,存在以下问题在管理单元和 处理器之间的通信中产生消息的延迟的情况较多,从而延迟线程的执行。为 了解决这个问题,可考虑由各个处理器自己支配地进行调度的方法。在该方 法中,在各个处理器中执行各自的调度器,访问到位于共享存储器中的任务 队列,选择要执行的线程。
在该方法中,为了防止在各个处理器执行调度的期间、即在调度中,共 享存储器中的任务队列被其他的处理器修改,调度器锁定任务队列。在这个
期间,是否禁止中断是由系统的设计者左右。
在调度中不禁止中断的情况下,在调度器锁定了任务队列的期间也接受 中断。此时,至中断处理结束、并解除锁定为止,无法执行调度的结果,导 致系统的效率降低。
另一方面,在调度中禁止中断的情况下,产生系统的中断响应性能降低 的问题。这些问题并不仅仅是在这里叙述的多处理器上动作的核心调度器的 问题,在多处理器/多线程的环境下的用户等级调度器(即、通过在各处理器 中动作的线程上执行调度器,从而实现在用户等级中的多线程的方式)的情 况也是相同的。
特别是,执行用户等级调度器的核心线程通过各个处理器上的核心等级 调度器而^C调度,有产生被其他的核心线程抢占的可能性,所以任务队列的 锁定有可能产生更严重的问题。此时,在被抢占时该核心线程中动作的用户 等级调度器取得锁定的情况下,直到其他的处理器的线程上动作的用户等级 调度器被解除锁定为止,无法进行调度。

发明内容
发明要解决的课题
本发明鉴于上述课题而完成,其目的在于,提供一种调度技术,控制将效率。
解决课题的方法
技术领域
本发明的方式涉及在多处理器系统中,对成为处理器的执行对象的执行 单位进行调度的方法。该调度方法对成为多处理器系统中所包括的多个处理 器的执行对象的各个执行单位赋予识别符,保存包括可否执行信息和最近执 行信息的执行单位信息,上述可否执行信息与执行单位的识别符相关联地表 示各个执行单位的每个执行单位是否为可执行的状态,上述最近执行信息表 示在各个执行单位中最近执行的执行单位的识别符。而且,基于执行单位信 息,在优先地选择最近执行的执行单位的识别符以外的识别符的制约下,选 择任一个可执行的执行单位的识别符作为由处理器执行的执行单位的识别 符,同时更新执行单位信息。
本发明的这个方式也可以适用于通过管理单元所调度的系统中,也可以
适用于通过各个处理器本身进行调度的系统中。 调度的系统中。
这里,可否执行信息也可以作为对各个执行单位分配一比特作为识别符
即原子(atomic)操作来进行。
"不可分操作"表示不能再进一步分割的最小单位的操作,在多处理器 系统中,被保证了没有与其他处理器进行的操作的相互作用而执行的操作。
另外,以上结构元件的任意组合、将本发明作为系统、程序、存储了程 序的存储介质所表现的方式,作为本发明的方式也是有效的。
发明效果
本发明有利于调度多处理器系统中的并行处理的执行单位。


图1是表示本发明实施方式的多处理器系统的图。
图2是表示图1所示多处理器系统的任务队列的图。
图3是表示图2所示任务队列中所包含的线程信息的结构的图。
图4是用于说明图3所示线程信息的细节的图。
图5是表示通过处理器选^^线程的处理的流程图。
图6是表示伴随图5所示处理的线程信息的变化的图。
图7是表示通过处理器追加线程的处理的流程图。
图8是表示伴随图7所示处理的线程信息变化的图。
图9是表示使用了用户等级调度器的多处理器系统的例子的图。
图IO是表示图9所示多处理器系统中线程组合的例子的图。
图ll是表示图9所示多处理器系统中线程调度的例子的图。
标号说明
IO处理单元、12处理器、14本地存储器、16存储器控制单元、20主总 线、30主存储器、40线程信息、50线程地址信息、60线程实体、100多处 理器系统、110处理单元、112处理器、114存储器控制单元、120主总线、 130主存储器
具体实施例方式
在多处理器系统中,为了防止在各处理器的执行单位例如线程的调度中, 存储了线程的任务队列被其他处理器修改,需要锁定任务队列。
通过这个锁定,如果在调度中禁止中断,则系统的中断响应性能降低, 如果在调度中不禁止中断,则产生至中断处理结束、并解除锁定为止,无法 执行调度的顾虑。
为了解决上述的问题,本发明者提出以下的技术。
对各线程赋予识别符,保存包括可否执行信息和最近执行信息的执行单 位信息,上述可否执行信息与线程的识别符相关联地表示这些线程的每个线 程是否为可执行的状态,上述最近执行信息表示在各个线程中最近执行的线 程的识别符。而且,基于线程信息,在优选地选择最近执行的线程的识别符 以外的识别符的制约下,选择任一个可执行的线程的识别符作为对处理器分 配的线程的识别符。
这里,可以将线程的实体(以下,称为线程实体)通过基于处理器所选 择的识别符而可取得的所有方法来保存。例如,可以将线程实体与识别符相 关联地保存,也可以将各线程实体保存到存储器的各个规定的区域,同时将 线程实体被保存的区域的开始地址和该识别符相关联地保存在存储器中。
该技术是,将线程实体和用于选择要执行哪一个线程所需的线程信息分 别保存到存储器中。因此,在调度时,无需锁定存储了线程实体的区域,可 以消除在调度中是否禁止中断的顾虑。
该技术在执行用户等级调度器的系统中,也能够消除上述顾虑,同时也 还可以解决用户等级调度器所引起的问题。
例如,在多处理器系统,特别是仅限于可执行OS (操作系统)功能的处 理器的非对称的多处理器系统中,认为以下方法是^t是高多处理器系统的处理
效率的有效方法在各处理器中动作的OS所提供的核心线程上生成用户等 级线程,自己支配地进行调度的方法、即使用用户等级调度器的方法。在该 方法中,存在由使用用户等级调度器所引起的调度失败的问题。
例如,执行用户等级调度器的线程通过各处理器中的核心调度器而被调 度,因为有被其他的核心调度器抢占的可能性。因此,在被抢占时,在该线 程中动作的用户等级调度器取得锁定的情况下,直到其他处理器的线程上动
作的用户等级调度器被解除为止,无法进行调度,从而导致处理器的处理效 率降低。而且,直到被解除锁定为止的时间均依赖于状况,难以估计,所以 也可能成为引起系统的不稳定的原因。
这里,考虑执行在多处理器系统中的各处理器能够自主地动作的核心调 度器的以往的系统。在任务队列中有线程l、线程2、线程3,假设多个处理
器中的处理器A成为可执行任务队列中的线程的状态。
处理器A为了选择要执行的线程,临时将任务队列复制到自己的本地存 储器中,在从任务队列中选择了例如线程1之后,进行从任务队列中删除线 程1的更新处理,并将被更新的任务队列重写到主存储器中。从开始任务队 列的复制到结束任务队列的重写为止的期间,为了防止共享存储器上的任务 队列被其他的处理器修改,将任务队列锁定。在任务队列被锁定的期间,即 使其他的处理器成为了可执行位于任务队列的线程的状态,也无法使用任务 队列,所以锁定的期间越长则系统的处理效率就降4氐。
此外,在处理器A中动作的调度器也有如上所述地通过中断而被抢占的
法进行调度,无法执行线程2、 3,直到处理器A从中断处理返回,被解除锁 定为止。这样导致系统的处理效率降低,同时还有可能引起不稳定。
另外,如果将处理器A、…替换为执行在处理器A、…上动作的用户等 级调度器的线程(例如线程a、…),上述说明也可以适用于执行用户等级调 度器的系统中。具体地说,在执行用户等级调度器的系统中,例如执行处理 器A上动作的用户等级调度器的线程a也有通过中断而一皮抢占的可能性。当 线程a在任务队列被锁定的状态下抢占,则其他的线程无法进行调度,直到 线程a从中断处理返回,被解除锁定为止。即,在使用用户等级调度器的系 统中也相同地,起因于任务队列的锁定,存在系统的处理效率降低,可能引 起不稳定的问题。
此外,在多处理器系统中,各个处理器以包含在各自的处理单元的形式 存在。这些处理单元可分为PPU (Power Processing Unit)和SPU ( Synergistic Processing Unit )。可以是所有SPU使用同 一个结构来实现,也可以是分别具 有不同的结构。PPU也可以相对于SPU而在本地位于例如与SPU同一个芯 片、同一个包、同一个电路板、同一个产品中,也可以相对于SPU而在远程 位于例如通过总线或因特网等的通信网络而可连接的不同的产品中。同样地,
SPU也可以分别位于本地或者远程。
调度禁止期间的存在和禁止时间的估计难度成为多处理器系统的处理效 率降低的主要原因。如果执行用户等级调度器的所有线程是SPU的线程(以 下,称为SPU线程),则作为解决该问题的方法,可考虑将线程分组以组为 单位进行调度的方法。这里,以图9所示多处理器系统为例进行说明。
图9所示的多处理器系统具有多个处理单元110和主存4诸器130,它们 连接到主总线120。各处理单元IIO具有处理器112、本地存储器114、存储 器控制单元116。处理器112可对本地存储器114读写数据。存储器控制单元 116提供从其他的处理单元110的处理器112参照本地存储器114的数据时的 接口,同时提供存储器的同步、排他控制等功能。
这里,考虑在主存储器130中设置的任务队列中仅存储有SPU线程的情 况。此时,任务队列中的线程被如图IO所示地调度。在图10中,线程组l 包括三个线程thla、 thlb、 thlc。线程组2包括一个线程th2a。这样的只有一 个线程的情况也作为线程组来处理。同样地,线程组3包括两个线程th3a、 th3b。线程组4包括一个线程th4a。
这些线程的调度以属于同一个线程组的所有线程同时分配给某一个处理 器112为条件进行。在第1线程组分配给处理器112时,仅限于属于第1线 程组的三个线程thla、 thlb、 thlc同时^皮分配给某一个处理器112的情况。不 会进行将三个线程thla、 thlb、 thlc中的一个或两个分配给处理器112,剩余 的转移到主存储器130的情况。
图11是用于说明线程以线程组为单位被分配给处理器112的情况的图。 图11表示在处理器总数为四个的多处理器系统中,属于图IO所示的四个线 程组的线程分配给处理器112的情况。在某一时刻,属于第l线程组的三个 线程thla、 thlb、 thlc被分别分配给第1处理器、第2处理器、第3处理器, 属于第2线程组的一个线程th2a被分配给第4处理器,除此之外的属于第3 线程组的两个线程th3a、 th3b和属于线程组4的一个线程th4a转移到主存储 器130。
根据这样的系统,使得属于一个线程组的多个线程必需同时分配给任一 处理器。在线程组中,因只有取得锁定的线程不会被抢占,所以可限定调度 的禁止期间。
但是,在PPU的线程(以下,称为PPU线程)和SPU线程非同步地进
行调度的环境中,在PPU线程和SPU线程共有相同的任务队列的情况下,产 生以下问题。当某一 PPU线程取得任务队列的锁定后直接被其他的PPU线程
抢占,则因SPU线程必需等到该PPU线程被重新执行为止,所以无法限定调
度的禁止期间。
本发明人所提案的调度技术是将线程信息和线程实体分开保存,处理器 在进行要执行哪一个线程的选择时,只下载线程信息即可。如果结束选4奪、 结束线程信息的更新(具体地说,将最近执行的线程的识别符变更为选择的 线程的识别符的处理、和将选择的线程的识别符修改为表示与该识别符对应 的线程不可执行的处理),将更新的线程信息存储在主存储器中。之后,处理 器复制与所选择的识别符对应的线程实体,但复制的期间,其他处理器可以 使用线程信息。这样,线程信息被一个处理器占用的时间短,所以即使锁定 了线程信息,也可以减轻系统整体的处理效率的降低。
而且,本发明人提出将可否执行信息作为对各线程分配一比特作为识别 符的比特串来保存。这样,可使用原子操作或原子命令来进行线程的选择、 线程信息的更新等,可实现不会随着锁定搡作的、即无锁定的任务队列。如 果没有锁定操作,则上述的起因于任务队列的锁定的各种问题也被解除。
图1表示成为本发明的实施方式的多处理器系统100的结构。多处理器 系统100具有多个处理单元10和主存储器30,它们连接到主总线20。各处 理单元10包括处理器12、本地存储器14、存储器控制单元16。处理器12 可对本地存储器14读写数据。存储器控制单元16提供从其他的处理单元10 的处理器12参照本地存储器14的数据时的接口 ,同时提供存储器的同步、 排他控制等功能。
处理单元10中的任一个处理单元担任关于线程的调度对其他的处理单 元的服务单元的作用。作为服务单元的作用,例如是主存储器30的分配,或 有关主存储器30中的关于线程的最初的存储的情况等。主存储器30的分配, 例如可以是决定分配给线程信息的区域,区域的大小或应对线程的实体分配 的存储器大小等。
另外,该服务器单元也可以由任一个处理单元IO来担任。 在某一时刻,各处理器12中一个线程动作,多处理器系统IOO整体并行 执行多个线程。在各处理器12中动作的线程可占有并使用处理单元10内的 本地存储器14或存储器控制单元16内的寄存器等所有资源。
在该状态中,等待处理的线程的内容被保存在主存储器30中。线程的内 容是该线程在被执行的处理单元10中所占有的所有资源的状态,在线程在处
理器12中动作时,各种寄存器中所保存的值的集合、本地存储器14中所保 存的数据、存储器控制单元16的各种寄存器的内部状态等。在线程不在处理 器12中动作时,将该线程的内容复制到主存储器30中,在重新成为可由处 理器12处理时,可以从主存储器30读出其内容,继续处理。线程的内容相 当于线程实体。
图2表示由主存储器30所存储的有关线程的信息。这些信息是线程信息 40、线程地址信息50、线程实体60,担任多处理器系统100中的任务队列的 作用。另外,这些被存储信息的区域是由服务单元分配,并通知到其他的处 理单元10。
线程信息40包括可否执行信息和最近执行信息。上述可否执行信息将对 各线程分别赋予的识别符与表示每个线程是否为可执行的状态的信息相关 联。图3表示线程信息40的细节。
比特串(isSchedulable)是可否执行信息,它所包含的1比特表示一个线 程,比特号码对应于线程的号码。另外,多处理器系统100将比特号码直接 作为线程的号码,所以可实现处理的简化。
比特串isSchedulable的各比特值表示与该比特对应的线程是否为可执行 的状态。这里,比特值'T,表示可执行,"O"表示不可执行。比特串isSchedulable 所包含的比特的数目相当于用于可否执行信息的保存所分配的区域的大小, 这里^:为128比特。
lastScheduled是取比特串isSchedulable所包含的各比特中表示最近执行 的比特的号码的整数值的变数。
如图4的例子那样,由isSchedulable和lastScheduled表示可执行的线 程的号码、最近执行的线程的号码。在图4的例子中,比特串isSchedulable 中,值为"1"的比特(图中,箭头B、 C、 D所示的比特)为三个,与这三 个比特号码对应的线程为可执行线程。对于值为"0"的其他比特,与它们对 应的线程为不可执行。此外,和与lastScheduled的值相等的比特号码(图中, 箭头A所示的比特号码)对应的线程是最近执行的线程,其状态为不可执行。
线程地址信息50是,将各线程的号码这里是比特串isSchedulable中所包 含的比特的号码和与该号码对应的线程的实体所保存的区域的开始地址相关
联的信息。对于将哪个号码的线程实体保存到哪个地址的区域由服务单元决 定。
在没有等待处理的线程的状态下,线程信息40的比特串isSchedulable 的各比特的值为"0"。
进行处理单元10的处理,线程被生成。被生成的线程由某一处理单元 IO执行。在产生等待处理的线程时,任务队列被利用。这里,作为例子以图 4所示的任务队列的状态为起点,使用图5的流程图来说明处理单元IO选择 接下来要执行的线程的处理,以及伴随该选择的线程信息的更新处理。
在图4所示的状态下,多处理器系统100的各处理单元10分别有处理中 的线程,等待处理的可执行的线程有三个,这三个线程的各个实体存储在主 存储器30中。
在该状态下,当在某一处理单元10中,结束处理中的线程的处理,则该 处理单元10的处理器12为了选择接下来要执行的线程,将包含在线程信息 40中的比特串isSchedulable和lastScheduled下载到本地存储器14中(S10 )。 在多处理器系统100中,处理单元10使用原子命令来进行有关线程信息40 的处理,这里, -使用例如"lwarx"或"getllar"作为用于下载线程信息40的 命令。另外,图6的A栏所示的比特串isSchedulable是图4所示的比特串 isSchedulable 。
处理器12将下载的比特串isSchedulable (图6的A栏所示的比特串)沿 着箭头L所示的方向、即向左旋转(rotates),使得与lastScheduled的值相等 的号码的比特(图6的箭头Al所示的比特)成为末尾。这样,图6的A栏 的比特串isSchedulable成为图6的B栏的比特串isSchedulable。如图所示, (lastScheduled+1 )号的比特(箭头Bl所示的比特)位于比特串isSchedulable 的开头,lastScheduled号的比特(箭头B3所示的比特)成为比特串 isSchedulable的末尾。
处理器12接着对于被旋转的比特串isSchedulable从开头开始依次检索值 为"1"的比特,取得最先检测的比特(箭头B2所示的比特)的号码作为接 下来执行的线程的号码(S18)。作为用于比特的检索的命令,例如可使用对 从比特串isSchedulable的开头连续的具有"0"的值的比特的数目进行计数的 "Count Leading Zero"。选择对通过"Count Leading Zero"所得到的值(图6 所示的B栏的比特串isSchedulable的例子中是4 )相加(lastScheduled+1 )得
到的值作为接下来要执行的线程的号。
而且,处理器12将所选择的号码的比特值设置为"0",同时将
lastScheduled设置为这个号码,进行线程信息40的更新(S20 )。被更新的线 程信息40被存储到主存储器30中(S24 )。这里,比特值的更新使用图6的 C栏所示的128比特的比特串来进行。C栏的比特串具有128比特,只有与 在步骤S18中所选择号码相同的号码的比特(箭头C1所示的比特)具有"1" 值。处理器12通过"AtomicAndc"命令对图6的B栏的比特串isSchedulable 和C栏的比特串进行运算,更新B栏的比特串isSchedulable。此外,用于存 储被更新的比特串isSchedulable的命令可以作为例如"stwcx"或"putllc"。
图6的D栏表示被更新的线程信息40。这里,作为接下来要执行的线程 所选择的比特(箭头Dl所示的比特)成为表示最近被执行的线程的比特, 其值从'T,成为"0"。
之后,处理器12参照线程地址信息50,取得与所选一奪的号码的线程对 应的线程实体60的开始地址,同时将线程实体60从该开始地址所示的区域 下载到本地存储器14进行处理。
接下来,使用图7的流程图,说明对任务队列追加成为可执行的线程的 处理。
处理单元10的处理器12为了将新成为可执行的线程追加到任务队列, 将线程信息40中所包含的比特串isSchedulable下载到本地存储器14 ( S50 )。 该比特串isSchedulable是例如图8的A栏所示的比特串isSchedulable。处理 器12选择A栏的比特串isSchedulable的各比特中的值为"0"的任一比特(例 如箭头Al所示的比特)的号码作为追加的线程的比特号码。而且,处理器 12通过"AtomicOr,,命令对A栏的比特串isSchedulable和B栏所示的比特 串进行运算,得到C栏所示的比特串isSchedulable ( S54 )。图8的B栏所示 的比特串具有128比特,只有与由处理器12所选择的号码相同的号码的比特
(箭头B1所示的比特)具有"1"值。
接着,处理器12将通过步骤S54所得到的比特串isSchedulable (图8的 C栏的比特串)存储到主存储器30,结束用于追加线程的线程信息40的更新
(S58)。
之后,处理器12将追加的线程的实体复制到对于在步骤S54中选择的比 特号码所分配的区域,结束追加线程的处理。
这样,根据图1所示的多处理器系统100,通过各处理器12本身进行从 任务队列选择线程的处理、更新任务队列的处理,所以可以提高系统整体的 处理效率。
此外,在构成任务队列时,可以将线程信息和线程实体分开保存,线程 的选择、更新可以仅使用线程信息来进行,所以实现了更高效率的多处理器系统。
而且,作为线程信息而使用比特串isSchedulable和lastScheduled的两个
变数,所以可以由原子命令进行线程的选择和更新。因此,实现无锁定的任 务队列。
通过实现无锁定的任务队列,可以消除在调度中是否接受中断的顾虑。 此外,最近执行的线程的信息被保存,在选择线程时,优选地选择最近 执行的线程之外的线程,同时更新伴随这个选择的对应信息。由此,即使最 近执行的线程再成为可执行,也优先地执行其他可执行的线程,所以可以保 持在线程的调度中重要的公平性。
这里,图1所示的多处理器系统100是只使用核心调度器的多处理器系 统,但用于多处理器系统100的调度方法也可以适用于使用了在各处理器中 动作的线程上所实现的用户等级调度器的系统中。此时,可以消除在调度中 是否接受中断的顾虑,同时可以解除上述的起因于使用了用户等级调度器的 问题。
以上,基于实施方式说明了本发明。但本领域的4支术人员应该理解实施 方式只是例子,这些各结构元件或各处理进程的组合可以有各种变形例,而 且,这样的变形例也属于本发明的范围。
此外,图1所示的实施方式是各处理器自主地进行调度的系统,本发明 的调度方法并不限于这样的系统,例如也可以适用于由一个管理单元进行调 度的系统。
此外,使用了本发明的设备也属于本发明的范围。这些设备并不限于个 人计算机或服务器等,还包括携带电话、游戏机、可移动计算机、个人携带 信息设备(PDA)、数字电视等。
产业上的可利用性
如上所述的本发明可用于并行处理多个进程的计算机、携带电话、游戏 设备等的电子设备。
权利要求
1.一种调度方法,其特征在于,对成为多处理器系统中所包括的多个处理器的执行对象的各个执行单位赋予识别符,保存包括可否执行信息和最近执行信息的执行单位信息,上述可否执行信息与执行单位的识别符相关联地表示各个执行单位的每个执行单位是否为可执行的状态,上述最近执行信息表示在各个执行单位中最近执行的执行单位的识别符,基于执行单位信息,在优选地选择最近执行的执行单位的识别符以外的识别符的制约下,选择任一个可执行的执行单位的识别符作为由处理器执行的执行单位的识别符,同时更新执行单位信息。
2. 如权利要求1所述的调度方法,其特征在于, 所述执行单位信息保存在各个处理器可访问的存储器中, 所述选择以及更新是由执行与所选择的识别符对应的执行单位的处理器本身来进行。
3. 如权利要求1或2所述的调度方法,其特征在于,可否执行信息作为对各个执行单位分配一比特作为识别符的比特串而被 保存,所述选择以及更新通过不可分操作来进行。
4. 如权利要求3所述的调度方法,其特征在于,旋转比特串,使得与最近执行的执行单位对应的比特成为末尾, 通过从被旋转的比特串的开头开始依次检索可执行的执行单位的比特, 进行所述选择。
5. 如权利要求2所述的调度方法,其特征在于,位信息而进行,上述处理器执行与所选择的识別符对应的执行单位,而且,在所述更新结束之后,将所述执行单位信息存储在所述存储器中。
6. 如权利要求5所述的调度方法,其特征在于,在所述存储器中还保存地址信息,所述地址信息将所述识别符和与该识 别符对应的执行单位的内容的所述存储器中的存储目的地的地址相关联,将所述执行单位信息存储在所述存储器之后,参照所述地址信息,从所 述存储器中读出与所选择的识别符对应的执行单位的内容,执行该执行单位。
7. —种调度装置,其特征在于,包括执行单位信息保存单元,保存包括可否执行信息和最近执行信息的执行 单位信息,上述可否执行信息与对每个执行单位赋予的识别符相关联地表示 成为多处理器系统中所包含的多个处理器的执行对象的各个执行单位的每个 执行单位是否为可执行的状态,上述最近执行信息表示各执行单位中最近执行的执行单位的识别符;执行单位选择单元,基于所述执行单位信息,在优选地选择最近执行的 执行单位的识别符以外的识别符的制约下,选择任一个可执行的执行单位的 识别符作为由处理器执行的执行单位的识别符;以及执行单位信息更新单元,随着所述选择,更新所述执行单位信息。
8. 如权利要求7所述的调度装置,其特征在于,所述执行单位信息保存单元在各个处理器可访问的存储器中保存所述执 行单位信息,所述执行单位选择单元以及所述执行单位信息更新单元由执行与所选才奪 的识别符对应的执行单位的处理器本身构成。
9. 如权利要求7或8所述的调度装置,其特征在于, 所述执行单位信息保存单元将可否执行信息作为对各个执行单位分配一比特作为识别符的比特串来保存,作,进行所述选择以及所述更新。
10. 如权利要求9所述的调度装置,其特征在于,所述执行单位选择单元旋转比特串,使得与最近执行的执行单位对应的 比特成为末尾,通过从被旋转的比特串的开头开始依次检索可执行的执行单位的比特, 进行所述选择。
11. 一种程序,其特征在于, 使计算机执行以下功能保存包括可否执行信息和最近执行信息的执行单位信息的功能,上述可 否执行信息与对每个执行单位赋予的识别符相关联地表示成为多处理器系统中所包含的多个处理器的执行对象的各个执行单位的每个执行单位是否为可 执行的状态,上述最近执行信息表示各个执行单位中最近执行的执行单位的识别符;基于所述执行单位信息,在优先地选择最近执行的执行单位的识别符以 外的识别符的制约下,选择任一个可执行的执行单位的识别符作为由处理器 执行的执行单位的识别符,同时更新所述执行单位信息的功能。
12. —种存储介质,是存储了程序的存储介质,其特征在于,所述程序使计算机执行以下功能保存包括可否执行信息和最近执行信息的执行单位信息的功能,上述可 否执行信息与对每个执行单位赋予的识别符相关联地表示成为多处理器系统 中所包含的多个处理器的执行对象的各个执行单位的每个执行单位是否为可 执行的状态,上述最近执行信息表示各个执行单位中最近执行的执行单位的 识别符;基于所述执行单位信息,在优先地选择最近执行的执行单位的识别符以 外的识别符的制约下,选择任一个可执行的执行单位的识别符作为由处理器 执行的执行单位的识别符,同时更新所述执行单位信息的功能。
全文摘要
图1中,在主存储器(30)中保存线程信息。线程信息包括比特串和最近执行信息。比特串的每个比特分别分配给一个线程,比特的号码和值分别表示线程的号码和线程是否为可执行的状态。最近执行信息是最近执行的线程的号码。处理器(12)使比特串旋转,使得表示最近执行的线程的比特成为比特串的末尾,从被旋转的比特串的开头开始依次检索与可执行状态的线程对应的比特,选择最先得到的比特的号码作为下次执行的线程的号码。而且,变更该号码的比特值使其表示不可执行,同时将最近执行信息设置为该比特的号码并更新线程信息。该操作使用原子命令来执行。
文档编号G06F9/48GK101180609SQ20068001794
公开日2008年5月14日 申请日期2006年5月31日 优先权日2005年8月15日
发明者井上敬介, 村田诚二 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1