Admin Admin
عدد الرسائل : 434 العمر : 50 السٌّمعَة : 1 نقاط : 61789 تاريخ التسجيل : 14/02/2008
بطاقة الشخصية الالعاب: (3/3)
| موضوع: عنونة وترجمة القطاعات السبت فبراير 16, 2008 5:28 am | |
| عنونة القطاعات لذلك فإن القرص الصلب يتعامل مع البيانات ( بالكتابة للقرص أو القراءة منه ) على شكل قطاعات كل منها 512 بايت لأن القطاع هي أصغر وحدة قياسية في القرص الصلب ، فلا بد إذاً من وجود طريقة للقرص الصلب لتمييز كل قطاع من القطاعات التي يحتويها عن غيرها ليستطيع نظام التشغيل طلب البيانات التي يريدها ، وبالفعل يوجد لكل قطاع عنوان يتكون من ثلاثة أشياء :
رقم السلندر Cylinder
رقم الرأس Head
رقم القطاع Sector في المسار
فإذا أراد نظام التشغيل (مثل وندوز ) طلب بيانات معينة فإنه يطلبها بتحديد عناوين القطاعات التي يحتويها بطريقة رقم السلندر والرأس والقطاع التي يحتوي البيانات المطلوبة ، مثلاً ( 520 - 5 - 6 ) تعني السلندر رقم 520 والرأس رقم 5 والقطاع السادس ، وبهذه الطريقة يتمكن نظام التشغيل من تحديد أي موضع للبيانات يريدها ، وتسمى هذه الطريقة " عنونة CHS " وبالانجليزية (CHS addressing) . عندما قام مهندسو شركة IBM بتصميم هذا النظام كان لابد - لأمور خاصة بالتقنية - أن يحددوا طول أقصى لكل واحد من الأعداد فمثلاً جعلوا الحد الأقصى لعدد السلندرات هو 1024 سلندر والرؤوس 255 والقطاعات 63 قطاعاً ، لذلك لا يمكن استخدام أي قرص يحوي أكثر من 1024 سلندر أو أكثر من 255 رأس أو أكثر من 63 قطاع في كل مسار ، لذلك فإن هناك حد أعلى لحجم القرص الصلب وهو يساوي :عدد السلندرات الأفصى( 1024 سلندر) × عدد الرؤوس الأقصى(255 رأس ) × عدد القطاعات الأقصى (63 قطاع لكل مسار) ×عدد البايتات في كل كلستر (512 بايت ) = 1024 × 255 × 63 × 512 = 8422686720 بايت = 8225280 كيلوبايت = 8032.5 ميجابايت فتبرز هنا المشكلة : إذا كان للقرص الصلب أكثر من 1024 سلندر فكيف سيتمكن نظام التشغيل من الوصول إلى السلندرات الأعلى من 1024؟ ليس هذا فقط ، إنما كان اختيار الحد الأقصى لعدد الرؤوس كبيراً حيث أن أحدث الأقراص الصلبة لا تستخدم في العادة أكثر من 16 رأس ، فذلك يجعل الحد الأقصى لسعة قرص بـ 16 رأس = 1024 × 16 × 63 × 512528482304 بايت =516096 كيلوبايت = 504 ميجابايت ، وهذه السعة قليلة بكل ما في الكلمة من معنى فما هو الحل ؟دعني هنا أورد مثالاً لتوضيح كيف تعمل عنونة CHS في قرص صلب ، لنفرض أن برنامجاً ما يود قراءة الملف c:\autoexec.bat من القرص الصلب فالخطوات التي ستحدث بين الأجزاء المختلفة هي ( مع الكثير من التبسيط ) :
البرنامج يقول لنظام التشغيل ( وندوز مثلاً ) : أود الحصول على الملف c:\autoexec.bat
نظام التشغيل يقول للبيوس : أود الحصول على الملف ذو العنوان C 687 H 2 S 44 ( أي عنوان CHS )
البيوس يقول لبينية IDE : أود الحصول على C 687 H2 S 44
تقوم بينية IDE ببساطة باستخلاص البيانات من القطاع المذكور وتسليمها لنظام التشغيل الذي يسلمها للبرنامج .
<hr width="50%"> ترجمة القطاعات sector translation ذكرت أن الأقراص الصلبة حتى الحديثة منها لا تحتوي على أكثر ن 16 رأس ، لذلك فإن الحد الأقصى البالغ 255 رأس لا يستغل بكامله مما يخفض حجم القرص المسموح به ، و للتغلب على هكذا مشكلة يمكننا بطريقة تحايلية استعمال العدد الأقصى للرؤوس وذلك بخداع الحاسب وإيهامه أن هناك عدد من الرؤوس أكبر من الموجود فعلياً فمثلاً إذا كان لدينا قرص صلب ذو 2048 سلندر و 16 رأس و 63 قطاع لكل مسار فإننا نخبر الحاسب أن هذا القرص له 1024 سلندر و 32 رأس و 63 قطاع وبالتالي يتعامل معه على أنه ذو سعة أكبر ، وإذا أراد الحاسب مثلاً قراءة البيانات من قطاع غير موجود ( مثلاً قطاع على الرأس 32 ) فإنه يتم ترجمة هذا الموقع إلى الموقع الصحيح على القرص وبالتالي يتم عمل طبقة ترجمة بين الحاسب وبين القرص الصلب دعنا نورد مثال على ذلك بنفس الطريقة السابقة :
البرنامج يقول لنظام التشغيل ( وندوز مثلاً ) : أود الحصول على الملف c:\windows\media\mysound.wav
نظام التشغيل يقول للبيوس : أود الحصول على الملف ذو العنوان C 896 H30 S 54
البيوس لبينية IDE : أود الحصول على البيانات في C 896 H30 S 54
بينية IDE : بما أن قرصي الصلب هذا يستخدم ترجمة القطاعات فإنني سأحول هذا العنوان إلى العنوان الفعلي على القرص ، والعنوان الفعلي هو C 1563 H3 S40 ، يستخلص البيانات ويسلمها للبيوس لتسلم للبرنامج .
وفي هذه الحالة تسمى ( 2048 سلندر و 16 رأس 63 قطاع ) " التركيبة الفيزيائية" للقرص لأن هذا هو التركيب الحقيقي له بينما تسمى التركيبة ( 1024 سلندر و 32 رأس و 63 قطاع ) " التركيبة المنطقية" لأن الحاسب يتعامل مع القرص على هذا الأساس ، وتسمى عملية التحويل من التركيبة المنطقية إلى التركيبة الفيزيائية " ترجمة القطاعات " . | |
|