程序控制装置的制作方法

文档序号:6470139阅读:146来源:国知局
专利名称:程序控制装置的制作方法
技术领域
本发明涉及切换按每个时隙(timeslot)应该执行的线程的程序控制装 置,即操作系统(Operating System : OS)。
背景技术
OS的主要功能是硬件管理、线程管理、数据管理以及输入输出管理。 其中,线程管理用于管理线程的执行顺序,是用于使CPU、存储器、输入
输出装置等高效率地工作的重要功能。
在此,"线程"是对程序的启动、执行、结束等一系列流程进行统一管理 的控制单位。
在操作系统管理下工作的程序以线程来管理,与程序执行有关的OS
的操作均以线程为单位被执行。
决定线程的执行顺序的算法之一是循环调度。循环调度的方法是,将 某执行时间分配给作为控制单位的线程,在被分配的时间之内,处理器的 执行权被提供给线程,在被分配的时间过去后,将执行权移向其他的线程。 据此,所有的线程被平等且以决定的时间被分配了执行权。
在媒体处理以处理器来执行的实时系统中,需要同时执行多个编码、 解码、多路复用处理等,为了平等地分配执行权,而将实现媒体处理的各 个功能分配给线程,并通过将执行时间分配给每个功能,从而循环调度可 以适用。
但是,循环调度的问题在于, 一旦线程失去执行权,到下一个执行权 被分配要在一个周期经过后,因此,在实时系统中存在应答性的问题。虽 然可以通过将周期縮短设定来改善应答性,但是周期越短,切换执行权的 处理中的系统开销就越显著。为了解消切换执行权的处理中的系统开销, 公开的处理器是在切换执行权时,以硬件来执行前后关系的保存和恢复(专 利文献l )。
而且,以多处理器构成来实现上述以往技术的情况下,还存在将线程 分配给哪个处理器的问题。
在对称多处理(SymmetricalMultiprocessing : SMP)结构中,为了使 系统负载分散到多个处理器,由于在调度时动态地将线程分配到处理器, 因此,按每个线程分配执行时间是困难的。
因此,在按每个线程分配处理器的情况下,也必需要决定固定的处理 器。在非专利文献l中公开了实时OS,其决定按照每个线程而分配的处理 器,并按照每个处理器进行优先级调度。
专利文献l日本特许第3813930号公报
非专利文献1 信息处理学会杂志"機能分散7 &千7。 口七'7廿向tt o y 7 A夕厶o S (面向功能分散多处理器的实时OS)Vo1.47, No.l, 2006.
然而,根据以上以往的技术,随着线程数的增加,以所有时隙的合计 时间,即一周期来切换的次数也增加,同时管理前后关系的区域也增加, 因此,按照每个线程确保必要性能是困难的。
并且,在多处理器结构中,各个线程被直接分配了某个处理器是因为 线程是依赖于处理器的描述,在多处理器的结构被变更时线程的描述也必 需要变更,因此出现的问题是,在线程设计上缺乏适应性。

