[go: up one dir, main page]

JPH07104791B2 - タスク状態構築方法 - Google Patents

タスク状態構築方法

Info

Publication number
JPH07104791B2
JPH07104791B2 JP4288380A JP28838092A JPH07104791B2 JP H07104791 B2 JPH07104791 B2 JP H07104791B2 JP 4288380 A JP4288380 A JP 4288380A JP 28838092 A JP28838092 A JP 28838092A JP H07104791 B2 JPH07104791 B2 JP H07104791B2
Authority
JP
Japan
Prior art keywords
task
pool
idle
identifier
request
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.)
Expired - Lifetime
Application number
JP4288380A
Other languages
English (en)
Other versions
JPH05233331A (ja
Inventor
ダリル・アール・コックス
ジョン・ティー・ギャバード
サリー・エイ・ズーポンチック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05233331A publication Critical patent/JPH05233331A/ja
Publication of JPH07104791B2 publication Critical patent/JPH07104791B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】
【0002】この発明は、一般的に、マルチタスキング
オペレーティングシステム内でアプリケーションタスク
を開始するための改良された方法に関し、特に、一回セ
ットアップされて実行されたタスクが、セットアップ、
アイドル状態に保持され、利用可能なタスクのプールを
形成する最適構築方法に関する。
【0003】
【従来の技術】当業者に認識されるように、OS/2
(IBMの登録商標)マルチタスキングオペレーティン
グシステムにおいて、アプリケーションプログラム要求
は、アプリケーションプログラムインタフェース(AP
I)を介してオペレーティングシステムに形成される。
要求は、タスクを開始し、そのタスクは、プロセス、ス
レッドまたはセッションのいずれかである。
【0004】スレッドは、ワーク( プログラムがスレッ
ド内で実行する) の指名可能なユニットを識別する。プ
ロセスは、1 以上のスレッド及び関連するシステム資源
( メモリ、オープンファイル及びデバイスのような) の
集合である。セッションは、実質的なコンソール( キー
ボード、ビデオディスプレイまたはマウス) に関連する
1 以上のプロセスの集合である。
【0005】OS/2での実行の基本ユニットは、スレ
ッドである。システム内の各プロセスは、少なくとも1
つのスレッドを有する。スレッドは、スレッドのコンテ
キストとしてレジスタ値、スタック及びCPUモードか
らなる実行環境をプログラムコードに供給する。OS/
2は、自動的に各スレッドのために適正なコンテキスト
を保持する。アプリケーションは、1 つ以上のスレッド
を使用する。例えば、第2のスレッドでデータを印刷す
る間に、アプリケーションプログラムは、第1のスレッ
ドでディスケットから読む。スレッドは、システム資源
を有さない。それら自体の実行スタックの他に、スレッ
ドは、プロセスの資源を共有する。プロセスの全てのス
レッドが終了する時、OS/2は、プロセスを終了す
る。
【0006】OS/2内のプログラム資源は、プロセス
と呼称される論理ユニットにグループ化される。より正
確には、プロセスは、特定プログラムに割り当てられた
システム資源の集合である。例えば、プログラムにより
作成されたスレッド、メモリファイル及びデバイスは全
て、プロセスの部分となる。
【0007】OS/2がプログラムを開始する時にはい
つでも、始めに資源を「所有」するためにプロセスを作
成する。OS/2は、その後、プログラムをロードし、
コードを実行させるためにスレッドを開始する。プログ
ラムが付加的資源を割り当てる(または獲得する)時、
それらは、プロセスの部分となる。例えば、メモリセグ
メント、ファイル、キュー、セマフォア及びスレッド
は、プログラムが動的に割り当てる全ての資源である。
【0008】プロセスは、OS/2の DosExecPgm とい
うAPIで作成される。このAPIにより、呼び出し側
は、プロセスとしてディスクに、またはディスクから読
まれるプログラム(EXEファイル)を識別することが
できる。もし、プログラムが既に実行しているならば、
OS/2は、コードの新しい実行インスタンスで新しい
プロセスを作成する。
【0009】要求されたタスクがOS/2APIにより
セットアップされた後で、制御は、実行のためのアプリ
ケーションに渡される。制御がオペレーティングシステ
ムに戻った時、タスクは終了される。図1は、この従来
技術のプロセスを示すブロック図である。
【0010】OS/2オペレーティングシステムは、Os
borne McGraw-Hill 社から出版されたEd Iacobucciによ
るOS/2 Programmer^s Guideと名付けられた出版物
に詳細が記載される。
【0011】一般的に満足できるが、タスクのためのO
S/2スタートアッププロセスは、時間を浪費すると共
に、全体的なシステム性能を低下させうる。
【0012】
【発明が解決しようとする課題】この発明の目的は、ア
プリケーションタスクのセットアップに必要とされる時
間を短縮する方法を提供することにある。
【0013】
【課題を解決するための手段】この発明は、タスクが完
了した後に、APIにより一回セットアップされたタス
クがアイドル状態に保存されることによる方法を意図す
るものである。セットアップタスクは、プール内に保持
される。アプリケーションワーク要求に応じて、タスク
マネージャは、アプリケーションワーク要求に対応する
アイドルタスク(すなわち、アイドルスレッドまたはプ
ロセス)のためのプールを始めに検索する。もし、プー
ル内に対応するアイドルタスクが存在するならば、制御
は、実行のためのアプリケーションコードに渡る。も
し、利用可能なアイドルタスク、APIとしてのタスク
マネージャ機能及びそれを除いた従来の技術としてのタ
スクのセットアップが存在しないならば、アプリケーシ
ョンワークが完了する時に、タスクは、終了されるので
はなく、その識別子は、プール内に配置される。
【0014】
【実施例】まず本発明を示す図2を参照する。タスク
は、完了時に終了されるのではなく、セットアップに残
り、但し、アイドル状態にある。各セットアップタスク
を識別する識別子( すなわち、タスクがプロセスまたは
スレッドであるかを識別する) は、タスクがアイドルま
たはビジーであるかを識別する状態識別子と共にプール
22内に配置される。タスクマネージャ20は、第1
に、アプリケーションワーク要求がプール22内に対応
する利用可能なタスクを有するか否かを決定するために
タスクプール22を検索する。もし、それが有するか、
またはそれがアイドル状態ならば、その状態がビジーに
変更され(ブロック24)、また、制御がタスクアプリ
ケーションコードに渡される(ブロック26)。タスク
が完了された時、識別子の状態は、アイドルに戻され
(ブロック28)、タスクは、セットアップ、アイドル
状態のままとされる。
【0015】タスクマネージャ20は、また、要求され
たタスクに対応するタスクタイプがプール22に存在し
ない場合や、それがプール内にあってもビジー状態であ
る場合には、タスクをセットアップするためにAPI機
能を提供する(ブロック30)。ここで、図2に示され
るように、典型的に、タスクプールは、固有の識別子で
タスク(スレッドまたはプロセス)のそれぞれの所定の
タイプの複数の事象を有することに注意されたい。
【0016】タスクが完了とされる時、その識別子は、
プール22内に配置され、タスクは、セットアップ、ア
イドル状態のままとされる(ブロック32)。この発明
の好適な一実施例では、プールに入力されるタスクの選
択基準はないが、入力されるタスクの全体的な数には制
限がある。ここで、また、好ましくは、タスクの各タイ
プ(すなわち、プロセスまたはスレッド)のために別々
のプールがあり、所定のプールでは、アイドルタスクが
交換可能に使用されることに注意されたい。一般的に、
所定プール内のタスク数は、タスクのそのタイプが呼び
出される頻度の関数である。このように、プールを構築
することは、動的な相互作用のプロセスであることが認
識される。タスクの各タイプのためのタスクマネージャ
があり、好ましくは、単一のタスクマネージャは、全て
のタスクに役立つ。
【0017】図2に加えて図3を参照する。アプリケー
ションは、タスクマネージャ20を介して要求を作成す
る。要求は、タスクDLL及び処理手順名、タスクタイ
プ及び付加的な実行パラメータを含む。タスクマネージ
ャは、要求されたタスク識別子及び戻りコードを出力す
る。始めに、タスクマネージャは、対応するアイドルタ
スク識別子のためにプール22を検索する(図3のブロ
ック38)。もし、利用可能なものが存在しないなら
ば、新しいタスクが確立される(ブロック40)。もし
利用可能ならば、アイドルタスクは、確保され(ブロッ
ク41)、要求されたワークのパラメータは、タスク内
に確立される(ブロック42)。それは、さらに、図4
に関連して説明されよう。タスクマネージャは、その
後、オペレーションを呼び出し側に戻す(ブロック4
4)。同期要求に応答して、呼び出し側に戻る前に、タ
スクマネージャは、アプリケーションワーク要求の完了
を待つ。
【0018】図4を参照して、プール22内のアイドル
タスクがタスクマネージャ20からのワーク要求と対応
する時、要求に応答して、タスクの状態は、ビジーに変
更される(ブロック46)。タスクマネージャは、要求
されたタスクのためにDLLをロードし、要求された処
理手順のために、エントリーポイントアドレスを獲得す
る(ブロック48)。制御は、その後、ブロック50で
アプリケーションエントリーポイントに渡され、ブロッ
ク52でアプリケーションのロジックが実行される。タ
スクが完了されると、タスクの状態は、ブロック54で
アイドルに変更される。もし、要求されるならば、タス
クマネージャは、タスクが完了したという通知を提供す
る。
【図面の簡単な説明】
【図1】OS/2システム構成の従来技術のブロック図
である。
【図2】この発明の開示による全体的構成のブロック図
である。
【図3】タスクマネージャオペレーションの流れ図であ
る。
【図4】タスクプールオペレーションの流れ図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 サリー・エイ・ズーポンチック アメリカ合衆国、テキサス州ハースト、エ バーグリーンドライブ 532 (56)参考文献 特開 昭63−150735(JP,A) インターフェース、第11巻、第7号、 1985年7月、CQ出版(株)、220−222頁

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】マルチタスク・コンピュータ・オペレーテ
    ィング・システムにおいて、タスクの状態をプールに構
    築する方法であって、前記オペレーティング・システム
    はアプリケーション・プログラム・ワーク要求に応じて
    タスクを確立し、前記タスクの状態は、ビジー状態又は
    アイドル状態を示す状態識別子として前記プールに確立
    され、 前記オペレーティング・システムが、前記タスクがプロ
    セス、スレッド、又はセッションのうち何れかであるこ
    とを示す識別子を生成するステップと、 アプリケーション・プログラム・ワーク要求に一致する
    前記状態識別子がアイドル状態のタスクが、前記プール
    に存在するかどうかを検索するステップと、 前記検索ステップで前記要求に対応するアイドル状態の
    タスクが存在しなかった場合には、オペレーティング・
    システムのアプリケーション・プログラム・インタフェ
    ース・ルーチンによって前記要求に対応するタスクを構
    築するステップと、 前記構築されたタスクが実行する時に、前記タスクの識
    別子と共に前記タスクがビジー状態であることを示す状
    態識別子を前記プールに蓄積するステップと、 前記検索ステップで前記要求に対応する前記状態識別子
    がアイドル状態のタスクが存在する場合には、該タスク
    が実行する時に、前記該タスクの状態識別子をビジー状
    態に変更するステップと、 前記タスクを実行するステップと、 前記タスクの実行が終了した時に、前記タスクの状態識
    別子をアイドル状態に変更するステップと、 アプリケーション・プログラム・ワーク要求のたびに、
    前記各ステップを繰り返すステップと、 から成る前記方法。
JP4288380A 1991-12-18 1992-10-27 タスク状態構築方法 Expired - Lifetime JPH07104791B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US80998191A 1991-12-18 1991-12-18
US809981 1991-12-18

Publications (2)

Publication Number Publication Date
JPH05233331A JPH05233331A (ja) 1993-09-10
JPH07104791B2 true JPH07104791B2 (ja) 1995-11-13

Family

ID=25202657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4288380A Expired - Lifetime JPH07104791B2 (ja) 1991-12-18 1992-10-27 タスク状態構築方法

Country Status (3)

Country Link
US (1) US5355488A (ja)
EP (1) EP0547991A3 (ja)
JP (1) JPH07104791B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794240A (en) * 1992-05-26 1998-08-11 Fujitsu Limited Multi-threaded sorting system for a data processing system
DK0635784T3 (da) * 1993-07-23 2000-03-27 Siemens Ag Multiprocessorsystem.
JP3251400B2 (ja) * 1993-10-27 2002-01-28 株式会社日立製作所 分散処理システムにおけるタスク割当て方法及び分散処理システム
US5513351A (en) * 1994-07-28 1996-04-30 International Business Machines Corporation Protecting a system during system maintenance by usage of temporary filenames in an alias table
SE9404294D0 (sv) * 1994-12-09 1994-12-09 Ellemtel Utvecklings Ab sätt och anordning vid telekommunikation
US5644720A (en) * 1995-07-31 1997-07-01 West Publishing Company Interprocess communications interface for managing transaction requests
US6148323A (en) * 1995-12-29 2000-11-14 Hewlett-Packard Company System and method for managing the execution of system management
US6735770B1 (en) * 1998-04-27 2004-05-11 Sun Microsystems, Inc. Method and apparatus for high performance access to data in a message store
US6457064B1 (en) 1998-04-27 2002-09-24 Sun Microsystems, Inc. Method and apparatus for detecting input directed to a thread in a multi-threaded process
US7451444B2 (en) * 2003-09-30 2008-11-11 Sas Institute Inc. Computer-implemented system and method for managing service agents
US7739685B2 (en) * 2005-01-06 2010-06-15 International Business Machines Corporation Decoupling a central processing unit from its tasks
US20070169045A1 (en) * 2005-12-01 2007-07-19 Microsoft Corporation Component tagging
US8832711B1 (en) * 2007-12-31 2014-09-09 Emc Corporation User interface for event-driven state thread architecture
US8832698B1 (en) * 2007-12-31 2014-09-09 Emc Corporation Event-driven state thread architecture
CN109815007A (zh) * 2018-12-15 2019-05-28 平安科技(深圳)有限公司 基于云监控的线程控制方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463420A (en) * 1982-02-23 1984-07-31 International Business Machines Corporation Multiprocessor cache replacement under task control
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4897780A (en) * 1984-10-09 1990-01-30 Wang Laboratories, Inc. Document manager system for allocating storage locations and generating corresponding control blocks for active documents in response to requests from active tasks
JPS63150735A (ja) * 1986-12-16 1988-06-23 Nec Corp タスクの生成/削除制御方式
US5201049A (en) * 1988-09-29 1993-04-06 International Business Machines Corporation System for executing applications program concurrently/serially on different virtual machines
US5063500A (en) * 1988-09-29 1991-11-05 Ibm Corp. System for executing segments of application program concurrently/serially on different/same virtual machine
US5097533A (en) * 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
EP0408200A3 (en) * 1989-06-15 1991-10-23 Intellution Inc Using shared resident functions in a computer system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
インターフェース、第11巻、第7号、1985年7月、CQ出版(株)、220−222頁

Also Published As

Publication number Publication date
US5355488A (en) 1994-10-11
EP0547991A2 (en) 1993-06-23
EP0547991A3 (en) 1993-08-04
JPH05233331A (ja) 1993-09-10

Similar Documents

Publication Publication Date Title
US8028289B2 (en) Application execution apparatus and method for managing special threads to notify listeners of resource status changes
JPH07104791B2 (ja) タスク状態構築方法
US9189263B1 (en) Object synchronization in shared object space
US7406699B2 (en) Enhanced runtime hosting
JP3807588B2 (ja) マルチスレッド処理装置及び処理方法並びにマルチスレッドプログラムを格納したコンピュータ可読の記録媒体
US7171663B2 (en) External event interrupt for server-side programs
JPH02109136A (ja) 分散アプリケーシヨン・プログラムの実行方法
JPH07120299B2 (ja) マルチプロセッサシステムの試験方法
CN112346835A (zh) 一种基于协程的调度处理方法及系统
CN117472583A (zh) 一种操作系统中多进程动态绑定cpu核的方法
JP2002259146A (ja) アプリケーション実行装置及び方法
CN112286633A (zh) 基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质
JPH0683647A (ja) 汎用制御インターフェースを含むデータ処理システム
JPH0756753A (ja) オペレーティング・システム間のユーティリティ・ファンクションの共有方法およびシステム
JP2001306341A (ja) コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
JP3893136B2 (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
CN112764822A (zh) 操作系统启动方法、装置、设备及介质
CN109408336B (zh) 一种启动项监控方法、装置、终端及计算机可读介质
JPH1185545A (ja) 選択的なオブジェクトロッキングによるスレッド同期
US5758161A (en) Testing method for checking the completion of asynchronous distributed collective operations
JP3110185B2 (ja) 計算機システム
JP2001282560A (ja) 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
US7257582B2 (en) Load balancing with shared data
JP2001034489A (ja) オブジェクト指向型プログラム実行環境の実行制御方法
JPH04370838A (ja) 仮想計算機の起動方式