Home

Lakhasly

Online English Summarizer tool, free and accurate!

بل على مكونات الأجهزة الأخرى أيضًا. ترتبط بعض هذه المكونات بشكل خاص باستقبال المدخلات أو توجيه المخرجات، ميزات جهاز الإدخال/الإخراج مساحة الجهاز متنوعة للغاية. تأتي الأجهزة بجميع الأشكال والأحجام مع الكثير من التباين في بنية الأجهزة ووظائفها وواجهاتها. ستركز مناقشتنا على الميزات الرئيسية للجهاز الذي يتيح دمجه في النظام. سيحتوي الجهاز على مجموعة من سجلات التحكم التي يمكن الوصول إليها بواسطة وحدة المعالجة المركزية وتسمح بتفاعلات وحدة المعالجة المركزية/الجهاز. يتم تقسيم هذه السجلات عادةً إلى: سجلات الأوامر ، التي تستخدمها وحدة المعالجة المركزية للتحكم في الجهاز؛ التي تستخدمها وحدة المعالجة المركزية لنقل البيانات داخل وخارج الجهاز؛ سجلات الحالة التي تستخدمها وحدة المعالجة المركزية لفهم ما يحدث على الجهاز. سيدمج الجهاز كل المنطق الآخر الخاص بالجهاز. بالإضافة إلى أي منطق آخر يحتاجه الجهاز. قد تحتاج بعض الأجهزة إلى شرائح لتحويل الإشارات التناظرية إلى رقمية. قد تحتاج أجهزة الشبكة إلى شرائح للتفاعل مع وسيط الشبكة الفعلي، ربط جهاز وحدة المعالجة المركزية تتفاعل الأجهزة مع بقية النظام عبر وحدة تحكم يتم دمجها عادةً كجزء من حزمة الجهاز المستخدمة لتوصيل الجهاز ببقية مجمع وحدة المعالجة المركزية عبر بعض التوصيلات البينية لوحدة المعالجة المركزية/الجهاز. إن ناقل PCI ليس هو الوصلة البينية الوحيدة الممكنة التي يمكن أن تكون موجودة في النظام. تحدد وحدات التحكم في الجهاز نوع الاتصال البيني الذي يمكن للجهاز الاتصال به. يمكن لوحدات التحكم في الجسور التعامل مع أي اختلاف بين الأنواع المختلفة من الوصلات البينية. تحتاج أنظمة التشغيل إلى تضمين برنامج تشغيل الجهاز لكل نوع من الأجهزة المضمنة في النظام. برامج تشغيل الأجهزة مسؤولة عن جميع جوانب الوصول إلى الجهاز وإدارته والتحكم فيه . يتضمن ذلك المنطق الذي يحدد كيفية تمرير الطلبات من المكونات ذات المستوى الأعلى إلى الجهاز وكيفية استجابة هذه المكونات للأخطاء أو الإشعارات الواردة من الجهاز. تعمل أنظمة التشغيل على توحيد واجهاتها مع برامج تشغيل الأجهزة. أجهزة الحظر - مثل الأقراص - على دقة كتل البيانات التي يتم تسليمها من وإلى الجهاز عبر التوصيل البيني لوحدة المعالجة المركزية. من الخصائص الأساسية لأجهزة الحظر أنه يمكن الوصول إلى الكتل الفردية. إذا كان لديك عشر كتل من البيانات على القرص، يتم توحيد الواجهة التي يعرضها الجهاز لنظام التشغيل بناءً على نوع الجهاز. يجب أن تدعم جميع أجهزة الحظر عمليات قراءة وكتابة كتلة من البيانات. يحتفظ نظام التشغيل ببعض التمثيل لكل جهاز من الأجهزة المتوفرة على النظام الأساسي. يتم ذلك عادةً باستخدام تجريد الملف حيث يمثل كل ملف جهازًا. يسمح هذا لنظام التشغيل بالتفاعل مع الأجهزة عبر نفس الواجهة الموجودة بالفعل للتفاعل مع الملفات. سيتم التعامل مع هذه العمليات بطريقة معينة خاصة بالجهاز. تظهر سجلات الجهاز لوحدة المعالجة المركزية كمواقع للذاكرة في عنوان فعلي محدد. تدرك وحدة تحكم PCI المدمجة أنه يجب توجيه عمليات الوصول هذه إلى الجهاز المناسب. وهذا يعني أن جزءًا من الذاكرة الفعلية على النظام مخصص لتفاعلات الجهاز. تحدد الأنظمة الأساسية x86 تعليمات دخول/خروج معينة تُستخدم للوصول إلى الأجهزة. تحتاج كل تعليمات إلى تحديد الجهاز المستهدف - منفذ الإدخال/الإخراج - بالإضافة إلى بعض القيمة التي سيتم تمريرها إلى الجهاز. يمكن أن يأخذ المسار من الجهاز إلى مجمع وحدة المعالجة المركزية طريقين. الجانب السلبي هو معالجات المقاطعة. هناك الخطوات الفعلية المتضمنة في معالج المقاطعة والتي تكلف دورات وحدة المعالجة المركزية. يمكن للجهاز تشغيل المقاطعات بمجرد حصول الجهاز على معلومات لوحدة المعالجة المركزية. يمكن لهذه الإستراتيجية أن تؤدي إلى تأخير في كيفية ملاحظة الحدث أو التعامل معه، نظرًا لأن المعالجة تحدث في مرحلة ما بعد إنشاء الحدث بواسطة الجهاز. بالإضافة إلى ذلك، الوصول إلى الجهاز PIO مع الدعم الأساسي فقط من الاتصال البيني مثل PCI، تتحكم وحدة المعالجة المركزية في حركة البيانات من/إلى الجهاز عن طريق القراءة/الكتابة في سجلات البيانات الخاصة بالجهاز. دعونا نفكر في كيفية قيام العملية التي تعمل على وحدة المعالجة المركزية بإرسال حزمة شبكة عبر جهاز بطاقة واجهة الشبكة (NIC). أولاً، تحتاج وحدة المعالجة المركزية إلى الكتابة إلى سجل الأوامر الموجود على الجهاز. يحتاج هذا الأمر إلى توجيه الجهاز الذي يحتاجه لإجراء نقل البيانات التي ستوفرها وحدة المعالجة المركزية. على سبيل المثال، قد يكون لدينا حزمة بحجم 1500 بايت ونرغب في إرسالها باستخدام سجلات بيانات ذات 8 بايت. يلزم الوصول إلى 189 وحدة المعالجة المركزية لإرسال الحزمة. تتطلب هذه الطريقة دعمًا قويًا إضافيًا في شكل وحدة تحكم DMA. بالنسبة للأجهزة التي تدعم DMA، ومع ذلك، والعكس صحيح. دعونا نفكر في كيفية قيام العملية التي تعمل على وحدة المعالجة المركزية بإرسال حزمة شبكة عبر جهاز بطاقة واجهة الشبكة (NIC). أولاً، يحتاج هذا الأمر إلى توجيه الجهاز الذي يحتاجه لإجراء نقل البيانات التي ستوفرها وحدة المعالجة المركزية. يجب أن يكون هذا الأمر مصحوبًا بعملية تقوم بتكوين وحدة تحكم DMA بمعلومات حول عنوان الذاكرة وحجم المخزن المؤقت الذي يحتفظ بحزمة الشبكة. إذا كانت لدينا حزمة 1500 بايت ونرغب في إرسالها باستخدام مسجلات بيانات ذات 8 بايت، فستتطلب العملية بأكملها وصولاً واحدًا لوحدة المعالجة المركزية (CPU) إلى سجل الأوامر ثم عملية تكوين DMA واحدة. سيظل PIO أكثر كفاءة. لكي يعمل DMA، وهذا يعني أن مناطق الذاكرة المشاركة في DMA مثبتة . فهي غير قابلة للتبديل. الوصول إلى الجهاز النموذجي ستقوم العملية بإجراء استدعاء نظام لتحديد العملية المناسبة. على سبيل المثال، قد تشكل النواة حزمة TCP/IP من مخزن مؤقت غير منسق. سيقوم برنامج تشغيل الجهاز بعد ذلك بإجراء تكوين الطلب على الجهاز. على سبيل المثال، يتحمل برامج التشغيل مسؤولية ضمان عدم الكتابة فوق أي أوامر وبيانات يحتاجها الجهاز أو عدم تسليمها. وأخيرًا، سيقوم الجهاز بتنفيذ الطلب الفعلي. على سبيل المثال، أي نتائج/أحداث تنشأ على الجهاز سوف تعبر هذه السلسلة في الاتجاه المعاكس: من الجهاز إلى برنامج التشغيل إلى النواة وأخيرًا إلى عملية المستخدم. تجاوز نظام التشغيل ليس من الضروري المرور عبر النواة للوصول إلى الجهاز. وهذا ما يسمى تجاوز نظام التشغيل . في تجاوز نظام التشغيل، تكون أي ذاكرة/سجلات مخصصة للاستخدام بواسطة الجهاز متاحة مباشرة لعملية المستخدم. يشارك نظام التشغيل في إتاحة تسجيلات الجهاز لعملية المستخدم عند الإنشاء، ولكنه بعد ذلك يكون بعيدًا عن الطريق. فإننا نحتاج إلى برنامج تشغيل على مستوى المستخدم - في الأساس مكتبة - يرتبط به المستخدم من أجل التفاعل مع الجهاز. يجب أن يحتفظ نظام التشغيل ببعض التحكم في الحبوب الخشنة. على سبيل المثال، لا يزال بإمكان نظام التشغيل تمكين/تعطيل جهاز أو إضافة أذونات لإضافة المزيد من العمليات لاستخدام الجهاز. يجب أن يحتوي الجهاز على سجلات كافية حتى يتمكن نظام التشغيل من تعيين بعضها في عملية مستخدم واحدة أو أكثر مع الاحتفاظ بإمكانية الوصول إلى عدد قليل من السجلات نفسها حتى يتمكن من التفاعل مع الجهاز على مستوى عالٍ. عندما يحتاج الجهاز إلى تمرير بعض البيانات إلى إحدى العمليات المتفاعلة معه، تُترك هذه المسؤولية للجهاز نفسه. المزامنة مقابل الوصول غير المتزامن حتى لو كان مجرد إقرار. يمكن السماح لعملية المستخدم بالتحقق مما إذا كانت الاستجابة متاحة. والتجريد النموذجي المتعلق بالتخزين الذي تستخدمه التطبيقات هو الملف. لا نفكر في التفاعل مع كتل التخزين. أسفل الواجهة القائمة على الملفات التي تستخدمها التطبيقات يوجد نظام الملفات. سيتلقى نظام الملفات عمليات القراءة/الكتابة من عملية المستخدم لملف معين، وسيكون لديه المعلومات اللازمة للعثور على الملف، وتحديد ما إذا كان بإمكان عملية المستخدم الوصول إليه والجزء الذي يجب الوصول إليه. تسمح أنظمة التشغيل بتعديل نظام الملفات أو استبداله بالكامل بنظام ملفات مختلف . واجهة برمجة التطبيقات القياسية هي POSIX API، والتي تتضمن مكالمات النظام للقراءة والكتابة. والنتيجة هي أنه يمكن تبديل أنظمة الملفات دون تعطيل تطبيقات المستخدم/ إذا تم تخزين الملفات على أجهزة محظورة، فسيحتاج نظام الملفات إلى التفاعل مع هذه الأجهزة عبر برامج تشغيل الأجهزة الخاصة بها. يمكن استخدام أنواع مختلفة من أجهزة الحظر للتخزين الفعلي وسيتطلب التفاعل الفعلي معها واجهات برمجة تطبيقات معينة خاصة بالبروتوكول. على الرغم من أن الأجهزة قد تكون جميعها أجهزة محظورة، فمن الممكن أن تكون هناك اختلافات بين واجهات برمجة التطبيقات (APIs) الخاصة بها في كثير من الأحيان. تقدم حزمة جهاز الكتلة طبقة أخرى: طبقة الكتلة العامة . الهدف من هذه الطبقة هو توفير معيار لنظام تشغيل معين لجميع أنواع أجهزة الكتلة. لا تزال ميزات الجهاز الكاملة متاحة ويمكن الوصول إليها من خلال برنامج تشغيل الجهاز، ولكن يتم تجريدها بعيدًا عن نظام الملفات نفسه. بنفس الطريقة التي يوفر بها نظام الملفات واجهة برمجة تطبيقات ملفات متسقة لعمليات المستخدم، نظام الملفات الظاهري ماذا لو أردنا التأكد من أن تطبيق المستخدم يمكنه رؤية الملفات بسلاسة عبر أجهزة متعددة كنظام ملفات واحد متماسك ؟ ويمكن الوصول إليها عبر الشبكة؟ لحل المشاكل الأساسية التي تطرحها هذه الأسئلة، تستمر التطبيقات في التفاعل مع VFS باستخدام نفس واجهة برمجة تطبيقات POSIX كما كان من قبل، ويحدد VFS مجموعة أكثر تفصيلاً من التجريدات المتعلقة بنظام الملفات والتي يجب على كل نظام ملفات أساسي تنفيذها. تجريدات نظام الملفات الظاهري تجريد الملف العناصر التي يعمل عليها VFS. مثل القراءة والكتابة والإغلاق. يحتفظ inode بقائمة بجميع كتل البيانات المقابلة للملف. وحجم الملف، تعتبر Inodes مهمة لأن الملف لا يحتاج إلى تخزينه بشكل متجاور على القرص. يحتفظ Linux ببنية بيانات تسمى dentry (إدخال الدليل). إذا كنا نحاول الوصول إلى ملف في /users/ ada ، فسيقوم نظام الملفات بإنشاء أسنان لكل مكون مسار - لـ / و /users و /users/ ada . لم تستمر. أخيرًا، يوفر تجريد الكتلة الفائقة معلومات حول كيفية وضع نظام ملفات معين على بعض أجهزة التخزين. يحتفظ كل نظام ملفات ببعض البيانات الوصفية الإضافية في الكتلة الفائقة. تقوم أنظمة الملفات المختلفة بتخزين بيانات تعريف مختلفة. هياكل بيانات نظام الملفات الظاهري هي كيانات برمجية. يتم إنشاؤها وصيانتها بواسطة مكون نظام ملفات نظام التشغيل. ستتوافق المكونات المتبقية من نظام الملفات مع الكتل الموجودة على القرص. تتم كتابة الملفات على القرص ككتل. وأي الكتل تحتوي على inodes وأي الكتل مجانية - تحتفظ الكتلة الفائقة بخريطة شاملة لجميع الأقراص الموجودة على جهاز معين. نظام الملفات الموسع الثاني نظام الملفات ext2 هو نظام الملفات الافتراضي في Linux حتى تم استبداله بـ ext3 و ext4 مؤخرًا. قسم القرص المستخدم كنظام ملفات ext2 Linux كما يلي. لا يتم استخدام الكتلة الأولى بواسطة Linux وغالبًا ما يتم استخدامها لتشغيل النظام. حجم مجموعات الكتل هذه ليس له علاقة بفيزياء القرص الفعلي الذي تلخصه هذه المجموعة. • صور نقطية • عدد العقد الحرة يمكن للمخصصين ذوي المستوى الأعلى قراءة الصور النقطية لتحديد الكتل والرموز الداخلية المجانية والمستخدمة بسهولة. كل inode في ext2 عبارة عن بنية بيانات 128B تصف ملفًا واحدًا بالضبط. inode Inodes دورًا رئيسيًا في تنظيم كيفية تخزين الملفات على القرص لأنها تدمج بشكل أساسي فهرسًا لجميع كتل القرص التي تتوافق مع ملف معين. يتم تعريف الملف بشكل فريد من خلال inode الخاص به . يحتوي inode على قائمة بجميع الكتل التي تتوافق مع الملف الفعلي. بالإضافة إلى قائمة الكتل، يحتوي inode أيضًا على معلومات بيانات تعريف إضافية. يحتوي الملف الموضح أعلاه على 5 كتل مخصصة له. إذا كنا بحاجة إلى مساحة تخزين أكبر للملف، فيمكن لنظام الملفات تخصيص كتلة مجانية، وببساطة تحديث inode ليحتوي على الإدخال السادس، الجانب السلبي لهذا الأسلوب هو أن هناك حدًا لحجم الملف للملفات التي يمكن فهرستها باستخدام بنية البيانات هذه. على سبيل المثال، إذا كان لدينا inode 128B يحتوي على مؤشرات كتلة 4B، وهو مقيد للغاية. inodes مع مؤشرات غير مباشرة إحدى الطرق لحل مشكلة حدود حجم الملف هي استخدام المؤشرات غير المباشرة . ستشير المؤشرات المباشرة إلى 1 كيلو بايت لكل إدخال. لتوسيع عدد كتل القرص التي يمكن معالجتها عبر عنصر inode واحد ، مع الحفاظ أيضًا على حجم inode صغير ، يمكننا استخدام مؤشرات غير مباشرة. حيث يشير كل مؤشر إلى البيانات. ويبلغ حجم المؤشر 4 بايت، سيشير المؤشر المزدوج غير المباشر إلى كتلة من المؤشرات غير المباشرة المفردة، بينما سيشير إلى مؤشرات البيانات. تتمثل فوائد المؤشرات غير المباشرة في أنها تسمح لنا باستخدام inodes صغيرة نسبيًا مع القدرة على معالجة الملفات الأكبر حجمًا والكبيرة. باستخدام المؤشرات المزدوجة غير المباشرة، تحسينات الوصول إلى القرص ستتم كتابة المحتوى وقراءته من ذاكرات التخزين المؤقت هذه، ولكنه يمكن أن يقلل بشكل كبير من زمن وصول الوصول عن طريق زيادة معدل دخول ذاكرة التخزين المؤقت. تعمل جدولة الإدخال/الإخراج على تقليل الوصول العشوائي، ولكنها تحافظ على البيانات في الذاكرة.

