JPH09146898A - プロセッサ割当て制御方法 - Google Patents

プロセッサ割当て制御方法

Info

Publication number
JPH09146898A
JPH09146898A JP30443995A JP30443995A JPH09146898A JP H09146898 A JPH09146898 A JP H09146898A JP 30443995 A JP30443995 A JP 30443995A JP 30443995 A JP30443995 A JP 30443995A JP H09146898 A JPH09146898 A JP H09146898A
Authority
JP
Japan
Prior art keywords
processor
processors
allocation
group
allocation control
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.)
Pending
Application number
JP30443995A
Other languages
English (en)
Inventor
Mitsuhiro Shimura
光弘 志村
Fujio Fujita
不二男 藤田
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.)
Hitachi Software Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Hitachi Ltd
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 Hitachi Software Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP30443995A priority Critical patent/JPH09146898A/ja
Publication of JPH09146898A publication Critical patent/JPH09146898A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 複数の並列プログラムを効率よく動作させる
プロセッサ割当て制御を可能にする。 【解決手段】 割当て制御ファイル117は、プロセッ
サ102〜105を複数の区画に分割し、区画単位にプ
ロセッサをどのユーザやグループに使用許可を与えるか
を登録している。OSサーバ114は、割当て制御ファ
イル117から生成した制御テーブルを保持している。
並列プログラムが区画名と必要プロセッサ数を指定して
プロセッサ割当て要求を発すると、OSサーバ114
は、当該区画より他の並列プログラムでは使用されてい
ないプロセッサ群を割当てる。並列プログラムでは、該
割当てられれたプロセッサ群にプロセスを生成し、その
子や孫プロセスにも該プロセッサ群に対するプロセス生
成の権限を継承させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術】本発明は、複数のプロセッサ間を
ネットワークで結合したマルチプロセッサ型並列計算機
システムにおいて、複数の並列プログラムを動作させる
運用に好適なプロセッサの割当て制御方法に関する。
【0002】
【従来の技術】従来、複数のプロセッサ間をネットワー
クで結合したマルチプロセッサ型並列計算機システム用
オペレーティングシステムのプロセス生成方式として
は、親プロセスから子プロセスを生成するシステムコー
ルに、プロセス生成を行う対象のプロセッサの番号を指
定し、そのプロセッサ上に子プロセス生成を行う方法が
ある(例えば、An OSF/1 UNIX for Massive
ly Parallel Multicomputers,Proceedings of the
Winte 1993 USENIX Conference,P.
449−468, USENIX association参照)。
【0003】
【発明が解決しようとする課題】並列プログラムは、最
初に起動されるプロセス(ホストプロセス)でパラメー
タ/データ入力等の前処理を実行した後で、ホストプロ
セスより複数の子プロセスを生成して並列処理を実行さ
せることが多く、また子プロセスからさらに孫プロセス
を生成して、より複雑な並列処理を実行させることも少
なくない。したがって、複数の並列プログラムで1台の
並列計算機システムを使用する場合、従来のような方法
では、各々の並列プログラムはシステム内の任意のプロ
セッサにプロセスを生成できるため、プロセッサを競合
して使用することになり、効率的に並列計算機を使用で
きないという問題点があった。
【0004】また、従来の方法において、プロセッサ上
に1つのプロセスが動作している間は、他のプロセスの
生成を禁止する方法も可能であるが、並列プログラムに
よっては、1プロセッサ上に並列プログラム固有の数の
プロセスを生成したい場合があり、これに対応できない
という問題点があった。
【0005】さらに、複数のユーザが複数の並列プログ
ラムを同一の並列計算機で動作させる場合に、ある特定
ユーザや、特定のグループに属するユーザごとにプロセ
ッサの使用数を許可したり、そのようなユーザごとに使
用プロセッサ数の上限値を設定するこができないという
問題点があった。
【0006】本発明の目的は、プロセッサをプロセッサ
毎に並列プログラムに効率よく割当て、そのプロセッサ
にどれだけプロセスを生成するかは、その並列プログラ
ムにのみより決定できるようなプロセッサ割当て制御方
法を提供することにある。
【0007】
【課題を解決するための手段】本発明は、複数のプロセ
ッサ間をネットワークで結合したマルチプロセッサ型並
列計算機システムにおいて、複数のプロセッサを複数の
区画に分割して、区画単位にプロセッサの使用許可条件
を制御テーブルに保持し、ホストプロセスより区画とプ
ロセッサ数を指定することにより、前記制御テーブルを
検索して、指定された区画より他の並列プログラムで使
用されていない複数のプロセッサにプロセス生成する権
限を確保し、該確保したプロセッサ群の任意のプロセッ
サに任意の数の子プロセスを生成することを特徴とす
る。
【0008】さらに、本発明は、プロセッサにプロセス
生成を実行する権限を、上記ホストプロセスからその子
や孫のプロセスに継承することを特徴とする。
【0009】制御テーブルは、プロセッサを複数の区画
に分割し、区画単位にプロセッサをどのユーザやグルー
プに使用許可を与えるかを登録管理する。ホストプロセ
スは、区画の名前と必要なプロセッサの数を指定して、
他の並列プログラムで使用されていないプロセッサにプ
ロセス生成を実行する権限を示す番号を得る。即ち、こ
の権限は、このホストプロセスに割当てられたプロセッ
サ群(以下、ノードグループと呼ぶ)を表す。
【0010】ホストプロセスでは、上記権限を表す番号
とノードグループ内で一意な相対番号の配列を指定し
て、ノードグループ内の任意のノードに任意の数のプロ
セスを生成する。また、上記権限を親プロセスから子プ
ロセスに継承させることにより、同じ並列プログラムに
属するプロセスは、全て同一ノードグループ上に任意の
プロセス生成が可能となる。
【0011】
【発明の実施の態様】以下、本発明のプロセッサ割当て
制御方式の一実施例を図面を用いて詳細に説明する。
【0012】図1は、本発明で対象とするマルチプロセ
ッサ型並列計算機システムの一構成例を示す図である。
図1において、並列計算機100は、複数のプロセッサ
101〜105を高速ネットワーク118を介して相互
に結合することにより構成されており、プロセッサ10
1にはコンソール115およびディスク装置116が接
続されている。プロセッサ102〜105では、それぞ
れOSエージェント110〜113が動作しており、ユ
ーザプロセス106〜109からのシステムコールの受
付けを行う。一方、プロセッサ101では、OSエージ
ェント110〜113の呼び出しに応じて処理を実行す
るOSサーバ114が動作しており、コンソール115
やディスク装置116への出力処理など、OSエージェ
ント110〜113だけでは完結しない処理を実行す
る。ディスク装置116は、プロセッサを複数の区画に
分割し、区画単位にプロセッサの使用許可を登録管理す
るための割当て制御ファイル117を保持している。O
Sサーバ114は、後述するように、この割当て制御フ
ァイル117から生成される制御テーブルを管理してい
る。
【0013】図2は、割当て制御ファイル117の一例
を示す図である。本例では、並列計算機100の各プロ
セッサは三次元の座標により特定され、X座標、Y座
標、Z座標は各0から4までの整数値をとり、総プロセ
ッサ数が125である場合の記述を示す。図2におい
て、行201〜203は、各々区画partition1、parti
tion2、partition3の定義を行っている。欄204
は、区画の名称を記述する。欄205は、区画の形状を
指定する。例えば、行201の(0,*,*)は、X座
標は0、Y座標とZ座標は0から4までの任意の整数で
現される25プロセッサからなる区画であることを示
す。欄206は、どのユーザにその区画のプロセッサを
いくつまで割当てを許可するかを示す。例えば、行20
1のuser1(5),user2(5)は、ユーザuser1に5
プロセッサ、ユーザuser2にも5プロセッサの割当てを
許可することを示す。欄207は、どのグループ(特定
ユーザグループ)にその区画のプロセッサをいくつまで
割当てを許可するかを示す。例えば、行201のgroup
1(15)は、グループgroup1に15プロセッサの割
当てを許可することを示す。割当て制御ファイル117
は、あらかじめオペレータがコンソール115を用いて
作成し入力することにより、OSサーバがディスク装置
116に格納し、その後、必要に応じて読み出して利用
する。
【0014】図3に、本発明のプロセッサ割当て制御方
法を利用する並列プログラムの一例のフローチャートを
示す。本プログラムは、バイナリソートを行うためのプ
ログラムにおいて、特に本発明のプロセッサ(ノード)
割当て制御に関連する部分を記述したものである。ここ
では、プロセッサ102のプロセス106をホストプロ
セスとし、プロセッサ103〜105中の所望のノード
グループを割り当てて、バイナリソートを並列処理する
場合を仮定する。
【0015】図3において、プロセッサ102のホスト
プロセスは、プログラム起動の完了後(ステップ30
1)に、OSエージエント110、OSサーバ114を
介して、コンソール115からユーザが指定する実行区
画名やプロセス当りの計算量の上限値Xなどの実行環境
を読み込む(ステップ302)。次に、ホストプロセス
は、ディスク装置116等の所定のファイルから処理対
象データを読み込み(ステップ303)、特定の閾値で
データを2分割する計算を行う(ステップ304)。そ
して、コンソール115より入力された区画名とプロセ
ッサ数を指定して、プロセッサ101のOSサーバ11
4に対してMPP_NALLOCシステムコ―ルにより
必要なノードグループの割当て要求をする(ステップ3
05)。割当てが完了すると、OSサーバ114は、ホ
ストプロセスに対して当該ノードグループに対応する番
号を返す。次に、プロセッサ101のOSサーバ114
に対して、MPP_FORKシステムコールによりプロ
セスの生成を要求する(ステップ306)。プロセッサ
が8つから成るノードグループを割当てたと仮定する
と、MPP_FORKシステムコ―ルでは、ノードグル
ープ中の各プロセッサをノードグループ内の相対番号0
から7で特定し、これらの番号の配列とMPP_NAL
LOCシステムコールでOSサーバ114が返したノー
ドグループに対応する番号を指定することにより、該ノ
ードグループ中の任意のプロセッサに任意の数のプロセ
スを生成できる。割当てが完了後、例えばプロセッサ1
02のホストプロセス106が配列(0、1)を指定し
て、MPP_FORKシステムコ―ルを発行することに
より、OSサーバ114では、プロセッサ103〜10
5中の相対番号0のプロセッサと相対番号1のプロセッ
サにプロセスを生成し、閾値より下のデータに対するソ
ートのための計算を相対番号0のプロセッサ上のプロセ
スに、閾値より以上のデータに対するソートのための計
算を相対番号1のプロセッサ上のプロセスに分担させ
る。さらに、例えば相対番号0のプロセッサ上のプロセ
スは、ある閾値で当該データを2分割する計算を行った
後、配列(2)を指定して、MPP_FORKシステム
コ―ルを発行することにより、相対番号2のプロセッサ
に子プロセスを生成し、閾値より大きなデータに対する
ソートのための計算を分担させる。
【0016】以下、親プロセスと子プロセス、さらには
孫プロセスで各々MPP_FORKシステムコ―ル(ス
テップ306)を繰り返すことにより、プロセス当りの
計算量が実行環境で指定された値以下になるまで(ステ
ップ308)、例えば、プロセッサ当り2プロセスまで
データの2分割計算(ステップ307)とMPP_FO
RKシステムコ―ル(ステップ306)によるプロセス
生成を実行する。プロセス起動後、各プロセッサの各プ
ロセスは並列に処理(図3ではソート処理)を実行する
(ステップ309)。
【0017】図4は、図3の並列プログラムを実行して
得られるプロセス生成完了時のノードグループの状態を
示したものである。ここで、401〜408はプロセッ
サを示し、401から昇順に0から始まる相対番号で特
定できるプロセッサを示す。409〜424は各プロセ
ッサ上で動作するプロセスを示す。なお、430はプロ
グラム起動元のプロセッサ、431はそのホストプロセ
スを示す。
【0018】図5は、図1のプロセッサ101上のOS
サーバ114が管理する制御テーブルの形式の一例を示
す。区画管理制御テーブル510は、図2で定義された
例えば区画partition1に対応し、システム起動時に、
図1のディスク装置116内の割当て制御ファイル11
7を読み込むことで生成される。該区画管理制御テーブ
ル510は、区画名511、次の区画管理制御テーブル
へのポインタ512、ビットマップ520へのポインタ
513、ユーザ割当て許可制御テーブル530へのポイ
ンタ514及びグループ割当て許可制御テーブル530
へのポインタ515を保持している。ビットマップ52
0は、当該区画(例えばpartition1)内のプロセッサ
の割当て状態を示し、例えば「×」印は割当てずみを示
している。ユーザ割当て許可制御テーブル530は、ユ
ーザID531、次のユーザ割当て制御テーブルへのポ
インタ532、該当ユーザの上限プロセッサ割当て数5
33、該当ユーザの現プロセッサ割当て数534を保持
する。グループ割当て許可制御テーブル540も同様で
あり、グループID541、次のグループ割当て制御テ
ーブルへのポインタ542、該当グループの上限プロセ
ッサ割当て数543、該当グループの現プロセッサ割当
て数544を保持する。プロセス制御テーブル550
は、プロセスごとに存在し、プロセスID551、子プ
ロセスの同様のプロセス制御テーブル580へのポイン
タ552、ユーザID553、グループID553、ノ
ードグループエントリテーブル560へのポインタ55
5を保持する。ノードグループエントリテーブル560
は、初めてMPP_NALLOCシステムコ―ルが成功
した時に生成され、これをプロセス制御テーブル55
0,580等のノードグループエントリポインタ55
5,585がポイントする。ノードグループエントリテ
ーブルは、その後MPP_NALLOCが成功する度に
新たに作成され、NEXTポインタ562を辿って最後
のノードグループエントリテーブルからポイントされ
る。ここで、例えばノードグループエントリテーブル5
60からは、ノードグループポインタ561によりノー
ドグループ構成テーブル570がポイントされる。ノー
ドグループ構成テーブル570は、当該ノードグループ
を構成するプロセッサの絶対座標が、相対番号順に格納
される。
【0019】図6は、MPP_NALLOCシステムコ
―ルに対するOSサーバ114の処理概要を示す。ホス
トプロセスからMPP_NALLOCシステムコ―ルが
発行されると、そのプロセッサのOSエージェントで処
理を受付け、OSサーバ114に区画名とプロセッサ数
を指定してプロセッサの割当て要求を送信する(ステッ
プ601)。OSサーバ114では、区画名から図5の
該当する区画管理制御テーブル(ここでは510とす
る)を見つける(ステップ602)。次に、当該区画管
理制御テーブル510につらなるユーザとグループの割
当て許可制御テーブルにより割当て許可状態と、グルー
プとユーザ毎の割当て上限値をチェックする(ステップ
603,604)。割当て許可されたユーザであれば、
次に、ビットマップ520により必要なプロセッサが割
当て可能かをチェックする(ステップ605)。割当て
可能であれば、ビットマップを更新後(ステップ60
6)、割当て許可制御テーブル530,540等のカレ
ント割当て数を更新する(ステップ607)。そして、
図5の例えばノードグループ構成テーブル570を作成
し(ステップ608)、さらに、そのノードグループエ
ントリテーブル560を作成する(ステップ609)。
なお、既存のノードグループエントリテーブルがあれ
ば、その最後のエントリテーブルよりポイントする。最
後に、OSサーバ114は、作成したノードグループエ
ントリテーブル560の番号をノードグループ番号とし
て、ホストプロセスのOSエージェントに戻す(ステッ
プ610)。
【0020】これにより、他の並列プログラムで使用さ
れていないプロセッサ群(ノードグループ)にプロセス
生成する権限が確保され、その中の任意のプロセッサに
任意の数のプロセスを生成できるようになる。
【0021】図7は、MPP_FORKシステムコ―ル
に対するOSサーバ114の処理概要を示す。あるプロ
セスからMPP_FORKシステムコールが発行される
と、そのプロセッサのOSエージェントは、指定された
ノードグループ番号と該グループ内の相対番号の配列を
OSサーバ114に送信する(ステップ701)。OS
サーバ114では、ノードグループ番号が、図5のプロ
セス制御テーブル(ここでは550とする)からポイン
トされているノードグループエントリテーブルの数より
小さく(ステップ702)、プロセス生成を要求された
プロセッサの相対番号がノードグループ番号で特定され
る例えばノードグループ構成テーブル570のエントリ
数より小さい(ステップ703)場合に、該当するノー
ドグループ構成テーブル570中のエントリに格納され
た絶対座標のプロセッサへのプロセス生成を実行する
(ステップ704)。プロセス生成完了後、新たなプロ
セスに対応する例えばプロセス制御テーブル580を作
成し(ステップ705)、親プロセスがポイントするの
と同じ例えばノードグループエントリテーブル560を
ポイントさせる(ステップ706)。最後に、OSサー
バ114は該当OSエージェントに制御を戻す(ステッ
プ707)。
【0022】このようにして、ホストプロセスで確保し
たプロセッサ群の任意のプロセッサにプロセス生成を実
行する権限が、ホストプロセスの子・孫プロセスに継承
される。
【0023】
【発明の効果】以上詳しく説明したように、本発明のプ
ロセッサ割当て制御方法によれば、並列プログラムに対
するプロセッサ割当て制御において、他の並列プログラ
ムで使用されていないプロセッサ群を効率よく割当て、
その各プロセッサにどれだけプロセスを生成するかは、
その並列プログラムによりのみ決定できるという効果が
得られる。
【図面の簡単な説明】
【図1】本発明のプロセッサ割当て制御方法を適用する
並列計算機システムの一構成例を示す図である。
【図2】本発明における割当て制御ファイルの一例を示
す図である。
【図3】本発明のノード割当て制御方法を利用する並列
プログラムの一例を示す図である。
【図4】図3の並列プログラムを実行して得られるプロ
セス生成完了時のノードグループの状態の一例を示す図
である。
【図5】本発明のノード割当て制御方法を実現するため
にOSサーバが管理する制御テーブルの形式の一例を示
す図である。
【図6】図3のMPP_NALLOCシステムコ―ルの
処理の概要を示すフローチャートである。
【図7】図3のMPP_FORKシステムコ―ルの処理
の概要を示すフローチャートである。
【符号の説明】
100 並列計算機 101〜105 プロセッサ 106〜109 ユーザプロセス 110〜113 OSエージェント 114 OSサーバ 115 コンソール 116 ディスク装置 117 割当て制御ファイル 510 区画管理制御テーブル 520 ビットマップ 530,540 ユーザ/グループ割当て許可制御テー
ブル 550,580 プロセス制御テーブル 560 ノードグループエントリテーブル 570 ノードグループ構成テーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤田 不二男 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサ間をネットワークで結
    合したマルチプロセッサ型並列計算機システムにおける
    並列プログラムに対するプロセッサ割当て制御方法であ
    って、 複数のプロセッサを複数の区画に分割し、区画単位にプ
    ロセッサの使用許可条件を制御テーブルに保持し、 ホストプロセスより区画とプロセッサ数を指定すること
    により、前記制御テーブルを検索して、指定された区画
    より他の並列プログラムで使用されていない複数のプロ
    セッサにプロセス生成する権限を確保し、 前記ホストプロセスで確保したプロセッサ群の任意のプ
    ロセッサに任意の数の子プロセスを生成することを特徴
    とするプロセッサ割当て制御方法。
  2. 【請求項2】 請求項1記載のプロセッサ割当て制御方
    法において、プロセッサにプロセス生成を実行する権限
    を、前記ホストプロセスからその子孫プロセスに継承す
    ることを特徴とするプロセッサ割当て制御方法。
