priority inversion

  • Thread starter Thread starter Guest
  • Start date Start date
Are you sure that you want to prevent "priority inversion", doing that would
create deadlock. Am I right?
Do you maybe want to prevent "priority boosts"?

Anyhow same things that apply to Windows XP Prof, apply to XPe as well.

Regards,
Slobodan

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have an opinion on the effectiveness of Microsoft Embedded newsgroups? Tell
Microsoft!
https://www.windowsembeddedeval.com/community/newsgroups
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
KR,

XP Embedded (including its scheduler) is based on XP Pro binaries. Therefore
everything that could be archived in XP Pro, could be done on XPe. And vice
verse - XP restrictions are applied to XPe.
XP/XPe itself is not reat time OS and one of the reasons is the priority
inversion, particularly in interrupt processing. To prevent the priority
inversion you will need to implement your own kernel synchronization object
(mechanism).

However, some of the limitations are bypassed with NT/XP Reat-time
extentions (e.g., Venturcom - RTSS Scheduler, INTime - Region objects). Read
here for more info:
http://www.windowsfordevices.com/articles/AT2503923807.html

Also, these articles will give you a couple of options to go for RT
extentions under XPe:
http://msdn.microsoft.com/library/d...al-TimeOperatingSystemsINtimeArchitecture.asp

http://msdn.microsoft.com/library/e...mRTXOnMicrosoftWindowsXPWindowsXPEmbedded.asp

KM
 
Hi Slobodan,

I'm not very sure of your question. How is "deadlock" created by preventing "priority inversion" . Is "Priority inheritance" mechanism used in windows XPE ?

I appreciate your response.
Regards
KR
 
Hi,

I meant that globally disabling "priority inversion " could unintentionally
lead to deadlock, but this would be more a stall then a deadlock. Sorry
about all that you should disregard that statement.

For more info about scheduler under XP.
http://support.microsoft.com/default.aspx?scid=kb;en-us;96418
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/bas
e/scheduling.asp

Also follow the links Konstantin gave you.

Regards,
Slobodan

KR said:
Hi Slobodan,

I'm not very sure of your question. How is "deadlock" created by
preventing "priority inversion" . Is "Priority inheritance" mechanism used
in windows XPE ?
 
Hi Slobodan

Thanks for your response.

From the documentaion I observed that "priority inheritance" mechanism was present in win 95/98/Me but was leter removed to be replaced by "priority boosting". I wonder why Microsoft decided to go in this direction though I believe there is an inherent performance advantage by using "priority inheritance"

I appreciate you view
Thanks in advance
Regards
K
 
Hi KR,

Could you tell us why are you concerned about this things. What do you want
to accomplish, you goal.
What real time performances do you require, etc.

Regards,
Slobodan


KR said:
Hi Slobodan,

Thanks for your response.

From the documentaion I observed that "priority inheritance" mechanism was
present in win 95/98/Me but was leter removed to be replaced by "priority
boosting". I wonder why Microsoft decided to go in this direction though I
believe there is an inherent performance advantage by using "priority
inheritance".
 
Slobodan,

I also agree that preventing priority inversion may lead to deadlocks (if
you run under NT scheduler!). Basically, the priority inversion machanism is
to prevent the deadlocks. NT and 95 kernel schedulers solve this a little
bit different but intention is the same - no deadlocks.

An RTX operates with its own sychronization objects, and manages the objects
different way. I don't know details and how exactly they prevent deadlocks.
But I am pretty sure that if you write an app under RTX you do not do that
"globally" meaning that RTX apps are in a different camp from regular NT
apps. RTX scheduler takes care of RTX apps and is separated from NT
scheduler.

I don't know why I am telling you this as it does not seem what KR asked
for.

Konstantin
 
Hi Slobodan/KM ,

We are planning to use windows XP Embedded for our product and thus were looking for differences between VxWorks and win XPE. During this research that we noticed that "priority Inheritance" was implemented in win 9X/ME and was discontinued ( rather priority boosting was used) for NT onwards. We thus were wondering why such an approach was taken and wanted to know the real reason behind it.

I appreciate your inputs.
Regards,
Sajith
 
Semaphore implementation of "priority Inheritance" is twice slower that
normal semaphore implementation. (I don't think that this was a reason
though.)
And since Windows NT/2000,XP was written as universal OS not as an real time
OS they might have thought that this was not required feature.

I never had issues with this. When you write drivers you have many other
mechanism to workaround this problem. (So it is not a problem if you don't
make it a problem by your implementation).

Regards,
Slobodan

PS:
Please tell me that you are not trying to accomplish real time of >100mS.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have an opinion on the effectiveness of Microsoft Embedded newsgroups? Tell
Microsoft!
https://www.windowsembeddedeval.com/community/newsgroups
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

KR said:
Hi Slobodan/KM ,

We are planning to use windows XP Embedded for our product and thus were
looking for differences between VxWorks and win XPE. During this research
that we noticed that "priority Inheritance" was implemented in win 9X/ME and
was discontinued ( rather priority boosting was used) for NT onwards. We
thus were wondering why such an approach was taken and wanted to know the
real reason behind it.
 
Back
Top