Original text

الإدخال/الإخراج والإدارة
لا يعتمد تنفيذ التطبيقات على وحدة المعالجة المركزية والذاكرة فقط، بل على مكونات الأجهزة الأخرى أيضًا. ترتبط بعض هذه المكونات بشكل خاص باستقبال المدخلات أو توجيه المخرجات، ويشار إليها بأجهزة الإدخال/الإخراج .
تتضمن أمثلة أجهزة الإدخال/الإخراج
• لوحات المفاتيح
• الميكروفونات
• يعرض
• مكبرات الصوت
• الفئران
• بطاقات واجهة الشبكة
ميزات جهاز الإدخال/الإخراج
مساحة الجهاز متنوعة للغاية.


تأتي الأجهزة بجميع الأشكال والأحجام مع الكثير من التباين في بنية الأجهزة ووظائفها وواجهاتها. ستركز مناقشتنا على الميزات الرئيسية للجهاز الذي يتيح دمجه في النظام.
بشكل عام، سيحتوي الجهاز على مجموعة من سجلات التحكم التي يمكن الوصول إليها بواسطة وحدة المعالجة المركزية وتسمح بتفاعلات وحدة المعالجة المركزية/الجهاز. يتم تقسيم هذه السجلات عادةً إلى: سجلات الأوامر ، التي تستخدمها وحدة المعالجة المركزية للتحكم في الجهاز؛ سجلات البيانات ، التي تستخدمها وحدة المعالجة المركزية لنقل البيانات داخل وخارج الجهاز؛ سجلات الحالة التي تستخدمها وحدة المعالجة المركزية لفهم ما يحدث على الجهاز.
داخليًا، سيدمج الجهاز كل المنطق الآخر الخاص بالجهاز. سيشمل ذلك وحدة التحكم الدقيقة - والتي هي في الأساس وحدة المعالجة المركزية للجهاز - على ذاكرة الجهاز، بالإضافة إلى أي منطق آخر يحتاجه الجهاز. على سبيل المثال، قد تحتاج بعض الأجهزة إلى شرائح لتحويل الإشارات التناظرية إلى رقمية. وكمثال آخر، قد تحتاج أجهزة الشبكة إلى شرائح للتفاعل مع وسيط الشبكة الفعلي، سواء كان ذلك بصريًا أو سلكًا نحاسيًا.


