الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل سيكتب على نفس ال sector

مغلق
بدأه aboShoraih في 24 أغسطس 2006 · 6 رد · 722 مشاهدة · في نظام تشغيل Windows
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني الكرام ... لدي سؤال له علاقة بالهاردوير الى حد ما ...

بفرض كان لدي ملف ما وليكن اسمه myFile موجود في مجلد ما ...

وعلى فرض حاولت انشاء او نقل ملف آخر بنفس اسم الملف السابق myFile واردت ان اضعه في نفس المجلد .... فالوضع الطبيعي ان يخبرني النظام انني امام خيارين ... اما ان الغي عملية النقل بسبب تشابه اسم الملفين ... او ان يسمح لي بالعملية بشرط ان يحل الملف الجديد مكان الملف القديم ... في هذا المجلد ... وبالتالي وبشكل طبيعي سيحذف الملف القديم ...

وسؤالي هو ... على مستوى الهادروير ... هل سيقوم ايضا الجهاز بالكتابة على نفس ال sector ام انه سيقوم بالكتاية على sector جديد ... اي هل سيعمل overwritting ام لا ....

#2

سؤالك لايزال على مستوى السوفت وير وبالتحديد نظام الملفات سواء كان FAT أو NTFS أو ....

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

ولكن وجهة نظري أنه سيقوم بالكتابة في أي مكان خالي على القرص وبعدها يشير الى هذا المكان بالاسم المطلوب

وللاستدلال على هذا:

1 - انسخ ملف كبير الحجم نسبيا 100 ميجا مثلا على القرص C

2 - انسخ ملف اخر ولكن قم بتسميته بنفس الاسم وضعه في مجلد على القرص C

3 - لاحظ الوقت الذي يستغرقه الجهاز لنسخ الملفات لأول مره

4 - قم بنقل الملف الخارجي الى المجلد

هل أخذ وقت في نقل الملف ؟

لن يأخذ وقت لأنه لن يعيد كتابة الملف الأول فوق الملف الثاني , ولكنه فقط سوف يقوم بهذه الخطوات ,

1 - يلغي اسم الملف الثاني من جدول الملفات

2 - يعيد تسمية الملف الأول الى اسم الملف الثاني (يتضمن تفريعه من المجلدات)

للحصول على معلومات دقيقة يمكنك القراءة في أنظمة الملفات

#3

جزاك الله خيرا ...

طيب ما الفكرة في عدم السماح لملفين من نفس الاسم ان يكونا في نفس المجلد ..

تم تعديل هذه المشاركة بواسطة aboShoraih في 24 أغسطس 2006 في 15:15

#4
اقتباس
طيب ما الفكرة في عدم السماح لملفين من نفس الاسم ان يكونا في نفس المجلد ..

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

و نفرض جدلا ان الملفين لهم نفس الإسم وفي نفس المجلد.. وبعدين انت اردت فتح ملف السيارة وكان اسمه super_image.jpg.. فأنت حينها ترسل طلب إلى نظام الملفات تقول له اريد الحصول على الملف super_image ونظام الملفات يتولى قضية ايجاد الـpointers على الهارديسك حيث توجد اجزاء الملف.. لكن في حالة كان لملفين نفس الإسم في نفس المجلد، فكيف تريد نظام الملفات ان يعلم عن اي ملف يجب عليه ايجاد البيانات المطلوبة؟ مستحيل فكرة الإسم هو كفكرة الـID.. استحالة شخصين يكون لهم نفس الـID... لكن ممكن شخص واحد يكون له اكثر من ID

الخلاصة، ان ملفين لهما نفس الإسم مستحيل

لكن ملف له اكثر من إسم ممكن . مثال على ذلك الـhard links (وليس soft links، لانه عبارة عن ملف جديد منفصل)

