SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Parallel and concurrency in Ada program language
‫مدرس‬ ‫تربیت‬ ‫دانشگاه‬ ‫ابری‬ ‫رایانش‬ ‫درس‬ ‫کالسی‬ ‫ارائه‬
‫دهندگان‬ ‫ارائه‬:
‫قدیری‬ ‫مسعود‬ ‫و‬ ‫رزاقی‬ ‫بهنام‬
‫درس‬ ‫استاد‬:
‫دکترصادق‬‫نوگوران‬ ‫دری‬‫ی‬
‫اول‬ ‫نیمسال‬98-۱۳97
‫ماه‬ ‫دی‬ ‫دوم‬1397
‫ویدئو‬:https://www.aparat.com/v/aFXBE
‫تاریخچه‬
‫م‬ ‫طرح‬ ‫زمينه‬ ‫در‬ ‫بابيج‬ ‫چالز‬ ‫همكار‬ ‫كه‬ ‫بايرون‬ ‫لرد‬ ‫دختر‬ ‫نام‬ ‫افتخار‬ ‫به‬ ‫زبان‬ ‫اين‬‫اشين‬
‫تحليلي‬،‫بود‬Ada‫ناميده‬‫شد‬.‫خانم‬Ada‫بخاطر‬ ‫را‬‫برنامه‬‫اولين‬ ‫عنوان‬ ‫به‬ ‫هايش‬
‫شناسند‬ ‫مي‬ ‫جهان‬ ‫در‬ ‫نويس‬ ‫برنامه‬.
‫گرديد‬ ‫تهيه‬ ‫آمريكا‬ ‫دفاع‬ ‫وزارت‬ ‫در‬ ‫نظامي‬ ‫هاي‬ ‫سرويس‬ ‫منظور‬ ‫به‬ ‫زبان‬ ‫اين‬.‫س‬ ‫در‬‫ال‬
1975‫پيرامون‬ ‫را‬ ‫تحقيقاتي‬ ‫آمريكا‬ ‫دفاع‬ ‫وزارت‬‫بود‬ ‫طراحي‬‫كه‬‫در‬Ada‫يك‬‫زبان‬
‫باش‬ ‫نظامي‬ ‫نويسان‬ ‫برنامه‬ ‫و‬ ‫كامپيوتر‬ ‫فروشندگان‬ ‫استفاده‬ ‫مورد‬ ‫كه‬ ‫عمومي‬‫كرد‬ ‫آغاز‬ ‫د‬
‫ها‬ ‫آن‬ ‫كار‬ ‫ماحصل‬ ‫كه‬‫زبان‬‫سال‬1980‫گرديد‬ ‫عرضه‬.‫سال‬ ‫در‬ ‫زبان‬ ‫اين‬1983‫توسط‬
‫آمد‬ ‫در‬ ‫استاندارد‬ ‫صورت‬ ‫به‬ ‫آمريكا‬ ‫استاندارد‬ ‫ملي‬ ‫سازمان‬.
Ada Lovelace
‫اهداف‬ ‫و‬ ‫کاربرد‬
‫بی‬ ‫و‬ ‫نطامی‬ ‫های‬ ‫سیستم‬‫درنگ‬
‫هدایت‬ ‫و‬ ‫هوایی‬ ‫ترافیک‬ ‫کنترل‬ ‫های‬ ‫سیستم‬‫پرواز‬
‫های‬ ‫تجزیه‬ ‫و‬ ‫ها‬ ‫داده‬ ‫پردازش‬ ‫سیستم‬‫شیمیایی‬
‫بانکداری‬ ‫سیستم‬ ،‫پرداخت‬ ‫صورت‬ ‫های‬‫سیستم‬‫تج‬‫اری‬
‫و‬...
‫واحدها‬ ‫و‬ ‫ساختار‬
‫یافته‬ ‫توسعه‬ ‫پاسکال‬
Ada 83:‫محور‬ ‫روال‬( Functional )
Ada 95:‫گرا‬ ‫شيء‬
‫اصلی‬ ‫واحدهای‬:، ‫ها‬ ‫روال‬Packages،Tasks،Protected objects
Concurrency
‫در‬ ‫همروندی‬ ‫انواع‬Ada
Distributed objects
Multitasking
Task types
Protected types
‫اصطالحات‬ ‫و‬ ‫تعاریف‬‫مهم‬
 Rendezvous
 Task
 Entry