发明内容
于是,为了解决上述的问题,本发明的第一个目的是提供一种能够满 足多个线程的必要性能的程序控制装置。而且,第二个目的是提供一种能 够确保程序设计的适应性的程序控制装置。
为了达到上述的目的,本发明的程序控制装置,对要按照每个时隙执
行的线程进行切换,其特征在于,包括发生单元,发生第一中断信号,
该第一中断信号以一个时隙作为接收方;以及受理单元,在作为所述接收
方的时隙和当前的时隙不一致的情况下,不受理该第一中断信号,在一致 的情况下受理该第一中断信号。
根据此构成,可以防止在不是接收方的时隙使不必要的中断处理(中 断处理程序)启动。也就是说,将执行线程的时隙作为一个虚拟的处理器 来考虑,因此根据上述构成,由于在不是接收方的虚拟处理器第一中断信
号不被受理,所以可以防止因第一中断信号造成的不是接收方的虚拟处理 器的性能下降。据此,可以确保各线程的必要性能。
在此,也可以是,所述程序控制装置包括存储单元,存储线程信息 和时隙信息,所述线程信息包含被分配了线程的时隙的标识符,所述时隙
信息包含表示对应的线程的信息;以及判别单元,根据所述线程信息以及 时隙信息,来判别成为所述第一中断信号的接收方的时隙;所述发生单元 发生将所述判别单元的判别结果作为接收方的第一中断信号。
根据此构成,由于可以根据线程信息以及时隙信息来决定第一中断信 号的接收方,因此可以不需要在各个线程的程序设计中的执行线程的处理 器的描述以及线程间通信中的接受通信方的线程的描述,所以可以确保程 序设计的灵活性。
在此,也可以是,所述程序控制装置进一步包括接受处理部,从以
当前的时隙正在执行的线程中接受系统调用;以及调度部,根据所述系统 调用来变更线程的状态或时隙的状态;所述发生单元,在所述线程的状态 由所述调度部变更了的情况下,发生所述第一中断信号,所述第一中断信 号包含与该变更相关联的线程的时隙的指定,在所述时隙的状态由所述调 度部变更了的情况下,发生第二中断信号;所述程序控制装置进一步包括 第一发送单元,按照由所述受理单元受理的第一中断信号,在时隙内进行 线程的切换;以及第二发送单元,按照由所述受理单元受理的第二中断信 号,变更所述时隙信息。
根据此构成,可以根据来自各个线程的系统调用,例如得知作为接受 通信方的线程所属的时隙的处理器,并利用第一中断信号,针对与作为接 受通信方的线程相符的时隙,驱动第一发送单元。据此,可以抑制因线程 间通信而造成的性能下降。
在此,也可以是,所述程序控制装置进一步包括时隙切换部,按照所 述时隙的分配时间来切换时隙;所述时隙切换部在时隙的切换期间禁止中 断,在时隙的切换刚好结束时,许可所述受理单元受理中断。
根据此构成,时隙的切换可以优先于第一中断信号,即可以优先于时 隙内的执行而被执行,因此被分配到时隙的时间不会被浪费。
在此,也可以是,所述程序控制装置被设置于包括多个处理器的多处
理器;所述发生单元发生所述第一中断信号,所述第一中断信号包含处理 器的指定和时隙的指定;所述受理单元,按照每个处理器来受理所述第一 中断信号,且在与处理器的指定不一致的处理器不受理所述第一中断信号。
根据此构成,可以防止在不是第一中断信号的接收方的处理器使不必 要的中断处理(中断处理程序)启动,并可以确保不是接收方的处理器中 的每个时隙的线程的处理性能。
在此,也可以是,所述程序控制装置进一步包括线程存储单元,按 照每个线程来存储所述线程信息,所述线程信息包含线程的状态和被分配 了线程的时隙的标识符;时隙信息存储单元,按照每个时隙来存储所述时 隙信息,所述时隙信息包含时隙的分配时间、与该时隙对应的线程信息、 和被分配了该时隙的处理器的标识符;接受处理部,被设置于每个处理器, 从以当前的时隙正在执行的线程中接受系统调用;以及调度部,被设置于 每个处理器,并根据被接受的所述系统调用来变更定义线程的线程信息或 定义时隙的时隙信息;所述发生单元,第一中断发生部,被设置于每个处 理器,在所述线程信息由对应的调度部变更了的情况下,发生所述第一中 断信号,所述第一中断信号包含成为接收方的处理器的指定和成为接收方 的时隙的指定;以及第二中断发生部,被设置于每个处理器,在所述时隙 信息由对应的调度部变更了的情况下,发生所述第二中断信号,所述第二 中断信号包含成为接收方的处理器的指定。
根据此构成,由于线程信息以及时隙信息包含了被分配到线程的时隙 以及处理器的对应关系,因此在程序控制装置,可以动态地将线程分配到 任意的时隙以及任意的处理器。据此,在各个线程的程序设计中可以不需 要执行线程的处理器的描述,从而可以确保程序设计的灵活性。
在此,也可以是,所述调度部根据所述时隙标识符以及处理器标识符, 来确定与被变更的线程信息对应的处理器以及时隙;所述第一中断单元按 照由所述调度部确定的处理器以及时隙来发生所述第一中断信号。
在此,也可以是,所述受理单元在与处理器的指定不一致的处理器, 不受理所述第二中断信号,且在每个处理器的确定的时隙中受理第二中断 信号。
在此,也可以是,所述程序控制装置进一步包括时隙切换部,被设
置于每个处理器,并按照所述时隙的分配时间来切换时隙;第一发送单元, 被设置于每个处理器,并按照由所述受理单元受理的第一中断信号,在时 隙内进行线程的切换;以及第二发送单元,被设置于每个处理器,并按照 由所述受理单元受理的第二中断信号,变更所述时隙信息。
在此,也可以是,所述时隙切换部在时隙的切换期间禁止中断,在时 隙的切换刚好结束时,许可所述受理单元受理中断。
根据此构成,由第一发送单元进行的线程切换可以在被分配到时隙的 时间内进行,例如,从被分配到时隙的多个线程中选择执行的线程并开始 执行的处理,可以在被分配到时隙的时间内进行。并且,由第二发送单元 进行的时隙信息的变更可以优先于时隙内的线程切换而被执行,因此被分 配到时隙的时间不会被浪费。据此,可以确保时隙内的线程的必要性能。
在此,也可以是,所述第二发送单元按照第二中断信号,进行时隙信 息的追加或删除。
在此,也可以是,所述第二发送单元按照每个处理器算出时隙的分配 时间的总和,并根据每个处理器的总和来选择与新追加的时隙信息对应的 处理器。
在此,也可以是,所述第二发送单元按照基于表示分配时间的变更的 所述系统调用的第二中断信号,变更时隙信息中的分配时间。
根据此构成,由于不需要由线程内的程序描述进行的处理器的指定, 因此可以将新的时隙分配到任意的处理器,从而可以灵活地、动态地分配 各个处理器的处理性能,并可以灵活地设定多处理器全体的处理性能。
在此,也可以是,所述线程信息还包含线程的优先级;所述第一发送 单元按照所述第一中断信号,将正在执行的线程切换到与该时隙对应的一 个或多个线程中的优先级最高的线程。
由于在时隙信息以及线程信息中动态地记录了时隙被分配到了哪个处 理器,因此为了线程间的同步或资源的排斥控制等,在进行线程间通信时, 调度部可以确定接受通信方的线程所属的时隙以及处理器。据此,线程上 的线程间通信所必需的信息只要是表示接受通信方的线程的说明符和表示 线程间通信对象的说明符即可。因此,可以不必知道各个线程属于哪个处 理器,以及属于哪个时隙,即使在处理器或时隙的构成被变更的情况下,
线程上的程序也无需变更。据此,可以在不对程序产生影响的情况下灵活 地变更系统的构成。
另外,本发明不仅可以作为具有这些特征性单元的程序控制装置来实 现,而且可以作为将程序控制装置中所包含的特征性单元作为步骤的程序 控制方法来实现,并且还可以作为将程序控制装置中所包含的特征性单元 作为使计算机发挥功能的操作系统来实现。并且,不言而喻,这些操作系
统可以通过CD—ROM(Compact Disc-Read Only Memory)等记录介质或 因特网等通信介质来流通。
通过本发明,可以按每个线程来保证一定的处理性能,同时还可以减 轻伴随系统的构成变更而带来的程序变更的负担。