يعني من خلال الـhard link ممكن تجعل ملف صورة السيارة له اكثر من اسم واي اسم طلبت فكأنك تطلب السيارة نفسها.. وهذا يأخذ مساحة اقل من الـsoft link لانه لن يكون inode جديدة وكذلك لن يكون ملف جديد.. والـpermission و الـtime stamp هو نفسه بالضبط مع جميع تلك الأسماء المرتبطة بذلك الـinode

والقضية بالضبط كما قال اخي Asm4all متعلقة بالسوفتوير.. ولو تسأل في اقسام السوفتير افضل

الذي يقوم به نظام التشغيل او بالتحديد filesystem هو فقط حذف اسم الملف (الinode في حال كان EXT او UFS او غيره من انظمة ملفات اليونكس، لكن الوندوز لا اعلم ماهو اللفظة الصحيحة لهذا الشيء).. لاحظ انه لم يقم بمسح محتويات الملف، إنما فقط اسم الملف ومايدل على وجوده، فالعملومات لازالت مخزنة في القرص الصلب..

وعندما تقوم بحفظ ملف جديد سواءا بنفس الإسم السابق أو لا، فإنه يقوم بتخزينه في مساحة فارغة جديدة، ولا يعيد الحفظ على المساحة السابقة

وعندما تستهلك جميع المساحات النظيفة الغير مستخدمة سابقا، سيقوم بحفظ ملفاتك في المساحات القديمة التي تم استخدامها سابقا لحفظ ملفات ممسوحة الآن

وقضية move كما قال Asm4All هو فقط تغيير لإسم الملف وإبقاء البيانات مخزنة في المكان السابق بالضبط.. يعني المكان الفيزيائي للمعلومات لم تتغير في القرص الصلب، الذي تغير هو فقط اسم الملف ومساره.. بمعنى آخر ي حالة انظمة ملفات اليونكس، الـpointer او المؤشرات على القرص الصلب لا تتغير

هذا الكتاب من افضل ماوجدت حتى الآن عن انظمة الملفات.. يتكلم عن EXT2 المستخدم على اللينوكس بكثرة.. حتى لو كنت تستخدم NTFS او FAT فهذا يفيدك لان انظمة الملفات متشابهة بعض الشيء http://www.science.unitn.it/~fiorella/guid...000000000000000

إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.

post-21836-1257612765.gif

before asking: smart questions how-to

#5

جزاك الله خيرا وزادك علما وعمل ...

#6

سؤال آخر ...

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

#7

aboShoraih آسف على التاخير.. لانني لا ادخل هذا القسم كثيرا..

للإجابة على سؤالك.. هذا يعتمد على نظام الملفات..

نظام ملفات FAT و NTFS يقومون بهذا:

1- في حال كان حجم الملف بعد التعديل أصغر، فسيكون الملف في مكانه

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

حتى تفهم 1 و 2 بصورة أفضل سأعطيك مثال مصور:

في الحالة رقم 1 نفرض أن الهارديسك هو هكذا:

file1data0000000000000000

حيث أن الأصفار الخضراء ترمز لمساحة فارغة، و الحروف الزرقاء لمساحة تم إستغلالها..

نفرض أنك قمت بتعديل الملف وصغرت حجمه، سيكون التالي:

file1data0000000000000000

ثم نفرض أنك قمت بتعديل الملف وكبرت حجمه، سيحدث التالي:

file1data0000000000000000

حتى الآن كل شيء جميل وعملية القراءة ستكون سريعة لأن أجزاء الملف ملتصقة ببعضها البعض، فعندما تتم عملية قراءة للملف فإن الرأس القارئ سيمر على أجزاء الملف بتسلسل وسهولة..

لكن ماذا لو كان نظام الملفات قد قام بتخزين ملف آخر بعده؟، على سبيل المثال الحالة هذه:

file1datafille2data000000000

هنا المشكلة وأس الخلاف بين أنظمة الملفات المختلفة.. في نظام ملفات FAT و NTFS سيحدث التالي في حالة قمت بتعديل الملف1 واصبح حجمه اكبر من السابق:-

