आप मैकबुक प्रो पर स्नो लेपर्ड में प्रोसेसर आत्मीयता कैसे सेट करते हैं? मुझे पता है कि विंडोज में आप इसे टास्क मैनेजर में बदल सकते हैं।
आप मैकबुक प्रो पर स्नो लेपर्ड में प्रोसेसर आत्मीयता कैसे सेट करते हैं? मुझे पता है कि विंडोज में आप इसे टास्क मैनेजर में बदल सकते हैं।
जवाबों:
OS X ने संस्करण 10.5 के बाद से थ्रेड एफिनिटी एपीआई का समर्थन किया है । यहां मैं जिस वेबपेज से जुड़ा हुआ हूं, उससे संबंधित कुछ प्रासंगिक सामग्री है।
एक आत्मीयता सेट धागे का एक संग्रह है जो स्मृति संसाधनों को साझा करता है और एक L2 कैश साझा करना चाहता है। विशिष्ट आत्मीयता के सेट अलग-अलग समृद्धि का प्रतिनिधित्व करते हैं - अर्थात, एक अलग सेट से संबंधित थ्रेड्स को एक अलग L2 कैश का उपयोग करना चाहिए और इसलिए एक अलग तार्किक प्रोसेसर पर चलाया जाना चाहिए।
एक आत्मीयता सेट की पहचान एक "टैग" द्वारा की जाती है। थ्रेड्स को उस सेट की पहचान करने वाले टैग को असाइन करके एक विशेष आत्मीयता को सौंपा जाता है। एक धागा अधिकतम एक आत्मीयता के सेट पर हो सकता है; यह है, यह एक आत्मीयता टैग है।
उदाहरण के लिए, अलग एल 2 कैश पर 2 थ्रेड चलाने के लिए एक आवेदन अलग आत्मीय टैग के साथ थ्रेड सेट करेगा। एक दोहरी कोर मशीन पर, इस आत्मीयता को प्रभावी रूप से अनदेखा किया जाएगा। हालांकि, 4-कोर मैकप्रो पर, शेड्यूलर अलग-अलग पैकेज पर थ्रेड चलाने की कोशिश करेगा। इसी तरह, 8-कोर मैकप्रो पर, अनुसूचक इन थ्रेड्स को अलग-अलग मर जाने पर चलाने की कोशिश करेगा (जो कि एक ही भौतिक सीपीयू पैकेज में हो भी सकता है और नहीं भी)।
एक अनुप्रयोग जो प्रत्येक उपलब्ध प्रोसेसर पर एक थ्रेड रखना चाहता है, वह निम्न कार्य करेगा:
- सिस्टम पर sysctl (3) का उपयोग करके प्रोसेसर की संख्या प्राप्त करें।
- उस थ्रेड की संख्या बनाएँ।
- प्रत्येक धागे को एक अलग आत्मीयता टैग के साथ सेट करें।
- सभी सूत्र प्रारंभ करें।
डिफ़ॉल्ट आत्मीयता की नीति वाले धागे किसी भी प्रोसेसर पर अधिक स्वतंत्र रूप से अनुसूचित होंगे। इन थ्रेड्स को अधिमानतः एक निष्क्रिय प्रोसेसर पर चलाने के लिए माइग्रेट किया जाएगा। आत्मीयता के साथ टैग जगह में बने रहेंगे।
कोड लिस्टिंग के लिए स्रोत से परामर्श करें, और माता-पिता और बच्चे की प्रक्रियाओं के बीच संबंध टैग के बंटवारे के बारे में जानकारी प्राप्त करें, सीपीयू कैश कॉन्फ़िगरेशन प्राप्त करें, और बहुत कुछ।
http://developer.apple.com/mac/library/releasenotes/Performance/RN-AffinityAPI/
Mac OS X उन इंटरफेस को निर्यात नहीं करता है जो प्रोसेसर की पहचान करते हैं या थ्रेड प्लेसमेंट को नियंत्रित करते हैं-प्रोसेसर बाइंडिंग को स्पष्ट धागा समर्थित नहीं है । इसके बजाय, कर्नेल सभी थ्रेड प्लेसमेंट का प्रबंधन करता है। अनुप्रयोगों को उम्मीद है कि अनुसूचक, ज्यादातर परिस्थितियों में, कैश आत्मीयता के संबंध में एक अच्छा प्रोसेसर प्लेसमेंट का उपयोग करके अपने धागे चलाएगा।
से http://images.apple.com/macosx/docs/OSX_for_UNIX_Users_TB_July2011.pdf
• कुशल कर्नेल धागे। प्रत्येक POSIX थ्रेड को एक विशेष सीपीयू पर पंक्तिबद्ध किया जाता है, जो लॉक कॉन्टैक्शन को कम करते हुए प्रोसेसर की आत्मीयता और मापनीयता में सुधार करता है। थ्रेड्स POSIX (1c) के अनुरूप हैं, जिसमें रद्दीकरण और साझा म्यूटेक्स के लिए समर्थन शामिल है।
यह मेरे लिए विज्ञापन की तरह दिखता है, मेरा आईमैक रनिंग लायन उस समय का सम्मान करता है, लेकिन यह कोर के लिए प्रक्रिया नहीं करता है।
मुझे वैसे भी डार्विन के लिए प्रक्रिया संबंध को नियंत्रित करने के लिए कोई एपीआई नहीं मिला।