معمارية الحاسوب PDF
Document Details
Uploaded by PeaceableEinstein7368
Tags
Summary
هذا المستند يتناول مفهوم معمارية الحاسوب، مُشرحًا مجموعة التعليمات، والهندسة، وخصائص الجودة. يُقدم شرحًا شاملًا عن التصميم المعماري للكمبيوتر. يناقش أيضًا المكونات الرئيسية، والعلاقات، وكيفية تفاعلها. يُغطي الجوانب الرئيسية في عمارة الحاسوب، مثل بناء مجموعة التعليمات، وتنظيم الحاسوب، والتطبيق، وعمليات التنفيذ.
Full Transcript
**معمارية الحاسوب** **في [هندسة الحاسوب](https://ar.wikipedia.org/wiki/%D9%87%D9%86%D8%AF%D8%B3%D8%A9_%D8%A7%D9%84%D8%AD%D8%A7%D8%B3%D9%88%D8%A8)، تعتبر معمارية الحاسوب مجموعة من القواعد والأساليب التي تصف وظائف أنظمة [الحاسوب](https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%AD%D8%A7%D8%B3%D9%88%D8%A...
**معمارية الحاسوب** **في [هندسة الحاسوب](https://ar.wikipedia.org/wiki/%D9%87%D9%86%D8%AF%D8%B3%D8%A9_%D8%A7%D9%84%D8%AD%D8%A7%D8%B3%D9%88%D8%A8)، تعتبر معمارية الحاسوب مجموعة من القواعد والأساليب التي تصف وظائف أنظمة [الحاسوب](https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%AD%D8%A7%D8%B3%D9%88%D8%A8) وتنظيمها وتنفيذها. تشير بنية النظام إلى هيكله من حيث المكونات المحددة بشكل منفصل لذلك النظام وعلاقاتها المتبادلة.** **تعرّفها بعض تعريفات العمارة على أنها تصف القدرات ونموذج البرمجة للكمبيوتر ولكن ليس تنفيذًا معينًا. في تعريفات أخرى، تتضمن بنية الكمبيوتر تصميم هندسة [مجموعة التعليمات](https://ar.wikipedia.org/wiki/%D9%85%D8%AC%D9%85%D9%88%D8%B9%D8%A9_%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%8A%D9%85%D8%A7%D8%AA)، وتصميم [البنية الدقيقة](https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%A8%D9%86%D9%8A%D8%A9_%D8%A7%D9%84%D8%AF%D9%82%D9%8A%D9%82%D8%A9_(%D8%B9%D9%84%D9%85_%D8%A7%D9%84%D8%AD%D8%A7%D8%B3%D9%88%D8%A8))، [والتصميم المنطقي](https://ar.wikipedia.org/wiki/%D8%AA%D8%B5%D9%85%D9%8A%D9%85_%D9%85%D9%86%D8%B7%D9%82%D9%8A)، [والتنفيذ](https://ar.wikipedia.org/wiki/%D8%AA%D9%86%D9%81%D9%8A%D8%B0).** **مصطلح معمارية الحاسوب (أو بناء الحاسوب) يستخدم للدلالة على العلم الذي يدرس المفاهيم التي تربط بين المكونات المادية الملموسة للحاسب مع المكونات البرمجية ممثله في نظام التشغيل.** **وقد عرّف العالم [جين أمدال](https://ar.wikipedia.org/wiki/%D8%AC%D9%8A%D9%86_%D8%A3%D9%85%D8%AF%D8%A7%D9%84) معمارية الحاسوب على أنها سمات الحاسوب (خصائص الحاسوب) التي تظهر مُبرمجةً في لغة التجميع، وتظهر في هيكلة المفاهيم والنماذج الوظيفية (البرمجية).** **وقد كان مفهوم معمارية الحاسوب يرتكز على تصميم مجموعة التعليمات الموجهة [للشبكات](https://ar.wikipedia.org/wiki/%D8%B4%D8%A8%D9%83%D8%A9_%D9%85%D8%AD%D9%84%D9%8A%D8%A9)** **مصطلح معمارية الحاسوب (أو بناء الحاسوب) يستخدم للدلالة على العلم الذي يدرس المفاهيم التي تربط بين المكونات المادية الملموسة للحاسب مع المكونات البرمجية ممثله في نظام التشغيل.** **وقد عرّف العالم جين أمدال معمارية الحاسوب على أنها سمات الحاسوب (خصائص الحاسوب) التي تظهر مُبرمجةً في لغة التجميع، وتظهر في هيكلة المفاهيم والنماذج الوظيفية (البرمجية).** **وقد كان مفهوم معمارية الحاسوب يرتكز على تصميم مجموعة التعليمات الموجهة للشبكات [المحلية](https://ar.wikipedia.org/wiki/%D8%B4%D8%A8%D9%83%D8%A9_%D9%85%D8%AD%D9%84%D9%8A%D8%A9) حتى ثمانينات القرن الماضي ليتم التركيز بعدها على تصميم [وحدة المعالجة المركزية](https://ar.wikipedia.org/wiki/%D9%88%D8%AD%D8%AF%D8%A9_%D8%A7%D9%84%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9_%D8%A7%D9%84%D9%85%D8%B1%D9%83%D8%B2%D9%8A%D8%A9) والتسلسل الهرمي لوحدة الذاكرة ونظام الإدخال والإخراج والعمليات المتوازية بالإضافة إلى جوانب أخرى.** **الجوانب الرئيسية في عمارة الحاسوب:** **- 1 بناء مجموعة التعليمات** **واجهة بين برامج الحاسوب والأجهزة، ويمكن أيضا أن ينظر إليها على أنها وجهة نظر مبرمج الجهاز. أجهزة الحاسوب لا يفهمون لغات عالية المستوى التي لديها عدد قليل، إن وجدت، وعناصر اللغة التي يترجم مباشرة إلى أكواد العمليات آلة الأم. أما المعالج يفهم فقط التعليمات المشفرة في بعض الأزياء العددي، وعادة ما الأرقام الثنائية. أدوات البرمجيات، مثل المجمعين، يترجم لغات المستوى العالي، مثل C، إلى تعليمات.** **بالإضافة إلى التعليمات، يحدد العناصر الموجودة في الكمبيوتر المتوفرة لبرنامج مثل أنواع البيانات والسجلات، ومعالجة الأوضاع، والذاكرة.** **-2 تنظيم الحاسوب مثل. (P6, Netburst, AMD K8, Core)** **تساعد منظمة الحاسوب تحسين المنتجات القائمة على الأداء. على سبيل المثال، مهندسي البرمجيات في حاجة إلى معرفة قدرة المعالجة من المعالجات. قد يحتاجون إلى تحسين البرمجيات من أجل الحصول على أكبر قدر من الأداء في أقل نفقة. وهذا يمكن أن تتطلب تحليلا مفصلا للغاية لمنظمة الحاسوب. على سبيل المثال، في فك الوسائط المتعددة، قد تحتاج المصممين لترتيب لمعظم البيانات التي يتم معالجتها في مسار البيانات أسرع.** **تساعد منظمة الكمبيوتر أيضا التخطيط لاختيار المعالج لمشروع معين. مشاريع الوسائط المتعددة قد يحتاج الوصول إلى البيانات سريع للغاية، في حين أن البرنامج الإشرافي قد تحتاج المقاطعات السريعة. أحيانا بعض المهام تحتاج مكونات إضافية أيضا. على سبيل المثال، جهاز كمبيوتر قادر على التمثيل الافتراضي يحتاج الأجهزة الذاكرة الظاهرية بحيث ذاكرة أجهزة الكمبيوتر محاكاة مختلفة يمكن أن تظل فصل. منظمة الكمبيوتر وميزات يؤثر أيضا استهلاك الطاقة والتكلفة المعالج.** **-3 التطبيق (عملية التنفيذ) (مثل PentiumIII, Celeron, Pentium4, Pentium Xeon, (Core2** **وصفت مجموعة التعليم والهندسة المعمارية الصغيرة، يجب أن يتم تصميم آلة العملية. وهذا ما يسمى عملية التصميم والتنفيذ. وعادة ما لا يعتبر تنفيذ تعريف المعماري، وإنما الأجهزة التصميم الهندسي. تنفيذ يمكن تصنيف ذلك من أسفل إلى عدة خطوات:** - **تنفيذ المنطق بتصاميم للقطع المحددة في هيكل النظام المصغر (في المقام الأول) ويكون بناء على المنطق.** - **تنفيذ التصاميم على مستوى الترانزستور من العناصر الأساسية (البوابات وأجهزة الإرسال، الخ) وكذلك بعض الكتل الكبيرة (ALUs) التي يمكن تنفيذها على هذا المستوى، أو حتى (جزئيا) في المادية مستوى، لأسباب تتعلق بالأداء.** - **توجه التنفيذ الفعلي للدوائر المادية. توضع المكونات بدائرة مختلفة في المخططات أو على لوحة ويتم توجيه الأسلاك التي تربط بينها.** - **تصميم اختبارات التحقق الكمبيوتر ككل لمعرفة ما إذا كان يعمل في جميع المواقف وتوقيت. بمجرد أن يبدأ التنفيذ، وإثبات والتصميم الأول هو المحاكاة باستخدام محاكاة المنطق. ومع ذلك، وهذا عادة ما يكون بطيئا جدا لتشغيل برامج واقعية. وهكذا، بعد إجراء التصحيحات، هي التي شيدت باستخدام النماذج الميدانية للبرمجة بوابة صالحة (التصميم بما). وقف العديد من المشاريع هواية في هذه المرحلة. والخطوة الأخيرة هي لاختبار النموذج الأولي الدوائر المتكاملة. قد تتطلب الدوائر المتكاملة عدة يصمم لإصلاح المشاكل.** - **معمارية برمجيات** **المقدمة** **تصميم معمارية البرمجيات هو \"خطة تخطيط\" لنظام برمجي، وهو نتاج تطوير تجريد البرامج إلى مرحلة معينة. يتعلم مصممو البرمجيات المعرفة بهندسة البرمجيات، بهدف الوقوف على مستوى أعلى وحل المشكلات العملية في تصميم البرامج وإعادة استخدامها والجودة والصيانة ككل. تلخص هذه المقالة بطريقة رسومية، من الوصف والتصميم والأسلوب والتقييم وطرق تكوين بنية البرنامج.** **ما هي معمارية البرمجيات:** **ما هي معمارية البرمجيات، تصف معمارية النظام مكوناته الرئيسية وعلاقاتها (الهياكل) وكيفية تفاعلها مع بعضها البعض. تتضمن معمارية البرمجيات وتصميمها العديد من العوامل المساهمة مثل إستراتيجية الأعمال، وسمات الجودة، والديناميات البشرية، والتصميم، وبيئة تكنولوجيا المعلومات. كل هذا ضمن معمارية البرمجيات. ما هي معمارية البرمجيات** **لفهم ما هي معمارية البرمجيات يمكننا فصل معمارية البرمجيات والتصميم إلى مرحلتين متميزتين: معمارية البرمجيات وتصميم البرمجيات. في معمارية البرمجيات، يتم إلقاء القرارات غير الوظيفية وفصلها عن طريق المتطلبات الوظيفية. في التصميم، يتم إنجاز المتطلبات الوظيفية. وفى هذا المقال سوف نشرح بالتفصيل ما هي معمارية البرمجيات وتصميمها.** **المعمارية البرمجية لنظام ما هي مجموعة الهيكليات التي نحتاجها كي نستوعب آلية عمل وبناء [النظام](https://areq.net/m/%D9%86%D8%B8%D8%A7%D9%85_%D8%A8%D8%B1%D8%A7%D9%85%D8%AC.html). وهي تتضمن الأجزاء [البرمجية](https://areq.net/m/%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A9.html) والعلاقات التي تربط هذه الأجزاء ببعضها البعض، إضافة إلى خصائص هذه الأجزاء والعلاقات. يستعمل المصطلح أيضا لوصف عملية توثيق \"معمارية البرمجيات\". فتوثيقها يسهل التحاور والتفاهم بين جميع [أصحاب الشأن](https://areq.net/m/%D8%A3%D8%B5%D8%AD%D8%A7%D8%A8_%D8%A7%D9%84%D9%85%D8%B5%D8%A7%D9%84%D8%AD_(%D8%AA%D9%88%D8%B6%D9%8A%D8%AD).html). كما وأنها تبين القرارات التي اتخذت في مراحل تطوير النظام الأولى حول النظرة العامة لمعماريته. إضافة إلى ذلك، فهي تسهل عملية إعادة استخدام بعض النماذج والمكونات فيما بين المشاريع.** **تعمل معمارية البرمجيات كمخطط لنظام. يوفر فكرة مجردة لإدارة تعقيد النظام وإنشاء آلية اتصال وتنسيق بين المكونات. يحدد حلاً منظمًا لتلبية جميع المتطلبات الفنية والتشغيلية، مع تحسين سمات الجودة المشتركة مثل الأداء والأمن.** **علاوة على ذلك، فإنه يتضمن مجموعة من القرارات المهمة حول المنظمة المتعلقة بتطوير البرامج ويمكن أن يكون لكل من هذه القرارات تأثير كبير على الجودة وقابلية الصيانة والأداء والنجاح الشامل للمنتج النهائي. تتكون هذه القرارات من:** - **اختيار العناصر الهيكلية وواجهاتها التي يتكون النظام من خلالها.** - **السلوك على النحو المحدد في التعاون بين تلك العناصر.** - **تكوين هذه العناصر الهيكلية والسلوكية في نظام فرعي كبير.** - **تتوافق القرارات المعمارية مع أهداف العمل.** - **الأساليب المعمارية توجه المنظمة.** ** ** **تصميم البرمجيات (ما هي معمارية البرمجيات):** **يوفر تصميم البرنامج خطة تصميم تصف عناصر النظام ومدى ملاءمتها والعمل معًا لتلبية متطلبات النظام. أهداف وجود خطة تصميم هي كما يلي :** - **للتفاوض بشأن متطلبات النظام وتحديد التوقعات مع العملاء والتسويق وموظفي الإدارة.** - **العمل كمخطط أثناء عملية التطوير.** - **توجيه مهام التنفيذ، بما في ذلك التصميم التفصيلي والترميز والتكامل والاختبار.** **يأتي قبل التصميم التفصيلي والترميز والتكامل والاختبار وبعد تحليل المجال وتحليل المتطلبات وتحليل المخاطر.** **أهداف معمارية البرمجيات (ما هي معمارية البرمجيات):** **الهدف الأساسي للعمارة هو تحديد المتطلبات التي تؤثر على هيكل التطبيق. تقلل البنية الموضوعة جيدًا من أخطار الأعمال المرتبطة ببناء حل تقني وتبني جسرًا بين الأعمال والمتطلبات الفنية.** **بعض الأهداف الأخرى:** - **اكشف عن هيكل النظام، لكن قم بإخفاء تفاصيل تنفيذه.** - **أدرك جميع حالات الاستخدام والسيناريوهات.** - **حاول تلبية متطلبات مختلف أصحاب المصلحة.** - **التعامل مع كل من المتطلبات الوظيفية والجودة.** - **تقليل هدف الملكية وتحسين وضع المؤسسة في السوق.** - **تحسين الجودة والوظائف التي يوفرها النظام.** - **تحسين الثقة الخارجية في المنظمة أو النظام.** **محددات** **لا تزال معمارية البرمجيات تخصصًا ناشئًا في هندسة البرمجيات. لديها القيود التالية --** - **نقص الأدوات والطرق الموحدة لتمثيل العمارة.** - **عدم وجود طرق تحليل للتنبؤ بما إذا كانت الهندسة المعمارية ستؤدي إلى تنفيذ يفي بالمتطلبات.** - **عدم الوعي بأهمية التصميم المعماري لتطوير البرمجيات.** - **عدم فهم دور مهندس البرمجيات وضعف التواصل بين أصحاب المصلحة.** - **عدم فهم عملية التصميم وخبرة التصميم وتقييم التصميم.** ** ** **دور معماري البرمجيات:** **يوفر معماري البرامج حلاً يمكن للفريق الفني إنشاؤه وتصميمه للتطبيق بأكمله. يجب أن يتمتع مهندس البرمجيات بالخبرة في المجالات التالية:** **خبرة التصميم:** - **خبير في تصميم البرامج، بما في ذلك الأساليب والأساليب المتنوعة مثل التصميم الموجه للكائنات والتصميم المستند إلى الأحداث وما إلى ذلك.** - **قيادة فريق التطوير وتنسيق جهود التطوير من أجل سلامة التصميم.** - **يجب أن تكون قادرة على مراجعة مقترحات التصميم والمفاضلة فيما بينها.** **الخبرة نطاق:** - **خبير في النظام قيد التطوير والتخطيط لتطوير البرمجيات.** - **المساعدة في عملية التحقيق في المتطلبات، والتأكد من الاكتمال والاتساق.** - **تنسيق تعريف نموذج المجال للنظام الجاري تطويره.** **الخبرة التقنية:** - **خبير في التقنيات المتاحة التي تساعد في تنفيذ النظام.** - **تنسيق اختيار لغة البرمجة، والإطار، والمنصات، وقواعد البيانات، إلخ.** ** ** **الخبرة المنهجية:** - **خبير في منهجيات تطوير البرمجيات التي يمكن اعتمادها خلال SDLC (دورة حياة تطوير البرمجيات).** - **اختيار الأساليب المناسبة للتطوير التي تساعد الفريق بأكمله.** ** ** **الدور الخفي لمعماري البرمجيات:** - **يسهل العمل الفني بين أعضاء الفريق ويعزز علاقة الثقة في الفريق.** - **متخصص في المعلومات يشارك المعرفة ويتمتع بخبرة واسعة.** - **حماية أعضاء الفريق من العوامل الخارجية التي قد تشتت انتباههم وتقلل من قيمة المشروع.** ** ** **مخرجات معماري البرمجيات:** - **مجموعة أهداف وظيفية واضحة وكاملة ومتسقة وقابلة للتحقيق** - **وصف وظيفي للنظام، مع طبقتين على الأقل من التحلل** - **مفهوم للنظام** - **تصميم على شكل نظام، بطبقتين على الأقل من التحلل** - **مفهوم التوقيت وخصائص المشغل وخطط التنفيذ والتشغيل** - **وثيقة أو عملية تضمن اتباع التحلل الوظيفي، ويتم التحكم في شكل الواجهات** ** ** **علامات الجودة : ** **الجودة هي مقياس التميز أو حالة التحرر من النواقص أو العيوب. سمات الجودة هي خصائص النظام المنفصلة عن وظائف النظام.** **يؤدي تطبيق سمات الجودة إلى تسهيل التمييز بين نظام جيد وآخر سيء. السمات هي عوامل عامة تؤثر على سلوك وقت التشغيل وتصميم النظام وتجربة المستخدم. ** ** ** **سمات الجودة الثابتة : ** **تعكس بنية النظام والتنظيم، المرتبطة مباشرة بالعمارة والتصميم والتعليمات البرمجية المصدر. إنها غير مرئية للمستخدم النهائي، ولكنها تؤثر على تكلفة التطوير والصيانة، على سبيل المثال: النمطية، وقابلية الاختبار، وقابلية الصيانة، وما إلى ذلك.** ** ** **سمات الجودة الديناميكية : ** **تعكس سلوك النظام أثناء تنفيذه. ترتبط ارتباطًا مباشرًا بهندسة النظام وتصميمه ورمز المصدر والتكوين ومعلمات النشر والبيئة والنظام الأساسي للنظام.** **تكون مرئية للمستخدم النهائي وتوجد في وقت التشغيل، على سبيل المثال الإنتاجية والمتانة وقابلية التوسع وما إلى ذلك.** ** ** **سمات الجودة الشائعة :** - **النزاهة في المفاهيم تحدد اتساق وتماسك التصميم العام. يتضمن ذلك طريقة تصميم المكونات أو الوحدات.** - **قابلية الصيانة قدرة النظام على الخضوع للتغييرات بدرجة من السهولة.** - **قابلية إعادة الاستخدام تحدد قدرة المكونات والأنظمة الفرعية على أن تكون مناسبة للاستخدام في التطبيقات الأخرى.** - **إمكانية التشغيل البيني قدرة نظام أو أنظمة مختلفة على العمل بنجاح من خلال الاتصال وتبادل المعلومات مع أنظمة خارجية أخرى مكتوبة ومدارة من قبل أطراف خارجية.** - **إمكانية الإدارة تحدد مدى سهولة إدارة التطبيق على مسؤولي النظام.** - **الموثوقية قدرة النظام على الاستمرار في العمل بمرور الوقت.** - **قابلية التوسع قدرة النظام على التعامل مع زيادة الحمل دون التأثير على أداء النظام أو القدرة على التوسيع بسهولة.** - **سهولة الاستخدام تحدد مدى تلبية التطبيق لمتطلبات المستخدم والمستهلك من خلال كونه بديهيًا.** - **المساءلة الصحيحة عن استيفاء جميع متطلبات النظام.** - **التكلفة والجدول الزمني تكلفة النظام فيما يتعلق بوقت التسويق والعمر المتوقع للمشروع واستخدام الإرث.** - **القابلية للتسويق استخدام النظام مع مراعاة المنافسة في السوق.** ** ** **سيناريوهات الجودة:** **تحدد سيناريوهات الجودة كيفية منع حدوث خطأ ما. يمكن تقسيمها إلى ستة أجزاء بناءً على مواصفات سماتها :** - **المصدر -- كيان داخلي أو خارجي مثل الأشخاص أو الأجهزة أو البرامج أو البنية التحتية المادية التي تولد الحافز.** - **التحفيز -- شرط يجب مراعاته عند وصوله إلى النظام.** - **البيئة -- التحفيز يحدث في ظل ظروف معينة.** - **قطعة أثرية -- نظام كامل أو جزء منه مثل المعالجات وقنوات الاتصال والتخزين المستمر والعمليات وما إلى ذلك.** - **الاستجابة -- نشاط يتم إجراؤه بعد وصول الحافز مثل اكتشاف الأعطال والتعافي من الخطأ وتعطيل مصدر الحدث وما إلى ذلك.** - **مقياس الاستجابة -- ينبغي قياس الاستجابات التي حدثت بحيث يمكن اختبار المتطلبات.** **نظرة عامة:** **اعترضت علماء الحاسوب العديد من المشاكل تم التغلب على أولها بإيجاد [بنية البيانات](https://areq.net/m/%D8%A8%D9%86%D9%8A%D8%A9_%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA.html) المناسبة واستنباطها ثم بالتفكير في خوارزميات تستخدم تلك البنيات واستخدام طريقة [فصل الاهتمامات](https://areq.net/m/%D9%81%D8%B5%D9%84_%D8%A7%D9%84%D8%A7%D9%87%D8%AA%D9%85%D8%A7%D9%85%D8%A7%D8%AA.html) وتقسيمها. وبالرغم من أن مصطلح معمارية البرمجيات جديد نسبيا إلا أن رواده كانوا من الرياضيين القدامى نسبيا أمثال [ادسخر دكسترا](https://areq.net/m/%D8%A5%D8%AF%D8%B3%D8%AE%D8%B1_%D8%AF%D9%8A%D9%83%D8%B3%D8%AA%D8%B1%D8%A7.html) وغيره من المختصين في الرياضيات الأساسية. هؤلاء مهدوا الطريق لعلماء الإعلامية لكي يستعملوا طريقة التفكير التجريدي في حل المشكلات التي أصبحت أكثر تعقيدا مع مرور الزمن. فعلى سبيل المثال تعتبر [نظرية المخططات](https://areq.net/m/%D9%86%D8%B8%D8%B1%D9%8A%D8%A9_%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA.html) من بديهيات علوم الإعلامية** **ويعود الفضل الكبير فيها إلى [ادسخر دكسترا](https://areq.net/m/%D8%A5%D8%AF%D8%B3%D8%AE%D8%B1_%D8%AF%D9%8A%D9%83%D8%B3%D8%AA%D8%B1%D8%A7.html) وأمثاله من الرياضيين. ثم مع بداية التسعينات بدأت تظهر بعض المحاولات لتجميع وتوحيد أشكال تصميم البرمجيات لتظهر أولى نماذج التصميم والتوصيات بأحسن الممارسات. لكن الجدير بالذكر هو أنه ليس هناك تعريفا محددا لمعمارية البرامج ولكن المتعارف عليه أن من أهدافها هو تسهيل حل المشاكل وصيانة البرامج.** **لماذا معمارية البرمجيات مهمة:** **مثل أي بنية معقدة، البرمجيات يجب أن تكون مبنية على أساس متين حيث أن الأدوات الحديثة والمناهج تساعد على تبسيط مهمة بناء البرمجيات ولكنها لا تحل محل الحاجة إلى تصميم البرمجيات بعناية حيث أن بعض المخاطر تظهر من التصميم الضعيف للنظام والذي يكون غير قادر على دعم متطلبات العمل الحالية أو المقبلة لذلك يجب الأخذ بالاعتبار البنية التحتية لتكنولوجيا المعلومات والمستخدمين وطبيعة العمل في المنشأة.** **عند تصميم البرمجيات يجب أحذ المجالات الثلاث بشكل متوازن. على سبيل المثال تجربة المستخدم للبرمجيات هي الحل في كثير من الأحيان مع الأخذ بالاعتبار طبيعة العمل في المنشأة والبنية ألتحتية للنظام وأي تغير في أحد هذه المكونات تؤثر بشكل كبير في المخرجات** **بالمثل يمكن للتغيرات في متطلبات المستخدم يكون لها تأثير كبير على الأعمال فمثلا المسؤول عن النظام أو المنشأة قد لا يكون قادرة على تامين المعدات اللازمة لتحقيق هذا الهدف بنسبة 100 في المئة فعدم القدرة على تامين المعدات اللازمة سيخفض نسبة تحقيق الهدف إلى 80 بالمئة على سبيل المثال** **تركز معمارية البرمجيات على العناصر والمكونات الرئيسية وتفاعل العناصر والمكونات الرئيسية الأخرى ضمن بيئة التطبيق ومن الجدير بالذكر بان اختيار هياكل البيانات والخوارزميات والتطبيق المناسب يساعد في التصميم الجيد ويؤدى إلى نجاح البرمجيات وذلك باتباع العمليات المحكمة في معمارية البرمجيات واستخدام المعرفة التي تتضمنها، وسوف يكون بناء الحلول المعمارية التي تعالج جميع الجوانب ذات الصلة ويمكن نشرها على البنية التحتية المناسبة وتقديم النتائج التي تلبي الأهداف والغايات الأصلية.** **الهدف من معمارية البرمجيات:** **الهدف من معمارية البرمجيات هو بناء جسر بين متطلبات العمل والمتطلبات التقنية من خلال فهم حالات الاستخدام ومن ثم إيجاد السبل لتطبيق تلك البرمجيات** **وأيضا الهدف من العمارية هو تحديد المتطلبات التي تؤثر على بنية البرمجيات ومعماريه البرمجيات الجيدة تقلل من المخاطرمن خلال بناء حلا تقنيا برمجيا جيدا. والتصميم الجيد والمرن يكون قادرة على التعامل مع التغيرات التي سوف تحدث على مر الزمن في تكنولوجيا الأجهزة والبرمجيات وكذلك في سيناريوهات المستخدم ومتطلباته** **يجب على مصمم معمارية البرمجيات الاهتمام بالقرارات المتعلقة بالتصميم والأمور ألمتعلقة بجودة البرمجيات وطرق حمايتها ومتطلبات المستخدم والعمل** **نضع في اعتبارنا أنه ينبغي لمعمارية البرمجيات: -** **التركيز على هيكل النظام ولكن مع إخفاء تفاصيل التنفيذ للبرمجيات.** **التركيز على حالات الاستخدام والسيناريوهات.** **المتطلبات المختلف لأصحاب المصلحة.** **التعامل مع المتطلبات الوظيفية والنوعية على حد سواء** **تصميم معمارية البرمجيات :** **【1 】 -عملية تصميم بنية البرنامج:** **تصميم هندسة البرمجيات غير مدعوم حتى الآن بمنهجية عالمية، ولا يزال صناعة جديدة جدًا. نظرًا للفهم الشخصي لعملية تصميم هندسة البرمجيات الصناعية، فإن المستوى الشخصي محدود، للإشارة فقط:** **-1 تحليل الأعمال: تحليل استراتيجية العمل ، والمخطط ، ووظيفة العمل وعملية الصناعة المستهدفة ، واقترح أن بعض هذه الوظائف يمكن معالجتها بواسطة تقنية المعلومات ، ويمكن الحصول على المشكلات التي يتعين حلها بواسطة تقنية المعلومات من خلال التحليل.** **-2 تصميم الحل: وفقًا لاستراتيجية العمل ، شكل حلول معلوماتية للصناعة. إنه مجموعة نظام ، وفي نفس الوقت يوضح العلاقة الداعمة بين الأنظمة.** **-3 تصميم وظيفة النظام: توضيح قائمة وظائف نظام المعلومات ومستوى الوظيفة (المستويات ، مثل طبقة اتخاذ القرار بالخبرة ، ووظيفة الإدارة ، ووظيفة تشغيل الأعمال ، وما إلى ذلك) ، وتجزئة الوظائف في هذه المستويات ، وتشكيل واحدة وفقًا للوظيفة وخصائص التطبيق أو أنظمة فرعية متعددة. ** **-4تصميم معمارية النظام: تعبير واضح عن دعم تكنولوجيا المعلومات لنظام معين ، والتعبير عن العلاقة الهرمية والوظيفة ، والعناصر الأساسية التقنية** **-5تصميم النظام الفني: تصميم واجهة النظام ، تخزين البيانات ، المسار التقني ، تجريد النشر والتنفيذ العملية الشاملة** **【2 】 - تصميم معماري شامل للنظام:** **تعتبر البنية العامة للنظام مهمة للغاية ، لكنها ليست كلها متشابهة من حيث التعبير. فيما يلي بعض أنماط بنية النظام الشائعة الاستخدام للرجوع إليها:** **ASSF- 1خدمة الوصول (بيز) - التمويل القياسي: Access-service )وظيفة الأعمال) - قياسي - أساسي ، والذي يعبر عن جميع مستويات بنية النظام ، ولكن يجب شرح وضع تطبيق النشر بشكل منفصل.** **-2 وضع على مستوى الإدارة التعبير عن الوظائف المستخدمة من طبقة تشغيل طبقة إدارة طبقة صنع القرار. يكون التعبير عن وظائف النظام أكثر وضوحًا، وله تأثير أفضل في الوصول إلى فهم متسق مع العملاء ** **أنا شخصياً أوصي بنموذج ASSF باعتباره الهيكل الرئيسي، وفي نفس الوقت قم بصياغة وضع الموقع ووضع 3 مستوى الإدارة لشرح النظام للتعبير عن بنية النظام من جميع المستويات.** **\[3\] - تصميم توزيع البيانات في معمارية النظام:** **في الأنظمة واسعة النطاق، يعد تصميم توزيع البيانات مهمًا للغاية. الاستراتيجيات الستة الشائعة لتنظيم تصميم توزيع البيانات هي للإشارة فقط:** **مخطط مستقل: عندما يتكون نظام كبير من عدة أنظمة صغيرة ذات صلة، وأنظمة صغيرة مختلفة لها تعريفات مختلفة لمخطط قاعدة البيانات. يتميز الوضع المستقل بإمكانية إدارة عالية وانخفاض مستوى الاتصال.** **تتركز: يجب أن يدعم النظام الكبير الوصول من أماكن مختلفة، أو يتكون النظام من عدة أنظمة صغيرة مختلفة، وتكون البيانات مركزية ومخزنة بتنسيق موحد. سهولة الإدارة واتساق البيانات العالي** **تقسيم: مقسم إلى تحليل أفقي وتقسيم رأسي. عندما يقدم النظام \"نفس الخدمات\" \"للمستخدمين الموزعين على نطاق واسع\" ، غالبًا ما يتم استخدام استراتيجية التقسيم الأفقي. الأقسام العمودية هي فواصل ميدانية وهي أقل استخدامًا بشكل عام. تم اعتماد طريقة التقسيم، وقابلية التوسع جيدة.** **نسخ: في النظام الموزع بأكمله، يتم تخزين نسخ متعددة، ويتم الحفاظ على اتساق البيانات بين نسخ البيانات المتعددة بواسطة آلية معينة. يمكن لطريقة النسخ المتماثل تحسين موثوقية البيانات بشكل فعال** **مجموعة فرعية: المجموعة الفرعية\" هي طريقة خاصة لـ \"النسخ المتماثل\" ، أي تحتفظ العقدة بمجموعة فرعية ثابتة نسبيًا من البيانات بأكملها بسبب اعتبارات وظيفية أو غير وظيفية.** **اعادة تنظيم: تحتفظ عقد البيانات المختلفة بالبيانات في مخططات مختلفة بسبب الوظائف المختلفة التي يتعين دعمها - لكن البيانات هي نفسها بشكل أساسي. يتم تسليم إعادة التنظيم والمحافظة عليه بتنسيق \"معاد التنظيم\".** **لنلخص: في عملية التطبيق، قم بالتحليل وفقًا للتطبيق الفعلي، وحدد استراتيجية توزيع البيانات المناسبة ، أو استخدمها معًا. ستعمل إستراتيجية توزيع البيانات المناسبة على تحسين استقرار ووظيفة النظام بشكل كبير. يمكن استخدام العملية التالية لتحديد استراتيجية توزيع البيانات:** **وفقًا لخصائص تطبيق النظام، من خلال التحليل أعلاه ، يتم إزالة الاستراتيجيات غير القابلة للتطبيق ، ويتم تحديد استراتيجية توزيع البيانات المستخدمة وفقًا للنتيجة الإجمالية.في بعض الأماكن ، يمكن أيضًا استخدام الاستراتيجيات المدمجة.** **【 4】 -تصميم تكامل البيانات في بنية النظام:** **في تصميم بنية النظام، غالبًا ما نواجه مشكلة تكامل البيانات ومشاركة أنظمة أعمال متعددة، فيما يلي يشارك المحتوى ذي الصلة بتصميم تكامل البيانات.** **التركيز المادي للبيانات: قم بتجميع كافة البيانات وإدارتها بواسطة خادم قاعدة بيانات موحد لتحقيق وصول موحد للبيانات وكفاءة وصول عالية وتطبيقات تحليل القرار المناسبة لاستعلامات البيانات الكبيرة، وتتمثل عيوبها في ضعف الأداء في الوقت الفعلي وارتفاع المخاطر وطول الوقت.** **التركيز المنطقي: مناسب لأنظمة الأعمال الموزعة في أماكن متعددة منصة متكاملة موحدة تدرك مشاركة البيانات بين مختلف البيانات الموزعة ماديًا، ويمكنها الوصول إلى البيانات الموزعة في أماكن مختلفة في الوقت الفعلي ، وسرعة التنفيذ سريعة ، ومن عيوبها أنها تتأثر بنقل الشبكة. مناسب للأشياء الطويلة.** **على سبيل المثال، في تكامل معلومات العميل في صناعة المبيعات ، إذا كانت مركزية منطقيًا ، فستظل بيانات العميل موجودة في أماكن مختلفة ، ولكن يمكن الوصول إليها من خلال نظام أساسي لتكامل البيانات الموحد. إذا كانت مركزية ماديًا، فيمكن الوصول إليها من خلال قاعدة بيانات مركزية.** **يوصى بدمج مزايا المركزية المنطقية والمركزية المادية. في المرحلة الأولية من التنفيذ، تم اعتماد المركزية المنطقية لتحقيق الوصول الموحد ومشاركة البيانات بسرعة، ولتحقيق المركزية المادية للبيانات بشكل تدريجي مع حجم وصول كبير ومتطلبات منخفضة في الوقت الفعلي، وبالتالي تحسين كفاءة الوصول ، على غرار ذكاء الأعمال إستراتيجية تكامل البيانات التي تجمع بين تقنيات من أعلى إلى أسفل ومن أسفل إلى أعلى في التكنولوجيا.** **فيما يلي ثلاثة أنماط شائعة لتصميم تكامل البيانات:** **وضع اتحاد البيانات (Data Federation): منطق البيانات الموزعة مركزي ، والتطبيق يصل إلى البيانات عن طريق الوصول إلى قاعدة البيانات الافتراضية لمنصة التكامل. البيانات في حالات قاعدة بيانات مختلفة. في هذا الوقت، تعمل منصة تكامل البيانات كقناة وصول إلى البيانات** **وضع النسخ المتماثل للبيانات: استخدام أسلوب نسخ البيانات من خلال خدمة اتساق البيانات** **تحقيق تناسق البيانات لمصادر بيانات متعددة، وتحتفظ كل قاعدة بيانات بنسخة احتياطية مشتركة من البيانات** **ضع تكامل البيانات القائم على الواجهة (مستوى الواجهة): يتم مشاركة البيانات بين الأنظمة من خلال مهايئات الواجهة، والتي تعد أكثر ملاءمة للتطبيقات ذات الأداء العالي في الوقت الفعلي وحجم البيانات الصغير. يعد وضع الواجهة مناسبًا لتكامل البيانات في القسم والأوضاع المستقلة.** **في التطبيقات العملية، يمكن اختيار الاستراتيجيات المقابلة بمرونة وفقًا للخصائص.** **\[5\] - تصميم تكامل التطبيق:** **في تصميم بنية النظام، غالبًا ما تحتاج أنظمة متعددة إلى التفاعل مع التطبيقات. في هذا الوقت ، يلزم تصميم تكامل التطبيقات لتقديم العديد من مفاهيم تكامل التطبيقات الشائعة:** **)EAI: EAI تكامل تطبيقات المؤسسة) هو تكامل تطبيقات المؤسسة EAI هي طريقة وتقنية لدمج التطبيقات غير المتجانسة القائمة على منصات مختلفة ومع حلول مختلفة. تنشئ EAI الهيكل الأساسي لربط الأنظمة غير المتجانسة والتطبيقات ومصادر البيانات وما إلى ذلك عبر المؤسسة بأكملها، وتكمل المشاركة السلسة لتخطيط موارد المؤسسات، وإدارة علاقات العملاء ، ونظام إدارة المخاطر ، وقواعد البيانات ، ومستودعات البيانات ، والأنظمة الداخلية المهمة الأخرى داخل المؤسسة وضرورة تبادل البيانات. باستخدام EAI ، يمكن للشركات دمج تطبيقات المؤسسة الأساسية مع حلول الإنترنت الجديدة.** **MOM: يشير MOM إلى استخدام آليات تسليم رسائل تتسم بالكفاءة والموثوقية لتبادل البيانات المستقل عن النظام الأساسي ، وتكامل الأنظمة الموزعة بناءً على اتصال البيانات.** **SOA: البنية الموجهة للخدمة (SOA) هي نموذج مكون يربط وحدات وظيفية مختلفة (تسمى الخدمات) لتطبيق ما من خلال واجهات محددة جيدًا وعقود بين هذه الخدمات. يتم تعريف الواجهة بطريقة محايدة، ويجب أن تكون مستقلة عن النظام الأساسي للجهاز ونظام التشغيل ولغة البرمجة التي تنفذ الخدمة. هذا يسمح للخدمات المبنية في مختلف هذه الأنظمة بالتفاعل بطريقة موحدة وعالمية.** **تظهر استراتيجيات تفاعل تكامل التطبيقات الشائعة الاستخدام** **في عملية التطبيق الفعلية، لا توجد سوى الإستراتيجية الأكثر ملاءمة. لا توجد استراتيجية أفضل. يجب مراعاة تعقيد التنفيذ بشكل شامل. من الناحية النظرية، يعد وضع الناقل استراتيجية تفاعل تطبيق جيدة نسبيًا، والتي يمكن أن تحقق استقلالية كاملة للنظام الأساسي وإعادة استخدام الخدمة، ولكن من الصعب نسبيًا التحويل والصيانة، كما أنه يؤدي عن غير يقصد إلى زيادة تعقيد تكامل التطبيق. لذلك، من الضروري إجراء تقييم دقيق لإمكانية تطبيق مقياس التكامل واستراتيجية التكامل أثناء عملية الاختيار. إذا كان هناك نظامان فقط في مؤسسة يحتاجان إلى التفاعل، فقد يكون التشفير الثابت أيضًا استراتيجية قابلة للتطبيق للغاية.** **【6 】 -تصميم الواجهة:** **يعتبر تصميم الواجهة مسئولية مهمة لمهندس النظام، أولاً، توضيح عدة مفاهيم** **-1 التعاون لتحديد الواجهة!** **-2 يحدد النظام الفرعي أو التطبيق أن الواجهة خاطئة!** **تصميم هندسة البرمجيات -تصميم معماري:** **يمكن اعتبار التكتيكات الخاصة بإدراك سمات جودة البرمجيات بمثابة \"اللبنات الأساسية\" للتصميم، ومن خلال هذه اللبنات الأساسية، يمكن تصميم معمارية النظام بعناية.** **تسمى الأنماط المعمارية أيضًا بالأنماط المعمارية، وهي نتيجة الاختيار المناسب للتكتيكات.هذه النتائج الثابتة (الأنماط) لها قابلية عملية عالمية وقابلية لإعادة الاستخدام على مستويات تجريدية عالية المستوى.** **من خلال النموذج المعماري، يمكن للمهندسين المعماريين التعلم من تجارب الآخرين وإعادة استخدامها ومعرفة كيف يتم حل المشكلات المماثلة من قبل الآخرين. لكن لا تفكر في النمط كحل صعب، إنه مجرد طريقة لحل المشكلات. قال مارتن فاولر ذات مرة: \"الفرق بين النموذج ومكون الأعمال هو أن النموذج سوف يحفز تفكيرك.\"** **ستتم مناقشة النماذج المعمارية بمزيد من التفصيل في الأجزاء اللاحقة من هذا الفصل.** **-1 تطوير دورة حياة التسليم:** **طورت الصناعة مجموعة متنوعة من نماذج دورة حياة البرامج ، من بينها ، يتم وضع الهندسة المعمارية في موضع مناسب ، ويظهر نموذج دورة حياة التسليم التطوري النموذجي** **في نموذج دورة الحياة، يجب أن يتكرر التصميم المعماري تدريجياً من تحليل الطلب الأولي (يوضح السهم العكسي في الشكل 9-17 هذا). أي: من ناحية ، لا يمكنك البدء في تصميم البنية قبل أن تفهم متطلبات النظام ؛ من ناحية أخرى ، لا تحتاج إلى الانتظار حتى يتم جمع كل المتطلبات عند البدء في تصميم الهيكل لأول مرة. يتم \"تشكيل\" العمارة من خلال عوامل \"تعتمد على الهندسة المعمارية\" ، والتي تشير إلى عدد قليل من متطلبات جودة هدف الأعمال الرئيسية وذات الأولوية القصوى. يتم تحديد البنية من خلال عدد قليل من المتطلبات الأساسية وهي مستقرة بشكل أساسي في تكرارات الحلقة، وهي بمثابة البنية التحتية للتطور.** **-2 تصميم يحركه السمة:** **يؤكد النموذج أعلاه على أنه يجب إنشاء بنية البرنامج أولاً، ثم يتم استخدام الهيكل كهيكل عظمي، وبشكل متكرر على الهيكل العظمي، مما يؤدي إلى نمو جسم الجسم والدم تدريجياً. التصميم المستند إلى السمات (ADD) هو طريقة لتعريف بنية البرنامج. تبني هذه الطريقة عملية التحلل على سمات الجودة التي يجب أن يفي بها البرنامج. مدخلات إضافة هي: المتطلبات الوظيفية (عادة ما يتم التعبير عنها كحالات استخدام)، وشروط التقييد، ومتطلبات الجودة (مجموعة من سيناريوهات الجودة الخاصة بالنظام(.** **خطوات إضافة هي كما يلي:** **(1) حدد الوحدة المراد تحليلها. عادة يتطلب النظام بأكمله أن تكون المدخلات المذكورة أعلاه متاحة (قيود، متطلبات وظيفية ، متطلبات الجودة). ابدأ من النظام، ثم تحلل إلى أنظمة فرعية، وقم بتحليل الأنظمة الفرعية إلى وحدات فرعية.** **(2) قم بتحسين الوحدة وفقًا للخطوات التالية:** - **حدد برامج تشغيل البنية من مجموعة سيناريوهات الجودة والمتطلبات الوظيفية المحددة. لا يتم التعامل مع جميع المتطلبات على قدم المساواة، ولكن يتم تلبية المتطلبات الأقل أهمية عند تلبية أهم المتطلبات، أي أن هناك أولوية للمتطلبات المعمارية.** - **اختر نمطًا معماريًا يلبي عوامل القيادة المعمارية، وأنشئ (أو حدد) نمطًا بناءً على التكتيكات السابقة. الهدف هو إنشاء نمط معماري شامل يتكون من أنواع الوحدات.** - **إنشاء الوحدات النمطية وتعيين الوظائف وفقًا لحالات الاستخدام، باستخدام طرق عرض متعددة للعرض التقديمي.** - **حدد واجهة الوحدة الفرعية.** - **تحقق من صحة حالات الاستخدام وسيناريوهات الجودة، وقم بتحسينها بحيث تصبح قيود النمط الفرعي.** **(3) كرر الخطوات المذكورة أعلاه لكل وحدة تحتاج إلى مزيد من التحلل.** **-3تنظيم فريق التطوير حسب الهيكل:** - **بعد أن تكون المستويات القليلة الأولى من هيكل تفصيل الوحدة النمطية للبنية مستقرة نسبيًا، يمكن تعيين هذه الوحدات إلى فريق التطوير، والنتيجة هي عرض العمل. مثل أنظمة البرمجيات، يجب أن تسعى فرق التطوير أيضًا إلى تحقيق اقتران فضفاض وتماسك عالٍ. أي أن كل وحدة تشكل منطقة صغيرة خاصة بها (معرفة أو خبرة خاصة)، ولها واجهة واضحة مع وحدات أخرى. وبهذه الطريقة، يتم تقسيم الوحدات النمطية المختلفة إلى فرق تطوير مختلفة، والتي يمكن أن تقلل من تكلفة الاتصال بين فرق التطوير ، وضمن كل فريق تطوير ، لأنه يتعامل مع مشاكل في منطقة صغيرة ، من السهل إنشاء آلية اتصال فعالة ، على سبيل المثال ، لدى الأعضاء معرفة أساسية (أو تم الحصول عليها من خلال التدريب) في هذا المجال الصغير وتبادل معلومات صنع القرار.** - **في الوقت نفسه، يمكن تفصيل خطة المشروع بشكل أكبر بالتزامن مع تقسيم العمل بعد تحديد الهيكل، وعلى وجه الخصوص ، من الضروري تخطيط النقطة الزمنية لتوفير الواجهة لضمان التنسيق العام لتطوير المشروع.** **-4تطوير نظام الهيكل العظمي:** - **هناك دورتان في نموذج دورة حياة التسليم التطوري: الدورة الأولى هي تطوير بنية البرنامج من خلال التكرارات، والدورة الثانية هي تطوير الإصدار النهائي للتسليم من خلال التكرارات على أساس البنية. تطوير نظام الهيكل العظمي هو الخطوة الأولى في الدورة الثانية. هذه الخطوة هي تطوير نموذج أولي قابل للتشغيل (نظام هيكلي) يسترشد بالعمارة. أثناء تطوير نظام الهيكل العظمي، يجب الانتباه إلى التفاوض الكامل للواجهة، وذلك لتجنب الجزء الذي تم تطويره أولاً لإجبار الجزء التالي على تلبية متطلبات الواجهة غير المعقولة. بعد اكتمال نظام الهيكل العظمي، يمكن إجراء تطوير تدريجي عليه حتى يتم الانتهاء من تطوير البرنامج.** **-5 استخدام المكونات التجارية من أجل التنمية:** - **النموذج هو في الأصل حل لمشكلة معينة، لذلك، وفقًا لخصائص الطلب، يمكن أيضًا اختيار النموذج المقابل لتصميم الهندسة المعمارية، ويمكن استخدام المكونات التجارية المقابلة للنموذج لتطوير البرمجيات. على سبيل المثال، يمكن استخدام J2EE / EJB لتطوير أنظمة موزعة موجهة للكائنات.** - **هل تساءلت يومًا عن كيفية تصميم الأنظمة واسعة النطاق على مستوى المؤسسة؟ قبل البدء في تطوير البرامج الرئيسية، يجب علينا اختيار بنية مناسبة لتزويدنا بالسمات الوظيفية والجودة المطلوبة. لذلك، قبل تطبيقها على تصميمنا ، يجب أن نفهم البنيات المختلفة.** **ما هو النمط المعماري؟** - **نمط الهندسة هو حل عالمي وقابل لإعادة الاستخدام للمشكلات الشائعة في هندسة البرمجيات في سياق معين. تشبه الأنماط المعمارية أنماط تصميم البرامج، ولكن لها نطاق أوسع.** - **في هذه المقالة، سأشرح بإيجاز الأنماط المعمارية العشرة التالية واستخداماتها ومزاياها وعيوبها.** - **وضع الطبقات** - **نموذج خادم العميل** - **وضع السيد والعبد** - **وضع مرشح الأنابيب** - **نموذج وسيط** - **وضع نقطة إلى نقطة** - **وضع ناقل الحدث** - **نموذج تحكم عرض النموذج** - **نمط السبورة** - **وضع التفسير** - **-1وضع الطبقات** - **يمكن استخدام هذا الوضع لإنشاء برامج يمكن أن تتحلل إلى مجموعات مهام فرعية، كل مهمة فرعية تكون على مستوى معين من التجريد. تقدم كل طبقة خدمات للطبقة العليا التالية.** - **فيما يلي الطبقات الأربع الأكثر شيوعًا لنظم المعلومات العامة.** - **طبقة العرض التقديمي (تسمى أيضًا طبقة واجهة المستخدم) طبقة التطبيق (تسمى أيضًا طبقة الخدمة) طبقة منطق الأعمال (تسمى أيضًا طبقة المجال) طبقة الوصول إلى البيانات (تسمى أيضًا طبقة المثابرة(** **استعمال** **تطبيقات سطح المكتب العادية.\ تطبيق ويب للتجارة الإلكترونية.** **-2 نموذج خادم العميل** - **يتكون هذا النموذج من طرفين ؛ خادم وعدة عملاء. سيوفر مكون الخادم خدمات للعديد من مكونات العميل. يطلب العميل خدمات من الخادم، ويوفر الخادم الخدمات ذات الصلة لهؤلاء العملاء. بالإضافة إلى ذلك، يستمر الخادم في الاستماع لطلبات العميل.\ استعمال** - **التطبيقات عبر الإنترنت مثل البريد الإلكتروني ومشاركة المستندات والخدمات المصرفية.** **-3وضع السيد والعبد** - **يتكون هذا النموذج من طرفين ؛ السيد والعبد. يقوم المكون الرئيسي بتوزيع العمل بين نفس مكونات الرقيق، ويحسب النتيجة النهائية من النتائج التي تم إرجاعها من مكونات الرقيق.\ استعمال** - **في النسخ المتماثل لقاعدة البيانات، تعتبر قاعدة البيانات الرئيسية المصدر الرسمي، ويتم مزامنة قاعدة البيانات التابعة معها.\ الأجهزة الطرفية (برنامج تشغيل العبد الرئيسي) المتصلة بالحافلة في نظام الكمبيوتر.** **-4 نمط مرشح الأنابيب** - **يمكن استخدام هذا النموذج لبناء أنظمة تولد ومعالجة تدفقات البيانات. يتم تضمين كل خطوة معالجة في مكون التصفية. البيانات المراد معالجتها تمر عبر خط الأنابيب. يمكن استخدام هذه الأنابيب لأغراض التخزين المؤقت أو التزامن.\ استعمال** - **مترجم. يقوم المرشح المستمر بإجراء التحليل المعجمي والتحليل والتحليل الدلالي وتوليد الكود.\ سير العمل في المعلوماتية الحيوية.** - - **-5 نموذج الوساطة** - **يتم استخدام هذا الوضع لإنشاء نظام موزع مع مكونات منفصلة. يمكن أن تتفاعل هذه المكونات مع بعضها البعض من خلال مكالمات الخدمة عن بعد. المكون الوكيل مسؤول عن تنسيق الاتصال بين المكونات.** **ينشر الخادم وظائفه (الخدمات والميزات) إلى الخادم الوكيل. يطلب العميل الخدمة من الوكيل، ويقوم الوكيل بإعادة توجيه العميل من السجل الخاص به إلى الخدمة المناسبة.\ استعمال** **برنامج وسيط الرسائل، مثل apache activemq و apache kafka و rabbitmq و jboss.** **-6 وضع نقطة إلى نقطة** **في هذا الوضع، يسمى مكون واحد بمكون النظير. يمكن للنظير أن يعمل كعميل ، أو يطلب خدمات من أقرانه الآخرين ، أو أن يعمل كخادم يقدم خدمات لنظراء آخرين. يمكن للزميل أن يعمل كعميل أو خادم أو كليهما، ويمكنه تغيير دوره ديناميكيًا بمرور الوقت.\ استعمال شبكات مشاركة الملفات، مثل نوتيلا و g2)\ بروتوكولات الوسائط المتعددة ، مثل P2PTV و pdtp.** **-7وضع ناقل الحدث** **يتعامل هذا الوضع بشكل أساسي مع الأحداث ويحتوي على 4 مكونات رئيسية؛ مصدر الحدث، ومستمع الحدث، والقناة وناقل الحدث. ينشر المصدر الرسالة إلى قناة معينة في ناقل الحدث. المستمعون يشتركون في قنوات معينة. سيتم إخطار المستمع بالرسائل التي تم نشرها على القنوات التي اشتركت فيها من قبل.\ استعمال تطوير Androidوخدمة الإعلام** **-8 نموذج تحكم عرض النموذج** **يقسم هذا الوضع ، المعروف أيضًا باسم وضع mvc ، التطبيق التفاعلي إلى 3 أجزاء ، مثل:** **يحتوي النموذج على الوظائف والبيانات الأساسية\ معلومات عرض العرض للمستخدم (قد يتم تحديد طرق عرض متعددة( يعالج المتحكم الإدخال من المستخدمين.** **يتم ذلك لفصل التمثيل الداخلي للمعلومات عن طريقة عرض المعلومات وقبولها للمستخدم. يفصل بين المكونات ويسمح بإعادة استخدام التعليمات البرمجية بكفاءة.\ استعمال بنية تطبيقات شبكة الويب العالمية بلغات البرمجة الرئيسية.\ أطر عمل الويب مثل django والسكك الحديدية.** **9 - نمط السبورة** **هذا الوضع مفيد للغاية للمشاكل التي لا تعرف استراتيجية الحل القطعي. يتكون نمط السبورة من 3 أجزاء رئيسية.** **Blackboard- ذاكرة عالمية منظمة تحتوي على كائنات من مساحة الحل\ مصدر المعرفة - وحدة مخصصة مع ممثلها الخاص\ التحكم في مكونات تحديد الوحدات وتكوينها وتنفيذها.** **يمكن لجميع الأجزاء دخول السبورة. قد يقوم المكون بإنشاء كائنات بيانات جديدة تمت إضافتها إلى السبورة. تبحث المكونات عن أنواع معينة من البيانات على السبورة، وقد تجد هذه البيانات عن طريق مطابقة الأنماط مع مصادر المعرفة الموجودة.\ استعمال** **التعرف على الكلام\ تعريف المركبة وتتبعها\ تعريف بنية البروتين\ تفسير إشارة السونار.** **-10 وضع المترجم** **يستخدم هذا الوضع لتصميم مكونات تشرح البرامج المكتوبة بلغات خاصة. تحدد بشكل أساسي كيفية حساب خطوط البرنامج، تسمى الجمل أو التعبيرات المكتوبة بلغة معينة. الفكرة الأساسية هي أن يكون لديك فصل لكل رمز للغة.\ استعمال** **لغة استعلام قاعدة البيانات، مثل sql.\ اللغة المستخدمة لوصف بروتوكول الاتصال.** **1.أنواع المعالجات** **هناك عدة شركات تقوم بتصنيع المعالجات نذكر منها على سبيل المثال لا الحصر:** - **شركة آي بي إم International Business Machines (IBM) المشهورة بصناعة الحواسيب وأنظمة التشغيل** - **شركة إنتل ( (Intelوهي الرائدة في هذا المجال، وقد أثبت إحدى الدراسات أن شركة إنتل وحدها تنتج ما يعادل 80% من جملة معالجات الحاسوب الشخصي** - **موتورولا: وهي المنافس القوي لإنتل وتعرف معالجاتها بالRISC** - **إي إم دي(American Mega Trend (AMD))** - **سايركس Cyrix** **وتقسم المعالجات إلى نوعين رئيسين هما:** - **مجموعة التعليمات المعقدة CICC (Complex Instruction Set Computer) ومن أمثلتها معالجات إنتل و International Business Machines (IBM) و VAX** **مجموعة التعليمات المختصرة RISC (Reduced Instruction Set Computer) ومن أمثلتها SPARK و MIPS و Alpha. والجدول التالي يوضح بعض خصائص كل نوع من الأنواع السابقة.** **جدول رقم (1) أنواع المعالجات** **خصائص المعالج RISC** **تنفيذ تعليمة في كل دورة.** **إجراء عمليات من مسجل لمسجل.** **طرق العنونة لديها بسيطة وقليلة.** **عدد تعليماتها بسيطة وقليلة.** **التصميم يعتمد على المعدات والتوصيلات ولا يعتمد على الشفرات ( No Microcode)** **شكل التعليمات ثابتة** **المترجم يحتاج إلى جهد ووقت كبيرين** **البنية الداخلية للمعالج** **سنبدأ نقاشنا أولا بالخصائص المشتركة للمعالجات مثل المسجلات العامة ومسجلات الأغراض الخاصة، ومسجلات القطاعات، وكيفية عنونة الذاكرة وأجهزة الإدخال والإخراج. ثم بعد ذلك نذكر الخصائص الخاصة بكل معالج ابتداء بالمعالج 8088.** **تتألف المعالجات من عدد كبير من الترانزستورات. وإذا نظرنا نظرة عميقة داخل المعالج ونظرنا لما يقوم به المعالج نجد أن ذلك كما ذكرنا من قبل ينحصر في الآتي:** **معالجة البيانات مثل العمليات الحسابية كالجمع والطرح والعمليات المنطقية كالمقارنة بين الأعداد.** **تخزين البيانات.** **تحريك البيانات.** **التحكم.** **وعلى هذا الأساس، يمكن توضيح أجزاء المعالج كما بالشكل رقم (2-1). وعلى كل حال يجب على المعالج أن يتخذ بمساعدة التعليمات -القرارات الصحيحة. إن هذه الترانزستورات موزعة في شكل مجموعات داخل المعالج لتقوم كل مجموعة منها بنوعية معينة من الأعمال، فمثلاً أحد المجموعات مخصصة للمقارنة بين الأرقام و أخرى لاتخاذ القرارات في حالة معينة وهكذا، وفي كل مجموعة تختلف عدد وطريقة تجميع الترانزستورات مما يؤثر على وظيفتها، ويستطيع الحاسب باستخدام هذه المجموعات المختلفة أن يقوم بكل العمل الذي يطلب منه. إن كل \"مجموعة\" من هذه المجموعات تسمى \"بوابة منطقية\" وتختلف البوابات المنطقية بحسب الوظيفة التي تؤديها وعدد الترانزستورات التي تحتويها. ويصنع المعالج بوضع هذه المجموعات وتوصيلها مع بعضها بالشكل المطلوب، وتسمى هذه المجموعات بالدوائر المتكاملة Integrated Circuits(IC).** **وكلما زاد عدد الترانزستورات التي تتكون منها الدوائر المتكاملة كلما كان بإمكانها تأدية وظائف أكثر تعقيداً. إن المعالج قادر على تنفيذ عدد كبير من الأعمال و ذلك لأنه يقسم أي عمل يقوم به إلى أقسام صغيرة تسمى بالتعليمات، ويعتمد المعالج على البرنامج ليصف له الطريقة التي ينفذ بها كل تعليمه حتى ينجز العمل المطلوب.** **وينفذ المعالج عمله في مرحلتين هما: الإحضار والتنفيذ، ويمكن تلخيص ذلك في الخطوات التالية:** **إحضار التعليمة من الذاكرة** **إحضار المعاملات اللازمة لتنفيذ التعليمة** **تنفيذ التعليمات في وجود المعاملات** **تخزين النتائج في المكان المناسب.** **وينفذ المعالج 8088 هذه الخطوات الواحدة تلو الأخرى. ومن أجل زيادة سرعة المعالجة، يمكن تطوير بنية المعالج الداخلية بحيث يمكن تنفيذ أكثر من عمل في وقت واحد. وهذه التقنية تسمى بخطوط الأنابيب حيث ينفذ مجموعة من التعليمات على التوازي، وذلك بفضل تقسيم المعالج إلى عدة وحدات، وتؤدي كل وحدة عملا ينفصل عن الآخر تماما. المعالجان 8088/8086 يحتويان على وحدتين هما:** **وحدة المواجهة** **ووحدة التنفيذ** **ولو قارنا عمل هذا المعالج مع المعالجات السابقة مثل المعالج 8080 باستخدام هذه التقنية الجديدة لعرفنا فائدة هذا النظام، ولاحظنا أن المعالج في الحالة الأولى يعمل بنسبة 50% فقط حيث يقضي معظم وقته في الانتظار إلى حين فراغ المعالج من تبادل المعلومات مع وحدات الإدخال/الإخراج وفراغ الناقل. أما المعالج 8088 فيعمل بفعالية تصل إلى نسبة 100% حيث يعمل المعالج والناقل بدون توقف، لأن كل وحدة منفصلة تماما عن الآخر، إلا في الحالات التي تعتمد فيها بعض العمليات أو التعليمات على بعضها.** **. بنية المعالج ومكوناته الرئيسة** **يوجد داخل المعالج ملايين الترانزستورات التي تقوم بمجملها بتأدية عمل المعالج ، وكما هو معلوم فإن هذه الملايين من الترانزستورات موضوعة كلها في مساحة صغيرة جداً أي أن بين الترانزستور والأخر مساحة قليلة وهذه الوحدات موصلة مع بعضها البعض بأسلاك صغيرة جداً لتضمن تدفق البيانات** **بين هذه الترانزستورات. ويقاس سمك هذه الأسلاك بالمايكرون. وسماكة هذه الأسلاك هي التي تحدد بنية المعالج ، وكلما كانت بنية المعالج أصغر كلما كان استهلاك الطاقة أقل و كانت الحرارة الناتجة من المعالج أقل مما يخفف من مشاكل التبريد. وكذلك يمكننا البنية الصغيرة من استخدام فولتية أقل للتيار المار في هذه الأسلاك. وتقاس رتب المعالجات بالمايكرون وهو وحدة قياس للطول تساوي واحد من المليون جزء من المتر. والمعروف أن المعالج بنتيوم يصنف من رتبة 0.5 مايكرون ( أي نصف مايكرون) بينما المعالج بنتيوم MMX يصنف رتبته ب 0.35 مايكرون. و يستعمل بنتيوم الثاني بنية 0.25 مايكرون. و لقد نجحت شركة Intel بفضل نوع من التقنيات الجديدة بتطوير طريقة لصنع معالجات برتبة 0.13 مايكرون، وهذا قد يفتح الباب لبنيات أصغر ، فكلما صغرت البنية كلما تمكنا من وضع عدد أكبر من الترانزستورات في مساحة أقل.** **يتكون المعالج من الأجزاء الرئيسية التالية انظر الشكل رقم (2-1):** 1. **وحدة الإدخال والإخراج : تتحكم وحدة الإدخال والإخراج بتسيير المعلومات من وإلى المعالج ، وهي الجزء الذي يقوم بطلب البيانات والتنسيق مع الذاكرة العشوائية في تسيير البيانات. إن أحد الأسباب التي تجعل وحدة الإدخال والإخراج مهمة هي احتوائها على الذاكرة المخبئية من المستوى الأول (L1)** **وحدة التحكم : هي الوحدة التي تتحكم في تدفق سريان البيانات داخل المعالج وتنسق بين مختلف أجزاء المعالج للقيام بالعمل المطلوب وتتولى مسؤولية التأكد من عدم وجود أخطاء في الإرسال والاستقبال. وتقوم هذه الوحدة أيضاً بتنفيذ برامج التكرار والتفرع والشروط، كما تتحكم هذه الوحدة أيضا بتردد المعالج.** 2. **وحدة الحساب والمنطق: وتنقسم إلى :** **وحدة الفاصلة العشرية: إنه من الصعوبة بمكان على المعالج أن يقوم بحساب أعداد الفاصلة العشرية ( وهي الأعداد التي بها فاصلة عشرية ومن أمثلتها 2.5565 و 8856.36532 و 0.220003 ) لأنه في هذه الحالة سوف يستهلك الكثير من قوة المعالجة في حساب عملية واحدة. ووحدة الفاصلة العشرية هي وحدة موجودة داخل المعالج ومتخصصة في العمليات الحسابية الخاصة بالفاصلة العشرية، وتلعب هذه الوحدة دوراً رئيسياً في سرعة تشغيل البرامج التي تعتمد بشكل كبير على الأعداد العشرية وهي في الغالب الألعاب الثلاثية الأبعاد وبرامج الرسم الهندسي والأوتوكاد. وتساعد قوة وحدة الفاصلة العشرية في تسريع الألعاب ثلاثية الأبعاد، رغم قلة دور المعالج في السنوات الأخيرة بفضل ظهور بطاقات الرسم ذات السرعة الكبيرة، مما قلل من الاعتماد على المعالج المركزي. توجد وحدة الفاصلة العشرية في المعالجات 80486 وما بعدها داخل المعالج (ما عدا المعالج 80486 إس اكس) ، وقد كانت توضع في المعالجات 80386 وما قبله خارج المعالج وتسمى math co- processor أي \" مساعد المعالج الرياضي\". إن وضع وحدة الفاصلة العشرية خارج المعالج (على اللوحة الأم) يجعلها أبطأ، لذلك نجد جميع المعالجات اليوم توضع فيها وحدة فاصلة عشرية متطورة. وسنتناول هذا الموضوع بمزيد من التفاصيل بعد نهاية هذه الفقرة.** **وحدة الأعداد الصحيحة: وتختص هذه الوحدة بالقيام بحسابات الأعداد الصحيحة، وتستعمل الأرقام الصحيحة في التطبيقات الثنائية الأبعاد مثل وورد وإكسل وبرامج الرسم الثنائية الأبعاد كما تستعمل في معالجة النصوص. ويعتبر قوة وحدة الأعداد الصحيحة مهمة جداً لأن معظم المستخدمين يستعملون التطبيقات التقليدية في أغلب الأوقات.** **المسجلات (Register): المسجلات هي عبارة عن نوع من الذاكرة سريعة جداً و تستعمل لتخزين الأرقام التي يريد المعالج أن يجري عليها حساباته. فالمعالج لا يمكنه عمل أي عملية حسابية إلا بعد أن يجلب الأرقام المراد إجراء العمليات عليها إلى المسجلات. ومكان هذه المسجلات وحدة الحساب والمنطق المذكورة سابقاً. إن حجم المسجلات مهم لأنه يحدد حجم البيانات التي يستطيع الحاسب إجراء الحسابات عليها، ويقاس حجم المسجلات بالبت ( البت كما ذكرنا سابقا عبارة عن خانة واحدة تخزن فيها رقم ثنائي واحد فقط إما صفراً أو واحداً) بدلاً من البايت لصغر حجمها. وبناءا على ذلك فإن جميع معالجات 80486 وما بعدها هي من المعالجات عيار 32 خانة وليس 64 خانة، ولكن ظهر بعده معالجات من فئة 64 خانة ومن المتوقع ظهور معالجات فئة 128 خانة خلال السنوات القادمة. الشكل رقم (2-5) يوضح بعضا من المسجلات الداخلية للمعالج.** **الذاكرة المخبئية (Cache Memory) : هي ذاكرة صغيرة تشبه الذاكرة العشوائية إلا أنها أسرع منها وأصغر وتوضع على ناقل النظام بين المعالج والذاكرة العشوائية. في أثناء عمل المعالج يقوم هذا الأخير بقراءة وكتابة البيانات والتعليمات من وإلى الذاكرة العشوائية بصفة متكررة. والمشكلة الحقيقية هي أن الذاكرة العشوائية تعتبر بطيئة بالنسبة للمعالج والتعامل معها مباشرة يبطئ الأداء. فلتحسين** **الأداء لجأ مصممو الحاسب إلى وضع هذه الذاكرة الصغيرة بين المعالج والذاكرة العشوائية مستغلين أن المعالج يطلب نفس المعلومات أكثر من مرة في أوقات متقاربة فتقوم الذاكرة المخبئية بتخزين المعلومات الأكثر طلباً من المعالج مما يجعلها في متناول المعالج بسرعة حين يطلبها. عندما يريد المعالج جلب بيانات أو تعليمات فإنه يبحث عنها أولاً في الذاكرة L1 فإن لم يجدها (فشل المعالج في إيجاد المعلومات التي يريدها من الذاكرة العشوائية يسمى فقدان الكاش \"cache miss\" ، أما نجاحه في الحصول عليها من الذاكرة المخبئية يسمى الحصول على الكاش \"cache hit\" ) بحث عنها في L2 فإن لم يجدها جلبها من الذاكرة العشوائية.** **إن حجم هذه الذاكرة وسرعتها شيء مهم جداً ولها تأثير كبير على أداء المعالج ونستعرض هنا كلا العاملين.** **حجم الذاكرة المخبئية: كانت معالجات 80386 تعمل بدون أي ذاكرة مخبئية ، أما في المعالجات التي تليها، فهناك أكثر من ذاكرة مخبئية واحدة و تسمى كل منهما مستوى من الذاكرة :** **ذاكرة المستوى الأول ورمزها. L1** **ذاكرة المستوى الثاني ورمزها. L2** **موقع الذاكرة المخبئية داخل المعالج أو على اللوحة الأم وهي أسرع أنواع الذاكرة ولكن حجمها صغير. المعالجات التي تحتوي على هذه الذاكرة هي معالجات 80386 DX وما بعدها، ما عدا معالجات سيليرون الأصلية ومعالجات AMD الحديثة فقط. والملاحظ هو أن ذاكرة المستوى الأول حجمها أقل من ذاكرة المستوى الثاني وهذا يرجع إلى أن ذاكرة المستوى الأول غالية الثمن جداً و سريعة جداً حيث أنها تعطي المعالج البيانات التي يطلبها بدون تأخير. ويوجد في كل نوع من المعالجات حجم يختلف من مستوى لآخر، وكلما كانت الذاكرة المخبئية أكبر كان ذلك أفضل لأنها بذلك تخلص المعالج من الدخول في حالة الانتظار وتسهل عليه عملية الحصول على البيانات التي يريدها بأسرع وقت ممكن. وبما أن المعالج يستقبل بيانات وتعليمات ، ففي بعض المعالجات تنقسم الذاكرة المخبئية لقسمين قسم للبيانات و قسم للتعليمات.** **سرعة الذاكرة المخبئية: والذاكرة المخبئية كأي ذاكرة أخرى لها تردد تعمل عليه وكلما كانت تعمل على تردد أسرع كلما كان أفضل ، وترددها يعتمد على موقعها :** - **عندما تكون الذاكرة المخبئية على ناقل النظام يكون ترددها هو نفس سرعة الناقل.** - **الذاكرة المخبئية الموضوعة داخل المعالج تعمل عادة بنصف سرعة المعالج (المعالجات بتردد 333ميجاهرتز أو أقل) أو نفس سرعة المعالج (معالجات سيليرون و زيون وبنتيوم برو )** **إن وضع الذاكرة المخبئية داخل المعالج له فائدتان : الأولى هي السرعة أما الثانية فتبرز في حالة تركيب أكثر من معالج واحد على اللوحة الأم لأن كل معالج له ذاكرة عشوائية الخاصة به حتى لا تتزاحم المعالجات على الذاكرة المخبئية.** **4. المسجلات الداخلية** **قبل البدء في كيفية معالجة البرامج لا بد من تفصيل المسجلات الداخلية التي يستخدمها المبرمج ووظائف وأهداف هذه المسجلات ابتداء من المعالج 8086 وانتهاء بالمعالج بنتيوم 4. هذه المسجلات تعتبر واضحة للمبرمج لأنه يستخدم هذه المسجلات أثناء البرمجة وتحدد حسب التعليمة. بعض المسجلات كما سنرى لاحقاً تعتبر غير منظورة لأنها لا تعنون مباشرة أثناء برمجة التطبيقات لكنها تستخدم بطريقة غير مباشرة.** **المعالجات من طراز 80286 والأحدث منها هي التي تستعمل هذه المسجلات غير المنظورة للتحكم في نظام النمط المحمي وتشغيله.** **الشكل رقم (2-8) يوضح مسجلات المعالج 8086 وحتى المعالج بنتيوم 4. المعالجات 80286 و 8088 و 8086 تحتوي على مسجلات داخلية عيار 16 خانة، أما المعالجات ابتداء من 8086 وحتى 80286 فهي متوافقة تماماً مع المعالجات 80386 وحتى بنتيوم 4.** **1.4 مسجلات الأغراض العامة** - **Accumulator (EAX): عبارة عن مسجل ذا 32 خانة أو 16 خانة مثل (AX) أو ثمانية خانات مثل AL و AH ويستخدم لأغراض العمليات الحسابية والمنطقية مثل الضرب والقسمة وعمليات الإدخال/والإخراج وعمليات التخزين المؤقت.** - **مسجل القاعدة (Base Register) EBX: عبارة عن مسجل ذا 32 خانة، و BX 16 خانة و BH, BL 8 خانات ويستخدم في عمليات العنونة والتخزين.** - **(Register Count) ECX: مسجل العد 32 خانة و CX 16 خانة ، و CL أو CH 8 خانات ويستخدم في عمليات العد والتكرار.** - **مسجل البيانات (Data Register) EDX: مسجل البيانات32 خانة و DX 16 خانة ، و DL أو DH 8 خانات، ويستخدم في عمليات الإدخال/والإخراج ، وعمليات الضرب والقسمة، وعمليات التخزين.** - **2.4 المسجلات الخاصة** **المسجلات الخاصة تشتمل على مسجلات التأشير والفهرسة والراية، والحالة مثل EFLAG , ESP, EIP, ESI, EDI, EBP ، وهذه المسجلات عيار 32 خانة و 16 خانة، ومسجلات القطاعات DS, CS, ES, SS, FS, GS وهذه المسجلات عيار 16 خانة.** **مسجلات التأشير:** **مؤشر التعليمات Instruction Pointer(EIP): ، وهو يشير دائما إلى موضع التعليمة التالية المطلوب تنفيذها، والتي تخزن في قطاع التعليمات، وهو يشبه مسجل عداد البرنامج في المعالجات الأخرى.** **مؤشر المكدس (ESP )Stack Pointer: وهو من مسجلات التأشير ويخزن فيه مقدار الإزاحة داخل قطاع المكدس.** **مؤشر القاعدة Base Pointer (BP)و(EBP) : وهو مسجل عيار 32 خانة و 16 خانة BP وهو أيضا من مسجلات التأشير ويخزن فيه مقدار الإزاحة داخل قطاع المكدس، وقطاعات أخرى، وعنوان القاعدة. ولا يوجد مسجل عيار 8 خانة من هذه المسجلات.** **3.4 مسجلات الفهرسة** **مفهرس المصدر Source Index (SI) و(ESI) : وهو من مسجلات الفهرسة، ويخزن فيه مقدار الإزاحة داخل قطاع البيانات للبيانات المراد قراءتها.** **مفهرس المستقبل Destination Index (DI) و (EDI) : وهو أيضا من مسجلات الفهرسة، ويخزن فيه مقدار الإزاحة داخل قطاع البيانات للبيانات المراد تخزينها(كتابتها).** **EFLAGS: (ويسمى بمسجل الراية) وهو يشير إلى حالة المعالج كما يتحكم في عملياته المختلفة**. 4. **مسجلات القطاعات** **عبارة عن مسجلات إضافية تسمى بمسجلات القطاعات حيث تقوم بتوليد عناوين ذاكرة عند اتحادها مع مسجلات المعالج. وعادة هناك أربعة أو ستة مسجلات للمعالج حسب الفئة. وتقوم هذه المسجلات بوظائف تختلف تماماً عند العمل في النمط الحقيقي مما هي عليها عند العمل في النمط المحمي.** **CS)) Code Segment. قطاع الشفرة، وهو المقطع الذي يخزن فيه تعليمات البرنامج ، ويحتوي على عنوان بداية مقطع التعليمات في الذاكرة** **DS)) Data Segment. قطاع البيانات، وهو المقطع الذي تخزن فيه البيانات اللازمة للبرنامج من ثوابت ومتغيرات، ويشير إلى عنوان بداية مقطع البيانات في الذاكرة** **ES)) Extra Segment. القطاع الإضافي، حيث يضاف هذا المقطع إلى مقطع التعليمات عند الحاجة لذلك مثل عدم استيعاب مقطع التعليمات لتعليمات البرنامج، ويحتوي على عنوان بداية المقطع الإضافي في الذاكرة** **SS)) Stack Segment قطاع المكدس، وهو المقطع الذي تخزن فيه البيانات بشكل مؤقت ومن ثم استرجاعها عند الحاجة، ويحتوي على عنوان بداية مقطع المكدس (الحزمة) في الذاكرة.** **FS و GSوهما مسجلان إضافيتان لتوفير مقطعين إضافيتين في معالجات 80386 و 80486 وبنتيوم وما بعدها.** **مساعد المعالج الرياضي (المعاون الرياضي)** **بدأ العمل بمساعد المعالج الرياضي لعائلة إنتل بالشريحة 8087 وكان ذلك للعمل جنباً إلى جنب مع المعالج 8086. ثم استمر العمل بالمساعدات 80287 و 80387DX و 80487SX والذي استخدم مع المعالج 80486SX. المعالجان 80486DX وبنتيوم والتي تليهما يحتويان على مساعد معالج رياضي مضمن في الشريحة. لكن يجب الانتباه عند التعامل مع بعض المعالجات المكافئة للمعالج 80486 مثل معالجات شركة IBM و Cyrix فإنهما لا يحتويان على مساعد المعالج الرياضي.** **إن مجموعة التعليمات وطريقة برمجة هذه المعالجات المساعدة لا تختلف كثيرا عن بعضها البعض. والفرق الأساس هو أن كل مساعد قد صمم ليعمل مع معالج محدد. إن عائلة المساعد الرياضي التي تأخذ الرقم 80X87 قادرة على القيام بعمليات الجمع والطرح والضرب والقسمة و حساب الجذر التربيعي وحساب جيب الزاوية وظلها واللوغريتمات\...الخ.** **أنواع البيانات تشمل 16 خانة و 32 خانة و64 خانة للأرقام ذات العلامة. و18 خانة للتحويل من النظام الثنائي إلى العشري و32 خانة و64 خانة و80 خانة لأرقام الفاصلة العائمة. العمليات التي ينفذها المساعد الرياضي 80X87 تعتبر أسرع بكثير مما هو عليه الحال عند تنفيذها بواسطة مجموعة تعليمات المعالج العادي.** **بنية الشريحة 80X87** **لقد تم تصميم الشريحة 80X87 ليعمل جنباً إلى جنب مع مرافقه المعالج. وهو عبارة عن دائرة متكاملة تقوم بأغلب الأعمال الموازية الذي ينفذها المعالج. لذلك نجد أن المعالج يقوم بتنفيذ جميع التعليمات العادية، بينما يقوم مساعد المعالج الرياضي بتنفيذ عمليات المعالج الحسابية. وفي استطاعة كل من المعالج أو مساعده القيام بتنفيذ الأعمال الموكولة إليهما معاً أو على التوازي، لكن يمكن اعتبار مساعد المعالج الرياضي معالج ذو أهداف خاصة من أجل تنفيذ التعليمات الحسابية الشاقة.** **يقوم المعالج بتنفيذ وتفسير مجموعة التعليمات العامة، بينما يقوم مساعد المعالج الرياضي بتنفيذ تعليمات مساعد المعالج الرياضي فقط. وتعرف التعليمات التي ينفذها مساعد المعالج الرياضي بتعليمات الهروب (Escape(ESC)).** **الشكل رقم (2-9 ) يوضح الشكل الداخلي للشريحة 80X87. يلاحظ أن هذا الشكل يتكون من جزأين هما وحدة التحكم ووحدة تنفيذ العمليات الحسابية.** **يقوم وحدة التحكم بربط مساعد المعالج بناقل بيانات المعالج. أما وحدة تنفيذ العمليات الحسابية، فهي المسئولة عن تنفيذ جميع تعليمات مساعد المعالج الرياضي. ويقوم الجهازان دائماً بمراقبة التعليمات الواردة إليهما، فإذا كانت التعليمات من النوع Escape كما ذكرنا سابقاً، فيقوم مساعد المعالج بتنفيذها وإلا فإن المعالج يقوم بتنفيذ ذلك.** **5. عنونة الذاكرة في النمط الحقيقي** **النمط الحقيقي: يعمل المعالج 80286 والتي تليه على نمطين هما النمط الحقيقي أو النمط المحمي. ويسمح النمط الحقيقي للمعالج أن يعنون 1 م. بايت فقط من الذاكرة بما في ذلك معالجات البنتيوم حيث لا تستطيع عنونة مساحة أكبر من ذلك عند العمل في النمط الحقيقي. وتفترض أنظمة التشغيل القديمة مثل PC DOS و MS DOS أن المعالج يعمل دائماً في النمط الحقيقي. من ميزات النمط الحقيقي أن التطبيقات والبرامج التي كتبت للمعالجين 8086/8088 والتي تحتوي على 1 م.بايت فقط من الذاكرة يمكن تنفيذها على المعالج 80286 والتي تليه دون إجراء أي تغيير في هذه البرمجيات. وفي جميع الحالات فإن المعالج يبدأ أولاً بالعمل في النمط الحقيقي عند توصيله بالتيار الكهربائي أو إعادة تشغيله.** **أما النمط المحمي ، فيسمح للمعالج 80286 والتي تليه بمعالجة البيانات والبرامج المخزنة في مساحة الميقابايت الأولى وما بعدها. وعند عنونة هذه المساحة الممتدة من نظام الذاكرة ، فيحتاج النظام إلى تغيير المقطع بالإضافة إلى مشروع عنونة مقدار الإزاحة المستخدم في عنونة الذاكرة عند العمل في النمط الحقيقي. وأثناء عنونة البيانات والبرامج في الذاكرة الممتدة، فإن عنوان مقدار الإزاحة يستخدم أيضاً لمعالجة المعلومات الموجودة في مقطع الذاكرة. والفرق الوحيد هو أن عنوان المقطع كما ذكرنا سابقاً أثناء الكلام عن النمط الحقيقي لا يكون موجوداً في النمط المحمي. وفي مكان عنوان المقطع، فإن مسجل المقطع يحتوي على الاختيار الذي يقوم باختيار الواصف من جدول الواصف. ويقوم الواصف بوصف موقع مقطع الذاكرة وطوله وحقوق الوصول. وبما أن مسجل المقطع وعنوان مقدار الإزاحة لا زالا يستخدمان في معالجة الذاكرة، فإن التعليمات المستخدمة في النمط المحمي هي ذات التعليمات المستخدمة في النمط الحقيقي.** **51. المقاطع والإزاحة** **ويستخدم عنوان المقطع وعنوان الإزاحة للوصول إلى موقع معين في الذاكرة أثناء التشغيل في النمط الحقيقي. وتتكون جميع عناوين الذاكرة في النمط الحقيقي من عنوان المقطع وعنوان الإزاحة. يحفظ عنوان المقطع في أحد مسجلات المقطع والتي تعّرف بداية أي عنوان من العناوين البالغ عددها 64 كيلو بايت من مقطع الذاكرة. أمّا** **عنوان الإزاحة فيقوم باختيار أي موقع يقع داخل الـ 64 كيلو بايت من مقاطع الذاكرة.** **الشكل التالي يوضح مشروع عنونة المقطع والإزاحة وذلك باختيار مقطع من مقاطع الذاكرة. يبدأ مقطع الذاكرة بالموقع 10000H وينتهي بالموقع 1FFFFH حيث إن المساحة الكلية تساوي 64 كيلو بايت.** **2.5 مسجلات المقاطع والإزاحة الافتراضية** **من الأمور المألوفة في عنونة الذاكرة هو استخدام مسجل مقطع الشفرة Code Segment Register (CS) مع مسجل مؤشر التعليمات Instruction Pointer (IP) لعنونة التعليمة التي تنفذ بعدها مباشرة في البرنامج. وهذه التركيبة تمثل بهذه الطريقة CS:IP أو CS:EIP اعتماداً على نمط تشغيل المعالج. وفي هذه الحالة فإن مسجل مقطع الشفرة يعرف بداية مقطع الشفرة، بينما يقوم مؤشر التعليمات بتحديد التعليمة التالية مباشرة لتنفذ بواسطة المعالج.** **مثلاً: إذا كان CS = 1400H و IP/EIP=1200H، فإن المعالج يبحث عن التعليمة التالية مباشرة في الموقع 14000H + 1200H وهو الموقع 15200H.** **ومن التركيبات الافتراضية أيضاً المكدس (Stack) حيث يستخدم مقطع المكدس Stack Segment Register(SS) مع مؤشر المكدس Stack Pointer(SP) ومؤشر** **القاعدة Base Pointer (BP) لعنونة مواقع الذاكرة. وتمثل هذه التركيبة بالطريقة التالية:SS: SP أو SS: ESP.** **مثلاً: إذا كان SS = 2000H و BP = 3000H، فإن المعالج يعنون الموقع 23000H لموقع مقطع المكدس.** **6. عنونة الذاكرة في النمط المحمي** **تسمح عنونة الذاكرة في النمط المحمي للمعالج 80286 والمعالجات التي ظهرت من بعده بمعالجة البيانات والبرامج المخزنة في الميجا بايت الأولى تماماً كما هو الحال في الموقع الأول.** **المعالج 80286 والمعالجات التي بعده لها إمكانية العمل في النمط المحمي وهذا النمط يزود المعالج بالمزايا التالية:** **القدرة على إدارة الذاكرة الحقيقية لحيز أكبر يصل إلى 16ميغا بايت بدلاً من 1ميغا بايت كما هو الحال في النمط الحقيقي.** **تأمين أربعة مستويات أولوية هرمية كحد أقصى حيث تقدم آلية للتمييز بين المستخدمين وتحسين وثوقية النظام.** **دعم تعدد المهام مع توفير حيز ذاكرة منفصلة لكل مهمة وإمكانية التحول بين المهام.** **البرامج والبيانات التي تنفذ على المعالج في النمط المحمي لا تتعامل مع مقاطع الذاكرة، وبدلاً من ذلك يتعامل مع مسجلات المقاطع وهي تعرف بنواخب المقاطع ويحتوي كل ناخب من هذه النواخب الأربعة على حقل طوله 13 خانة يسمى بحقل الدليل في الجدول الواصف.** **وهناك جدولان واصفان يستخدمان مع مسجلات المقطع، أحدهما: يحتوي على الوصف العام (الشامل) والآخر يحتوي على الوصف المحلي. وكل جدول واصف يحتوي على 8192 واصفا وهذا يعطي التطبيقات 16,384 واصفاً يمكن استخدامه في أي وقت.** **وبما أن الواصف مهمته وصف مقاطع الذاكرة، فهذا يجعل 16,384 مقطعًا من مقاطع الذاكرة موصوفاً لكل تطبيق.** **الشكل التالي يوضح شكل الواصف للمعالج 80286 والمعالجات الأحدث منه. لاحظ أن طول كل واصف 8 حروف وهذا يجعل طول جدول الواصف الشامل والمحلي 64 كيلو بايت.** **وهناك مزايا إضافية للمعالج 80386 و المعالجات التي استحدثت من بعده، مثل:** **خانة G: عندما تكون قيمة G = 0 فإن طول حد المقطع يكون بين 1 و 1ميغا بايت، أمّا إذا كانت قيمة G = 1 فإن قيمة حد المقطع يكون مضروباً في 4 كيلو ويكون طول المقطع بين 4 كيلو إلى 4 قيغابايت.** **خانة D: يبين ما إذا كان بيانات الذاكرة ومسجل معالجة التعليمات تعمل على النمط المحمي أو النمط الحقيقي. فإذا كان D = 0 فإن طول