file1datafille2data000000000

لاحظ أن محتويات الملف الأول متفرقة فجزئ منها في البداية والجزء الآخر يقع بعد ملف آخر.. هنا مشكلة وتسبب بطئ في عملية القرائة، لماذا؟ لأن الرأس القارئ للهارديسك يجب عليه القفز فوق الملف2 وهذا القفز يؤدي إلى بطئ.. لانك وكما تعلم حركة الرأس القارئ يأخذ وقت عملية القفز هذه هي عبارة عن حركة من نقطة إلى أخرى وتتطلب وقتا

ما هو الحل لإستعادة السرعة مع FAT و NTFS؟

الحل من خلال Defragment تجده في system tools.. هذه الأداة ستقوم بإعادة ترتيب الملفات ويجعلها كالتالي:

file1data0000fille2data00000

لكن عملية الـDefragmentation تاخذ وقت و احيانا تأخذ يوم كامل! ولا يوجد من يحب هذه العملية.. واللوم هو نظام الملفات الغبي :)

هل توجد أنظمة ملفات أخرى أكثر ذكائا وتجنب عملية تشتيت الملفات هنا وهناك؟

نعم.. أنظمة ملفات الينوكس تقوم بعملية مختلفة تماما، ونادرا ماستحتاج إلى Defrgamentation والسبب في هذا أن الملفات غير ملتصقة ببعضها البعض من البداية :) .. لو تلاحظ مشكلة الـFAT أنه يخزن الملفات تلو الملفات ويجعلها ملتصقة وفي حال زاد حجم تلك الملفات فنظام الملفات سيضطر إلى تشتيت الملف هنا وهناك مما يؤدي إلى بطئ عملية القراءة.. بينما معظم انظمة ملفات الينوكس لا تخزن الملفات بجانب بعضها إنما تشتتها قدر الإمكان! والنتيجة رائعة، وهي عندما تكبر تلك الملفات فهي بعيدة من بعضها البعض وممكن توسيعها بسهولة دون الحاجة إلى تشتيت الأجزاء، على سبيل المثال، معظم انظمة ملفات الينوكس تقوم بتخزين الملفات في أماكن متفرقة كما في المثال التالي:-

file1data000000fille2data00000

لاحظ، الملفات متباعدة عن بعضها البعض، و في حال اردت تكبير حجم الملف1 ستكون القضية بهذه الطريقة:-

file1data000000fille2data00000

لاحظ، تمت عملية زيادة حجم الملف1 دون الحاجة إلى تقسيم الملف إلى جزئين كما هو الحال مع FAT و NTFS.. والناتج هو ملف واحد متلسلسل وعملية القراءة سريعة بالإضافة لا داعي للـDefragmentation

مع نظام ملفات الينوكس نادرا ماتحتاج إلى Defrgametation لأنه لا يوجد fragmentation.. ممكن تحدث على Fragmentation فقط في حالة كان القرص الصلب شبه ممتلئ (80% تقريبا ممتلئ) حينها سيضطر إلى تقسيم الملفات الكبيرة حيث أنه لم تبق مساحات فارغة متتابعة.. بينما نظام FAT و NTFS يقوم بتقسيم الملفات حتى لو كان الهارديسك فاضي! والسبب أنه يخزن الملفات ويضعها مجاورة لبعضها البعض وهذه عملية غبية للأسف..

ملاحظة إلى احباء الوندوز: هذا الشرح ليس دعاية للينوكس والرجاء عدم الحساسية كما حدث في مواضيع أخرى وتم إتهامي أنني اروج مخدرات لينوكس :)

إذا نفعتك أحد مشاركاتي فأدع بظهر الغيب لوالداي بالصحة والسلامة والسعادة وطول العمر وأن يكون هذا زيادة لهما في كل خير.

post-21836-1257612765.gif

before asking: smart questions how-to

هذا الموضوع مغلق.

مواضيع مشابهة