ربط جهاز وحدة المعالجة المركزية
تتفاعل الأجهزة مع بقية النظام عبر وحدة تحكم يتم دمجها عادةً كجزء من حزمة الجهاز المستخدمة لتوصيل الجهاز ببقية مجمع وحدة المعالجة المركزية عبر بعض التوصيلات البينية لوحدة المعالجة المركزية/الجهاز.


في هذا الشكل، جميع وحدات التحكم متصلة ببقية النظام عبر ناقل Peripheral Component Interconnect (PCI).
تدعم الأنظمة الأساسية الحديثة عادةً PCI Express ، وهو أكثر تقدمًا من الناحية التكنولوجية من PCI-X وPCI. يتمتع PCI Express بنطاق ترددي أكبر وأسرع وزمن انتقال أقل ويدعم أجهزة أكثر من PCI-X. ولأسباب التوافق، ستتضمن معظم الأنظمة الأساسية PCI-X الذي يتبع معيار PCI الأصلي.
إن ناقل PCI ليس هو الوصلة البينية الوحيدة الممكنة التي يمكن أن تكون موجودة في النظام. في هذا المثال، نرى ناقل SCSI الذي يربط أقراص SCSI وناقل التوسعة (الطرفي) الذي يربط أشياء مثل لوحات المفاتيح.
تحدد وحدات التحكم في الجهاز نوع الاتصال البيني الذي يمكن للجهاز الاتصال به. يمكن لوحدات التحكم في الجسور التعامل مع أي اختلاف بين الأنواع المختلفة من الوصلات البينية.
برامج تشغيل الأجهزة
تدعم أنظمة التشغيل الأجهزة عبر برامج تشغيل الأجهزة .


