comp.lang.ada
 help / color / mirror / Atom feed
* The ADA Rendevous
@ 1989-08-17 22:57 Krishan M Nainani
  1989-08-25 20:48 ` Roger Racine
  0 siblings, 1 reply; 2+ messages in thread
From: Krishan M Nainani @ 1989-08-17 22:57 UTC (permalink / raw)



[1mHi[m,

	I have a question about the Ada rendevous. 

	There are many tasks each with 1 entry and these tasks are scheduled
by calling a global scheduler from inside the entry call. So, initially any 
task is chosen and its entry is accepted and somewhere within the entry there 
is a call to the scheduler (which is global to these tasks). Next, the 
scheduler checks a data-structure which contains the varying importances of 
each task and then it executes that task's entry. This can be done.

But I am unsure as to how I can encode the following restriction which is 
illustrated in the following example:

	Task A was chosen to run and so it was entered at entry point AA.
Within the code of AA, there was a call to the scheduler which found that
task B is more important than task A and so task A should be suspended and
task B is entered at entry point BB. Within BB, there was a call to the 
scheduler which determined that task C (entry CC) should now run. Within CC,
it was found that task A (entry AA) is the most important and should be run 
now. HOWEVER, task A should be resumed at where it left off (i.e where it was
suspended). THIS IS THE PART THAT I DON'T KNOW HOW TO ENCODE IN ADA.
	This seems to involve manipulating the global task queue at runtime.
I doubt if I can do this in standard Ada but is it possible to accomplish 
this by interfacing to C (not Assembler) ? 

	[5;7mAnyone have any clues whatsoever?[m

Krishan Nainani	(tfrancis@wpi.wpi.edu)

	
	

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1989-08-25 20:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1989-08-17 22:57 The ADA Rendevous Krishan M Nainani
1989-08-25 20:48 ` Roger Racine

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox