طب انتوا عارفين يا شباب ليه بنحتاج نعمل Eject للفلاشة أصلًا وليه مبنحتاجش نعمل كدة للحاجات التانية زي الكيبورد والماوس مثلًا؟ تعالوا أحكيلكم في حلقة النهاردة من answering questions that nobody asked. 🧵
الكمبيوتر لما بيحب ينقل ملف للفلاشة بيقسم الملف دا حتت صغيرة ويديهم للفلاشة حتّة حتّة، والمايكروبروسيسور الصغير اللي جوة الفلاشة بيحط كل حتة منهم في Page.
ندخل بقى لموضوعنا، ليه المفروض نعمل Eject للفلاشة؟ الموضوع دا ليه سببين أساسيين.
ندخل بقى لموضوعنا، ليه المفروض نعمل Eject للفلاشة؟ الموضوع دا ليه سببين أساسيين.
السبب التاني محتاج نحكي شوية بقى، ويستدعي إننا نرجع لموضوع ال pages دا.
ال pages ليها عمر افتراضي، أو عشان أكون دقيق، عدد افتراضي من عمليات الكتابة فيها، في المتوسط بيبقى من ١٠ آلاف ل ١٠٠ ألف مرة.
يعني كل page ينفع تتملي وتتمسح ١٠٠ ألف مرة كحد أقصى، وبعد كدة بتبوظ.
ال pages ليها عمر افتراضي، أو عشان أكون دقيق، عدد افتراضي من عمليات الكتابة فيها، في المتوسط بيبقى من ١٠ آلاف ل ١٠٠ ألف مرة.
يعني كل page ينفع تتملي وتتمسح ١٠٠ ألف مرة كحد أقصى، وبعد كدة بتبوظ.
تلاحظ الموضوع دا كويس لو معاك فلاشة قديمة. هتلاقي مع الوقت إن مساحة الفلاشة بتصغر. ليه؟ لأن فيه pages جوّة اتكتب فيها بيانات واتشال منها بيانات أكتر من ١٠٠ ألف مرة وباظت خلاص. فمبقتش صالحة للأستخدام، عشان كدة بمرور الوقت ال flash memory مساحتها بتقل.
تخيل بقى معايا إنك موصل الفلاشة بالكمبيوتر وفاتح من على الفلاشة ملف وورد، وعمال تكتب فيه وكل سطرين تدوس ctrl+s عشان تعبك ميضيعش..
كل مرة تعمل فيها save فانت بتعمل عملية كتابة جديدة في الفلاشة، بس متنساش إن عدد عمليات الكتابة في الفلاشة محدود، ومع العدد دا من عمليات الكتابة المستمرة عمر الفلاشة الافتراضي هيقل جدًا.
فحلوا المشكلة دي ازاي؟
فحلوا المشكلة دي ازاي؟
الويندوز مثلًا بيحل المشكلة دي عن طريق إنه بيخزن الملف اللي انت بتشتغل عليه في مكان اسمه الcache، وكل مرة إنت هتعمل save هو بيخزن التعديلات بتاعتك في الكاش دا، وعلى فترات متباعدة ينقل التعديلات دي كلها مرة واحدة للفلاشة. يبقى كدة وفرنا عمليات الكتابة وحافظنا على التعديلات
سبب تالت بس أقل أهمية وهو إن لو الفلاشة كانت بتكتب في واحدة من ال pages وإنت سحبت الفلاشة فجأة ولمّست منك وانت بتسحب فدا ممكن يطيّر ال page كلها. ولو إنه سيناريو مستبعد الحدوث يعني لكنها بتحصل.
هل دا بقى معناه إن ال eject مهم وإننا لازم نعمله؟
الحقيقة إنه لا. هو كان مهم زمان لكن دلوقتي أهميته أقل بكتير.، ليه بقى؟
لو إنت بتعمل كوبي لفايل وسحبت الفلاشة اثناء عمل الكوبي فدي مشكلتك بصراحة يسطا شيل شيلتك. أما موضوع الcache دا فالفلاشات الجديدة كلها بتنزل بinternal cache
الحقيقة إنه لا. هو كان مهم زمان لكن دلوقتي أهميته أقل بكتير.، ليه بقى؟
لو إنت بتعمل كوبي لفايل وسحبت الفلاشة اثناء عمل الكوبي فدي مشكلتك بصراحة يسطا شيل شيلتك. أما موضوع الcache دا فالفلاشات الجديدة كلها بتنزل بinternal cache
يعني الفلاشة بيبقى جواها الفلاش ميموري المكونة من صفحات + كاش ميموري تانية صغيرة مبتحتفظش بأي بيانات غير لو متوصلة بالكهربا عشان كدة مينفعش نخزن عليها حاجة، لكن وظيفتها انها بتحتفظ بالتعديلات والأوامر مؤقتًا (بتحوشهم) عشان تقلل عمليات الكتابة المطلوبة على الفلاش ميموري.
ييجي واحد يقولي طب ماهو لو الكاش ميموري الي جوة الفلاشة عليها تعديلات لسة متنقلتش للفلاش ميموري، وأنا شيلت الفلاشة من الكمبيوتر (يعني قطعت عنها الكهربا)، مش دا معناه إن التعديلات اللي جوة الكاش ميموري ضاعت ومش هتروح الفلاش ميموري؟ أقوله كلامك صح ..
.. عشان كدة الفلاشات الجديدة بيبقى فيها مكثّف بيتشحن أول ما توصلها، ولما تفصل الفلاشة بيفضل يمدّ الكاش ميموري بالكهربا الكافية (بعد ما الفلاشة تتفصل) عشان تخلص نقل اللي فيها للفلاش ميموري.
إلى جانب التطور في صناعة الفلاش ميموري اللي وصّل العدد الأقصى لعمليات الكتابة فيها لأكتر من مليون مرّة، فبقى مستبعد جدًا إنك تخلصهم مهما عملت. (لاحظ إن الرقم دا لكل page على حدى، مش للفلاشة كلها)
وبالتالي مبقاش ضروري حاليًا إنك تعمل Safe removal، لأن معظم الفلاشات الحديثة بقت أقدر على تحمّل المشكلات بتاعت زمان دي. ومايكروسوفت كمان أعلنت نفس الكلام مؤخرًا.
theverge.com
theverge.com
جاري تحميل الاقتراحات...