Aya Waadullah نشر 31 مايو 2021 أرسل تقرير نشر 31 مايو 2021 (معدل) ماذا تعني Process synchronization في operating Systems وكيف يمكن تطبيقها في التكنولوجيا البرامج، التطبيقات، الأجهزة، .... الخ ؟ ارجو توضيحها بمثال علمي واقعي. تم التعديل في 31 مايو 2021 بواسطة Wael Aljamal توضيح السؤال اقتباس
0 Wael Aljamal نشر 31 مايو 2021 أرسل تقرير نشر 31 مايو 2021 مزامنة العمليات البرمجية تهتم بالسياق التالي: عندما يكون لدينا مورد في الحاسوب يتم الوصول له من عدة عمليات في نفس الوقت، في هذه الحالة و لتجنب حدوث أخطاء و صراع على الموارد يتم تنظيم آلية الوصول للمورد عن طريق نظام التشغيل و برامجه و بعض الخوارزميات التي تهتم بإعطاء أولويات لمهام على أخرى.. وتقوم بتنظيم الدور للوصول لهذه الموارد بين العمليات. تقوم معظم عمليات المزامة في حالة الوصول لمقاطع الذاكرة المشتركة و التي تحاول عدة عمليات برمجية تعديل/قراءة قيمتها. يقوم المبرمج بتحديد ماهو الجزء من الشيفرة البرمجية التي تعامل مع الموارد المتنازع عليها Critical Section حيث يتم حجز أو منع عمليات أخرى من الوصول والتعديل على نفس الجزء من الذاكرة و يتم فك الحجز بعد الانهاء: مثل مراحل عدة: قبل الدخول المنطقة الحرجة : التأكد أن الموارد متاحة وحجزها قبل استكمال العمل المنطقة الحرجة : الوصول للبيانات المتنازع عليها و القيام بالتعديل الخروج من المنطقة الحرجة : إعادة تحديد المنطقة الحرجة كمتاحة و فك الحجز عنها المثال العلمي: في المعاملات البنكية، قبل التعديل على رصيد أحد الحسابات يتم منع باقِ العمليات من التعديل أو قراءة قيمة الرصيد حتى يتم الإنتهاء من المعاملة الحالية وتعديل الرصيد. 1 اقتباس
0 Aya Waadullah نشر 31 مايو 2021 الكاتب أرسل تقرير نشر 31 مايو 2021 بتاريخ منذ ساعة مضت قال Wael Aljamal: المثال العلمي: في المعاملات البنكية، قبل التعديل على رصيد أحد الحسابات يتم منع باقِ العمليات من التعديل أو قراءة قيمة الرصيد حتى يتم الإنتهاء من المعاملة الحالية وتعديل الرصيد. هل يمكن أن توضح أكثر كيف تستخدم ال process synchronization في المعاملات البنكية . اقتباس
0 Wael Aljamal نشر 31 مايو 2021 أرسل تقرير نشر 31 مايو 2021 بتاريخ On 5/31/2021 at 20:47 قال Aya Waadullah: هل يمكن أن توضح أكثر كيف تستخدم ال process synchronization في المعاملات البنكية . لنفرض لدينا عمليتين للتعديل على رصيد أحد الزبائن في البنك، فإذا تم تنفيذ الشيفرتين بنفس اللحظة، سيتم قراءة الرصيد القديم من كلا العمليتين ثم التعديل عليه كمتحول برمجي ومن ثم إعادة التغيير إلى قاعدة البيانات. بهذه الحالة العملية التي تنتهي ثانياً ستقوم بكتابة الرصيد الذي حسبته هي وسيتم تجاهل القيمة التي حسبتها العملية الأولى بدون مزامنة: SELECT balance FROM accounts. => balance = 100 UPDATE accounts SET BALANCE = [balance + 120] WHERE ID = [5] UPDATE accounts SET BALANCE = [balance + 350] WHERE ID = [5] => balance = 450 // خطأ مع مزامنة سيتم تعديل balance بعد انتهاء أول عملية ثم ستقوم العملية الثانية بالتعديل على ناتج الأولى. لتصبح 570 = balance 1 اقتباس
0 ماجد الخولاني نشر 1 يونيو 2021 أرسل تقرير نشر 1 يونيو 2021 بمفهوم بسيط تعني ان كل عملية يقوم بها النظام في كل لحظه يقوم بمزامنها لحظيا والمزامنة هي تحديث المعلومة وحفظها في السيرفر وجميع اجهزة النظام في لحظة واحده في جزء من الثانية 1 اقتباس
0 Aya Waadullah نشر 4 يونيو 2021 الكاتب أرسل تقرير نشر 4 يونيو 2021 (معدل) بتاريخ On 31/5/2021 at 21:07 قال Wael Aljamal: بدون مزامنة: SELECT balance FROM accounts. => balance = 100 UPDATE accounts SET BALANCE = [balance + 120] WHERE ID = [5] UPDATE accounts SET BALANCE = [balance + 350] WHERE ID = [5] => balance = 450 // خطأ مع مزامنة سيتم تعديل balance بعد انتهاء أول عملية ثم ستقوم العملية الثانية بالتعديل على ناتج الأولى. لتصبح 470 = balance كيف تصبح 470 = balance !!!!! في هذا المثال " 100 = balance " 100 + 120 = 220 (ناتج العملية الاولى) 220 + 350 = 570 (ناتج العملية الثانية) من المفروض تصبح 570 = balance تم التعديل في 4 يونيو 2021 بواسطة Aya Waadullah اقتباس
0 Wael Aljamal نشر 4 يونيو 2021 أرسل تقرير نشر 4 يونيو 2021 بتاريخ 30 دقائق مضت قال Aya Waadullah: من المفروض تصبح 570 = balance نعم صحيح خطأ كتابة 1 اقتباس
0 Aya Waadullah نشر 5 يونيو 2021 الكاتب أرسل تقرير نشر 5 يونيو 2021 بتاريخ On 31/5/2021 at 21:07 قال Wael Aljamal: لنفرض لدينا عمليتين للتعديل على رصيد أحد الزبائن في البنك، فإذا تم تنفيذ الشيفرتين بنفس اللحظة، سيتم قراءة الرصيد القديم من كلا العمليتين ثم التعديل عليه كمتحول برمجي ومن ثم إعادة التغيير إلى قاعدة البيانات. بهذه الحالة العملية التي تنتهي ثانياً ستقوم بكتابة الرصيد الذي حسبته هي وسيتم تجاهل القيمة التي حسبتها العملية الأولى بدون مزامنة: SELECT balance FROM accounts. => balance = 100 UPDATE accounts SET BALANCE = [balance + 120] WHERE ID = [5] UPDATE accounts SET BALANCE = [balance + 350] WHERE ID = [5] => balance = 450 // خطأ مع مزامنة سيتم تعديل balance بعد انتهاء أول عملية ثم ستقوم العملية الثانية بالتعديل على ناتج الأولى. لتصبح 570 = balance هناك عدة حلول ممكنة لِ Synchronization وهي :- 1 software solution for synchronization 2 Hardware support for synchronizatio ● Disable interrupts ● Test and set instruction 3 OS support for synchronization ● Mutex locks ● Semaphore ما هو الحل المناسب لإستخدام هذا المثال (المعاملات البنكية) ؟ هل يمكن التوضيح !!! اقتباس
0 Wael Aljamal نشر 6 يونيو 2021 أرسل تقرير نشر 6 يونيو 2021 بتاريخ 23 ساعات قال Aya Waadullah: 1 software solution for synchronization هذه 1 اقتباس
السؤال
Aya Waadullah
ماذا تعني Process synchronization في operating Systems وكيف يمكن تطبيقها في التكنولوجيا البرامج، التطبيقات، الأجهزة، .... الخ ؟
ارجو توضيحها بمثال علمي واقعي.
تم التعديل في بواسطة Wael Aljamalتوضيح السؤال
8 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.