Transcript

Advanced C Course

7- Multithreaded Applications

04132023 1149 PM 2

Outlines التشغيل نظم في مقدمة النياسب تعدد إلى نحتاج Multithreadingلماذا النياسب متعددة تطبيقات بإنشاء نقوم كيف

Multithreaded ( نيسب (Thread Terminatationإيقاف

الخلفية في تعمل التي BackgroundالنياسبThreads

Thread Class

04132023 1149 PM 3

التشغيل نظم في مقدمة المهمةProcess التنفيذ قيد برنامج هي الوقت بنفس برنامج من أكثر بتشغيل النظام يقوم كيف

المهام جدولة الزمنية الشرائح

Code Segment

Data Segment

Stack Segment

Heap Segment

04132023 1149 PM 4

التشغيل نظم في مقدمةالنيسب تعريف(Thread) برمجيمستقل مسلك عن عبارة هو

المكدس النياسبفي (Stack)في من غيره مع ويشتركأخرى (Heap)الكومة نريد بعبارة التي التعليمات من سياق هو

التوازي على تنفيذها األخرى التعليمات من غيرها مع

كل الحقيقة عن نيسبفي عبارة من + Stackهو مجموعةالخاصة البرنامج )السجالت عداد فيها ( PCبما

مهمةكل( Process )تحويThread األقل واحد على

المهام إدارة( Processes Management )التشغيل نظام مهمة من هي

النياسب إدارة المبرمج( Threads Management )أما مهمة من فهي

المهام وجدولة النياسب جدولة

04132023 1149 PM 5

النياسب تعدد إلى نحتاج لماذاMultithreading

( الخلفية في (Executing in Backgroundالتنفيذ العمل لتسريع مرة من اكثر مهمة إنجاز

نيسب من أكثر على العمل تقسيم يمكن معينة صورة لمعالجة برنامج أمثل تنفيذ استغاللا بنى ) للموارد وجود حال في (SMPلمتاحة

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

04132023 1149 PM 6

النياسب متعددة تطبيقات بإنشاء نقوم كيفMultithreaded

( النيسب أن اآلن إلى يتم( Threadعلمنا التي التعليمات من مجموعة هوالبرنامج بقية مع التوازي على تنفيذها

مثل_ ت التعليمات ال Methodهذه هذا اسم تمرير إلى Methodيتم_سمى مندوبأو ) مفوض إلى( Delegateي تسليمه يتم المندوب وهذا

الصف من ThreadغرضDelegate نفس تحمل التي التوابع من مجموعة عن مفوض التوقيعهي

04132023 1149 PM 7

( نيسب (Thread Terminatationإيقاف عمله يتنهي ومتى النيسب إيقاف يتم كيف المنهج طريق عن قسري بشكل النيسب )( Abortإيقاف م_حبذة غير الطريقة هذه

04132023 1149 PM 8

الخلفية في تعمل التي Background النياسبThreads

( المهام من مجموعة يستعمل التشغيل الخلفية( Processesنظام في تعمل والتي(Background( )باسم ويندوز نظام في ( Windows Servicesوتسمىنظام ويندوز خدمات في _سمى LinuxUnixأما daemonsفت

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

الخلفية في( الخلفية في يعمل ما نيسب نجعل أن الخاصية( Backgroundيمكن طريق عن

IsBackground بالقيمة ضبطها يتم trueوالتي

( الخلفية النياسب أمامي( )Backgroundتنتهي نيسب أخر إنتهاء (forgroundعند

04132023 1149 PM 9

Thread Class الصنف نظام SystemThreadingThreadيمثل مستوى في نيسب

التشغيل الصنف في الموجود الخصائص Threadأهم

ϑ λ ϭϟ Δϳλ ΎΧϟ

ΩϳόΗ ϊ Οέϣ( Reference )ϰϟ Ώγϳϧϟ Ϋϔϧϣϟ Ύ˱ϳϟΎΣ CurrentThread

ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ Ωϗ ΩΑ ϡϟϭ ϲϬΗϧϳ ΩόΑ IsAlive

ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ ISBackground

ΩϳόΗ ϭ ΩΩΣΗ( set or get )ϡγ Ώγϳϧϟ Name

ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϳϠο ϓ Ώγϳϧϟ Priority

ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϟΎΣ Ώγϳϧϟ ThreadState

04132023 1149 PM 10

Thread Class الصنف في الموجود المناهج Threadأهم

ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

Join

(ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

(ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

04132023 1149 PM 11

النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

04132023 1149 PM 12

Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

(Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

ϑ λ ϭϟ ΔϣϳϘϟ

ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

04132023 1149 PM 13

الموارد على التنافسConcurrency

النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

مالحظات

) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

04132023 1149 PM 14

الحرجة المقاطع استخداموالقفل

Lock

read value from DB update value in RAMwriting value to DB

04132023 1149 PM 15

الحرجة المقاطع استخداموالقفل

Static int [] arr=new int [10]

Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

04132023 1149 PM 16

النياسب بين ThreadsالتزامنSynchronization

هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

Thread B Globalx=4

Thread A

Globalx=3

call function

Func(Globalx )

04132023 1149 PM 17

التزامن SynchronizationتحقيقImplementation

من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

04132023 1149 PM 18

التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

(Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

(Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

المناهج هذه من

Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

04132023 1149 PM 19

Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

من np 1األعداد

04132023 1149 PM 20

Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

النياسب بين التزامن

مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

الطابعة مثال

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

04132023 1149 PM 21

Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

ال ( Lock - unlockآلية )Mutex يستعمل

04132023 1149 PM 22

اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

المبرمج مسؤولية من هي(Threads)النياسب

المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

04132023 1149 PM 23

Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

القفل على الحصول لتستعيد أخر نيسب من

04132023 1149 PM 24

Monitor Class

04132023 1149 PM 25

Producer Consumere Example

  • Advanced C Course
  • Outlines
  • مقدمة في نظم التشغيل
  • مقدمة في نظم التشغيل
  • لماذا نحتاج إلى تعدد النياسب Multithreading
  • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
  • إيقاف نيسب(Thread Terminatation)
  • النياسب التي تعمل في الخلفية Background Threads
  • Thread Class
  • Thread Class (2)
  • حالات النيسب Thread States
  • Thread Priority
  • التنافس على الموارد Concurrency
  • استخدام المقاطع الحرجة والقفل
  • استخدام المقاطع الحرجة والقفل (2)
  • التزامن بين النياسب Threads Synchronization
  • تحقيق التزامن Synchronization Implementation
  • أصناف التزامن Synchronization Classes
  • Parallel Programming Example
  • Semaphore Class
  • Mutex Class (Mutual Exclusion)
  • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
  • Monitor Class
  • Monitor Class (2)
  • Producer Consumere Example

    04132023 1149 PM 2

    Outlines التشغيل نظم في مقدمة النياسب تعدد إلى نحتاج Multithreadingلماذا النياسب متعددة تطبيقات بإنشاء نقوم كيف

    Multithreaded ( نيسب (Thread Terminatationإيقاف

    الخلفية في تعمل التي BackgroundالنياسبThreads

    Thread Class

    04132023 1149 PM 3

    التشغيل نظم في مقدمة المهمةProcess التنفيذ قيد برنامج هي الوقت بنفس برنامج من أكثر بتشغيل النظام يقوم كيف

    المهام جدولة الزمنية الشرائح

    Code Segment

    Data Segment

    Stack Segment

    Heap Segment

    04132023 1149 PM 4

    التشغيل نظم في مقدمةالنيسب تعريف(Thread) برمجيمستقل مسلك عن عبارة هو

    المكدس النياسبفي (Stack)في من غيره مع ويشتركأخرى (Heap)الكومة نريد بعبارة التي التعليمات من سياق هو

    التوازي على تنفيذها األخرى التعليمات من غيرها مع

    كل الحقيقة عن نيسبفي عبارة من + Stackهو مجموعةالخاصة البرنامج )السجالت عداد فيها ( PCبما

    مهمةكل( Process )تحويThread األقل واحد على

    المهام إدارة( Processes Management )التشغيل نظام مهمة من هي

    النياسب إدارة المبرمج( Threads Management )أما مهمة من فهي

    المهام وجدولة النياسب جدولة

    04132023 1149 PM 5

    النياسب تعدد إلى نحتاج لماذاMultithreading

    ( الخلفية في (Executing in Backgroundالتنفيذ العمل لتسريع مرة من اكثر مهمة إنجاز

    نيسب من أكثر على العمل تقسيم يمكن معينة صورة لمعالجة برنامج أمثل تنفيذ استغاللا بنى ) للموارد وجود حال في (SMPلمتاحة

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

    04132023 1149 PM 6

    النياسب متعددة تطبيقات بإنشاء نقوم كيفMultithreaded

    ( النيسب أن اآلن إلى يتم( Threadعلمنا التي التعليمات من مجموعة هوالبرنامج بقية مع التوازي على تنفيذها

    مثل_ ت التعليمات ال Methodهذه هذا اسم تمرير إلى Methodيتم_سمى مندوبأو ) مفوض إلى( Delegateي تسليمه يتم المندوب وهذا

    الصف من ThreadغرضDelegate نفس تحمل التي التوابع من مجموعة عن مفوض التوقيعهي

    04132023 1149 PM 7

    ( نيسب (Thread Terminatationإيقاف عمله يتنهي ومتى النيسب إيقاف يتم كيف المنهج طريق عن قسري بشكل النيسب )( Abortإيقاف م_حبذة غير الطريقة هذه

    04132023 1149 PM 8

    الخلفية في تعمل التي Background النياسبThreads

    ( المهام من مجموعة يستعمل التشغيل الخلفية( Processesنظام في تعمل والتي(Background( )باسم ويندوز نظام في ( Windows Servicesوتسمىنظام ويندوز خدمات في _سمى LinuxUnixأما daemonsفت

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

    الخلفية في( الخلفية في يعمل ما نيسب نجعل أن الخاصية( Backgroundيمكن طريق عن

    IsBackground بالقيمة ضبطها يتم trueوالتي

    ( الخلفية النياسب أمامي( )Backgroundتنتهي نيسب أخر إنتهاء (forgroundعند

    04132023 1149 PM 9

    Thread Class الصنف نظام SystemThreadingThreadيمثل مستوى في نيسب

    التشغيل الصنف في الموجود الخصائص Threadأهم

    ϑ λ ϭϟ Δϳλ ΎΧϟ

    ΩϳόΗ ϊ Οέϣ( Reference )ϰϟ Ώγϳϧϟ Ϋϔϧϣϟ Ύ˱ϳϟΎΣ CurrentThread

    ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ Ωϗ ΩΑ ϡϟϭ ϲϬΗϧϳ ΩόΑ IsAlive

    ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ ISBackground

    ΩϳόΗ ϭ ΩΩΣΗ( set or get )ϡγ Ώγϳϧϟ Name

    ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϳϠο ϓ Ώγϳϧϟ Priority

    ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϟΎΣ Ώγϳϧϟ ThreadState

    04132023 1149 PM 10

    Thread Class الصنف في الموجود المناهج Threadأهم

    ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

    ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

    ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

    ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

    Join

    (ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

    (ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

    ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

    04132023 1149 PM 11

    النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

    Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

    Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

    04132023 1149 PM 12

    Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

    (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

    ϑ λ ϭϟ ΔϣϳϘϟ

    ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

    ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

    ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

    ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

    ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

    04132023 1149 PM 13

    الموارد على التنافسConcurrency

    النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

    p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

    الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

    مالحظات

    ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

    المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

    04132023 1149 PM 14

    الحرجة المقاطع استخداموالقفل

    Lock

    read value from DB update value in RAMwriting value to DB

    04132023 1149 PM 15

    الحرجة المقاطع استخداموالقفل

    Static int [] arr=new int [10]

    Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

    04132023 1149 PM 16

    النياسب بين ThreadsالتزامنSynchronization

    هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

    Thread B Globalx=4

    Thread A

    Globalx=3

    call function

    Func(Globalx )

    04132023 1149 PM 17

    التزامن SynchronizationتحقيقImplementation

    من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

    المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

    القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

    04132023 1149 PM 18

    التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

    (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

    (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

    المناهج هذه من

    Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

    04132023 1149 PM 19

    Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

    من np 1األعداد

    04132023 1149 PM 20

    Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

    النياسب بين التزامن

    مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

    الطابعة مثال

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

    04132023 1149 PM 21

    Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

    مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

    ال ( Lock - unlockآلية )Mutex يستعمل

    04132023 1149 PM 22

    اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

    نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

    عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

    المبرمج مسؤولية من هي(Threads)النياسب

    المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

    مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

    04132023 1149 PM 23

    Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

    على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

    ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

    النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

    القفل على الحصول لتستعيد أخر نيسب من

    04132023 1149 PM 24

    Monitor Class

    04132023 1149 PM 25

    Producer Consumere Example

    • Advanced C Course
    • Outlines
    • مقدمة في نظم التشغيل
    • مقدمة في نظم التشغيل
    • لماذا نحتاج إلى تعدد النياسب Multithreading
    • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
    • إيقاف نيسب(Thread Terminatation)
    • النياسب التي تعمل في الخلفية Background Threads
    • Thread Class
    • Thread Class (2)
    • حالات النيسب Thread States
    • Thread Priority
    • التنافس على الموارد Concurrency
    • استخدام المقاطع الحرجة والقفل
    • استخدام المقاطع الحرجة والقفل (2)
    • التزامن بين النياسب Threads Synchronization
    • تحقيق التزامن Synchronization Implementation
    • أصناف التزامن Synchronization Classes
    • Parallel Programming Example
    • Semaphore Class
    • Mutex Class (Mutual Exclusion)
    • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
    • Monitor Class
    • Monitor Class (2)
    • Producer Consumere Example

      04132023 1149 PM 3

      التشغيل نظم في مقدمة المهمةProcess التنفيذ قيد برنامج هي الوقت بنفس برنامج من أكثر بتشغيل النظام يقوم كيف

      المهام جدولة الزمنية الشرائح

      Code Segment

      Data Segment

      Stack Segment

      Heap Segment

      04132023 1149 PM 4

      التشغيل نظم في مقدمةالنيسب تعريف(Thread) برمجيمستقل مسلك عن عبارة هو

      المكدس النياسبفي (Stack)في من غيره مع ويشتركأخرى (Heap)الكومة نريد بعبارة التي التعليمات من سياق هو

      التوازي على تنفيذها األخرى التعليمات من غيرها مع

      كل الحقيقة عن نيسبفي عبارة من + Stackهو مجموعةالخاصة البرنامج )السجالت عداد فيها ( PCبما

      مهمةكل( Process )تحويThread األقل واحد على

      المهام إدارة( Processes Management )التشغيل نظام مهمة من هي

      النياسب إدارة المبرمج( Threads Management )أما مهمة من فهي

      المهام وجدولة النياسب جدولة

      04132023 1149 PM 5

      النياسب تعدد إلى نحتاج لماذاMultithreading

      ( الخلفية في (Executing in Backgroundالتنفيذ العمل لتسريع مرة من اكثر مهمة إنجاز

      نيسب من أكثر على العمل تقسيم يمكن معينة صورة لمعالجة برنامج أمثل تنفيذ استغاللا بنى ) للموارد وجود حال في (SMPلمتاحة

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

      04132023 1149 PM 6

      النياسب متعددة تطبيقات بإنشاء نقوم كيفMultithreaded

      ( النيسب أن اآلن إلى يتم( Threadعلمنا التي التعليمات من مجموعة هوالبرنامج بقية مع التوازي على تنفيذها

      مثل_ ت التعليمات ال Methodهذه هذا اسم تمرير إلى Methodيتم_سمى مندوبأو ) مفوض إلى( Delegateي تسليمه يتم المندوب وهذا

      الصف من ThreadغرضDelegate نفس تحمل التي التوابع من مجموعة عن مفوض التوقيعهي

      04132023 1149 PM 7

      ( نيسب (Thread Terminatationإيقاف عمله يتنهي ومتى النيسب إيقاف يتم كيف المنهج طريق عن قسري بشكل النيسب )( Abortإيقاف م_حبذة غير الطريقة هذه

      04132023 1149 PM 8

      الخلفية في تعمل التي Background النياسبThreads

      ( المهام من مجموعة يستعمل التشغيل الخلفية( Processesنظام في تعمل والتي(Background( )باسم ويندوز نظام في ( Windows Servicesوتسمىنظام ويندوز خدمات في _سمى LinuxUnixأما daemonsفت

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

      الخلفية في( الخلفية في يعمل ما نيسب نجعل أن الخاصية( Backgroundيمكن طريق عن

      IsBackground بالقيمة ضبطها يتم trueوالتي

      ( الخلفية النياسب أمامي( )Backgroundتنتهي نيسب أخر إنتهاء (forgroundعند

      04132023 1149 PM 9

      Thread Class الصنف نظام SystemThreadingThreadيمثل مستوى في نيسب

      التشغيل الصنف في الموجود الخصائص Threadأهم

      ϑ λ ϭϟ Δϳλ ΎΧϟ

      ΩϳόΗ ϊ Οέϣ( Reference )ϰϟ Ώγϳϧϟ Ϋϔϧϣϟ Ύ˱ϳϟΎΣ CurrentThread

      ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ Ωϗ ΩΑ ϡϟϭ ϲϬΗϧϳ ΩόΑ IsAlive

      ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ ISBackground

      ΩϳόΗ ϭ ΩΩΣΗ( set or get )ϡγ Ώγϳϧϟ Name

      ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϳϠο ϓ Ώγϳϧϟ Priority

      ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϟΎΣ Ώγϳϧϟ ThreadState

      04132023 1149 PM 10

      Thread Class الصنف في الموجود المناهج Threadأهم

      ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

      ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

      ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

      ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

      Join

      (ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

      (ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

      ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

      04132023 1149 PM 11

      النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

      Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

      Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

      04132023 1149 PM 12

      Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

      (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

      ϑ λ ϭϟ ΔϣϳϘϟ

      ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

      ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

      ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

      ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

      ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

      04132023 1149 PM 13

      الموارد على التنافسConcurrency

      النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

      p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

      الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

      مالحظات

      ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

      المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

      04132023 1149 PM 14

      الحرجة المقاطع استخداموالقفل

      Lock

      read value from DB update value in RAMwriting value to DB

      04132023 1149 PM 15

      الحرجة المقاطع استخداموالقفل

      Static int [] arr=new int [10]

      Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

      04132023 1149 PM 16

      النياسب بين ThreadsالتزامنSynchronization

      هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

      Thread B Globalx=4

      Thread A

      Globalx=3

      call function

      Func(Globalx )

      04132023 1149 PM 17

      التزامن SynchronizationتحقيقImplementation

      من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

      المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

      القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

      04132023 1149 PM 18

      التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

      (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

      (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

      المناهج هذه من

      Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

      04132023 1149 PM 19

      Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

      من np 1األعداد

      04132023 1149 PM 20

      Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

      النياسب بين التزامن

      مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

      الطابعة مثال

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

      04132023 1149 PM 21

      Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

      مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

      ال ( Lock - unlockآلية )Mutex يستعمل

      04132023 1149 PM 22

      اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

      نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

      عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

      المبرمج مسؤولية من هي(Threads)النياسب

      المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

      مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

      04132023 1149 PM 23

      Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

      على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

      ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

      النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

      القفل على الحصول لتستعيد أخر نيسب من

      04132023 1149 PM 24

      Monitor Class

      04132023 1149 PM 25

      Producer Consumere Example

      • Advanced C Course
      • Outlines
      • مقدمة في نظم التشغيل
      • مقدمة في نظم التشغيل
      • لماذا نحتاج إلى تعدد النياسب Multithreading
      • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
      • إيقاف نيسب(Thread Terminatation)
      • النياسب التي تعمل في الخلفية Background Threads
      • Thread Class
      • Thread Class (2)
      • حالات النيسب Thread States
      • Thread Priority
      • التنافس على الموارد Concurrency
      • استخدام المقاطع الحرجة والقفل
      • استخدام المقاطع الحرجة والقفل (2)
      • التزامن بين النياسب Threads Synchronization
      • تحقيق التزامن Synchronization Implementation
      • أصناف التزامن Synchronization Classes
      • Parallel Programming Example
      • Semaphore Class
      • Mutex Class (Mutual Exclusion)
      • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
      • Monitor Class
      • Monitor Class (2)
      • Producer Consumere Example

        04132023 1149 PM 4

        التشغيل نظم في مقدمةالنيسب تعريف(Thread) برمجيمستقل مسلك عن عبارة هو

        المكدس النياسبفي (Stack)في من غيره مع ويشتركأخرى (Heap)الكومة نريد بعبارة التي التعليمات من سياق هو

        التوازي على تنفيذها األخرى التعليمات من غيرها مع

        كل الحقيقة عن نيسبفي عبارة من + Stackهو مجموعةالخاصة البرنامج )السجالت عداد فيها ( PCبما

        مهمةكل( Process )تحويThread األقل واحد على

        المهام إدارة( Processes Management )التشغيل نظام مهمة من هي

        النياسب إدارة المبرمج( Threads Management )أما مهمة من فهي

        المهام وجدولة النياسب جدولة

        04132023 1149 PM 5

        النياسب تعدد إلى نحتاج لماذاMultithreading

        ( الخلفية في (Executing in Backgroundالتنفيذ العمل لتسريع مرة من اكثر مهمة إنجاز

        نيسب من أكثر على العمل تقسيم يمكن معينة صورة لمعالجة برنامج أمثل تنفيذ استغاللا بنى ) للموارد وجود حال في (SMPلمتاحة

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

        04132023 1149 PM 6

        النياسب متعددة تطبيقات بإنشاء نقوم كيفMultithreaded

        ( النيسب أن اآلن إلى يتم( Threadعلمنا التي التعليمات من مجموعة هوالبرنامج بقية مع التوازي على تنفيذها

        مثل_ ت التعليمات ال Methodهذه هذا اسم تمرير إلى Methodيتم_سمى مندوبأو ) مفوض إلى( Delegateي تسليمه يتم المندوب وهذا

        الصف من ThreadغرضDelegate نفس تحمل التي التوابع من مجموعة عن مفوض التوقيعهي

        04132023 1149 PM 7

        ( نيسب (Thread Terminatationإيقاف عمله يتنهي ومتى النيسب إيقاف يتم كيف المنهج طريق عن قسري بشكل النيسب )( Abortإيقاف م_حبذة غير الطريقة هذه

        04132023 1149 PM 8

        الخلفية في تعمل التي Background النياسبThreads

        ( المهام من مجموعة يستعمل التشغيل الخلفية( Processesنظام في تعمل والتي(Background( )باسم ويندوز نظام في ( Windows Servicesوتسمىنظام ويندوز خدمات في _سمى LinuxUnixأما daemonsفت

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

        الخلفية في( الخلفية في يعمل ما نيسب نجعل أن الخاصية( Backgroundيمكن طريق عن

        IsBackground بالقيمة ضبطها يتم trueوالتي

        ( الخلفية النياسب أمامي( )Backgroundتنتهي نيسب أخر إنتهاء (forgroundعند

        04132023 1149 PM 9

        Thread Class الصنف نظام SystemThreadingThreadيمثل مستوى في نيسب

        التشغيل الصنف في الموجود الخصائص Threadأهم

        ϑ λ ϭϟ Δϳλ ΎΧϟ

        ΩϳόΗ ϊ Οέϣ( Reference )ϰϟ Ώγϳϧϟ Ϋϔϧϣϟ Ύ˱ϳϟΎΣ CurrentThread

        ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ Ωϗ ΩΑ ϡϟϭ ϲϬΗϧϳ ΩόΑ IsAlive

        ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ ISBackground

        ΩϳόΗ ϭ ΩΩΣΗ( set or get )ϡγ Ώγϳϧϟ Name

        ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϳϠο ϓ Ώγϳϧϟ Priority

        ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϟΎΣ Ώγϳϧϟ ThreadState

        04132023 1149 PM 10

        Thread Class الصنف في الموجود المناهج Threadأهم

        ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

        ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

        ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

        ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

        Join

        (ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

        (ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

        ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

        04132023 1149 PM 11

        النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

        Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

        Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

        04132023 1149 PM 12

        Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

        (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

        ϑ λ ϭϟ ΔϣϳϘϟ

        ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

        ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

        ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

        ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

        ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

        04132023 1149 PM 13

        الموارد على التنافسConcurrency

        النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

        p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

        الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

        مالحظات

        ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

        المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

        04132023 1149 PM 14

        الحرجة المقاطع استخداموالقفل

        Lock

        read value from DB update value in RAMwriting value to DB

        04132023 1149 PM 15

        الحرجة المقاطع استخداموالقفل

        Static int [] arr=new int [10]

        Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

        04132023 1149 PM 16

        النياسب بين ThreadsالتزامنSynchronization

        هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

        Thread B Globalx=4

        Thread A

        Globalx=3

        call function

        Func(Globalx )

        04132023 1149 PM 17

        التزامن SynchronizationتحقيقImplementation

        من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

        المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

        القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

        04132023 1149 PM 18

        التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

        (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

        (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

        المناهج هذه من

        Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

        04132023 1149 PM 19

        Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

        من np 1األعداد

        04132023 1149 PM 20

        Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

        النياسب بين التزامن

        مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

        الطابعة مثال

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

        04132023 1149 PM 21

        Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

        مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

        ال ( Lock - unlockآلية )Mutex يستعمل

        04132023 1149 PM 22

        اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

        نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

        عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

        المبرمج مسؤولية من هي(Threads)النياسب

        المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

        مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

        04132023 1149 PM 23

        Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

        على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

        ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

        النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

        القفل على الحصول لتستعيد أخر نيسب من

        04132023 1149 PM 24

        Monitor Class

        04132023 1149 PM 25

        Producer Consumere Example

        • Advanced C Course
        • Outlines
        • مقدمة في نظم التشغيل
        • مقدمة في نظم التشغيل
        • لماذا نحتاج إلى تعدد النياسب Multithreading
        • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
        • إيقاف نيسب(Thread Terminatation)
        • النياسب التي تعمل في الخلفية Background Threads
        • Thread Class
        • Thread Class (2)
        • حالات النيسب Thread States
        • Thread Priority
        • التنافس على الموارد Concurrency
        • استخدام المقاطع الحرجة والقفل
        • استخدام المقاطع الحرجة والقفل (2)
        • التزامن بين النياسب Threads Synchronization
        • تحقيق التزامن Synchronization Implementation
        • أصناف التزامن Synchronization Classes
        • Parallel Programming Example
        • Semaphore Class
        • Mutex Class (Mutual Exclusion)
        • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
        • Monitor Class
        • Monitor Class (2)
        • Producer Consumere Example

          04132023 1149 PM 5

          النياسب تعدد إلى نحتاج لماذاMultithreading

          ( الخلفية في (Executing in Backgroundالتنفيذ العمل لتسريع مرة من اكثر مهمة إنجاز

          نيسب من أكثر على العمل تقسيم يمكن معينة صورة لمعالجة برنامج أمثل تنفيذ استغاللا بنى ) للموارد وجود حال في (SMPلمتاحة

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

          04132023 1149 PM 6

          النياسب متعددة تطبيقات بإنشاء نقوم كيفMultithreaded

          ( النيسب أن اآلن إلى يتم( Threadعلمنا التي التعليمات من مجموعة هوالبرنامج بقية مع التوازي على تنفيذها

          مثل_ ت التعليمات ال Methodهذه هذا اسم تمرير إلى Methodيتم_سمى مندوبأو ) مفوض إلى( Delegateي تسليمه يتم المندوب وهذا

          الصف من ThreadغرضDelegate نفس تحمل التي التوابع من مجموعة عن مفوض التوقيعهي

          04132023 1149 PM 7

          ( نيسب (Thread Terminatationإيقاف عمله يتنهي ومتى النيسب إيقاف يتم كيف المنهج طريق عن قسري بشكل النيسب )( Abortإيقاف م_حبذة غير الطريقة هذه

          04132023 1149 PM 8

          الخلفية في تعمل التي Background النياسبThreads

          ( المهام من مجموعة يستعمل التشغيل الخلفية( Processesنظام في تعمل والتي(Background( )باسم ويندوز نظام في ( Windows Servicesوتسمىنظام ويندوز خدمات في _سمى LinuxUnixأما daemonsفت

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

          الخلفية في( الخلفية في يعمل ما نيسب نجعل أن الخاصية( Backgroundيمكن طريق عن

          IsBackground بالقيمة ضبطها يتم trueوالتي

          ( الخلفية النياسب أمامي( )Backgroundتنتهي نيسب أخر إنتهاء (forgroundعند

          04132023 1149 PM 9

          Thread Class الصنف نظام SystemThreadingThreadيمثل مستوى في نيسب

          التشغيل الصنف في الموجود الخصائص Threadأهم

          ϑ λ ϭϟ Δϳλ ΎΧϟ

          ΩϳόΗ ϊ Οέϣ( Reference )ϰϟ Ώγϳϧϟ Ϋϔϧϣϟ Ύ˱ϳϟΎΣ CurrentThread

          ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ Ωϗ ΩΑ ϡϟϭ ϲϬΗϧϳ ΩόΑ IsAlive

          ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ ISBackground

          ΩϳόΗ ϭ ΩΩΣΗ( set or get )ϡγ Ώγϳϧϟ Name

          ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϳϠο ϓ Ώγϳϧϟ Priority

          ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϟΎΣ Ώγϳϧϟ ThreadState

          04132023 1149 PM 10

          Thread Class الصنف في الموجود المناهج Threadأهم

          ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

          ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

          ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

          ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

          Join

          (ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

          (ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

          ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

          04132023 1149 PM 11

          النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

          Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

          Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

          04132023 1149 PM 12

          Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

          (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

          ϑ λ ϭϟ ΔϣϳϘϟ

          ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

          ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

          ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

          ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

          ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

          04132023 1149 PM 13

          الموارد على التنافسConcurrency

          النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

          p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

          الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

          مالحظات

          ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

          المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

          04132023 1149 PM 14

          الحرجة المقاطع استخداموالقفل

          Lock

          read value from DB update value in RAMwriting value to DB

          04132023 1149 PM 15

          الحرجة المقاطع استخداموالقفل

          Static int [] arr=new int [10]

          Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

          04132023 1149 PM 16

          النياسب بين ThreadsالتزامنSynchronization

          هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

          Thread B Globalx=4

          Thread A

          Globalx=3

          call function

          Func(Globalx )

          04132023 1149 PM 17

          التزامن SynchronizationتحقيقImplementation

          من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

          المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

          القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

          04132023 1149 PM 18

          التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

          (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

          (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

          المناهج هذه من

          Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

          04132023 1149 PM 19

          Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

          من np 1األعداد

          04132023 1149 PM 20

          Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

          النياسب بين التزامن

          مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

          الطابعة مثال

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

          04132023 1149 PM 21

          Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

          مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

          ال ( Lock - unlockآلية )Mutex يستعمل

          04132023 1149 PM 22

          اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

          نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

          عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

          المبرمج مسؤولية من هي(Threads)النياسب

          المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

          مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

          04132023 1149 PM 23

          Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

          على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

          ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

          النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

          القفل على الحصول لتستعيد أخر نيسب من

          04132023 1149 PM 24

          Monitor Class

          04132023 1149 PM 25

          Producer Consumere Example

          • Advanced C Course
          • Outlines
          • مقدمة في نظم التشغيل
          • مقدمة في نظم التشغيل
          • لماذا نحتاج إلى تعدد النياسب Multithreading
          • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
          • إيقاف نيسب(Thread Terminatation)
          • النياسب التي تعمل في الخلفية Background Threads
          • Thread Class
          • Thread Class (2)
          • حالات النيسب Thread States
          • Thread Priority
          • التنافس على الموارد Concurrency
          • استخدام المقاطع الحرجة والقفل
          • استخدام المقاطع الحرجة والقفل (2)
          • التزامن بين النياسب Threads Synchronization
          • تحقيق التزامن Synchronization Implementation
          • أصناف التزامن Synchronization Classes
          • Parallel Programming Example
          • Semaphore Class
          • Mutex Class (Mutual Exclusion)
          • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
          • Monitor Class
          • Monitor Class (2)
          • Producer Consumere Example

            04132023 1149 PM 6

            النياسب متعددة تطبيقات بإنشاء نقوم كيفMultithreaded

            ( النيسب أن اآلن إلى يتم( Threadعلمنا التي التعليمات من مجموعة هوالبرنامج بقية مع التوازي على تنفيذها

            مثل_ ت التعليمات ال Methodهذه هذا اسم تمرير إلى Methodيتم_سمى مندوبأو ) مفوض إلى( Delegateي تسليمه يتم المندوب وهذا

            الصف من ThreadغرضDelegate نفس تحمل التي التوابع من مجموعة عن مفوض التوقيعهي

            04132023 1149 PM 7

            ( نيسب (Thread Terminatationإيقاف عمله يتنهي ومتى النيسب إيقاف يتم كيف المنهج طريق عن قسري بشكل النيسب )( Abortإيقاف م_حبذة غير الطريقة هذه

            04132023 1149 PM 8

            الخلفية في تعمل التي Background النياسبThreads

            ( المهام من مجموعة يستعمل التشغيل الخلفية( Processesنظام في تعمل والتي(Background( )باسم ويندوز نظام في ( Windows Servicesوتسمىنظام ويندوز خدمات في _سمى LinuxUnixأما daemonsفت

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

            الخلفية في( الخلفية في يعمل ما نيسب نجعل أن الخاصية( Backgroundيمكن طريق عن

            IsBackground بالقيمة ضبطها يتم trueوالتي

            ( الخلفية النياسب أمامي( )Backgroundتنتهي نيسب أخر إنتهاء (forgroundعند

            04132023 1149 PM 9

            Thread Class الصنف نظام SystemThreadingThreadيمثل مستوى في نيسب

            التشغيل الصنف في الموجود الخصائص Threadأهم

            ϑ λ ϭϟ Δϳλ ΎΧϟ

            ΩϳόΗ ϊ Οέϣ( Reference )ϰϟ Ώγϳϧϟ Ϋϔϧϣϟ Ύ˱ϳϟΎΣ CurrentThread

            ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ Ωϗ ΩΑ ϡϟϭ ϲϬΗϧϳ ΩόΑ IsAlive

            ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ ISBackground

            ΩϳόΗ ϭ ΩΩΣΗ( set or get )ϡγ Ώγϳϧϟ Name

            ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϳϠο ϓ Ώγϳϧϟ Priority

            ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϟΎΣ Ώγϳϧϟ ThreadState

            04132023 1149 PM 10

            Thread Class الصنف في الموجود المناهج Threadأهم

            ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

            ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

            ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

            ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

            Join

            (ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

            (ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

            ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

            04132023 1149 PM 11

            النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

            Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

            Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

            04132023 1149 PM 12

            Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

            (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

            ϑ λ ϭϟ ΔϣϳϘϟ

            ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

            ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

            ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

            ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

            ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

            04132023 1149 PM 13

            الموارد على التنافسConcurrency

            النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

            p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

            الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

            مالحظات

            ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

            المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

            04132023 1149 PM 14

            الحرجة المقاطع استخداموالقفل

            Lock

            read value from DB update value in RAMwriting value to DB

            04132023 1149 PM 15

            الحرجة المقاطع استخداموالقفل

            Static int [] arr=new int [10]

            Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

            04132023 1149 PM 16

            النياسب بين ThreadsالتزامنSynchronization

            هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

            Thread B Globalx=4

            Thread A

            Globalx=3

            call function

            Func(Globalx )

            04132023 1149 PM 17

            التزامن SynchronizationتحقيقImplementation

            من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

            المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

            القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

            04132023 1149 PM 18

            التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

            (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

            (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

            المناهج هذه من

            Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

            04132023 1149 PM 19

            Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

            من np 1األعداد

            04132023 1149 PM 20

            Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

            النياسب بين التزامن

            مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

            الطابعة مثال

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

            04132023 1149 PM 21

            Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

            مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

            ال ( Lock - unlockآلية )Mutex يستعمل

            04132023 1149 PM 22

            اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

            نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

            عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

            المبرمج مسؤولية من هي(Threads)النياسب

            المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

            مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

            04132023 1149 PM 23

            Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

            على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

            ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

            النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

            القفل على الحصول لتستعيد أخر نيسب من

            04132023 1149 PM 24

            Monitor Class

            04132023 1149 PM 25

            Producer Consumere Example

            • Advanced C Course
            • Outlines
            • مقدمة في نظم التشغيل
            • مقدمة في نظم التشغيل
            • لماذا نحتاج إلى تعدد النياسب Multithreading
            • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
            • إيقاف نيسب(Thread Terminatation)
            • النياسب التي تعمل في الخلفية Background Threads
            • Thread Class
            • Thread Class (2)
            • حالات النيسب Thread States
            • Thread Priority
            • التنافس على الموارد Concurrency
            • استخدام المقاطع الحرجة والقفل
            • استخدام المقاطع الحرجة والقفل (2)
            • التزامن بين النياسب Threads Synchronization
            • تحقيق التزامن Synchronization Implementation
            • أصناف التزامن Synchronization Classes
            • Parallel Programming Example
            • Semaphore Class
            • Mutex Class (Mutual Exclusion)
            • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
            • Monitor Class
            • Monitor Class (2)
            • Producer Consumere Example

              04132023 1149 PM 7

              ( نيسب (Thread Terminatationإيقاف عمله يتنهي ومتى النيسب إيقاف يتم كيف المنهج طريق عن قسري بشكل النيسب )( Abortإيقاف م_حبذة غير الطريقة هذه

              04132023 1149 PM 8

              الخلفية في تعمل التي Background النياسبThreads

              ( المهام من مجموعة يستعمل التشغيل الخلفية( Processesنظام في تعمل والتي(Background( )باسم ويندوز نظام في ( Windows Servicesوتسمىنظام ويندوز خدمات في _سمى LinuxUnixأما daemonsفت

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

              الخلفية في( الخلفية في يعمل ما نيسب نجعل أن الخاصية( Backgroundيمكن طريق عن

              IsBackground بالقيمة ضبطها يتم trueوالتي

              ( الخلفية النياسب أمامي( )Backgroundتنتهي نيسب أخر إنتهاء (forgroundعند

              04132023 1149 PM 9

              Thread Class الصنف نظام SystemThreadingThreadيمثل مستوى في نيسب

              التشغيل الصنف في الموجود الخصائص Threadأهم

              ϑ λ ϭϟ Δϳλ ΎΧϟ

              ΩϳόΗ ϊ Οέϣ( Reference )ϰϟ Ώγϳϧϟ Ϋϔϧϣϟ Ύ˱ϳϟΎΣ CurrentThread

              ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ Ωϗ ΩΑ ϡϟϭ ϲϬΗϧϳ ΩόΑ IsAlive

              ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ ISBackground

              ΩϳόΗ ϭ ΩΩΣΗ( set or get )ϡγ Ώγϳϧϟ Name

              ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϳϠο ϓ Ώγϳϧϟ Priority

              ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϟΎΣ Ώγϳϧϟ ThreadState

              04132023 1149 PM 10

              Thread Class الصنف في الموجود المناهج Threadأهم

              ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

              ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

              ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

              ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

              Join

              (ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

              (ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

              ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

              04132023 1149 PM 11

              النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

              Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

              Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

              04132023 1149 PM 12

              Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

              (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

              ϑ λ ϭϟ ΔϣϳϘϟ

              ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

              ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

              ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

              ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

              ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

              04132023 1149 PM 13

              الموارد على التنافسConcurrency

              النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

              p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

              الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

              مالحظات

              ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

              المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

              04132023 1149 PM 14

              الحرجة المقاطع استخداموالقفل

              Lock

              read value from DB update value in RAMwriting value to DB

              04132023 1149 PM 15

              الحرجة المقاطع استخداموالقفل

              Static int [] arr=new int [10]

              Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

              04132023 1149 PM 16

              النياسب بين ThreadsالتزامنSynchronization

              هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

              Thread B Globalx=4

              Thread A

              Globalx=3

              call function

              Func(Globalx )

              04132023 1149 PM 17

              التزامن SynchronizationتحقيقImplementation

              من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

              المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

              القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

              04132023 1149 PM 18

              التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

              (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

              (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

              المناهج هذه من

              Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

              04132023 1149 PM 19

              Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

              من np 1األعداد

              04132023 1149 PM 20

              Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

              النياسب بين التزامن

              مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

              الطابعة مثال

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

              04132023 1149 PM 21

              Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

              مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

              ال ( Lock - unlockآلية )Mutex يستعمل

              04132023 1149 PM 22

              اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

              نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

              عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

              المبرمج مسؤولية من هي(Threads)النياسب

              المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

              مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

              04132023 1149 PM 23

              Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

              على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

              ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

              النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

              القفل على الحصول لتستعيد أخر نيسب من

              04132023 1149 PM 24

              Monitor Class

              04132023 1149 PM 25

              Producer Consumere Example

              • Advanced C Course
              • Outlines
              • مقدمة في نظم التشغيل
              • مقدمة في نظم التشغيل
              • لماذا نحتاج إلى تعدد النياسب Multithreading
              • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
              • إيقاف نيسب(Thread Terminatation)
              • النياسب التي تعمل في الخلفية Background Threads
              • Thread Class
              • Thread Class (2)
              • حالات النيسب Thread States
              • Thread Priority
              • التنافس على الموارد Concurrency
              • استخدام المقاطع الحرجة والقفل
              • استخدام المقاطع الحرجة والقفل (2)
              • التزامن بين النياسب Threads Synchronization
              • تحقيق التزامن Synchronization Implementation
              • أصناف التزامن Synchronization Classes
              • Parallel Programming Example
              • Semaphore Class
              • Mutex Class (Mutual Exclusion)
              • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
              • Monitor Class
              • Monitor Class (2)
              • Producer Consumere Example

                04132023 1149 PM 8

                الخلفية في تعمل التي Background النياسبThreads

                ( المهام من مجموعة يستعمل التشغيل الخلفية( Processesنظام في تعمل والتي(Background( )باسم ويندوز نظام في ( Windows Servicesوتسمىنظام ويندوز خدمات في _سمى LinuxUnixأما daemonsفت

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

                الخلفية في( الخلفية في يعمل ما نيسب نجعل أن الخاصية( Backgroundيمكن طريق عن

                IsBackground بالقيمة ضبطها يتم trueوالتي

                ( الخلفية النياسب أمامي( )Backgroundتنتهي نيسب أخر إنتهاء (forgroundعند

                04132023 1149 PM 9

                Thread Class الصنف نظام SystemThreadingThreadيمثل مستوى في نيسب

                التشغيل الصنف في الموجود الخصائص Threadأهم

                ϑ λ ϭϟ Δϳλ ΎΧϟ

                ΩϳόΗ ϊ Οέϣ( Reference )ϰϟ Ώγϳϧϟ Ϋϔϧϣϟ Ύ˱ϳϟΎΣ CurrentThread

                ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ Ωϗ ΩΑ ϡϟϭ ϲϬΗϧϳ ΩόΑ IsAlive

                ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ ISBackground

                ΩϳόΗ ϭ ΩΩΣΗ( set or get )ϡγ Ώγϳϧϟ Name

                ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϳϠο ϓ Ώγϳϧϟ Priority

                ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϟΎΣ Ώγϳϧϟ ThreadState

                04132023 1149 PM 10

                Thread Class الصنف في الموجود المناهج Threadأهم

                ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

                ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

                ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

                ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

                Join

                (ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

                (ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

                ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

                04132023 1149 PM 11

                النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

                Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

                Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

                04132023 1149 PM 12

                Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

                (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

                ϑ λ ϭϟ ΔϣϳϘϟ

                ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

                ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

                ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

                ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

                ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

                04132023 1149 PM 13

                الموارد على التنافسConcurrency

                النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

                p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

                الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

                مالحظات

                ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

                المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

                04132023 1149 PM 14

                الحرجة المقاطع استخداموالقفل

                Lock

                read value from DB update value in RAMwriting value to DB

                04132023 1149 PM 15

                الحرجة المقاطع استخداموالقفل

                Static int [] arr=new int [10]

                Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

                04132023 1149 PM 16

                النياسب بين ThreadsالتزامنSynchronization

                هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

                Thread B Globalx=4

                Thread A

                Globalx=3

                call function

                Func(Globalx )

                04132023 1149 PM 17

                التزامن SynchronizationتحقيقImplementation

                من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                04132023 1149 PM 18

                التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                المناهج هذه من

                Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                04132023 1149 PM 19

                Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                من np 1األعداد

                04132023 1149 PM 20

                Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                النياسب بين التزامن

                مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                الطابعة مثال

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

                04132023 1149 PM 21

                Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                ال ( Lock - unlockآلية )Mutex يستعمل

                04132023 1149 PM 22

                اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                المبرمج مسؤولية من هي(Threads)النياسب

                المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                04132023 1149 PM 23

                Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                القفل على الحصول لتستعيد أخر نيسب من

                04132023 1149 PM 24

                Monitor Class

                04132023 1149 PM 25

                Producer Consumere Example

                • Advanced C Course
                • Outlines
                • مقدمة في نظم التشغيل
                • مقدمة في نظم التشغيل
                • لماذا نحتاج إلى تعدد النياسب Multithreading
                • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                • إيقاف نيسب(Thread Terminatation)
                • النياسب التي تعمل في الخلفية Background Threads
                • Thread Class
                • Thread Class (2)
                • حالات النيسب Thread States
                • Thread Priority
                • التنافس على الموارد Concurrency
                • استخدام المقاطع الحرجة والقفل
                • استخدام المقاطع الحرجة والقفل (2)
                • التزامن بين النياسب Threads Synchronization
                • تحقيق التزامن Synchronization Implementation
                • أصناف التزامن Synchronization Classes
                • Parallel Programming Example
                • Semaphore Class
                • Mutex Class (Mutual Exclusion)
                • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                • Monitor Class
                • Monitor Class (2)
                • Producer Consumere Example

                  04132023 1149 PM 9

                  Thread Class الصنف نظام SystemThreadingThreadيمثل مستوى في نيسب

                  التشغيل الصنف في الموجود الخصائص Threadأهم

                  ϑ λ ϭϟ Δϳλ ΎΧϟ

                  ΩϳόΗ ϊ Οέϣ( Reference )ϰϟ Ώγϳϧϟ Ϋϔϧϣϟ Ύ˱ϳϟΎΣ CurrentThread

                  ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ Ωϗ ΩΑ ϡϟϭ ϲϬΗϧϳ ΩόΑ IsAlive

                  ΩϳόΗ true Ϋ ϥΎϛ Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ ISBackground

                  ΩϳόΗ ϭ ΩΩΣΗ( set or get )ϡγ Ώγϳϧϟ Name

                  ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϳϠο ϓ Ώγϳϧϟ Priority

                  ΩϳόΗ ϭ ΩΩΣΗ( set or get )ΔϟΎΣ Ώγϳϧϟ ThreadState

                  04132023 1149 PM 10

                  Thread Class الصنف في الموجود المناهج Threadأهم

                  ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

                  ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

                  ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

                  ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

                  Join

                  (ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

                  (ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

                  ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

                  04132023 1149 PM 11

                  النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

                  Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

                  Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

                  04132023 1149 PM 12

                  Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

                  (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

                  ϑ λ ϭϟ ΔϣϳϘϟ

                  ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

                  ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

                  ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

                  ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

                  ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

                  04132023 1149 PM 13

                  الموارد على التنافسConcurrency

                  النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

                  p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

                  الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

                  مالحظات

                  ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

                  المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

                  04132023 1149 PM 14

                  الحرجة المقاطع استخداموالقفل

                  Lock

                  read value from DB update value in RAMwriting value to DB

                  04132023 1149 PM 15

                  الحرجة المقاطع استخداموالقفل

                  Static int [] arr=new int [10]

                  Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

                  04132023 1149 PM 16

                  النياسب بين ThreadsالتزامنSynchronization

                  هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

                  Thread B Globalx=4

                  Thread A

                  Globalx=3

                  call function

                  Func(Globalx )

                  04132023 1149 PM 17

                  التزامن SynchronizationتحقيقImplementation

                  من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                  المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                  القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                  04132023 1149 PM 18

                  التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                  (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                  (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                  المناهج هذه من

                  Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                  04132023 1149 PM 19

                  Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                  من np 1األعداد

                  04132023 1149 PM 20

                  Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                  النياسب بين التزامن

                  مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                  الطابعة مثال

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

                  04132023 1149 PM 21

                  Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                  مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                  ال ( Lock - unlockآلية )Mutex يستعمل

                  04132023 1149 PM 22

                  اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                  نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                  عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                  المبرمج مسؤولية من هي(Threads)النياسب

                  المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                  مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                  04132023 1149 PM 23

                  Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                  على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                  ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                  النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                  القفل على الحصول لتستعيد أخر نيسب من

                  04132023 1149 PM 24

                  Monitor Class

                  04132023 1149 PM 25

                  Producer Consumere Example

                  • Advanced C Course
                  • Outlines
                  • مقدمة في نظم التشغيل
                  • مقدمة في نظم التشغيل
                  • لماذا نحتاج إلى تعدد النياسب Multithreading
                  • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                  • إيقاف نيسب(Thread Terminatation)
                  • النياسب التي تعمل في الخلفية Background Threads
                  • Thread Class
                  • Thread Class (2)
                  • حالات النيسب Thread States
                  • Thread Priority
                  • التنافس على الموارد Concurrency
                  • استخدام المقاطع الحرجة والقفل
                  • استخدام المقاطع الحرجة والقفل (2)
                  • التزامن بين النياسب Threads Synchronization
                  • تحقيق التزامن Synchronization Implementation
                  • أصناف التزامن Synchronization Classes
                  • Parallel Programming Example
                  • Semaphore Class
                  • Mutex Class (Mutual Exclusion)
                  • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                  • Monitor Class
                  • Monitor Class (2)
                  • Producer Consumere Example

                    04132023 1149 PM 10

                    Thread Class الصنف في الموجود المناهج Threadأهم

                    ϑ λ ϭϟ (ΔϘϳέρϟmethod) ΏγϳϧϟΫϳϔϧΗΑΫϳϔϧΗΑ ΩΑϟ Start

                    ϱέϭϓϝϛηΑΏγϳϧϟΫϳϔϧΗϲϬϧΗ Abort

                    ΔϟΎΣϲϓϥϭϛϳϱΫϟ Ώγϳϧϟϊ ρΎϘΗwaitSleepJoin Interrupt

                    ΫϳϔϧΗϲϬΗϧϳϰΗΣ )ΞϬϧϣϟΫϬϟϲϋΩΗγϣ˵ϟΏγϳϧϟ(ϥϳόϣΏγϳϧέΎυΗϧΏγϳϧϟΫϫ

                    Join

                    (ΓΩϭΩΣϣέϳ ΓέΗϔϟΏγϳϧϟϝϣϋ˯ΎΟέϏpause )-Εϗϣϑ ΎϘϳ - Suspend

                    (ϕΑΎγϟϊ ΑΎΗϟϝϣϋϝρΑΗSuspend) Resume

                    ΓΩΩΣϣΓέΗϔϟΏγϳϧϟ ϡϭϧΗ Sleep

                    04132023 1149 PM 11

                    النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

                    Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

                    Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

                    04132023 1149 PM 12

                    Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

                    (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

                    ϑ λ ϭϟ ΔϣϳϘϟ

                    ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

                    ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

                    ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

                    ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

                    ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

                    04132023 1149 PM 13

                    الموارد على التنافسConcurrency

                    النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

                    p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

                    الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

                    مالحظات

                    ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

                    المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

                    04132023 1149 PM 14

                    الحرجة المقاطع استخداموالقفل

                    Lock

                    read value from DB update value in RAMwriting value to DB

                    04132023 1149 PM 15

                    الحرجة المقاطع استخداموالقفل

                    Static int [] arr=new int [10]

                    Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

                    04132023 1149 PM 16

                    النياسب بين ThreadsالتزامنSynchronization

                    هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

                    Thread B Globalx=4

                    Thread A

                    Globalx=3

                    call function

                    Func(Globalx )

                    04132023 1149 PM 17

                    التزامن SynchronizationتحقيقImplementation

                    من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                    المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                    القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                    04132023 1149 PM 18

                    التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                    (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                    (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                    المناهج هذه من

                    Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                    04132023 1149 PM 19

                    Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                    من np 1األعداد

                    04132023 1149 PM 20

                    Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                    النياسب بين التزامن

                    مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                    الطابعة مثال

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

                    04132023 1149 PM 21

                    Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                    مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                    ال ( Lock - unlockآلية )Mutex يستعمل

                    04132023 1149 PM 22

                    اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                    نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                    عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                    المبرمج مسؤولية من هي(Threads)النياسب

                    المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                    مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                    04132023 1149 PM 23

                    Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                    على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                    ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                    النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                    القفل على الحصول لتستعيد أخر نيسب من

                    04132023 1149 PM 24

                    Monitor Class

                    04132023 1149 PM 25

                    Producer Consumere Example

                    • Advanced C Course
                    • Outlines
                    • مقدمة في نظم التشغيل
                    • مقدمة في نظم التشغيل
                    • لماذا نحتاج إلى تعدد النياسب Multithreading
                    • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                    • إيقاف نيسب(Thread Terminatation)
                    • النياسب التي تعمل في الخلفية Background Threads
                    • Thread Class
                    • Thread Class (2)
                    • حالات النيسب Thread States
                    • Thread Priority
                    • التنافس على الموارد Concurrency
                    • استخدام المقاطع الحرجة والقفل
                    • استخدام المقاطع الحرجة والقفل (2)
                    • التزامن بين النياسب Threads Synchronization
                    • تحقيق التزامن Synchronization Implementation
                    • أصناف التزامن Synchronization Classes
                    • Parallel Programming Example
                    • Semaphore Class
                    • Mutex Class (Mutual Exclusion)
                    • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                    • Monitor Class
                    • Monitor Class (2)
                    • Producer Consumere Example

                      04132023 1149 PM 11

                      النيسب Thread Statesحاالت ( التعداد ضمن موجودة وهي حاالت عدة أو حالة نيسب الم_سمى( EnumلكلThreadStateΔϣϳϘϟ ϒλϮϟ Running Ώγϳϧϟ ϝϣόϳ ϥϵ StopRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ(Abort )SuspendRequested Ώγϳϧϟ Ωϗ ϝΑϘΗγ ΓέΎη ϑ ΎϘϳ Εϗϣ(pause )Background Ώγϳϧϟ ϝϣόϳ ϲϓ ΔϳϔϠΧϟ Unstarted Ώγϳϧϟ ϡΗ ϩΎηϧ ϥϛϟϭ ϡϟ ϡΗϳ ΫϳϔϧΗ ΞϬϧϣϟ Start)( Stopped Ώγϳϧϟ ϡΗ ϪϓΎϘϳ )ΕΎϣΐδϴϨϟ (ϲΎϬϧϞϜθΑ WaitSleepJoin Ώγϳϧϟ ˯ΎϋΩΗγϥο ϑ ϗϭΗϣwait ϭSleep ϭJoin Suspended Ώγϳϧϟ ϑ ϗϭΗϣ ϝϛηΑ Εϗϣ AbortRequested ϝϘϧΗϳ Ώγϳϧϟ ϰϟ ϩΫϫ ΔϟΎΣϟ ΎϣΩϧϋ ϥϭϛϧ Ωϗ ΎϧϳϋΩΗγ ΞϬϧϣϟ

                      Abort ΏγϳϧϠϟ ϥϛϟϭ Ϋϫ Ώγϳϧϟ ϡϟ ϝΑϘΗγϳ ΩόΑ ΓέΎη ϑ ΎϘϳϹ ϲΗϟϭ ϡΗϳ έϳΑόΗϟ ΎϬϧϋ ˯ΎϧΛΗγϹΎΑ( ThreadAbortException )ϱΫϟϭ ϲϬϧϳ ϝϣϋ Ϋϫ Ώγϳϧϟ

                      Aborted α ϔϧ ΔϟΎΣϟ ΔϘΑΎγϟ(AbortRequested) ϭ Ώγϳϧϟ Ωϗ ϑ ϗϭΗ(ΕΎϣ )ϥϛϟϭ ϪΗΎΣ ϡϟ έϳϐΗΗ ϰϟ ΔϟΎΣϟ Stopped

                      04132023 1149 PM 12

                      Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

                      (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

                      ϑ λ ϭϟ ΔϣϳϘϟ

                      ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

                      ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

                      ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

                      ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

                      ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

                      04132023 1149 PM 13

                      الموارد على التنافسConcurrency

                      النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

                      p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

                      الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

                      مالحظات

                      ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

                      المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

                      04132023 1149 PM 14

                      الحرجة المقاطع استخداموالقفل

                      Lock

                      read value from DB update value in RAMwriting value to DB

                      04132023 1149 PM 15

                      الحرجة المقاطع استخداموالقفل

                      Static int [] arr=new int [10]

                      Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

                      04132023 1149 PM 16

                      النياسب بين ThreadsالتزامنSynchronization

                      هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

                      Thread B Globalx=4

                      Thread A

                      Globalx=3

                      call function

                      Func(Globalx )

                      04132023 1149 PM 17

                      التزامن SynchronizationتحقيقImplementation

                      من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                      المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                      القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                      04132023 1149 PM 18

                      التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                      (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                      (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                      المناهج هذه من

                      Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                      04132023 1149 PM 19

                      Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                      من np 1األعداد

                      04132023 1149 PM 20

                      Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                      النياسب بين التزامن

                      مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                      الطابعة مثال

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

                      04132023 1149 PM 21

                      Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                      مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                      ال ( Lock - unlockآلية )Mutex يستعمل

                      04132023 1149 PM 22

                      اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                      نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                      عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                      المبرمج مسؤولية من هي(Threads)النياسب

                      المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                      مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                      04132023 1149 PM 23

                      Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                      على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                      ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                      النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                      القفل على الحصول لتستعيد أخر نيسب من

                      04132023 1149 PM 24

                      Monitor Class

                      04132023 1149 PM 25

                      Producer Consumere Example

                      • Advanced C Course
                      • Outlines
                      • مقدمة في نظم التشغيل
                      • مقدمة في نظم التشغيل
                      • لماذا نحتاج إلى تعدد النياسب Multithreading
                      • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                      • إيقاف نيسب(Thread Terminatation)
                      • النياسب التي تعمل في الخلفية Background Threads
                      • Thread Class
                      • Thread Class (2)
                      • حالات النيسب Thread States
                      • Thread Priority
                      • التنافس على الموارد Concurrency
                      • استخدام المقاطع الحرجة والقفل
                      • استخدام المقاطع الحرجة والقفل (2)
                      • التزامن بين النياسب Threads Synchronization
                      • تحقيق التزامن Synchronization Implementation
                      • أصناف التزامن Synchronization Classes
                      • Parallel Programming Example
                      • Semaphore Class
                      • Mutex Class (Mutual Exclusion)
                      • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                      • Monitor Class
                      • Monitor Class (2)
                      • Producer Consumere Example

                        04132023 1149 PM 12

                        Thread Priority ) ( نفس في معه تشترك التي النياسب من لغيره بالنسبة أولوية أفضلية نيسب لكل

                        (Processالمهمة ) بأفضلية النياسب جميع إنشاء Normalيتم

                        ϑ λ ϭϟ ΔϣϳϘϟ

                        ΎϳϠόϟΔϳϠο ϓϷϪϟΏγϳϧϟ Highest

                        ϱΩΎόϟΏγϳϧϟϥϣϰϠϋΔϳϠο ϓϪϟΏγϳϧϟ AboveNormal

                        ΔϳΩΎϋΔϳϠο ϓϪϟΏγϳϧϟ Normal

                        ϱΩΎόϟΏγϳϧϟϥϣϰϧΩΔϳϠο ϓϪϟΏγϳϧϟ BelowNormal

                        ϪϟΏγϳϧϟϷΔϳϠο ϓΎϳϧΩϟ Lowest

                        04132023 1149 PM 13

                        الموارد على التنافسConcurrency

                        النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

                        p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

                        الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

                        مالحظات

                        ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

                        المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

                        04132023 1149 PM 14

                        الحرجة المقاطع استخداموالقفل

                        Lock

                        read value from DB update value in RAMwriting value to DB

                        04132023 1149 PM 15

                        الحرجة المقاطع استخداموالقفل

                        Static int [] arr=new int [10]

                        Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

                        04132023 1149 PM 16

                        النياسب بين ThreadsالتزامنSynchronization

                        هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

                        Thread B Globalx=4

                        Thread A

                        Globalx=3

                        call function

                        Func(Globalx )

                        04132023 1149 PM 17

                        التزامن SynchronizationتحقيقImplementation

                        من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                        المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                        القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                        04132023 1149 PM 18

                        التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                        (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                        (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                        المناهج هذه من

                        Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                        04132023 1149 PM 19

                        Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                        من np 1األعداد

                        04132023 1149 PM 20

                        Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                        النياسب بين التزامن

                        مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                        الطابعة مثال

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

                        04132023 1149 PM 21

                        Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                        مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                        ال ( Lock - unlockآلية )Mutex يستعمل

                        04132023 1149 PM 22

                        اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                        نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                        عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                        المبرمج مسؤولية من هي(Threads)النياسب

                        المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                        مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                        04132023 1149 PM 23

                        Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                        على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                        ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                        النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                        القفل على الحصول لتستعيد أخر نيسب من

                        04132023 1149 PM 24

                        Monitor Class

                        04132023 1149 PM 25

                        Producer Consumere Example

                        • Advanced C Course
                        • Outlines
                        • مقدمة في نظم التشغيل
                        • مقدمة في نظم التشغيل
                        • لماذا نحتاج إلى تعدد النياسب Multithreading
                        • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                        • إيقاف نيسب(Thread Terminatation)
                        • النياسب التي تعمل في الخلفية Background Threads
                        • Thread Class
                        • Thread Class (2)
                        • حالات النيسب Thread States
                        • Thread Priority
                        • التنافس على الموارد Concurrency
                        • استخدام المقاطع الحرجة والقفل
                        • استخدام المقاطع الحرجة والقفل (2)
                        • التزامن بين النياسب Threads Synchronization
                        • تحقيق التزامن Synchronization Implementation
                        • أصناف التزامن Synchronization Classes
                        • Parallel Programming Example
                        • Semaphore Class
                        • Mutex Class (Mutual Exclusion)
                        • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                        • Monitor Class
                        • Monitor Class (2)
                        • Producer Consumere Example

                          04132023 1149 PM 13

                          الموارد على التنافسConcurrency

                          النياسب التطبيقات ذات ( Multithreaded Application)متعددة p جدا عظيمة فوائد

                          p أبدا p سهال p أمرا ليس النياسب إدارة ستكون النتائج فإن الذاكرة في مشترك غرض على العمل نيسبان حاول إذا

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

                          الحرجة المقاطع( Critical Sections )(القفلLock ) دخول لتحقيق طريقة واحد نيسبوهي الحرج المقطع إلى

                          مالحظات

                          ) نحتاج ) التي الشيفرة الكود من جزء أصغر نقفل بحيث القفل استعمال عند الحذر علينا يجبالبرنامج ضمن حمايته إلى

                          المهام نطاق على ولكن التشغيل نظام قبل من ومطبقة موجودة هي األفكار هذه(Processes )النياسب نطاق على وسنراها

                          04132023 1149 PM 14

                          الحرجة المقاطع استخداموالقفل

                          Lock

                          read value from DB update value in RAMwriting value to DB

                          04132023 1149 PM 15

                          الحرجة المقاطع استخداموالقفل

                          Static int [] arr=new int [10]

                          Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

                          04132023 1149 PM 16

                          النياسب بين ThreadsالتزامنSynchronization

                          هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

                          Thread B Globalx=4

                          Thread A

                          Globalx=3

                          call function

                          Func(Globalx )

                          04132023 1149 PM 17

                          التزامن SynchronizationتحقيقImplementation

                          من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                          المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                          القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                          04132023 1149 PM 18

                          التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                          (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                          (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                          المناهج هذه من

                          Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                          04132023 1149 PM 19

                          Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                          من np 1األعداد

                          04132023 1149 PM 20

                          Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                          النياسب بين التزامن

                          مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                          الطابعة مثال

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

                          04132023 1149 PM 21

                          Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                          مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                          ال ( Lock - unlockآلية )Mutex يستعمل

                          04132023 1149 PM 22

                          اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                          نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                          عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                          المبرمج مسؤولية من هي(Threads)النياسب

                          المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                          مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                          04132023 1149 PM 23

                          Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                          على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                          ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                          النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                          القفل على الحصول لتستعيد أخر نيسب من

                          04132023 1149 PM 24

                          Monitor Class

                          04132023 1149 PM 25

                          Producer Consumere Example

                          • Advanced C Course
                          • Outlines
                          • مقدمة في نظم التشغيل
                          • مقدمة في نظم التشغيل
                          • لماذا نحتاج إلى تعدد النياسب Multithreading
                          • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                          • إيقاف نيسب(Thread Terminatation)
                          • النياسب التي تعمل في الخلفية Background Threads
                          • Thread Class
                          • Thread Class (2)
                          • حالات النيسب Thread States
                          • Thread Priority
                          • التنافس على الموارد Concurrency
                          • استخدام المقاطع الحرجة والقفل
                          • استخدام المقاطع الحرجة والقفل (2)
                          • التزامن بين النياسب Threads Synchronization
                          • تحقيق التزامن Synchronization Implementation
                          • أصناف التزامن Synchronization Classes
                          • Parallel Programming Example
                          • Semaphore Class
                          • Mutex Class (Mutual Exclusion)
                          • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                          • Monitor Class
                          • Monitor Class (2)
                          • Producer Consumere Example

                            04132023 1149 PM 14

                            الحرجة المقاطع استخداموالقفل

                            Lock

                            read value from DB update value in RAMwriting value to DB

                            04132023 1149 PM 15

                            الحرجة المقاطع استخداموالقفل

                            Static int [] arr=new int [10]

                            Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

                            04132023 1149 PM 16

                            النياسب بين ThreadsالتزامنSynchronization

                            هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

                            Thread B Globalx=4

                            Thread A

                            Globalx=3

                            call function

                            Func(Globalx )

                            04132023 1149 PM 17

                            التزامن SynchronizationتحقيقImplementation

                            من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                            المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                            القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                            04132023 1149 PM 18

                            التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                            (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                            (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                            المناهج هذه من

                            Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                            04132023 1149 PM 19

                            Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                            من np 1األعداد

                            04132023 1149 PM 20

                            Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                            النياسب بين التزامن

                            مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                            الطابعة مثال

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

                            04132023 1149 PM 21

                            Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                            مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                            ال ( Lock - unlockآلية )Mutex يستعمل

                            04132023 1149 PM 22

                            اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                            نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                            عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                            المبرمج مسؤولية من هي(Threads)النياسب

                            المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                            مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                            04132023 1149 PM 23

                            Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                            على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                            ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                            النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                            القفل على الحصول لتستعيد أخر نيسب من

                            04132023 1149 PM 24

                            Monitor Class

                            04132023 1149 PM 25

                            Producer Consumere Example

                            • Advanced C Course
                            • Outlines
                            • مقدمة في نظم التشغيل
                            • مقدمة في نظم التشغيل
                            • لماذا نحتاج إلى تعدد النياسب Multithreading
                            • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                            • إيقاف نيسب(Thread Terminatation)
                            • النياسب التي تعمل في الخلفية Background Threads
                            • Thread Class
                            • Thread Class (2)
                            • حالات النيسب Thread States
                            • Thread Priority
                            • التنافس على الموارد Concurrency
                            • استخدام المقاطع الحرجة والقفل
                            • استخدام المقاطع الحرجة والقفل (2)
                            • التزامن بين النياسب Threads Synchronization
                            • تحقيق التزامن Synchronization Implementation
                            • أصناف التزامن Synchronization Classes
                            • Parallel Programming Example
                            • Semaphore Class
                            • Mutex Class (Mutual Exclusion)
                            • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                            • Monitor Class
                            • Monitor Class (2)
                            • Producer Consumere Example

                              04132023 1149 PM 15

                              الحرجة المقاطع استخداموالقفل

                              Static int [] arr=new int [10]

                              Static int index++ if (indexgt=10) return ConsoleWriteLine(arr[index])

                              04132023 1149 PM 16

                              النياسب بين ThreadsالتزامنSynchronization

                              هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

                              Thread B Globalx=4

                              Thread A

                              Globalx=3

                              call function

                              Func(Globalx )

                              04132023 1149 PM 17

                              التزامن SynchronizationتحقيقImplementation

                              من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                              المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                              القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                              04132023 1149 PM 18

                              التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                              (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                              (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                              المناهج هذه من

                              Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                              04132023 1149 PM 19

                              Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                              من np 1األعداد

                              04132023 1149 PM 20

                              Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                              النياسب بين التزامن

                              مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                              الطابعة مثال

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

                              04132023 1149 PM 21

                              Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                              مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                              ال ( Lock - unlockآلية )Mutex يستعمل

                              04132023 1149 PM 22

                              اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                              نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                              عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                              المبرمج مسؤولية من هي(Threads)النياسب

                              المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                              مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                              04132023 1149 PM 23

                              Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                              على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                              ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                              النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                              القفل على الحصول لتستعيد أخر نيسب من

                              04132023 1149 PM 24

                              Monitor Class

                              04132023 1149 PM 25

                              Producer Consumere Example

                              • Advanced C Course
                              • Outlines
                              • مقدمة في نظم التشغيل
                              • مقدمة في نظم التشغيل
                              • لماذا نحتاج إلى تعدد النياسب Multithreading
                              • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                              • إيقاف نيسب(Thread Terminatation)
                              • النياسب التي تعمل في الخلفية Background Threads
                              • Thread Class
                              • Thread Class (2)
                              • حالات النيسب Thread States
                              • Thread Priority
                              • التنافس على الموارد Concurrency
                              • استخدام المقاطع الحرجة والقفل
                              • استخدام المقاطع الحرجة والقفل (2)
                              • التزامن بين النياسب Threads Synchronization
                              • تحقيق التزامن Synchronization Implementation
                              • أصناف التزامن Synchronization Classes
                              • Parallel Programming Example
                              • Semaphore Class
                              • Mutex Class (Mutual Exclusion)
                              • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                              • Monitor Class
                              • Monitor Class (2)
                              • Producer Consumere Example

                                04132023 1149 PM 16

                                النياسب بين ThreadsالتزامنSynchronization

                                هما لسببين النياسب بين المزامنة إلى نحتاجمشتركة موارد استخدامالتواقت(Concurrency)

                                Thread B Globalx=4

                                Thread A

                                Globalx=3

                                call function

                                Func(Globalx )

                                04132023 1149 PM 17

                                التزامن SynchronizationتحقيقImplementation

                                من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                                المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                                القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                                04132023 1149 PM 18

                                التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                                (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                                (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                                المناهج هذه من

                                Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                                04132023 1149 PM 19

                                Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                                من np 1األعداد

                                04132023 1149 PM 20

                                Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                                النياسب بين التزامن

                                مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                                الطابعة مثال

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

                                04132023 1149 PM 21

                                Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                                مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                                ال ( Lock - unlockآلية )Mutex يستعمل

                                04132023 1149 PM 22

                                اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                                نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                                عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                                المبرمج مسؤولية من هي(Threads)النياسب

                                المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                                مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                                04132023 1149 PM 23

                                Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                                على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                                ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                                النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                                القفل على الحصول لتستعيد أخر نيسب من

                                04132023 1149 PM 24

                                Monitor Class

                                04132023 1149 PM 25

                                Producer Consumere Example

                                • Advanced C Course
                                • Outlines
                                • مقدمة في نظم التشغيل
                                • مقدمة في نظم التشغيل
                                • لماذا نحتاج إلى تعدد النياسب Multithreading
                                • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                • إيقاف نيسب(Thread Terminatation)
                                • النياسب التي تعمل في الخلفية Background Threads
                                • Thread Class
                                • Thread Class (2)
                                • حالات النيسب Thread States
                                • Thread Priority
                                • التنافس على الموارد Concurrency
                                • استخدام المقاطع الحرجة والقفل
                                • استخدام المقاطع الحرجة والقفل (2)
                                • التزامن بين النياسب Threads Synchronization
                                • تحقيق التزامن Synchronization Implementation
                                • أصناف التزامن Synchronization Classes
                                • Parallel Programming Example
                                • Semaphore Class
                                • Mutex Class (Mutual Exclusion)
                                • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                • Monitor Class
                                • Monitor Class (2)
                                • Producer Consumere Example

                                  04132023 1149 PM 17

                                  التزامن SynchronizationتحقيقImplementation

                                  من مال سحب بعمليات والقيام مصرفي حساب على نيسب من أكثر ولوج مسألةالرصيد

                                  المثال بعرض تزامن سنقوم دون من تزامن مرة مع مرة و ( في تكون النياسب وبقية الغرض على قفل يضع الحرج المقطع إلى يدخل ما لحظة في واحد نيسب فقط

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

                                  القفل التشغيل نظام يقوم النياسب ثم أحد إنتظار بإختيار حالة في التي الحرج المقطع في للدخول

                                  04132023 1149 PM 18

                                  التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                                  (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                                  (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                                  المناهج هذه من

                                  Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                                  04132023 1149 PM 19

                                  Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                                  من np 1األعداد

                                  04132023 1149 PM 20

                                  Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                                  النياسب بين التزامن

                                  مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                                  الطابعة مثال

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

                                  04132023 1149 PM 21

                                  Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                                  مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                                  ال ( Lock - unlockآلية )Mutex يستعمل

                                  04132023 1149 PM 22

                                  اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                                  نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                                  عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                                  المبرمج مسؤولية من هي(Threads)النياسب

                                  المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                                  مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                                  04132023 1149 PM 23

                                  Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                                  على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                                  ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                                  النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                                  القفل على الحصول لتستعيد أخر نيسب من

                                  04132023 1149 PM 24

                                  Monitor Class

                                  04132023 1149 PM 25

                                  Producer Consumere Example

                                  • Advanced C Course
                                  • Outlines
                                  • مقدمة في نظم التشغيل
                                  • مقدمة في نظم التشغيل
                                  • لماذا نحتاج إلى تعدد النياسب Multithreading
                                  • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                  • إيقاف نيسب(Thread Terminatation)
                                  • النياسب التي تعمل في الخلفية Background Threads
                                  • Thread Class
                                  • Thread Class (2)
                                  • حالات النيسب Thread States
                                  • Thread Priority
                                  • التنافس على الموارد Concurrency
                                  • استخدام المقاطع الحرجة والقفل
                                  • استخدام المقاطع الحرجة والقفل (2)
                                  • التزامن بين النياسب Threads Synchronization
                                  • تحقيق التزامن Synchronization Implementation
                                  • أصناف التزامن Synchronization Classes
                                  • Parallel Programming Example
                                  • Semaphore Class
                                  • Mutex Class (Mutual Exclusion)
                                  • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                  • Monitor Class
                                  • Monitor Class (2)
                                  • Producer Consumere Example

                                    04132023 1149 PM 18

                                    التزامن Synchronization Classesأصناف الصفInterlocked ( مناهج على الصنف هذه آمنة (methodيحتوي

                                    (Safe ) العمليات اآلمنةلتقديم نياسب عدة بين المشتركة المتحوالت على هي المناهج أن( atomic )ذريةهذه عن المنهجأي عبارة مناقلةهو

                                    (Transaction ) كامل بشكل تتم أن مقاطعة فإما المعالج دون من W أبدا تتم ال أن أو

                                    المناهج هذه من

                                    Increment - Decrement Exchange القديمة )األصليةالقيمة ويعيد متحولفي قيمةيضع للمتحول( CompareExchange

                                    04132023 1149 PM 19

                                    Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                                    من np 1األعداد

                                    04132023 1149 PM 20

                                    Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                                    النياسب بين التزامن

                                    مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                                    الطابعة مثال

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

                                    04132023 1149 PM 21

                                    Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                                    مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                                    ال ( Lock - unlockآلية )Mutex يستعمل

                                    04132023 1149 PM 22

                                    اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                                    نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                                    عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                                    المبرمج مسؤولية من هي(Threads)النياسب

                                    المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                                    مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                                    04132023 1149 PM 23

                                    Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                                    على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                                    ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                                    النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                                    القفل على الحصول لتستعيد أخر نيسب من

                                    04132023 1149 PM 24

                                    Monitor Class

                                    04132023 1149 PM 25

                                    Producer Consumere Example

                                    • Advanced C Course
                                    • Outlines
                                    • مقدمة في نظم التشغيل
                                    • مقدمة في نظم التشغيل
                                    • لماذا نحتاج إلى تعدد النياسب Multithreading
                                    • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                    • إيقاف نيسب(Thread Terminatation)
                                    • النياسب التي تعمل في الخلفية Background Threads
                                    • Thread Class
                                    • Thread Class (2)
                                    • حالات النيسب Thread States
                                    • Thread Priority
                                    • التنافس على الموارد Concurrency
                                    • استخدام المقاطع الحرجة والقفل
                                    • استخدام المقاطع الحرجة والقفل (2)
                                    • التزامن بين النياسب Threads Synchronization
                                    • تحقيق التزامن Synchronization Implementation
                                    • أصناف التزامن Synchronization Classes
                                    • Parallel Programming Example
                                    • Semaphore Class
                                    • Mutex Class (Mutual Exclusion)
                                    • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                    • Monitor Class
                                    • Monitor Class (2)
                                    • Producer Consumere Example

                                      04132023 1149 PM 19

                                      Parallel Programming Example من األعداد بجمع pولدينا n 1جمع نيسب كل يقوم حيث نيسب

                                      من np 1األعداد

                                      04132023 1149 PM 20

                                      Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                                      النياسب بين التزامن

                                      مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                                      الطابعة مثال

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

                                      04132023 1149 PM 21

                                      Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                                      مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                                      ال ( Lock - unlockآلية )Mutex يستعمل

                                      04132023 1149 PM 22

                                      اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                                      نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                                      عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                                      المبرمج مسؤولية من هي(Threads)النياسب

                                      المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                                      مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                                      04132023 1149 PM 23

                                      Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                                      على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                                      ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                                      النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                                      القفل على الحصول لتستعيد أخر نيسب من

                                      04132023 1149 PM 24

                                      Monitor Class

                                      04132023 1149 PM 25

                                      Producer Consumere Example

                                      • Advanced C Course
                                      • Outlines
                                      • مقدمة في نظم التشغيل
                                      • مقدمة في نظم التشغيل
                                      • لماذا نحتاج إلى تعدد النياسب Multithreading
                                      • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                      • إيقاف نيسب(Thread Terminatation)
                                      • النياسب التي تعمل في الخلفية Background Threads
                                      • Thread Class
                                      • Thread Class (2)
                                      • حالات النيسب Thread States
                                      • Thread Priority
                                      • التنافس على الموارد Concurrency
                                      • استخدام المقاطع الحرجة والقفل
                                      • استخدام المقاطع الحرجة والقفل (2)
                                      • التزامن بين النياسب Threads Synchronization
                                      • تحقيق التزامن Synchronization Implementation
                                      • أصناف التزامن Synchronization Classes
                                      • Parallel Programming Example
                                      • Semaphore Class
                                      • Mutex Class (Mutual Exclusion)
                                      • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                      • Monitor Class
                                      • Monitor Class (2)
                                      • Producer Consumere Example

                                        04132023 1149 PM 20

                                        Semaphore Class المهام بين التزامن لتحقيق طريقة عن عبارة هو السيمافور )Processes (يمكن التشغيل نظام مستوى في p لتحقيق استعماله أيضا

                                        النياسب بين التزامن

                                        مثل رقم عن عبارة_ مورد على الحصول تستطيع التي النياسب من محدود عدد ي من أكثر ق[بل من عليها التنافس يتم التي الموارد من( Pool)حوض (أو مشترك)نيسب

                                        الطابعة مثال

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

                                        04132023 1149 PM 21

                                        Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                                        مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                                        ال ( Lock - unlockآلية )Mutex يستعمل

                                        04132023 1149 PM 22

                                        اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                                        نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                                        عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                                        المبرمج مسؤولية من هي(Threads)النياسب

                                        المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                                        مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                                        04132023 1149 PM 23

                                        Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                                        على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                                        ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                                        النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                                        القفل على الحصول لتستعيد أخر نيسب من

                                        04132023 1149 PM 24

                                        Monitor Class

                                        04132023 1149 PM 25

                                        Producer Consumere Example

                                        • Advanced C Course
                                        • Outlines
                                        • مقدمة في نظم التشغيل
                                        • مقدمة في نظم التشغيل
                                        • لماذا نحتاج إلى تعدد النياسب Multithreading
                                        • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                        • إيقاف نيسب(Thread Terminatation)
                                        • النياسب التي تعمل في الخلفية Background Threads
                                        • Thread Class
                                        • Thread Class (2)
                                        • حالات النيسب Thread States
                                        • Thread Priority
                                        • التنافس على الموارد Concurrency
                                        • استخدام المقاطع الحرجة والقفل
                                        • استخدام المقاطع الحرجة والقفل (2)
                                        • التزامن بين النياسب Threads Synchronization
                                        • تحقيق التزامن Synchronization Implementation
                                        • أصناف التزامن Synchronization Classes
                                        • Parallel Programming Example
                                        • Semaphore Class
                                        • Mutex Class (Mutual Exclusion)
                                        • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                        • Monitor Class
                                        • Monitor Class (2)
                                        • Producer Consumere Example

                                          04132023 1149 PM 21

                                          Mutex Class (Mutual Exclusion)( الصف هذا بسيطة( Mutexيعطي يسمح للتزامنطريقة لنيسب بحيث

                                          مع واحد الحرج المقطع إلى البقية بالدخول في ) إستبعاد تبقى النياسب بقيةالنيسب هذا يقوم أن إلى إنتظار ال حالة ( Mutexبتحرير

                                          ال ( Lock - unlockآلية )Mutex يستعمل

                                          04132023 1149 PM 22

                                          اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                                          نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                                          عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                                          المبرمج مسؤولية من هي(Threads)النياسب

                                          المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                                          مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                                          04132023 1149 PM 23

                                          Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                                          على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                                          ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                                          النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                                          القفل على الحصول لتستعيد أخر نيسب من

                                          04132023 1149 PM 24

                                          Monitor Class

                                          04132023 1149 PM 25

                                          Producer Consumere Example

                                          • Advanced C Course
                                          • Outlines
                                          • مقدمة في نظم التشغيل
                                          • مقدمة في نظم التشغيل
                                          • لماذا نحتاج إلى تعدد النياسب Multithreading
                                          • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                          • إيقاف نيسب(Thread Terminatation)
                                          • النياسب التي تعمل في الخلفية Background Threads
                                          • Thread Class
                                          • Thread Class (2)
                                          • حالات النيسب Thread States
                                          • Thread Priority
                                          • التنافس على الموارد Concurrency
                                          • استخدام المقاطع الحرجة والقفل
                                          • استخدام المقاطع الحرجة والقفل (2)
                                          • التزامن بين النياسب Threads Synchronization
                                          • تحقيق التزامن Synchronization Implementation
                                          • أصناف التزامن Synchronization Classes
                                          • Parallel Programming Example
                                          • Semaphore Class
                                          • Mutex Class (Mutual Exclusion)
                                          • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                          • Monitor Class
                                          • Monitor Class (2)
                                          • Producer Consumere Example

                                            04132023 1149 PM 22

                                            اإلقفال حدوث تتجنب أن يمكن كيفبرنامجك( Deadlockالمتبادل) شيفرة في

                                            نيسبين بين يحدث) Two Threads (إلى بحاجة النيسبين من كل عندما عمله يكمل حتى األخر من معطيات

                                            عتبر من أعقد المشاكل التي واجهت مصمي نظم التشغيلWهذه المشكلة تالمهام على حلها تم مستوى على حلها لكن و (Processes)مستوى

                                            المبرمج مسؤولية من هي(Threads)النياسب

                                            المشكلة هذه تنتج الحقيقة في)DeadLock (األقفال إستخدام عن Locks ال إستخدام وعن Mutexp أيضا

                                            مفرغة حلقات فيها تحدث ال بحيث النياسب متعددة تطبيقات تصميم iجدا الصعب من(DeadLocks)

                                            04132023 1149 PM 23

                                            Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                                            على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                                            ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                                            النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                                            القفل على الحصول لتستعيد أخر نيسب من

                                            04132023 1149 PM 24

                                            Monitor Class

                                            04132023 1149 PM 25

                                            Producer Consumere Example

                                            • Advanced C Course
                                            • Outlines
                                            • مقدمة في نظم التشغيل
                                            • مقدمة في نظم التشغيل
                                            • لماذا نحتاج إلى تعدد النياسب Multithreading
                                            • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                            • إيقاف نيسب(Thread Terminatation)
                                            • النياسب التي تعمل في الخلفية Background Threads
                                            • Thread Class
                                            • Thread Class (2)
                                            • حالات النيسب Thread States
                                            • Thread Priority
                                            • التنافس على الموارد Concurrency
                                            • استخدام المقاطع الحرجة والقفل
                                            • استخدام المقاطع الحرجة والقفل (2)
                                            • التزامن بين النياسب Threads Synchronization
                                            • تحقيق التزامن Synchronization Implementation
                                            • أصناف التزامن Synchronization Classes
                                            • Parallel Programming Example
                                            • Semaphore Class
                                            • Mutex Class (Mutual Exclusion)
                                            • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                            • Monitor Class
                                            • Monitor Class (2)
                                            • Producer Consumere Example

                                              04132023 1149 PM 23

                                              Monitor Class( كائن واحد قفلNETفي( objectلكل نيسب قبل من عليه الحصول يتم الصفMonitor التالية المزايا يمللك

                                              على- 1 الحصول ويتم بغرض الطلب( Monitor)المراقبمرتبطة عند2 الكود- ضمن مكان أي في استدعائه يمكن أي مقيد غيرالصنف- 3 هذا من غرض إنشاء يمكن ال

                                              ) نيسب ) من أكثر من إليه الوصول يتم غرضمتزامن كل أجل من القفل يملك وحيد نيسب( جاهزية لكي (Ready Queueرتل المعالج يختارها أن تنتظر التي النياسب يحوي

                                              النياسب بقية استبعاد مع القفل على تحصل( إنتظار (Waiting Queueرتل إيقاظ إنتظارإشارة حالة في التي النياسب يحوي

                                              القفل على الحصول لتستعيد أخر نيسب من

                                              04132023 1149 PM 24

                                              Monitor Class

                                              04132023 1149 PM 25

                                              Producer Consumere Example

                                              • Advanced C Course
                                              • Outlines
                                              • مقدمة في نظم التشغيل
                                              • مقدمة في نظم التشغيل
                                              • لماذا نحتاج إلى تعدد النياسب Multithreading
                                              • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                              • إيقاف نيسب(Thread Terminatation)
                                              • النياسب التي تعمل في الخلفية Background Threads
                                              • Thread Class
                                              • Thread Class (2)
                                              • حالات النيسب Thread States
                                              • Thread Priority
                                              • التنافس على الموارد Concurrency
                                              • استخدام المقاطع الحرجة والقفل
                                              • استخدام المقاطع الحرجة والقفل (2)
                                              • التزامن بين النياسب Threads Synchronization
                                              • تحقيق التزامن Synchronization Implementation
                                              • أصناف التزامن Synchronization Classes
                                              • Parallel Programming Example
                                              • Semaphore Class
                                              • Mutex Class (Mutual Exclusion)
                                              • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                              • Monitor Class
                                              • Monitor Class (2)
                                              • Producer Consumere Example

                                                04132023 1149 PM 24

                                                Monitor Class

                                                04132023 1149 PM 25

                                                Producer Consumere Example

                                                • Advanced C Course
                                                • Outlines
                                                • مقدمة في نظم التشغيل
                                                • مقدمة في نظم التشغيل
                                                • لماذا نحتاج إلى تعدد النياسب Multithreading
                                                • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                                • إيقاف نيسب(Thread Terminatation)
                                                • النياسب التي تعمل في الخلفية Background Threads
                                                • Thread Class
                                                • Thread Class (2)
                                                • حالات النيسب Thread States
                                                • Thread Priority
                                                • التنافس على الموارد Concurrency
                                                • استخدام المقاطع الحرجة والقفل
                                                • استخدام المقاطع الحرجة والقفل (2)
                                                • التزامن بين النياسب Threads Synchronization
                                                • تحقيق التزامن Synchronization Implementation
                                                • أصناف التزامن Synchronization Classes
                                                • Parallel Programming Example
                                                • Semaphore Class
                                                • Mutex Class (Mutual Exclusion)
                                                • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                                • Monitor Class
                                                • Monitor Class (2)
                                                • Producer Consumere Example

                                                  04132023 1149 PM 25

                                                  Producer Consumere Example

                                                  • Advanced C Course
                                                  • Outlines
                                                  • مقدمة في نظم التشغيل
                                                  • مقدمة في نظم التشغيل
                                                  • لماذا نحتاج إلى تعدد النياسب Multithreading
                                                  • كيف نقوم بإنشاء تطبيقات متعددة النياسب Multithreaded
                                                  • إيقاف نيسب(Thread Terminatation)
                                                  • النياسب التي تعمل في الخلفية Background Threads
                                                  • Thread Class
                                                  • Thread Class (2)
                                                  • حالات النيسب Thread States
                                                  • Thread Priority
                                                  • التنافس على الموارد Concurrency
                                                  • استخدام المقاطع الحرجة والقفل
                                                  • استخدام المقاطع الحرجة والقفل (2)
                                                  • التزامن بين النياسب Threads Synchronization
                                                  • تحقيق التزامن Synchronization Implementation
                                                  • أصناف التزامن Synchronization Classes
                                                  • Parallel Programming Example
                                                  • Semaphore Class
                                                  • Mutex Class (Mutual Exclusion)
                                                  • كيف يمكن أن تتجنب حدوث الإقفال المتبادل(Deadlock)في شيفرة برنام
                                                  • Monitor Class
                                                  • Monitor Class (2)
                                                  • Producer Consumere Example

                                                    top related