图1是本发明的实施例中程序控制装置的主要构成部的方框图。 图2示出了时隙存储部内的时隙信息和线程存储部内的线程信息的具 体例子。
图3示出了对象存储部内的对象信息和线程存储部中所存储的等待队列。
图4是线程等待处理的详细流程图。
图5是线程等待处理的详细流程图。
图6是线程生成处理(ThreadCreate)的详细流程图。
图7(a)是线程结束处理和线程结束等待处理的说明图。
图7(b)是线程结束处理和线程结束等待处理的说明图。
图8A是线程结束处理(ThreadExit)的详细流程图。
图8B是线程结束等待处理(ThreadJoin)的详细流程图。
图9是时隙控制处理的详细流程图。
图IOA是时隙控制处理内的指令处理的详细流程图。
图10B是时隙生成处理的一个例子的流程图。
图11是时隙切换处理的详细流程图。
图12示出了对象存储部内的mutex信息的具体例子。
图13是mutex锁定处理(MutexLock)的详细流程图。
图14是mutex锁定解除处理(MutexUnlock)的详细流程图。
图15A示出了对象存储部内的cond信息的具体例子。
图15B是cond的工作说明图。
图16是cond等待处理(CondWait)的详细流程图。
图17是cond通知处理(CondSignal)的详细流程图。
图18示出了对象存储部内的flag信息的具体例子。
图19示出了 flag等待处理(FlagWait)的详细流程图。
图20示出了 flag设定处理(FlagSet)的详细流程图。
图21示出了 flag复位处理(FlagClear)的详细流程图。
图22示出了对象存储部内的semaphore信息的具体例子。
图23是semaphore获得处理(SemGet)的详细流程图。
图24是semaphore释放处理(SemRelease)的详细流程图。
符号说明
10发送发行部
11应用编程接口(API)处理部
12调度部
13第一中断发生部
14第二中断发生部
15应用编程接口(API)结束处理部
20发送处理部
21第一中断受理部
22时隙内发送部
23第二中断受理部
24时隙状态变更部
25时隙切换部
30定时控制部
40执行控制部
50时隙存储部
51、52、 53 时隙信息
60线程存储部
61、62、 63、 64、 65线程信
70对象存储部
71、72对象信息
80前后关系保持部
■> 110、 120 处理器
200mutex信息
300cond信息
400flag信息
500semaphore信息
具体实施方式
[全体构成]
图1是本发明的实施例中按照时隙切换应该执行的线程的程序控制装 置的主要构成部的方框图。该图中示意地示出了通过执行进行线程切换的
软件,而实现的作为OS的一部分功能的处理器的功能。
关于处理器的硬件的构成,在单处理器的情况下一般的结构就可以。 多处理器的情况下为一般的对称多处理结构,每个处理器核心与可存取的 存储器连接,每个处理器核心中断其他的处理器核心,并启动中断处理程 序。
此程序控制装置分别在一个或多个处理器内处理具有分配时间指定的 多个线程群,以及确保并执行各个线程群的必要的性能。
在此程序控制装置中,各个处理器向所有处理器发生以一个时隙为接 收方的第一中断信号,在被视为所述接收方的时隙与当前的时隙不一致的 情况下,不受理该第一中断信号,在一致的情况下,受理该第一中断信号。
据此,在不是接收方的时隙就可以防止不需要的中断处理(中断处理 程序等)的启动。也就是说,执行线程的时隙以一个虚拟的处理器来考虑, 通过以上的构成,在不是接收方的虚拟处理器由于不受理第一中断信号, 因此,通过第一中断信号可以防止不是接收方的虚拟处理器的性能的降低。 据此,可以确保各个线程的必要性能。
16
而且,程序控制装置包括存储信息的存储部,被存储的信息包括包 含被分配了线程的时隙的标识符的线程信息,和包含表示对应的线程的信 息的时隙信息,根据所述线程信息以及时隙信息来决定成为所述第一中断 信号的接收方的时隙,并由发生单元发生以被决定的时隙为接收方的第一 中断信号。
据此,由于第一中断信号的接收方可以根据线程信息以及时隙信息来 决定,因此,在各个线程的程序设计中,可以不需要执行线程的处理器的 描述以及在线程间通信时通信对象线程的描述,从而可以确保程序设计的 适应性。
如该图所示,程序控制装置具有多个处理器,即处理器100、 110、…120,且各个处理器分别包括发送发行部10、发送处理部20、 定时控制部30、执行控制部40、时隙存储部50以及前后关系保持部80, 另外,程序控制装置还包括所有的处理器共有的线程存储部60和对象存储 部70。
发送发行部10进行从线程上的程序中调用的应用程序接口(API)的处 理,并根据需要向发送处理部20输出中断信号。
发送处理部20受理来自发送发行部10的中断信号,变更时隙以及线 程的信息。并且,在预先规定的周期内进行至少选择一次时隙的循环调度。
定时控制部30在每次由发送处理部20设定中断时间时,就开始时间 计数,在达到该中断时间时,输出超时信号。此超时信号是为了通知时隙 的切换定时而被通知到发送处理部20的。
执行控制部40执行由发送处理部20选择的线程。执行控制部40相当 于执行线程的CPU等硬件。
时隙存储部50存储有关时隙的信息。线程存储部60存储有关线程的 信息。
对象存储部70存储有关线程在与其他的线程进行通信时所使用的对象 的信息。
前后关系保持部80在正在执行的线程中止并再次开始其他的线程的执 行时,保存中止的线程的前后关系,为了恢复再次开始的线程的前后关系 而保持前后关系。前后关系中包含有处理器的寄存器信息和高速缓存信息等。 发送发行部10包括应用程序接口(API)处理部11、调度部12、第一 中断发生部13、第二中断发生部14、以及API结束处理部15。 <API处理部11 >
API处理部11受理由线程执行的程序发行的API调用,并按照API 进行处理。API与对象一起被提供,进行对应的对象信息存储部70的操作。 当操作的结果为被判断为需要调度的情况下,向调度部12发出通知。
<调度部12〉
调度部12接受来自API处理部11的通知,更新时隙存储部50、线程 存储部60、对象存储部70的信息。更新的结果是,在更新了被分配到某 时隙的线程的信息的情况下,向第一中断发生部13发出通知,在更新了时 隙的信息的情况下,分别向第二中断发生部14发出通知。
<第一中断发生部13〉
第一中断发生部13接受来自调度部12的通知,对被分配有更新了信 息的线程的时隙的处理器进行中断。中断由该处理器的发送处理部20的第 一中断受理部21受理。
<第二中断发生部14〉
第二中断发生部14接受来自调度部12的通知,对更新了信息的时隙 的处理器进行中断。中断由该处理器的发送处理部20的第二中断受理部 23受理。
<API结束处理部15〉
在第一中断发生部13或第二中断发生部14进行了中断后,API结束 处理部15进行API调用的后处理。具体而言,进行将针对API调用的返 回值返回到程序的处理。
发送处理部20包括第一中断受理部21、时隙内发送部22、第二中 断受理部23、时隙状态变更部24以及时隙切换部25。时隙内发送部22 相当于权利要求中的第一发送单元,时隙状态变更部24相当于权利要求中 的第二发送单元。
<第一中断受理部21>
第一中断受理部21受理由属于处理器100到处理器120中的、某个 处理器的发送发行部10的第一中断发生部13所发生的中断。在受理了中 断时,向时隙内发送部22通知。
<时隙内发送部22〉
时隙内发送部22接受来自第一中断受理部21的通知,并判别时隙存 储部50的下一个要执行的线程,并将时隙内正在执行的线程切换为该线程。 此时,对于该线程进行线程存储部60的更新。在线程不能被切换的情况下, 向时隙状态变更部24通知,并变更时隙的状态。并且,在切换线程时,由 前后关系保持部80进行线程的前后关系的保存和恢复。
<第二中断受理部23〉
第二中断受理部受理由属于处理器100到处理器120中的、某个处理 器的发送发行部10的第二中断发生部14所发生的中断。在受理了中断时, 向时隙状态变更部24通知。
<时隙状态变更部24>
时隙状态变更部24接受来自第一中断受理部21的通知,并按照在调 度部12设定的信息,对时隙存储部50进行时隙信息的设定。在进行时隙 状态变更部24的处理时,为了不引起信息的矛盾,而禁止所有的中断的请 求和根据定时的切换请求。
<时隙切换部25〉
时隙切换部25在当前的时隙中的线程的执行时间到达了分配时间时, 进行时隙的切换。是否到达了分配时间要由定时控制部30发出的超时信号 来通知。接受了通知的时隙切换部25选择下一个时隙信息。此时,根据选 择的时隙信息取得分配时间,并设定到定时控制部30。据此,开始下一个 时隙的分配时间的计数。并且,在再次开始属于时隙的线程之前,由前后 关系保持部80进行前后关系的保存以及恢复。并且,在时隙内发送部22 进行处理时,发生时隙的切换的情况下,优先执行切换,在时隙状态变更 部24进行处理时,中断时隙的切换并进行处理。 [时隙存储部50的构成]
时隙存储部50对具有由分配时间进行了时间分配的线程群,存储用于
生成成为切换基准的时隙的时隙信息。
图2示出了时隙存储部50和线程存储部60内的线程信息的具体例子。 如该图所示,时隙存储部50存储多个时隙信息51、 52、…53。
时隙信息51与一个时隙相对应,包括时隙状态51a、工作处理器51b、 分配时间51c、下一个执行线程51d以及就绪队列51e。其他的时隙信息也 一样。时隙信息51、 52、…53以每个处理器构成阵列,其顺序表示时隙的 生成顺序。
时隙状态51a表示该时隙为怎样的状态。可表示为三种状态,即有 效、无效、停止。有效状态是成为时隙切换部25的切换对象的状态。在时 隙信息的生成时被设定为有效。无效状态是不成为时隙切换部25的切换对 象的状态。停止状态是等待第一中断发生时隙的状态,在第一中断发生时 迁移到有效状态。
工作处理器51b表示该时隙属于哪个处理器。被分配了的处理器在生 成时隙信息的同时被设定。
分配时间51c表示该时隙中所包含的线程能够执行的时间。在该时隙 中所包含的线程实际上执行的时间到达分配时间时,被切换到下一个时隙。 分配时间时隙信息的发生的同时被设定。
下一个执行线程51d在由时隙内发送部22切换线程时被参照,在该时 隙内保持下一个要执行的线程的信息。
就绪队列51e表示对属于该时隙的线程所对应的线程信息的指针。就 绪队列51e被连接有时隙内能够执行状态的多个线程信息,由调度部12从 就绪队列中选择要设定到下一个执行线程51d的候补。 [线程存储部60的构成]
线程存储部60存储与被分配到时隙的线程相对应的线程信息61、 62…。线程信息61、 62…分别与一个线程相对应,且是用于管理该线程的 信息。
线程信息61包括线程状态61a、等待队列61b、执行时隙61c、堆 栈指针SP值61d、优先级61e以及链接地址61f。
线程状态61a表示该线程为怎样的状态。可表示的状态有四个,即 正在执行状态、能够执行状态、等待状态、结束状态。
正在执行状态表示在时隙的执行时间内该线程的执行状态。能够执行 状态表示的状态是,由于在时隙内存在比该线程优先级高的线程,因此在 不执行这些线程时作为正在执行状态而被选择的状态。等待状态是该线程 等待对象的条件的状态,不作为正在执行状态被选择,在条件被解除时迁 移到能够执行状态。结束状态不是以发行了线程的结束的状态再次开始的,
而是表示在线程存储部60还残留有线程信息的状态。
等待队列61b连接有以迁移到该线程结束状态为条件而成为等待状态 的多个线程信息。通过调度部12该线程从正在执行状态迁移到结束状态时, 从等待队列中选择能够迁移到能够执行状态的线程的设定候补。
执行时隙61c作为向该线程所属的时隙所对应的时隙信息的指针被保持。
堆栈指针SP值61d保持该线程被切换时的堆栈指针SP。在由时隙内 发送部22切换线程时,表示该时刻的堆栈指针SP的值。
优先级61e表示成为决定该线程的时隙内的执行顺序的指标的优先级。 在调度部12,在从该线程所链接的就绪队列51e中选择授予执行权的线程 时,将该优先级61e作为选择的指标来使用。
链接地址61f在该线程作为要素被连接到就绪队列或等待队列的情况 下,保持向作为就绪队列或等待队列中的下一个要素的线程信息的指针。
具体而言,链接地址61f在该线程为正在执行状态以及能够执行状态 的情况下,为指示形成就绪队列的下一个要素的指针,在该线程为等待状 态的情况下,为指示形成等待队列的下一个要素的指针。 [对象存储部70的构成]
图3示出了对象存储部70中所存储的对象信息71、 72…和线程存储 部60中所存储的等待队列。
对象信息71包括对象状态71a、等待队列71b、对象固有信息71c。
对象状态71a表示该对象为怎样的状态。状态可以表示为无效或有效 两种。
等待队列71b示出等待队列的开头的线程信息,该等待队列的开头信 息表示以该对象为要因而成为等待状态的线程。被连接在等待队列的地址 信息61'、 62'…形成分别由链接地址61f、 62f…顺序连接的等待队列。在
该对象的固有信息被更新时,由调度部12从等待队列中选择成为能够执行 的线程的设定候补。
对象固有信息71c中存储有对象所需要的信息,因对象的类别不同被 存储的信息也不同。具体的信息将按照对象的类别进行详细说明。 [详细的处理]
以下,作为本发明的程序控制装置中的详细处理,对线程等待调度处 理、线程等待解除调度处理、线程生成处理、线程结束处理、线程结束等 待处理、时隙生成并消除处理进行说明。而且,作为对对象的具体适用例 子,X寸mutex、 cond、 flag、 semaphore进行说明。
<线程等待调度处理>
图4是由API调用而将线程迁移到等待状态的调度处理的详细流程图。
首先,API处理部11进行与API对应的处理(SOOl),并调用等待处理 Wait(S002)。此时API处理部11将正在执行的线程Th的标识符和在API 指定的对象Obj的标识符传递给调度部12,以作为等待处理Wait的自变 量。在API被指定的对象Obj的标识符表示成为API的对象的对象。在此 被指定的对象具体而言有mutex、 cond、 flag、 semaphore等,或也有是 其他的线程的情况。
接着,调度部12从被传递来的线程Th所属的时隙的就绪队列51e中 除去线程Th的线程信息(SOll),将该线程信息的线程状态变更为等待状态 之后(S012),将该线程信息登记到对象Obj的对象信息的等待队列(S013), 并读出线程Th的线程信息中所包含的"执行时隙61c"。而且,将读出的执 行时隙61c (作为时隙TS)作为自变量,发出发送请求(S014)。
作为发送请求处理,将被提供来的时隙的就绪队列作为起点,直到找 到作为能够执行状态的线程为止,追寻线程信息的链接地址(S021)。设找 到的线程为T。将线程T登记到时隙信息的下一个执行线程(S022)。若没 有找到线程则登记NULL(无效)。并且,从时隙TS的时隙信息中读出"工 作处理器51b"。此"工作处理器51b"表示被分配了时隙TS的处理器,用于 指定接受第一中断处理的一方。最后,第一中断发生部13对被分配了该时 隙TS的处理器发生第一中断(S023)。此第一中断包括接受中断的处理器的 指定和时隙TS的指定。
由第一中断发生部13发生的第一中断在被指定的处理器以外的处理器 不被受理,且在被指定的时隙以外的时隙也不被受理(S30a、 S30b)。艮P, 第一中断在被指定的处理器的当前的时隙和被指定的时隙一致的情况下, 由第一中断受理部21来受理,并被通知给时隙内发送部22。时隙内发送 部22实际被执行是在被指定的时隙被分配了时间之时。在由被指定的处理 器的第一中断发生部13指定的时隙被受理时,第一中断发生部13在该处 理器内将局部Local中断通知给时隙内发送部22。
时隙内发送部22暂时将寄存器数据保存到堆栈(S031),并将堆栈指针 SP保存到与正在执行的线程相对应的线程信息的堆栈指针SP值 61d(S032)。
之后,检查在该时隙的下一个执行线程是否登记了线程(S033)。若线 程被登记,则取出与该线程对应的线程信息的堆栈指针SP值61d,并设定 到堆桟指针SP(S034)。而且,将该线程的状态设定为正在执行状态(S035), 并使寄存器数据从堆栈恢复(S036)。据此,在调度处理结束后将执行移向 该线程。
若线程没有被登记在下一个执行线程51d,即为NULL (无效)时, 由于时隙内不存在移动执行的线程,因此对时隙状态变更部24通知,在时 隙状态变更部24将时隙设定为"停止"状态(S037)。据此,该时隙从时隙切 换部25的执行对象中被排除。
另外,在时隙状态变更部24时隙全部被设定为等待状态时,也可以将 处理器移向省电模式。此时,只要处理器所具有的时隙有一个成为有效状 态,则该模式被解除,从S033在此开始该时隙的执行。
<线程等待解除处理>
图5是通过API调用来解除线程的等待状态的调度处理的详细流程图。 首先,API处理部11进行与API对应的处理(S041),并调用等待解除
处理Wakeup。作为给等待处理Wait的自变量,将以API指定的对象传
递给调度部12。
之后,调度部12从被传递来的对象的等待队列中取出一个线程(S051)。 在将该线程信息的线程状态变更为能够执行状态之后(S052),登记到该线 程信息所属的时隙信息的就绪队列(S053)。而且,将该线程信息所属的时
隙作为自变量,发出发送请求(S054)。
由于发送请求处理与线程等待调度处理相同,因此省略说明。 <线程生成处理〉
图6是通过API调用而对时隙生成线程的调度处理的详细流程图。
首先,作为对API的处理将线程信息确保在线程存储部,并根据从API 提供来的信息进行初始化(S601)。之后,将线程程序的启动信息设定到线 程所使用的堆栈中(S602),在线程状态被设定为能够执行状态后(S603), 对线程所属的时隙调用调度部12的发送请求处理(S604)。据此,在发送处 理的寄存器数据恢复,线程的程序开始执行。
由于发送请求处理与线程等待调度处理相同,因此省略说明。
<线程结束处理以及线程结束等待处理>
图7(a)、图7(b)是线程结束处理exit以及线程结束等待处理join的使 用例子的说明图。该图(a)、 (b)示出了线程A (父线程)和线程B (子线程) 的处理流程。实线表示执行状态或能够执行状态,虚线表示等待状态wait 或结束状态。
并且,create表示线程A (父线程)生成线程B (子线程)的处理(图 6的线程生成处理)。exit表示线程本身从执行状态(或能够执行状态)迁 移到结束状态的线程结束处理。线程结束等待处理join是为了等待其他的 线程成为结束状态,而线程本身从执行状态迁移到等待状态的处理。
该图(a)中的线程A通过create生成线程B ,在执行了规定的处理之后, 为了与线程B同步,而通过join从执行状态迁移到等待状态wait。而且, 线程B在通过exit迁移到结束状态时,线程A从等待状态wait迁移到执 行状态,线程B结束。
该图(b)中的线程A通过create生成线程B,在执行了规定的处理之后, 为了与线程B同步,而对join进行API调用。另一方面,在通过线程A 进行join的调用之前,线程B通过exit迁移到结束状态。此时,通过由线 程A进行的join的调用,从而线程A维持执行状态,线程B结束。
图8A是通过API调用而对时隙结束线程的调度处理(线程结束处理 exit)的详细流程图。在该图中,图7(a)、图7(b)的线程B对exit进行API 调用。
首先,调用部12将正在执行的线程B设定为结束状态(S612)。检查其 他的线程(在此为线程A)是否被登记在该线程的线程状态的等待队列 (S614)中,只有在线程A被登记时调用等待解除处理Wakeup(S615)。通 过此等待状态解除处理Wakeup,如图7(a)所示,线程A从等待状态被变 更为执行状态。而且,对线程B所属的时隙调用调度部12的发送请求处理 (S616)。通过此发送请求处理,从线程存储部60中删除线程B的线程信息。
由于发送请求处理与调度处理相同,因此省略说明。
<线程结束等待处理>
图8B是通过API调用而对时隙等待线程的结束的调度处理(线程结 束等待处理join)的详细流程图。在该图中,图7(a)、图7(b)的线程A对 join进行API调用。并且,参数Th由线程A的子线程即线程B来指定。
首先,调度部12检查以API提供的线程B是否为结束状态(S621)。 若该线程B不为结束状态,则调用等待处理Wait,并一直等到线程B结束 为止(S622)。若线程B为结束状态,则从线程存储部中删除B的线程信息 (S623)。由于等待处理Wait与线程等待调度处理相同,因此省略说明。
<时隙生成、删除、分配时间更新处理>
图9以及图10A是通过API调用而进行时隙的生成、删除以及分配时 间的更新的调度处理的详细流程图。
首先,API处理部11作为与API对应的处理将从API提供的时隙的 生成、删除以及分配时间的更新中的任一个信息变换为指令(S051),并作 为控制请求处理,将以API指定的指令传递给调度部12(S052)。
之后,调度部12将指令设定到指令队列(S061),并检查该时隙是否被 正在执行的处理器执行(S062)。若是正在执行的处理器,直接调用控制处 理(S063)。若是其他的处理器,则在第二中断发生部14发生中断,且将中 断通知给该处理器(S064)。
在该处理器由第二中断受理部23受理中断,并将控制移到时隙状态变 更部24。
时隙状态变更部24为了避开时隙信息的矛盾,而指示时隙切换部25, 在处理过程中不进行切换。这是通过指示处理器,使中断的发生优先于时 隙的切换而实现的。并且,寄存器数据暂时保存到堆桟(S071),由指令队
列取出指令(S072),通过根据取出的指令调用控制处理,从而可以根据指 令的内容来改写时隙存储部50的时隙信息的内容(S073)。
具体而言,判别被提供的指令(S081),并按照指令的类别进行时隙的 状态变更(生成、删除)、分配时间的设定(S082、 S083、 S084)。
在控制处理结束时,保存的寄存器数据从堆栈中恢复(S074),结束处理。
图10B是在图10A中的步骤S082的时隙生成处理的一个例子的流程 图。在该图中,时隙状态变更部24按照每个处理器,算出被分配的有效的 所有时隙的分配时间的总和(S082a),选择总和最小的处理器(S082b),并 对该处理器生成新的时隙(S082c)。在本实施例中的程序控制装置,各个线 程的描述不依赖于处理器,由于可以分配到任意的处理器的任意的时隙, 因此如图10B所示,可以使多个处理器的负载均等化。
另外,也可以是,在进行时隙的生成时,事先在时隙状态变更部24算 出被设定在进行生成的处理器的时隙的设定时间的总和,在进行下一个时 隙的生成时,在调度部12对各个处理器的时隙设定时间的总和进行比较之 后,来决定进行时隙的生成的处理器。例如,可以像图IOB那样分散负载。 相反,也可以是,在全体的处理负载小的情况下,使负载倾向于一个以外 的处理器,并将该一个处理器的时隙信息设为全部无效,从而设定为省电 模式。
并且,也可以是,在发生了第二中断时,重新使专用的时隙有效。作 为不发生切换的时隙,进行时隙状态变更部24的处理,从而可以使其他的 时隙处理不受影响并进行处理。
<时隙切换处理〉
图11是由定时控制部30的超时通知而对被开始的时隙进行切换的调 度处理的详细流程图。
由定时控制部30发出的超时通知在时隙切换部25被执行。时隙切换 部25使当前的时隙的前后关系保存到前后关系保持部S0(S091),并按照 时隙存储部的时隙信息阵列的顺序选择下一个时隙(S092)。并且,从时隙 信息中取出该时隙的分配信息,并在定时控制部30进行设定(S093)。最后, 前后关系从前后关系保持部80恢复,并许可中断(S094)。
通过中断的许可,第一中断受理部21指定自己的处理器,且判定指定 当前的时隙的第一中断是否发生(S095),在发生的情况下受理该第一中断 (S096)。据此,可以不受理给其他的时隙的第一中断,而受理以该时隙为 接收方的第一中断。第一中断发生部13在受理了第一中断的情况下,将局 部Local中断通知给该处理器内的时隙内发送部22。
并且,步骤S095、 S096与图4的步骤S30a—S30c的处理相同。
并且,由于在步骤S084直到中断被许可为止,即使发生第一以及第二 的中断也不受理,因此可以比时隙内发送部22优先进行时隙切换处理。
<mutex处理>
mutex是两个以上的线程竞争一个资源(变数或设备等)并访问的情 况下进行调停的机构,包含管理资源的"锁定"状态以及"锁定解P余"状态的信 息。mntex的操作有锁定请求操作和锁定解除操作。该机构被设置在两个 以上的线程的访问有可能发生竞争的每个资源。某线程在mutex的锁定操 作成功时,mutex成为"锁定"状态,即使其他线程进行锁定操作,直到"锁 定解除"状态为止也会发生等待。据此,锁定操作成功的线程可以占有对应 的资源。在进行锁定操作的线程进行锁定解除操作时,其他的线程可以进 行锁定操作。在正在执行的线程访问资源的情况下,必需进行与该资源对 应的mutex的锁定操作,只有在成功的情况下才可以访问资源。在失败的 情况下,即该mutex已经成为"锁定"状态的情况下,直到"锁定解除"状态 为止处于等待状态。
图12是对象信息71、 72…在mutex中的构成。mutex信息200包括 mutex状态201、等待队列202、以及锁定状态203。 mutex状态201以 及等待队列202与对象信息相同,锁定状态203是mutex中的对象固有信 息73。
图13以及图14是通过API调用的mutex的锁定以及锁定解除处理 的详细流程图。
锁定处理MutexLock将由API提供的mutex的锁定状态更新为"锁 定"状态,并在更新前检査是否为"锁定"状态(S201、 S202)。这些处理是不 可分的。若为"锁定"状态,则根据对象mutex调用等待处理Wait。若为"锁 定解除"状态,则成为已经确保了 mutex的锁定。
锁定解除处理MutexUnlock检查由API提供的mutex的等待队列中 是否登记有线程(S211)。若线程被登记,则根据对象mutex调用等待解除 Wakeup(S212)。此时,仅mutex的所有线程被变更,因此"锁定"状态不 变更。若线程没有被登记,则将该mutex的锁定状态更新为"锁定解除"状 态,并解除锁定(S213)。
<cond处理>
在cond与mutex共同使用的机构,在变更一个资源的状态时,对其 他的一个以上的线程进行通知。为了避开资源的竞争需要使mutex和cond 配成对来使用。此机构是按照每个通知变更的资源而被设置的。cond的操 作有等待操作和通知操作。
图15A是对象信息71、 72…的cond中的构成。cond信息200包括 cond状态201、等待队列202。 cond状态201以及等待队列202与对象 信息相同,cond不具有对象固有信息73。
图15B是cond的工作说明图。该图的左侧表示直到其他的线程更新 为止等待一个资源的cond等待处理,右侧表示通知资源已被变更的cond 通知处理。被cond通知的线程解除等待状态,并进入下一个处理。
图16以及图17是通过API调用的cond等待以及等待解除处理的详 细流程图。
cond等待处理CondWait首先进行由API提供的mutex的锁定解除 (S301),并根据对象cond来调用等待处理Wait(S302)。当从等待状态恢 复时,再次进行mutex的锁定(S303)。
cond通知处理CondSignal检査由API提供的cond的等待队列中, 线程是否被登记(S311)。只有线程被登记时,才根据对象cond来调用等待 解除Wakeup(S312)。
<flag处理〉
flag是用于使两个线程同步的机构,包括管理用于同步的条件和状态 的信息。flag的操作有flag等待操作和flag设定以及复位操作。
图18是对象信息71、 72…的flag的构成。flag信息400包括flag 状态401、等待队列402、等待解除模式403、等待解除条件404以及flag 模式405。 flag状态401以及等待队列402与对象信息相同,等待解除模
式403、等待解除条件404以及flag模式405是flag中的对象固有信息 73。
图19、图20以及图21是通过API调用的flag等待、设定、复位处
理的详细流程图。
flag等待处理FlagWait设定由API提供的flag的解除模式(S401), 并根据flag调用等待处理Wait(S402)。
flag设定处理FlagSet对由API提供的flag所保持的模式算出由API 提供的模式和逻辑和,并保存到flag模式(S411)。检查解除条件(S412), 并根据解除条件是"OR"还是"AND"而下一个处理不同。若是"AND",只有 flag模式和解除模式一致时才进入下一个步骤(S413)。若是"OR",只有flag 模式和解除模式的逻辑和不为零时才进入下一个步骤(S414)。之后,检查 flag的等待队列中线程是否被登记(S415)。只有线程被登记时才根据flag 调用等待解除Wakeup(S416)。
flag复位处理FlagClear对由API提供的flag所保持的模式算出与由 API提供的模式的"与非",并保存到flag模式(S421)。
< semaphore处理〉
semaphore是在两个以上的线程竞争一个以上的资源(变数或设备等) 并访问时进行调停的机构,包括管理资源的数的信息。semaphore的操作 有获得操作和释放操作。
图22是对象信息71、 72…的semaphore的构成。semaphore信息 500包括semaphore状态500a、等待队列500b以及semaphore数500c。 semaphore状态500a以及等待队列500b与对象信息相同,semaphore 数500c是semaphore中的对象固有信息73。
图23以及图24是通过API调用的semaphore的资源请求以及释放 处理的详细的流程图。
semaphore获得处理SemGet使由API提供的semaphore的数减去 1,并检査semaphore的数是否为一1(S501、 S502)。这些处理的执行是 不可分的。若为一l则根据semaphore调用等待处理Wait。若不为一1则 是已经从semaphore中确保了资源。
semaphore释放处理SemRelease使由API提供的semaphore的数
加上1(S5lD,并检查semaphore的等待队列中线程是否被登记(S512)。 只有在线程被登记时,才根据semaphore调用等待解除Wakeup(S513)。 并且,根据这些对象的实现例子,可以重新实现针对两个以上的线程 的通信同步对象。
本发明所设计的程序控制装置可以在满足多个线程的必要性能的同 时,线程上的程序还可以不依赖于处理器而进行描述。
据此,可以按照功能来分配处理性能,并可以以多个线程来实现功能, 由此,可以使用于确保处理性能的程序设计变得容易,并可以使程序设计 具有柔软性。
这些可以作为同时并行且实时地进行多个声音影像处理的设备或这种 设备的开发环境等。
权利要求
1. 一种程序控制装置,对要按照每个时隙执行的线程进行切换,其特征在于,包括∶发生单元,发生第一中断信号,该第一中断信号以一个时隙作为接收方;以及受理单元,在作为所述接收方的时隙和当前的时隙不一致的情况下,不受理该第一中断信号,在一致的情况下受理该第一中断信号。
2. 如权利要求l所述的程序控制装置,其特征在于,所述程序控制装置包括存储单元,存储线程信息和时隙信息,所述线程信息包含被分配了线程的时隙的标识符,所述时隙信息包含表示对应的线程的信息;以及判别单元,根据所述线程信息以及时隙信息,来判别成为所述第一中断信号的接收方的时隙;所述发生单元发生将所述判别单元的判别结果作为接收方的第一中断 信号。
3. 如权利要求2所述的程序控制装置,其特征在于, 所述程序控制装置进一步包括接受处理部,从以当前的时隙正在执行的线程中接受系统调用;以及 调度部,根据所述系统调用来变更线程的状态或时隙的状态; 所述发生单元,在所述线程的状态由所述调度部变更了的情况下,发生所述第一中断 信号,所述第一中断信号包含与该变更相关联的线程的时隙的指定,在所述时隙的状态由所述调度部变更了的情况下,发生第二中断信号;所述程序控制装置进一步包括第一发送单元,按照由所述受理单元受理的第一中断信号,在时隙内进行线程的切换;以及第二发送单元,按照由所述受理单元受理的第二中断信号,变更所述 时隙信息。
4. 如权利要求3所述的程序控制装置,其特征在于, 所述程序控制装置进一步包括时隙切换部,按照所述时隙的分配时间来切换时隙;所述时隙切换部在时隙的切换期间禁止中断,在时隙的切换刚好结束 时,许可所述受理单元受理中断。
5. 如权利要求l所述的程序控制装置,其特征在于, 所述程序控制装置被设置于包括多个处理器的多处理器; 所述发生单元发生所述第一中断信号,所述第一中断信号包含处理器的指定和时隙的指定;所述受理单元,按照每个处理器来受理所述第一中断信号,且在与处 理器的指定不一致的处理器不受理所述第一中断信号。
6. 如权利要求5所述的程序控制装置,其特征在于, 所述程序控制装置进一步包括线程存储单元,按照每个线程来存储所述线程信息,所述线程信息包 含线程的状态和被分配了线程的时隙的标识符;时隙信息存储单元,按照每个时隙来存储所述时隙信息,所述时隙信 息包含时隙的分配时间、与该时隙对应的线程信息、和被分配了该时隙的 处理器的标识符;接受处理部,被设置于每个处理器,从以当前的时隙正在执行的线程 中接受系统调用;以及调度部,被设置于每个处理器,并根据被接受的所述系统调用来变更 定义线程的线程信息或定义时隙的时隙信息;所述发生单元包括第一中断发生部,被设置于每个处理器,在所述线程信息由对应的调 度部变更了的情况下,发生所述第一中断信号,所述第一中断信号包含成 为接收方的处理器的指定和成为接收方的时隙的指定;以及 第二中断发生部,被设置于每个处理器,在所述时隙信息由对应的调 度部变更了的情况下,发生所述第二中断信号,所述第二中断信号包含成 为接收方的处理器的指定。
7. 如权利要求6所述的程序控制装置,其特征在于, 所述调度部根据所述时隙标识符以及处理器标识符,来确定与被变更的线程信息对应的处理器以及时隙;所述第一中断单元按照由所述调度部确定的处理器以及时隙来发生所 述第一中断信号。
8. 如权利要求6所述的程序控制装置,其特征在于,所述受理单元 在与处理器的指定不一致的处理器,不受理所述第二中断信号,且在每个 处理器的确定的时隙中受理第二中断信号。
9. 如权利要求6所述的程序控制装置,其特征在于, 所述程序控制装置进一步包括时隙切换部,被设置于每个处理器,并按照所述时隙的分配时间来切 换时隙;第一发送单元,被设置于每个处理器,并按照由所述受理单元受理的 第一中断信号,在时隙内进行线程的切换;以及第二发送单元,被设置于每个处理器,并按照由所述受理单元受理的 第二中断信号,变更所述时隙信息。
10.如权利要求9所述的程序控制装置,其特征在于,所述时隙切 换部在时隙的切换期间禁止中断,在时隙的切换刚好结束时,许可所述受 理单元受理中断。
11.如权利要求9所述的程序控制装置,其特征在于,所述第二发 送单元按照第二中断信号,进行时隙信息的追加或删除。
12.如权利要求9所述的程序控制装置,其特征在于,所述第二发 送单元按照每个处理器算出时隙的分配时间的总和,并根据每个处理器的 总和来选择与新追加的时隙信息对应的处理器。
13.如权利要求9所述的程序控制装置,其特征在于,所述第二发 送单元按照基于表示分配时间的变更的所述系统调用的第二中断信号,变 更时隙信息中的分配时间。
14.如权利要求9所述的程序控制装置,其特征在于, 所述线程信息还包含线程的优先级;所述第一发送单元按照所述第一中断信号,将正在执行的线程切换到 与该时隙对应的一个或多个线程中的优先级最高的线程。
15.如权利要求9所述的程序控制装置,其特征在于,所述时隙切 换部在与下一个时隙对应的时隙信息为无效的情况下,进一步按照下一个 时隙的时隙信息来切换时隙。
16.如权利要求9所述的程序控制装置,其特征在于,所述第一发 送单元在与该时隙对应的线程中不存在能够执行的线程的情况下,直到能 够执行的线程被设定为止,使对应的时隙信息无效。
17.如权利要求9所述的程序控制装置,其特征在于,所述时隙切 换部在对应的处理器的所有时隙信息为无效的情况下,将该处理器变更为 节电模式。
18.如权利要求9所述的程序控制装置,其特征在于, 所述程序控制装置进一步包括对象存储单元,按照每个线程间通信时所使用的对象,存储表示该对象是第一状态还是第二状态的对象信息;所述接受处理部按照所述系统调用,将所述对象信息从第一状态变更为第二状态,或从第二状态变更为第一状态; 所述调度部,在正在执行的线程将要访问所述第一状态的对象时,将 该线程从能够执行状态变更为等待状态,在该对象被变更为所述第二状态时,选择一个或多个等待状态的线程并变更为能够执行状态; 所述线程切换单元从切换候补中除去处于等待状态的线程。
19.如权利要求l 8所述的程序控制装置,其特征在于, 所述对象与一个资源对应,是用于调解多个线程向该资源访问的竞争的对象;所述接受处理部,按照系统调用将获得了所述资源的使用权的情况下 所对应的对象信息变更为第一状态,按照系统调用将释放了资源的使用权 的情况下所对应的对象信息变更为第二状态;与所述接受处理部对应的第一中断发生部,在所述对象信息的状态被 变更的情况下,发生将所述对象信息作为参数的所述第一中断信号;所述第一发送单元进一步按照将所述对象信息作为参数的所述第一中 断信号,进行线程的切换。
20.如权利要求l 8所述的程序控制装置,其特征在于, 所述对象与一个资源对应,是用于在变更了一个资源状态时对其他的线程进行通知的对象;所述接受处理部,按照所述系统调用将发出等待所述资源的变更的指 示的情况下所对应的对象信息变更为第一状态,按照系统调用将发出由所 述线程通知资源的变更的指示的情况下所对应的对象信息变更为第二状 态。
21.如权利要求l 8所述的程序控制装置,其特征在于, 所述对象是为了使两个线程同步,而管理用于同步的条件和状态的对象;所述接受处理部,按照所述系统调用将发出直到变量的条件成立为止 的等待指示时所对应的对象信息变更为第一状态,按照系统调用将发出表 示变量的条件成立的指示时所对应的对象信息变更为第二状态。
22.如权利要求l 8所述的程序控制装置,其特征在于, 所述对象是在两个以上的线程竞争并访问一个以上的资源的情况下进 行调解的对象;与所述对象相对应的对象信息包含关于可由任一个线程访问的资源的 资源数;所述接受处理部,根据所述系统调用对资源的获得被指示的情况下的 所述资源数进行减法运算,并在资源数到达规定值时,将对应的对象信息 变更为第一状态,按照所述系统调用对资源的释放被指示的情况下的所述 资源数进行加法运算,并将所述对象信息变更为第二状态。
23.如权利要求9所述的程序控制装置,其特征在于, 所述调度部进行以下工作按照包含第一线程的结束指示的系统调用,将所述第一线程的状态变 更为结束状态;在所述第一线程的状态被变更为结束状态时,选择一个或多个等待状 态的线程,并变更为能够执行状态;按照包含第二线程的结束等待指示的系统调用,将所述第二线程的状 态变更为等待状态;所述第一发送单元从切换候补中除去处于等待状态的线程。
24 . —种操作系统,对要按照每个时隙执行的线程进行切换,其特 征在于,包括发生单元,发生第一中断信号,该第一中断信号以一个时隙作为接收 方;以及受理单元,在作为所述接收方的时隙和当前的时隙不一致的情况下, 不受理该第一中断信号,在一致的情况下受理该第一中断信号。
25. —种程序控制方法,对要按照每个时隙执行的线程进行切换, 其特征在于, 发生第一中断信号,该第一中断信号以一个时隙作为接收方; 判定成为所述接收方的时隙和当前的时隙是否一致, 在判定为不一致的情况下不受理该第一中断信号,在判定为一致的情 况下受理该第一中断信号。
26 . —种计算机可读取的记录介质,记录对要按照每个时隙执行的 线程进行切换的程序,记录使计算机实现以下单元的所述程序,这些单元 包括发生单元,发生第一中断信号,该第一中断信号以一个时隙作为接收 方;以及受理单元,在作为所述接收方的时隙和当前的时隙不一致的情况下, 不受理该第一中断信号,在一致的情况下受理该第一中断信号。
全文摘要
本发明的程序控制装置对要按照每个时隙执行的线程进行切换,其中包括第一中断发生部(13),发生第一中断信号,该第一中断信号以一个时隙作为接收方;以及第一中断处理受理部(21),在作为所述接收方的时隙和当前的时隙不一致的情况下,不受理该第一中断信号,在一致的情况下受理该第一中断信号。
文档编号G06F9/48GK101382911SQ20081021486
公开日2009年3月11日 申请日期2008年9月3日 优先权日2007年9月3日
发明者林邦彦 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1