Most Important First (MIF) Scheduler ==================================== Table of contents ----------------- 1. Introduction 2. Conf file parameters 3. Running the example. 1. Introduction --------------- This scheduler manages a ready queue of Distributable Threads (DTs) ordered by their importance and suspended on a condition variable. AT any given time the scheduler dequeues the DT at the head of the queue, that corresponds to the most important thread, and signals the thread to activate it. The service context is used to send the importance and GUID of the DT across hosts it spans so the DT can be scheduled accordingly on the remote host. In this experiment we show how dynamic scheduling is done using the Dynamic Scheduling framework with the MIF Scheduler as the pluggable scheduler. At any given instance the DT of highest priority is running on a given host. The experiment consists of the following participants: Job: A CORBA servant object that performs CPU intensive work. The amount of work depends on a load factor that is conveyed to the object per invocation as an argument. DT_Task: The distributable thread is a scheduling segment spanning one or more hosts. test: The test consists of a collection of Jobs and DTs hosted in a single process. The test reads a configuration file that can be used to initialize DTs and Jobs. Starter: The starter initiates the start of DTs on each host that the test is running on. This is to ensure that the experiment starts at the same time on all hosts. 2. Conf file parameters -------------------- POA OPTIONS ========== To specify POA options the format is: -POACount -POA -PriorityModel -Lanes (-Lane , )* -Bands (-Band )* e.g. -POACount 2 -POA poa1 -PriorityModel CLIENT 10 -Bands 2 -Band 1 20 -Band 30 85 -Lanes 2 -Lane 10 1 0 -Lane 80 1 0 specifes a POA with: POA Count - Specifies the number of POAs that need to be activated. The following characteristics of each POA needs to be specified. Name - poa1 Priority model - client propogated, def. priority = 10 Bands - 2 Bands with Band values as follows - Band 1 : low priority = 1, high priority = 20 Band 2 : low priority = 30, high priority = 85 Lanes - 2 Lanes with Lane values as follows - Lane 1 : priority = 10, 1 static thread, 0 dynamic threads Lane 2 : priority = 80, 1 static thread, 0 dynamic threads Distributable Thread Task Options ================================= The format to specify a DT Task is: -DT_Count -DT_Task Importance -Start_Time