यूनिक्स कर्नेल की अलग प्रक्रिया बिंदु से फ़ाइल वर्णनकर्ता तीन डाटा संरचनाओं का उपयोग कर खुली फ़ाइलों प्रतिनिधित्व करता है।
जब कोई प्रक्रिया दो बार फ़ाइल खोलती है, तो descriptor table
में दो अलग-अलग डिस्क्रिप्टर होते हैं, file table
में दो प्रविष्टियां (ताकि उनके पास एक ही फ़ाइल में अलग-अलग स्थितियां हों), और वे दोनों v-node table
में एक प्रविष्टि को इंगित करते हैं।
और बाल प्रक्रिया में माता-पिता की प्रक्रिया descriptor table
प्राप्त होती है, इसलिए कर्नेल क्रमशः प्रत्येक प्रक्रिया के लिए एक descriptor table
बनाए रखता है। लेकिन विभिन्न प्रक्रियाओं के दो वर्णनकर्ता open file table
में एक ही प्रविष्टि को इंगित करते हैं।
तो
दो खुले फ़ाइल तालिका में एक ही प्रविष्टि
- बच्चे की प्रक्रिया में कुछ फ़ाइल पर पढ़ा करता है, माता पिता की प्रक्रिया में एक ही फाइल परिवर्तन की भरपाई होगी?
- यदि 1 सत्य है, तो दो प्रक्रियाओं के लिए, क्या एक सुविधाजनक तरीका है कि मैं उसी फ़ाइल पर
fork
का समान प्रभाव प्राप्त कर सकता हूं? इसका मतलब है कि दो प्रक्रियाएं एक ही फाइल पर एक स्थिति (ऑफ़सेट) जानकारी साझा करती हैं। - क्या कांटा का कोई तरीका है ताकि दोनों प्रक्रियाओं में पूरी तरह से असंबंधित तालिकाओं हों, जैसे कि दो असंबद्ध प्रक्रियाओं की तरह ही उन्होंने एक ही फाइल खोली।