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 بتاريخ On 31/5/2021 at 16:45 قال Wael Aljamal: المثال العلمي: في المعاملات البنكية، قبل التعديل على رصيد أحد الحسابات يتم منع باقِ العمليات من التعديل أو قراءة قيمة الرصيد حتى يتم الإنتهاء من المعاملة الحالية وتعديل الرصيد. أظهر المزيد هل يمكن أن توضح أكثر كيف تستخدم ال process synchronization في المعاملات البنكية . اقتباس
0 Wael Aljamal نشر 31 مايو 2021 أرسل تقرير نشر 31 مايو 2021 بتاريخ On 31/5/2021 at 17: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 18: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 بتاريخ On 4/6/2021 at 14:20 قال Aya Waadullah: من المفروض تصبح 570 = balance أظهر المزيد نعم صحيح خطأ كتابة 1 اقتباس
0 Aya Waadullah نشر 5 يونيو 2021 الكاتب أرسل تقرير نشر 5 يونيو 2021 بتاريخ On 31/5/2021 at 18: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 بتاريخ On 5/6/2021 at 09:01 قال Aya Waadullah: 1 software solution for synchronization أظهر المزيد هذه 1 اقتباس
السؤال
Aya Waadullah
ماذا تعني Process synchronization في operating Systems وكيف يمكن تطبيقها في التكنولوجيا البرامج، التطبيقات، الأجهزة، .... الخ ؟
ارجو توضيحها بمثال علمي واقعي.
تم التعديل في بواسطة Wael Aljamalتوضيح السؤال
8 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.