برامج تشغيل الأجهزة هي مكونات برامج خاصة بالجهاز. تحتاج أنظمة التشغيل إلى تضمين برنامج تشغيل الجهاز لكل نوع من الأجهزة المضمنة في النظام.
برامج تشغيل الأجهزة مسؤولة عن جميع جوانب الوصول إلى الجهاز وإدارته والتحكم فيه . يتضمن ذلك المنطق الذي يحدد كيفية تمرير الطلبات من المكونات ذات المستوى الأعلى إلى الجهاز وكيفية استجابة هذه المكونات للأخطاء أو الإشعارات الواردة من الجهاز. بشكل عام، تتحكم برامج تشغيل الأجهزة في أي تفاصيل تكوين/عملية خاصة بالجهاز.
تتحمل الشركة المصنعة للجهاز مسؤولية توفير برامج التشغيل لجميع أنظمة التشغيل التي سيتم استخدام أجهزتها فيها. على سبيل المثال، قد يتعين عليك غالبًا تنزيل برامج تشغيل الطابعة من HP عند شراء طابعة HP جديدة.
تعمل أنظمة التشغيل على توحيد واجهاتها مع برامج تشغيل الأجهزة. عادةً ما يتم ذلك عن طريق توفير بعض إطار عمل برنامج تشغيل الجهاز، بحيث يمكن لمصنعي الأجهزة تطوير برامج التشغيل الخاصة بهم ضمن هذا الإطار. ويساعد ذلك على فصل نظام التشغيل عن مجموعة ثابتة من الأجهزة المحددة، مما يجعل نظام التشغيل مستقلاً عن الأجهزة التي يدعمها بينما يسمح له أيضًا بدعم العديد من الأجهزة المختلفة.
أنواع الأجهزة
يمكن تجميع الأجهزة تقريبًا في فئات.
أجهزة الحظر - مثل الأقراص - على دقة كتل البيانات التي يتم تسليمها من وإلى الجهاز عبر التوصيل البيني لوحدة المعالجة المركزية. من الخصائص الأساسية لأجهزة الحظر أنه يمكن الوصول إلى الكتل الفردية. إذا كان لديك عشر كتل من البيانات على القرص، فيمكنك طلب الكتلة التاسعة مباشرة.
أجهزة الأحرف - مثل لوحات المفاتيح - مع تسلسل تسلسلي من الأحرف وتدعم واجهة الحصول على/وضع الأحرف.
أجهزة الشبكة موجودة في مكان ما بينهما. إنها تقدم أكثر من شخصية في الوقت نفسه، لكن تفاصيلها ليست بحجم كتلة ثابت. إنها أشبه بتدفق من مجموعات البيانات ذات الأحجام المختلفة المحتملة.
يتم توحيد الواجهة التي يعرضها الجهاز لنظام التشغيل بناءً على نوع الجهاز. يجب أن تدعم جميع أجهزة الحظر عمليات قراءة وكتابة كتلة من البيانات. يجب أن تدعم جميع أجهزة الشخصيات عمليات الحصول على الشخصية ووضعها.
داخليًا، يحتفظ نظام التشغيل ببعض التمثيل لكل جهاز من الأجهزة المتوفرة على النظام الأساسي. يتم ذلك عادةً باستخدام تجريد الملف حيث يمثل كل ملف جهازًا. يسمح هذا لنظام التشغيل بالتفاعل مع الأجهزة عبر نفس الواجهة الموجودة بالفعل للتفاعل مع الملفات. ومع ذلك، سيتم التعامل مع هذه العمليات بطريقة معينة خاصة بالجهاز.
في الأنظمة المشابهة لـ UNIX، تظهر جميع الأجهزة كملفات ضمن الدليل / dev . يتم التعامل معها من خلال أنظمة الملفات تمبفس و ديففس .
تفاعلات وحدة المعالجة المركزية/الجهاز
تظهر سجلات الجهاز لوحدة المعالجة المركزية كمواقع للذاكرة في عنوان فعلي محدد. عندما تقوم وحدة المعالجة المركزية بالكتابة إلى هذه المواقع، تدرك وحدة تحكم PCI المدمجة أنه يجب توجيه عمليات الوصول هذه إلى الجهاز المناسب.
وهذا يعني أن جزءًا من الذاكرة الفعلية على النظام مخصص لتفاعلات الجهاز. نحن نسمي هذا الإدخال/الإخراج المعين للذاكرة . يتم التحكم في جزء الذاكرة المحجوز لهذه التفاعلات بواسطة سجلات العناوين الأساسية (BAR). يتم تكوين هذه السجلات أثناء عملية التمهيد وفقًا لبروتوكول PCI.
بالإضافة إلى ذلك، يمكن لوحدة المعالجة المركزية الوصول إلى الأجهزة عبر تعليمات خاصة. تحدد الأنظمة الأساسية x86 تعليمات دخول/خروج معينة تُستخدم للوصول إلى الأجهزة. تحتاج كل تعليمات إلى تحديد الجهاز المستهدف - منفذ الإدخال/الإخراج - بالإضافة إلى بعض القيمة التي سيتم تمريرها إلى الجهاز. يُسمى هذا النموذج بنموذج منفذ الإدخال/الإخراج .
يمكن أن يأخذ المسار من الجهاز إلى مجمع وحدة المعالجة المركزية طريقين. يمكن للأجهزة إنشاء مقاطعات لوحدة المعالجة المركزية. يمكن لوحدات المعالجة المركزية (CPUs) استطلاع الأجهزة من خلال قراءة سجلات الحالة الخاصة بها لتحديد ما إذا كان لديها بعض الاستجابة/البيانات الخاصة بوحدة المعالجة المركزية (CPU).
مع المقاطعات، الجانب السلبي هو معالجات المقاطعة. هناك الخطوات الفعلية المتضمنة في معالج المقاطعة والتي تكلف دورات وحدة المعالجة المركزية. قد يكون هناك إعداد/إعادة ضبط لأقنعة المقاطعة بالإضافة إلى المزيد من التأثيرات غير المباشرة بسبب تلوث ذاكرة التخزين المؤقت.
ومع ذلك، يمكن للجهاز تشغيل المقاطعات بمجرد حصول الجهاز على معلومات لوحدة المعالجة المركزية.
بالنسبة للاستقصاء، يتمتع نظام التشغيل بفرصة اختيار الوقت الذي سيتم فيه الاستقصاء. يمكن لنظام التشغيل اختيار الاستقصاء في الأوقات التي يكون فيها تلوث ذاكرة التخزين المؤقت في أدنى مستوياته. ومع ذلك، يمكن لهذه الإستراتيجية أن تؤدي إلى تأخير في كيفية ملاحظة الحدث أو التعامل معه، نظرًا لأن المعالجة تحدث في مرحلة ما بعد إنشاء الحدث بواسطة الجهاز. بالإضافة إلى ذلك، قد يؤدي الاستقصاء الكثير إلى تقديم حمل وحدة المعالجة المركزية (CPU) الذي قد لا يكون في المتناول.
الوصول إلى الجهاز PIO
مع الدعم الأساسي فقط من الاتصال البيني مثل PCI، يمكن لوحدة المعالجة المركزية أن تطلب عملية من جهاز الإدخال/الإخراج باستخدام الإدخال/الإخراج المبرمج (PIO). لا تتطلب هذه الطريقة دعمًا إضافيًا للأجهزة.
تصدر وحدة المعالجة المركزية التعليمات عن طريق الكتابة في سجلات الأوامر الخاصة بالجهاز. تتحكم وحدة المعالجة المركزية في حركة البيانات من/إلى الجهاز عن طريق القراءة/الكتابة في سجلات البيانات الخاصة بالجهاز.
دعونا نفكر في كيفية قيام العملية التي تعمل على وحدة المعالجة المركزية بإرسال حزمة شبكة عبر جهاز بطاقة واجهة الشبكة (NIC).
أولاً، تحتاج وحدة المعالجة المركزية إلى الكتابة إلى سجل الأوامر الموجود على الجهاز. يحتاج هذا الأمر إلى توجيه الجهاز الذي يحتاجه لإجراء نقل البيانات التي ستوفرها وحدة المعالجة المركزية. تحتاج وحدة المعالجة المركزية بعد ذلك إلى نسخ الحزمة إلى سجلات البيانات، وسوف تكرر عدة مرات حسب الضرورة حتى يتم إرسال الحزمة بأكملها.
على سبيل المثال، قد يكون لدينا حزمة بحجم 1500 بايت ونرغب في إرسالها باستخدام سجلات بيانات ذات 8 بايت. ستستغرق العملية بأكملها وصولاً واحدًا لوحدة المعالجة المركزية (CPU) إلى سجل الأوامر ثم تقريب 188 - 1500 / 8 - للوصول إلى سجل البيانات. في المجمل، يلزم الوصول إلى 189 وحدة المعالجة المركزية لإرسال الحزمة.
الوصول إلى الجهاز DMA
البديل لاستخدام PIO هو استخدام الأجهزة المدعومة للوصول المباشر للذاكرة (DMA). تتطلب هذه الطريقة دعمًا قويًا إضافيًا في شكل وحدة تحكم DMA.
بالنسبة للأجهزة التي تدعم DMA، تستمر وحدة المعالجة المركزية في كتابة الأوامر مباشرةً إلى سجلات الأوامر الموجودة على الجهاز. ومع ذلك، يتم التحكم في حركة البيانات عن طريق تكوين وحدة تحكم DMA لمعرفة البيانات التي يجب نقلها من الذاكرة إلى الجهاز، والعكس صحيح.
دعونا نفكر في كيفية قيام العملية التي تعمل على وحدة المعالجة المركزية بإرسال حزمة شبكة عبر جهاز بطاقة واجهة الشبكة (NIC).
أولاً، تحتاج وحدة المعالجة المركزية إلى الكتابة إلى سجل الأوامر الموجود على الجهاز. يحتاج هذا الأمر إلى توجيه الجهاز الذي يحتاجه لإجراء نقل البيانات التي ستوفرها وحدة المعالجة المركزية.
يجب أن يكون هذا الأمر مصحوبًا بعملية تقوم بتكوين وحدة تحكم DMA بمعلومات حول عنوان الذاكرة وحجم المخزن المؤقت الذي يحتفظ بحزمة الشبكة.
إذا كانت لدينا حزمة 1500 بايت ونرغب في إرسالها باستخدام مسجلات بيانات ذات 8 بايت، فستتطلب العملية بأكملها وصولاً واحدًا لوحدة المعالجة المركزية (CPU) إلى سجل الأوامر ثم عملية تكوين DMA واحدة.
تكوين DMA ليس عملية تافهة! يستغرق الأمر دورات أكثر بكثير من الوصول إلى الذاكرة. بالنسبة لعمليات النقل الأصغر حجمًا، سيظل PIO أكثر كفاءة.
لكي يعمل DMA، يجب أن يكون المخزن المؤقت للبيانات في الذاكرة الفعلية حتى اكتمال النقل. ولا يمكن تبديله إلى القرص، نظرًا لأن وحدة تحكم DMA لديها حق الوصول إلى الذاكرة الفعلية فقط. وهذا يعني أن مناطق الذاكرة المشاركة في DMA مثبتة . فهي غير قابلة للتبديل.
الوصول إلى الجهاز النموذجي
عندما تحتاج عملية المستخدم إلى إجراء عملية تتطلب جهازًا، ستقوم العملية بإجراء استدعاء نظام لتحديد العملية المناسبة.
سيقوم نظام التشغيل بعد ذلك بتشغيل المكدس الموجود داخل النواة والمرتبط بالجهاز المحدد، وقد يقوم ببعض المعالجة المسبقة لإعداد البيانات التي تتلقاها عملية المستخدم للجهاز. على سبيل المثال، قد تشكل النواة حزمة TCP/IP من مخزن مؤقت غير منسق.
ثم سيقوم نظام التشغيل باستدعاء برنامج تشغيل الجهاز المناسب للجهاز. سيقوم برنامج تشغيل الجهاز بعد ذلك بإجراء تكوين الطلب على الجهاز. على سبيل المثال، سيقوم برنامج تشغيل الجهاز إلى بطاقة واجهة الشبكة بكتابة سجل يقوم بتكوين الجهاز لإجراء إرسال الحزمة المرسلة من نظام التشغيل.
تقوم برامج تشغيل الأجهزة بإصدار الأوامر وإرسال البيانات باستخدام عمليات PIO أو DMA المناسبة. يتحمل برامج التشغيل مسؤولية ضمان عدم الكتابة فوق أي أوامر وبيانات يحتاجها الجهاز أو عدم تسليمها.
وأخيرًا، بمجرد تكوين الجهاز، سيقوم الجهاز بتنفيذ الطلب الفعلي. على سبيل المثال، ستقوم بطاقة واجهة الشبكة (NIC) فعليًا بإرسال الحزمة إلى الشبكة.
أي نتائج/أحداث تنشأ على الجهاز سوف تعبر هذه السلسلة في الاتجاه المعاكس: من الجهاز إلى برنامج التشغيل إلى النواة وأخيرًا إلى عملية المستخدم.


تجاوز نظام التشغيل
ليس من الضروري المرور عبر النواة للوصول إلى الجهاز. من الممكن تكوين بعض الأجهزة بحيث يمكن الوصول إليها مباشرة من مستوى المستخدم. وهذا ما يسمى تجاوز نظام التشغيل . في تجاوز نظام التشغيل، تكون أي ذاكرة/سجلات مخصصة للاستخدام بواسطة الجهاز متاحة مباشرة لعملية المستخدم.
يشارك نظام التشغيل في إتاحة تسجيلات الجهاز لعملية المستخدم عند الإنشاء، ولكنه بعد ذلك يكون بعيدًا عن الطريق.
نظرًا لأننا لا نريد التفاعل مع النواة للتحكم في الجهاز، فإننا نحتاج إلى برنامج تشغيل على مستوى المستخدم - في الأساس مكتبة - يرتبط به المستخدم من أجل التفاعل مع الجهاز. عادةً ما يتم توفير هذه المكتبات، مثل برامج التشغيل على مستوى kernel، من قبل الشركات المصنعة للأجهزة.
يجب أن يحتفظ نظام التشغيل ببعض التحكم في الحبوب الخشنة. على سبيل المثال، لا يزال بإمكان نظام التشغيل تمكين/تعطيل جهاز أو إضافة أذونات لإضافة المزيد من العمليات لاستخدام الجهاز. يجب أن يحتوي الجهاز على سجلات كافية حتى يتمكن نظام التشغيل من تعيين بعضها في عملية مستخدم واحدة أو أكثر مع الاحتفاظ بإمكانية الوصول إلى عدد قليل من السجلات نفسها حتى يتمكن من التفاعل مع الجهاز على مستوى عالٍ.
عندما يحتاج الجهاز إلى تمرير بعض البيانات إلى إحدى العمليات المتفاعلة معه، يجب على الجهاز معرفة العملية التي تنتمي إليها البيانات. يجب أن يقوم الجهاز ببعض وظائف البروتوكول من أجل إزالة تعدد أجزاء مختلفة من البيانات التي تنتمي إلى عمليات مختلفة. عادةً، تقوم النواة بعملية إزالة تعدد الإرسال ، ولكن في تجاوز نظام التشغيل، تُترك هذه المسؤولية للجهاز نفسه.
المزامنة مقابل الوصول غير المتزامن
عند إجراء طلب إدخال/إخراج، تتطلب عملية المستخدم عادةً نوعًا من الاستجابة من الجهاز، حتى لو كان مجرد إقرار.
ما يحدث لمؤشر ترابط المستخدم بمجرد تقديم طلب الإدخال/الإخراج يعتمد على ما إذا كان الطلب متزامنًا أم غير متزامن.
بالنسبة للعمليات المتزامنة، سيتم حظر مؤشر ترابط الاستدعاء. سيضع نواة نظام التشغيل الخيط في قائمة انتظار الانتظار المقابلة المرتبطة بالجهاز، وسيصبح الخيط في النهاية قابلاً للتشغيل مرة أخرى عندما تصبح الاستجابة لطلبه متاحة.
مع العمليات غير المتزامنة، يُسمح لمؤشر الترابط بالاستمرار بمجرد إصدار الطلب. في وقت لاحق، يمكن السماح لعملية المستخدم بالتحقق مما إذا كانت الاستجابة متاحة. وبدلاً من ذلك، يمكن للنواة إخطار العملية بأن العملية قد اكتملت وأن النتائج متاحة.


