<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D8%A7%D8%B3%D8%AA%D8%B9%D8%B5%D8%A7%D8%A1</id>
	<title>استعصاء - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D8%A7%D8%B3%D8%AA%D8%B9%D8%B5%D8%A7%D8%A1"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D8%A7%D8%B3%D8%AA%D8%B9%D8%B5%D8%A7%D8%A1&amp;action=history"/>
	<updated>2026-06-11T06:21:39Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D8%A7%D8%B3%D8%AA%D8%B9%D8%B5%D8%A7%D8%A1&amp;diff=1501918&amp;oldid=prev</id>
		<title>عبد العزيز: بوت: إصلاح أخطاء فحص أرابيكا من 1 إلى 104</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D8%A7%D8%B3%D8%AA%D8%B9%D8%B5%D8%A7%D8%A1&amp;diff=1501918&amp;oldid=prev"/>
		<updated>2023-06-02T15:56:07Z</updated>

		<summary type="html">&lt;p&gt;بوت: إصلاح أخطاء فحص أرابيكا من 1 إلى 104&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;الاستعصاء&amp;#039;&amp;#039;&amp;#039; أو المأزق {{إنج|deadlock}} هو حالة تطرأ في مجال [[حوسبة متوازية|الحوسبة المتوازية]].&amp;lt;ref&amp;gt;{{استشهاد ويب| مسار = https://www.britannica.com/technology/deadlock-computing | عنوان = معلومات عن استعصاء على موقع britannica.com | ناشر = britannica.com| مسار أرشيف = https://web.archive.org/web/20160422124601/http://www.britannica.com/technology/deadlock-computing | تاريخ أرشيف = 22 أبريل 2016 }}&amp;lt;/ref&amp;gt; تقع حالة الاستعصاء عندما تصل مهمتان متنافستان إلى حالة انتظار كل منهما للأخرى من أجل تحرير مورد تطلبه. المهام التي تصل لهذه الحالة تخلق حالة استعصاء.&lt;br /&gt;
&lt;br /&gt;
[[ملف:New York City Gridlock.jpg|تصغير|تقاطع طرق في حالة استعصاء في مدينة نيويورك]]&lt;br /&gt;
والاستعصاء الحوسبي كالاستعصاء في تقاطع الطرق يحدث حينما تحاول السيارات عبور التقاطع في نفس الوقت فيوقف بعضهم البعض.&lt;br /&gt;
&lt;br /&gt;
== مثال ==&lt;br /&gt;
مثال في الحوسبة عن حالة استعصاء نجم عن تنافس مهمتين في طلب قفلين بترتيب مختلف. فإذا كان لدينا اقصاء متبادل (&amp;lt;tt&amp;gt;M1&amp;lt;/tt&amp;gt; و&amp;lt;tt&amp;gt;M2&amp;lt;/tt&amp;gt;) والمهمتين تاليتين:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 مهمة أ:&lt;br /&gt;
 الحصول على M1&lt;br /&gt;
 الحصول على M2&lt;br /&gt;
 &amp;lt;small&amp;gt;&amp;#039;&amp;#039;عمل في حاجة لقفلين&amp;#039;&amp;#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
 تحرير M2&lt;br /&gt;
 تحرير M1&lt;br /&gt;
|&lt;br /&gt;
 مهمة ب:&lt;br /&gt;
 الحصول على M2&lt;br /&gt;
 الحصول على M1&lt;br /&gt;
 &amp;lt;small&amp;gt;&amp;#039;&amp;#039;عمل في حاجة لقفلين&amp;#039;&amp;#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
 تحرير M1&lt;br /&gt;
 تحرير M2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