JP30443995A 1995-11-22 1995-11-22 プロセッサ割当て制御方法 Pending JPH09146898A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30443995A JPH09146898A (ja) 1995-11-22 1995-11-22 プロセッサ割当て制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30443995A JPH09146898A (ja) 1995-11-22 1995-11-22 プロセッサ割当て制御方法

Publications (1)

Publication Number Publication Date
JPH09146898A true JPH09146898A (ja) 1997-06-06

Family

ID=17933028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30443995A Pending JPH09146898A (ja) 1995-11-22 1995-11-22 プロセッサ割当て制御方法

Country Status (1)

Country Link
JP (1) JPH09146898A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438553B1 (en) 1998-12-28 2002-08-20 Nec Corporation Distributed job integrated management system and method
WO2008096390A1 (ja) * 2007-02-02 2008-08-14 Sony Computer Entertainment Inc. 仲介サーバ、端末、及び分散処理方法
JP2011003220A (ja) * 2000-10-24 2011-01-06 Microsoft Corp 共同ロケーション施設内のコンピュータの障害を検出するための方法
US8997238B2 (en) 2008-03-28 2015-03-31 Fujitsu Limited Management device of hardware resources

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438553B1 (en) 1998-12-28 2002-08-20 Nec Corporation Distributed job integrated management system and method
JP2011003220A (ja) * 2000-10-24 2011-01-06 Microsoft Corp 共同ロケーション施設内のコンピュータの障害を検出するための方法
WO2008096390A1 (ja) * 2007-02-02 2008-08-14 Sony Computer Entertainment Inc. 仲介サーバ、端末、及び分散処理方法
JPWO2008096390A1 (ja) * 2007-02-02 2010-05-20 株式会社ソニー・コンピュータエンタテインメント 仲介サーバ、端末、及び分散処理方法
JP4885871B2 (ja) * 2007-02-02 2012-02-29 株式会社ソニー・コンピュータエンタテインメント 仲介サーバ、端末、及び分散処理方法
US8935372B2 (en) 2007-02-02 2015-01-13 Sony Corporation Mediation server, terminals and distributed processing method
US8997238B2 (en) 2008-03-28 2015-03-31 Fujitsu Limited Management device of hardware resources

Similar Documents

Publication Publication Date Title
US5325526A (en) Task scheduling in a multicomputer system
US4901231A (en) Extended process for a multiprocessor system
US5555427A (en) Distributed processing in a system of computers at terminals connected by a communication network
US6886100B2 (en) Disabling tool execution via roles
EP0272836A2 (en) Controlled dynamic load balancing for a multiprocessor system
US11271895B1 (en) Implementing advanced networking capabilities using helm charts
CN111061432A (zh) 一种业务迁移方法、装置、设备及可读存储介质
JPH09146898A (ja) プロセッサ割当て制御方法
JPH0713823A (ja) 仮想計算機システムにおけるファイル資源管理方式
Johnson et al. Space Efficient Parallel Buddy Memory Management.
Johnson et al. Parallel buddy memory management
JP3083575B2 (ja) マルチタスク制御方法および制御装置
JPH0512226A (ja) 複合電子計算機システム
JP2003076562A (ja) メモリ量的制御方法、装置、コンピュータプログラム及び記録媒体
JP2522161B2 (ja) 仮想計算機システムにおけるボリュ―ム資源管理方式
EP0097258B1 (en) Computing apparatus and method for operating the same
JPH086813A (ja) トレース制御方式
JPH02112030A (ja) 排他制御方式
JPH1040118A (ja) クライアント/サーバシステム及びクライアント端末装置
CN114185684A (zh) 大数据平台应用权限与资源的管理装置、方法及设备
JPH05165702A (ja) ファイル管理方法
JPH0922363A (ja) タスク構成方式
JPH04284537A (ja) オブジェクト指向システムにおける仮想クラス生成装置
JPS63178329A (ja) 資源管理方式
Johnson et al. Space E cient Parallel Buddy Memory Management University of Florida CIS TR# 92-008