النتائج 1 إلى 12 من 12

الموضوع: درس (1) : كيف يتم تنفيذ تعليمة السكول وما هي دورة حياتها

  1. #1

    درس (1) : كيف يتم تنفيذ تعليمة السكول وما هي دورة حياتها



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

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

    أولا : معلومات عامة عن الداتابيز

    يوجد العديد من أنظمة قواعد البيانات DBMS تتنافس فيما بينها وتختلف من حيث القوة والسرعة في التنفيذ وقابليتها للتوسع والتقسيم إلخ
    هناك بنود تم وضعها عالمياً لم يجب أن تكون عليه أنظمة قواعد البيانات بشكل نظري أو المطلوب أن تكون عليه

    هذه البنود لا يوجد نظام DBMS في العالم قد وفرها كاملة بنسبة 100%
    إلا أني وحسب ما سمعت من دكتور كانت رسالة الدكتراة له في الداتا بيز
    قال لي أن أكثر من حقق تلك البنود كانت شركة أوراكل

    عموما هذا ليس مجال حديثنا فالبنود الغير متوفرة في انظمة الداتا بيز الأخري هي أمور لا نستخدمها غالباً في مشاريعنا البسيطة أو المتوسطة أو ربما حتي بعض المشاريع الكبيرة منها


    ============================================
    ثانياً : معلومات عامة عن الحاسوب

    يتكون الحاسوب من لوحة أم تحوي جسرين
    جسر شمالي يربط بين الذاكرة والمعالج

    وجسر جنوبي يربط بين المعالج ومكونات الحاسب من كارت الشاشة وكروت ال pc وغيرها

    يتعامل المعالج مع عدة أنظمة من المخزنات
    أكثرهم بطئاً هو الهارد ديسك
    وأكثر سرعة هي ذاكرة الكاش المخبئة الموجودة داخل المعالج

    فيكون حسب السرعة من الأبطأ للأسرع هكذا

    الهارديسك
    الذاكرة ram
    الذاكرة المخبئة

    حتي الذاكرة المخبئة يم في كلاً من شركتي إنتل و amd تقسيمها لمرحتلين أو 3
    L1.L2 في حالي amd وإنتل ما قبل ال core i7
    تكون L1 أكثر سرعة بكثير من L2 ولكنها صغيرة جدا وتكون أعلي في تكلفة التصنيع
    ثم L2 وهي الكاش ميمور اللي يعلن عنه واللي يحفظه الجميع لكل معالج ( 4 ميجا أو 8 إلخ )

    هذه الذاكرة المخبئة تكون مشتركة لكل أنوية المعالج الداخلية في حالة إنتل ولكنها تكون مقسمة لكل نواة في حالة AMD

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

    ولو تركته لفترة طويلة يقوم نظام التشغيل آليا بنقل تلك الملفات التنفيذية للذاكرة الإفتراضية علي الهارد ديسك والتي تسمي swap في اللينوكس وتكون موجود في لوحة whm في صفحة عرض ال load وغيره وتسمي في الويندوز page file موجود داخل ال c ويتم ذلك لتحرير الذاكرة لعمليات أخري تكثر أنت التعامل معها

    حينما تذهب لعرض الفوتوشوب المفتوح لديك بعد تركه لفترة طويلة تجده أخذ زمن بطئ قبل أن يعود لسرعته وذلك لإعادة نظام التشغيل الملفات للذاكرة لبدء التعامل معه

    طيب ما فائدة الكاش ميموري هنا ؟
    حينما يكون هناك بيان سيتعامل معه المعالج بشكل اكبر بكثير مع عمليات الفلوتنج بوينت وغيرها ( تجد ذلك مثلا في محررات الفيديو وقت تحرير ملف أو في ضغط ملف او فك ضغطه إلخ )
    يتم نقل البيانات للذاكرة الموجودة داخل المعالج وهي الأسرع من الذاكرة الخارجية
    ويتم التعامل معها بعد تقسيمها لعدة مراحل
    كل مرحلة يتم نقل أهم ما فيها من بيانات للذاكرة الأقرب L1 ثم إعادة الناتج وهكذا

    معلومة أخيرة
    انت حينما تفتح حاسوبك يتم تحميل البايوس الموجود علي اللوحة الأم والذي بدوره ينظر في البارتيشن ال active علي الهاردديسك ليري هل هناك نظام تشغيل أم لا ثم يحمل منه الكيرنل الخاص بالنظام للذاكرة وهو وقت إقلاع الويندوز أو اللينوكس بعدها يفتح النظام ويكون داخل الذاكرة هذا الكيرنل
    ============================================
    ثالثاً : أنظمة الداتا بيز DBMS

    ما الذي تقوم به ؟
    يتم تحميل ال DBMS المشغل للداتا بيز مع إقلاع النظام ليكون مع الكيرنل في الذاكرة

    حينما تكتب أن تعليمة سكول للغة البرمجة والتي هي في حالتنا php والتي تعمل علي الأباتشي

    هناك مكتبة لل php خاص بالتعامل مع الماي سكول
    تقوم ال php بطرق باب DBMS للمايسكول وتقول له أنا جالب لك تعليمة سكول لتطبقها لي

    يأخذ ال DBMS التعليمة ثم يقوم بترجمتها interpreter يفهم منها أن المطلوب هو بيانات من الجدول كذا وكذا
    يجهز المطلوب علي الهارديسك ثم يقوم بإرسال لنتائج للذاكرة ويخزنها في أي عدد من ال addresses داخل الذاكرة ثم يخزن في address منفصلة البيانات التالي

    - تعليمة السكول التي تم تنفيذها
    - أول مخزن للنتائج في الذاكرة
    - أخر مخزن للنتائج في الذاكرة
    مع معلومات أخري حول النتائج

    ثم يعود لل php ويخبط عليها ويخبرها أنه نفذ المطلوب ويعطيها رقم فما هو هذا الرقم ؟
    هو رقم الaddress المخزن فيه كل هذه البيانات :nice:

    الأن تنتظر منك ال php أية عمليات تريدها
    فلو قلت لها أريد عدد الأسطر ستذهب للذاكرة وتعدهم لك
    ولو طلب الحيز الذي شغلته من الذاكرة ستذهب وتفعل
    ولو طلبت جلب النتائج عبر لووب بأي من تلك الدوال الخاصة بذلك fetch تبدأ في عمل fetch للبيانات واحدة بواحدة

    لو عملت free result يتم تفريغ كل محتوي هذه التعليمة من الداتا بيز

    رابعاً : تطبيق عملي

    لدينا جدول في قواعد البيانات أسمه options به 500 سطر من الخيارات الخاصة ببرمجيتنا

    نفذنا التعليمة التالية

    كود PHP:
    $result mysql_query("SELECT * FROM `options`"); 
    ماذا سيحدث ؟
    سترسل التعليمة لنظام قواعد البيانات ويفهم منها أنه مطلوب كل حقول الجدول options فيتم نقلها بالكامل للذاكرة ثم في عنوان في الذاكرة تخزن بيانات التعليمة وأول عنوان للبيانات وأخر عنوان

    هذا العنوان الموجود في الذاكرة والحامل لمعلومات الكويري ونتائجها هو ما يعود ويخزن في المتغير $result

    ينتهي التنفيذ ويصبح لدينا في ها المتغير مكان البيانات في الذاكرة وأنتهي إتصالنا تماماً بالهارد ديسك

    الأن نقوم بعمل التالي

    كود PHP:
    while($myrow mysql_fetch_array($result))
    {
        
    $new_array $myrow;

    ماذا سيحدث ؟
    أنا أعطيت لل mysql_fetch_array وهو أمر fetch أي جلب من الذاكرة
    أعطيتها رقم هو عنوان في الذاكرة يحوي بيانات تعليمة سكول أو بالأصح حقول وطلبت منها جلبها من الذاكرة علي هيئة مصفوفة مع تفريغها واحدة بواحدة

    يبدأ التنفيذ من الذاكرة وتجلب العناوين واحدة بواحدة وكلما يتم جلب عنوان يتم وضع العنوان القادم في العنوان الأول اللي فيه البيانات الكلية فيصبح مخزن هناك أنه العنوان اللي عليه الدور

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

    الأن لو قمت بعمل

    كود PHP:
    mysql_freeresult($result); 
    يتم تفريغ الذاكرة من نتائج التعليمة
    ولكن يكون لدينا في مكان أخر وعبر ال php متغير بالإسم $new_array هو عبارة عن مصفوفة ومحتواه هو ما كنا نريده

    مثال أخر
    طيب لو لدينا جدولين

    الأول
    users
    والثاني
    usergroup

    نفذنا تلك التعليمة

    كود PHP:
    $result mysql_query("
    SELECT
        user.*, usergroup.*
        
    FROM `user` AS user
    LEFT JOIN `usergroup` AS usergroup
    ON ( user.`groupid` = usergroup.`groupid` )
    WHERE user.`userid` = 1"
    ); 
    يتم علي الهاردديسك عمل جدول إفتراضي
    يتم تحميل بيانات العضو رقم 1 من جدول user
    ثم يتم ربط بيانات مجموعة الأعضاء رقم X بها فيتكون لدينا حقل جديد فيه بيانات العضو ومجموعته

    يتم نقل هذا الحقل فقط للذاكرة بنفس الطريقة السابقة
    ويتكرر كل ما تم في الطريقة السابقة


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

    طيب ما هي فكرة الكاش في البرمجة ؟
    وكيف تحسن مستوي برمجيتك لتصبح أسرع وأقل إستهلاك لموارد السيرفر ؟

    هذا في درسنا القادم بإذن الله مع أحدث طرق التعامل مع الكاش





    __________________
    السيف أصدق أنباء من الكتب


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Oct 2008
    المشاركات
    283


    أحسنت أخي المجروح

    في إتنظار الدرس القادم





    __________________
    اللهم وفقني لما تحبه وترضاه...

  3. #3


    واصل اخي المجروح
    موضوع مفيد جدا
    يستحق التثبيت لمدة شهر :d





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  4. #4
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    جزاك الله الف خيرا اخي الكريم

    درس جدا مفيد جدا وان ان شاء الله متابع معاك الدروس

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





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    508


    موضوع مميز و مفيد جدا

    لكل مبرمج php

    بارك الله فيك اخي المجروح





    __________________
    قوالب ووردبريس مدفوعة

    تابع احدث الاعمال على الفيسبوك :https://www.facebook.com/almtwer


  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2005
    المشاركات
    400


    درس ممتع شكرا لك






  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    450


    ممتاز ... شكرا






  8. #8
    عضو فعال
    تاريخ التسجيل
    Aug 2004
    المشاركات
    1,974


    يعطيك العافيه حيبي
    لي حوالي نص ابحث عن موضوعك هذا ومادريت انه مثبت

    سؤالي:
    هل هناك برنامج/طريقة لاجل "تكييش" التعليمة؟
    بحثت عن هالشي ولقيت فيه تعديل على my.cnf يسمح لك بعمل هذا وقمت بتفعيله ولكن لازلت اعتقد ان هناك طرق افضل من هذا.
    وايضا وجدت برنامج memcached ولم اقم بتجربته لاني اعتقد انه يحتاج الى تعديل على الاكواد وهذا يحتاج وقت كثير.





    __________________
    انا أريد وأنت تريد والله يفعل مايريد!

  9. #9
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    947


    أخي المجروح .. لا ندري كيف نشكرك على هذه المعلومات الرائعة والمفيدة
    ففهم المبرمج لهذه المعلومات أساس لتحسين برامجه وعمله
    جزاك الله خيرا





    __________________
    قل اللهم مالك المُلك تؤتي الملك من تشاء وتنزع الملك ممن تشاء وتعز من تشاء وتذل من تشاء بيدك الخير انك على كل شىء قدير

  10. #10


    يعطيك العافيه حيبي
    لي حوالي نص ابحث عن موضوعك هذا ومادريت انه مثبت

    سؤالي:
    هل هناك برنامج/طريقة لاجل "تكييش" التعليمة؟
    بحثت عن هالشي ولقيت فيه تعديل على my.cnf يسمح لك بعمل هذا وقمت بتفعيله ولكن لازلت اعتقد ان هناك طرق افضل من هذا.
    وايضا وجدت برنامج memcached ولم اقم بتجربته لاني اعتقد انه يحتاج الى تعديل على الاكواد وهذا يحتاج وقت كثير.
    ال xcache هو نفسه الميم وهو نفسه أي مسرع ويقوم بنفس الأداء
    مع بعض الزيادات في الميم ولكنها تحتاج لتدخل منك

    سأشرح في درس قريب كيفية إستخدام الكاش كما يستخدمه أقوي المحترفين بإذن الله وتخزين كل ما تحب وإستدعاءه وتوفير ملايين تعليمات السكول شهرياً وتخفف الحمل

    وما هي فكرة عمل المشاريع الكبيرة مثل رتب وغيرها وكيف تقوم بها برمجيات

    ولكن أحتاج للوقت فقط





    __________________
    السيف أصدق أنباء من الكتب

  11. #11
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    718


    بارك الله فيك ...





    __________________
    أخي [ محمد الفارس ] في كل رد اقول .. شكراً لك ...
    البانر.نت .. نصنع من الافكار دليل

  12. #12
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    44


    جزاك الله خير على المعلومات القيمة










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض