WO1999056208A1 - Procede de controle de programme, machine de traitement des donnees et support d'enregistrement - Google Patents
Procede de controle de programme, machine de traitement des donnees et support d'enregistrement Download PDFInfo
- Publication number
- WO1999056208A1 WO1999056208A1 PCT/JP1999/001656 JP9901656W WO9956208A1 WO 1999056208 A1 WO1999056208 A1 WO 1999056208A1 JP 9901656 W JP9901656 W JP 9901656W WO 9956208 A1 WO9956208 A1 WO 9956208A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- timer
- stopped
- data processing
- control
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Definitions
- the present invention relates to a program control method, a data processing device, and a storage medium.
- the present invention relates to a program control method, a data processing device, and a storage medium, and in particular, to a program control method for executing a plurality of tasks in a time-sharing manner, a data processing device using such a program control method, and
- the present invention relates to a storage medium which can store a program for causing a data processing device to perform such program control and which can be read by a computer.
- a data processing device such as a printing device is provided with a protocol control unit for transmitting and receiving information according to a protocol. No problem arises when such a printing device supports a single protocol, but when a plurality of protocols are supported, a plurality of protocol controllers corresponding to these protocols must communicate with each other. Mediation will need to be performed.
- the plurality of protocol control units can be operated in parallel.
- general operating systems (monitors) do not support the ability to execute multiple tasks simultaneously. For this reason, operations that do not support the function of executing multiple tasks simultaneously
- it was necessary to take measures such as assigning priorities to tasks and executing the tasks according to the priorities.
- the high-priority task continued to be executed, the low-priority task could not be executed, which was not suitable for real-time processing.
- FIG. 1 is a diagram for explaining a conventional program control method that enables real-time processing when a printer device supports a first task and a second task.
- the operating system instructs task switching at the timing shown in FIG.
- the first task is executed only during the high level (H) period in FIG. 11A
- the second task is executed only during the high level (H) period in FIG.
- the first task and the second task are executed in a time-sharing manner. No tasks are performed during the low-level (L) period.
- the task switching timing is controlled by the operating system, so that there is a problem that the priority cannot be set between the first task and the second task.
- the task switching timing is controlled by the operating system, so if the number of tasks is further increased to 3 or more, for example, by increasing the number of protocols supported by the device, the execution time will be evenly distributed.
- Other controls were very complicated and required changes to the operating system itself, which was not realistic. Disclosure of the invention
- Still another object of the present invention is a program control method for executing a first task and a second task having a lower priority than the first task under the control of an operating system. Under the control, the second task is controlled to be in a stopped state during the execution of the first task, and the second task is executed while the first task is stopped, whereby the first task is executed.
- An object of the present invention is to provide a program control method including a step of executing a task and the second task in a time-division manner, and a control step of controlling the stop timing of the first task.
- a plurality of tasks are time-divided by prioritizing the plurality of tasks and switching the plurality of tasks at an arbitrary timing without changing the operating system.
- the control step includes: setting a timer; periodically transmitting a signal to the first task by the timer; controlling the first task to a stop state in response to the signal transmission; The stopped first task may be returned to the operating state based on the timer exit function of the task.
- the interval of the periodic signal transmission of the first task by the timer may be set longer than the time during which the first task is continuously stopped.
- the timer and the exit function may be variably set.
- the first task may have the highest priority among a plurality of tasks including the second task.
- Means for setting a timer means for periodically transmitting a signal to the first task by the timer; and controlling the first task to a stop state in response to the signal transmission. It may be configured to include means and means for returning the stopped first task to an operation state based on an exit function of the first task.
- the interval of the periodic signal transmission of the first task by the evening task may be set longer than the time during which the first task is continuously stopped.
- the first task may have the highest priority among a plurality of tasks including the second task.
- a data processor configured to receive a request according to a first protocol and a second protocol different from the first protocol via a network, and to control transmission and reception of information via the network; And the first and second tasks may correspond to the first and second protocols, respectively.
- the data processing device may further include an output device that outputs information based on the first and second tasks.
- Still another object of the present invention is to control a second task to be in a stopped state while the first task is lower in priority than the first task during execution of the first task, under the control of the operating system,
- a computer that stores a program that controls a data processing device that executes the first task and the second task in a time-division manner by executing the second task while the first task is stopped. It is an object of the present invention to provide a readable storage medium storing a program for causing the data processing device to function as control means for controlling the stop timing of the first task.
- a plurality of tasks are time-divisionally switched by giving a priority to a several task and switching a plurality of tasks at an arbitrary timing, without changing an operating system. It becomes executable.
- the control means causes the data processing device to set a timer, causes the first task to periodically transmit a signal by the timer, and responds to the signal transmission. Then, the first task may be controlled to a stop state, and the stopped first task may be returned to an operation state based on a timer exit function of the first task.
- the interval of the periodic signal transmission of the first task by the evening task may be set longer than the time during which the first task is continuously stopped.
- the timer and the exit function may be variably set.
- FIG. 2 is a diagram showing a task execution timing for explaining the operation principle of the present invention
- FIG. 3 is a diagram showing a network system to which a program control method, a data processing device, and a storage medium according to the present invention can be applied;
- FIG. 4 is a block diagram showing an embodiment of the printer device.
- Figure 5 is a diagram explaining the configuration of the task
- FIG. 6 is a diagram illustrating task switching in the embodiment
- FIG. 7 is a flowchart illustrating the processing of the signal exit function and the timer exit function.
- FIG. 8 is a flowchart illustrating the task switching processing of the operating system.
- FIG. 9 is a diagram for explaining a state table managed by the operating system. BEST MODE FOR CARRYING OUT THE INVENTION
- FIG. 2 is a diagram illustrating execution timings of a first task corresponding to the first protocol and a second task corresponding to the second protocol and having a lower priority than the first task.
- the second task is controlled to be stopped (hereinafter referred to as “paused”) while the first task is being executed.
- the first task and the second task are executed in a time-sharing manner by executing the second task while the first task is stopped (hereinafter referred to as dormant).
- the first task controls its own sleep timing.
- the sleep timing of the first task is controlled by the first task without direct control by the operating system, and the second task can be executed during the sleep of the first task.
- the second task is a task other than the first task, it does not need to support the second protocol.
- FIG. 3 is a diagram showing a network system to which a program control method, a data processing device, and a storage medium according to the present invention can be applied.
- a first LAN is connected to a plurality of computers 2-1 to 2-3 such as personal computers and a plurality of printers 3-1 and 3-2.
- the printer devices 3-1 and 3-2 are provided as output devices, and the printer device 3-1 is connected to the first lan 1 via the lan adapter 3-1a.
- — 2 is connected to the first LAN 1 through computer 2 — 2.
- the first lan 1 is connected to the second lan 5 via the gateway 4.
- information is exchanged between computers 2-1 to 2-3 connected to the same first LAN 1, and computers 2-1 to 2-3 and the second LAN are connected to each other.
- Information can be exchanged with a computer (not shown) connected to the AN via the gateway 4.
- the printer device 3-1 the computer connected to the first LAN 1 receives and prints information from the computer 2-1, 2-3, and the computer connected to the second LAN 1. From the gateway 4 and the first LAN 1 and print the information.
- the computers 2-1 and 2- 3 and the information from the computer etc. connected to the second LAN via the gateway 4, the first LAN 1 and the computer 3-2, and print, or directly receive the information from the combination 3-2 And print it out.
- FIG. 4 is a block diagram showing an embodiment of the printer device.
- the figure shows the pudding apparatus 3-1.
- the printer 3-1 constitutes one embodiment of the data processing device according to the present invention, and employs one embodiment of the program control method according to the present invention.
- the printer device 3-1 has a CPU 11, a memory 12, an RO 13, a timer unit 14, a LAN control unit 15 and a printing unit 16 connected to a bus 17. Consists of
- the CPU 11 is provided to control the operation of the entire printer device 3-1.
- the memory 12 is provided to store programs executed by the CPU 11, intermediate data of operations executed by the CPU 11, data obtained by expanding received data to be printed by the printing unit 16, and the like.
- the program stored in the memory 12 can be installed at any time.
- the ROM 13 stores in advance a program executed by the CPU 11 including a boot-up program and the like.
- the timer section 14 is provided to generate signal exchange timings other than the timing generated by the internal timer in the CPU 11 (for example, the timer in the operating system).
- the LAN control unit 15 performs control necessary for transmitting and receiving information via the first LAN 1 under the control of the CPU 11, and in this embodiment, the LAN adapter 3-1a is connected for convenience. Assume that it is built-in.
- the printing unit 16 includes a well-known printer engine and a well-known printing mechanism, and prints information on a recording medium such as paper under the control of the CPU 11.
- the LAN controller 15 does not have the LAN adapter 3-la, and instead of directly connecting to the first LAN 1, the first through the computer 2-2. Connected to LAN 1.
- the computers 2-1 to 2-3 are data processing devices like the printer devices 3-1 and 3-2, so the basic configuration is the same as that of the printer device 3-1 shown in FIG. However, in the case of the computers 2-1 to 2-3, the printing unit 16 is not provided.
- the computer 2-1 to 2-3 and the pudding device 3-1 and 3-2 are It is needless to say that the present invention is not limited to such a configuration, and that a computer and a printing apparatus having various well-known configurations may be used.
- each data processing device connected to the first LAN 1 supports a plurality of different protocols.
- each data processing device connected to the first LAN 1 supports a first protocol and a second protocol different from the first protocol, and The operation when the processing device is the printer device 3-1 will be described as an example.
- the first protocol is, for example, IPXZSPX (for example, known as the product Netwar by Novell 1)
- the second protocol is, for example, TCPZIP.
- IPXZSPX for example, known as the product Netwar by Novell 1
- TCPZIP TCPZIP
- the operating system used in this embodiment can execute only one task at a time. That is, under the control of the operating system, the CPU 11 executes the first task TSK1 corresponding to the first protocol, or executes the second task TSK2 corresponding to the second protocol. While the first task TSK1 is executing, the second task TSK2 cannot be executed, and while the second task TSK2 is executing, the first task TSK1 cannot be executed.
- the second task TSK2 does not need to support the second protocol as long as it is a task other than the first task TSK1.
- the first task TSK 1 is composed of an execution unit 21-1 and an interrupt unit 22-11
- the second task TSK 2 is composed of an execution unit 21-2 and an interrupt unit 22-2.
- Consists of The execution units 21-1 and 21-2 execute processing corresponding to the tasks, respectively, and the interrupt units 22-1 and 22-2 execute the interrupt processing, respectively.
- Interrupts include hardware-to-software interrupts and software-to-software / hardware interrupts. Generally, the latter, that is, the data exchange using the interrupt units 22-1, 22-2, is called signal communication.
- FIG. 6 is a diagram for explaining task switching in this embodiment.
- a first protocol initialization routine 31 which is a program for generating a task based on an instruction from the operating system is started, a signal exit function is registered and a timer section is registered. 14 The timer of 4 is set and started.
- An "exit function" is a program for performing a process corresponding to a change in an event.
- the first protocol initialization routine 31 is started in response to a request according to the first protocol, such as a print request from a request source.
- signal communication is performed periodically in response to an interrupt from the receiver.
- This signal communication is performed by the first timer exit function F1 to the interrupt unit 22-11 of the first task TSK1, and calls the signal exit function in the interrupt unit 22-1.
- the first timer exit function F 1 is initially registered by the initialization routine, and then registered by the signal exit function after “continue processing” to start the next evening.
- the first timer exit function F1 belongs to the first task TSK1. Accordingly, in step 33, the sleep time timer of the timer section 14 is started by the signal exit function, and in step 34, a system call for putting the first task TSK1 into the sleep state is issued by the signal exit function.
- the processing of the first task TSK 1 that is being executed by the execution unit 2 1-1 is interrupted, the first task TSK 1 is put into a sleep state, and the second task TSK 2 that is being paused operates instead. Move to state. That is, the execution unit 211 of the second task TSK2 starts executing the processing of the second task TSK2.
- step 35 when the timeout of the sleep time time timer is detected, in step 36, the evening exit function is called, and in the evening exit function, a system call for returning the dormant first task T SK 1 to the operating state is executed. Issue. Steps 35 and 36 are performed by the second timer exit function F2.
- the second timer exit function F2 also belongs to the first task TSK1, like the first timer exit function F1. This allows Task 1 TSK 1 returns from the sleep state to the operating state, and returns from the signal exit function, so that the execution unit 21-1 resumes the execution of the processing of the first task TSK 1.
- the second task TSK2 when the first task TSK1 returns to the operation state, the second task TSK2 having a lower priority than the first task TSK1 returns from the operation state to the sleep state.
- the first task TSK 1 is periodically in a sleep state, and the first task TSK 1 is in a sleep state. Only during the state, the second task TSK2 shifts from the sleep state to the operating state, and as a result, the first task TSK1 and the second task TS # 2 are executed alternately.
- the signal communication interval is set to the first to prevent signal communication from being performed again before the sleep time and the timeout of the sleep time are detected.
- Task is set longer than the sleep time of TSK1 (timeout of sleep time timer). For example, if the signal communication interval is several hundred milliseconds, the sleep time is set to about 1/10 of that.
- the set values of the timer and the sleep time can be variably set. Therefore, the execution time and the ratio of the execution time of the first task TSK1 and the second task TSK2, that is, the sleep timing and the sleep time of the first task TSK1, can be arbitrarily set. In addition, since the first task TSK1 controls its own sleep timing, the operating system and the execution units 22-1 and 22-2 of the first and second tasks TSK1 and TSK2 are changed. Is unnecessary.
- a sleep permission flag is provided between the first task TSK 1 and the signal exit function, Ensure that the first task TSK1 is not forced to sleep during critical processing. Also, if the first task TSK1 is always forced to sleep periodically, the load on the network system increases and the performance decreases. However, since a portion such as a print control process to be continuously executed in the execution unit 21-1 can be specified, the sleep permission flag is provided only during execution of the specified portion, and the first task T
- step 41 when the execution of the first task TSK1 is started, the signal exit function is registered in step 41, and the timer is set and activated in step 42. Steps 41 and 42 are included in the first protocol initialization routine. After that, the processing of the first task TSK 1 is performed, the sleep permission flag is set in step 43, the mouth gui / reconnect processing is performed in step 44, and the sleep permission flag is cleared in step 45 .
- step 42 when the timer is started in step 42, the process for calling the signal exit function in the interrupt unit 22-11 is started in step 51, and in step 52, the process is executed in response to the interrupt from the timer. Perform signal communication periodically. This signal communication is performed to the interrupt unit 22-1 of the first task TSK1, and the signal exit function in the interrupt unit 22-1 is called. Thus, in step 57, it is determined whether or not the sleep permission flag is set. If the decision result in the step 57 is NO, the process advances to a step 65 to return to the step 44 for performing the process of the first task TSK1.
- a step 58 activates the sleep time timer of the timer 14 by the signal exit function, and in the step 59, the first task TSK 1 is executed by the signal exit function. Issues a system call that puts the system to sleep. As a result, the processing of the first task TSK 1 that is being executed by the execution unit 2 1-1 is suspended, the first task TSK 1 is in a sleep state, and instead, the second task TSK 2 that is being paused is being executed. Move to operating state. That is, the execution unit 21-2 of the second task TSK2 starts executing the processing of the second task TSK2.
- step 61 determines whether or not a timeout of the sleep time timer has occurred, and the determination result is YES, and the timeout of the sleep time timer has been determined. If is detected, the exit function is called in step 62.
- step 64 a timer exit function issues a system call for returning the dormant first task TSK1 to the operating state, and the process proceeds to step 65 to execute the processing of the first task TSK1. Return to step 44. That is, by returning from the signal exit function, the first task TSK1 returns from the sleep state to the operation state, and the execution unit 21-1 resumes the execution of the processing of the first task TSK1.
- the first task TSK1 is periodically put into a sleep state by using a function of calling an exit function, so that time-division execution with the second task TSK2 is enabled.
- FIG. 8 is a flowchart illustrating a task switching process of the operating system
- FIG. 9 is a diagram illustrating a state table managed by the operating system in the memory 12 or the like.
- the operating system since the operating system is configured to execute only one task at a time, other tasks are controlled to be in a sleep state while one task is being executed. Such control itself is generally performed in such an operating system.
- a step 71 searches for a task being executed from the state table 90 shown in FIG.
- the status table 90 manages the status of each task and the priority level, as shown in FIG.
- the task statuses managed in the status table 90 are: paused, not sleeping, not interrupted, and waiting for necessary resources. State is included. If each state is satisfied, "1" is set; otherwise, "0" is set. Pause Z If the state is not sleeping, the state not interrupting, and the state of waiting for necessary resources are all “0”, it is assumed that the task is running. As for the priority level, the lower the number, the higher the priority.
- the state and priority level of only the first and second tasks TSK1 and TSK2 are managed by the state table 90. It goes without saying that the states and priority levels of the tasks described above may be managed.
- Step 72 compares the priority levels of the currently executing task and other executing tasks using the dip table 90, and executes the executing task having a higher priority level than the currently executing task. It is determined whether a task exists. If the decision result in the step 72 is NO, the process proceeds to a step 74 described later. On the other hand, if the decision result in the step 72 is YES, a step 73 determines the execution right of the task currently being executed, the priority level in the state table 90 is high, and the execution right of the currently executing task. The processing proceeds to step 74. A step 74 decides whether or not the information of the task retrieved from the state table 90 has been completed.
- step 74 If there is task information that has not been retrieved from the state table 90, and the determination result in step 74 is NO, the process returns to step 71. On the other hand, if the determination result in step 74 is YES, step 75 Switches the task so that it has the right to execute the task, and the process ends.
- the status table 90 indicates that the second task TSK2 is executing with a higher priority level than the second task TSK2.
- the result of the determination in step 72 is NO, and the second task TSK 2 can be continuously executed.
- the determination result in step 72 is YES, and in step 73, the execution right is The task is switched to the first task TSK 1, and finally the task is switched in step 75 so as to execute the first task TSK 1 having the execution right.
- task switching can be realized by rewriting the program counter and stack pointer of the CPU 11, and the task switching itself that can be realized is well known, and is not directly related to the gist of the present invention. The description is omitted.
- the storage medium is a CD-ROM
- a CD-ROM driver that reads information from this CD-ROM is provided by a CD-ROM driver even if a ROM driver is provided instead of the memory 12 or ROM 13 or the like.
- the program read from the ROM may be installed in the memory 12. Further, the storage medium may store other program data in addition to the program for controlling the sleep timing and the sleep time of the first task as described above.
- the plurality of tasks can be time-divided. It becomes executable.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Description
明細書
プログラム制御方法、 データ処理装置及び記憶媒体 技術分野
本発明は、 プログラム制御方法、 データ処理装置及び記憶媒体に係り、 特に複 数のタスクを時分割的に実行するためのプログラム制御方法、 このようなプログ ラム制御方法を用いたデータ処理装置、 及びデータ処理装置にこのようなプログ ラム制御を行わせるプログラムを格納したコンビュ一夕読み取り可能な記憶媒体 に関する。 背景技術
近年、 L AN等のネットワークを介してコンピュータ等のデータ処理装置間で 情報の送受信を行うことが頻繁に行われている。 通常、 1つの L ANに接続され た複数のデータ処理装置からなるネットワークシステムを設計する際には、 1つ の通信手順 (プロトコル) をサポートするように設計される。 しかし、 ネット ワークシステムに新たに追加される装置が他のプロトコルしかサポートしなかつ たり、 ネットワークシステムの L ANがゲートウエイ等を介して他のプロトコル をサボ一卜する他の L ANに接続されるような場合には、 複数のプロトコルをサ ポートする必要がある。
プリン夕装置等のデータ処理装置には、 プロトコルに従った情報の送受信を行 うためのプロトコル制御部が設けられている。 このようなプリン夕装置がサボ一 トするプロトコルが 1つの場合は問題は生じなレ、が、 複数のプロトコルをサボ一 卜する場合には、 これらのプロトコルに対応する複数のプロトコル制御部間で調 停を行う必要が生じる。
リアルタイムオペレーティングシステムにより例えば夫々異なるプロトコルに 対応した複数のタスクを同時に実行可能なシステムの場合は、 それら複数のプロ トコル制御部を並行に動作させることができる。 し力、し、 一般のォペレ一ティ ン グシステム (モニタ) では、 複数のタスクを同時に実行する機能はサポートされ ていない。 このため、 複数のタスクを同時に実行する機能をサポートしないオペ
レーティングシステムでは、 タスクに優先順位を付けて、 優先順位に従ってタス クを実行する等の対策を取る必要があった。 ところがこの場合、 優先順位の高い タスクが実行され続けると、 優先順位の低レ、タスクは実行できなくなってしまい、 リアルタイム処理に適さないという点で問題があつた。
図 1は、 プリンタ装置が第 1のタスクと第 2のタスクをサポートする場合にリ アルタイム処理を可能とする従来のプログラム制御方法を説明する図である。 ォ ペレ一ティングシステムは、 同図 (c ) に示すタイミングでタスクの切り替えを 指示する。 これにより、 第 1のタスクは同図 (a ) のハイレベル (H) 期間のみ 実行され、 第 2のタスクは同図 (b ) のハイレベル (H) 期間のみ実行される。 この結果、 第 1のタスク及び第 2のタスクは、 時分割的に実行される。 ローレべ ノレ (L ) 期間では、 タスクは実行されない。
ところが、 従来のプログラム制御方法では、 オペレーティングシステムでタス クの切り替えタイミングを制御しているため、 第 1のタスク及び第 2のタスクの 間で優先順位を付けることができないという問題があつた。
又、 タスクの切り替えタイミングはオペレーティングシステムで制御している ため、 実質的に固定であり、 第 1のタスク及び第 2のタスクに重み付けを付すこ とは、 オペレーティングシステム自体を変更しない限り不可能であるという問題 もあった。
更に、 タスクの切り替えタイミングはオペレーティングシステムで制御してい るため、 例えば装置でサポートするプロトコルの数を増加させる等によりタスク の数を 3以上等と更に増加させようとすると、 実行時間を均等に振り分ける以外 の制御は非常に複雑となり、 オペレーティングシステム自体の変更が必要となる ため、 現実的ではないという問題もあった。 発明の開示
そこで、 本発明は、 上記の問題点を解決した新規、 且つ、 有用なプログラム制 御方法、 データ処理装置及び記憶媒体を提供することを概括的目的とする。
本発明のより具体的な目的は、 オペレーティングシステムの変更を行うことな く、 複数のタスクに優先順位を付けて複数のタスクを任意のタイミングで切り替
えることにより、 複数のタスクを時分割的に実行可能とするプログラム制御方法、 データ処理装置及び記憶媒体を提供することにある。
本発明の更に他の目的は、 第 1のタスクと、 前記第 1のタスクより優先順位の 低い第 2のタスクとをオペレーティングシステムの制御下で実行するプログラム 制御方法であって、 前記オペレーティングシステムの制御下で、 前記第 1のタス クの実行中は前記第 2のタスクを停止状態に制御し、 前記第 1のタスクの停止中 は前記第 2のタスクを実行させることにより、 前記第 1のタスク及び前記第 2の タスクを時分割的に実行させるステップと、 前記第 1のタスクが自身の停止タイ ミングを制御する制御ステツプとを含むプログラム制御方法を提供することにあ る。 本発明になるプログラム制御方法によれば、 オペレーティングシステムの変 更を行うことなく、 複数のタスクに優先順位を付けて複数のタスクを任意の夕ィ ミングで切り替えることにより、 複数のタスクを時分割的に実行可能となる。 前記制御ステップは、 タイマを設定し、 前記タイマにより前記第 1のタスクに 定期的にシグナル送信を行い、 前記シグナル送信に応答して前記第 1のタスクを 停止状態に制御し、 前記第 1のタスクのタイマ出口関数に基づいて停止中の前記 第 1のタスクを動作状態に戻しても良い。
前記タイマによる前記第 1のタスクの定期的なシグナル送信の間隔は、 前記第 1のタスクが連続的に停止状態にある時間より長く設定されていても良い。
前記タイマ及び前記出口関数は可変設定されても良い。
前記第 1のタスクは、 前記第 2のタスクを含む複数のタスクのうち最も優先順 位が高く設定されていても良レ、。
本発明の他の目的は、 第 1のタスクと、 前記第 1のタスクより優先順位の低い 第 2のタスクとをオペレーティングシステムの制御下で実行するプロセッサと、 前記オペレ一ティングシステムの制御下で、 前記第 1のタスクの実行中は前記第 2のタスクを停止状態に制御し、 前記第 1のタスクの停止中は前記第 2のタスク を実行させることにより、 前記プロセッザに前記第 1のタスク及び前記第 2の夕 スクを時分割的に実行させる手段と、 前記第 1のタスクが自身の停止タイミング を制御する制御手段とを備えたデータ処理装置を提供することにある。 本発明に なるデータ処理装置によれば、 オペレーティングシステムの変更を行うことなく、
複数のタスクに優先順位を付けて複数のタスクを任意のタイミングで切り替える ことにより、 複数のタスクを時分割的に実行可能となる。
前記制御手段は、 タイマを設定する手段と、 前記タイマにより前記第 1のタス クに定期的にシグナル送信を行う手段と、 前記シグナル送信に応答して前記第 1 のタスクを停止状態に制御する手段と、 前記第 1のタスクの夕イマ出口関数に基 づいて停止中の前記第 1のタスクを動作状態に戻す手段とからなる構成でも良い。 前記夕イマによる前記第 1のタスクの定期的なシグナル送信の間隔は、 前記第 1のタスクが連続的に停止状態にある時間より長く設定されていても良い。
前記夕ィマ及び前記出口関数は可変設定されても良レ、。
前記第 1のタスクは、 前記第 2のタスクを含む複数のタスクのうち最も優先順 位が高く設定されていても良い。
データ処理装置は、 第 1のプロトコル及び前記第 1のプロトコルとは異なる第 2のプロトコルに従った要求をネットワークを介して受信すると共に前記ネッ ト ワークを介した情報の送受信を制御するネッ トワーク部を更に備え、 前記第 1及 び第 2のタスクは夫々該第 1及び第 2のプロトコルに対応しても良い。
データ処理装置は、 前記第 1及び第 2のタスクに基づし、て情報を出力する出力 装置を更に備えても良い。
本発明の更に他の目的は、 オペレーティ ングシステムの制御下で、 第 1のタス クの実行中は前記第 1のタスクより優先順位の低レ、第 2のタスクを停止状態に制 御し、 前記第 1のタスクの停止中は前記第 2のタスクを実行させることにより、 前記第 1のタスク及び前記第 2のタスクを時分割的に実行させるデータ処理装置 を制御するプログラムを格納したコンピュー夕読み取り可能な記憶媒体であつて、 前記データ処理装置を前記第 1のタスクが自身の停止タイミングを制御する制御 手段として機能させるためのプログラムを格納した記憶媒体を提供することにあ る。 本発明になる記憶媒体によれば、 オペレーティングシステムの変更を行うこ となく、 複数のタスクに優先順位を付けて複数のタスクを任意のタイミングで切 り替えることにより、 複数のタスクを時分割的に実行可能となる。
前記制御手段は、 前記データ処理装置に、 タイマを設定させ、 前記夕イマによ り前記第 1のタスクに定期的にシグナル送信を行わせ、 前記シグナル送信に応答
して前記第 1のタスクを停止状態に制御させ、 前記第 1のタスクのタイマ出口関 数に基づいて停止中の前記第 1のタスクを動作状態に戻させても良い。
前記夕イマによる前記第 1のタスクの定期的なシグナル送信の間隔は、 前記第 1のタスクが連続的に停止状態にある時間より長く設定されていても良い。
前記夕ィマ及び前記出口関数は可変設定されても良レヽ。
前記第 1のタスクは、 前記第 2のタスクを含む複数のタスクのうち最も優先順 位が高く設定されていても良い。
本発明の更に他の目的及び特長は、 以下図面と共に述べる説明より明らかとな ろう。 図面の簡単な説明
図 1はプリンタ装置が第 1のタスクと第 2のタスクをサポートする場合にリア ルタイ厶処理を可能とする従来のプログラム制御方法を説明する図、
図 2は本発明の動作原理を説明するためのタスクの実行タイミングを示す図、 図 3は本発明になるプログラム制御方法、 データ処理装置及び記憶媒体を適用 可能なネットワークシステムを示す図、
図 4はプリンタ装置の一実施例を示すプロック図、
図 5はタスクの構成を説明する図、
図 6は実施例におけるタスクの切り替えを説明する図、
図 7はシグナル出口関数及びタイマ出口関数の処理を説明するフローチャート、 図 8はォペレ一ティングシステムのタスク切り替え処理を説明するフロー チヤ一ト、
図 9はオペレーティングシステムが管理している状態テ一ブルを説明する図で める。 発明を実施するための最良の形態
本発明の動作原理を図 2と共に説明する。 図 2は、 第 1のプロトコルに対応す る第 1のタスクと、 第 2のプロトコルに対応すると共に前記第 1のタスクより優 先順位の低い第 2のタスクとの実行タイミングを示す図である。
第 1及び第 2のプロトコルをオペレーティングシステム (モニタ) の制御下で 実行する際に、 第 1のタスクの実行中は第 2のタスクを停止 (以下、 休止とす る) 状態に制御し、 第 1のタスクの停止 (以後、 休眠とする) 中は第 2のタスク を実行させることにより、 第 1のタスク及び第 2のタスクを時分割的に実行させ る。 本発明では、 第 1のタスクが自身の休眠タイミングを制御する。
これにより、 第 1のタスクの休眠タイミングは、 オペレーティングシステムが 直接制御することなく、 第 1のタスクにより制御され、 第 1のタスクの休眠中は 第 2のタスクを実行させることができる。
従って、 オペレーティングシステムの変更を行うことなく、 複数のタスクに優 先順位を付けて複数のタスクを任意のタイミングで切り替えることにより、 複数 のタスクを時分割的に実行可能となる。
尚、 第 2のタスクは、 第 1のタスク以外のタスクであれば、 第 2のプロトコル に対応している必要はないことは言うまでもない。
図 3は、 本発明になるプログラム制御方法、 データ処理装置及び記憶媒体を適 用可能なネットワークシステムを示す図である。 同図中、 第 1の L ANには、 パーソナルコンピュータ等の複数のコンピュータ 2— 1〜2— 3と、 複数のプリ ンタ装置 3— 1 , 3— 2とが接続されている。 プリン夕装置 3— 1, 3— 2は、 出力装置として設けられており、 プリンタ装置 3— 1は L ANアダプタ 3— 1 a を介して第 1の L AN 1に接続され、 プリン夕装置 3— 2はコンピュータ 2— 2 を介して第 1の L AN 1に接続されている。 又、 第 1の L AN 1は、 ゲ一トウェ ィ 4を介して第 2の L AN 5に接続されている。
このようなネットワークシステムでは、 同じ第 1の L AN 1に接続されたコン ピュー夕 2— 1〜2— 3間で情報のやり取りを行ったり、 コンピュータ 2— 1〜 2 - 3と第 2の L ANに接続されたコンピュータ等 (図示せず) とゲ一トウヱイ 4を介して情報のやり取りを行うことができる。 プリンタ装置 3— 1の場合、 第 1の L AN 1に接続されたコンピュー夕 2— 1〜2— 3からの情報を受信して印 刷したり、 第 2の L ANに接続されたコンピュータ等からの情報をゲートウェイ 4及び第 1の L AN 1を介して受信して印刷したりすることができる。 又、 プリ ンタ装置 3— 2の場合、 第 1の L AN 1に接続されたコンピュータ 2— 1 , 2—
3や第 2の LANに接続されたコンピュータ等からの情報をゲートウェイ 4、 第 1の LAN 1及びコンピュータ 3— 2を介して受信して印刷したり、 コンビユー 夕 3— 2からの情報を直接受信して印刷したりすることができる。
図 4は、 プリンタ装置の一実施例を示すブロック図である。 説明の便宜上、 同 図はプリン夕装置 3— 1を示すものとする。 プリンタ装置 3— 1は、 本発明にな るデータ処理装置の一実施例を構成し、 本発明になるプログラ厶制御方法の一実 施例を採用する。 プリンタ装置 3— 1は、 同図に示すように、 バス 1 7に接続さ れた CPU 1 1、 メモリ 1 2、 RO 1 3、 タイマ部 1 4、 LAN制御部 1 5及 び印刷部 1 6からなる。
CPU 1 1は、 プリンタ装置 3— 1全体の動作を制御するために設けられてい る。 メモリ 1 2は、 CPU l 1が実行するプログラムや CPU 1 1が実行する演 算の中間データや、 印刷部 1 6により印刷するための受信データを展開したデ一 夕等を格納するために設けられており、 メモリ 1 2に格納されるプログラムは任 意の時点でインストール可能である。 ROM1 3は、 ブートアップ用プログラム を含む CPU l 1が実行するプログラム等を予め格納している。 タイマ部 1 4は、 CPU 1 1内の内部タイマ (例えば、 オペレーティ ングシステムの夕イマ) で生 成するタイミング以外の、 信号のやり取りのタイミングを生成するために設けら れている。 LAN制御部 1 5は、 第 1の LAN 1を介して情報の送受信を行うた めに必要な制御を CPU 1 1の制御下で行うもので、 本実施例では便宜上 LAN アダプタ 3— 1 aを内蔵しているものとする。 印刷部 1 6は、 周知のプリンタエ ンジン及び周知の印刷機構からなり、 CPU 1 1の制御下で情報の紙等の記録媒 体に印刷する。
尚、 プリンタ装置 3— 2の場合は、 LAN制御部 1 5には LANアダプタ 3— l aが設けられず、 第 1の LAN 1に直接接続する代わりに、 コンピュータ 2— 2を介して第 1の LAN 1に接続される。
又、 コンピュータ 2— 1〜2— 3もプリンタ装置 3— 1, 3— 2と同様にデ一 夕処理装置であるから、 基本構成は図 4に示すプリン夕装置 3— 1と同じである が、 コンピュータ 2— 1〜2— 3の場合は印刷部 1 6が設けられていない。
上記コンピュータ 2 - 1〜2— 3及びプリン夕装置 3— 1, 3— 2は、 上記の
如き構成に限定されるものではなく、 各種周知の構成のコンピュー夕及びプリン 夕装置を用いても良いことは言うまでもない。
本実施例では、 第 1の LAN 1に接続されている各データ処理装置が、 複数の 異なるプロトコルをサポートしている。 説明の便宜上、 以下の説明では、 第 1の LAN 1に接続されている各データ処理装置が第 1のプロトコルと、 第 1のプロ トコルとは異なる第 2のプロトコルとをサポートしており、 データ処理装置がプ リン夕装置 3— 1の場合の動作を例に取って説明する。 第 1のプロトコルは、 例 えば I PXZSPX (例えば、 Nove l 1社の製品 N e t wa r eで知られ る) であり、 第 2のプロトコルは例えば TCPZI Pである。 又、 本実施例では、 後述するように、 第 1のプロトコルの優先順位が、 第 2のプロトコルより高く設 定されているものとする。
本実施例で使用するオペレーティングシステムでは、 同時に 1つのタスクしか 実行できない。 つまり、 オペレーティングシステムの制御下で、 CPU 1 1は第 1のプロトコルに対応する第 1のタスク TSK 1を実行するか、 第 2のプロトコ ルに対応する第 2のタスク TSK2を実行する。 第 1のタスク TSK 1の実行中 は、 第 2のタスク TSK 2を実行することはできず、 第 2のタスク TSK 2の実 行中は、 第 1のタスク TSK 1を実行することはできない。
尚、 第 2のタスク TSK2は、 第 1のタスク TSK 1以外のタスクであれば、 第 2のプロトコルに対応している必要はないことは言うまでもない。
図 5に示すように、 第 1のタスク TSK 1は実行部 21 - 1と割り込み部 22 一 1と力、らなり、 第 2のタスク TSK 2は実行部 2 1 - 2と割り込み部 22— 2 とからなる。 実行部 21— 1, 2 1— 2は、 夫々タスクに対応する処理を実行し、 割り込み部 22— 1, 22 - 2は、 夫々割り込み処理を実行する。 割り込みには、 ハードウエアからソフトウエアへの割り込みと、 フフトウエアからフフトウエア 又はハードウェアへの割り込みとがある。 一般的には、 後者の方、 即ち、 割り込 み部 22— 1, 22— 2を使用したデータのやり取りの方を、 シグナル通信と言 う。 第 1のタスク TSK 1から第 2のタスク TSK2へのシグナル通信は、 実行 部 21— 1又は割り込み部 22— 1から割り込み部 22 - 2に対して行われ、 第 2のタスク TSK2から第 1のタスク TSK 1へのシグナル通信は、 実行部 21
一 2又は割り込み部 22— 2から割り込み部 22一 1に対して行われる。 つまり、 シグナル通信を受ける側は、 必ず割り込み部 22— 1又は 22— 2である。 本実 施例では、 オペレーティングシステムによるタイミング制御ではなく、 このシグ ナル通信機能を利用して第 1のタスク TSK 1と第 2のタスク TSK2との切り 替えを制御する。
図 6は、 本実施例におけるタスクの切り替えを説明する図である。 同図中、 ォ ペレ一ティングシステムの指示に基づきタスクを生成するためのプログラムであ る第 1のプロトコル初期化ルーチン 3 1が開始されると、 シグナル出口関数が登 録されると共に、 タイマ部 1 4のタイマが設定されて起動される。 「出口関数」 とは、 ある事象の変化に対応する処理を行うためのプログラムである。 第 1のプ oトコル初期化ルーチン 3 1は、 要求元からの印刷要求等の第 1のプロトコルに 従った要求に応答して開始される。 ステップ 32では、 夕イマからの割り込みに 応答してシグナル通信を定期的に行う。 このシグナル通信は、 第 1のタイマ出口 関数 F 1により第 1のタスク TSK 1の割り込み部 22一 1に対して行われ、 割 り込み部 22— 1内のシグナル出口関数を呼び出す。 第 1のタイマ出口関数 F 1 は、 最初は初期化ルーチンによって登録され、 その後はシグナル出口関数によつ て次の夕イマ起動のために 「処理続行」 の後に登録される。 第 1のタイマ出口関 数 F 1は、 第 1のタスク TSK 1に属する。 これにより、 ステップ 33では、 シ グナル出口関数によりタイマ部 1 4の休眠時間タイマを起動し、 ステップ 34で は、 シグナル出口関数で第 1のタスク TSK 1を休眠状態にするシステムコール を発行する。 この結果、 実行部 2 1— 1が実行中の第 1のタスク TSK 1の処理 は中断され、 第 1のタスク TSK 1は休眠状態となり、 代わりに、 休止中の第 2 のタスク TSK 2が動作状態へ移行する。 つまり、 第 2のタスク TSK2の実行 部 2 1一 2が第 2のタスク TSK 2の処理の実行を開始する。
ステップ 35で、 休眠時間タイマのタイムアウトが検出されると、 ステップ 3 6で夕イマ出口関数が呼び出され、 夕イマ出口関数で休眠状態の第 1のタスク T SK 1を動作状態に戻すシステムコールを発行する。 ステップ 35, 3 6は、 第 2のタイマ出口関数 F 2により行われる。 第 2のタイマ出口関数 F 2も、 第 1の タイマ出口関数 F 1と同様に、 第 1のタスク TSK 1に属する。 これにより、 第
1のタスク T S K 1は休眠状態から動作状態へ復帰し、 シグナル出口関数から復 帰することにより実行部 21― 1が第 1のタスク TSK 1の処理の実行を再開す る。 他方、 第 1のタスク TSK1が動作状態へ復帰すると、 第 1のタスク TSK 1より優先順位の低い第 2のタスク TSK2は、 動作状態から休止状態へ戻され る。 このようにして、 以下同様に、 夕イマからの割り込みに応答してシグナル通 信を定期的に行うことにより、 第 1タスク TSK 1が定期的に休眠状態となり、 第 1のタスク TSK 1が休眠状態にある間のみ、 第 2のタスク TSK2が休止状 態から動作状態に移行し、 結果的に第 1のタスク TSK 1及び第 2のタスク TS Κ 2が交互に実行される。
尚、 第 1のタスク TSK 1が休眠状態にある間に、 休眠時間夕イマのタイムァ ゥトが検出される前に再度にシグナル通信が行われることを防止するため、 シグ ナル通信間隔は第 1のタスク TSK 1の休眠時間 (休眠時間タイマのタイムァゥ ト) より長く設定される。 例えば、 シグナル通信間隔が数百ミリ秒であれば、 休 眠時間はその 1/1 0程度に設定される。
本実施例では、 タイマ及び休眠時間夕イマの設定値は可変設定可能である。 こ のため、 第 1のタスク TSK 1及び第 2のタスク TSK2の夫々の実行時間及び 実行時間の比率、 即ち、 第 1タスク TSK 1の休眠タイミング及び休眠時間は、 任意に設定可能である。 又、 第 1のタスク TSK 1が自身の休眠のタイミングを 制御しているので、 ォペレ一ティングシステム及び第 1及び第 2のタスク TSK 1, TSK 2の実行部 22— 1 , 22— 2の変更は不要である。
次に、 上記シグナル出口関数及びタイマ出口関数の処理を、 図 7に示すフロー チャートと共に説明する。 例えばコンピュータ 2— 1が印刷要求元でありプリン 夕装置 3— 1に対して例えば第 1のプロトコルで印刷要求を行う場合、 第 1の夕 スク T S Κ 1の実行部 22- 1が印刷制御処理等を実行中に第 1のタスク T S Κ 1を定期的に、 且つ、 強制的に休眠状態として第 2のタスク TSK2を実行する ことにより、 第 1及び第 2のタスク TSK 1, TSK 2を交互に実行するので、 第 1のタスク TSK 1が休眠中にコンピュータ 2— 1からの要求に対する許容時 間がタイムアウトしてしまわないよう対策を取る必要がある。 そこで、 本実施例 では、 第 1のタスク TSK 1とシグナル出口関数との間に休眠許可フラグを設け、
クリチカルな処理を行っている間は第 1のタスク TSK 1が強制的に休眠状態に されないようにする。 又、 第 1のタスク TSK 1が常に定期的に強制的に休眠状 態にすると、 ネットワークシステムへの付加が増大して性能も低下してしまう。 しかし、 実行部 2 1 - 1内で連続して実行する印刷制御処理等の部分は特定でき るので、 特定された部分を実行中にのみ休眠許可フラグを設けて第 1のタスク T
S K 1が休眠状態に入る箇所を限定することもできる。
図 7において、 第 1のタスク TSK 1の実行が開始されると、 ステップ 4 1で シグナル出口関数を登録し、 ステップ 42で夕イマを設定して起動する。 ステツ プ 4 1, 42は、 第 1のプロトコル初期化ルーチンに含まれる。 その後、 第 1の タスク T S K 1の処理が行われ、 ステップ 4 3では休眠許可フラグをセットし、 ステップ 44で口グイン/再接続処理等が行われ、 ステップ 45で休眠許可フラ グがクリアされる。
これと並行して、 ステップ 42でタイマが起動されると、 ステップ 5 1では、 割り込み部 22一 1内のシグナル出口関数を呼び出す処理が開始され、 ステップ 52では、 タイマからの割り込みに応答してシグナル通信を定期的に行う。 この シグナル通信は、 第 1のタスク TSK 1の割り込み部 22— 1に対して行われ、 割り込み部 22— 1内のシグナル出口関数を呼び出す。 これにより、 ステップ 5 7では、 休眠許可フラグがセットされているか否かを判定する。 ステップ 57の 判定結果が NOであれば、 処理はステップ 6 5へ進み、 第 1のタスク TSK 1の 処理を行うステップ 44へ復帰する。
他方、 ステップ 5 7の判定結果が YESであると、 ステップ 5 8は、 シグナル 出口関数によりタイマ 1 4の休眠時間タイマを起動し、 ステップ 5 9では、 シグ ナル出口関数で第 1のタスク TSK 1を休眠状態にするシステムコールを発行す る。 この結果、 実行部 2 1— 1が実行中の第 1のタスク TSK 1の処理は中断さ れ、 第 1のタスク TSK 1は休眠状態となり、 代わりに、 休止中の第 2のタスク TSK 2が動作状態へ移行する。 つまり、 第 2のタスク TSK 2の実行部 2 1 - 2が第 2のタスク TSK2の処理の実行を開始する。
又、 ステップ 58の後、 ステップ 6 1は、 休眠時間タイマのタイムアウトが発 生したか否かを判定し、 判定結果が YESとなり休眠時間タイマのタイムァゥト
が検出されると、 ステップ 62で夕イマ出口関数を呼び出す。 又、 ステップ 64 は、 タイマ出口関数で休眠伏態の第 1のタスク TSK 1を動作状態に戻すシステ 厶コールを発行し、 処理は上記ステップ 65へ進んで第 1のタスク TSK 1の処 理を行うステップ 44へ復帰する。 つまり、 シグナル出口関数から復帰すること により、 第 1のタスク TSK 1は休眠状態から動作状態へ復帰し、 実行部 21— 1が第 1のタスク TSK 1の処理の実行を再開する。
他方、 第 1のタスク TSK 1が動作状態へ復帰すると、 第 1のタスク TSK 1 より優先順位の低レ、第 2のタスク T S K 2は、 動作状態から休止伏態へ戻される。 このようにして、 以下同様に、 第 1のタスク TSK 1が定期的に休眠状態となり、 第 1のタスク TSK 1が休眠状態にある間のみ、 第 2のタスク TSK 2が休止状 態から動作状態に移行する。
このように、 本実施例では、 一般的なオペレーティングシステムに備わってい る、 ( i) タスクを休眠状態に制御する、 (i i) タスクに対してシグナル通信 を行う、 及び (i i i) タイマの設定により夕イマ出口関数を呼び出すという機 能を用いて第 1のタスク TSK 1を定期的に休眠状態にして第 2のタスク TSK 2との時分割的な実行を可能とする。
次に、 第 1のタスク TSK 1の休眠状態中に第 2のタスク TSK 2が実行され るメカニズムについて、 図 8及び図 9と共に説明する。 図 8は、 オペレーティン グシステムのタスク切り替え処理を説明するフローチャートであり、 図 9は、 ォ ペレ一ティングシステムがメモリ 1 2等で管理している状態テーブルを説明する 図である。
本実施例では、 ォペレ一ティングシステムは一度に 1つのタスクしか実行でき ない構成であるため、 1つのタスクを実行中は他のタスクを休止状態に制御する。 このような制御自体は、 このようなオペレーティングシステムでは一般的に行わ れているものである。
図 8において、 ステップ 71は、 実行中のタスクを図 9に示す状態テーブル 9 0から検索する。 状態テーブル 90は、 図 9に示すように、 各タスクの状態及び 優先順位のレベルを管理している。 状態テーブル 90で管理されるタスクの状態 には、 休止 Z休眠中ではない状態、 割り込み中ではない状態及び必要な資源待ち
の状態が含まれ、 各状態が満足される場合は 「1」 、 満足されない場合は 「0」 が設定される。 休止 Z休眠中ではない状態、 割り込み中ではない状態及び必要な 資源待ちの状態が全て 「0」 であれば、 タスクが実行中であるものとする。 又、 優先順位のレベルは、 数が低い程優先順位が高いものとする。 尚、 図 9では、 説 明の便宜上、 第 1及び第 2のタスク TSK 1 , TSK2の 2つのタスクのみにつ いての状態及び優先順位のレベルが状態テーブル 9 0により管理されているが、 3以上のタスクの状態及び優先順位のレベルが管理されても良いことは言うまで もない。
ステップ 72は、 伏態テーブル 9 0を用いて、 現在実行中のタスクと他の実行 中のタスクとの優先順位レベルを比較して、 現在実行中のタスクより優先順位レ ベルが高い実行中のタスクが存在するか否かを判定する。 ステップ 72の判定結 果が NOであると、 処理は後述するステップ 74へ進む。 他方、 ステップ 72の 判別結果が YESであると、 ステップ 73は、 現在実行中のタスクの実行権と状 態テーブル 9 0中の優先順位レベルが高レ、実行中の夕スクの実行権とを入れ換え、 処理はステップ 74へ進む。 ステップ 74は、 状態テーブル 9 0から検索された タスクの情報が終了したか否かを判定する。 状態テーブル 90から検索されてい ないタスクの情報が存在し、 ステップ 74の判定結果が NOであると、 処理はス テツプ 7 1へ戻る、 他方、 ステップ 74の判定結果が YESであると、 ステップ 75は実行権のあるタスクを実行するようにタスクの切り替えを行い、 処理は終 了する。
これにより、 第 1のタスク TSK 1が休眠状態にあり、 現在第 2のタスク TS K 2を実行中であると、 状態テーブル 90中には第 2のタスク TSK 2より優先 順位レベルの高い実行中のタスクが存在しないので、 この状態ではステップ 72 の判定結果な NOであり、 第 2のタスク TSK 2が継続して実行可能である。 他 方、 第 1のタスク TSK 1が休眠状態から動作状態へ復帰すると、 これに応じて 状態テーブル 90の第 1のタスク TSK 1の状態情報がオペレーティングシステ ムにより書き換えられ、 休止/休眠中ではない状態、 割り込み中ではない状態及 び必要な資源待ちの状態が全て 「0」 に書き換えられる。 この結果、 ステップ 7 2の判定結果が YESとなり、 ステップ 73で実行権が第 2のタスク TSK 2か
ら第 1のタスク TSK 1へ入れ換えられ、 最終的にステップ 75で実行権のある 第 1のタスク TSK 1を実行するようにタスクの切り替えを行う。
一般的には、 第 2のプロトコルに対応する第 2のタスク TSK 2が存在しない 場合でも、 プロトコルに対応した処理以外に対応するタスクが存在する。 又、 第 1のタスク TSK 1に関連した印刷処理ゃメッセージの表示処理等のタスクが必 ず存在する。 従って、 第 1のタスク TSK 1の休眠中にこれらの、 第 1のタスク TSK 1以外のタスクを実行することで、 データ処理装置の処理効率を向上する ことができる。
尚、 タスクの切り替えは、 CPU 1 1のプログラムカウンタやスタックポイン 夕を書き換えることで、 実現できるカ タスクの切り替え自体は周知であり、 本 発明の要旨とは直接関係がないので、 本明細書ではその説明を省略する。
次に、 本発明になる記憶媒体の一実施例を説明する。 本実施例では、 上記の如 き第 1のタスクの休眠タイミング及び休眠時間の制御を行わせるプログラムが、 コンピュータ読み取り可能な記憶媒体に格納されている。 記憶媒体は、 図 4に示 すメモリ 1 2や ROM 1 3であっても良く、 半導体記憶装置、 磁気ディスク、 光 ディスク、 光磁気デイスク等のディスク状又は力一ド状記憶媒体等であつても良 レ、。 記憶媒体は、 プログラムをコンピュータで読み取り可能な形式に記憶可能な ものであれば特定種類に限定されず、 モデムや LAN等の通信機能や通信手段を 介して接続されるコンピュータでアクセス可能な記憶媒体をも含む。 例えば、 記 憶媒体が CD— ROMであれば、 この CD— ROMから情報を読み取る CD— R OMドライバをメモリ 1 2や ROM 1 3等の代わりに設けても、 CD— ROMド ライバにより CD— ROMから読み取ったプログラムをメモリ 1 2にインスト一 ルするようにしても良い。 又、 記憶媒体は、 上記の如き第 1のタスクの休眠タイ ミング及び休眠時間の制御を行わせるプ oグラムに加えて、 他のプログラ厶ゃ データを言己憶していても良い。
このように、 本発明によれば、 オペレーティ ングシステムの変更を行うことな く、 複数のタスクに優先順位を付けて複数のタスクを任意のタイミングで切り替 えることにより、 複数のタスクを時分割的に実行可能となる。
以上、 本発明を実施例により説明したが、 本発明の範囲内で種々の変形及び改
良が可能であることは、 言うまでもなし-
Claims
1 . 第 1のタスクと、 前記第 1のタスクより優先順位の低い第 2のタスクと をオペレーティングシステムの制御下で実行するプログラム制御方法であつて、 前記オペレ一ティングシステムの制御下で、 前記第 1のタスクの実行中は前記 第 2のタスクを停止状態に制御し、 前記第 1のタスクの停止中は前記第 2のタス クを実行させることにより、 前記第 1のタスク及び前記第 2のタスクを時分割的 に実行させるステップと、
前記第 1のタスクが自身の停止タイミングを制御する制御ステップとを含む、 プログラム制御方法。
2 . 前記制御ステップは、 タイマを設定し、 前記夕イマにより前記第 1の夕 スクに定期的にシグナル送信を行い、 前記シグナル送信に応答して前記第 1の夕 スクを停止状態に制御し、 前記第 1のタスクのタイマ出口関数に基づいて停止中 の前記第 1のタスクを動作状態に戻す、 請求の範囲第 1項記載のプログラム制御 方法。
3 . 前記夕イマによる前記第 1のタスクの定期的なシグナル送信の間隔は、 前記第 1のタスクが連続的に停止状態にある時間より長く設定されている、 請求 の範囲第 2項記載のプログラム制御方法。
4 . 前記タイマ及び前記出口関数は可変設定される、 請求の範囲第 2項又は 第 3項記載のプログラム制御方法。
5 . 前記第 1のタスクは、 前記第 2のタスクを含む複数のタスクのうち最も 優先順位が高く設定されている、 請求の範囲第 1項〜第 4項のいずれか 1項記載 のプログラム制御方法。
6 . 第 1のタスクと、 前記第 1のタスクより優先順位の低い第 2のタスクと をォペレ一ティ ングシステムの制御下で実行するプロセッサと、
前記オペレーティ ングシステムの制御下で、 前記第 1のタスクの実行中は前記 第 2のタスクを停止状態に制御し、 前記第 1のタスクの停止中は前記第 2のタス クを実行させることにより、 前記プロセッザに前記第 1のタスク及び前記第 2の タスクを時分割的に実行させる手段と、
前記第 1のタスクが自身の停止タイミングを制御する制御手段とを備えた、 データ処理装置。
7 . 前記制御手段は、
タイマを設定する手段と、
前記タイマにより前記第 1のタスクに定期的にシグナル送信を行う手段と、 前記シグナル送信に応答して前記第 1のタスクを停止状態に制御する手段と、 前記第 1のタスクの夕イマ出口関数に基づレ、て停止中の前記第 1のタスクを動 作状態に戻す手段とからなる、 請求の範囲第 6項記載のデータ処理装置。
8 . 前記タイマによる前記第 1のタスクの定期的なシグナル送信の間隔は、 前記第 1のタスクが連続的に停止状態にある時間より長く設定されている、 請求 の範囲第 7項記載のデータ処理装置。
9 . 前記タイマ及び前記出口関数は可変設定される、 請求の範囲第 7項又は 第 8項記載のデータ処理装置。
1 0 . 前記第 1のタスクは、 前記第 2のタスクを含む複数のタスクのうち最 も優先順位が高く設定されている、 請求の範囲第 6項〜第 9項のいずれか 1項記 載のデータ処理装置。
1 1 . 第 1のプロトコル及び前記第 1のプロトコルとは異なる第 2のプロト コルに従った要求をネットワークを介して受信すると共に前記ネットワークを介 した情報の送受信を制御するネットワーク部を更に備え、 前記第 1及び第 2の夕 スクは夫々該第 1及び第 2のプロトコルに対応する、 請求の範囲第 6項〜第 1 0 項のいずれか 1項記載のデータ処理装置。
1 2 . 前記第 1及び第 2のタスクに基づいて情報を出力する出力装置を更に 備えた、 請求の範囲第 6項〜第 1 1項のいずれか 1項記載のデータ処理装置。
1 3 . オペレーティングシステムの制御下で、 第 1のタスクの実行中は前記 第 1のタスクより優先順位の低い第 2のタスクを停止状態に制御し、 前記第 1の タスクの停止中は前記第 2のタスクを実行させることにより、 前記第 1のタスク 及び前記第 2のタスクを時分割的に実行させるデータ処理装置を制御するプログ ラムを格納したコンビユータ読み取り可能な記憶媒体であつて、
前記データ処理装置を前記第 1のタスクが自身の停止タイミングを制御する制
御手段として機能させるためのプログラムを格納した、 記憶媒体。
1 4 . 前記制御手段は、 前記データ処理装置に、 夕イマを設定させ、 前記夕 イマにより前記第 1のタスクに定期的にシグナル送信を行わせ、 前記シグナル送 信に応答して前記第 1のタスクを停止状態に制御させ、 前記第 1のタスクのタイ マ出口関数に基づいて停止中の前記第 1のタスクを動作状態に戻させる、 請求の 範囲第 1 3項記載の記憶媒体。
1 5 . 前記夕イマによる前記第 1のタスクの定期的なシグナル送信の間隔は、 前記第 1のタスクが連続的に停止状態にある時間より長く設定されている、 請求 の範囲第 1 4項記載の記憶媒体。
1 6 . 前記タイマ及び前記出口関数は可変設定される、 請求の範囲第 1 4項 又は第 1 5項記載の記憶媒体。
1 7 . 前記第 1のタスクは、 前記第 2のタスクを含む複数のタスクのうち最 も優先順位が高く設定されている、 請求の範囲第 1 3項〜第 1 6項のいずれか 1 項記載の記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11724698A JPH11306033A (ja) | 1998-04-27 | 1998-04-27 | プログラム制御方法、データ処理装置及び記憶媒体 |
JP10/117246 | 1998-04-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1999056208A1 true WO1999056208A1 (fr) | 1999-11-04 |
Family
ID=14707016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP1999/001656 WO1999056208A1 (fr) | 1998-04-27 | 1999-03-31 | Procede de controle de programme, machine de traitement des donnees et support d'enregistrement |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPH11306033A (ja) |
WO (1) | WO1999056208A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0916531A (ja) * | 1995-01-23 | 1997-01-17 | Tandem Comput Inc | データ伝送方法 |
JPH09251389A (ja) * | 1996-03-14 | 1997-09-22 | Omron Corp | データ処理装置 |
-
1998
- 1998-04-27 JP JP11724698A patent/JPH11306033A/ja active Pending
-
1999
- 1999-03-31 WO PCT/JP1999/001656 patent/WO1999056208A1/ja active Search and Examination
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0916531A (ja) * | 1995-01-23 | 1997-01-17 | Tandem Comput Inc | データ伝送方法 |
JPH09251389A (ja) * | 1996-03-14 | 1997-09-22 | Omron Corp | データ処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH11306033A (ja) | 1999-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884786B2 (en) | Switch device, switching method, and computer program product | |
JP4580845B2 (ja) | タスク実行装置 | |
US8793695B2 (en) | Information processing device and information processing method | |
US20060224785A1 (en) | Device and method for input and output of data | |
US8423681B2 (en) | Control apparatus for process input-output device | |
CN116644012A (zh) | 一种总线通信方法、电子设备及计算机可读存储介质 | |
WO1999056208A1 (fr) | Procede de controle de programme, machine de traitement des donnees et support d'enregistrement | |
CN100576175C (zh) | 用于多个内核的并行执行的方法和系统 | |
US5835767A (en) | Method and apparatus for controlling available processor capacity | |
JP2003271349A (ja) | 印刷ジョブチケットを用いて印刷ジョブを管理且つ処理するためのシステムおよび方法 | |
JP2002207691A (ja) | データ転送制御装置 | |
JPH0578925A (ja) | 通信制御方法 | |
WO2021002054A1 (ja) | 計算機システム及びプログラム実行方法 | |
JPH06103218A (ja) | データ通信インタフエース及びその動作方法並びにデータ処理プログラムプロダクト | |
US5436888A (en) | Communication path control method and communication device | |
WO2004068356A1 (ja) | データ通信システムおよびデータ通信方法、データ通信プログラム | |
EP3276489B1 (en) | Parallel processing system | |
JP2000312244A (ja) | ネットワークインタフェース切替方法およびその装置、その記録媒体 | |
JPH11143727A (ja) | 入出力管理装置および方法 | |
JP2000066855A (ja) | 画像形成装置およびその画像データ受信制御方法 | |
JPS63208122A (ja) | コンソ−ル制御方式 | |
JP2006244293A (ja) | タスク実行制御方法及び装置 | |
JP2009302933A (ja) | データ通信装置、データ通信システムおよびデータ通信制御方法 | |
JPH0497416A (ja) | 受信バッファの制御方式 | |
JP2001156825A (ja) | ノード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): CN US |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) |