تذكر عندما تحدثنا عن Flash، ناقشنا أن التنفيذ يحاكي الإدخال/الإخراج غير المتزامن عن طريق تفويض جميع مكالمات الإدخال/الإخراج إلى سلاسل رسائل مساعدة خاصة. نحن هنا نتحدث عن الإدخال/الإخراج غير المتزامن الحقيقي والمدعوم من نظام التشغيل.
كتلة جهاز المكدس
عادةً ما تُستخدم أجهزة الحظر، مثل الأقراص، للتخزين، والتجريد النموذجي المتعلق بالتخزين الذي تستخدمه التطبيقات هو الملف. الملف عبارة عن وحدة تخزين منطقية يتم تعيينها لبعض مواقع التخزين الفعلية الأساسية. على مستوى عملية المستخدم، لا نفكر في التفاعل مع كتل التخزين. نحن نفكر في التفاعل مع الملفات.
أسفل الواجهة القائمة على الملفات التي تستخدمها التطبيقات يوجد نظام الملفات. سيتلقى نظام الملفات عمليات القراءة/الكتابة من عملية المستخدم لملف معين، وسيكون لديه المعلومات اللازمة للعثور على الملف، وتحديد ما إذا كان بإمكان عملية المستخدم الوصول إليه والجزء الذي يجب الوصول إليه. يمكن لنظام التشغيل بعد ذلك إجراء الوصول فعليًا.
تسمح أنظمة التشغيل بتعديل نظام الملفات أو استبداله بالكامل بنظام ملفات مختلف . لتسهيل ذلك، تعمل أنظمة التشغيل على توحيد واجهة نظام الملفات التي تتعرض لعملية المستخدم. واجهة برمجة التطبيقات القياسية هي POSIX API، والتي تتضمن مكالمات النظام للقراءة والكتابة. والنتيجة هي أنه يمكن تبديل أنظمة الملفات دون تعطيل تطبيقات المستخدم/
إذا تم تخزين الملفات على أجهزة محظورة، فسيحتاج نظام الملفات إلى التفاعل مع هذه الأجهزة عبر برامج تشغيل الأجهزة الخاصة بها. يمكن استخدام أنواع مختلفة من أجهزة الحظر للتخزين الفعلي وسيتطلب التفاعل الفعلي معها واجهات برمجة تطبيقات معينة خاصة بالبروتوكول. على الرغم من أن الأجهزة قد تكون جميعها أجهزة محظورة، فمن الممكن أن تكون هناك اختلافات بين واجهات برمجة التطبيقات (APIs) الخاصة بها في كثير من الأحيان.
من أجل إخفاء هذه الاختلافات الخاصة بالجهاز، تقدم حزمة جهاز الكتلة طبقة أخرى: طبقة الكتلة العامة . الهدف من هذه الطبقة هو توفير معيار لنظام تشغيل معين لجميع أنواع أجهزة الكتلة. لا تزال ميزات الجهاز الكاملة متاحة ويمكن الوصول إليها من خلال برنامج تشغيل الجهاز، ولكن يتم تجريدها بعيدًا عن نظام الملفات نفسه.
وبالتالي، بنفس الطريقة التي يوفر بها نظام الملفات واجهة برمجة تطبيقات ملفات متسقة لعمليات المستخدم، يوفر نظام التشغيل واجهة برمجة تطبيقات كتلة متسقة لنظام الملفات .
نظام الملفات الظاهري
ماذا لو أردنا التأكد من أن تطبيق المستخدم يمكنه رؤية الملفات بسلاسة عبر أجهزة متعددة كنظام ملفات واحد متماسك ؟
ماذا لو كانت أنواع مختلفة من الأجهزة تعمل بشكل أفضل مع تطبيقات أنظمة الملفات المختلفة ؟
ماذا لو لم تكن الملفات محلية على الجهاز، ويمكن الوصول إليها عبر الشبكة؟
لحل المشاكل الأساسية التي تطرحها هذه الأسئلة، تتضمن أنظمة التشغيل مثل Linux طبقة نظام ملفات افتراضي (VFS). تخفي هذه الطبقة جميع التفاصيل المتعلقة بنظام (أنظمة) الملفات الأساسية من المستهلكين ذوي المستوى الأعلى.


تستمر التطبيقات في التفاعل مع VFS باستخدام نفس واجهة برمجة تطبيقات POSIX كما كان من قبل، ويحدد VFS مجموعة أكثر تفصيلاً من التجريدات المتعلقة بنظام الملفات والتي يجب على كل نظام ملفات أساسي تنفيذها.
تجريدات نظام الملفات الظاهري
تجريد الملف العناصر التي يعمل عليها VFS.
يقوم نظام التشغيل باستخلاص الملفات عبر واصفات الملفات . واصف الملف هو عدد صحيح يتم إنشاؤه عند فتح الملف لأول مرة. هناك العديد من العمليات التي يمكن دعمها على الملفات باستخدام واصف الملف، مثل القراءة والكتابة والإغلاق.
لكل ملف، يحتفظ VFS ببنية بيانات ثابتة تسمى inode . يحتفظ inode بقائمة بجميع كتل البيانات المقابلة للملف. بهذه الطريقة، يكون inode هو "عقدة الفهرس" للملف. يحتوي inode أيضًا على معلومات أخرى لهذا الملف، مثل الأذونات المرتبطة بالملف، وحجم الملف، وبيانات التعريف الأخرى. تعتبر Inodes مهمة لأن الملف لا يحتاج إلى تخزينه بشكل متجاور على القرص. قد تكون كتل الملف موجودة في جميع أنحاء وسائط التخزين، مما يجعل من المهم الحفاظ على هذا الفهرس.
للمساعدة في عمليات معينة على الدلائل، يحتفظ Linux ببنية بيانات تسمى dentry (إدخال الدليل). يتوافق كل كائن أسنان مع مكون مسار واحد يتم اجتيازه أثناء محاولتنا الوصول إلى ملف معين. على سبيل المثال، إذا كنا نحاول الوصول إلى ملف في /users/ ada ، فسيقوم نظام الملفات بإنشاء أسنان لكل مكون مسار - لـ / و /users و /users/ ada .
يعد هذا مفيدًا لأنه عندما نحتاج إلى العثور على ملف آخر في /users/ ada ، لا نحتاج إلى المرور عبر المسار بأكمله وإعادة قراءة الملفات التي تتوافق مع جميع الأدلة من أجل الوصول إلى /users/ دليل ادا . سيحتفظ نظام الملفات بذاكرة تخزين مؤقت تحتوي على كافة الأدلة التي قمنا بزيارتها مسبقًا. لاحظ أن الكائنات المسننة تعيش فقط في الذاكرة؛ لم تستمر.
أخيرًا، يوفر تجريد الكتلة الفائقة معلومات حول كيفية وضع نظام ملفات معين على بعض أجهزة التخزين. تحتفظ بنية البيانات بخريطة يستخدمها نظام الملفات حتى تتمكن من معرفة كيفية تنظيم عناصر البيانات المستمرة مثل inodes وكتل البيانات التي تنتمي إلى ملفات مختلفة.
يحتفظ كل نظام ملفات ببعض البيانات الوصفية الإضافية في الكتلة الفائقة. تقوم أنظمة الملفات المختلفة بتخزين بيانات تعريف مختلفة.
VFS على القرص
هياكل بيانات نظام الملفات الظاهري هي كيانات برمجية. يتم إنشاؤها وصيانتها بواسطة مكون نظام ملفات نظام التشغيل.
بخلاف dentries ، ستتوافق المكونات المتبقية من نظام الملفات مع الكتل الموجودة على القرص. تتم كتابة الملفات على القرص ككتل. inodes - التي تتعقب جميع الكتل التي تتوافق مع الملف - تستمر أيضًا في الكتلة.
لفهم كل هذا - أي فهم أي الكتل تحتوي على البيانات، وأي الكتل تحتوي على inodes وأي الكتل مجانية - تحتفظ الكتلة الفائقة بخريطة شاملة لجميع الأقراص الموجودة على جهاز معين. يتم استخدام هذه الخريطة للتخصيص والبحث.
نظام الملفات الموسع الثاني
نظام الملفات ext2 هو نظام الملفات الافتراضي في Linux حتى تم استبداله بـ ext3 و ext4 مؤخرًا.
قسم القرص المستخدم كنظام ملفات ext2 Linux كما يلي.


لا يتم استخدام الكتلة الأولى بواسطة Linux وغالبًا ما يتم استخدامها لتشغيل النظام.
يتم تقسيم باقي القسم إلى مجموعات كتل. حجم مجموعات الكتل هذه ليس له علاقة بفيزياء القرص الفعلي الذي تلخصه هذه المجموعة.
تحتوي كل مجموعة كتل على عدة كتل.
الكتلة الأولى هي الكتلة الفائقة، والتي تحتوي على معلومات حول مجموعة الكتل الشاملة:
• عدد الإينودات
• عدد كتل القرص
• بداية الكتل المجانية
يتم وصف الحالة العامة لمجموعة الكتل بشكل أكبر من خلال واصف المجموعة، الذي يحتوي على معلومات حول:
• صور نقطية
• عدد العقد الحرة
• عدد الدلائل
تُستخدم الصور النقطية للعثور بسرعة على الكتل والرموز المجانية . يمكن للمخصصين ذوي المستوى الأعلى قراءة الصور النقطية لتحديد الكتل والرموز الداخلية المجانية والمستخدمة بسهولة.
inodes من 1 إلى بعض القيمة القصوى . كل inode في ext2 عبارة عن بنية بيانات 128B تصف ملفًا واحدًا بالضبط. سيحتوي inode على معلومات حول ملكية الملف بالإضافة إلى مؤشرات إلى كتل البيانات الفعلية التي تحتوي على البيانات.
وأخيرًا، تحتوي مجموعة الكتل على كتل البيانات الفعلية نفسها التي تحتوي على البيانات.
inode
Inodes دورًا رئيسيًا في تنظيم كيفية تخزين الملفات على القرص لأنها تدمج بشكل أساسي فهرسًا لجميع كتل القرص التي تتوافق مع ملف معين.


يتم تعريف الملف بشكل فريد من خلال inode الخاص به . يحتوي inode على قائمة بجميع الكتل التي تتوافق مع الملف الفعلي. بالإضافة إلى قائمة الكتل، يحتوي inode أيضًا على معلومات بيانات تعريف إضافية.
يحتوي الملف الموضح أعلاه على 5 كتل مخصصة له. إذا كنا بحاجة إلى مساحة تخزين أكبر للملف، فيمكن لنظام الملفات تخصيص كتلة مجانية، وببساطة تحديث inode ليحتوي على الإدخال السادس، مع الإشارة إلى الكتلة المخصصة حديثًا.
وتتمثل فائدة هذا الأسلوب في أنه من السهل إجراء عمليات الوصول التسلسلية والعشوائية إلى الملف.
الجانب السلبي لهذا الأسلوب هو أن هناك حدًا لحجم الملف للملفات التي يمكن فهرستها باستخدام بنية البيانات هذه. على سبيل المثال، إذا كان لدينا inode 128B يحتوي على مؤشرات كتلة 4B، فيمكننا معالجة 32 كتلة فقط. إذا كانت كل كتلة يمكنها تخزين 1 كيلو بايت من المعلومات، فإن الحد الأقصى لحجم الملف لدينا هو 32 كيلو بايت، وهو مقيد للغاية.
inodes مع مؤشرات غير مباشرة
إحدى الطرق لحل مشكلة حدود حجم الملف هي استخدام المؤشرات غير المباشرة .


