تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال حول تخزين الملفات
#1
السلام عليكم ورحمة الله وبركاته

سؤالي هو حول تخزين الملفات بشكل عام على الهارد ديسك 

العملية الفيزيائية لعملية التخزين معروفة لكن سؤالي هو عن طريقة تحديد بدايةو نهاية الملف

فالملفات الموجودة على الهارد ديسك يمكن ان تكون متتالية ليس بينها فواصل وممكن ان يكون بينها مساحات فارغة وممكن يكون بينها بقايا من ملفات محذوفة

 الان كيف يتعرف الحاسب على بداية و نهاية الملف

هل هو يستخدم فهرس مستقل عن الملفات ليحددفيه احداثيات اماكن بداية ونهاية الملفات اضافة للتفاصيل الاخرى 

ام هناك اضافة مخفية ((لا تظهر في البرامج الخاصة بفتح الملفات بصورة باينري  او هيكس )) لكل ملف في بدايته و نهايته تشير الى البداية و  النهاية

ام هناك طريقة اخرى

يرجى التوضيح 

ولكم فائق الشكر والتقدير
الرد
تم الشكر بواسطة:
#2
كل التعاملات تتم داخل الحاسب بالنظام الثنائي “Binary System” والذي يعتمد علي الصفر والواحد الصحيح كمكون اساسي له. حيث يعتبر الصفر حقل ليس له قيمه اما الواحد هو حقل له قيمة.
وسنفترض ان لدينا قرص صلب فارغ تماما ولا يوجد عليه أي محتوي (أي ان القرص كاملا لا يحتوي الا علي اصفار). وسنقوم بكتابة صورة صغيرة علي هذا القرص وسيكون اسم الصورة “Personal.jpg”، فان الحاسب الآلي سيقوم بتحويل الصورة الي الصيغة الثنائية “Binary” ولنفترض انه سيكون بالشكل التالي:


[صورة مرفقة: HDD.jpg]
ويمكننا تمثيل شكل القرص الصلب افتراضيا بمصفوفة ثنائية التكوين لها 26 عمود بعدد الحروف الانجليزية من A الي Z ولها ثمانية اسطر فقط كما هو موضح بالشكل التالي (القرص الصلب فارغا)
[صورة مرفقة: HDD011.jpg]
والمساحة الموجودة في السطرين الاول والثاني والمسبوقة بـ TOC “Table Of Content” انما تحتوي علي فهرس القرص الصلب وهو عبارة عن مؤشر للملفات المخزنة حيث تحفظ بداية ونهاية الملف. وتبقي المساحة في الاسطر من الثالث الي الثامن مساحة حرة لتخزين البيانات ولو اعتبرنا ان كل خانة تمثل بايت واحد فقط “1 Byte” ستكون مساحة القرص الصلب لدينا 6×26=156 بايت.
وبعد تخزين الصورة السابق الاشارة اليها والتي يكون حجمها حسب المثال السابق 40 بايت (عدد الخانات كل خانة = 1 بايت) ستصبح مساحة التخزين الحرة في القرص الصلب = 156-40=116 بايت. وسيتم كتابة البيانات كالتالي:
[صورة مرفقة: HDD021.jpg]
وبذلك تم ارشفة بيانات الصورة في TOC باسم الصورة ونقطة البداية ونقطة النهاية في المساحة الحرة. فبحسب المثال سنجد ان الصورة تم تخزينها في المساحة من A3 الي N4.
والسؤال هنا: ماذا سيحدث اذا لم تتوافر مساحة حرة مستمرة في القرص الصلب كما في المثال السابق؟
ولنفترض بحسب المثال السابق ان هناك ملف نصي باسم “Hi.txt” والقيمة الثنائية له كالتالي 011010100111
والان لنضيف هذا الملف الي القرص الافتراضي لدينا
ستضاف البيانات الي المساحة الحرة التالية للمساحة المحجوزة للصورة حيث سيضاف اسم الملف الي TOC متبوعا بمكان بداية البيانات ونهايتها حيث يبدأ في O4 وينتهي Z4 كما بالجدول التالي علي اعتبار ان التخزين تم علي نظام الـFAT الخاص بالويندوز
[صورة مرفقة: HDD031.jpg]
وبالتالي لا توجد لدينا مشكلة حتي الان. الا ان المشكلة تأتي في حالة التعديل علي الصورة واضافة تأثيرات لها وبالتالي يزيد حجمها قليلا وبالتالي يكون السؤال كيف سيتم تخزينها بعد ان تم حجز المساحة الحرة التي تليها للملف النصي Hi.TXT.
وهنا يظهر لدينا احتمالين:
1- أن يتم حذف الصورة الأولي وإعادة كتابتها كاملة مرة اخري بعد نهاية الملف النصي الثاني، ولكن الأمر هنا سيتضمن الكثير من عمليات القراءة والكتابة.
2-أن يتم تجزئة الصورة الأولي بحيث تصبح البيانات في مكانين مختلفين وان كان هذا الأمر سيبطىء من عملية الوصول المتتالي للبيانات.
فعند التعديل علي الصورة بالطريقة الأولي تم حذف الصورة كاملة واعادة كتابتها بعد الملف النصي وتم تغيير مكان بداية ونهاية الملف في TOC فقط ليصبح شكل القرص الصلب كالتالي:
[صورة مرفقة: HDD041.jpg]
أماعند التعديل علي الصورة بالطريقة الثانية سيتم اضافة الجزء الزائد في البيانات بعد الملف النصي وسوف يتم تعديل مكان البداية والنهاية باضافة مكان بداية ثاني ومكان نهاية ثاني الي TOC الخاص بالصورة ليصبح شكل القرص الصلب كالتالي:
[صورة مرفقة: HDD051.jpg]
ومع الطريقة الثانية تظهر ضرورة عمل الغاء التجزئة للقرص الصلب “Disk Defragmentation” كل فترة لإعادة توزيع البيانات بالشكل الأمثل وتسهيل الوصول اليها للتخفيف من حركة الذراع الميكانيكية للقرص الصلب.
ولكن هناك بعض أنظمة الملفات الاخري التي تراعي هذه المشكلة عند تخزين البيانات فمثلا نظام EXT4 الخاص باللينكس. والان لنري كيف سيتم كتابة الملفين علي القرص الصلب تبعا لهذا النظام.
كتابة الصورة الاولي:
[صورة مرفقة: HDD061.jpg]
وعند كتابة الملف النصي التالي يتم كالتالي:
[صورة مرفقة: HDD071.jpg]
ان الفكرة في هذه الطريقة في أن ذراع القرص الصلب ستتوضع في المنتصف وستصل بسرعة لمعظم الملفات دون جهد. كما أن اعادة التعديل علي الصورة لن تصبح أمرا صعبا بعد الآن.
اتمني ان اكون قد وفقت في نقل الفكرة
( منقول من.... اسلام جمعه)
الرد
تم الشكر بواسطة: abudawoodd
#3
أحسنت اخي شرح رائع وتفصيل دقيق الفكرة واضحة الان جزاك الله خيراً

