المحتوى عن 'تخبئة'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML
    • HTML5
  • CSS
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 2 نتائج

  1. يُستعمل Varnish Cache بكثرة لتخبئة محتوى مواقع الويب لتسريع أداء المواقع وتخفيض الحمولة على الخادوم الأصل (origin-server). لطالما شجعنا على استعمال التّخبئة لتسريع أداء تطبيقات الويب وتسهيل قابلية التوسع (Scalability) وضمان الاستقراريّة إضافة إلى الفوائد الأخرى التي تأتي مع هذه الإجراءات من تحسين لتجربة المُستخدم إلى التوفير في الموارد. لكن رغم ذلك فلا نزال بحاجة إلى التأكيد على أهميّة التّخبئة. وفي بعض الأحيان، قد يعني الأمر شرح كيفيّة استعمال Varnish Cache وما يُميّزه عن بقيّة التقنيات الأخرى. الأمور الغريبة التي تُميّز Varnish Cache Varnish Cache عبارة عن خادوم HTTP بنظام HTTP خلفي له قدرة على تقديم الملفّات. يعتمد على هندسة سلسليّة (threaded architecture)، دون حلقة أحداث (event loop). ولأن شيفرة الكتابة قادرة على استعمال استدعاءات النظام الحاصرة (blocking system calls)، فذلك يجعله أسهل استعمالا من Apache أو NGINX، التي يتطلّب استعمالها التعامل مع حلقة أحداث. يقوم Varnish Cache بالتسجيل (logging) على الذاكرة عوضا عن القرص الصلب، تم تصميمه بهذه الطّريقة لأن تسجيل 10000 من عمليات HTTP كل ثانية على القرص الصلب أمر يتطلب الكثير من الموارد. يقوم Varnish بتسجيل جميع التّفاصيل (حوالي 200 سطر لكل طلب) على الذاكرة مُباشرة. إن لم يتم طلب التفاصيل المُسجّلة فستتم الكتابة فوقها (overwrite). يعتبر Varnish التطبيق الوحيد الذي يتخذ هذا المسلك. المرونة: استعمال VCL الميّزة الكبرى لـ Varnish Cashe هي لغة الضّبط الخاصّة به. تمّ إنشاء لغةVCL (Varnish Configuration Language) منذ أكثر من 11 عاما لتدعم النسخة الأولى من Varnish Cache. على عكس Apache أو بقيّة البرمجيّات، فـVarnish Cache لا يعتمد على إعداد تقليدي.بل يعتمد عوضا عن ذلك على مجموعة من السّياسات التي تُكتب بهذه اللغة. تتم ترجمة هذه السيّاسات إلى شيفرة ثنائية، تُحمّل هذه الشيفرة ويتمّ تشغيلها بعد ذلك. يقول مهندس Varnish Cache Poul-Henning Kamp بأنVCL أُنشأت لتكون مجموعة أدوات يمكن استعمالها حسب الحاجة، وليس قطعة موحدة يُمكن إضافتها إلى بيئة العمل. في يومنا الحالي، هناك أكثر من 100 وحدة (modules) لـ VCL يمكن استعمالها ببساطة. في الحقيقة، ففي ملتقيات Varnish Summits هناك دائما ورشة عمل لتعليم الأشخاص كيفيّة كتابة وحدات خاصّة. تعتبر لغة VCL من أكبر الأسباب التي تجعل النّاس تستعمل وتتعلّق بـVarnish Cache. إذ تفتح المرونة التي توفرها اللغة الأبواب للقيام بأي شيء قد يرغب أحدهم بفعله، ما يمحو القيود التي عادة ما تأتي مع البرمجيّات التقليديّة. إذا، ما هي أهم الأدوات التي توفّرها VCL وكيف يُمكننا الاستفادة منها؟ التنطيف Purging لا يدعم Varnish تنظيف المحتوى عند إعداده لأول مرّة، إذ لا يُمكنك تنزيله وتنصيبه ثمّ استعمال نظام تنظيف دون أية خطوات إضافيّة. عوضا عن تمكين إعدادات افتراضيّة، يتوجب على مستخدمي Varnish Cache العمل على تفعيل الميزات المرغوبة كل على حدة، لكن إعداد نظام تنظيف أمر بسيط، ويمكنك الحصول على النتيجة التي ترغبها. sub vcl_recv { if (req.method == "PURGE") { return (purge); } } إن لم ترغب بتمكين الأشخاص على الأنترنت من تنظيف المحتوى على نظام تخبئتك، فسيتوجب عليك ضبط حدّ الوصول ACL كما يلي: acl purge { "localhost"; "192.168.55.0"/24; } sub vcl_recv { if (req.method == "PURGE") { if (!client.ip ~ purge) { return(synth(405,"Not allowed.")); } return (purge); } } إضافة ميزة لـVarnish Cache: خنق الرّبط السّاخن (Hot linking) يسمح إطار العمل الخاص بـVarnish للمستخدمين بإضافة أية ميزة يحتاجون إليها. أول ميّزة أضيفت هي استعمال VCL للحد من الرّبط السّاخن. الرّبط السّاخن هو عمليّة سرقة موارد أحدهم على الويب وكتابة مقال يستخدم صورا مرفوعة على خادوم الضّحية ليدفع تكاليف استخدام الموارد. يسمح Varnish للخوادم بإيقاف هذه العملية عند استعمال الرّبط السّاخن للموارد الخاصة بالخادم دون إذن. على سبيل المثال، يمكن لـVarnish وضع سقف لعدد مرّات حدوث هذا الأمر كل ثانيّة عبر استخدام وحدة من وحدات Varnish (VMOD) باسم vsthrottle لإضافة الخنق (throttling). يمكن القيام بالأمر عبر استيراد وتحميل الوحدة. شيفرة VCL أسفله تُوضّح كيفيّة الحدّ من الرّبط السّاخن. في هذا المثال، نقوم بتطبيق ثلاثة قواعد. القاعدة الأولى تتحقّق من أن عنوان URL المطلوب يبدأ بـ/assets/. القاعدتان الثانيّة والثّالثة تحميان مجلّد الملفات السّاكنة من الرّبط السّاخن. يتمّ هذا عبر التحقق ممّا إذا كان المُحيل referrer طرفا غير مُتوقّع، وما إن طلبت أسماء نطاق أخرى ملفّاتك لأكثر من 10 مرّات خلال 60 ثانيّة. ما سبق عبارة عن دالّة الخنق، يُستعمل رابط URL كمفتاح للخنق.الحدّ المسموح به هو 10 مرّات كلّ 60 ثانيّة. يُمكن تقديم الملفات السّاكنة غير المُشار إليها، وعندما يحصل ذلك، فسيتم إرسال خطأ 403 مع منع الربط السّاخن. يُمكن كذلك توسيع الخنق لاستعمال memcache، وذلك ليحصل المستخدم على المُحاسبة الرّئيسيّة (central accounting) في العنقود (cluster). import vsthrottle; (..) if (req.url ~ "^/assets/" && (req.http.referer !~ "^http://www.example.com/") && vsthrottle.is_denied(req.url, 10, 60s) { return(error(403,"Hotlinking prohibited"); } التّعامل مع ملفات تعريف الارتباط (cookies) لن يقوم Varnish بتخبئة المحتوى الذي يُطلَبُ باستعمال ملفّات تعريف الارتباط. ولن يستجيب إلى طلب محتوى مخبّأ إن كان الطّلب متعلّقا بملف تعريف ارتباط. عوضا عن هذا، يُمكن استعمال وحدة VMOD لحذف ملفّ تعريف الارتباط. المحترفون يستعملون تعبيرا نمطيّا (regular expression) لترشيح ملفات تعريف الارتباط. ولأنّنا لسنا محترفين، فـVarnish يوفّر وحدة باسم cookie تبدو كما يلي: import cookie; sub vcl_recv { cookie.parse ("cookie1: value1; cookie2: value2"); cookie.filter_except("cookie1"); // get_string() will now yield // "cookie1: cookie2: value2;"; } لا يقوم Varnish بإنشاء ترويسة (header) ملف تعريف ارتباط. وإن رأى بأن النظام الخلفي قد أرسل شيفرة إنشاء ملفّ تعريف ارتباط، فلن يقوم بتخبئته. الحل أن تحذف ترويسة Set-Cookie أو إصلاح الخادوم الخلفي. ترويسات Set-Cookie تقوم بتعطيل ملفّات تعريف الارتباط. الحلّ: احذف ترويسة Set-Cookie أو أصلح النّظام الخلفيّ. نمط الإمهال Grace Mode يُمكن نمط الإمهال Varnish من تقديم محتوى قديم إن لم يكن المحتوى الجديد جاهزا أو مُتوفّرا. يساهم هذا في تحسين الأداء عبر إعادة تحميل المحتوى من النظام الخلفيّ بشكل غير متزامن (asynchronous). في الوقت الذي تم فيه تقديم Varnish 1.0 كحل لنظام تخبئة لموقع الجريدة النرويجيّة Verdens Gang، كانت هناك مشاكل كبرى بسبب التكتّلات السلسليّة (threading pileups). كانت الصفحة الرّئيسيّة للموقع تُقدّم 3000 مرّة كلّ ثانيّة، لكن نظام إدارة المُحتوى (CMS) كان بطيئا، إذ كان يأخذ 3 ثوان لإعادة توليد الصّفحة الرّئيسيّة. في بعض المواقع، إن اتّبعت طلبات التّعليقات (RFC)، فسيقوم وسيط (proxy) التّخبئة بإلغاء الصّفحة الرّئيسيّة أو سيحدث انقضاء وقت (time out). عندها سيأتي مُستخدم آخر وسيتوجب جلب نسخة جديدة من الصّفحة الرّئيسيّة. يقوم Varnish بهذا عبر عمليّة التئام التّخبئة (coalescing). إذ يتم وضع المستخدمين الجدد عند وصولهم على قائمة انتظار. (أنظمة التّخبئة الأخرى تُرسل المُستخدمين إلى النظام الخلفيّ ما يقتل الخادم). إن تّمت إضافة 3000 مُستخدم إلى قائمة الانتظار كلّ ثانيّة، فبعد ثلاثة ثوان، سيكون الطابور عبارة عن 9000 مستخدم ينتظرون النظام الخلفي لجلب المحتوى. في البداية، كان Varnish يأخذ المحتوى المطلوب، ويقوم بالتواصل مع السّلاسل (Thread) الـ9000 التي تمّ إنشاؤها، ويُحاول دفع كل شيء دفعة واحدة. سمّي هذا الحدث بالقطيع الصّاخب (thundering herd). وكانت النّتيجة موت الخادوم فورا. لحلّ هذه المُشكلة، قرّر Varnish استعمال الصفحة الرّئيسيّة القديمة عوضا عن انتظار الخادوم لإعادة توليد المحتوى. لن يهتم أحد إن كان المحتوى قديما بـ20 ثانيّة، إلا في حالة كانت البيانات التي تقدّمها متعلّقة بمعلومات ماليّة وترغب عرضها في الوقت الفعلي. تغيّرت التّفاصيل المتعلّقة بـGrace خلال السنوات الماضيّة. في Varnish 4.0 (إن تمّ تفعيله) فستبدو كما يلي: sub vcl_backend_response { set beresp.grace = 2m; } يتم ربط Grace مع كائن الإجابة الخلفيّة (backend response object). إن تم تحديد القيمة في دقيقتين (2m) فسيُبقي Grace على الكائن لدقيقتين بعد انقضاء الـTPL. إن تم طلب الكائن خلال هذا الوقت، فسيتم تفضيل تقديم ما هو مُخبّأ عوضا عن إرسال طلب جديد إلى النظام الخلفيّ. سيتم استعمال الكائن وإعادة تحميله بعدها بشكل غير متزامن. تفاصيل Grace لا يتطلب فهم Varnish Cache النظر إلى الشّيفرة المصدريّة، عوضا عن ذلك، يتم توفير VCL افتراضيّ يُمكن الاعتماد عليه لإضافة أية تفاصيل أخرى حسب الحاجة. فبِميّزة مثل Grace يُمكن للمُستخدمين قراءة شيفرة VCL والنظر إلى التفاصيل: Insert code sub vcl_hit { if (obj.ttl >= 0s) { // A pure unadulterated hit, deliver it return (deliver); } if (obj.ttl + obj.grace > 0s) { // Object is in grace, deliver it // Automatically triggers a background fetch return (deliver); } // fetch & deliver once we get the result return (fetch); } إن كان الكائن VCL يحمل قيمة أكبر من 0 ثوان، هذا يعني بأنّ الـTTL موجب، سيتمّ الرجوع والتّقديم. إن كانتا كل من قيمتي TTL وGrace أكبر من 0 ثوان، فهذا يعني بأنّها ضمن Grace وسيقوم Varnish بتقديمها. إن كانتا كل من قيمتي TTL وGrace أصغر من 0 ثوان، فسيتّم طلب الصّفحة من النّظام الخلفيّ. تعديل كيفيّة عمل Grace يُمكن للمؤسّسات التي تكون بحاجة إلى تقديم معلومات ماليّة وتأبى عرض معلومات قديمة للمُستخدم أن تُغيّر من كيفيّة عمل Grace. في المثال التّالي، لم يتغيّر الجزء الأول، في الجزء الثّاني نقوم بالتقديم في حالة لم يكن الخادوم الخلفيّ على ما يرام وكانت كلا من قيمتي TTL و Grace أكبر من 0 ثانيّة. sub vcl_hit { if (obj.ttl >= 0s) { // A pure unadulterated hit, deliver it return (deliver); } if (!std.healthy(req.backend_hint) && (obj.ttl + obj.grace > 0s)) { return (deliver); } // fetch & deliver once we get the result return (fetch); } *بضعة معلومات إضافيّة: beresp: كائن الطّلب الخلفّي backend request object. req: كائن الطّلب request object. يُستعمل في vcl_recv. bereq: كائن الطّلب الخلفي backend request object. يُستعمل في vcl_backed_fetch. beresp: كائن الإجابة الخلفيّة. يُستعمل في vcl_backend_response. resp: كائن الإجابة response object. يُستعمل في vcl_deliver. obj: الكائن الأصلي في الذّاكرة. يُستعمل في vcl_hit. للمزيد من التّفاصيل استعمل man(7) vcl. آلة الحالة (state machine) يمرّ كل طلب عبر عدّة حالات. يُمكن تشغيل شيفرة مخصّصة في كل حالة لتعديل كائنات الطّلب. بعد تنفيذ الشّيفرة المخصّصة، يقوم Varnish باتّخاذ قرار ما إذا كان نجاحا (Hit) أو إخفاقا (Miss) بعدها يتم تشغيل إمّا VCL hit أو VCL Miss. في حالة النّجاح سيقوم Varnish بتقديم المحتوى. والإخفاقات تُعيد الطّلب من النظام الخلفي. 90% من التّغييرات التي يُحدثها المُستخدمون تحدث هنا. كيفيّة التّضبيط (Tuning) على Linux يتم تحديد الانضباطيات (Tunables) على Linux بشكل محافظ، ونجد SOMAXCONN و TCP_MAX_SYN_Backlog أكثرها مشقّة. عند الانصات (listen) إلى المقابس (socket)، يأخذ Varnish بضعة ثوان للانصات للنّداء. إن كانت السّلاسل مشغولة، فستبدأ النّواة (kernel) بالتّكتّل (queue). لا يُسمَحُ لهذا التّكتّل بأن ينمو إلى ما وراء قيمة SOMAXCONN. سيطلب Varnish 1024 اتّصالا على تكتّل عمق الانصات (listen depth queue)، لكنّ النواة تقوم بإبطال ذلك لتحصل على 928 فقط. ولأنّ Varnish يعمل بصلاحيات الجذر (root)، فمن الممكن تقرير عمق انصات خاصّ، لكنّ Linux أدرى بما هو أفضل. قد يرغب المُستخدمون بالرّفع من هذا الحدّ إن أرادوا تخفيض خطر رفض الاتّصالات عند انقضاء عمق الانصات. سيتوجّب على المستخدم اتخاذ قرار ما إذا كان عدم التّقديم وتقديم صفحة خطأ أفضل أو لا. يقوم TCP_MAX_SYN_Backlog بتعريف عدد الاتّصالات البارزة التي يُمكن لها أن تكون بداخل إقامة الاتّصال (handshake) الثّلاثي الأطراف قبل أن تقرّر النواة بأنّها تحت الهجوم. القيمة الافتراضيّة هي 128. لكن في حالة دخل جمع كبير من النّاس إلى موقعك دفعة واحدة فقد تحصل على أكثر من 128 اتّصال TCP كلّ ثانيّة. لا تقم بتعديل tcp_tw_recycle. تأكّد بأنّك تعرف ما تفعله قبل لمس الإعدادات وابحث على الويب قبل ذلك. إذ أنّ الكثير من العفاريت (demons) تعتمد على هذه القيّم. مساحات العمل (Work spaces) في Linux في Varnish، الذاكرة المحليّة متواجدة في كلّ سلسلة. ولأنّ التّراجع (rollback) يستنزف الموارد، فإنّنا لا نتراجع كلّما احتجنا إلى قليل من المساحة في الذّاكرة. عوضا عن ذلك، نقوم بتعيين مُسبق للذّاكرة على كلّ سلسلة إن كان للمستخدم العديد من سياسات VCL التي قد تستنزف مساحة العمل بأكملها. لا يقوم Varnish بتتبّع الاتّصال، وحدة التّعاقد (contract module) بطيئة للغاية. يتمّ افتراضيّا تشغيل خمسة سلاسل. يُمكن إنشاء سلاسل جديدة بسرعة نسبيّا، لكن إن كنت تخطّط لفتح ألف اتّصال كلّ ثانيّة أي ألف سلسلة، ففي هذه الحالة لديك مُعطى (parameter) لتخصيص سلاسل مُسبقا. خلاصة: احذر عند التّعامل مع مساحات العمل. لا تقم بتتبّع الاتّصالات (connection tracking). ارفع معدّل السّلاسل إلى طلب واحد في الثانيّة لكل سلسلة. الموازنة بين ما هو غريب وما هو رائع في Varnish Cache المرونة القويّة والمميّزات التّي يتمتّع بهاVarnish Cache لا تأتي في حزمة جاهزة (ما قد يجده البعض غريبا)، لذا فقد لا يكون الحلّ الأنسب للجميع. لكنّ المرونة التي يتمتّع بها قد تُغيّر من مجريات الأمور عند الرغبة في تخصيص والتّحكم بأداء المواقع وقابليّة توسيعها. ترجمة -بتصرّف- للمقال Getting started with web app accelerator Varnish Cache لصاحبه Per Buer.
  2. يعدّ المعالج Processor ويُسمى وحدة المعالجة المركزية CPU ‏(Central Processing Unit) أو المعالج المصغَّر Microprocessor أهمَّ مكونات الحاسوب فبدونه لا يوجد حاسوب، وهو دارة إلكترونية تنفِّذ التعليمات وتعالج البيانات باستخدام عمليات الحساب والمنطق. معالج Intel 80486DX2. نشرت الصورة في ويكيبيديا برخصة المشاع الإبداعي BY-SA تغيَّر تصميم المعالج وشكله كثيرًا عبر العقود الأخيرة ولكنّ عمله الأساسي بقي ثابتًا. المعالجات الحديثة هذه الأيام هي معالجات مصغَّرة أي أنّ جميع مكونات وعناصر المعالج تتواجد في دارة متكاملة IC واحدة وقد تحتوي هذه الدارة على عناصر إضافية كذاكرة ومُتحكمات Microcontrollers وغيرها. يُصنع المعالج من عناصر إلكترونيَّة تدعى أشباه نواقل وهي الترانزستورات حيث يحتوي على الملايين منها، والمزايا التي تضيفها الترانزستورات للمعالج هي الدقة والاستهلاك الأقل للطاقة والسرعة العالية. مكونات المعالج يتألف المعالج من مكونات عدَّة أهمها هي: وحدة التحكم Control Unit هي دارة رقمية تتحكم بتوجيه جميع الأوامر والبيانات لمعالجتها فهي لا تنفِّذ أو تعالج البيانات وإنما تتخاطب مع الذاكرة ووحدة الحساب والمنطق وأجهزة الإدخال والإخراج وتنسِّق فيما بينها لتنفيذ الأوامر لذا نجد أن وحدة التحكم تدير وتنظِّم أغلب أجهزة الحاسوب. وتتحكم أيضا بكمية البيانات المنتقلة بين المعالج وجميع العناصر والأجهزة، وبتدفق البيانات داخل المعالج، وبتنظيم عمل الوحدات الأخرى الموجودة داخله. وحدة الحساب والمنطق ALU ‏(Arithmetic Logic Unit) هي دارة رقمية مسؤولة عن تنفيذ ومعالجة البيانات عبر إجراء العمليات الحسابية والمنطقية، والعملية الحسابية المستخدمة هي الجمع فقط أما بقية العمليات يمكن مكافأتها وتحويلها إلى عملية الجمع. تأتي البيانات من الذاكرة إلى المعالج لتعالج ضمن هذه الوحدة ثم تعاد إلى الذاكرة أو تخزَّن مؤقتًا في السجلّات Registers وهي ذاكرة سريعة جدًا. وحدة التحكم بالذاكرة MMC ‏(Memory Management Unit) تحوي المعالجات غالية الثمن وحدة التحكم بالذاكرة التي وظيفتها تحويل العناوين المنطقية إلى عناوين الذاكرة الفيزيائية RAM، وتأمين حماية الذاكرة، ونقل البيانات إلى جهاز تخزين ثانوي (كالقرص الصلب) وإحضارها منه، ولها فائدة كبيرة عند استخدام الذاكرة الافتراضية Virtual memory. قد لا تحتوي المعالجات البسيطة أو المكتبية على هذه الوحدة. عامل الشكل يصف عامل الشكل Form factor شكل المعالج الخارجي ونوع المقبس الذي يركَّب عليه، وأشهر عوامل الشكل هي: LGA هي تقنية لتعليب المعالج والدارات وتدعىLGA‏ (Land Grid Array) حيث يزوَّد أسفل المعالج بشبكة من تماسات صغيرة تتصل مع اللوحة الأم، ويركَّب هذا النوع على المقبس أو يُلحم مباشرة على اللوحة. ومن المعالجات التي تستخدم هذا العامل هي “Intel Pentium 4” و “Intel Xeon” و “Intel Core 2” و “Intel Core” و “AMD Opteron” إذ تستخدمه معالجات Intel الحديثة خلافًا لمعالجات AMD التي تستخدم التصميم PGA بكثرة. المعالج Pentium 4 بتعليب LGA 775. نشرت الصورة برخصة المشاع الإبداعيBY-SA لصاحبها Eric Gaba أشهر المقابس التي تدعم عامل الشكل LGA هي مقبس “LGA 775”، الذي تستخدمه جميع المعالجات من نوع “Intel Pentium D” و “Core 2”، والمقبس “LGA 1150”، ويشير الرقم 775 والرقم 1150 إلى عدد الأرجل الموجودة على المقبس. PGA المعالج Pentium 4 بتعليب PGA. نشرت هذه الصورة برخصة المشاع الإبداعي BY-SA لصاحبها Liam McSherry هي تقنية لتعليب المعالج والدارات وتسمى PGA ‏(Pin Grid Array) ويكون شكل المعالج مربعًا أو مستطيلًا وتوزَّع الأرجل أسفل المعالج بانتظام ولا تغطي كامل مساحته، ويركب هذا النوع على اللوحة عبر ثقوبٍ موجودةٍ عليها أو عبر مقبس، وله أنواع كثيرة وهي: FC-PGA ‏(Flip-Chip PGA): صمَّمت شركة Intel هذا النوع مع معالجات “Pentium III” و “Celeron” و “Pentium 4” التي تستخدم المقابس: “Socket 370 Socket 478 SPGA‏ (Staggered PGA): يُستخدم مع معالجات Intel والمقابس التي تدعمه هي: Socket 5 Socket 7 Socket 8 CPGA‏ (Ceramic PGA): تستخدم الدارات المتكاملة هذا التصميم بكثرة، وبعض المعالجات التي تستخدمه هي معالجات “AMD Athlon” و “AMD Buron” والمقابس هي: Socket A Socket AM2 Socket AM2+‎ OPGA‏ (Organic PGA): يُستعمل مع الدارات المتكاملة والمعالجات، وابتكرته بدايةً شركة AMD مع المعالج “Athlon XP”، والمقابس المستخدمة هي: Socket A Socket 754 Socket 939 Socket 940 Socket FM1 Socket FM2 Socket AM2 Socket AM2+‎ Socket AM3 Socket AM3+‎ Socket AM4 SECC تدعى هذه التقنية Single Edge Contact Cartridge وتعرف أيضًا Slot 1 واستخدمت مع المعالج “Intel Pentium II” والمعالج “Intel Pentium III”. ذاكرة التخبئة Cache memory هي ذاكرة سريعة وصغيرة جدًا من نوع SRAM تتموضع داخل المعالج أو على اللوحة الأم. تُستخدَم لتقليل الزمن والطاقة اللازميْن للوصول إلى البيانات الموجودة في الذاكرة الرئيسية (ذاكرة الوصول العشوائي RAM) إذ تُخزَّن عليها البيانات متكررة الاستخدام بدلًا من إعادتها إلى الذاكرة ثم إحضارها من جديد. سرعة المعالج عالية جدًا بالمقارنة مع الذاكرة الرئيسية لذا سيحصل الكثير من الهدر في الوقت اللازم لانتقال المعلومات الموجودة في الذاكرة إلى المعالج حال عدم وجود ذاكرة التخبئة. نموذج توضيحي يبين الفرق بين سرعة معالجة البيانات عند استخدام ذاكرة التخبئة وسرعتها بدونها. المصدر: extremetech.com تحوي المعالجات أنواعًا متعددةً من هذه الذاكرة منها ذاكرة تخبئة للتعليمات وأخرى للبيانات التي تُقسم إلى مستويات عدَّة. أنواع ذاكرة التخبئة تحوي الحواسيب الحديثة والخواديم ثلاثة أنواع من ذاكرة التخبئة وهي: ذاكرة تخبئة التعليمات Instruction cache: تزيد من سرعة جلب التعليمات وتنفيذها. ذاكرة تخبئة البيانات Data cache: تزيد من سرعة الحصول على البيانات من الذاكرة الرئيسية أو كتابة البيانات عليها لإعادتها إلى الذاكرة الرئيسية، وتقسم إلى مستويات وهي: المستوى الأول L1: هي ذاكرة سريعة جدًا مع سعة تخزينية صغيرة (8 – 128 كيلوبايت) تُدمج مع المعالج، وغالبًا يكون لكل نواة ذاكرة L1 منفصلة. المستوى الثاني L2: هي أبطأ سرعةً من L1 ولكن سعتها أكبر (64 كيلوبايت – 16 ميغابايت) وتُدمج مع المعالج وقد يكون لكل نواة ذاكرة منفصلة أو تشترك جميع النوى في المعالج بذاكرة L2 واحدة. المستوى الثالث L3: أبطأ من سابقتها (تكون سرعتها من مضاعفات سرعة الذاكرة الرئيسية) وأكبر سعةً (4 – 128 ميغابايت) وغالبًا تشترك جميع النوى بذاكرة L3 واحدة. المستوى الرابع L4: يندر استخدامها وتوجد على رقاقة منفصلة وسعتها أكبر من 512 ميغابايت. ذاكرة التخبئة من نوع TLB‏ (Translation Look-aside buffer): وظيفتها تسريع عملية تحويل العناوين الافتراضية إلى عناوين فيزيائية للتعليمات والبيانات. يمكن أن توجد ذاكرة منفصلة للتعليمات وتدعى ITLB‏ (Instruction TLB) وذاكرة منفصلة للبيانات أيضًا وتدعى DTLB‏ (Data TLB)، وتكون هذه الذاكرة جزءًا من وحدة التحكم بالذاكرة MMC. آلية العمل مع المعالج تنتقل البيانات المراد معالجتها بين الذاكرة الرئيسية وذاكرة التخبئة ككتل ثابتة الحجم Cache blocks وعندما يريد المعالج القراءة من الذاكرة الرئيسية أو الكتابة عليها يتحقق أولًا من وجود نسخة من البيانات في ذاكرة التخبئة. إن وجد المعالج تلك البيانات فإنه يقرأها مباشرةً من ذاكرة التخبئة ثم يخزِّن الناتج فيها وهذه العملية أسرع بكثير من القراءة من الذاكرة الرئيسية. عندما يطلب المعالج البيانات من ذاكرة التخبئة فإنه يطلبها أولًا من الذاكرة L1 فإن لم يجدها يطلبها من الذاكرة L2 فإن لم يجدها يبحث عنها في الذاكرة L3 فإن وجدها أخذها للمعالجة وإن لم يجدها يُرسِلُ إلى الذاكرة لإحضار تلك البيانات. إن لم يجد المعالج البيانات في ذاكرة التخبئة فإن هذه الذاكرة تطلب نسخةً من البيانات من الذاكرة الرئيسية التي بدورها ترسل نسخة من البيانات إليها وحينئذ يقرأ المعالج تلك البيانات. تُرسَلُ البيانات بعد الانتهاء من معالجتها إلى ذاكرة التخبئة ومنها تعاد إلى الذاكرة الرئيسية؛ أمَّا إن كان المعالج يحتاج تلك البيانات مرارًا وتكرارًا فإنها تبقى فيها ريثما ينتهي المعالج منها. المعالجات متعدِّدة النوى المعالج متعدِّد النوى هو معالج واحد يحتوى على وحدات معالجة مستقلة تدعى كل واحدة منها “نواة” Core. يمكن للمعالج متعدد النوى معالجة العديد من التعليمات في الوقت نفسه ممَّا يزيد من سرعته. قد تتشارك النوى ذاكرة تخبئة مع بعضها و قد تنفرد كل نواة بمستوى واحد أو أكثر من ذاكرة التخبئة، توضح الصورة بنية معالج ثنائي النوى تنفرد كل نواة فيه بذاكرة L1 وتشترك النواتان بذاكرة L2. تستطيع بعض المعالجات محاكاة عمل نواتين من نواة واحدة فيزيائيَّة وتدعى هذه التقنية HT‏ (Hyper Threading) التي طورتها شركة Intel على معالجاتها. هذا يعني أنَّه إذا كان المعالج رباعي النوى ويدعم هذه التقنية فإنه يعمل وكأنه ثماني النوى، وبالتأكيد لا يتساوى هذا المعالج مع نظيره الذي يحوي ثماني نوى فيزيائيَّة في الأداء. المصدر: GetHow.org سرعة النبضات Clock speed يشير هذا المصطلح إلى التردد Frequency أو سرعة المعالج وتقاس بالهيرتز Hz (عدد النبضات بالثانية)، أي عدد التعليمات التي تعالج بالثانية، وتقاس سرعة المعالج حاليًا بواحدة غيغاهيرتز GHz. فالمعالج الذي سرعته 1 هيرتز مثلًا يستطيع معالجة أمر واحد في الثانية، والمعالج الذي سرعته 3 غيغاهيرتز يستطيع معالجة 3 بليون أمر في الثانية. بنية المعالج 32 بت و64 بت تؤثِّر البنية المعمارية للمعالج فيما إذا كانت 32 بت أو 64 بت على أدائه وتحدِّد نوع نظام التشغيل والبرامج المستخدمة معه، ولكن ما هو الفرق بينهما؟ الفرق بين المعالج 32 بت والمعالج 64 هو: حجم الكلمة المعالجة كلَّ نبضة: يستطيع المعالج 32 بت معالجة البيانات ذات الحجم 32 بت والمعالج 64 بت يعالج البيانات ذات الحجم 64 بت في كلِّ نبضة ولذلك تأثيرٌ على كمية البيانات المعالجة. عرض ناقل العناوين Address bus: (شرحناه في درس اللوحة الأم) إذ يحدِّد حجم الذاكرة الأعظمي الذي يستطيع المعالج التعامل معها فالمعالجات 32 بت يكون عرض ناقل العناوين 32 بت وتستطيع التعامل مع ذاكرة سعتها 4 غيغابايت كأقصى حد، أمَّا معالجات64 بت يكون عرض الناقل 64 بت وسعة الذاكرة التي تستطيع التعامل معها كبيرة. انتبه إلى التوافق بين نظام التشغيل والبرامج وبين بنية المعالج فإن استخدمت نظام تشغيل أو برامج ذات 32 بت مع معالج 64 بت لن تستثمر كامل كفاءة المعالج وخصوصًا إن كان البرنامج المستخدم هو للرسم والتصميم ثلاثي الأبعاد. ملاحظة: نظام تشغيل 64 بت لا يعمل مطلقًا مع معالج من نوع 32 بت. الشركات المصنِّعة توجد في مجال تصنيع معالجات الحواسيب شركتان متنافستان وهما Intel و AMD وتطرح كل شركةٍ إصدارات عديدة من المعالجات. تقسَّم معالجات Intel إلى أجيال (الجيل الأول والثاني والثالث …إلخ.) ومعالج Core i7-7700K ذو الجيل السابع هو الأحدث إلى الآن أمَّا أحدث معالج منAMD هو معالج Ryzen 7 1800X. قد تسأل هل معالجات Intel أفضل أم معالجات AMD وماذا اختار عند شراء حاسوب جديد؟ الجواب على هذا السؤال يحتاج إلى مقالة أخرى للبحث والتمحيص عن الفروق والاختلافات بين معالجات الشركتين، وباختصار يمكن أن تكون معالجات AMD أرخص أو أكثر مرونة لكسر سرعتها من معالجات Intel أو قد تكون معالجات Intel أفضل للألعاب ولا تُصدر الكثير من الحرارة ولكن ذلك لا ينطبق على جميع المعالجات. نقطة أخيرة أحببت أن أوضحها وهي أنَّك قد تجد خلال بحثك عن الفرق بين المعالجات أولئك المتعصبين لشركة Intel أو AMD الذين يرون محاسن ومزايا معالج تلك الشركة دون الأخرى وإذا سألتهم ماذا أختار فيرشدونك مباشرة لشركتهم المفضلة. ابحث بنفسك واقرأ جميع المواصفات والمزايا ثم قرر بناءً على ذلك أي نوع من المعالجات هو الأفضل والأنسب. شراء وتركيب المعالج على اللوحة الأم يجب قبل شراء معالج جديد مراعاة جميع الأمور السابقة وليس التركيز على السرعة فقط، ولا تنسَ أيضًا التوافق مع اللوحة الأم (تردد الناقل الأمامي FSB ومعامل الضرب ونوع المقبس) لاستثمار كامل ثمن المعالج الذي دفعته. انتبه عند تركيب المعالج إلى وجود بعض العلامات التي تساعد على تركيبه منها وجود سهمٍ في أحد زوايا المعالج يقابله سهمٌ يشبهه على المقبس أو وجود بعض النتوءات على المقبس التي تدلك على الطريقة الصحيحة لتركيب المعالج. وحذار من استخدام العنف أثناء تركيب المعالج خصوصًا مع معالجات من نوع PGA فأي حركة خاطئة تؤدي إلى كسر أحد أرجله وتعطل المعالج أو المقبس. تبريد بالسائل. المصدر asetek.com تُركَّب فوق المعالج أداة التبريد المناسبة له بعد تركيبه على المقبس وإمَّا أن يكون نظام التبريد مروحة مع مشتتٍ حراريٍ، ولا تنسَ في هذه الحالة إضافة القليل من معجونة التبريد التي تحسِّن من انتقال الحرارة من سطح المعالج إلى المشتت، أو التبريد عبر السوائل أو التبريد الغازي. الخلاصة تعلمنا في هذا الدرس أشياء كثيرة حول المعالج وهي غيض من فيض ولكنها كافية لفهم مبدأ المعالج ومكوناته ومواصفاته. المصادر Control unit، ويكيبيديا. SECC،‏ Computer Hope. Pin Grid Array، ويكيبيديا. Land Grid Array، ويكيبيديا وحدة الحساب والمنطق، ويكيبيديا. ALU،‏ Computer Hope. Central processing unit، ويكيبيديا. وحدة معالجة مركزية، ويكيبيديا. Cache memory، ويكيبيديا. CPU cache، ويكيبيديا. Multi-core processor، ويكيبيديا. What Is a CPU?‎،‏ Lifewire. What is the difference between a 32-bit and 64-bit CPU?‎،‏ Computer Hope.