JP2015075871A - Exclusive control program, information processing apparatus, and exclusive control method - Google Patents
Exclusive control program, information processing apparatus, and exclusive control method Download PDFInfo
- Publication number
- JP2015075871A JP2015075871A JP2013211036A JP2013211036A JP2015075871A JP 2015075871 A JP2015075871 A JP 2015075871A JP 2013211036 A JP2013211036 A JP 2013211036A JP 2013211036 A JP2013211036 A JP 2013211036A JP 2015075871 A JP2015075871 A JP 2015075871A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- lock
- access
- acquired
- acquisition
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 124
- 230000010365 information processing Effects 0.000 title claims abstract description 37
- 230000006870 function Effects 0.000 description 28
- 238000001514 detection method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 210000000707 wrist Anatomy 0.000 description 3
- 241000255777 Lepidoptera Species 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 230000020509 sex determination Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、排他制御プログラム、情報処理装置、排他制御方法に関し、特に、デッドロックの効率的な検知方法に関する。 The present invention relates to an exclusive control program, an information processing apparatus, and an exclusive control method, and more particularly to an efficient deadlock detection method.
通常、PC(Personal Computer)やサーバ、画像形成装置等の情報処理装置にインストールされて使用されるオペレーティング・システムには、プロセスやスレッド、タスク等、情報処理を実行する複数の実行主体が同時に同一の情報資源にアクセスすることを避けるために排他制御機能が搭載されている。ここで、情報資源とは、実行主体が処理を実行する際に使用するデータ等の要素や、実行主体が処理を実行する際に共通して利用する特殊なメモリ領域のことである。 Usually, in an operating system installed and used in an information processing apparatus such as a PC (Personal Computer), a server, or an image forming apparatus, a plurality of execution entities that execute information processing such as processes, threads, and tasks are simultaneously the same. The exclusive control function is installed to avoid accessing the information resources. Here, the information resource is an element such as data used when the execution subject executes processing, or a special memory area commonly used when the execution subject executes processing.
このような排他制御機能により、オペレーティング・システムは、特定の実行主体のみが排他的に情報資源にアクセスするように制御することができ、複数の実行主体が同じデータを同時に書き換えることにより発生する不整合を防ぐことができるようになっている。 With this exclusive control function, the operating system can control only a specific execution entity to access the information resource exclusively, and a plurality of execution entities can rewrite the same data at the same time. Matching can be prevented.
このような排他制御機能が搭載されているオペレーティング・システムにおいては、実行主体から排他的にアクセスされるべき情報資源にロックと呼ばれるアクセス占有権が予め紐付けられている。そして、このようなオペレーティング・システムにおいて、各実行主体がその情報資源にアクセスする際には、それら各実行主体が上記ロックの獲得を試み、ロックを獲得することができた実行主体のみがその情報資源にアクセスすることができるようになっている。 In an operating system equipped with such an exclusive control function, an access occupancy right called a lock is linked in advance to an information resource to be exclusively accessed from the execution subject. In such an operating system, when each executing entity accesses the information resource, each executing entity tries to acquire the lock, and only the executing entity that can acquire the lock has the information. The resource can be accessed.
このとき、ロックの獲得ができなかった他の実行主体は、ロック獲得に成功して上記情報資源へアクセスしている実行主体がその情報資源へのアクセスを完了してロックを解放するまで待たされることになる。その後、情報資源へのアクセスが完了した実行主体はロックを解放し、これにより、ロック獲得待ちの他の実行主体がロックを獲得することができるようになる。 At this time, another execution entity that could not acquire the lock waits until the execution entity that has successfully acquired the lock and has accessed the information resource completes access to the information resource and releases the lock. It will be. Thereafter, the executing entity that has completed access to the information resource releases the lock, so that another executing entity waiting to acquire the lock can acquire the lock.
このようなロック機能により、通常のオペレーティング・システムにおいては、特定の実行主体のみが排他的に上記情報資源にアクセスするので、複数の実行主体が同時に同一の情報資源にアクセスすることを回避することができ、上記不整合の発生を防ぐことが可能となる。 With such a lock function, in a normal operating system, only a specific execution entity accesses the information resource exclusively, thereby preventing multiple execution entities from accessing the same information resource at the same time. It is possible to prevent the inconsistency from occurring.
ところで、このようなロック機能が搭載されたオペレーティング・システムにおいて、デッドロックと呼ばれる不具合が発生することが知られている。デッドロックとは、複数の実行主体それぞれが互いに相手の実行主体が獲得しているロックが解放されてそのロックを獲得するまで処理が完了しないような一連の処理において発生し、複数の実行主体それぞれが互いに相手の獲得しているロックの解放を待ってしまい、処理が停止してしまうといった不具合のことである。 Incidentally, it is known that a malfunction called deadlock occurs in an operating system equipped with such a lock function. A deadlock occurs in a series of processes in which each execution entity does not complete processing until the lock acquired by the other execution entity is released and the lock is acquired. Are waiting for the other party to release the lock, and the process stops.
例えば、情報資源Aへのアクセスが完了した後に情報資源Bに紐付けられているロックbを獲得することで処理が完了する実行主体αと、情報資源Bへのアクセスが完了した後に情報資源Aに紐付けられているロックaを獲得することで処理が完了する実行主体βとが並列に処理を実行するとする。このような場合まず、実行主体αが情報資源Aに、実行主体βが情報資源Bにそれぞれ排他的にアクセスすることになる。 For example, the execution entity α that completes the processing by acquiring the lock b associated with the information resource B after the access to the information resource A is completed, and the information resource A after the access to the information resource B is completed. It is assumed that the execution subject β that completes the processing by acquiring the lock a linked to Executes the processing in parallel. In such a case, first, the executing entity α exclusively accesses the information resource A, and the executing entity β exclusively accesses the information resource B.
そして、実行主体α、実行主体βはそれぞれ情報資源A、情報資源Bへのアクセスを完了すると、次に、それぞれロックb、ロックaの獲得を試みるが、互いに相手が獲得しているロックが解放されるのを待ってしまい、即ち、実行主体αがロックbの解放を、実行主体βがロックαの解放を待ってしまい、どちらも処理が停止してしまう。このようなデッドロックは、発生要因が各実行主体の処理タイミングに強く依存し、実行主体や情報資源に不具合が無くても発生するため、原因不明の不具合として検知されないことが多い。 When execution entity α and execution entity β complete access to information resource A and information resource B, respectively, they next attempt to acquire lock b and lock a, respectively, but the locks acquired by each other are released. That is, the execution subject α waits for the release of the lock b and the execution subject β waits for the release of the lock α, both of which stop processing. Such a deadlock often depends on the processing timing of each execution subject and occurs even if there is no failure in the execution subject or information resource.
そこで、実行主体がロックの獲得を試みる度に、後述するデッドロック検知処理を実行することでデッドロックの発生を検知するデッドロック検知方法が開示され既に知られている(例えば、特許文献1参照)。このようなデッドロック検知方法でデッドロックの発生を検知する場合、オペレーティング・システムは、実行主体によるロックの獲得状況及び獲得待ち状況を、方向性を持つ矢印で示すことにより構成される有向グラフにおいてループが形成されているか否かを判断することでデッドロックの発生を検知するといったデッドロック検知処理を実行するようになっている。 Therefore, a deadlock detection method for detecting the occurrence of a deadlock by executing a deadlock detection process described later every time the execution subject tries to acquire a lock has been disclosed (for example, see Patent Document 1). ). When detecting the occurrence of a deadlock by such a deadlock detection method, the operating system loops in a directed graph configured by indicating the lock acquisition status and the acquisition wait status by the execution subject with arrows having directions. The deadlock detection process of detecting the occurrence of a deadlock by determining whether or not is formed is executed.
例えば、上記実行主体α及び実行主体βについてのデッドロックを例にすると、「実行主体αは、ロックaを獲得し、かつ、ロックbの獲得待ちの状態にあり、実行主体βは、ロックbを獲得し、かつ、ロックaの獲得待ちの状態にある」という関係が成り立つ。そのため、このような場合には、有向グラフにおいて、「実行主体α→ロックa→実行主体β→ロックb→実行主体α」といったループが形成されることになる。ここで、実行主体からロックへの矢印は、矢印元の実行主体が矢印先のロックを獲得していることを表し、ロックから実行主体への矢印は、矢印先の実行主体が矢印元のロックを獲得待ちであることを表す。 For example, when the deadlock for the execution subject α and the execution subject β is taken as an example, “the execution subject α has acquired the lock a and is waiting to acquire the lock b, and the execution subject β has the lock b. And is in a state of waiting for acquisition of lock a ”. Therefore, in such a case, a loop “execution subject α → lock a → execution subject β → lock b → execution subject α” is formed in the directed graph. Here, the arrow from the execution subject to the lock indicates that the execution subject at the arrow origin has acquired the lock at the arrow destination, and the arrow from the lock to the execution subject indicates that the execution subject at the arrow destination is the lock at the arrow origin. Represents waiting for acquisition.
そして、このように、上記有向グラフにおいてループが形成されると、オペレーティング・システムは、デッドロック検知処理において、デッドロックが発生したことを検知することになる。 When a loop is formed in the directed graph in this way, the operating system detects that a deadlock has occurred in the deadlock detection process.
ところが、このようなデッドロック検知方法では、オペレーティング・システムは、実行主体がロックの獲得を試みる度に上記デッドロック検知処理を実行するため、デッドロック検知の効率が悪いといった問題がある。 However, in such a deadlock detection method, the operating system executes the deadlock detection process every time the execution subject tries to acquire the lock, so that there is a problem that the deadlock detection efficiency is low.
また、このようなデッドロック検知方法では、オペレーティング・システムは、数百、数千といった多数の実行主体が並列に処理を実行することで、一つのロックに対してそれら多数の実行主体が獲得を試みるような場合であっても、実行主体がロックの獲得を試みる度に上記デッドロック検知処理を実行するため、デッドロック検知の効率がさらに悪いといった問題がある。 In addition, in such a deadlock detection method, the operating system allows a large number of execution entities such as hundreds or thousands to execute processing in parallel, so that these execution entities acquire one lock. Even when trying, the deadlock detection process is executed every time the execution subject tries to acquire the lock, and thus there is a problem that the efficiency of deadlock detection is even worse.
尚、このような問題は、情報処理装置にインストールされて使用されるオペレーティング・システムに限らず、複数の実行主体がそれぞれ同一の複数の情報資源にアクセスするプログラムであれば、どのようなプログラムでも発生し得る問題である。 This problem is not limited to the operating system installed and used in the information processing apparatus, and any program that allows multiple execution entities to access the same multiple information resources. It is a problem that can occur.
本発明は、効率的にデッドロックを検知することを目的とする。 An object of the present invention is to efficiently detect a deadlock.
上記課題を解決するために、情報処理を実行する複数の実行主体から共通してアクセスされ得る情報資源に排他的にアクセスするための権利であるアクセス占有権の獲得を試みた実行主体のうち一の実行主体に対してのみ前記アクセス占有権を獲得させ、前記一の実行主体からの前記情報資源へのアクセスが完了すると、前記一の実行主体に前記アクセス占有権を解放させることで、前記一の実行主体のみが前記情報資源に排他的にアクセスするように制御する排他制御プログラムであって、第一の実行主体が前記情報資源へのアクセス占有権を獲得した後、前記第一の実行主体が前記情報資源へのアクセス占有権を獲得している状態において前記情報資源へのアクセス占有権の獲得を試みた第二の実行主体が、所定のタイミングまでに前記第一のアクセス占有権を獲得したか否かを判断するアクセス占有権獲得判断処理ステップと、前記第二の実行主体が前記所定のタイミングまでに前記情報資源へのアクセス占有権を獲得していないと判断された場合に、前記第一の実行主体と前記第二の実行主体とを含む複数の実行主体を選択する実行主体選択処理ステップと、選択された前記複数の実行主体が獲得しているアクセス占有権のうち、自身の獲得しているアクセス占有権を除く他のアクセス占有権の少なくとも何れかのアクセス占有権の獲得を、前記複数の実行主体それぞれが試み、前記複数の実行主体が獲得しているアクセス占有権それぞれが、前記複数の実行主体の少なくとも何れかにより獲得を待たれている獲得待ち状態であるか否かを判断する獲得待機状態判断処理ステップと、前記獲得待ち状態であると判断された場合に、前記情報処理が実行途中で停止していると判定する実行停止判定処理ステップと、を実行することを特徴とする。 In order to solve the above problem, one of the execution entities that attempted to acquire an access exclusive right that is a right to exclusively access information resources that can be accessed in common by a plurality of execution entities that execute information processing. The execution occupancy right is acquired only by the execution entity, and when the access to the information resource from the one execution entity is completed, the access occupancy right is released by the one execution entity. An exclusive control program for controlling so that only the executing entity exclusively accesses the information resource, and after the first executing entity has acquired the right to occupy the information resource, the first executing entity The second execution entity who has attempted to acquire the access exclusive right to the information resource in a state where the user has acquired the exclusive access right to the information resource by the predetermined timing An access occupancy acquisition determination step for determining whether or not one access occupancy is acquired; and if the second execution entity has not acquired an access occupancy to the information resource by the predetermined timing. If determined, an execution entity selection processing step of selecting a plurality of execution entities including the first execution entity and the second execution entity, and access acquired by the selected execution entities Each of the plurality of execution entities tries to acquire an access occupancy right of at least one of the other access occupancy rights excluding the access occupancy right acquired by itself. An acquisition waiting state determination processing step for determining whether each of the access occupying rights that are in the waiting state for acquisition is waiting for acquisition by at least one of the plurality of execution subjects. And-up, when it is determined that the an acquisition wait state, and executes the an execution stop determination processing step of determining that stopped the processing is in the middle of execution.
また、本発明の他の態様は、情報処理装置であって、上記排他制御プログラムがインストールされたことを特徴とする。 Another aspect of the present invention is an information processing apparatus, wherein the exclusive control program is installed.
また、本発明の更に他の態様は、情報処理を実行する複数の実行主体から共通してアクセスされ得る情報資源に排他的にアクセスするための権利であるアクセス占有権の獲得を試みた実行主体のうち一の実行主体に対してのみ前記アクセス占有権を獲得させ、前記一の実行主体からの前記情報資源へのアクセスが完了すると、前記一の実行主体に前記アクセス占有権を解放させることで、前記一の実行主体のみが前記情報資源に排他的にアクセスするように制御する排他制御方法であって、第一の実行主体が情報資源へのアクセス占有権を獲得した後、前記第一の実行主体が前記情報資源へのアクセス占有権を獲得している状態において前記情報資源へのアクセス占有権の獲得を試みた第二の実行主体が、所定のタイミングまでに前記第一のアクセス占有権を獲得したか否かを判断し、前記第二の実行主体が前記所定のタイミングまでに前記情報資源へのアクセス占有権を獲得していないと判断された場合に、前記第一の実行主体と前記第二の実行主体とを含む複数の実行主体を選択し、選択された前記複数の実行主体が獲得しているアクセス占有権のうち、自身の獲得しているアクセス占有権を除く他のアクセス占有権の少なくとも何れかのアクセス占有権の獲得を、前記複数の実行主体それぞれが試み、前記複数の実行主体が獲得しているアクセス占有権それぞれが、前記複数の実行主体の少なくとも何れかにより獲得を待たれている獲得待ち状態であるか否かを判断し、前記獲得待ち状態であると判断された場合に、前記情報処理が実行途中で停止していると判定することを特徴とする。 Still another aspect of the present invention provides an execution entity that has attempted to acquire an access occupancy right that is a right for exclusive access to information resources that can be accessed in common by a plurality of execution entities that execute information processing. The access exclusive right is acquired only for one execution entity, and when the access to the information resource from the one execution entity is completed, the access exclusive right is released to the one execution entity. , An exclusive control method for controlling so that only the one execution entity has exclusive access to the information resource, and after the first execution entity has acquired the right to occupy the information resource, In a state where the execution subject has acquired the access exclusive right to the information resource, the second execution entity who has attempted to acquire the access exclusive right to the information resource has received the first Determining whether or not the second occupancy right has been acquired, and if it is determined that the second execution entity has not acquired the right to occupy the information resource by the predetermined timing, A plurality of execution entities including the execution entity and the second execution entity are selected, and the access occupation right acquired by the plurality of execution entities selected is excluded from the access occupation right acquired by the plurality of execution entities. Each of the plurality of execution entities tries to acquire at least one of the other access occupancy rights, and each of the access occupancy rights acquired by the plurality of execution entities is at least one of the plurality of execution entities. Determining whether or not it is in an acquisition waiting state waiting for acquisition, and determining that the information processing is stopped during execution when it is determined that the acquisition waiting state is determined. And butterflies.
本発明によれば、効率的にデッドロックを検知することができる。 According to the present invention, deadlock can be detected efficiently.
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、排他制御プログラムとして、PC(Personal Computer)やサーバ、画像形成装置等の情報処理装置にインストールされて使用されるオペレーティング・システムを例として説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In the present embodiment, an operating system that is installed and used in an information processing apparatus such as a PC (Personal Computer), a server, or an image forming apparatus will be described as an example of the exclusive control program.
本実施形態に係るオペレーティング・システムは、プロセスやスレッド、タスク等、情報処理を実行する情報処理を実行する複数の実行主体から共通してアクセスされ得る情報資源に排他的にアクセスするための権利であるアクセス占有権の獲得を試みた実行主体のうち一の実行主体に対してのみ前記アクセス占有権を獲得させ、前記一の実行主体からの前記情報資源へのアクセスが完了すると、前記一の実行主体に前記アクセス占有権を解放させることで、前記一の実行主体のみが前記情報資源に排他的にアクセスするように制御する。ここで、情報資源とは、実行主体が処理を実行する際に使用するデータ等の要素や、実行主体が処理を実行する際に共通して利用する特殊なメモリ領域のことである。 The operating system according to the present embodiment has a right to exclusively access information resources that can be accessed in common by a plurality of execution subjects executing information processing, such as processes, threads, and tasks. When the execution occupancy right is acquired only for one execution entity among the execution entities that have attempted to acquire an access occupancy right, and the access to the information resource from the one execution entity is completed, the one execution By causing the main body to release the access right, only the one execution main body is controlled to exclusively access the information resource. Here, the information resource is an element such as data used when the execution subject executes processing, or a special memory area commonly used when the execution subject executes processing.
具体的には、本実施形態に係るオペレーティング・システムにおいては、実行主体から排他的にアクセスされるべき情報資源にロックと呼ばれるアクセス占有権が予め紐付けられている。そして、このようなオペレーティング・システムにおいて、各実行主体がその情報資源にアクセスする際には、それら各実行主体が上記ロックの獲得を試み、ロックを獲得することができた実行主体のみがその情報資源にアクセスすることができるようになっている。 Specifically, in the operating system according to the present embodiment, an access occupation right called a lock is linked in advance to an information resource that should be exclusively accessed from the execution subject. In such an operating system, when each executing entity accesses the information resource, each executing entity tries to acquire the lock, and only the executing entity that can acquire the lock has the information. The resource can be accessed.
このとき、ロックの獲得ができなかった他の実行主体は、ロック獲得に成功して上記情報資源へアクセスしている実行主体がその情報資源へのアクセスを完了してロックを解放するまで待たされる。その後、情報資源へのアクセスが完了した実行主体はロックを解放し、これにより、ロック獲得待ちの他の実行主体がロックを獲得することができるようになる。 At this time, another execution entity that could not acquire the lock waits until the execution entity that has successfully acquired the lock and has accessed the information resource completes access to the information resource and releases the lock. . Thereafter, the executing entity that has completed access to the information resource releases the lock, so that another executing entity waiting to acquire the lock can acquire the lock.
このようなロック機能により、本実施形態に係るオペレーティング・システムにおいては、特定の実行主体のみが排他的に上記情報資源にアクセスするので、複数の実行主体が同時に同一の情報資源にアクセスすることを回避することができ、同じデータを複数の実行主体が同時に書き換えることによる発生する不整合を防ぐことが可能となっている。 With such a lock function, in the operating system according to the present embodiment, only a specific execution entity accesses the information resource exclusively, so that a plurality of execution entities can simultaneously access the same information resource. It is possible to avoid this, and it is possible to prevent inconsistencies caused by a plurality of execution subjects rewriting the same data at the same time.
このように構成されたオペレーティング・システムにおいて、本実施形態に係る要旨の一つは、一の実行主体に獲得されており、かつ、他の実行主体から獲得待ちされているロックであって、上記一の実行主体に獲得されてから所定時間経過しても上記他の実行主体に獲得されていないロックのみを対象として、デッドロックを引き起こしているか否かを判定するためのデッドロック判定処理を実行することにある。これにより、本実施形態に係るオペレーティング・システムによれば、効率的にデッドロックを検知することが可能となる。 In the operating system configured as described above, one of the gist according to the present embodiment is a lock that has been acquired by one execution entity and is waiting to be acquired by another execution entity, Executes deadlock determination processing to determine whether or not a deadlock has occurred, only for locks that have not been acquired by another execution entity even after a predetermined time has elapsed since it was acquired by one execution entity There is to do. Thereby, according to the operating system which concerns on this embodiment, it becomes possible to detect a deadlock efficiently.
まず、本実施形態に係るオペレーティング・システム100がインストールされる情報処理装置1を構成するハードウェアについて、図1を参照して説明する。図1は、本実施形態に係る情報処理装置1のハードウェア構成を模式的に示すブロック図である。 First, hardware constituting the information processing apparatus 1 in which the operating system 100 according to the present embodiment is installed will be described with reference to FIG. FIG. 1 is a block diagram schematically illustrating a hardware configuration of the information processing apparatus 1 according to the present embodiment.
図1に示すように、本実施形態に係る情報処理装置1は、CPU(Central Processing Unit)10、RAM(Random Access Memory)20、ROM(Read Only Memory)30、HDD(Hard Disk Drive)40及びI/F50がバス80を介して接続されている。また、I/F50にはLCD(Liquid Crystal Display)60及び操作部70が接続されている。 As shown in FIG. 1, the information processing apparatus 1 according to the present embodiment includes a CPU (Central Processing Unit) 10, a RAM (Random Access Memory) 20, a ROM (Read Only Memory) 30, an HDD (Hard Disk Drive) 40, and An I / F 50 is connected via a bus 80. Further, an LCD (Liquid Crystal Display) 60 and an operation unit 70 are connected to the I / F 50.
CPU10は演算手段であり、情報処理装置1全体の動作を制御する。RAM20は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU10が情報を処理する際の作業領域として用いられる。ROM30は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。HDD40は、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納される。 The CPU 10 is a calculation unit and controls the operation of the information processing apparatus 1 as a whole. The RAM 20 is a volatile storage medium capable of reading and writing information at high speed, and is used as a work area when the CPU 10 processes information. The ROM 30 is a read-only nonvolatile storage medium and stores a program such as firmware. The HDD 40 is a non-volatile storage medium that can read and write information, and stores an OS (Operating System), various control programs, application programs, and the like.
I/F50は、バス80と各種のハードウェアやネットワーク等を接続し制御する。LCD60は、利用者が情報処理装置1の状態を確認するための視覚的利用者インタフェースである。操作部70は、キーボード、マウス、各種のハードボタン、タッチパネル等、利用者が情報処理装置1に情報を入力するためのユーザインタフェースである。 The I / F 50 connects and controls the bus 80 and various hardware and networks. The LCD 60 is a visual user interface for the user to check the state of the information processing apparatus 1. The operation unit 70 is a user interface for a user to input information to the information processing apparatus 1 such as a keyboard, a mouse, various hard buttons, and a touch panel.
このようなハードウェア構成において、ROM30やHDD40若しくは図示しない光学ディスク等の記憶媒体に格納されたプログラムがRAM20に読み出され、CPU10がそれらのプログラムに従って演算を行うことによりソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る情報処理装置1の機能を実現する機能ブロックが構成される。 In such a hardware configuration, a program stored in a storage medium such as the ROM 30, the HDD 40, or an optical disk (not shown) is read into the RAM 20, and the software control unit is configured by the CPU 10 performing calculations according to those programs. . A functional block that realizes the functions of the information processing apparatus 1 according to the present embodiment is configured by a combination of the software control unit configured as described above and hardware.
次に、本実施形態に係る情報処理装置1の機能構成について、図2を参照して説明する。図2は、本実施形態に係る情報処理装置1の機能構成を模式的に示すブロック図である。図2に示すように、本実施形態に係る情報処理装置1には、オペレーティング・システム100がインストールされている。また、図2に示すように、本実施形態に係る情報処理装置1は、タイマ200、スタック300、実行主体400、情報資源500、ロック600を含む。 Next, the functional configuration of the information processing apparatus 1 according to the present embodiment will be described with reference to FIG. FIG. 2 is a block diagram schematically showing a functional configuration of the information processing apparatus 1 according to the present embodiment. As shown in FIG. 2, an operating system 100 is installed in the information processing apparatus 1 according to the present embodiment. As illustrated in FIG. 2, the information processing apparatus 1 according to the present embodiment includes a timer 200, a stack 300, an execution subject 400, an information resource 500, and a lock 600.
オペレーティング・システム100は、情報処理装置1にインストールされて、CPU(Central Processing Unit)等のプロセッサによる演算処理により、ロック獲得処理部101、ロック解放処理部102、デッドロック可能性判定処理部103、デッドロック判定処理部104、デバッグ情報出力処理部105、実行主体管理部106、情報資源管理部107、ロック管理部108を構成する。 The operating system 100 is installed in the information processing apparatus 1 and is subjected to arithmetic processing by a processor such as a CPU (Central Processing Unit), thereby obtaining a lock acquisition processing unit 101, a lock release processing unit 102, a deadlock possibility determination processing unit 103, The deadlock determination processing unit 104, the debug information output processing unit 105, the execution subject management unit 106, the information resource management unit 107, and the lock management unit 108 are configured.
ロック獲得処理部101は、情報資源に紐付けられているロックを実行主体が獲得する際の処理であるロック獲得処理を行う。ロック解放処理部102は、実行主体が獲得しているロックを解放する際の処理であるロック解放処理を行う。デッドロック可能性判定処理部103は、所定の条件を満たしているロックを対象にして、そのロックがデッドロックを引き起こしている可能性があるか否かを判定する際の処理であるデッドロック可能性判定処理を行う。ここで、所定の条件を満たしているロックとは、ある実行主体に獲得されており獲得待ちである他の実行主体があるロックのことである。 The lock acquisition processing unit 101 performs a lock acquisition process that is a process when an execution subject acquires a lock associated with an information resource. The lock release processing unit 102 performs a lock release process that is a process for releasing a lock acquired by the execution subject. The deadlock possibility determination processing unit 103 is a process for determining whether there is a possibility that the lock may cause a deadlock for a lock that satisfies a predetermined condition. Perform sex determination processing. Here, a lock that satisfies a predetermined condition is a lock that is acquired by a certain execution subject and has another execution subject that is waiting to be acquired.
デッドロック判定処理部104は、デッドロック可能性判定処理においてデッドロックを引き起こしている可能性があると判定されたロックを対象にして、実際にデッドロックを引き起こしているか否かを判定する際の処理であるデッドロック判定処理を行う。デバッグ情報出力処理部105は、デッドロック判定処理において実際にデッドロックを引き起こしていると判定された場合に、そのデッドロックが発生するに至った過程等のデバッグ情報をLCD60等の表示部やHDD40等の不揮発性記憶媒体に出力する際の処理であるデバッグ情報出力処理を行う。 The deadlock determination processing unit 104 determines whether or not a deadlock has actually been caused for a lock that has been determined to possibly cause a deadlock in the deadlock possibility determination processing. A deadlock determination process, which is a process, is performed. When it is determined that the deadlock is actually caused in the deadlock determination process, the debug information output processing unit 105 displays debug information such as a process leading to the occurrence of the deadlock in the display unit such as the LCD 60 or the HDD 40. Debug information output processing that is processing when outputting to a non-volatile storage medium such as is performed.
実行主体管理部106、情報資源管理部107、ロック管理部108はそれぞれ、実行主体400、情報資源500、ロック600を管理する。 The execution subject management unit 106, the information resource management unit 107, and the lock management unit 108 manage the execution subject 400, the information resource 500, and the lock 600, respectively.
タイマ200は、現在時刻をカウントする。スタック300は、過去に呼び出された関数のスタックフレームを保持する。このスタック300は、図1に示したCPU10のレジスタにより実現される。実行主体400は、プロセスやスレッド、タスク等、プロセッサが演算を行うことにより情報処理を実行する主体となるものである。情報資源500は、実行主体が処理を実行する際に使用するデータ等の要素や、実行主体が処理を実行する際に共通して利用する特殊なメモリ領域のことである。ロック600は、一の実行主体に排他的に情報資源へアクセスさせるためのアクセス占有権であり、各情報資源に一対一で紐付けられている。 The timer 200 counts the current time. The stack 300 holds a stack frame of functions called in the past. The stack 300 is realized by the register of the CPU 10 shown in FIG. The execution subject 400 is a subject that executes information processing by a processor performing operations such as processes, threads, and tasks. The information resource 500 is an element such as data used when the execution subject executes a process or a special memory area commonly used when the execution subject executes a process. The lock 600 is an access exclusive right for allowing an execution subject to access an information resource exclusively, and is associated with each information resource on a one-to-one basis.
次に、本実施形態に係るロックのデータ構造について、図3を参照して説明する。図3は、本実施形態に係るロックのデータ構造を説明するための図である。図3に示すように、本実施形態に係るロックは、「ロックID」、「格納先アドレス」、「獲得主」、「獲得待ちリスト」、「獲得状況」、「獲得時刻」、「属性」、「関数戻りアドレス」により構成される。尚、図3においては、本発明に関係する情報のみを示し、その他の情報は省略している。 Next, the data structure of the lock according to the present embodiment will be described with reference to FIG. FIG. 3 is a diagram for explaining the data structure of the lock according to the present embodiment. As shown in FIG. 3, the lock according to the present embodiment includes “lock ID”, “storage destination address”, “acquirer”, “acquisition waiting list”, “acquisition status”, “acquisition time”, “attribute”. , “Function return address”. In FIG. 3, only information related to the present invention is shown, and other information is omitted.
「ロックID」は、ロックを識別するための識別子である。「格納先アドレス」は、ロックの格納先アドレスである。「獲得主」は、ロックを獲得している実行主体の格納先アドレスである。「獲得待ちリスト」は、ロック獲得を試みた結果、そのロックの獲得を待っている実行主体の格納先アドレスのリストである。尚、本実施形態においては、この「獲得待ちリスト」にはロック獲得の試みを行った順に登録され、その登録順に獲得主になる。 “Lock ID” is an identifier for identifying a lock. The “storage destination address” is a storage destination address of the lock. “Acquirer” is the storage destination address of the execution subject that has acquired the lock. The “acquisition waiting list” is a list of storage destination addresses of execution subjects waiting to acquire the lock as a result of attempting to acquire the lock. In the present embodiment, the “acquisition waiting list” is registered in the order in which attempts to acquire locks are made, and becomes the acquirer in the order of registration.
「獲得状況」は、実行主体にロックが獲得されているか否かを表す変数であり、この変数が0である場合には、どの実行主体からも獲得されていないことを表し、1である場合には、ある実行主体に獲得されているが獲得待ちである他の実行主体がないことを表し、2以上である場合には、ある実行主体に獲得されており獲得待ちである他の実行主体があることを表す。「獲得時刻」は、ロック獲得処理においてロック獲得が確定した時刻を表す。 The “acquisition status” is a variable indicating whether or not a lock is acquired by the execution subject. When this variable is 0, it indicates that no acquisition has been acquired from any execution subject. Indicates that there is no other execution entity that has been acquired by a certain execution entity but is waiting to be acquired. If the number is 2 or more, another execution entity that has been acquired by a certain execution entity and is waiting for acquisition. It represents that there is. “Acquisition time” represents a time when lock acquisition is confirmed in the lock acquisition processing.
「属性」は、ロックの属性を表す変数であり、この変数が000である場合には、どの実行主体からも獲得されておらず獲得待ちの実行主体もないフリーなロックであることを表し、001である場合には、ある実行主体に獲得されているが獲得待ちである他の実行主体がないロックであることを表し、010である場合には、ある実行主体に獲得されており獲得待ちである他の実行主体があるロックであることを表し、011である場合には、デッドロック可能性判定処理の結果、デッドロックを引き起こす可能性があると判定されたロックであることを表し、100である場合には、デッドロック可能性判定処理の結果、デッドロックを引き起こす可能性がないと判定されたロックであることを表し、101である場合には、デッドロック判定処理の結果、デッドロックを引き起こしていると判定されたロックであることを表し、110である場合には、デッドロック判定処理の結果、デッドロックを引き起こしていないと判定されたロックであることを表し、111である場合には、デバッグ情報出力処理の結果、デバッグ情報が出力されたロックであることを表す。 “Attribute” is a variable representing the attribute of the lock, and when this variable is 000, it represents a free lock that has not been acquired from any execution subject and has no execution subject waiting to be acquired; If it is 001, it indicates that the lock is acquired by a certain execution subject but no other execution subject is waiting for acquisition. If it is 010, it is acquired by a certain execution subject and waiting for acquisition. It represents that the other execution subject is a lock, and in the case of 011 it represents a lock that has been determined to cause a deadlock as a result of the deadlock possibility determination process, If it is 100, it indicates that it is determined that there is no possibility of causing a deadlock as a result of the deadlock possibility determination process, and if it is 101, it indicates a deadlock. As a result of the determination process, the lock is determined to have caused the deadlock. When the lock is 110, the lock has been determined not to cause the deadlock as a result of the deadlock determination process. In the case of 111, it indicates that the debug information is output as a result of the debug information output process.
「関数戻りアドレス」は、ロック獲得が確定した時点から所定ステップだけ遡った関数の戻りアドレスである。 The “function return address” is a return address of a function that goes back by a predetermined step from the time when lock acquisition is confirmed.
次に、本実施形態に係る実行主体のデータ構造について、図4を参照して説明する。図4は、本実施形態に係る実行主体のデータ構造を説明するための図である。図4に示すように、本実施形態に係る実行主体は、「実行主体ID」、「格納先アドレス」、「獲得済みリスト」を含む。尚、図4においては、本発明に関係する情報のみを示し、その他の情報は省略している。「実行主体ID」は、実行主体を識別するための識別子である。「格納先アドレス」は、実行主体の格納先アドレスである。「獲得済みリスト」は、獲得済みロックの格納先アドレスのリストである。 Next, the data structure of the execution subject according to the present embodiment will be described with reference to FIG. FIG. 4 is a diagram for explaining the data structure of the execution subject according to the present embodiment. As shown in FIG. 4, the execution subject according to the present embodiment includes an “execution subject ID”, a “storage destination address”, and an “acquired list”. In FIG. 4, only information related to the present invention is shown, and other information is omitted. The “execution subject ID” is an identifier for identifying the execution subject. The “storage destination address” is a storage destination address of the execution subject. The “acquired list” is a list of storage addresses of acquired locks.
このように構成されたオペレーティング・システム100において、本実施形態に係る要旨の一つは、一の実行主体に獲得されており、かつ、他の実行主体から獲得待ちされているロックであって、上記一の実行主体に獲得されてから所定時間経過しても上記他の実行主体に獲得されていないロックのみを対象として、デッドロックを引き起こしているか否かを判定するためのデッドロック判定処理を実行することにある。これにより、本実施形態に係るオペレーティング・システム100は、効率的にデッドロックを検知することが可能となる。 In the operating system 100 configured as described above, one of the gist according to the present embodiment is a lock that is acquired by one execution entity and is waiting to be acquired by another execution entity. Deadlock determination processing for determining whether or not a deadlock has been caused only for locks that have not been acquired by the other execution entity even after a predetermined time has elapsed since the acquisition by the one execution entity There is to do. Thereby, the operating system 100 according to the present embodiment can efficiently detect a deadlock.
次に、本実施形態に係るオペレーティング・システム100がロック獲得処理を実行する際の処理について、図5及び図6を参照して説明する。図5及び図6は、本実施形態に係るオペレーティング・システム100がロック獲得処理を実行する際の処理を説明するためのフローチャートである。尚、図5及び図6においては、ある特定の実行主体αが、ある情報資源Aのロックaを獲得する例について示している。 Next, processing when the operating system 100 according to the present embodiment executes lock acquisition processing will be described with reference to FIGS. 5 and 6 are flowcharts for explaining processing when the operating system 100 according to the present embodiment executes lock acquisition processing. 5 and 6 show an example in which a specific execution subject α acquires a lock a of an information resource A.
図5に示すように、本実施形態に係るオペレーティング・システム100がロック獲得処理を実行する際にはまず、実行主体αがロックaの獲得を試みると、ロック獲得処理部101は、ロックaの「獲得主」若しくは「獲得状況」を確認することにより、ロックaが既に他の実行主体に獲得されているか否かを判断する(S501)ロック獲得処理部101は、S501の判断処理において、ロックaが他の実行主体に獲得されていないと判断した場合には(S501/YES)、ロックaの「獲得状況」の変数に1を加算する(S502)。 As shown in FIG. 5, when the operating system 100 according to the present embodiment executes the lock acquisition process, first, when the execution subject α tries to acquire the lock a, the lock acquisition processing unit 101 By confirming “acquirer” or “acquisition status”, it is determined whether or not the lock a has already been acquired by another execution subject (S501). The lock acquisition processing unit 101 performs the lock in the determination processing of S501. If it is determined that “a” has not been acquired by another execution subject (S501 / YES), 1 is added to the “acquisition status” variable of lock a (S502).
ロック獲得処理部101は、「獲得状況」の変数に1を加算すると、実行主体αの「格納先アドレス」を、ロックaの「獲得主」に登録して(S503)、実行主体αによるロックaの獲得を確定し(S504)、そのときの現在時刻を実行主体αによるロックaの獲得時刻としてタイマ200から取得してロックaの「獲得時刻」に登録する(S505)。尚、実行主体αによるロックaの獲得の確定は、その他のタイミング、例えば、実行主体αがロックaを獲得するために実行されたロック獲得処理が完了したタイミングであっても良い。 When 1 is added to the “acquisition status” variable, the lock acquisition processing unit 101 registers the “storage destination address” of the execution subject α in the “acquirer” of the lock a (S503), and locks by the execution subject α The acquisition of a is confirmed (S504), and the current time at that time is acquired from the timer 200 as the acquisition time of lock a by the execution subject α and registered in the “acquisition time” of lock a (S505). The determination of acquisition of the lock a by the execution subject α may be at another timing, for example, the timing at which the lock acquisition process executed for the execution subject α to acquire the lock a is completed.
ロック獲得処理部101は、現在時刻を「獲得時刻」に登録すると、スタック300から関数の戻りアドレスを取得してロックaの「関数戻りアドレス」に登録する(S506)と共に、ロックaの「格納先アドレス」を実行主体αの「獲得済みリスト」に登録し(S507)、ロックaの「獲得待ちリスト」若しくは「獲得状況」を確認することにより、ロックaの獲得を待っている実行主体があるか否かを判断する(S508)。即ち、本実施形態においては、S506の処理が、実行過程情報取得処理ステップに相当する。尚、S506の関数戻りアドレス登録処理については、図7を参照して後に詳述する。 When the current acquisition time is registered in “acquisition time”, the lock acquisition processing unit 101 acquires the return address of the function from the stack 300 and registers it in the “function return address” of the lock a (S506), and at the same time “stores” the lock a. The “execution subject” waiting for acquisition of lock a is registered by registering “destination address” in the “acquired list” of execution subject α (S507) and confirming “acquisition waiting list” or “acquisition status” of lock a. It is determined whether or not there is (S508). That is, in this embodiment, the process of S506 corresponds to an execution process information acquisition process step. The function return address registration process in S506 will be described in detail later with reference to FIG.
ロック獲得処理部101は、S508の判断処理において、ロックaの獲得を待っている実行主体があると判断した場合には(S508/YES)、ロックaの「属性」が010であるか否かを判断する(S509)。ロック獲得処理部101は、S509の判断処理において、ロックaの「属性」が010ではないと判断した場合には(S509/NO)、ロックaの「属性」を010に更新して(S510)ロック獲得処理を終了し、010であると判断した場合には(S509/YES)、そのまま、ロック獲得処理を終了する。 If the lock acquisition processing unit 101 determines in S508 that there is an execution subject waiting for acquisition of lock a (S508 / YES), whether or not the “attribute” of lock a is “010”. Is determined (S509). When the lock acquisition processing unit 101 determines that the “attribute” of the lock a is not 010 in the determination process of S509 (S509 / NO), the lock acquisition processing unit 101 updates the “attribute” of the lock a to 010 (S510). When the lock acquisition process is terminated and it is determined that the value is 010 (S509 / YES), the lock acquisition process is terminated as it is.
ロック獲得処理部101は、S508の判断処理において、ロックaの獲得を待っている実行主体がないと判断した場合には(S508/NO)、ロックaの「属性」が001であるか否かを判断する(S511)。ロック獲得処理部101は、S511の判断処理において、ロックaの「属性」が001ではないと判断した場合には(S511/NO)、ロックaの「属性」を001に更新して(S512)ロック獲得処理を終了し、001であると判断した場合には(S511/YES)、そのまま、ロック獲得処理を終了する。 If the lock acquisition processing unit 101 determines that there is no execution subject waiting for acquisition of lock a in the determination processing of S508 (S508 / NO), whether or not the “attribute” of lock a is 001. Is determined (S511). When the lock acquisition processing unit 101 determines that the “attribute” of the lock a is not 001 in the determination process of S511 (S511 / NO), the lock acquisition processing unit 101 updates the “attribute” of the lock a to 001 (S512). When the lock acquisition process is terminated and it is determined that the value is 001 (YES in S511), the lock acquisition process is terminated as it is.
一方、ロック獲得処理部101は、S501の判断処理において、ロックaが既に他の実行主体に獲得されていると判断した場合には(S501/NO)まず、図6に示すように、実行主体αの「格納先アドレス」を、ロックaの「獲得待ちリスト」に登録して(S601)、ロックaの「属性」が010であるか否かを判断する。 On the other hand, when the lock acquisition processing unit 101 determines in the determination process of S501 that the lock a has already been acquired by another execution subject (S501 / NO), first, as shown in FIG. The “storage address” of α is registered in the “acquisition waiting list” of lock a (S601), and it is determined whether or not the “attribute” of lock a is 010.
ロック獲得処理部101は、ロックaの「属性」が010ではないと判断した場合には(S602/NO)、ロックaの「属性」を010に更新した(S603)後、ロック解放処理部102によるロック解放処理が終了するのを待ち(S604)、010であると判断した場合には(S602/YES)、そのまま、ロック解放処理部102によるロックaのロック解放処理が終了するのを待つ(S604)。尚、S604のロック解放処理については、図8を参照して後に詳述する。 If the lock acquisition processing unit 101 determines that the “attribute” of the lock a is not 010 (S602 / NO), the lock acquisition processing unit 101 updates the “attribute” of the lock a to 010 (S603), and then the lock release processing unit 102 (S604), if it is determined to be 010 (S602 / YES), the lock release processing unit 102 waits for the lock release process of the lock a to end (S604 / YES). S604). Note that the lock release processing in S604 will be described in detail later with reference to FIG.
ロック獲得処理部101は、ロック解放処理の結果、ロックaの獲得の順番が回ってきたことを通知する獲得通知がロック解放処理部102からロックaの獲得を待っている実行主体へ通知されると、その獲得通知が実行主体αへのものか否かを判断する(S605)。 As a result of the lock release processing, the lock acquisition processing unit 101 notifies the execution subject waiting for acquisition of the lock a from the lock release processing unit 102 that notifies the lock release processing unit 102 that the order of acquisition of the lock a has come. Then, it is determined whether the acquisition notification is for the execution subject α (S605).
ロック獲得処理部101は、S605の判断処理において、ロックaの獲得通知が実行主体αへのものではないと判断すると(S605/NO)、ロックaの獲得通知が通知された他の実行主体がロックaを獲得するためのロック獲得処理を実行する(S606)。尚、S606で実行されるロック獲得処理は、S503〜S512の処理と同様の処理である。 If the lock acquisition processing unit 101 determines that the acquisition notification of lock a is not for the execution subject α in the determination processing of S605 (S605 / NO), the other execution entity notified of the acquisition notification of lock a A lock acquisition process for acquiring lock a is executed (S606). Note that the lock acquisition process executed in S606 is the same as the processes in S503 to S512.
ロック獲得処理部101は、他の実行主体がロックaを獲得するためのロック獲得処理の実行を終了すると、再度、ロック解放処理部102によるロックaのロック解放処理が終了するのを待って(S604)、改めて、ロックaの獲得通知がロック解放処理部102からロックaの獲得を待っている実行主体へ通知されると、その獲得通知が実行主体αへのものか否かを判断する(S605)。 The lock acquisition processing unit 101 waits for the lock release processing of the lock a by the lock release processing unit 102 to end again when the execution of the lock acquisition process for the other execution subject to acquire the lock a is completed ( S604) When the acquisition notification of lock a is notified from the lock release processing unit 102 to the execution subject waiting for acquisition of lock a, it is determined whether or not the acquisition notification is for the execution subject α (S604). S605).
ロック獲得処理部101は、S605の判断処理において、ロックaの獲得通知が実行主体αへのものであると判断すると(S605/YES)、実行主体αの「格納アドレス」をロックaの「獲得待ちリスト」から削除し(S607)、再度、S503以降の処理と同様の処理を行う。このようにして、本実施形態に係るオペレーティング・システム100は、ロック獲得処理を終了する。 When the lock acquisition processing unit 101 determines in the determination process of S605 that the acquisition notification of the lock a is to the execution subject α (S605 / YES), the “acquisition address” of the execution subject α is “acquired” of the lock a. The process is deleted from the “waiting list” (S607), and the same processing as the processing after S503 is performed again. In this way, the operating system 100 according to the present embodiment ends the lock acquisition process.
次に、本実施形態に係るオペレーティング・システム100が関数戻りアドレス登録処理を実行する際の処理について、図7を参照して説明する。図7は、本実施形態に係るオペレーティング・システム100が関数戻りアドレス登録処理を実行する際の処理を説明するためのフローチャートである。尚、図7においては、ある情報資源Bのロックbの「関数戻りアドレス」に関数の戻りアドレスを登録する例について示している。 Next, processing when the operating system 100 according to the present embodiment executes the function return address registration processing will be described with reference to FIG. FIG. 7 is a flowchart for explaining processing when the operating system 100 according to the present embodiment executes function return address registration processing. FIG. 7 shows an example in which the return address of a function is registered in the “function return address” of lock b of an information resource B.
図7に示すように、本実施形態に係るオペレーティング・システム100が関数戻りアドレス登録処理を実行する際にはまず、ロック獲得処理部101は、スタック300の最上位に積まれているスタックフレームにアクセスして(S701)、そのスタックフレームに含まれる関数の戻りアドレスを取得し(S702)、それをロックbの「関数戻りアドレス」に登録する(S703)。 As shown in FIG. 7, when the operating system 100 according to the present embodiment executes the function return address registration process, first, the lock acquisition processing unit 101 sets the stack frame stacked at the top of the stack 300. Access (S701), obtain the return address of the function included in the stack frame (S702), and register it in the “function return address” of lock b (S703).
そして、ロック獲得処理部101は、1ステップ前に取得した関数の戻りアドレスが指すスタックフレームにアクセスして(S704)、そのスタックフレームに含まれる関数の戻りアドレスを取得し(S705)、それをロックbの「関数戻りアドレス」に登録した後(S706)、所定ステップだけ遡ったか否かを判断する(S707)。 Then, the lock acquisition processing unit 101 accesses the stack frame indicated by the return address of the function acquired one step before (S704), acquires the return address of the function included in the stack frame (S705), After registering in the “function return address” of lock b (S706), it is determined whether or not it has been traced back by a predetermined step (S707).
ロック獲得処理部101は、S707の判断処理において、所定ステップだけ遡っていないと判断した場合には(S707/NO)、再度、S704以降の処理と同様の処理を行い、所定ステップだけ遡ったと判断した場合には(S707/YES)、そのまま、関数戻りアドレス登録処理を終了する。 If the lock acquisition processing unit 101 determines in the determination process of S707 that the predetermined step is not traced back (S707 / NO), the lock acquisition processing unit 101 performs the same process as the process after S704 again and determines that the predetermined step is traced back. If so (S707 / YES), the function return address registration process is terminated.
次に、本実施形態に係るオペレーティング・システム100がロック解放処理を実行する際の処理について、図8を参照して説明する。図8は、本実施形態に係るオペレーティング・システム100がロック解放処理を実行する際の処理を説明するためのフローチャートである。尚、図8においては、ある特定の実行主体βが、ある情報資源Bのロックbを解放する例について示している。 Next, processing when the operating system 100 according to the present embodiment executes the lock release processing will be described with reference to FIG. FIG. 8 is a flowchart for explaining processing when the operating system 100 according to the present embodiment executes lock release processing. FIG. 8 shows an example in which a specific execution subject β releases a lock b of a certain information resource B.
図8に示すように、本実施形態に係るオペレーティング・システム100がロック解放処理を実行する際にはまず、実行主体βがロックbの解放を試みると、ロック解放処理部102は、ロックbの「獲得状況」の変数から1を減算する(S801)。ロック解放処理部102は、「獲得状況」の変数から1を減算すると、ロックbの「獲得主」、「獲得時刻」、「デバグ情報」をクリアする(S802、S803、S804)と共に、「獲得済みリスト」からロックbの格納先アドレスを削除し(S805)、ロックbの「属性」が000であるか否かを判断する(S806)。 As shown in FIG. 8, when the operating system 100 according to the present embodiment executes the lock release process, first, when the execution subject β tries to release the lock b, the lock release processing unit 102 1 is subtracted from the variable “acquisition status” (S801). When 1 is subtracted from the “acquisition status” variable, the lock release processing unit 102 clears “acquirer”, “acquisition time”, and “debug information” of lock b (S802, S803, S804) and “acquirement” The storage address of lock b is deleted from the “completed list” (S805), and it is determined whether or not “attribute” of lock b is 000 (S806).
ロック解放処理部102は、S806の判断処理において、ロックbの「属性」が000ではないと判断した場合には(S806/NO)、ロックbの「属性」を000に更新して(S807)、ロックbの「獲得待ちリスト」若しくは「獲得状況」を確認することにより、ロックbの獲得を待っている実行主体があるか否かを判断し(S808)、000であると判断した場合には(S806/YES)、そのまま、ロックbの「獲得待ちリスト」若しくは「獲得状況」を確認することにより、ロックbの獲得を待っている実行主体があるか否かを判断する(S808)。 When the lock release processing unit 102 determines that the “attribute” of lock b is not 000 in the determination process of S806 (S806 / NO), the lock release processing unit 102 updates the “attribute” of lock b to 000 (S807). By checking the “acquisition waiting list” or “acquisition status” of lock b, it is determined whether there is an execution subject waiting for acquisition of lock b (S808). (S806 / YES), as it is, by checking the “acquisition waiting list” or “acquisition status” of lock b, it is determined whether there is an execution subject waiting for acquisition of lock b (S808).
ロック解放処理部102は、S808の判断処理において、ロックbの獲得を待っている実行主体があると判断した場合には(S808/YES)、ロックbの獲得の順番が回ってきたことを通知する獲得通知を、ロックbの「獲得待ちリスト」の先頭の実行主体に通知して(S809)ロック解放処理を終了し、ロックbの獲得を待っている実行主体がないと判断した場合には(S808/NO)、そのままロック解放処理を終了する。 If the lock release processing unit 102 determines that there is an execution subject waiting for acquisition of lock b in the determination processing of S808 (S808 / YES), it notifies that the order of acquisition of lock b has come. The acquisition notification to be performed is notified to the first execution subject in the “acquisition waiting list” of lock b (S809). When it is determined that there is no execution subject waiting for acquisition of lock b after completing the lock release processing. (S808 / NO), the lock release process is terminated as it is.
次に、本実施形態に係るオペレーティング・システム100がデッドロック可能性判定処理を行う際の処理について、図9を参照して説明する。図9は、本実施形態に係るオペレーティング・システム100がデッドロック可能性判定処理を行う際の処理を説明するためのフローチャートである。 Next, processing when the operating system 100 according to the present embodiment performs deadlock possibility determination processing will be described with reference to FIG. FIG. 9 is a flowchart for explaining processing when the operating system 100 according to the present embodiment performs deadlock possibility determination processing.
図9に示すように、本実施形態に係るオペレーティング・システム100がデッドロック可能性判定処理を行う際にはまず、デッドロック可能性判定処理部103は、「属性」が010であるロックをロック600から一つ選択する(S901)。以下では、ここで選択されたロックをロックcとする。 As shown in FIG. 9, when the operating system 100 according to the present embodiment performs the deadlock possibility determination process, first, the deadlock possibility determination processing unit 103 locks the lock whose “attribute” is 010. One is selected from 600 (S901). Hereinafter, the lock selected here is referred to as a lock c.
デッドロック可能性判定処理部103は、ロックを一つ選択すると、現在時刻をタイマ200から取得し(S902)、S902で取得した現在時刻と、ロックcの「獲得時刻」との差を算出して(S903)、その差が所定時間以上であるか否かを判断する(S904)。即ち、本実施形態においては、S904の処理が、アクセス占有権獲得判断処理ステップに相当する。尚、S902における現在時刻の取得処理は、S901の処理の前であっても良い。 When one lock is selected, the deadlock possibility determination processing unit 103 acquires the current time from the timer 200 (S902), and calculates the difference between the current time acquired in S902 and the “acquired time” of the lock c. (S903), it is determined whether or not the difference is equal to or longer than a predetermined time (S904). That is, in the present embodiment, the process of S904 corresponds to an access occupation right acquisition determination processing step. Note that the current time acquisition process in S902 may be performed before the process in S901.
デッドロック可能性判定処理部103は、S904の判断処理において、差が所定時間以上であると判断すると(S904/YES)、ロックcがデッドロックを引き起こしている可能性があると判定して(S905)、ロックcの「属性」を011に更新する(S906)。一方、デッドロック可能性判定処理部103は、S904の判断処理において、差が所定時間以上ではないと判断すると(S904/NO)、ロックcがデッドロックを引き起こしている可能性はないと判定して(S907)、ロックcの「属性」を100に更新する(S908)。 When the deadlock possibility determination processing unit 103 determines that the difference is equal to or longer than the predetermined time in the determination processing of S904 (S904 / YES), the deadlock possibility determination processing unit 103 determines that the lock c may cause a deadlock ( In S905), the “attribute” of the lock c is updated to 011 (S906). On the other hand, if the deadlock possibility determination processing unit 103 determines that the difference is not greater than or equal to the predetermined time in the determination processing of S904 (S904 / NO), the deadlock possibility determination processing unit 103 determines that the lock c may not cause a deadlock. (S907), the “attribute” of lock c is updated to 100 (S908).
デッドロック可能性判定処理部103は、ロックcの「属性」を更新すると、「属性」が010であるロックがあるか否かを判断する(S909)。デッドロック可能性判定処理部103は、S909の判断処理において、「属性」が010であるロックがあると判断した場合には(S909/YES)、S901以降の処理と同様の処理を行う。 When the “attribute” of the lock c is updated, the deadlock possibility determination processing unit 103 determines whether there is a lock whose “attribute” is 010 (S909). When the deadlock possibility determination processing unit 103 determines that there is a lock whose “attribute” is 010 in the determination processing of S909 (S909 / YES), the deadlock possibility determination processing unit 103 performs the same processing as the processing after S901.
一方、デッドロック可能性判定処理部103は、S908の判断処理において、010であるロックがないと判断した場合には(S909/NO)、「属性」が100であるロックをロック600から全て選択して、それらの「属性」を010に更新し(S910)、デッドロック判定処理部104にデッドロック可能性判定処理が完了したことを通知し(S911)、デッドロック可能性判定処理を終了する。 On the other hand, if the deadlock possibility determination processing unit 103 determines that there is no lock of 010 in the determination processing of S908 (S909 / NO), all the locks whose “attribute” is 100 are selected from the lock 600. Then, those “attributes” are updated to 010 (S910), the deadlock determination processing unit 104 is notified that the deadlock possibility determination process is completed (S911), and the deadlock possibility determination process is terminated. .
ここで、デッドロック可能性判定処理部103が、S910における「属性」の更新処理を行う理由について説明する。デッドロック可能性判定処理において一旦はデッドロックを引き起こしている可能性がないと判定されたロックではあるが、ある程度時間が経過して再度そのロックを対象にしてデッドロック可能性判定処理が実行された場合、S904の判断処理において、差が所定時間以上であると判断される可能性がある(S904/YES)。 Here, the reason why the deadlock possibility determination processing unit 103 performs the “attribute” update processing in S910 will be described. Although it is determined that there is no possibility of causing a deadlock in the deadlock possibility determination process, the deadlock possibility determination process is executed again for the lock after a certain amount of time has passed. In this case, in the determination process of S904, it may be determined that the difference is equal to or longer than a predetermined time (S904 / YES).
即ち、デッドロック可能性判定処理において一旦はデッドロックを引き起こしている可能性がないと判定されたロックではあっても、ある程度時間が経過すると、再度実行されたデッドロック可能性判定処理において、デッドロックを引き起こしている可能性があると判定される可能性が残っている。そこで、このようなロックについては、再度実行されるデッドロック可能性判定処理の対象から外さないためである。 That is, in the deadlock possibility determination process, even if it is determined that there is no possibility of causing a deadlock, the deadlock possibility determination process is executed again after a certain amount of time has passed. It remains possible to determine that it may be causing the lock. This is because such a lock is not excluded from the deadlock possibility determination process to be executed again.
次に、本実施形態に係るオペレーティング・システム100がデッドロック判定処理を行う際の処理について、図10を参照して説明する。図10は、本実施形態に係るオペレーティング・システム100がデッドロック判定処理を行う際の処理を説明するためのフローチャートである。 Next, processing when the operating system 100 according to the present embodiment performs deadlock determination processing will be described with reference to FIG. FIG. 10 is a flowchart for explaining processing when the operating system 100 according to the present embodiment performs deadlock determination processing.
図10に示すように、本実施形態に係るオペレーティング・システム100がデッドロック判定処理を行う際にはまず、デッドロック判定処理部104は、デッドロック可能性判定処理部103からデッドロック可能性判定処理が完了したことを通知されると(S1001)、ロック600から「属性」が011のロックを一つ選択する(S1002)。以下では、ここで選択されたロックをロックdとする。 As shown in FIG. 10, when the operating system 100 according to the present embodiment performs the deadlock determination process, the deadlock determination processing unit 104 first determines the deadlock possibility determination from the deadlock possibility determination processing unit 103. When notified that the processing is completed (S1001), one lock whose attribute is 011 is selected from the lock 600 (S1002). Hereinafter, the lock selected here is referred to as a lock d.
このS1002の処理が、本実施形態の要旨の一つである。即ち、本実施形態に係るオペレーティング・システム100は、「属性」が011のロックのみを対象として、以下で説明するデッドロック判定処理を行うことを要旨の一つとしている。これにより、本実施形態に係るオペレーティング・システム100によれば、効率的にデッドロックを検知することが可能となる。 The process of S1002 is one of the gist of the present embodiment. That is, the gist of the operating system 100 according to the present embodiment is to perform a deadlock determination process described below for only a lock whose “attribute” is 011. Thereby, according to the operating system 100 which concerns on this embodiment, it becomes possible to detect a deadlock efficiently.
デッドロック判定処理部104は、S1002で選択されたロックdの組み合わせリストを作成する(S1003)。即ち、本実施形態においては、S1002及びS1003の処理が、実行主体選択処理ステップに相当する。ここで、ロックdの組み合わせリストとは、ロックdの「獲得待ちリスト」に格納先アドレスが登録されている実行主体の実行主体ID(以下、「実行主体δ」とする)と、実行主体δの「獲得済みリスト」に格納先アドレスが登録されているロックのロックID(以下、「ロックe」とする)と、ロックeの「獲得待ちリスト」に格納先アドレスが登録されている実行主体の実行主体ID(以下、「実行主体ε」とする)と、実行主体εの「獲得済みリスト」に格納先アドレスが登録されているロックのロックID(以下、「ロックf」とする)とがその順番通りに組み合わせ毎に登録されたリストのことである。 The deadlock determination processing unit 104 creates a combination list of the lock d selected in S1002 (S1003). That is, in the present embodiment, the processing of S1002 and S1003 corresponds to an execution subject selection processing step. Here, the combination list of the lock d is an execution subject ID (hereinafter referred to as “execution subject δ”) of an execution subject whose storage destination address is registered in the “acquisition waiting list” of the lock d, and the execution subject δ. The lock ID of the lock whose storage destination address is registered in the “acquired list” (hereinafter referred to as “lock e”) and the execution subject whose storage destination address is registered in the “acquisition waiting list” of lock e The execution subject ID (hereinafter referred to as “execution subject ε”), the lock ID of the lock whose storage destination address is registered in the “acquired list” of the execution subject ε (hereinafter referred to as “lock f”), and Is a list registered for each combination in that order.
ここで、本実施形態に係る組み合わせリストの具体的な構成について、図11及び図12を参照して説明する。図11は、本実施形態に係る有向グラフの一例を示す図である。図12は、本実施形態に係る組み合わせリストの一例を示す図である。ここで、有向グラフとは、実行主体によるロックの獲得状況及び獲得待ち状況を、方向性を持つ矢印で示すことにより構成されるグラフのことであり、実行主体からロックへの矢印は、矢印元の実行主体が矢印先のロックを獲得していることを表し、ロックから実行主体への矢印は、矢印先の実行主体が矢印元のロックを獲得待ちであることを表す。ロックdを起点とする有向グラフが図11に示すような場合、ロックdの組み合わせグラフは、図12に示すようになる。 Here, a specific configuration of the combination list according to the present embodiment will be described with reference to FIGS. 11 and 12. FIG. 11 is a diagram illustrating an example of a directed graph according to the present embodiment. FIG. 12 is a diagram showing an example of the combination list according to the present embodiment. Here, the directed graph is a graph configured by indicating the lock acquisition status and the acquisition wait status by the execution subject with arrows having directionality, and the arrow from the execution subject to the lock is the source of the arrow. The execution subject indicates that the arrow-destination lock has been acquired, and the arrow from the lock to the execution subject indicates that the arrow-destination execution subject is waiting to acquire the arrow-source lock. When the directed graph starting from the lock d is as shown in FIG. 11, the combination graph of the lock d is as shown in FIG.
デッドロック判定処理部104は、S1003で作成したロックdの組み合わせリストから選択済みフラグがたっていない組み合わせを一組選択して(S1004)、その組み合わせに選択済みフラグをたて(S1005)、ロックdと、S1004で選択した組み合わせにおけるロックfとが同一であるか否かを判断する(S1006)。即ち、本実施形態においては、S1006の処理が、獲得待機状態判断処理ステップに相当する。 The deadlock determination processing unit 104 selects one combination for which the selected flag is not set from the combination list of lock d created in S1003 (S1004), sets a selected flag for the combination (S1005), and sets the lock d. And whether or not the lock f in the combination selected in S1004 is the same (S1006). That is, in the present embodiment, the process of S1006 corresponds to an acquisition standby state determination process step.
デッドロック判定処理部104は、S1006の判断処理において、ロックdとロックfとが同一であると判断した場合には(S1006/YES)、S1004で選択した組み合わせにおいてデッドロックが発生し、ロックd(=ロックf)がデッドロックを引き起こしていると判定して(S1007)、ロックd(=ロックf)の「属性」を101に更新する(S1008)。即ち、本実施形態においては、S1007の処理が、実行停止判定処理ステップに相当する。 When the deadlock determination processing unit 104 determines that the lock d and the lock f are the same in the determination processing in S1006 (S1006 / YES), a deadlock occurs in the combination selected in S1004, and the lock d It is determined that (= lock f) is causing a deadlock (S1007), and the “attribute” of lock d (= lock f) is updated to 101 (S1008). That is, in this embodiment, the process of S1007 corresponds to an execution stop determination process step.
ここで、S1004で選択された組み合わせでデッドロックが発生していると判定されたとき(S1006/YES)の有向グラフを図13に示す。図13は、本実施形態に係る有向グラフの一例を示す図である。図13に示すように、デッドッロックが発生した場合、その有向グラフにおいてループが形成される。これはつまり、デッドロックが発生しているか否かの判定処理(S1006)は、有向グラフにおいてループが形成されているか否かを判定するための処理に相当することを意味する。 Here, FIG. 13 shows a directed graph when it is determined that a deadlock has occurred in the combination selected in S1004 (S1006 / YES). FIG. 13 is a diagram illustrating an example of a directed graph according to the present embodiment. As shown in FIG. 13, when a deadlock occurs, a loop is formed in the directed graph. This means that the process of determining whether or not a deadlock has occurred (S1006) corresponds to the process of determining whether or not a loop is formed in the directed graph.
一方、デッドロック判定処理部104は、S1006の判断処理において、ロックdとロックfとが同一ではないと判断した場合には(S1007/NO)、S1004で選択した組み合わせではデッドロックが発生しておらず、ロックdはデッドロックを引き起こしていないと判定して(S1009)、ロックdの組み合わせリストから全ての組み合わせを選択したか否かを判断する(S1010)。 On the other hand, if the deadlock determination processing unit 104 determines that the lock d and the lock f are not the same in the determination process of S1006 (S1007 / NO), a deadlock occurs in the combination selected in S1004. Otherwise, it is determined that lock d has not caused a deadlock (S1009), and it is determined whether all combinations have been selected from the combination list of lock d (S1010).
デッドロック判定処理部104は、S1010の判断処理において、ロックdの組み合わせリストから全ての組み合わせを選択していないと判断した場合には(S1010/NO)、S1004以降の処理と同様の処理を行い、ロックdの組み合わせリストから全ての組み合わせを選択したと判断した場合には(S1010/NO)、ロックdの「属性」を110に更新する(S1011)。 When the deadlock determination processing unit 104 determines that not all combinations have been selected from the combination list of lock d in the determination processing of S1010 (S1010 / NO), the deadlock determination processing unit 104 performs the same processing as the processing after S1004. If it is determined that all combinations have been selected from the combination list of lock d (S1010 / NO), the “attribute” of lock d is updated to 110 (S1011).
デッドロック判定処理部104は、ロックdの「属性」を更新すると、ロック600に「属性」が011のロックがあるか否かを判断する(S1012)。デッドロック判定処理部104は、S1012の判断処理において、「属性」が011のロックがあると判断した場合には(S1012/YES)、S1002以降の処理と同様の処理を行い、ロック600に「属性」が011のロックがないと判断した場合には(S1012/NO)、デバッグ情報出力処理部105にデッドロック検知処理が完了したことを通知し(S1013)、デッドロック判定処理を終了する。 When the “attribute” of the lock d is updated, the deadlock determination processing unit 104 determines whether or not the lock 600 has a lock whose “attribute” is 011 (S1012). When the deadlock determination processing unit 104 determines that there is a lock whose “attribute” is 011 in the determination processing of S1012 (S1012 / YES), the deadlock determination processing unit 104 performs the same processing as the processing from S1002 onward. If it is determined that there is no lock whose attribute is 011 (S1012 / NO), the debug information output processing unit 105 is notified that the deadlock detection process is completed (S1013), and the deadlock determination process is terminated.
このように、本実施形態に係るオペレーティング・システム100は、デッドロック判定処理において、一の実行主体に獲得されており、かつ、他の実行主体から獲得待ちされているロックであって、上記一の実行主体に獲得されてから所定時間経過しても上記他の実行主体に獲得されていないロックのみを対象として、デッドロックを引き起こしているか否かを判定することを要旨の一つとしている。これにより、本実施形態に係るオペレーティング・システム100によれば、効率的にデッドロックを検知することが可能となる。 As described above, the operating system 100 according to the present embodiment is a lock that has been acquired by one execution entity and is waiting to be acquired by another execution entity in the deadlock determination process. It is one of the gist to determine whether or not a deadlock has been caused only for the lock that has not been acquired by the other execution entity even after a predetermined time has elapsed since it was acquired by the execution entity. Thereby, according to the operating system 100 which concerns on this embodiment, it becomes possible to detect a deadlock efficiently.
次に、本実施形態に係るオペレーティング・システム100がデバッグ情報出力処理を行う際の処理について、図14を参照して説明する。図14は、本実施形態に係るオペレーティング・システム100がデバッグ情報出力処理を行う際の処理を説明するためのフローチャートである。 Next, processing when the operating system 100 according to the present embodiment performs debug information output processing will be described with reference to FIG. FIG. 14 is a flowchart for explaining processing when the operating system 100 according to the present embodiment performs debug information output processing.
図14に示すように、本実施形態に係るオペレーティング・システム100がデバッグ情報出力処理を行う際にはまず、デバッグ情報出力処理部105は、デッドロック判定処理部104からデッドロック判定処理が完了したことを通知されると(S1401)、ロック600から「属性」が101のロックを一つ選択する(S1402)。以下では、ここで選択されたロックをロックkとする。 As shown in FIG. 14, when the operating system 100 according to the present embodiment performs the debug information output process, the debug information output process unit 105 first completes the deadlock determination process from the deadlock determination process unit 104. When this is notified (S1401), one lock whose "attribute" is 101 is selected from the lock 600 (S1402). Hereinafter, the lock selected here is referred to as a lock k.
デバッグ情報出力処理部105は、S1402で選択されたロックkの「格納先アドレス」、「獲得主」、「獲得時刻」、「関数戻りアドレス」(以下、総称して「デバッグ情報」とする)をLCD60等の表示部に出力し、若しくは、HDD40等の不揮発性の記憶媒体に出力する(S1403)。即ち、本実施形態においては、S1403の処理が、実行過程情報出力処理ステップに相当する。 The debug information output processing unit 105 stores the “storage destination address”, “acquirer”, “acquisition time”, and “function return address” (hereinafter collectively referred to as “debug information”) of the lock k selected in S1402. Is output to a display unit such as the LCD 60 or to a non-volatile storage medium such as the HDD 40 (S1403). That is, in the present embodiment, the process of S1403 corresponds to an execution process information output process step.
このS1402、S1403の一連の処理が、本実施形態における他の要旨の一つである。即ち、本実施形態に係るオペレーティング・システム100は、デッドロックが発生すると、デッドロックに陥った過程を自動的に出力することを他の要旨の一つとしている。これにより、本実施形態に係るオペレーティング・システム100によれば、ユーザは、デッドロックに陥った原因を容易に解析することができ、また、デッドロックに陥った際の情報をいつでも取り出すことができ、いつでもどこでも容易にデバッグを行うことが可能となる。 A series of processes of S1402 and S1403 is one of other gist in the present embodiment. That is, the operating system 100 according to the present embodiment has one of the other gist that automatically outputs a process that has fallen into a deadlock when a deadlock occurs. As a result, according to the operating system 100 according to the present embodiment, the user can easily analyze the cause of the deadlock and can always retrieve the information at the time of the deadlock. , You can easily debug anytime and anywhere.
デバッグ情報出力処理部105は、ロックkの「属性」を111に更新し(S1404)、ロック600に「属性」が101のロックがあるか否かを判断する(S1405)。デバッグ情報出力処理部105は、S1405の判断処理において、ロック600に「属性」が101のロックがあると判断した場合には(S1405/YES)、S1403以降の処理と同様の処理を行い、「属性」が101のロックがないと判断した場合には(S1405/NO)、そのまま、デバッグ情報出力処理を終了する。 The debug information output processing unit 105 updates the “attribute” of the lock k to 111 (S1404), and determines whether or not the lock 600 has a lock whose “attribute” is 101 (S1405). If the debug information output processing unit 105 determines in the determination process of S1405 that the lock 600 has a lock whose “attribute” is 101 (S1405 / YES), the debug information output processing unit 105 performs the same process as the process after S1403. If it is determined that there is no lock of “attribute” 101 (S1405 / NO), the debug information output process is terminated as it is.
以上、説明したように、本実施形態に係る要旨の一つは、デッドロック判定処理において、一の実行主体に獲得されており、かつ、他の実行主体から獲得待ちされているロックであって、上記一の実行主体に獲得されてから所定時間経過しても上記他の実行主体に獲得されていないロックのみを対象として、デッドロックを引き起こしているか否かを判定することにある。これにより、本実施形態に係るオペレーティング・システム100によれば、効率的にデッドロックを検知することが可能となる。 As described above, one of the gist according to the present embodiment is a lock that has been acquired by one execution subject and is waiting to be acquired by another execution subject in the deadlock determination process. In other words, it is determined whether or not a deadlock is caused only for a lock that has not been acquired by the other execution entity even after a predetermined time has elapsed since it was acquired by the one execution entity. Thereby, according to the operating system 100 which concerns on this embodiment, it becomes possible to detect a deadlock efficiently.
尚、本実施形態においては、情報処理装置にインストールされて使用されるオペレーティング・システムを例にして説明したが、これに限らず、複数の実行主体がそれぞれ同一の複数の情報資源にアクセスするプログラムであれば、どのようなプログラムでも適用可能である。 In this embodiment, the operating system installed and used in the information processing apparatus has been described as an example. However, the present invention is not limited to this, and a program that allows multiple execution entities to access the same multiple information resources. Any program can be applied.
また、本実施形態においては、図10〜図13において説明したように、「実行主体δ→ロックe→実行主体ε→ロックf」といったように、実行主体が2個、ロックが2個であるような組み合わせリストを作成し、そのときの有向グラフにおいてループが形成されているか否かを判断する例について説明した。この他、図15に示すように、実行主体3個、ロック3個で組み合わされる組み合わせリストを作成し、そのときの有向グラフにおいてループが形成されているか否かを判断するように構成されていても良い。図14は、本実施形態に係る組み合わせリストの一例を示す図である。 In this embodiment, as described in FIGS. 10 to 13, there are two execution entities and two locks, such as “execution entity δ → lock e → execution entity ε → lock f”. An example of creating such a combination list and determining whether or not a loop is formed in the directed graph at that time has been described. In addition, as shown in FIG. 15, a combination list composed of three execution subjects and three locks may be created, and it may be configured to determine whether or not a loop is formed in the directed graph at that time. good. FIG. 14 is a diagram showing an example of the combination list according to the present embodiment.
このような構成の場合、図15に示すように、組み合わせリストには、図10で説明した実行主体δ、ロックe、実行主体ε、ロックfの他に、ロックfの「獲得待ちリスト」に格納先アドレスが登録されている実行主体の実行主体ID(以下、「実行主体λ」とする)と、実行主体λの「獲得済みリスト」に登録されているロックのロックID(以下、「ロックg」とする)とがその順番通りに登録される。また、このような構成の場合、デッドロックが発生すると、例えば、ロックgと、図10で説明したロックdとが同一となり、有向グラフにおいて図16に示すようなループが形成される。図16は、本実施形態に係る有向グラフの一例を示す図である。 In the case of such a configuration, as shown in FIG. 15, in the combination list, in addition to the execution subject δ, lock e, execution subject ε, and lock f described in FIG. The execution subject ID of the execution subject whose storage address is registered (hereinafter referred to as “execution subject λ”) and the lock ID of the lock registered in the “acquired list” of the execution subject λ (hereinafter referred to as “lock”). g ”) are registered in that order. In such a configuration, when a deadlock occurs, for example, the lock g and the lock d described in FIG. 10 are the same, and a loop as shown in FIG. 16 is formed in the directed graph. FIG. 16 is a diagram illustrating an example of the directed graph according to the present embodiment.
さらに、この他、図17に示すように、さらに多くの実行主体とロックとで組み合わされる組み合わせリストを作成し、そのときの有向グラフにおいてループが形成されているか否かを判断するように構成されていても良い。図17は、本実施形態に係る組み合わせリストの一例を示す図である。 In addition, as shown in FIG. 17, a combination list that is combined with more execution subjects and locks is created, and it is configured to determine whether or not a loop is formed in the directed graph at that time. May be. FIG. 17 is a diagram showing an example of the combination list according to the present embodiment.
このような構成の場合、組み合わせリストは、図17に示すようになり、このような組み合わせリストにおいてデッドロックが発生すると、例えば、有向グラフにおいて図17に示すようなループが形成される。図18は、本実施形態に係る有向グラフの一例を示す図である。 In the case of such a configuration, the combination list is as shown in FIG. 17, and when a deadlock occurs in such a combination list, for example, a loop as shown in FIG. 17 is formed in the directed graph. FIG. 18 is a diagram illustrating an example of a directed graph according to the present embodiment.
尚、このように2個以上の実行主体とロックとにおける有向グラフにおいてループが形成されるときというのは、図17に示した組み合わせリストを例に挙げると、実行主体δ、実行主体ε、実行主体λ、・・・、実行主体μ、・・・、実行主体νがそれぞれ獲得しているロックe、ロックf、ロックg、・・・、ロックm、・・・、ロックnのうち、自身の獲得しているロックを除く他のロックの少なくともいずれかのロックの獲得を、実行主体δ、実行主体ε、実行主体λ、・・・、実行主体μ、・・・、実行主体νがそれぞれ試み、ロックe、ロックf、ロックg、・・・、ロックm、・・・、ロックnがそれぞれ実行主体δ、実行主体ε、実行主体λ、・・・、実行主体μ、・・・、実行主体νの少なくともいずれかにより獲得待ち状態となるときである。 Note that when a loop is formed in a directed graph of two or more execution subjects and locks, the combination subject shown in FIG. 17 is taken as an example, execution subject δ, execution subject ε, execution subject. ,..., execution subject μ,..., lock e, lock f, lock g,..., lock m,. The execution subject δ, the execution subject ε, the execution subject λ,..., The execution subject μ,..., And the execution subject ν each attempt to acquire at least one of the locks other than the acquired lock. , Lock e, lock f, lock g,..., Lock m,..., Lock n are execution subject δ, execution subject ε, execution subject λ,. Waiting for acquisition by at least one of the subjects ν Is Ki.
1 情報処理装置
10 CPU
20 RAM
30 ROM
40 HDD
50 I/F
60 LCD
70 操作部
80 バス
100 オペレーティング・システム
101 ロック獲得処理部
102 ロック解放処理部
103 デッドロック可能性判定処理部
104 デッドロック判定処理部
105 デバッグ情報出力処理部
106 実行主体管理部
107 情報資源管理部
108 ロック管理部
200 タイマ
300 スタック
400 実行主体
500 情報資源
600 ロック
1 Information processing device 10 CPU
20 RAM
30 ROM
40 HDD
50 I / F
60 LCD
DESCRIPTION OF SYMBOLS 70 Operation part 80 Bus 100 Operating system 101 Lock acquisition process part 102 Lock release process part 103 Deadlock possibility determination process part 104 Deadlock determination process part 105 Debug information output process part 106 Execution subject management part 107 Information resource management part 108 Lock management unit 200 Timer 300 Stack 400 Execution entity 500 Information resource 600 Lock
Claims (6)
第一の実行主体が前記情報資源へのアクセス占有権を獲得した後、前記第一の実行主体が前記情報資源へのアクセス占有権を獲得している状態において前記情報資源へのアクセス占有権の獲得を試みた第二の実行主体が、所定のタイミングまでに前記第一のアクセス占有権を獲得したか否かを判断するアクセス占有権獲得判断処理ステップと、
前記第二の実行主体が前記所定のタイミングまでに前記情報資源へのアクセス占有権を獲得していないと判断された場合に、前記第一の実行主体と前記第二の実行主体とを含む複数の実行主体を選択する実行主体選択処理ステップと、
選択された前記複数の実行主体が獲得しているアクセス占有権のうち、自身の獲得しているアクセス占有権を除く他のアクセス占有権の少なくとも何れかのアクセス占有権の獲得を、前記複数の実行主体それぞれが試み、前記複数の実行主体が獲得しているアクセス占有権それぞれが、前記複数の実行主体の少なくとも何れかにより獲得を待たれている獲得待ち状態であるか否かを判断する獲得待機状態判断処理ステップと、
前記獲得待ち状態であると判断された場合に、前記情報処理が実行途中で停止していると判定する実行停止判定処理ステップと、
を実行することを特徴とする排他制御プログラム。 Only for one execution entity among the execution entities that have attempted to acquire an access occupancy right that is a right for exclusive access to information resources that can be accessed in common by a plurality of execution entities executing information processing When an access occupancy right is acquired and access to the information resource from the one execution entity is completed, the one execution entity releases the access occupancy right so that only the one execution entity makes the information resource An exclusive control program for controlling to access exclusively
After the first execution entity acquires the access exclusive right to the information resource, the access exclusive right to the information resource is acquired in the state where the first execution entity has acquired the access exclusive right to the information resource. An access occupancy right acquisition determination processing step for determining whether or not the second execution subject who has attempted acquisition acquires the first access occupancy right by a predetermined timing;
A plurality including the first execution entity and the second execution entity when it is determined that the second execution entity has not acquired the right to occupy the information resource by the predetermined timing. An execution subject selection processing step of selecting an execution subject of
Acquisition of at least one of the other access occupancy rights excluding the access occupancy right acquired among the access occupancy rights acquired by the plurality of selected execution entities, An acquisition in which each execution entity tries to determine whether each of the access occupancy rights acquired by the plurality of execution entities is in an acquisition waiting state waiting for acquisition by at least one of the plurality of execution entities A standby state determination processing step;
An execution stop determination processing step for determining that the information processing is stopped in the middle of execution when it is determined that the state is waiting for acquisition;
The exclusive control program characterized by executing.
前記獲得待機状態処理ステップは、選択された前記第一の実行主体がアクセス占有権の獲得を試みた情報資源が、選択された前記第二の実行主体がアクセス占有権を獲得している情報資源と同一であるか否かを判断するステップを実行することを特徴とする請求項1に記載の排他制御プログラム。 The execution subject selection processing step includes the first execution subject and the second execution subject when it is determined that the second execution subject has not acquired the access exclusive right to the information resource by the predetermined timing. Execute a step of selecting a second execution subject,
In the acquisition waiting state processing step, the information resource that the selected first execution entity attempted to acquire the access exclusive right is the information resource that the selected second execution entity has acquired the access exclusive right. The exclusive control program according to claim 1, wherein a step of determining whether or not the same is executed is executed.
第一の実行主体が情報資源へのアクセス占有権を獲得した後、前記第一の実行主体が前記情報資源へのアクセス占有権を獲得している状態において前記情報資源へのアクセス占有権の獲得を試みた第二の実行主体が、所定のタイミングまでに前記第一のアクセス占有権を獲得したか否かを判断し、
前記第二の実行主体が前記所定のタイミングまでに前記情報資源へのアクセス占有権を獲得していないと判断された場合に、前記第一の実行主体と前記第二の実行主体とを含む複数の実行主体を選択し、
選択された前記複数の実行主体が獲得しているアクセス占有権のうち、自身の獲得しているアクセス占有権を除く他のアクセス占有権の少なくとも何れかのアクセス占有権の獲得を、前記複数の実行主体それぞれが試み、前記複数の実行主体が獲得しているアクセス占有権それぞれが、前記複数の実行主体の少なくとも何れかにより獲得を待たれている獲得待ち状態であるか否かを判断し、
前記獲得待ち状態であると判断された場合に、前記情報処理が実行途中で停止していると判定することを特徴とする排他制御方法。 Only for one execution entity among the execution entities that have attempted to acquire an access occupancy right that is a right for exclusive access to information resources that can be accessed in common by a plurality of execution entities executing information processing When an access occupancy right is acquired and access to the information resource from the one execution entity is completed, the one execution entity releases the access occupancy right so that only the one execution entity makes the information resource An exclusive control method for controlling to access exclusively
Acquiring access right to the information resource in a state where the first execution body has acquired the access right to the information resource after the first executing body has acquired the right to access to the information resource. Determining whether the second execution subject who tried to acquire the first access occupancy right by a predetermined timing;
A plurality including the first execution entity and the second execution entity when it is determined that the second execution entity has not acquired the right to occupy the information resource by the predetermined timing. Select the execution subject of
Acquisition of at least one of the other access occupancy rights excluding the access occupancy right acquired among the access occupancy rights acquired by the plurality of selected execution entities, Each execution entity tries and determines whether each of the access occupancy rights acquired by the plurality of execution entities is in an acquisition wait state waiting for acquisition by at least one of the plurality of execution entities,
An exclusive control method comprising: determining that the information processing is stopped during execution when it is determined that the state is waiting for acquisition.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013211036A JP6263940B2 (en) | 2013-10-08 | 2013-10-08 | Exclusive control program, information processing apparatus, exclusive control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013211036A JP6263940B2 (en) | 2013-10-08 | 2013-10-08 | Exclusive control program, information processing apparatus, exclusive control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015075871A true JP2015075871A (en) | 2015-04-20 |
JP6263940B2 JP6263940B2 (en) | 2018-01-24 |
Family
ID=53000698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013211036A Expired - Fee Related JP6263940B2 (en) | 2013-10-08 | 2013-10-08 | Exclusive control program, information processing apparatus, exclusive control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6263940B2 (en) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01140250A (en) * | 1987-11-26 | 1989-06-01 | Nec Corp | Deadlock information collecting system |
JPH06337798A (en) * | 1993-03-30 | 1994-12-06 | Fujitsu Ltd | Deadlock detecting device |
JPH0816430A (en) * | 1994-06-27 | 1996-01-19 | Mitsubishi Electric Corp | Parallel program tracing device |
JPH08137707A (en) * | 1994-11-04 | 1996-05-31 | Fujitsu Ltd | Distributed transaction processing system |
JPH0926888A (en) * | 1995-07-13 | 1997-01-28 | Hitachi Ltd | Exclusive controller |
JPH09223030A (en) * | 1996-02-14 | 1997-08-26 | Nec Corp | Exclusive control method and equipment therefor |
JPH09251413A (en) * | 1996-03-18 | 1997-09-22 | Hitachi Ltd | Lock controller and method therefor |
JPH1021098A (en) * | 1996-06-29 | 1998-01-23 | Nec Corp | Exclusive control unit |
JP2001166953A (en) * | 1999-12-06 | 2001-06-22 | Nec Ic Microcomput Syst Ltd | Dead lock detecting method |
JP2009251871A (en) * | 2008-04-04 | 2009-10-29 | Nec Corp | Contention analysis device, contention analysis method, and program |
WO2010038280A1 (en) * | 2008-10-01 | 2010-04-08 | 富士通株式会社 | Virtual machine system and deadlock release method |
JP2012043148A (en) * | 2010-08-18 | 2012-03-01 | Fuji Xerox Co Ltd | Monitoring device and monitoring program |
-
2013
- 2013-10-08 JP JP2013211036A patent/JP6263940B2/en not_active Expired - Fee Related
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01140250A (en) * | 1987-11-26 | 1989-06-01 | Nec Corp | Deadlock information collecting system |
JPH06337798A (en) * | 1993-03-30 | 1994-12-06 | Fujitsu Ltd | Deadlock detecting device |
JPH0816430A (en) * | 1994-06-27 | 1996-01-19 | Mitsubishi Electric Corp | Parallel program tracing device |
US5835766A (en) * | 1994-11-04 | 1998-11-10 | Fujitsu Limited | System for detecting global deadlocks using wait-for graphs and identifiers of transactions related to the deadlocks in a distributed transaction processing system and a method of use therefore |
JPH08137707A (en) * | 1994-11-04 | 1996-05-31 | Fujitsu Ltd | Distributed transaction processing system |
JPH0926888A (en) * | 1995-07-13 | 1997-01-28 | Hitachi Ltd | Exclusive controller |
JPH09223030A (en) * | 1996-02-14 | 1997-08-26 | Nec Corp | Exclusive control method and equipment therefor |
JPH09251413A (en) * | 1996-03-18 | 1997-09-22 | Hitachi Ltd | Lock controller and method therefor |
JPH1021098A (en) * | 1996-06-29 | 1998-01-23 | Nec Corp | Exclusive control unit |
JP2001166953A (en) * | 1999-12-06 | 2001-06-22 | Nec Ic Microcomput Syst Ltd | Dead lock detecting method |
JP2009251871A (en) * | 2008-04-04 | 2009-10-29 | Nec Corp | Contention analysis device, contention analysis method, and program |
WO2010038280A1 (en) * | 2008-10-01 | 2010-04-08 | 富士通株式会社 | Virtual machine system and deadlock release method |
JP2012043148A (en) * | 2010-08-18 | 2012-03-01 | Fuji Xerox Co Ltd | Monitoring device and monitoring program |
Also Published As
Publication number | Publication date |
---|---|
JP6263940B2 (en) | 2018-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10346381B2 (en) | Atomic update operations in a data storage system | |
US9632919B2 (en) | Request change tracker | |
JP5677029B2 (en) | Data migration system, data migration method, program | |
US20190042238A1 (en) | Managing an issue queue for fused instructions and paired instructions in a microprocessor | |
WO2018066040A1 (en) | Management computer and test environment determination method | |
US20150143327A1 (en) | Project management tool | |
TWI488120B (en) | Method and computer-readable storage medium for debugging transaction | |
US8286087B1 (en) | Active route validation in workflow process authoring | |
US20170364542A1 (en) | Sensor module registration and configuration | |
US9697102B2 (en) | Compare concurrent threads executions | |
US11593130B2 (en) | Systems and methods for customizing a user workspace environment using action sequence analysis | |
CN108509460B (en) | Data consistency checking in distributed systems | |
US20160292154A1 (en) | Methods and Apparatuses for Providing Document Workflow Management | |
JP6263940B2 (en) | Exclusive control program, information processing apparatus, exclusive control method | |
JP2018508865A (en) | Application event tracking | |
US10579441B2 (en) | Detecting deadlocks involving inter-processor interrupts | |
US10248534B2 (en) | Template-based methodology for validating hardware features | |
EP3905020A1 (en) | Electronic device, method, and computer-readable medium for switchable bar region of user interface | |
JP2008305021A (en) | Information processor and application management method | |
US11068250B2 (en) | Crowdsourced API resource consumption information for integrated development environments | |
US9529487B1 (en) | Method of providing fast switching to web apps | |
Biancheri et al. | Fine-grained multilayer virtualized systems analysis | |
TWI610241B (en) | Durable program execution | |
JP6555908B2 (en) | Information processing apparatus, control method therefor, and program | |
JP5996094B2 (en) | Virtual machine image management server and virtual machine image management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170711 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170908 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171017 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171107 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20171121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171204 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6263940 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |