2014-08-19 11 views
8

86 में, आप चल रहे प्रक्रियाओं के बीच स्विच कार्य के लिए टीएसएस उपयोग कर सकते हैं, हालांकि, यह केवल एक टीएसएस का उपयोग करें (के रूप में आप के लिए है) और सॉफ्टवेयर कार्य स्विचिंग प्रदर्शन करने के लिए सिफारिश की है, खासकर यदि आप पोर्ट करना चाहते हैं कर्नेल अन्य हार्डवेयर जो टीएसएस के पास नहीं है।टास्क 64 बिट में स्विचिंग

x86-64 (64 बिट) में, कोई टीएसएस नहीं है (उदाहरण के लिए यह x86 में कुछ भी नहीं करता है), तो, कोई इसके बिना कार्य स्विचिंग करने के बारे में कैसे जाएगा (पहले से, आप इसका उपयोग करेंगे न्यूनतम)?

उत्तर

7

आप इसे उसी तरह आप किसी भी अन्य मंच पर यह करना होगा करना होगा: आप उचित रजिस्टरों की सामग्री की दुकान:

  • ढेर सूचक
  • अनुदेश सूचक
  • जो भी जनरल उद्देश्य रजिस्टरों वास्तुकला
  • किसी भी अन्य राज्य आप बनाए रखने की जरूरत (एफपीयू/MMX/SSE पंजीकृत करता है, आदि)
के लिए उपयुक्त हैं जिस कार्य को आप दूर कर रहे हैं, उसके लिए

, और जिस कार्य को आप स्विच कर रहे हैं उसके लिए उसे पुनर्स्थापित करें।

अक्सर इस ढेर आप से स्विच कर रहे पर सभी राज्य को आगे बढ़ाने, और इसे बंद पॉपिंग ढेर आप का उपयोग करने जा रहे हैं द्वारा किया जाता है। इस तरह, पृष्ठभूमि में क्या इंतजार कर रहा है ट्रैक करने के लिए केवल स्टैक पॉइंटर को कर्नेल द्वारा पास या प्रबंधित किया जाना चाहिए।

5

Actually, it seems there is a TSS in 64 bit mode, यह सिर्फ स्विचिंग हार्डवेयर संदर्भ के लिए इस्तेमाल नहीं किया है; इसके बजाए, यह केवल कर्नेल के ढेर को निर्दिष्ट करने के लिए प्रयोग किया जाता है जब उच्च विशेषाधिकार स्तर पर स्थानांतरण होता है।

तुम अब भी विभिन्न कार्यों के बीच नियंत्रण को बदलने के लिए, सॉफ्टवेयर संदर्भ स्विचिंग उपयोग करने के लिए हालांकि, होगा।

संबंधित मुद्दे