الاستعصاء هنا ممكن، حيث إذا كانت عملية التنفيذ تسير كما يلي:&lt;br /&gt;
# &amp;lt;tt&amp;gt;المهمة أ&amp;lt;/tt&amp;gt; يحصل على &amp;lt;tt&amp;gt;M1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# &amp;lt;tt&amp;gt;المهمة ب&amp;lt;/tt&amp;gt; يحصل على &amp;lt;tt&amp;gt;M2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# &amp;lt;tt&amp;gt;المهمة أ&amp;lt;/tt&amp;gt; تنتظر للحصول على &amp;lt;tt&amp;gt;M2&amp;lt;/tt&amp;gt; (المملوك لـ &amp;lt;tt&amp;gt;المهمة ب&amp;lt;/tt&amp;gt;).&lt;br /&gt;
# &amp;lt;tt&amp;gt;المهمة ب&amp;lt;/tt&amp;gt; تنتظر للحصول على &amp;lt;tt&amp;gt;M1&amp;lt;/tt&amp;gt; (المملوك لـ &amp;lt;tt&amp;gt;المهمة أ&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
في هذه الحالة، المهمتين أ وب في حالة استعصاء.&lt;br /&gt;
&lt;br /&gt;
== تفادي الاستعصاء ==&lt;br /&gt;
يمكن تدارك حالة الاستعصاء إذا عرفت بعض المعطيات مسبقا. لكل طلب احتكار لمورد، يقوم النظام بمراقبة إذا ما كان ممكنا الوقوع في حالة مريبة يمكن أن تتحول إلى مأزق. فلا يقبل النظام إلا الطلبات التي لا تشكل خطرا. وحتى يتمكن من أخذ القرار عن إذا ما كان الطلب سيؤدي لحالة مريبة أو لا، يجب أن يعرف النظام في كل وقت عدد ونوع الموارد الموجودة المتوفرة أو المحجوزة. [[خوارزمية المصرفي]] هي إحدى الخوارزميات الكلاسيكية للتوقع المبكر لحالة الاستعصاء. الخوارزمية بحاجة لمعرفة مسبقة لحدود استعمال الموارد. بالنسبة للعديد من الأنظمة يستحيل توقع الاستعصاء قبل كل طلب ما يجعل تفادي الاستعصاء أمرا شبه مستحيل.&lt;br /&gt;
&lt;br /&gt;
خوارزميات انتظار/موت وجريح/انتظار {{إنج|Wait/Die - Wound/Wait}} هي طرق أخرى للتفادي التي تستعمل تقنية كسر التناظر. تأخذ الخورزميتان بعين الاعتبار عمر كل مهمة وتفصل بين مهمة مسنة (م) ومهمة فتية (ف).&lt;br /&gt;
&lt;br /&gt;
يمكن تحديد عمر المهمة باستعمال [[ختم زمني|الختم الزمني]] {{إنج|timestamp}} عند استحداث المهمة. التواريخ الصغيرة هي للمهام المسنة والتواريخ الكبيرة هي للفتية.&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! انتظار/موت !! جرح/انتظار&lt;br /&gt;
|-&lt;br /&gt;
|م بحاجة لمورد يحتكره ف || م ينتظر || ف يموت&lt;br /&gt;
|- &lt;br /&gt;
|ف بحاجة لمورد يحتكره م || ف يموت || ف ينتظر &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
من المهم الأخذ بعين الاعتبار أنه يمكن أن تكون مهمة في حالة مريبة دون أن يؤدي ذلك بالضرورة لحالة استعصاء. مفهوم الحالة المريبة أو لا هو مرجع لاحتمال وقوع النظام في حالة استعصاء أو لا. مثلا إذا طلبت مهمة احتكار مورد أ وينجم عن ذلك حالة مريبة ولكن يحرر مرد آخر ب لتفادي الانتظار المتبادل، فإن الحالة المريبة لا تؤدي إلى حالة استعصاء.&lt;br /&gt;
&lt;br /&gt;
== الوقاية ==&lt;br /&gt;
إحدى الطرق تنص على اكتساب الإقصاء المتبادل بنفس الترتيب. في الواقع، إذا احتاجت عدة [[تشعب (حوسبة)|خيوط]] لاكتساب عدة قيود لتنفيذ أعمالها وتم ذلك بترتيب مختلف فممكن وقوعها في مأزق (راجع المثال السابق).&lt;br /&gt;
&lt;br /&gt;
من المفيد أيضا الاهتمام بأولوية المهام. فمثلا، إذا طلبت مهمة بأولوية عليا قفلا مشتركا مع مهمة ذات أولوية دنيا، هنا يمكن الوقوع أيضا في حالة استعصاء. الحل لمثل هذه الحالة هو اقتصار استعمال القيود فقط على المهام بنفس مستوى الأولية.&lt;br /&gt;
&lt;br /&gt;
== مراجع ==&lt;br /&gt;
{{مراجع}}&lt;br /&gt;
&lt;br /&gt;
* Paper &amp;quot;[http://www.havelund.com/Publications/padtad06.pdf Confirmation of Deadlock Potentials Detected by Runtime Analysis]&amp;quot; by Saddek Bensalem, Jean-Claude Fernandez, Klaus Havelund and Laurent Mounier&lt;br /&gt;
&lt;br /&gt;
{{حوسبة متوازية}}&lt;br /&gt;
{{شريط بوابات|تقنية المعلومات|علم الحاسوب}}&lt;br /&gt;
&lt;br /&gt;
[[تصنيف:أخطاء البرمجة]]&lt;br /&gt;
[[تصنيف:إدارة الذاكرة]]&lt;br /&gt;
[[تصنيف:إدسخر ديكسترا]]&lt;br /&gt;
[[تصنيف:تزامن (حوسبة)]]&lt;br /&gt;
[[تصنيف:حوسبة متوازية]]&lt;br /&gt;
[[تصنيف:شذوذ البرمجيات]]&lt;br /&gt;
[[تصنيف:مشاكل الحوسبة الموزعة]]&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>