محاضرة نظم التشغيل السابعة PDF

Summary

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

Full Transcript

‫نظم التشغيل‬ ‫المحاضرة السابعة‬ ‫محتويات المحاضرة السابقة‪:‬‬ ‫‪ ‬جدولة المهام‬ ‫‪ ‬خوارزميات الجدولة وانواعها‬ ‫‪ ‬امثلة للخوارزميات‬ ‫محتويات المحاضرة السابعة ‪:‬‬ ‫مقدمة عامة للخيط‬ ‫‪‬‬ ‫تعريف الخيط ‪ ،‬انواعه ‪.‬‬...

‫نظم التشغيل‬ ‫المحاضرة السابعة‬ ‫محتويات المحاضرة السابقة‪:‬‬ ‫‪ ‬جدولة المهام‬ ‫‪ ‬خوارزميات الجدولة وانواعها‬ ‫‪ ‬امثلة للخوارزميات‬ ‫محتويات المحاضرة السابعة ‪:‬‬ ‫مقدمة عامة للخيط‬ ‫‪‬‬ ‫تعريف الخيط ‪ ،‬انواعه ‪.‬‬ ‫‪‬‬ ‫التعامل معه ‪ ،‬حاالته ‪ ،‬استخداماته ‪.‬‬ ‫‪‬‬ ‫المقدمة‪:‬‬ ‫دعنا نضرب مثل تشبيهى يوضح فكرة الخيوط قبل الدخول فى تعريفها‬ ‫ومفهومها واستخدامها ‪:‬‬ ‫‪ 5+6+7+8‬إذا طلبنا من أى‬ ‫لننظر الى المسألة الحسابية البسيطة التالية ‪:‬‬ ‫تلميذ حل هذه المسألة فإنه سيحلها غالبا فى ثالث خطوات هى ‪:‬‬ ‫من المثال يمكن ان نستنتج ان هنالك ‪:‬‬ ‫‪.1‬العملية ذات الخيط الواحد (التوالى)‬ ‫نالحظ ان الخطوات تتم وراء بعض (بالتوالى) ‪.‬فأذا فرضنا كل خطوة تحتاج ثانية‬ ‫من هذا التلميذ فسوف ينجز العمل فى ‪ 3‬ثوان (‪، 20 =13+7 ، 13=5+6‬‬ ‫‪ ،)28=8+20‬هنا تتم الخطوات بالتوالى واليستطيع التلميذ القيام بخطوتين فى‬ ‫وقت واحد ‪.‬‬ ‫مقدمة ‪...‬مواصلة‬ ‫‪.2‬العملية متعددة الخيوط (التوازى)‬ ‫لو احضر التلميذ اثنين من زمالئه ليساعدوه فى حل المسألة ‪ ،‬فيمكن لالول ان‬ ‫يحسب ‪ 6+5‬والثانى يحسب ‪ 7+8‬فى وقت واحد (يعنى الخطوتين فى ثانية واحدة) ‪،‬‬ ‫ويقوم التلميذ الثالث بجمع النتيجة ليحصل على القيمة النهائية فى ثانية ‪ ،‬هنا نجد‬ ‫المسألة حلت فى ثانيتين بدال من ‪ 3‬ثوان (اى اسرع من االولى) ‪ ،‬نالحظ ايضا‬ ‫الخطوتين االوائل قد تمتا فى وقت واحد ‪ ،‬لكن الخطوة الثالثة اليمكن ان تتم اال بعد‬ ‫انتهاء الخطوتين السابقتين النها تعتمد على نتائجهما ‪.‬‬ ‫اذا من الخيوط نستنتج االتى ‪:‬‬ ‫ان القيام بأكثر من عمل فى وقت واحد يعنى عملية لها اكثر من خيط ‪.‬‬ ‫اليمكن للخيوط ان تعمل بالتوازى اذا كانت تعتمد على بعضها ‪ ،‬فيجب ان تكون‬ ‫مستقلة واال فلن نستفيد من وجود اكثر من خيط فى العملية ‪.‬‬ ‫تعريف الخيط (‪) Thread‬‬ ‫ نطلق على الخيط بأنه عملية خفيفة (‪)light weight process‬‬ ‫ذلك ألن الخيط يمتلك الكثير من خصائص العمليات ‪.‬‬ ‫ العملية فى وضعها الطبيعى تنفذ عمل واحد ‪ ،‬ونطلق عليها‬ ‫عملية احادية الخيط (‪.)single Thread‬‬ ‫ اذا كانت العملية تنفذ اكثر من عمل فى نفس الوقت ‪ ،‬هنا البد‬ ‫من جعل العملية متعددة الخيوط (‪.) multiple Thread‬‬ ‫بنية معلومات الخيط تحتوى على ‪:‬‬ ‫ ‬ ‫حالة‬ ‫_ عداد البرنامج _‬ ‫_ المسجالت‬ ‫المكدس‬ ‫ ‬ ‫الخيط‬ ‫مثال تشبيهى للخيوط ‪:‬‬ ‫إذا تعاملت مع شركة معمارية للبناء وطلبت منها تنفيذ عمل معين ‪ ،‬فأنت فى‬ ‫تعاملك مع الشركة ال تهتم وال تعرف كم عامل سينفذ عملك ‪ ،‬فالشركة تشبه‬ ‫العملية ‪ ،‬والعمال هم الخيوط داخل الشركة ‪ ،‬اذا نفذ العمل عامل واحد‬ ‫فأنت تتعامل مع الشركة كعملية ذات خيط واحد‪ ،‬فعلى العامل ان ينفذ العمل‬ ‫بالتوالى جزء تلو االخر حتى انتهاءه ‪ ،‬اما اذا نفذ العمل عدد من العمال فأنت‬ ‫تتعامل مع شركة كعملية ذات خطوط متعددة حيث ينفذ العمال العمل‬ ‫بالتوازى ‪ ،‬كل عامل يقوم بجزئية من العمل فى وقت واحد ‪.‬ومعلومات كل‬ ‫عامل داخل الشركة تعتبر هى معلومات الخيط حيث يتشارك كل العمال‬ ‫فى عنوان الشركة ولكن يختلفو فى عناوينهم وبياناتهم الخاصة التى تميزهم عن‬ ‫بعضهم البعض ‪.‬‬ ‫أنواع الخيوط (‪: ) Types of Threads‬‬ ‫‪.1‬خيط المستخدم (‪: )User Thread‬‬ ‫سمى بهذا االسم الن انشاء الخيط والتعامل معه يتم فى مستوى‬ ‫ ‬ ‫المستخدم وألشأن لنظام التشغيل به ‪ ،‬فهو يتعامل مع العمليات دون التمييز‬ ‫بين التى بها خيط واحد والتى بها العديد من الخيوط ‪.‬‬ ‫يتم تطبيق خيط المستخدم بواسطة مكتبات ‪ ،‬حيث توفر هذه المكتبة كل‬ ‫ ‬ ‫مايتعلق بالتعامل مع الخيط ‪.‬‬ ‫عيب هذا النوع ‪ :‬ان نظام التشغيل ال يتعامل مع الخيوط الموجودة‬ ‫ ‬ ‫بالعملية ‪ ،‬لذلك عندما يحجز عملية معينة فإنه يحجز العملية ككل بما فيها من‬ ‫خيوط ‪.‬‬ ‫أنواع الخيوط (‪: ) Types of Threads‬‬ ‫‪.2‬خيط النواة (‪)Kernel Thread‬‬ ‫‪‬هنا يتم دعم الخيط مباشرة بواسطة نظام التشغيل فهو الذى يوفر طرق‬ ‫التعامل مع الخيط من إنشاء وانهاء جدولة ‪ ،‬وألن ادارة الخيط تتم بواسطة‬ ‫نظام التشغيل فهذا يجعل خيط النواة بطئ نوعا ما مقارنة بخيط‬ ‫المستخدم ‪.‬‬ ‫‪‬من أمثلة نظم التشغيل التى تدعم خيوط النواة ( نظام التشغيل ويندوز‬ ‫الذى يمتلك مكتبة تدعم الخيوط ‪.) win32‬‬ ‫أنواع الخيوط (‪: ) Types of Threads‬‬ ‫‪.3‬خيط جافا (‪)Java Thread‬‬ ‫‪‬لغة جافا تعتبر من لغات البرمجة التى توفر دعم الخيط على مستوى اللغة ‪،‬‬ ‫فهى توفر مكتبة كاملة إلنشاء وادارة الخيوط ‪.‬‬ ‫‪‬وإلنشاء خيط فى الجافا مثال يتم كاالتى ‪:‬‬ ‫‪class th extends Thread‬‬ ‫فهذا يعنى انه سوف يتم توريث خيوط الصف الذى باسم ‪ th‬لبقية الصفوف‬ ‫‪‬‬ ‫الموجودة داخله فى البرنامج ‪.‬‬ ‫التعامل مع الخيط والدوال المستخدمة‪:‬‬ ‫حاالت الخيط (‪: ) status of Threads‬‬ ‫للخيط حاالت ينتقل بينها أثناء التنفيذ ‪:‬‬ ‫جديد (‪ : )New‬عند إنشائه باألمر ‪ new‬مثال يعتبر الخيط ‪ th‬فى حالة‬ ‫ ‬ ‫جديدة عند إستخدام االمر مثال‪:‬‬ ‫‪;)( th t = new th‬‬ ‫شغال (‪ :) Runnable‬األمر ‪ )(start‬يحجز مساحة بالذاكرة للخيط ‪،‬‬ ‫ ‬ ‫ويستدعى الطريقة ‪ )(run‬وفى هذا نقول ان حالة الخيط فى حالة تنفيذ ‪.‬‬ ‫محجوز (‪ )blocked‬أو غير شغال ‪ :‬اذا كان الخيط يقوم بعملية دخل‬ ‫ ‬ ‫أو خرج ‪ ،‬أو تم استدعاء ‪. )( sleep‬‬ ‫ميت (‪ : )Dead‬يصبح الخيط ميتًا اذا انتهى عمل الطريقة ‪ )( run‬أو‬ ‫ ‬ ‫استدعينا ‪. )( stop‬‬ ‫شكل يوضح حاالت الخيط ‪:‬‬ ‫إستخدامات الخيط (‪:) uses of Threads‬‬ ‫‪.1‬محرر النصوص (‪)word‬‬ ‫‪‬يحتوى على ثالثة خيوط ‪ ،‬وكل خيط ينفذ مهمة معينة ‪ ،‬فهنالك خيط‬ ‫يستجيب للمدخالت عبر لوحة المفاتيح والماوس وينفذ األوامر التى ترد‬ ‫عبرها مثل االنتقال لصفحة معينة ‪،‬بينما هنالك خيط ثانى يقوم بعملية إعادة‬ ‫شكل الوثيقة ‪،‬فإذا قمت بحذف جملة سيقوم هذا الخيط بإعادة ترتيب النص‬ ‫كامال بعد حذف الجملة ‪ ،‬وهنالك خيط ثالث يقوم بعملية الحفظ التلقائى كل‬ ‫فترة ‪.‬‬ ‫‪‬مثال لو كان برنامج محرر النصوص يعمل بخيط واحد فلن تستطيع االنتقال‬ ‫الى صفحة مع ظهور شكل البيانات المعدلة فى نفس الوقت ‪ ،‬وعندما يعمل‬ ‫الحفظ التلقائى البد من توقف كل شئ حتى يكتمل الحفظ ‪.‬‬ ‫إستخدامات الخيط (‪:) uses of Threads‬‬ ‫‪.2‬مخدم الويب (‪)web server‬‬ ‫‪‬وظيفة مخدم الويب هى الرد على طلبات المتصفحين وإرسال مايريدون من‬ ‫صفحات الى اجهزتهم ‪ ،‬ويوجد فى كل جهاز مخدم ويب على االنترنت وفيه‬ ‫عدد من المواقع ‪ ،‬قد يتصل اكثر من شخص بهذا الجهاز ويطلب عرض اكثر من‬ ‫صفحة فى نفس الوقت ‪ ،‬هنا ينشئ مخدم الويب خيط لكل متصل يتحاور معه‬ ‫ويرسل له طلباته ‪.‬‬ ‫‪‬مثال لو كان مخدم الويب يعمل بخيط واحد ‪ ،‬اذا اتصل مائة عميل بهذا المخدم‬ ‫فى وقت واحد سيكون هنالك خيط واحد لخدمة العمالء ‪ ،‬واحد تلو االخر ‪ ،‬فاذا‬ ‫افترضنا ان كل طلب يستغرق دقيقة واحدة ‪ ،‬فإن العميل رقم ‪ 100‬ستتم‬ ‫خدمته بعد ساعة و‪ 40‬دقيقة ‪.‬‬ ?? !THANK S

Use Quizgecko on...
Browser
Browser