Task
‫همروندی‬ ‫سازی‬ ‫پیاده‬ ‫اصلی‬ ‫عنصر‬
‫بود‬ ‫خواهد‬ ‫تعلیق‬ ‫حالت‬ ‫در‬ ‫یا‬ ‫اجرا‬ ‫حالت‬ ‫در‬.
‫کار‬ ‫یا‬ ‫وظیفه‬
‫اصلی‬ ‫اجزای‬
‫معرفی‬(Specification)
‫اصلی‬ ‫بدنه‬( Body )
‫ديگر‬ ‫براي‬ ‫اطالعات‬Task‫ها‬
‫سازي‬ ‫پياده‬ ‫جزئيات‬
task type T is
Somethings…
end T;
task body T is
begin
Somethings…
end;
Entry ‫ورودیه‬
‫يك‬ ‫در‬ ‫دسترسي‬ ‫قابل‬ ‫نهاد‬ ‫تنها‬Task
‫خروجي‬ ‫و‬ ‫ورودي‬ ‫پارامترهاي‬ ‫با‬ ‫روال‬ ‫شبيه‬
‫شناسه‬ ‫يك‬ ‫با‬ ‫يكتا‬
task type T is
entry Put (data : in Integer);
entry Get (result : out Integer);
end T;
Rendezvous ‫مالقات‬ ‫قرار‬
•‫بين‬ ‫ارتباط‬ ‫انتزاعي‬ ‫مفهوم‬Task‫ها‬
•‫ميكند‬ ‫استفاده‬ ‫همزماني‬ ‫اي‬ ‫پايه‬ ‫روش‬ ‫از‬
(synchronous mechanism)
•‫توسط‬ ‫قرار‬ ‫محل‬accept‫بدنه‬ ‫در‬task‫ميشود‬ ‫مشخص‬
•‫ها‬ ‫پيام‬ ‫بندي‬ ‫صف‬
Protected Modules ‫شده‬ ‫محافظت‬ ‫واحد‬
‫در‬Ada 95----->Protected Modules
‫متقابل‬ ‫انحصار‬ ‫از‬ ‫پشتيباني‬
‫خودكار‬ ‫بصورت‬ ‫همزماني‬ ‫بحث‬ ‫در‬ ‫مونيتور‬ ‫ساختار‬
‫دارد‬ ‫اشتراكي‬ ‫حافظه‬
‫بين‬ ‫شرطي‬ ‫هاي‬ ‫سبگنال‬ ‫كردن‬ ‫فراهم‬task‫ضمني‬ ‫و‬ ‫خودكار‬ ‫بصورت‬ ‫كالينت‬ ‫هاي‬
exports
I. Procedures
II. Entries
III. Functions
Protected Modules (cntd) ‫ادامه‬...
protected type Protected_Buffer_Type is
entry Insert (An_Item : in Item);
entry Remove (An_Item : out Item);
private
Buffer : Item;
Empty : Boolean := True;
end Protected_Buffer_Type;
...
protected body Protected_Buffer_Type is
entry Insert (An_Item : in Item)
when Empty is
begin
Buffer := An_Item;
Empty := False;
end Insert;
entry Remove (An_Item : out Item)
when not Empty is
begin
An_Item := Buffer;
Empty := True;
end Remove;
end Protected_Buffer_Type;
Guard : ‫دسترسي‬ ‫شرط‬
Protected entries
Mechanism ‫مکانیزم‬
task type myTask is
entry put(data : integer);
entry get(result: integer);
end myTask;
task body myTask is
myData : integer;
begin
-- other statement
accept put(x : integer) do
-- other statements
end put;
-- other statements
end;
task ‫به‬ ‫دسترسي‬ ‫هاي‬ ‫راه‬
Mechanism (cntd) ‫ادامه‬...
State
lock
eggshell
‫شي‬ ‫قفل‬
‫شي‬ ‫درون‬ ‫قفل‬
‫ورودي‬ ‫هاي‬ ‫نخ‬ ‫صف‬
‫اجرا‬ ‫درحال‬ ‫نخ‬(state)
‫اجرا‬ ‫به‬ ‫شروع‬ ‫نخ‬
Other subjects ‫دیگر‬ ‫موضوعات‬
‫و‬ ‫مهم‬ ،‫همروندی‬ ‫بحث‬ ‫ادامه‬ ‫در‬ ‫زیر‬ ‫موارد‬‫است‬ ‫بحث‬ ‫قابل‬:
‫يك‬ ‫دادن‬ ‫خاتمه‬ ‫نحوه‬task:Terminate
‫روند‬ ‫اجراي‬ ‫در‬ ‫تاخير‬Rendezvous:delay
‫بندي‬ ‫الويت‬:task priority
‫مجدد‬ ‫بندي‬ ‫صف‬‫واحدها‬:protected objects requeues
‫رويدادهاي‬‫زمانبندي‬‫در‬ ‫شده‬Ada 2005
‫در‬ ‫موازي‬ ‫كارهاي‬Ada 2012:parallel task
‫و‬...
References ‫منابع‬
 https://en.wikibooks.org/wiki/Ada_Style_Guide/Concurrency
 https://en.wikipedia.org/wiki/Ada_(programming_language)
 http://www.adaic.org/resources/add_content/docs/95style/html/sec_6/index.html
 https://www2.adacore.com/gap-static/GNAT_Book/
 https://www.adacore.com/

