 | Hi Chris,
Thanks for the reply. The information you provided is invaluable. There is a side of me which would like to go through with the second option you have provided me. It seems far more interesting to me and is riddled with problems that intrigue me. However, I lost a few weeks of time because of my grandmother's death and the first option seems much more practical. Not to mention, I already have a look up table built in that associates incoming messages with a particular sequence and its deadline and the fact that the second option is still a work in progress.
So let's go ahead with the first option. Can you give me some guidance on how to implement such a policy? Where and how do I specify the deadlines? How do I set the policy earliest deadline first? Do I register all messages or just the messages associated with sequences with deadlines? (Not all sequences have deadlines). How do I register such messages?
Here is a line of code. As u can see, the rt_info structure is null.
supplierPublications.insert( this->myEventSource,// Supplier's unique id *j, // Event type 0, // handle to the rt_info structure 1); // number of calls
I greatly appreciate the help you're giving me.
Thanks, Jas
-----Original Message----- From: Chris Gill [mailto:cdgill@cse.wustl.edu] Sent: Thursday, January 20, 2005 2:05 PM To: Jaswinder S. Ahluwalia Cc: schmidt@cs.wustl.edu; tao-users@cs.wustl.edu Subject: Re: [tao-users] End To End QoS
Hi Jas,
Sorry again for the long delay responding - I've finally gotten back on top of things and am ready to rejoin the discussion.
To catch back up on the discussion, if I understand correctly the diagram you sent shows that the "sequences" you're trying to schedule are partially ordered sets of messages, with constraints that could range anywhere from ensuring a total order (for example, a before b before c before d before e) to allowing any order whatsoever - is that right?
Assuming I have the right picture, I see two ways to go about scheduling them:
(1) The simplest way is to just have a deadline for the entire sequence (kept say in a table, indexed by the sequence id) and then schedule each message according to that deadline. That would ensure that any combination of messages contending to be scheduled that are from the same sequence would be treated equivalently. That would then let you implement sequence scheduling directly using EDF.
(2) If you want to exploit what knowledge you do have (for example, registering supplier-consumer dependencies with the scheduler and then exporting that graph from the scheduler, or writing a new scheduling strategy that could reflect on those dependencies), you could take the more difficult route of expressing progress along a particular chain of dependencies in your messages and then using that information to enforce particular policies for the scheduling order of messages within a sequence.
For example using the sequence example you gave earlier, if messages a and b have already been scheduled previously and then messages c and d arrive and are contending for scheduling, knowing that c was the end of a chain and d was the start of a chain within the overall sequence could be a key factor for how the scheduler should order c and d relative to each other.
We've written a paper on this more selective kind of scheduling for the upcoming RTAS conference, which you can find at
www.cse.wustl.edu/~venkita/publications/subramonianv_groupsched.pdf
which shows that this kind of approach is useful for applications requiring more sophisticated scheduling decisions than are offered by simpler heuristics like EDF, RMS, etc. We are working toward a version of the middleware scheduler described there that is portable across OS platforms and is integrated into ACE and TAO, but that is still an ongoing background task at present.
Hope this helps, and please let me know your thoughts on which of these two approaches best matches the needs of the application domain(s) you're planning to address.
Thanks,
Chris
-------------------------------------------------------------------------- Chris Gill, Assistant Professor Bryan 506 Department of Computer Science and Engineering (314) 935-7538 Campus Box 1045, Washington University cdgill@cse.wustl.edu One Brookings Drive, St. Louis, MO 63130 www.cse.wustl.edu/~cdgill/ --------------------------------------------------------------------------
On Tue, 18 Jan 2005, Jaswinder S. Ahluwalia wrote:
> Hi Everyone, > > I was having a discussion regarding specifying and implementing end-to-end > qos requirements in the real time event service. Mainly, it was Chris who > was engaing in the discussion, but he left on vacation and two weeks ago my > grandmother passed away so I've been out of the country. I would like to > continue the discussion and get some help on how to have the rt event > service enforce a qos requirement on a sequence of messages. How do I > specify the timing requirement? How do I specify the dependencies? Etc. etc. > > > I look forward to your responses. > > Thanks, > Jas >
|
|