home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / realtime / 1557 < prev    next >
Encoding:
Internet Message Format  |  1993-01-12  |  4.5 KB

  1. Path: sparky!uunet!mcsun!uknet!newcastle.ac.uk!warton!naw2
  2. From: Adrian.Waterworth@newcastle.ac.uk (Adrian Waterworth)
  3. Newsgroups: comp.realtime
  4. Subject: Re: novel idea?
  5. Message-ID: <C0qHGu.1MI@newcastle.ac.uk>
  6. Date: 12 Jan 93 09:10:05 GMT
  7. References: <erempel.726720401@sol.UVic.CA> <1993Jan11.171954.1@wombat.newcastle.edu.au> <C0onL4.2qE@newcastle.ac.uk> <1993Jan11.140742.11466@ll.mit.edu>
  8. Organization: University of Newcastle upon Tyne, UK, NE1 7RU
  9. Lines: 79
  10. Nntp-Posting-Host: warton
  11.  
  12. dbruce@ll.mit.edu (Dave Bruce) writes:
  13.  
  14. >In article <C0onL4.2qE@newcastle.ac.uk>, Adrian.Waterworth@newcastle.ac.uk (Adrian Waterworth) writes:
  15. >|> eepjm@wombat.newcastle.edu.au (Peter Moylan) writes:
  16. >|> 
  17. >|> >In article <erempel.726720401@sol.UVic.CA>, erempel@sol.UVic.CA (Evan Rempel) writes:
  18. >|> >> 
  19. >|> >> running on the side for complex graphics. If the i860 becomes
  20. >|> >> bogged down (I don't know what I would be doing to bog down the
  21. >|> >> i860, but lets say I do) and the 68040 is sitting idle (or close
  22. >|> >> to it) can one of the tasks that is running on the i860 be switched
  23. >|> >> over to the 68040 to run there.
  24. >|> >> 
  25. >|> 
  26. >|> >You must be joking.  The machine languages of these two processors
  27. >|> >are totally different.  Would you plan to run an 860 simulator on
  28. >|>
  29. >|>    ...
  30. >|> 
  31. >|> available, what's wrong with having two _pre-compiled_ versions of the
  32. >|> task (one for each processor)? The task switching problem then becomes
  33. >|>
  34. >|>    ... 
  35.  
  36. >I think the original author of this article wants the 68040 to take over
  37. >execution of a task that has been started but is being starved of cpu time.
  38. >And since the 68040 is twiddling its thumbs, it can give some help. If there
  39. >are two (or more) _pre-compiled_ versions of a task, what about the present
  40. >state of the task(s)? Globals, stacks, task allocated resources need to
  41. >transferred over to architecturely different cpu. I agree with Peter, "You
  42. >Must Be Joking!"
  43.  
  44.     As other people have already mentioned, this is not such a
  45. great problem. It's just a case of having an appropriate representation
  46. of the required state information (e.g. using implementations based
  47. upon p-code, as someone already suggested, or something based upon an
  48. abstract notation like ASN.1) to allow the copy of the task on the
  49. lightly-loaded processor to pick up the appropriate data and values
  50. from the copy that was running on the heavily-loaded one. In a
  51. multi-processor environment (non-distributed), the availability of
  52. shared memory areas and/or relatively high bandwidth interprocessor
  53. communication mechanisms (e.g. via backplane) may make this a feasible
  54. approach to adopt. The distributed case is then more interesting
  55. because you may find yourself in the position of having to ship values
  56. (encoded or otherwise) around a network. However, you also end up
  57. having to ship values around a network in the homogeneous distributed
  58. case and, although the cross-architectural encoding aspect of the
  59. problem can be largely ignored, some degree of encoding of the internal
  60. state will usually be required to allow transmission across the
  61. network. (And I know that this problem has been addressed and
  62. appropriate migration mechanisms implemented in some cases - e.g. the
  63. object mobility mechanisms found in the Emerald language/system.)
  64.  
  65.     At the end of the day, it all boils down to the amount of
  66. internal state information held by a task and the efficiency of
  67. implementation of state transfer. If a task has a small amount of
  68. internal state information, arranging for the transfer of that
  69. information, in an appropriate format, to another task might be fairly
  70. straight-forward. On the other hand, if a task has vast amounts of
  71. internal state information, then the transfer will not be so easy.
  72. (Although, in the latter case, I begin to wonder about the
  73. implementation of the task itself - if it does have vast amounts of
  74. internal state information then maybe it should not be a single task at
  75. all but should be further decomposed into sub-tasks, accessing a common
  76. information base in a suitably controlled manner? On the other hand,
  77. can anyone think of a task that does require large amounts of internal
  78. state in order to execute and that cannot be further decomposed?)
  79.  
  80.             Cheers,
  81.                 Adrian.
  82.  
  83. _______________________________________________________________________________
  84. FROM  : Adrian Waterworth.   E-MAIL : Adrian.Waterworth@newcastle.ac.uk
  85.                  UUCP : ...!uknet!newcastle.ac.uk!Adrian.Waterworth
  86. PHONE : +44 91 222 6858
  87. POST  : DCSC, Department of Computing Science,
  88.     University of Newcastle upon Tyne, UK. NE1 7RU.
  89.  
  90. DISCLAIMER : I only work here - any opinions expressed are my own.
  91.