Contenu connexe

Similaire à Concurrency in Ada programming languages

مسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابیمسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابیMuhibullah Aman
 
Cisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanCisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanMuhibullah Aman
 
بررسی روشهای مسیریابی شبکه های فرصت طلبانه
بررسی روشهای مسیریابی شبکه های فرصت طلبانهبررسی روشهای مسیریابی شبکه های فرصت طلبانه
بررسی روشهای مسیریابی شبکه های فرصت طلبانهabedin753
 
Java programming languages
Java programming languagesJava programming languages
Java programming languagesjavadib
 
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از Hamid Saberi
 
انواع حملات در شبکه های کامپیوتری.pdf
انواع حملات در شبکه های کامپیوتری.pdfانواع حملات در شبکه های کامپیوتری.pdf
انواع حملات در شبکه های کامپیوتری.pdfAliAzarifar
 
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازMobin Ranjbar
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهرانFarafekr Technology
 
Repository pattern
Repository patternRepository pattern
Repository patternMahdi Fa
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0pdnsoftco
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0pdnsoftco
 
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.iraminnezarat
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...faradars
 

Similaire à Concurrency in Ada programming languages (20)

مسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابیمسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابی
 
Cisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanCisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah Aman
 
IOT security
IOT securityIOT security
IOT security
 
IOT security
IOT securityIOT security
IOT security
 
how use iptables
how use iptables how use iptables
how use iptables
 
بررسی روشهای مسیریابی شبکه های فرصت طلبانه
بررسی روشهای مسیریابی شبکه های فرصت طلبانهبررسی روشهای مسیریابی شبکه های فرصت طلبانه
بررسی روشهای مسیریابی شبکه های فرصت طلبانه
 
Kotlin
KotlinKotlin
Kotlin
 
Iptables
IptablesIptables
Iptables
 
Java programming languages
Java programming languagesJava programming languages
Java programming languages
 
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
 
انواع حملات در شبکه های کامپیوتری.pdf
انواع حملات در شبکه های کامپیوتری.pdfانواع حملات در شبکه های کامپیوتری.pdf
انواع حملات در شبکه های کامپیوتری.pdf
 
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
 
Repository pattern
Repository patternRepository pattern
Repository pattern
 
مقدمه ای بر F#
مقدمه ای بر F#مقدمه ای بر F#
مقدمه ای بر F#
 
Security for distributed systems
Security for distributed systemsSecurity for distributed systems
Security for distributed systems
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0
 
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
 

Concurrency in Ada programming languages

  • 1. Parallel and concurrency in Ada program language ‫مدرس‬ ‫تربیت‬ ‫دانشگاه‬ ‫ابری‬ ‫رایانش‬ ‫درس‬ ‫کالسی‬ ‫ارائه‬ ‫دهندگان‬ ‫ارائه‬: ‫قدیری‬ ‫مسعود‬ ‫و‬ ‫رزاقی‬ ‫بهنام‬ ‫درس‬ ‫استاد‬: ‫دکترصادق‬‫نوگوران‬ ‫دری‬‫ی‬ ‫اول‬ ‫نیمسال‬98-۱۳97 ‫ماه‬ ‫دی‬ ‫دوم‬1397 ‫ویدئو‬:https://www.aparat.com/v/aFXBE
  • 2. ‫تاریخچه‬ ‫م‬ ‫طرح‬ ‫زمينه‬ ‫در‬ ‫بابيج‬ ‫چالز‬ ‫همكار‬ ‫كه‬ ‫بايرون‬ ‫لرد‬ ‫دختر‬ ‫نام‬ ‫افتخار‬ ‫به‬ ‫زبان‬ ‫اين‬‫اشين‬ ‫تحليلي‬،‫بود‬Ada‫ناميده‬‫شد‬.‫خانم‬Ada‫بخاطر‬ ‫را‬‫برنامه‬‫اولين‬ ‫عنوان‬ ‫به‬ ‫هايش‬ ‫شناسند‬ ‫مي‬ ‫جهان‬ ‫در‬ ‫نويس‬ ‫برنامه‬. ‫گرديد‬ ‫تهيه‬ ‫آمريكا‬ ‫دفاع‬ ‫وزارت‬ ‫در‬ ‫نظامي‬ ‫هاي‬ ‫سرويس‬ ‫منظور‬ ‫به‬ ‫زبان‬ ‫اين‬.‫س‬ ‫در‬‫ال‬ 1975‫پيرامون‬ ‫را‬ ‫تحقيقاتي‬ ‫آمريكا‬ ‫دفاع‬ ‫وزارت‬‫بود‬ ‫طراحي‬‫كه‬‫در‬Ada‫يك‬‫زبان‬ ‫باش‬ ‫نظامي‬ ‫نويسان‬ ‫برنامه‬ ‫و‬ ‫كامپيوتر‬ ‫فروشندگان‬ ‫استفاده‬ ‫مورد‬ ‫كه‬ ‫عمومي‬‫كرد‬ ‫آغاز‬ ‫د‬ ‫ها‬ ‫آن‬ ‫كار‬ ‫ماحصل‬ ‫كه‬‫زبان‬‫سال‬1980‫گرديد‬ ‫عرضه‬.‫سال‬ ‫در‬ ‫زبان‬ ‫اين‬1983‫توسط‬ ‫آمد‬ ‫در‬ ‫استاندارد‬ ‫صورت‬ ‫به‬ ‫آمريكا‬ ‫استاندارد‬ ‫ملي‬ ‫سازمان‬. Ada Lovelace
  • 3. ‫اهداف‬ ‫و‬ ‫کاربرد‬ ‫بی‬ ‫و‬ ‫نطامی‬ ‫های‬ ‫سیستم‬‫درنگ‬ ‫هدایت‬ ‫و‬ ‫هوایی‬ ‫ترافیک‬ ‫کنترل‬ ‫های‬ ‫سیستم‬‫پرواز‬ ‫های‬ ‫تجزیه‬ ‫و‬ ‫ها‬ ‫داده‬ ‫پردازش‬ ‫سیستم‬‫شیمیایی‬ ‫بانکداری‬ ‫سیستم‬ ،‫پرداخت‬ ‫صورت‬ ‫های‬‫سیستم‬‫تج‬‫اری‬ ‫و‬...
  • 4. ‫واحدها‬ ‫و‬ ‫ساختار‬ ‫یافته‬ ‫توسعه‬ ‫پاسکال‬ Ada 83:‫محور‬ ‫روال‬( Functional ) Ada 95:‫گرا‬ ‫شيء‬ ‫اصلی‬ ‫واحدهای‬:، ‫ها‬ ‫روال‬Packages،Tasks،Protected objects
  • 6. ‫در‬ ‫همروندی‬ ‫انواع‬Ada Distributed objects Multitasking Task types Protected types
  • 8. Task ‫همروندی‬ ‫سازی‬ ‫پیاده‬ ‫اصلی‬ ‫عنصر‬ ‫بود‬ ‫خواهد‬ ‫تعلیق‬ ‫حالت‬ ‫در‬ ‫یا‬ ‫اجرا‬ ‫حالت‬ ‫در‬. ‫کار‬ ‫یا‬ ‫وظیفه‬ ‫اصلی‬ ‫اجزای‬ ‫معرفی‬(Specification) ‫اصلی‬ ‫بدنه‬( Body ) ‫ديگر‬ ‫براي‬ ‫اطالعات‬Task‫ها‬ ‫سازي‬ ‫پياده‬ ‫جزئيات‬ task type T is Somethings… end T; task body T is begin Somethings… end;
  • 9. Entry ‫ورودیه‬ ‫يك‬ ‫در‬ ‫دسترسي‬ ‫قابل‬ ‫نهاد‬ ‫تنها‬Task ‫خروجي‬ ‫و‬ ‫ورودي‬ ‫پارامترهاي‬ ‫با‬ ‫روال‬ ‫شبيه‬ ‫شناسه‬ ‫يك‬ ‫با‬ ‫يكتا‬ task type T is entry Put (data : in Integer); entry Get (result : out Integer); end T;
  • 10. Rendezvous ‫مالقات‬ ‫قرار‬ •‫بين‬ ‫ارتباط‬ ‫انتزاعي‬ ‫مفهوم‬Task‫ها‬ •‫ميكند‬ ‫استفاده‬ ‫همزماني‬ ‫اي‬ ‫پايه‬ ‫روش‬ ‫از‬ (synchronous mechanism) •‫توسط‬ ‫قرار‬ ‫محل‬accept‫بدنه‬ ‫در‬task‫ميشود‬ ‫مشخص‬ •‫ها‬ ‫پيام‬ ‫بندي‬ ‫صف‬
  • 11. Protected Modules ‫شده‬ ‫محافظت‬ ‫واحد‬ ‫در‬Ada 95----->Protected Modules ‫متقابل‬ ‫انحصار‬ ‫از‬ ‫پشتيباني‬ ‫خودكار‬ ‫بصورت‬ ‫همزماني‬ ‫بحث‬ ‫در‬ ‫مونيتور‬ ‫ساختار‬ ‫دارد‬ ‫اشتراكي‬ ‫حافظه‬ ‫بين‬ ‫شرطي‬ ‫هاي‬ ‫سبگنال‬ ‫كردن‬ ‫فراهم‬task‫ضمني‬ ‫و‬ ‫خودكار‬ ‫بصورت‬ ‫كالينت‬ ‫هاي‬ exports I. Procedures II. Entries III. Functions
  • 12. Protected Modules (cntd) ‫ادامه‬... protected type Protected_Buffer_Type is entry Insert (An_Item : in Item); entry Remove (An_Item : out Item); private Buffer : Item; Empty : Boolean := True; end Protected_Buffer_Type; ... protected body Protected_Buffer_Type is entry Insert (An_Item : in Item) when Empty is begin Buffer := An_Item; Empty := False; end Insert; entry Remove (An_Item : out Item) when not Empty is begin An_Item := Buffer; Empty := True; end Remove; end Protected_Buffer_Type; Guard : ‫دسترسي‬ ‫شرط‬ Protected entries
  • 13. Mechanism ‫مکانیزم‬ task type myTask is entry put(data : integer); entry get(result: integer); end myTask; task body myTask is myData : integer; begin -- other statement accept put(x : integer) do -- other statements end put; -- other statements end; task ‫به‬ ‫دسترسي‬ ‫هاي‬ ‫راه‬
  • 14. Mechanism (cntd) ‫ادامه‬... State lock eggshell ‫شي‬ ‫قفل‬ ‫شي‬ ‫درون‬ ‫قفل‬ ‫ورودي‬ ‫هاي‬ ‫نخ‬ ‫صف‬ ‫اجرا‬ ‫درحال‬ ‫نخ‬(state) ‫اجرا‬ ‫به‬ ‫شروع‬ ‫نخ‬
  • 15. Other subjects ‫دیگر‬ ‫موضوعات‬ ‫و‬ ‫مهم‬ ،‫همروندی‬ ‫بحث‬ ‫ادامه‬ ‫در‬ ‫زیر‬ ‫موارد‬‫است‬ ‫بحث‬ ‫قابل‬: ‫يك‬ ‫دادن‬ ‫خاتمه‬ ‫نحوه‬task:Terminate ‫روند‬ ‫اجراي‬ ‫در‬ ‫تاخير‬Rendezvous:delay ‫بندي‬ ‫الويت‬:task priority ‫مجدد‬ ‫بندي‬ ‫صف‬‫واحدها‬:protected objects requeues ‫رويدادهاي‬‫زمانبندي‬‫در‬ ‫شده‬Ada 2005 ‫در‬ ‫موازي‬ ‫كارهاي‬Ada 2012:parallel task ‫و‬...
  • 16. References ‫منابع‬  https://en.wikibooks.org/wiki/Ada_Style_Guide/Concurrency  https://en.wikipedia.org/wiki/Ada_(programming_language)  http://www.adaic.org/resources/add_content/docs/95style/html/sec_6/index.html  https://www2.adacore.com/gap-static/GNAT_Book/  https://www.adacore.com/