سؤال للتاكيد لو سمحت أخي العزيز
فهمت من شرحك بأنه لا يوجد اي اضافات على بيانات الملف للدلالة على بدايته او نهايته انما توضع بيانات الاسم واحداثيات البداية والنهاية في منطقة محجوزة على القرص الصلب تستخدم كفهرس لتلك البيانات
هذا ما فهمته فهل ما فهمته صحيح ؟
ولك فائق الاحترام والتقدير
الرد
تم الشكر بواسطة:
#4
السلام عليكم

طبعا سؤالك ليس له علاقة بالفيجوال بيسيك

مساهمة لسؤالك

جدول توزيع الملف



الرد
تم الشكر بواسطة: abudawoodd , abudawoodd
#5
وعليكم السلام ورحمة الله وبركاته
شكرا لك اخي العزيز
بصراحة اعلم ان هذا ليس المكان المناسب لكن لدي سببين لوضع الموضوع هنا

الاول:
عندما اردت كتابة الموضوع وجدت ان الاقسام المناسة خاملة كليا
بل ان بعضها ليس فيه اي حركة منذ شهور وانا بحاجة المعلومة باسرع وقت

الثاني :
لاني اظن ان المبرمجين لديهم مخيلة اكبر واقوى من غيرهم
وهذا مبني على مقارنة بين من اعرفهم من المبرمجين وغيرهم من فنيين ومهندسين
فالمبرمجين دائما يبحثون عن السبب وطريقة الحل او امكانية التطوير
اما غيرهم فالغالبية وليس الكل عند اي مشكلة لا يحرك ساكن وينتظر حتى يكلم الشركة او البائع مع انه ليس قليل علم

وشكرا للجميع على التفاعل
مع تاكيدي على سؤالي الاخير هل فهمي للموضوع صحيح؟
الف شكر مرة اخرى
الرد
تم الشكر بواسطة:
#6
شكرا
شرح رائع الصراحه
الرد
تم الشكر بواسطة:
#7
(17-02-17, 07:14 PM)abudawoodd كتب : أحسنت اخي شرح رائع وتفصيل دقيق الفكرة واضحة الان جزاك الله خيراً

سؤال للتاكيد لو سمحت أخي العزيز
فهمت من شرحك بأنه لا يوجد اي اضافات على بيانات الملف للدلالة على بدايته او نهايته انما توضع بيانات الاسم واحداثيات البداية والنهاية في منطقة محجوزة على القرص الصلب تستخدم كفهرس لتلك البيانات
هذا ما فهمته فهل ما فهمته صحيح ؟
ولك فائق الاحترام والتقدير

نعم اخي هذا المقصود
الرد
تم الشكر بواسطة: abudawoodd
#8
اشكرك صديقي وجزاك الله خيرا
كفيت ووفيت
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] سؤال في QUERY hglogtd 5 92 17-04-18, 01:57 AM
آخر رد: ابو ليلى
  سؤال عزف الرياح 2 77 12-04-18, 08:42 PM
آخر رد: عزف الرياح
Brick سؤال عن فكرة نقاط البيع abdou 11 342 12-04-18, 01:36 AM
آخر رد: ملهمـ
  [سؤال] سؤال بخصوص الكومبو بوكس احمد خطاب خطاب 2 73 12-04-18, 01:17 AM
آخر رد: احمد خطاب خطاب
  سؤال في اسم الفورم اثناء التصميم والتشغيل emamtron2014 1 54 11-04-18, 06:27 PM
آخر رد: aftfm
  سؤال : معالجة البيانات الكبيرة احمد نعمة عبد السلام 6 179 30-03-18, 12:55 PM
آخر رد: احمد نعمة عبد السلام
  [VB.NET] سؤال عن تنبيه بصوت عند البحث في Datagridview lord52436 3 104 29-03-18, 01:10 AM
آخر رد: محمود صالح
Rainbow [VB.NET] سؤال المنذر علي عبدالكريم 3 90 22-03-18, 03:44 PM
آخر رد: عبد العزيز البسكري
  [VB.NET] سؤال حول خصائص الفورم hadeel 2 102 21-03-18, 01:08 AM
آخر رد: محمود صالح
  [سؤال] سؤال في استخدام Process واغلاقه ! (عندما يغلق برنامج يتم تنفيد امر) Iman Mohamed Omran 8 228 13-03-18, 11:27 AM
آخر رد: Iman Mohamed Omran

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم