Commit Graph

394 Commits

Author SHA1 Message Date
tchernobog e27ba77fed - Merge branch https://lowca.thgnet.it/swe/branches/0.3-r847--simplify-scheduler
revisions 846:897 into trunk, with approval and peer review of manager (Luca).


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@898 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-17 23:30:49 +00:00
tchernobog 2ff87baadf - Give finishing touches to PythonCPUPolicy: implement describe()
taking the __doc__ class attribute from the Python policy


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@896 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-17 22:04:25 +00:00
tchernobog 7447bf82ec - Re-enable SimulationWidget in the frontend
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@893 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-17 17:05:47 +00:00
tchernobog f42eea8514 - The problem with CairoWidget was that it did scale a pixmap of ~100x100
with a *factor* of ~640x480. That means ~64*48*10^6*3 bytes = a ~1.1 Gb RAM pixmap.
The problem didn't show in versions of cairo >= 1.2 because it automagically
clips (yeah, cairo programmers *are* smart :-))
It is temporary fixed for the moment, will be made better asap.


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@892 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-17 17:03:42 +00:00
elvez 09ad981251 - Make the schedulables widget do something useful, now that I know it was the simulation widget, not the schedulables one which completely put KO my system...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@889 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-16 23:56:28 +00:00
tchernobog 0b4db098eb - Add History::clear() to empty an existing history (equivalent
to removing all of its resources and all of its processes, but
faster)


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@887 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-16 21:25:08 +00:00
tchernobog 0933d63344 - Small change: we left some unused variables around, I removed them
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@886 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-16 21:13:52 +00:00
tchernobog 74ec2ed372 - Fix SIGSEGV: we were clearing the smart pointer instead of its contents!
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@885 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-16 16:58:05 +00:00
tchernobog b2b905427b - Minor change to use Iseq
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@873 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-15 18:29:06 +00:00
matrevis cfd7a025db - Added a best-effort preferences dialog:
the user may now add plugin directories,
  policy directories, and set the simulation
  speed.
- Added some menu voice to the main window.


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@872 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-15 17:33:47 +00:00
elvez 047f0b8f86 - Experimented a bit more with the treeview widget, with little success, It should segfault on selection of the menu entry "Add Process"
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@869 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-15 00:43:34 +00:00
tchernobog 45ef305a1b - Incapsulate code so that the hack we previously used in CPUPoliciesGatekeeper isn't needed anymore
- Now CPUPolicy has a callback method for scripting languages, but it is up to derived classes to take
mutexes and set the value when needed (maybe we can improve this?)


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@862 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-14 14:28:41 +00:00
tchernobog 390af1f09d - Add support for input sequences via template; this should simplify a little
iterating over containers


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@857 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-14 12:09:51 +00:00
elvez b1327341af - Mini commit: disabled a redundant line in test-python-loader
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@851 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-13 14:26:40 +00:00
elvez 1be6a9ca58 - All policy-related errors should now be handled. I hope this is the last time I say this...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@850 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-13 14:20:04 +00:00
tchernobog cb4f0e878d - Add printout on error. TODO: Still fails misteriously on malformed
policies


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@847 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-12 17:32:43 +00:00
tchernobog 9ff7502bb4 - This was an *evil* "chicken-or-egg-first" bug in CPUPoliciesGatekeeper. Now
CPUPolicy->activate() should run properly.


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@846 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-12 17:04:21 +00:00
tchernobog 59edb09c14 - Create SimulationWidget
- Drop the old SchedulablesWidget in favor of a simple Gtk::TreeView
- Update the GuiBuilder consequentially
- FIXME: in cairo_widget.cc : have we to scale the context before or after
drawing on it?


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@845 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-12 15:49:37 +00:00
tchernobog 51fdeea4d1 - Prettify textual simulation output, simplyfing the code, too.
- Fix return code on exit


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@844 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-12 13:33:28 +00:00
elvez 97d6f574af - Done some more experimental work on the tree widget, indeed I hoped gtk were a more developer-friendly toolkit than it is...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@843 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-12 00:35:40 +00:00
matrevis 69c8341384 - Scheduler completed.
- Added a wizard just for show, but there is no
  interesting cpu-scheduling policy to test it with
- Better textual output.


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@842 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-11 23:01:25 +00:00
elvez 436e401ae8 - Added a tree widget as a temporary replacement for the cairo-based one. it`s still incomplete, but I should get it working in no time now that I understand how to use it
NOTE: to use it _SG_SCHEDULABLES_TREE_WIDGET must be defined, which is obvioulsy not, by default

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@841 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-11 00:45:41 +00:00
matrevis 6a1e30b0a2 - Reconstructed step forward. There is still some visible bug in the
imlpementation, so this version should not be considered definitive.
please give me an other day to check it.


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@840 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-10 23:39:13 +00:00
elvez 17ca8156d9 - Completed policy-related error handling code
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@839 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-10 22:59:00 +00:00
elvez 48fc2f5a00 - Added still more error checking to PythonCPUPolicy. But the code which calls its methods should be updated to handle the new exceptions...
- Added a base class for cpu policy exceptions to make simpler their catching
- Implemented all numeric fields in dialogs with spinboxes, with bounds checking

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@838 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-10 00:42:17 +00:00
tchernobog d3c7b46853 - Give code a round of indentation. Thank astyle, not me.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@837 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-09 14:38:45 +00:00
tchernobog aaf8e068d3 - Add prompt display for my mental sanity sake, so I know when I can type something
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@836 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-09 14:13:41 +00:00
tchernobog 3968bc7cbd - Fix CPUPolicy.get_parameters() in Python with a simple yet effective hack
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@835 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-09 14:01:46 +00:00
tchernobog 86308ca185 - Revert back to old behaviour. Still wrong, but at least understandable
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@834 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-09 13:41:52 +00:00
tchernobog 72e562e803 - Try to make CPUPolicy.get_parameters() and RR-Priority work. Won't
run.


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@833 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-09 13:37:42 +00:00
elvez addad6aa26 - Applied Matteo`s tips to the error handling code. Now all loading errors whould be handled. Don`t know about runtime errors, though
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@832 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-09 13:24:42 +00:00
elvez 6911676b53 - Added some code for better error-reporting in case of malformed policies. Actually it`s commented because it doesn`t work...
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@831 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-09 00:50:45 +00:00
tchernobog e975bfdd0b - Bugfix to call History::notify_change when reenabling notifications
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@830 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-08 19:46:14 +00:00
elvez 0138387a7f - Added the LOAD command to TextSimulation, and the classic question made to user on replacing an unsaved simulation
- Changed the way syntactically incorrect python policies are handled, we no more exit abruptly

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@829 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-08 00:20:56 +00:00
matrevis d72ce96508 - Corrected a bug in step forward, which was incorrectly assuming
that the size of the history was the coordinate of the instant
  to add.
- Corrected a bug in step forward, which was incorrectly assuming
  that all processes started at instant 0.
- Added a wizard to show a bug in step forward, which thinks that
  the simulation is terminated while it isn't since some processes
  are still future.
- Commented some unused code in step forward (extendThread()).
- Still to extract methods from Extender and provide them to 
  step forward in a more suitable (static) way.


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@828 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-07 23:59:21 +00:00
tchernobog a7fc644043 - Fix compilation and loading of XmlSave plugin
- Fix throwing of exceptions from sgpem::Module
- **THOU SHALL ALWAYS UPDATE THY MAKEFILES, OR THE WRATH OF GOD
WILL DESCEND UPON THEE**


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@827 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-07 15:16:27 +00:00
elvez 96728edfce - Fixed compilation errors caused by latest changes to serialization code
- Setup makefile for xmlsave plugin. It still can`t be activated. why?
- Added a temporary command SAVE to commandline interface to try serialization

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@826 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-07 00:54:43 +00:00
matrevis 574723a35b - Added full request support, altough still not working
at all. Compiles and runs, but the output is not
  correct. Anyway, now it is just a matter of logics :P
- Corrected some minor bugs in step forward.
- Step forward is now rather messy, but still better than
  four hours ago.. altough this can be hard to believe.
- Added some wizards that help finding bugs.
- Rewritten dyn process get_state as it was guilty of
  premature optimization :)


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@825 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-06 01:47:02 +00:00
matrevis efe7dedd61 - Request queues are now correctly managed by the ConcreteEnvironment
copy constructor and by the add_resource and remove_resource methods
  found in ConcreteHistory.
- Scheduler now adds the requests in the queue when appropriate, and
  removes them when exhausted.
- Still to implement the management of the state of requests depending
  on their position in the queue
- Still to implement the way threads block depending on the state of
  their requests
- step_forward now reuses some bunch of code taken from the prototype


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@824 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-05 17:09:45 +00:00
tchernobog 132db18b8c - Split between abstract base class (sgpem::CairoWidget) and
derived widget
- Add History::set_notify_enabled() for usage by the frontend 
(for example, when loading from file, you'll want to call
set_notify_enabled(false) before starting)


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@823 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-04 20:08:55 +00:00
tchernobog 2174c25f74 - Fix drawing of widget background. Now I'll move the code to
an abstract base class, and I'll start working out the 
adjustement / resizing problems (they're not easy to work out 
correctly).


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@822 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-04 19:12:17 +00:00
elvez 974702af3e - Added other two dialogs for the gui
- Added exception specifications to the methods of the serializer interface and xml plugin

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@821 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-04 00:29:37 +00:00
matrevis 56d7ddbc5a - Widgets now will be shown. Still some problem with their background
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@820 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-03 15:43:21 +00:00
tchernobog b76756c2a8 - Add untested code to SchedulableWidget, manually inheriting from a raw Gtk::Widget
and doing things by hand


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@819 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-03 11:16:16 +00:00
elvez 82289edc14 - Corrected a potentially disastrous automatic int->uint conversion in TextSimulation
- Make test-history run by commenting some "dangerous" lines
- Added a couple of comments to SchedulablesWidget::update() in the hope the may be useful to others in finding where the bug resides...

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@818 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-03 01:34:49 +00:00
matrevis 9f4415a835 - Sorry, I forgot to remove a debug printf statement.
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@817 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-03 00:42:28 +00:00
matrevis 96055b4cf1 - minor bugfix: scheduler was terminating subrequests before decreasing
their elapsed time
- requests are now behaving nicely, since they are raised at the correct
  instant, and terminated at the right instant
- the ready queues are still not ready, tough :(, anyway, now there is
  really nothing else to do before them.
- stepforward is looking much more uglier (if possible).


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@816 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-03 00:30:36 +00:00
elvez 10091d7a16 - Added ResourcePolicyManager
- Removed obsolete files

git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@815 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-02 23:38:52 +00:00
matrevis 56a7ce1221 fixed a bug involving scheduler keeping a running thread in the ready queue
when that thread had just been given the cpu.
fixed a bug involving text-simulation displaying the wrong timestamp for
each snaphot. Now the first snapshot printed is correctly tagged "-1".

added (for the sake of lazyness) a method to readyqueue letting anyone
delete the first element on the queue. Not having this would imply
rebuilding the whole queue each time a thread was selected to run.

Small commits avoid complex mergings.


git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@814 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-02 23:12:32 +00:00
elvez 01490e24ac - Added the ResourcePoliciesGatekeeper class, still not tried to compile it
git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@813 3ecf2c5c-341e-0410-92b4-d18e462d057c
2006-08-02 22:21:42 +00:00