- Added visualization of allocated/places for resources

- Updated user manual accordingly with recent changes in the GUI

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@1127 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
elvez 2006-09-13 13:29:46 +00:00
parent 9c50d712f3
commit 5f0f9fed29
2 changed files with 14 additions and 6 deletions

View File

@ -704,7 +704,7 @@ Similarly, you can do the same with a resource allocation policy. The aforementi
buttons can be used to configure the policy's parameters, if there are any. buttons can be used to configure the policy's parameters, if there are any.
To know more about the other toolbar buttons, such as "Pause", "Play" and "Stop", To know more about the other toolbar buttons, such as "Pause", "Play" and "Stop",
see @xref{Controlling the simulation}. see @ref{Controlling the simulation}.
Normally, the window is split into three sections. Normally, the window is split into three sections.
@ -767,9 +767,11 @@ at a time greater than the current instant
@item @strong{Dark Grey} is used for terminated processes, threads and for exhausted requests and subrequests @item @strong{Dark Grey} is used for terminated processes, threads and for exhausted requests and subrequests
@end itemize @end itemize
The dynamic display for processes and threads simply consists of their "elapsed time" (the time they've Anyway, to improve readability, the state is also written in the second column of the view.@*
been given the processor) and "current priority", which is obviously their dynamic priority which may change
if the scheduling policy decides to do so. The dynamic display for processes and threads simply consists of their "elapsed time"/"required time"
(between parenthesis), and a "current priority" field, which is obviously their dynamic priority which may change
if the scheduling policy decides to do so. @*
Probably the format used to display requests is a bit less trivial (yes, I'm sarcastic), but since Probably the format used to display requests is a bit less trivial (yes, I'm sarcastic), but since
a request has no additional information other than its state, it makes sense to condense requests and a request has no additional information other than its state, it makes sense to condense requests and
@ -787,7 +789,11 @@ the state of the subrequest, and the numbers between parenthesis are its "elapse
You can interact with this widget in the same way you interact with the You can interact with this widget in the same way you interact with the
@ref{The Schedulables/Requests tree, Schedulables tree}, but since it's a plain @ref{The Schedulables/Requests tree, Schedulables tree}, but since it's a plain
list, not a tree, it's much more simpler. list, not a tree, it's much more simpler. As you may have guesses, since a resource has
no elapsed and required time, the numbers between parenthesis must be something else.
And you are right! The numbers displayed just after the resource name are the
"allocated"/"places", that is, the number of subrequests for that resource currently allocated
"over" the number of places of the resource.@*
So let's get to the hot stuff: when the simulation moves from the boring stopped state So let's get to the hot stuff: when the simulation moves from the boring stopped state
to a running or paused state, below each resource will be displayed the subrequests queue. to a running or paused state, below each resource will be displayed the subrequests queue.

View File

@ -287,10 +287,12 @@ ResourcesWidget::_on_cell_name_data(Gtk::CellRenderer* cr,
std::ostringstream oss; std::ostringstream oss;
oss << "<small><b>" << resource.get_name() << "</b>\n";
const Environment::SubRequestQueue& queue = env.get_request_queue(key); const Environment::SubRequestQueue& queue = env.get_request_queue(key);
oss << "<small><b>" << resource.get_name() << "</b>";
oss << " (" << queue.size() << "/" << resource.get_places() << ")\n";
for(Iseq<Environment::SubRequestQueue::const_iterator> it = iseq(queue); it; ++it) for(Iseq<Environment::SubRequestQueue::const_iterator> it = iseq(queue); it; ++it)
{ {
SubRequest& sr = *(*it); SubRequest& sr = *(*it);