Hi Ben,
On Wed, Mar 26, 2014 at 7:04 AM, Ben Coman <[hidden email]> wrote:
There are a couple of obvious solutions. One is to avoid the suspension point somehow, another is adding priority inversion. Adding priority inversion to the scheduler is a significant change which would increase complexity. You yourself have glossed over detail by saying "temporarily". I've glossed over a lot with "somehow". How would these "temporarily"s and "somehow"s be implemented? Your design sketches are appreciated.
cc'ing vm-dev and squeak dev lists. this is an important discussion.
best, Eliot
|
Eliot Miranda wrote:
When process H tries to enter its critical section and the primitive finds this is blocked by L, if that code had a reference to both H & L then H's priority might be set to match that of L. The original priority of H is stored to be restored when when L leaves the critical section. The lower priority is not (any more) detrimental to H since it is already blocked. Now in trying to refresh my knowledge of Semaphores I came across this interesting article... http://www.barrgroup.com/Embedded-Systems/How-To/RTOS-Mutex-Semaphore which indicates sempahores should not be used to protect shared state, and wondered what you make of it. cheers -ben
|
Free forum by Nabble | Edit this page |