السلام عليكم ورحمة الله وبركاته
موضوع المقاله: ما هي الضغوطات التي يواجهها المعالج (Processor)
كلنا يعلم أن المعالج عبارة عن جهاز يعالج البيانات وينظمها حتى تسهل على القرص الصلب تخزينها.
ما هي البيانات التي يعالجها المعالج:
1* الماوس: جميع بيانات حركت الماوس في الإتجاهات المختلفه و البيانات التي يحدثها الماوس حين النقر على الزر اليمين أو اليسار عندما نحتاج أن نستخدمها
2* لوح المفاتيح: عندما نقوم يكتابت أي حرف أو رقم أو عندما نتحكم بالصعود والنزول الصفحات عن طريق الأسهم التي في الإتجاهات الأربعه
3* تصفح الإنترنت: هنا يكون المعالج في أقصى طاقات عمله وبالأخص في صفحات الجافا وغيرها لأنها تتخاطب مع الجهاز وتنزل وترفع بيانات برمجية وهيه البيانات سوف تشرح بشكل أكثر في النقطه الرابعه.
4* البرامج: وهذا الجزء من البيانات هو الذي يرهق المعالج لأنها كتب بلغات برمجية عالية المستوى وهيه اللغات لا تفهمها الحواسيب ولكنها تقوم باستدعاء ملفات تنفيذية
والتي تساعد في تحليل هذه اللغات البرمجية ثم تقوم هذه الملفات باستدعاء دوال أو ما أسميها ( بمعلمات الحواسيب ) لأنها تقوم بتعليم أو إخبار الحاسوب بالبيانات
التي يجب على الحاسوب فعلها ..
========================================================
مثال على ذلك عندما نقوم بالنقر على برنامج ما: مثل برامج معالجات الكلمات (نوت باد مثلا ) مالذي لا نعرفه عند تشغيل مثل هذه البرامج.
سوف أشرح الطريقه الفيزيائية التي نتبعها عن فتح هذا البرنامج: ( بشكل بسيط )
نحرك الماوس على شعار البرنامج وهذه عباره عن بيانات الحركه .
النقر الأولى على شعار البرنامج تعتبر بيان بأننا أخترنا البرنامج المطلوب.
النقرة الثانيه يقوم بإرسال البيانات المطلوبه لكي يقوم الجهاز بتشغيل هذا البرنامج.
عند الفتره مابعد النقرة الثانيه يقوم البرنامج بإرسال البيانات لكي يستدعي الملفات المطلوبه المحمله مسبقا إلى الجهاز.
تقوم هذه الملفات والتي تسمى بالملفات التنفيذية بتحليل الأوامر أو البيانات المطلوبه ومن ثم يقوم بإرسال بيانات إستدعائية تستدعي الدوال أوالمعلمات كما سبق ذكرها.
وفي هذه الأثناء يقوم تقوم الدوال بإرسال رزم من البيانات من هذا البرنامج لكي تنظم وتحلل وتجهز للتطبيق فيها أو عليها.
=============== ===============
التجربه الشخصيه والملاحظات المرئية
=============== ===============
أولا يجب أن نتعرف مواصفات الجهاز الذي قمت بعمل التجربه عليه:
1* system:
Microsoft Windows XP
Professional
Version 2002
2* Computer:
Intel Pentium lll Processor
451 MHz
128 MB of Ram
ثانيا يجب أن نتعرف على مواصفات الملف الذي قمت بالتجربه عليه:
وإسم هذا الملف هو :kernel32.dll
ونوع الملف :Application Extension
يعمل هذا الملف على :Unknown application
مكان تواجده :C:\WINDOWS\system32
حجم الملف :905 KB (926,720 bytes)
حجم الملف في القرص الصلب :908 KB (929,792 bytes)
مصنوع من شركة :Microsoft Corporation
الوصف :Windows NT BASE API Client DLL
نوع الإصدار: 5.1.2600.0
إن مثل هي البيانات الضرورية يجب أن نعرفها عندما نقوم بعمل تجارب . وسوف اسرد كل ما فعلته بالتفاصل:
أولا قمت بإيقاف جميع البرامج التي تعمل في وضع الإختفاء ماعدى البرامج الأساسية وفي هذه الخطوة إتبعت الطريقه المعروفه وهي بالضغط في لوح المفاتيح على المفاتيح التاليه: Ctrl + Alt + Del (Delete)
وهنا سوف يظهر لنا برنامج Task Manager
وهذا البرنامج هو البرنامج الذي إستخدمته في تتبع معرفت الضغوط على المعالج وأوقات الضغوط عليه..
مواصفات البرنامج
الإسم:taskmgr.exe
نوع البرنامج:Application
مكان تواجده:C:\WINDOWS\system32
حجم البرنامج:125 KB (128,512 bytes)
حجم البرنامج في القرص الصلب:128 KB (131,072 bytes)
مصنوع من شركة:Microsoft Corporation
الوصف:Windows Task Manager
نوع الإصدار:5.1.2600.0
بدايه التجربة:
وبعد أن تخطيت المراحل الأولى من دراسه لغة التجميع Assembly language وبعد أن وصلت إلى مسجلات المعالج وتعرفت على أجزاء مسجلات المعالج وطول كل مسجل وبعد أن قرأت أحد الدروس في تعلم هذه اللغه.
كان الدرس يتحدث عن كيفية بالبدء ببرمجة أول برنامج بلغة الأسمبلي, و كان الدرس في وادٍ وأنا أفكر في وادٍ آخر ...
ستقولون كيف؟ :وأقول لكم.. !!
عندما قرأت تعليمات الحلقات ومنها Loop تذكرت أن مثل هذا الأمر تستخدم في لغلت أخرى مثل الـ VB والملف Batch ولكني لم أبدي أي إهتمام لها, وبعد أن مررت على أوامر القفز و هي كثيره ومنها المشروطه وغير المشروطه وأتت من بعدها أوامر الدوران مثل ROR , ROL
عندها خطرت في بالي فكرة قد تذهل الجميع وقد تنجح بنسبة 80% وهي متعلقه بموضوع الضغط على المعالج وهي أن نقوم بعمل مايشابه فيروس وتقوم هذه الأوامر المبرمجه بالدوران في حلقه مغلق فقط ولا تخرج من محور دورانها فعندها, سوف تقوم بعمل ضغوطات هائله وهذا النوع من الدوران سوف يقوم بإرسال بيانات متكرره إلى المعالج والذي يزيد من حجم التضرر أكثر أنه إن قمنا بصنع مثل هذه الأوامر في الأسمبلي فإن الجهاز يكون في حاله لا يرثى عليها حينها..
========================================================
برنامج بسيط من تصميمي على هذا الموضوع:
Test1 segment stack Db 10 dup (0) Test1 ends Test2 segment Y dw 0 Test2 ends Test3 segment Assume cs:Test3,ds:Test2,ss:Test1 Start: T1:MOV CX,16 MOV BL,0 ROR AX,1 JC CF_1 JMP CF_0 CF_1:ADD BL,1 CF_0:LOOP T1 Test3 ends End start
عند تشغيل هذا البرنامج أضغط في لوح المفاتيح على المفاتيح التاليه:Ctrl+Alt+Del
سوف يظهر لك برنامج Tesk Manager السابق ذكره ومن ثم أختر التبويبه Performance
ومن ثم تتبع مؤشرات الـ CPU الذي في جهت اليمين والآخر في جهت اليسار.. وسوف تلاحظ أن لمؤشر في أقصى إرتفاعات والتي تبلغ 100%, كما هو موضح في الصوره رقم 2 المرفقه..
========================================================
ولكن سوف يقول أحد القراء لماذا لا نكتب هذه البرمجيه بلغات آخرى مثل الVB أو الBatch File أو حتى غيرها من لغات المستوى العالي لأنه كتابتها أسهل علينا عن assembly ؟؟؟
هنا يجب على من يطرح مثل هذه الأسئله أن يعرف الطريقة التي تعمل بها برامج الحمايه, وسوف يعرف أن مثل هذه البرامج لا تجعل من يفكر بعمل أن يقوم بإبداعه.
+++++++++++++++++++++++++++++++++++++++
"اللهم لا علم لنا إلى ما علمتنا"
أرجوا من الساده الكرام أن يتحلوا بأخلاق الإسلام ولا ينشروا هذه المقاله دون كاتبها.
============= ============= =============
الحقوق محفوظة منتديات الفريق العربي للبرمجة و منتديات القرصان
الكاتب : HuRrIcAnE ( TwIsTeR )
============= ============= =============