मैक ओएस के तहत कच्चे (कभी-कभी प्रत्यक्ष कहा जाता है) i/o करने के लिए मैं जा रहा हूं। एप्लिकेशन को डिस्क पर अधिक सीधी पहुंच देने के लिए ऑपरेटिंग सिस्टम पेज कैश का कच्चा I/O मोड़। यह उपयोगी है क्योंकि मैं उपयोग कर रहा कुछ फाइल संरचना एलआरयू पेज प्रतिस्थापन का उपयोग कर कुशल नहीं हैं। पेज की प्रतिस्थापन एल्गोरिदम को लागू करने के लिए यह काफी सीधे आगे है, लेकिन पहले हमें ओएस एक्स डिफ़ॉल्ट बफरिंग को बंद करने की आवश्यकता है। फ़ाइलों को खोलते समय हमने O_DIRECT ध्वज का उपयोग करके लिनक्स के तहत इसे पहले ही कर लिया है। क्या किसी को पता है कि मैक ओएस के तहत पेज बफरिंग कैसे बंद करें?मैक ओएस एक्स पर रॉ आईओ कैसे करता है? (यानी लिनक्स के O_DIRECT ध्वज के बराबर)
चीयर्स टिम
मैं जानता हूँ कि जब linux के तहत इस दृष्टिकोण का उपयोग कर आप पहली बार "कच्चे" कमांड जो एक कच्चे चरित्र में ब्लॉक डिवाइस बदल जाता है का उपयोग कर डिवाइस माउंट करना होगा डिवाइस। क्या आपको ओएस एक्स के तहत समान खेल खेलना है? –
ऐसा नहीं है कि मैं सोच सकता हूं। प्रत्येक ब्लॉक डिवाइस के लिए सिस्टम में दो डिवाइस होते हैं, एक उदाहरण है। */dev/disk0 * और अन्य */dev/rdisk0 * –
खुले (फॉपेन के बजाए) का उपयोग सी लाइब्रेरी में बफरिंग से बचाता है, लेकिन क्या यह पूरी तरह से अलग करता है कि ओएस का पेज कैश कैसे काम करता है। जैसा कि नीचे बताया गया है F_NOCACHE जाने का तरीका है। – benno