يحتوي القسم الأول من الكتل على كتل تشير مباشرة إلى البيانات. ستشير المؤشرات المباشرة إلى 1 كيلو بايت لكل إدخال.
لتوسيع عدد كتل القرص التي يمكن معالجتها عبر عنصر inode واحد ، مع الحفاظ أيضًا على حجم inode صغير ، يمكننا استخدام مؤشرات غير مباشرة.
سيشير المؤشر غير المباشر إلى كتلة من المؤشرات، حيث يشير كل مؤشر إلى البيانات. نظرًا لأن الكتلة تحتوي على مساحة تبلغ 1 كيلو بايت، ويبلغ حجم المؤشر 4 بايت، فيمكن أن يشير مؤشر غير مباشر واحد إلى 256 كيلو بايت من محتوى الملف.
سيشير المؤشر المزدوج غير المباشر إلى كتلة من المؤشرات غير المباشرة المفردة، بينما سيشير إلى مؤشرات البيانات. وهذا يعني أن المؤشر المزدوج غير المباشر يمكن أن يشير إلى 256 256 1 كيلو بايت = 64 ميجابايت من محتوى الملف.
تتمثل فوائد المؤشرات غير المباشرة في أنها تسمح لنا باستخدام inodes صغيرة نسبيًا مع القدرة على معالجة الملفات الأكبر حجمًا والكبيرة.
الجانب السلبي للمؤشرات غير المباشرة هو أن الوصول إلى الملفات يتباطأ. بدون أي مؤشرات غير مباشرة، لدينا على الأكثر وصولان إلى القرص للحصول على كتلة من المحتوى: وصول واحد إلى inode ، ووصول واحد إلى الكتلة. باستخدام المؤشرات المزدوجة غير المباشرة، نضاعف عدد عمليات الوصول التي نحتاج إلى إجرائها: inode + block + two pointers.
تحسينات الوصول إلى القرص
أنظمة الملفات عدة تقنيات لمحاولة تقليل الوصول إلى القرص وتحسين النفقات العامة للوصول إلى الملفات.
على سبيل المثال، تعتمد أنظمة الملفات على ذاكرة التخزين المؤقت في الذاكرة الرئيسية لتقليل عدد مرات الوصول إلى القرص. ستتم كتابة المحتوى وقراءته من ذاكرات التخزين المؤقت هذه، وسيتم مسحه على القرص بشكل دوري. تدعم أنظمة الملفات هذه العملية عبر استدعاء نظام fsync .
مكون آخر يساعد على تقليل الحمل الزائد للوصول إلى الملفات هو جدولة الإدخال/الإخراج . الهدف الرئيسي لجدولة الإدخال/الإخراج هو تقليل حركة رأس القرص، وهي عملية بطيئة. يمكن لبرامج جدولة الإدخال/الإخراج تحقيق ذلك من خلال زيادة الوصول المتسلسل إلى الحد الأقصى عبر الوصول العشوائي.
على سبيل المثال، إذا كان رأس القرص في الكتلة 7، وجاء طلب للكتابة في الكتلة 25، متبوعًا بطلب للكتابة في الكتلة 17، فقد يقوم برنامج جدولة الإدخال/الإخراج بإعادة ترتيب الطلبات حتى يتمكن من الكتابة إلى الكتلة 17 في طريقها لحجب 25 بدلاً من الاضطرار إلى التراجع.
تقنية أخرى مفيدة هي الجلب المسبق . نظرًا لوجود الكثير من المواقع في كيفية الوصول إلى الملف، يمكن زيادة عدد مرات الوصول إلى ذاكرة التخزين المؤقت عن طريق جلب الكتل القريبة أثناء الطلب.
على سبيل المثال، إذا جاء طلب قراءة للكتلة 17، فقد يقرأ نظام الملفات أيضًا الكتلة 18 و19 في ذاكرة التخزين المؤقت الخاصة به. يقوم بجلب هذه الكتل مسبقًا لأنه من المحتمل أن تتم قراءتها أيضًا.
يستخدم هذا المزيد من النطاق الترددي للقرص لنقل المزيد من البيانات من القرص إلى الذاكرة الرئيسية، ولكنه يمكن أن يقلل بشكل كبير من زمن وصول الوصول عن طريق زيادة معدل دخول ذاكرة التخزين المؤقت.
الأسلوب المفيد الأخير هو كتابة اليوميات . تعمل جدولة الإدخال/الإخراج على تقليل الوصول العشوائي، ولكنها تحافظ على البيانات في الذاكرة. لا تزال الكتلتان 17 و25 في الذاكرة في انتظار أن يقوم برنامج جدولة الإدخال/الإخراج بتشذيرهما بالطريقة الصحيحة. وهذا يعني أنه في حالة تعطل النظام سيتم فقدان كتل البيانات هذه.
بدلاً من كتابة البيانات في موقع القرص المناسب، الأمر الذي قد يتطلب الكثير من الوصول العشوائي إلى القرص، فإننا نكتب تحديثات للسجل في دفتر اليومية. سيحتوي السجل على بعض الوصف للكتابة التي يجب إجراؤها، مثل الكتلة والإزاحة والمحتوى المراد كتابته. يتم تطبيق عمليات الكتابة الموضحة في السجل بشكل دوري على مواقع القرص المناسبة.


Summarize English and Arabic text online

Summarize text automatically

Summarize English and Arabic text using the statistical algorithm and sorting sentences based on its importance

Download Summary

You can download the summary result with one of any available formats such as PDF,DOCX and TXT

Permanent URL

ٌYou can share the summary link easily, we keep the summary on the website for future reference,except for private summaries.

Other Features

We are working on adding new features to make summarization more easy and accurate

Latest summaries

وثّق مركز تعز ا...

وثّق مركز تعز الحقوقي (THRC) ارتكاب مليشيا الحوثي 1444 انتهاكاً بحق المدنيين والأعيان المدنية في محا...

### السؤال الثا...

### السؤال الثاني: **"تتطلب إدارة الجلسات السيكودرامية لذوي الاحتياجات الخاصة فهماً عميقاً لكيفية ت...

تولى الأدميرال ...

تولى الأدميرال دوبريه قيادة أسطول بحري مكون من 600 سفينة في تولون، ثم توجه نحو مدينة الجزائر العاصمة...

Kvinnesyn: Kvin...

Kvinnesyn: Kvinnen blir framstilt som naiv og lett å lede, men samtidig som nysgjerrig og viljesterk...

مقدمة شكّل المر...

مقدمة شكّل المرفق العام منذ نشأة الدولة الحديثة الأداة الرئيسية لتحقيق المصلحة العامة وإشباع الحاجات...

التخصص العلمي ل...

التخصص العلمي للباحث: يعد من أهم العوامل الذاتية لإختيار البحث، إذ تعتبر القدرة العلمية عاملا متحكما...

A security thre...

A security threat in PHP applications refers to a vulnerability, flaw, or vector in a PHP web applic...

الفطرية في الدو...

الفطرية في الدولة وزيادة الوعي العام بالقضايا المتعلقة بالتنوع البيولوجي، فضلا عن المساهمة في تحقيق ...

بين رفوف المحلا...

بين رفوف المحلات التي تتغير أسعارها، ومواطن يواجه فاتورة معيشية تتزايد يوماً بعد آخر، تتصاعد التساؤل...

. وفي حال أدى ا...

. وفي حال أدى الاختراق إلى كشف بيانات شخصية وتسبب بضرر كبير للأشخاص، يتوجب على المؤسسة إبلاغ المتضرر...

أكدت الجمهورية ...

أكدت الجمهورية اليمنية، أهمية اتخاذ موقف عربي حازم لمواجهة خطاب الكراهية والتحريض الإعلامي الذي يسته...

الترومبيت' هو أ...

الترومبيت' هو أداة نحاسية فى الفرق الكلاسيكية و مزيكا الجاز . تتراوح مجموعة البوق من البوق البيكولو ...

Tech news