RTOS (RTX ओएस) Mutex_Semaphore समस्या

L

LOSTISLAND

Guest
हाय सब, मैंने सोचा था कि एक Mutex और सिकंदरा के बीच ही मतभेद गिनती (सिकंदरा क्षमता) और प्राथमिकता व्युत्क्रमण (Mutex क्षमता) कर रहे हैं. आज, मैं कुछ अजीब है जो शायद प्राथमिकता व्युत्क्रमण क्षमता या कुछ और करने के लिए संबंधित है का सामना करना पड़ा है. हो रही है और या विभिन्न कार्यों के बीच Mutex semaphores जारी स्पष्ट है, लेकिन जब मैं उन्हें सिर्फ एक कार्य में उपयोग करते हैं, उनके व्यवहार अलग है. सिकंदरा का उपयोग कर कार्य बंद कर दिया है, लेकिन Mutex का उपयोग कर कार्य बंद नहीं है. कल्पना कीजिए कि वहाँ सिर्फ एक बुलाया APP_TestTask [कोड] __task शून्य (शून्य) (के लिए {APP_TestTask कार्य है, ;) {(20) os_dly_wait, os_sem_wait (Sem_Test, 0xFFFF); os_sem_send (Sem_Test); os_sem_wait (Sem_Test, 0xFFFF); os_sem_wait ( Sem_Test, 0xFFFF); Test_Function ();}} [/ कोड] [कोड] _task शून्य (शून्य) APP_TestTask {के लिए (; ;) {os_dly_wait (20), (os_mut_wait, os_mut_wait (Mut_Test, 0xFFFF); os_mut_release (Mut_Test) Mut_Test, 0xFFFF); (Mut_Test, 0xFFFF) os_mut_wait (Test_Function);}} [कोड /] यह प्राकृतिक कुछ या एक बग है? उन्नत में धन्यवाद
 
मुझे विश्वास है कि समस्या सिकंदरा और एक mutex के निहित परिभाषा के साथ है. यदि आप एक काम का उपयोग कर रहे हैं तो हम मान सकते हैं कि सिस्टम बेकार कार्य के अलावा, कि अपने "APP_TestTask" सर्वोच्च प्राथमिकता है. चूंकि एक mutex प्राथमिकता व्युत्क्रमण को शामिल किया गया है, और आप भी केवल एक ही काम है, म्युटेक्स हमेशा लिए "APP_TestTask" गिर जाएगी. अनिवार्य रूप से, आप स्टाल करने के लिए काम पैदा कर रहे हैं, एक सिकंदरा, तथापि, समस्याओं के बाद से आप दोनों दूर दे और एक कार्य के भीतर से सिकंदरा लेने की कोशिश कर रहे हैं पैदा कर रहा है. मैं एक सिकंदरा इस्तेमाल कभी नहीं किया है, जब मैं सिर्फ एक काम है. आप ऐसा क्यों कर रहे हैं के लिए एक विशेष कारण है? सादर, विलिस
 

Welcome to EDABoard.com

Sponsor

Back
Top