Document Type : Research Article
Author
Dept. of Computer Engineering, University of Kashan, Kashan, Iran
Abstract
Keywords
یک سیستم گسسته، سیستمی با تعداد شمارا از حالات است. این بدین معنی است که رفتار یک سیستم گسسته میتواند بهطور منظم از طریق حالاتش به صورت انتزاعی بیان شود. در نتیجه، یک سیستم گسسته اغلب با یک ماشین حالت، مدل و تحلیل میشود. یک سیستم را سیستم رخداد گسسته[1] گویند اگر حالات آن بر طبق رویداد رخدادهای گسسته تغییر کند و گذار حالت در زمانهای گسسته در پاسخ به رخدادها انجام شود. از نمونه سیستمهای رخداد گسسته میتوان شبکههای رایانهای، سیستمهای ارتباطی، سیستمهای ترافیک شهری و سیستمهای گردش کار را نام برد.
از آنجا که پاسخ یک سیستم رخداد گسسته ممکن است نیازهای کاربرانش را نقض کند، یک کنترلکننده به نام سرپرست[2] برای سرپرستی رفتار سیستم لازم است. به این منظور، نظریه کنترل سرپرستی[3] به عنوان یک روش رسمی برای ساخت کنترلکننده سیستمهای رخداد گسسته تدوین شد [1]. کنترلکننده یا سرپرست، مسؤولیت پایش رفتار سیستم و هدایت آن را به یک حالت امن در زمانی که نیاز کاربران نقض می شود، به عهده دارد.
از طرف دیگر، برای مطالعه یک سیستم با استفاده از شبیهسازی، ما نخست یک مدل انتزاعی از سیستم که در برگیرنده ویژگیهای سیستم است، ارائه می دهیم. سپس این مدل را با نوشتن برنامههایی که اجرای آنها رفتار مدل را شبیهسازی میکند، پیادهسازی میکنیم. شبیهسازی یک سیستم رخداد گسسته، مدل سیستمی را مشخص میکند که در آن تغییرات در زمانهای گسسته اتفاق میافتد. برای مثال، در یک مدل از یک شبکه رایانهای، ورود یک پیام به شبکه، یک تغییر در حالت مدل است. از آنجا که چنین تغییراتی مهم هستند، لازم است رفتار مدل را در زمانی که یک تغییر رخ میدهد، مشاهده کنیم.
این مقاله تصمیم دارد تا به مدلسازی بخش پایشگر کنترل سرپرستی با استفاده از دادههای دامنه مسأله که به وسیله کاربر سیستم بیان میشود، بپردازد. شبیهسازی چنین پایشگری با مسأله مشاهده و وارسی رفتار سطح پایین هنگام اجرای سیستم در مقابل توصیفهای سطح بالای نیازهای کاربران مواجه است، زیرا این دو به علت متفاوت بودن ماهیتشان، قابل مقایسه نیستند. به این منظور، رخدادها و نیازهای کاربران را باید از دادههای استفاده شده در دامنه مسأله منتزع کرد و سپس به فعالیت های هنگام اجرای سیستم نگاشت نمود. اگرچه روشهای متعددی تاکنون برای مدلسازی و شبیهسازی کنترل سرپرستی سیستمهای گسسته ارائه شده است، فقدان یک روش سیستماتیک که متکی به دادههای دامنه مسأله باشد، به چشم میخورد.
پس از توصیف رسمی رخدادها و نیازها، یک اتوماتا که معرف نقض نیازهاست، ساخته میشود تا یک توصیف مبتنی بر حالت از نقض نیازها ارائه شود. این توصیف به عنوان پلی بین توصیفهای مبتنی بر رخداد و مراحل شبیهسازی در نظر گرفته میشود. در حقیقت، این اتوماتا به عنوان یک مدل انتزاعی برای پیادهسازی مرحله شبیهسازی استفاده میشود. این اتوماتا که شامل هسته پایشگر است برای تعیین حالاتی که سیستم نباید وارد آنها شود، استفاده میشود.
دو نوع همروندی وجود دارد: (1) همروندی در اجرا که به وسیله پاسخ سیستم، رخدادهای محیط سیستم و کنترل سرپرستی ایجاد میشود و (2) همروندی بین رخدادها. تغییر سرعت و تغییر وضعیت ترمز قطار در سیستم حفاظت قطار، نمونهای از همروندی در رخدادهاست. این سیستم هدایت قطارها در نواحی "هشدار" ، "معمولی" و "آزاد" را از طریق توصیه دستورالعملهایی برای تنظیم سرعت و ترمز به عهده میگیرد. بنابراین، مکانیسمی برای اداره همروندی در مرحله شبیهسازی باید استفاده شود. در این راستا، ما شبیهسازی پایشگر را با استفاده از کتابخانه TPL ماکروسافت روی رایانه چند هسته با زبان C# [2و3] انجام میدهیم. ما از نخ ها و توابع TPL برای اداره همروندی در شبیهسازی رفتار سیستم رخداد گسسته استفاده میکنیم و سپس کارایی آنها را در یک مورد مطالعه مقایسه میکنیم. در خاتمه، روشمان را برای مدلسازی و شبیهسازی بخش پایشگر در کنترل سرپرستی سیستم حفاظت قطار به کار میبریم. کنترل سرپرستی، وارسی ارضا نیازهای کاربران به وسیله سیستم را به عهده دارد.
این مقاله به صورت زیر ادامه مییابد: در بخش دوّم ابتدا تعاریف رخدادها و ثابتها[4] را به صورت رسمی بیان و سپس بر اساس این تعاریف، نیازهای ایمنی[5] را تعریف میکنیم. در بخش سوّم، از تعاریف رخدادها و ثابتها برای توصیف مبتنی بر حالت سیستم استفاده میکنیم. در بخش چهارم، به طراحی شبیهساز با در نظر گرفتن توصیف مبتنی بر حالت، میپردازیم. برای نشان دادن این که چگونه باید روش ما برای یک مسأله خاص به کار رود، یک سیستم حساس به ایمنی را به عنوان یک مورد مطالعه در بخش پنجم مطرح میکنیم. در بخش ششم، به ارزیابی کارآیی روشمان می پردازیم. در بخش هفتم،کارهای مرتبط را مطالعه میکنیم تا تفاوتها و تشابهات آنها را با روش پیشنهادی نشان دهیم. در بخش هشتم، نتایجی، که از روش پیشنهادی به دست میآید، مشخص میکنیم.
2- توصیف رخدادها و ثابتها
از دادههای دامنه مسأله که بر حسب واژگان کاربر سیستم بیان میشود، یک محیط را با ویژگیهایش توصیف میکنیم که در آن یک ویژگی، مشخصه مهّمی از محیط سیستم است. پس از آن، رخدادها و ثابتها را با استفاده از این ویژگیها تعریف میکنیم. در نهایت، نقض نیازهای کاربران سیستم را با یک رخداد و تعدادی ثابت توصیف میکنیم. یک رخداد معرّف تغییری جدی در مقدار یک ویژگی است، امّا یک ثابت معرف عدم تغییر در یک ویژگی دیگر در زمان یک رخداد است. برای مثال، در سیستم کنترل قطار، قطار محیط سیستم است و "سرعت" و "ناحیه" دو ویژگی از این محیط هستند. جمله "سرعت قطار نباید در هنگام ورود به ناحیه هشدار بالا باشد"، یک نیاز ایمنی روی این دو ویژگی است که نباید نقض شود. عبارت " ورود قطار به ناحیه هشدار" یک رخداد و عبارت "سرعت بالا" یک ثابت است. به عبارت دیگر، این رخداد نیاز کاربر را نقض می کند، در صورتی که ثابت "سرعت بالا" برقرار باشد. در ادامه، به تعریف رسمی رخدادها، ثابت ها و نیازهای کاربر با استفاده از ویژگیها میپردازیم. برای خوانایی بیشتر، جدولی برای توصیف نمادهایی که در بخشهای بعدی این مقاله استفاده میشود، ارائه میشود (جدول 1).
جدول (1): شرح نمادهای مورد استفاده
توصیف |
نماد |
|
مجموعه اعداد حقیقی |
´ |
|
مجموعه اعداد حقیقی مثبت |
´+ |
|
رابطه ترتیب |
≤ |
|
ویژگی |
Pr |
|
رابطه انعکاس |
a ≤ a |
|
رابطه پادمتقارن |
a ≤ b & b ≤ a Þ a=b |
|
رابطه تعدی |
a≤ b & b≤ c Þ a≤ c |
|
مجموعه تهی |
Æ |
|
iامین بازه ویژگی p |
||
یک شاخص روی بازه i از ویژگی p در زمان t |
( )t |
|
یک رخداد. iامین بازه ویژگی p در زمان t برقرار میشود |
@T( )t |
|
یک رخداد. از iامین بازه ویژگی p در زمان t خارج میشویم |
@F( )t |
|
ثابت برقرار. iامین بازه ویژگی q در زمانهای t,t+1 برقرار است و تغییر نمیکند |
t( )t,t+1 |
|
ثابت برقرار. iامین بازه ویژگی q در زمانهای t,t+1 برقرار نیست و تغییر نمیکند |
f( )t,t+1 |
|
ثابتهای برقرار / ثابتهای نابرقرار |
Si,r t( )t,t+1 / Si,rf( )t,t+1 |
|
رخدادهای همروند |
Si³1@T( )t or Si³1@F( )t |
|
مجموعه متناهی از مکانها در شبکه پتری |
{P1, P2, …, Pm} |
|
مجموعه متناهی از گذارها در شبکه پتری |
{T1, T2, …, Tn} |
|
مجموعه متناهی از قوسهای جهتدار از مکانها به گذارها و بالعکس |
{F1, F2,… , Fk) |
|
رابطه نشانهگذاری که معرف تعداد نشانهها (N) در یک مکان (P) است |
M: P ® N |
|
نشانهگذاری اولیه مکان p |
m0(p) |
|
jامین نشانهگذاری مکان p |
(p) |
|
مکان ورودی به گذار Ti |
•Ti |
|
مکان خروجی از گذار Ti |
Ti• |
|
کتابخانه TPL ماکروسافت |
TPL |
|
واسط برنامه کاربردی |
API |
|
نقض نیازهای ایمنی (Safety Requirement Violation) |
SRV |
|
مکان تهی در شبکه پتری |
|
|
مکان دارای نشانه در شبکه پتری |
|
|
گذار در شبکه پتری |
||
قوس در شبکه پتری |
2-1- مدل سازی دادهها
محیط سیستم به وسیله تعدادی ویژگی مشخص میشود که در آن هر ویژگی که با Pr تعیین می شود. یک مجموعه خوشترتیب از مقادیر منطقی، شمارشی، صحیح یا اعشاری است. خصیصه ترتیب، مجموعه منطقی {درست، نادرست} را از مجموعه منطقی {نادرست، درست) متمایز میکند. بنابراین، در این مجموعهها، یک خصیصه خوش ترتیب با ترتیب نوشتن عناصر آنها مشخص می شود. یک مجموعه شمارشی شامل مقادیری است که با اسامی، مانند مجموعه ناحیه = {هشدار، معمولی، آزاد} مشخص میشود. یک مجموعه خوشترتیب، یک مجموعه کاملاً (به طور خطی) مرتب است اگر بتوان اوّلین عنصر آن مجموعه و هر زیر مجموعهاش را مشخص کرد [4]. برای مثال، مجموعه اعداد صحیح ={…-2,-1,0,1,2,…} ¢که یک مجموعه مرتب خطی است، خوشترتیب نیست، زیرا اوّلین عنصر آن را نمیتوان مشخص کرد، اما مجموعه اعداد مثبت ¢+={1,2,3,…} یک مجموعه خوشترتیب است، زیرا میتوان اوّلین عنصر این مجموعه و هر زیر مجموعه آن را تعیین کرد. رابطه ترتیب ">" یک رابطه روی مجموعه Pr است که سه خاصیت P1(انعکاس)، P2 (پادمتقارن) و P3(تعدی) را ارضا کند.
P1. a Î Pr, a ≤ a
P2. a, b Î Pr, if (a ≤ b and b ≤ a) Þ a=b
P3. "a, b, c Î Pr, if (a≤ b and b≤ c) Þ a≤ c.
تعریف: فرض کنید a و b دو عدد صحیح یا حقیقی متمایز باشند که a<b . یک بازه با نقاط نهایی a و b به عنوان یک بازه "بسته- باز" از a به b تعریف میشود و با [a ...b) نمایش داده می شود. بر اساس دامنه مسأله، هر Pr به بازه های منفصل با رابطه ">" شکسته می شود؛ به طوری که در دو بازه متوالی مانند [a…b) و [b…c) سوپرمم اوّلین بازه، می نیمم دومین بازه باشد. برای مثال، فرضکنید که سرعت یک ویژگی محیطی باشد که مقدارش به حداکثر 10 مایل در ساعت میرسد و مقادیر 3 ، 5/7 و 10 مقادیر مرزی هستند. بر اساس این مقادیر دامنه، سرعت را به بازههای [0…3) و [3…7.5) و [7.5…10] تقسیم میکنیم. وقتی یک مقدار ورودی از محیط سیستم دریافت میشود، با مینیمم مقدار هر بازه مقایسه میشود تا بازه متناظر مشخص شود. این بازه، بازهای است که مقدار خواندهشده از ورودی درآن قرار دارد. اکنون به تعریف ویژگیهای بازهها روی مقادیر صحیح یا اعشاری میپردازیم:
(1) |
= {a0 , a1 , . . . , an} º |
که Prp معرف ویژگی p و یک مجموعه خوشترتیب است و Ii,p معرف i امین بازه بسته باز از این ویژگیاست.
(2) |
= [a0 , … , aj), . . . , = [am , . . . , an) |
که Ii,pیک عدد اعشاری یا یک عدد صحیح است و i متعلق به مجموعه [1…k] و p یک ویژگی است. رابطه (2) معرف این است که هر Ii,p یک بازه رویPrp است که مینیمم و سوپرمم مقدارش بر اساس دامنه مسأله و به وسیله کاربر سیستم تعریف میشود. برای مثال، برای یک وسیله نقلیه که با سرعت حداکثر 10 مایل در ساعت حرکت میکند، بازه های[1…5)، [5…7) و [7…10] تعریف میشوند که به ترتیب معرف سرعتهای "کم" ، "متوسط" و "زیاد" است.
یک بازه، یک مجموعه شامل دو خصوصیت است: (1) یک مجموعه غیرتهی است که به وسیله رابطه (3) به صورت رسمی تعریف میشود و (2) هیچ عنصر مشترکی با دیگر مجموعهها ندارد که به وسیله رابطه (4) به صورت رسمی تعریف میشود. خصوصیت خوشترتیبی یک ویژگی با رابطه (5) بیان میشود و معرف این است که هر زیر مجموعه از یک ویژگی، خوشترتیب است.
(3) |
"i: ¹Æ |
(4) |
"i, j: Ç = Æ : i ≠ j, , Î |
(5) |
a < b Þ a Î , bÎ where i < j or a,b Î |
پس از آن که بازهها تعیین شدند، میتوانیم "شاخص" را تعریف کنیم. فرض کنید که Ii,p ، i امین بازه Prp و t یک شماره دنباله باشد که معرف یک ترتیب روی مقادیر اندازهگیریشده روی ویژگی Prp باشد. یک شاخص روی بازه I که با Ini,p)t) نشان داده میشود، یک نگاشت برای بازه Ii,pدر زمان t به صورت زیر است:
: Þ
از این به بعد، هر زمان اندازهگیری از یک ویژگی را یک "رویداد" مینامیم. بنابراین، میگوییم که Ini,p)t) برقرار است اگر امین "رویداد" Prp به بازه Ii,p تعلق داشته باشد در غیراین صورت Ini,p)t) برقرار نیست که به صورتIni,p)t) Ø نشان داده میشود. برای مثال، در سیستم حفاظت قطار، فرض کنید Pr1 معرف ویژگی سرعت قطار باشد، در نتیجه، I21 معرف بازه Pr1خواهد بود و عبارت "In2,1)3) برقرار است" به این معنی است که سومین سرعت اندازهگیری شده قطار به دومین بازه Pr1تعلق دارد. توجه کنید که در هر زمان، فقط یک شاخص از یک ویژگی برقرار است، زیرا هر مقدار Prp به فقط یکی از بازههایش تعلق دارد (رابطه 6). به عبارت دیگر، این خصوصیت معرف این است که یک کمیت اندازهگیری شده در زمان t نمیتواند به دو بازه از یک ویژگی متعلق باشد، زیرا بازهها منفصل هستند.
(6) |
"( , ): ∄ t, ( )t and ( )t where i≠j |
2-2- تعریف رخداد
یک رخداد اتفاق میافتد اگر تغییر مقدار یک ویژگی مانندPrp باعث شود تا Prp از بازه Ii,p به بازههای مجاورش؛ یعنی Ii-1,pیاIi+1,pگذر کند. به طور مشابه، تغییر در Prp از بازههای Ii-1,pیاIi+1,p به بازه مجاورش Ii,p معرف یک رخداد است. ما فرض میکنیم که تغییر مقدار یک ویژگی تدریجی است؛ به این معنی که تغییر مقدار یک ویژگی یا در داخل یک بازه قرار دارد یا این که به انتقال به بازه مجاور خودش منجر میشود. اکنون یک رخداد را به صورت رسمی تعریف می کنیم:
اگر دو رویداد متوالی از Prp که با t و t+1 مشخص میشود، به بازه Ii,p و یکی از بازههای مجاور آن؛ یعنی Ii-1,pیاIi+1,pمتعلّق باشد، میگوییم یک رخداد در زمان t رخ داده است (رابطههای (7) و (8)). رابطه (7) دو مورد را بیان میکند: (1) آخرین زمانی که Prp در بازه Ii-1,pیاIi+1,p بودهاست، زمان t است. این بدین معنی است که Prp در زمان t در Ini,pنبوده است که آن را با نشان میدهیم. (2) در زمان t یک تغییر در مقدار Prp باعث شده است کهPrp بازه Ii-1,pیاIi+1,pرا ترک کند و وارد بازه Ii,pدر زمان t+1شود. به طور مشابه، رابطه (8) بیان میکند که t آخرین زمانی است که Prpدر Ii,p بوده است و در زمان جاری یک تغییر در مقدار Prp موجب شدهاست تا Prpبازه Ii,p را ترک کند و وارد بازه Ii-1,pیاIi+1,pدر زمان t+1شود. این بدین معنی است که Prpدر Ini,pدر زمان t+1نبوده است. بنابراین، ما این مورد را با نشان میدهیم. همان طور که روابط (7) و (8) نشان میدهد، فقط از Ini,pاستفاده کردهایم. این بدین معنی است که دغدغه ما تنها ورود به یا خروج ازبازه Ini,pاست و وارد شدن به یا خروج از بازههای مجاور Ini,pدغدغه ما نیست. نمادهای "T@" معرف تغییر مقدار از false به true و "F@" معرف تغییر مقدار از true به false است که به ترتیب معرف قرارداشتن و قرارنداشتن در بازه Ini,pاست. رابطه های (7) و (8) معرف ورود به یا خروج از بازه Ii,pدر زمان t+1 است.
(7) |
@T defº [ and |
(8) |
@F defº [ and |
در حالتی که یک ویژگی از نوع منطقی باشد؛ یعنی مقادیر true و false داشته باشد، دو پارتیشن [true] و [false] خواهیم داشت. بنابراین، دو نوع رخداد میتواند وجود داشته باشد که به وسیله رابطههای (9) و (10) بیان بیان میشود. نمادهای "T@" و "F@" معرف بودن و نبودن در بازه In1,1است کهPr1={true,false} و I1,1=[true] و I2,1=[false] . رابطههای (9) و (10) میتواند از رابطههای (7)و (8) به دست آید. رابطه (9) معرف خروج از بازه I1,1در زمان t+1 یا معرف ورود به بازه I2,1 در زمان t+1 است و رابطه 10 معرف ورود به بازه I1,1در زمان t+1 یا خروج از بازه I2,1 در زمان t+1 است.
(9) |
@T( )t defº [( )t and ( )t+1] º [( )t and ( )t+1] |
(10) |
@F( )t defº [( )t and ( )t+1] º [( )t and ( )t+1] |
توجه داشتهباشید که رخدادها می توانند همزمان اتفاق بیفتند. به عبارت دیگر، در هر مرحله زمانی بیش از یک رخداد میتواند رخ دهد. این بدین معنی است که مقدار ویژگیها میتواند در هر زمان به صورت همزمان تغییرکند. در رابطههای (11) تا (14)، طرف چپ معرف تغییر مقدار Prpدر زمان t است و طرف راست معرف تغییر مقدار ویژگی دیگرمانند Prqدر همان زمان است، اما همان طور که در رابطه (6) بیان کردیم، حداکثر یک مقدار از یک ویژگی در هر مرحله از زمان میتواند تغییر کند.
(11) |
@T( )t and @T( )t |
(12) |
@F( )t and @T( )t |
(13) |
@F( )t and @F( )t |
(14) |
Î , Î , p ≠ q |
2-3- تعریف ثابت
فرض کنید t و t+1 دو رویداد متوالی از ویژگی Prp باشد. میگوییم یک ثابت روی بازه Ij,q وجود دارد اگر: (1) هر دو رویداد متعلّق به بازه Ij,q باشد یا (2) هیچ یک از آن دو در بازه Ij,q نباشند. حالت اوّل را یک ثابت برقرار رابطه (15) و حالت دوّم را یک ثابت نابرقرار گوییم رابطه (16). رابطه (15) اظهار میدارد که Inj,q در زمانهای t و t+1 برقرار بوده است و رابطه (16) اظهار میدارد که Inj,q در زمانهای t و t+1 برقرار نبوده است.
(15) |
t( )t,t+1 defº [( )t and ( )t+1]
|
(16) |
f( )t,t+1 defº [( )t and ( )t+1]
|
مشابه با رخدادها، ثابتها میتوانند همروند باشند؛ یعنی ترکیبی از ثابتهای برقرار و نابرقرار در یک زمان وجود داشته باشد مشروط بر این که هر ثابت متعلّق به یک ویژگی جداگانه باشد. ثابتهای همروند را با Si,r t( )t,t+1 یا Si,r f( )t,t+1نشان میدهیم. این نمادها، ثابتها را روی بازههای جداگانهای از ویژگیها توصیف میکند. بنابراین برای هر دو ثابت همروند زیر شرط p≠q وجود دارد:
( )t,t+1 , ( )t,t+1
2-4- نیاز ایمنی
همان طور که در بخشهای 2 و 3 بیان کردیم، یک نیاز ایمنی معرف این است که یک رخداد بد که معرف نقض نیازکاربر سیستم است، رخ نمیدهد. ما این نقض را به صورت ترکیب رخدادها و ثابتها نشان میدهیم. بروز چندین رخداد را با:
Si³1@T( )t یا Si³1@F( )t
و چندین ثابت را با:
Si³0t( )t یا Si³0f( )t
نشان میدهیم. رخداد را با رابطههای (7) و (8) و ثابت را با رابطههای (15) و (16) تعریف کردیم. فرض کنید که ویژگی Pr2در سیستم حفاظت قطار معرف ناحیهای از خط آهن باشد که اوّلین بازه آن، بازه "هشدار" است، بنابراین In1,2 معرف "ناحیه هشدار" است و فرض کنید که ویژگی Pr3 معرف "ترمز قطار" باشد که اولین بازهاش، بازه "آزاد" است. بنابراین In1,3 معرف "ترمز آزاد" است. درنتیجه رخداد @T(In1,2)t که به معنی and (In1,2)t+1] In1,2)t)Ø [ همراه با ثابت t(In1,3)t,t+1که به معنی [(In1,3)t and (In1,3)t+1] است، یک نقض را نشان میدهد. ثابت t(In1,3)t,t+1 اظهار می دارد که در زمان رخداد (یعنی ورود قطار به ناحیه هشدار) ترمز قطار آزاد بوده است.
3- توصیف اتوماتا
مدلسازی رسمی رفتار نرمافزار و ویژگیهای سیستم با استفاده از اتوماتا به عنوان پایهای برای پایش حین اجرا، ایدهای است که در ادبیات وارسی حین اجرا بیان شده است [5]. در این میان، شبکههای پتری اتوماتاهای مناسبی برای مدلسازی و تحلیل سیستمهای رخداد گسسته همروند و غیرهمگام[6] هستند [6]. علاقهمندی قابل ملاحظهای به شبکههای پتری برای مطالعه در حوزه مسائل کنترل سرپرستی نشان داده شده است [12و11و10و9 و8 و7] زیرا این شبکهها قدرت مدلسازی و تحلیل خوبی دارد. به علاوه، شبکههای سطح بالا مانند شبکههای پتری رنگی[7] تواناییهای اضافهای در مدلسازی سیستمها دارند [14]. در این بخش، ما میخواهیم روشی برای نگاشت توصیف رخدادها و ثابتهایی که در بخش 2 بیان کردیم، به مؤلفههای شبکه پتری ارائه دهیم. شبکههای پتری حاصل رفتار سیستم و محیط آن را نشان میدهد.
تعریف: یک شبکه پتری معمولی یک 4 تایی به صورت PN = (P, T, F, m0) است که در آن P = {P1, P2, …, Pm} یک مجموعه متناهی از مکانهاست و با حباب نشان داده میشود وT = {T1, T2, …, Tn} مجموعهای متناهی از گذارهاست که با خط عمودی پررنگ نشان داده میشود وF = {F1, F2,… , Fk) یک مجموعه متناهی از قوسهای جهتدار از مکانها به گذارها یا بالعکس است که با پیکان نمایش داده شده است و M: P → N یک نشانهگذاری[8] است که معرف تعداد نشانهها[9] در مکانهاست وm0 معرف نشانهگذاری اولیه است [6]. یک نشانهگذاری با برداری مشخص میشود که اعضایش معرف تعداد نشانهها در مکانهاست. برای مثال، بردارm0=[1,0,0] معرف این است که m0(P1)=1, m0(P2)=0, m0(P3)=0 یعنی مکانهای P1، P2 و P3 در ابتدا به ترتیب شامل یک، صفر و صفر نشانه است. مشابه با بردار m0 ، بردارmi معرف نشانهگذاری شبکه پتری در زمان i ام است.
تعریف: فرض کنید که مجموعه همه مکانهای ورودی به خروجی از گذار Tiبه ترتیب با ·Ti و ·Tiنشان داده شوند. گذار Tiاز مجموعه گذارهای T در شبکه پتری PN = (P, T, F, M) را در نشانهگذاری miتوانا[10] گوییم اگر " p Î •Ti, mi(p) ≥ 1. اگر گذار Tiتوانا باشد، میتواند عمل کند[11]. عمل کردن گذار Ti در نشانه گذاری mj(p) که با رابطه 17 نشان داده میشود که به نشانهگذاری mj+1(p) منجر میشود. در این حالت میگوییم که mj+1(p) از mj(p) قابل دسترسی است.
(17) |
3-1- ساختن اتوماتا
وقتی مکانها، گذارها و نشانهگذاریها تعریف شدند، از ویژگیهای محیطی سیستم برای ساختن اتوماتای پتری استفاده میکنیم. برای هر ویژگی مانندp یک زیرشبکه درنظر میگیریم که در آن برای هر Ii,p، یک محل منظور میشود و محل دارای نشانه، متناظر با بازه جاری از ویژگی pاست. حال ثابتهای t( )t یا f( )tو رخدادهای @T( )t یا F( )tرا که در بخش 2 توصیف شدند، به مکانها و گذار بین این مکانها منتسب می کنیم.
ویژگیهای محیطی دو نوع هستند: پایشی و کنترلی. یک ویژگی پایشی مانند "ناحیه ورود قطار" ویژگیی است که باید به وسیله سیستم پایش شود و یک ویژگی کنترلی مانند "ترمز قطار" ویژگیی است که باید برای کنترل محیط مانند قطار استفاده شود. پس از آن که زیرشبکهها برای ویژگیها مشخص شدند، یک شبکه سراسری از اتصال زیرشبکههای حاصل به دست میآوریم. زیرشبکهها، شبکههای پتری هستند که برای ویژگیهای پایشی و کنترلی ساخته شدهاند و شبکه سراسری، در حقیقت اتصال بین این دو نوع ویژگیهای متناظر را نشان میدهد. برای مثال، در سیستم حفاظت قطار، ویژگیهای "سرعت قطار" و "ناحیه ورود قطار" که ویژگیهای پایشی هستند، برای تعیین وضعیت "ترمز قطار" که ویژگی کنترلی است، استفاده میشوند. بنابراین، زیرشبکههای پتری حاصل از ویژگیهای پایشی به زیرشبکههای پتری حاصل از ویژگیهای کنترلی متصل میشوند. سپس شبکه پتری سراسری حاصل یک توصیف مبتنی بر حالت از رفتار محیط سیستم و پاسخهای سیستم را مشخص میکند.
علاوه بر شبکه سراسری پتری، شبکهای نیز برای نقض نیازهای کاربران سیستم ساخته میشود. عمل کردن هر گذار در این شبکه با یک نشانهگذاری قابل دسترس رابطه (17) نشان داده میشود که به معنی نقض یک نیاز است. این نقض نیاز کاربر، به خاطر بروز یک رخداد و برقراری یک یا چند ثابت است. وقتی رابطه 17 برای نقض یک نیاز استفاده میشود، نماد mj(p) یک حالت (نشانهگذاری) امن و نماد mj+1(p) یک حالت (نشانهگذاری) ناامن یا بحرانی را نشان میدهد. عبارت @T( )tبه این معنی است که اگر گذار عمل کند، مقدار Ini,pدر مکان ورودی شبکه (که یک مکان امن است) false است و در مکان خروجی (که یک محل ناامن یا بحرانی است) برقرار می شود ((true. به طور مشابه، عبارت @F( )t به این معنی است که مقدار Ini,pدر مکان ورودی شبکه برقرار است (true) و در مکان خروجی شبکه برقرار نیست (false). عبارت t( )t,t+1 به این معنی است که مقدار Inj,rدر مکان ورودی برقرار است(true) و وقتی گذار عمل میکند، همچنان برقرار باقی می ماند. به طور مشابه عبارت f( )t,t+1 به این معنی است که مقدار Inj,rدر هردو مکان برقرار نیست. چنین توصیفی نشان دهنده حالتهای ناامن یا بحرانی (یعنی نقض یک نیاز کاربر) است که برای وارسی حین اجرای عملیات سیستم استفاده میشود. اگر یک مکان در شبکه پتری را یک حالت حین اجرا در نظر بگیریم، شبکه پتری پلی روی شکاف بین رخدادهای محیطی و عملیات حین اجرای سیستم خواهد بود که برای وارسی حین اجرای رفتار سیستم به منظور مطابقت با نیازهای ایمنی مبتنی بر دامنه و سطح بالای کاربران استفاده می شود.
4- طراحی شبیهساز پایشگر
هنگامی که یک رخداد در محیط سیستم اتفاق میافتد، پایشگر، نشانهگذاری جاری در شبکه پتری نقض نیازها که یک نشانهگذاری امن است و همچنین، رخداد و ثابتهایی را که معرف شرایط محیط هستند، میگیرد. اگر گذاری از شبکه پتری حاصل بتواند عمل شود، نشان دهنده این است که پاسخ سیستم نامطلوب بوده و یک نقض رخداده است. برای مثال، در سیستم حفاظت قطار که قطار وارد ناحیه هشدار میشود و سرعت بالا دارد، مشخص میشود که سیستم سرعت قطار را کنترل نکرده است و نقض یک نیاز کاربر محسوب میشود. این نقض با عملکردن یک گذار در شبکه پتری کشف میشود. اگر سرعت قطار پایین باشد، هیچ گذاری عمل نمیکند و در نتیجه هیچ نقض نیازی نداریم.
همان طور که در بخش 2-2 بیان شد، یک رخداد به عنوان تغییر مقدار یک ویژگی تعریف میشود که به ایجاد یک گذار از بازه جاری ویژگی به بازه بعدی یا قبلی آن منجر میشود. بنابراین، برای تعیین این که آیا اتفاقی رخ داده است یا نه، پایشگر مقدار تغییریافته یک ویژگی را از محیط سیستم دریافت میکند و آن را با مینیمم مقدار هر بازه از آن ویژگی مقایسه میکند تا بازه متناظر در ویژگی را تعیین کند. پس از آن، پایشگر پاسخ سیستم را با پاسخ صحیح در بازه متناظر مقایسه میکند. متوسط زمان مقایسه از مرتبه n/2 است که n تعداد بازههای ویژگی است.
برای شبیهسازی پایشگر در کنترل سرپرستی، مکانیسمی برای اداره رخدادهای همروند لازم است، زیرا پایشگر باید قادر به دریافت و اداره رخدادهایی که به صورت همروند در محیط سیستم رخ میدهد، باشد. به طور سنتی، الگوی برنامهنویسی چندنخی برای پشتیبانی همروندی در رایانههای تکهسته استفاده میشود، اما رشد فزاینده پردازندههای چندهسته، الگوهای جدید همروندی را در استفاده از پردازندهها ایجاد کردهاست. علاوه براین، پردازندههای چندهسته میتوانند برای افزایش کارآیی اجرای برنامه ها در اداره دادهها و وظایف موازی، مدیریت شوند. کتابخانه موازی وظایف (TPL) کتابخانهای در محیط .NET است که برنامهنویسان را برای استفاده از پردازندههای چندهسته در اجرای موازی برنامهها، توانا میسازد. در TPL، یک وظیفه به یک نخ منتسب می شود و سپس وظایف موازی به صورت نخهای همروند اجرا میشوند. TPL مجموعهای از واسطهای برنامهنویسی کاربردی را فراهم میسازد که به وسیله آنها برنامهنویسان قادر میشوند عملیاتی مانند انتظار برای اتمام وظایف، لغو وظایف، ایجاد وظایف طولانی اجرا و اجرای وظایف را به صورت همگام اجرا کنند. علاوه براین، آن الگوی زمانبندی وظایف را با تعیین سطح همروندی و اولویتها، پیکربندی میکند. پایشگر را با استفاده از مکانیسمهای: (1) نخ، (2) وظیفه (3) ترکیب نخ و وظیفه شبیهسازی میکنیم و آن را در "سیستم حفاظت قطار" در بخش بعدی به کار میبریم تا کارآیی مکانیسمها را با یکدیگرمقایسهکنیم.
5- مورد مطالعه: سیستم حفاظت قطار
در این بخش روش پیشنهادی را برای طراحی پایشگر کنترل سرپرستی سیستم حفاظت قطار به کار میبریم و به بررسی کارایی آن میپردازیم. این سیستم را Cab signaling گویند که به صورت پیوسته اطلاعاتی را درباره محل و سرعت قطار دریافت میکند تا آن را با اتخاذ کنشهای مناسب روی سرعت و ترمز کنترل کند. این سیستم در بسیاری از کشورها مانند فرانسه، آلمان و ژاپن استفاده میشود. این سیستم سیگنالهای سبز، زرد یا قرمز را برای راننده قطار نمایش میدهد تا با توجه به آن راننده قطار سرعت خود را تنظیم کند. سیگنالهای سبز، زرد و قرمز به ترتیب معرف نواحی "امن"، "محدود" و "خطرناک" است. در ناحیه امن قطار میتواند دارای هر سرعتی باشد، در ناحیه محدود، سرعت قطار دارای حداکثر مجازی است و در ناحیه سوم، خطر تصادف وجود دارد و سرعت باید حداقل شود. وقتی که راننده قطار به سگینال صادره توجهی ندارد و از محدوده سرعت مجاز تخطی میکند، این سیستم وظیفه دارد تا به راننده قطار هشدار دهد. اگر راننده قطار به هشدارها پاسخ ندهد، سیستم خود برای عمل ترمزگیری اقدام خواهدکرد. سرعت و ترمز قطار براساس نوع سیگنال مشخص میشود. کنشهایی که انتظار میرود تا به وسیله کنترل سرپرستی سیستم اتخاذ شود، به قرار زیر است:
الف- اگر سرعت قطار زیر سرعت مجاز است، کنشی لازم نیست؛
ب- اگر قطار با سرعت خیلی زیاد در هنگام اعلام سیگنال قرمز حرکت میکند، سیستم باید هشدار دهد و سپس اگر راننده قطار هشدار را جدی نگرفت، خود ترمز قطار را بکشد؛
ج– سیگنال زرد معرف این است که قطار باید آماده توقف حرکت در سیگنال بعدی باشد. بنابراین، کنترل کننده سرپرستی باید منحنی ترمز را محاسبه کند تا سرعت قطار را در هنگام ورود به ناحیه متعادل کاهش دهد؛
د– هنگامی که قطار متوقف شد، ترمزهایش باید آزاد شود.
در زیر بخشهای بعدی، پایشگر را با استفاده از موارد زیر شبیهسازی میکنیم: (1) اتوماتا؛ (2) تعیین ویژگیهای قطار به عنوان محیط سیستم و (3) توصیف رخدادها، ثابتها و نیازهای ایمنی کاربران.
5-1 – مدل سازی دادهها
با در نظرگرفتن کنشهایی که باید به وسیله کنترل سرپرستی سیستم برای کنترل محیط سیستم گرفته شود، سه ویژگی محیطی برای کنترلکردن محیط استفاده میشود: (1) سرعت قطار که با نماد Pr1 نشان میدهیم؛ (2) ترمز قطار که با نماد Pr2 نشان میدهیم و (3) ناحیهای که قطار وارد میشود که با نماد Pr3 نشان میدهیم. اولین و سومین ویژگی از نوع شمارشی (ر. ک. بخش 2-1) و دومین ویژگی یک عدد صحیح است. سیستم نواحی را که قطار وارد میشود، پایش میکند و بر اساس آن قطار را از طریق سرعت و ترمز آن کنترل میکند. محاسبات برای اعمال ترمز و کاهش سرعت قطار به وسیله نرمافزار سیستم انجام میشود.
Pr1: VELOCITY = ¢+ = {v1, v2, . . ., vn} vi < for i < j
Pr2: BRAKE = {putOn, putOff}
Pr3: REGION = {free, moderate, cautionary}
براساس بخش 2-1 ، ویژگی Pr1 را به بازههای جدا از هم و متناهی با رابطه ترتیب <” “ تقسیم میکنیم؛ به طوری که برای هر دو بازه متوالی، مانند [a1…aj) و [aj+1…am) سوپرمم اولین بازه و مینیمم دومین بازه است. براساس نظر خبره سیستم، سرعت کمتر از یک مقدار مشخص، مانند vi معرف سرعت مجاز در همه وضعیتهاست و سرعت بین دو مقدار مشخص مانند vi و vj وقتی مجاز است که قطار سیگنال قرمزی را دریافت نکند و سرعت بیش از مقدار vj وقتی مجاز است که قطار از سیستم سیگنال سبز دریافت کند. در نتیجه، ویژگی Pr1 به سه بازه ، و تقسیم میشود که:
VELOCITY = ¢+ = {v1, v2, . . ., vn} = È È : = [v1…vi), =[vi… ), =[ … vn)
پس از تعیین بازهها، شاخصها را تعریف میکنیم. فرض کنید که بازه ، iامین بازه ویژگی Pr1 و t یک شماره توالی باشد که معرف یک ترتیب روی مقادیر اندازهگیری شده ویژگی Pr1 باشد. یک شاخص روی بازه I که با ( )tنشان داده میشود، یک نگاشت برای بازه در زمان t است (رابطه 18).
(18) |
( )t:( )t= |
شاخصهای ، و معرف نمادهای "کم"، "متوسط" و "زیاد" هستند. ویژگی Pr2 (برای ترمز) شامل دو بازه [putOn] و[putOff] با مقادیر منطقی و ویژگی Pr3 (برای ناحیه) شامل سه بازه free، moderate و cautionary با مقادیر شمارشی است. در حقیقت، هر بازه یک کمیت است که نشان دهندة مجموعهای از مقادیر است. این کمیتها به عنوان شاخصهای بازهای منظور میشوند:
= putOn, = putOff
= free, = moderate, =cautionary
همان طور که در بخش 4 بیان شد، هنگامی که مقدار یک ویژگی محیطی تغییر میکند، پایشگر آن را از محیط سیستم دریافت میکند و آن را با مینیمم مقدار هر بازه از ویژگی مقایسه میکند تا بازه متناظر با آن را تعیین کند. با تعیین بازه، کنش مورد انتظار سیستم مشخص میشود.سپس پایشگر کنش مورد انتظار را با پاسخ واقعی سیستم مقایسه میکند که درستی رفتار سیستم مشخص شود.
5-2- تعریف رخداد و ثابت
براساس رابطههای (7) و (8) (یک رخداد به معنی تغییر بازه در یک خصیصه است) و رابطههای (15) و (16) (یک ثابت به معنی عدم تغییر بازه یک ویژگی در هنگام یک رخداد است)، ما رخدادها و ثابتهای محیطی سیستم حفاظت قطار را تعریف میکنیم. در ارتباط با شاخصهای بازهای برای ویژگی Pr3 (ناحیه آزاد، محدود و هشدار) رخدادها و ثابتهای زیر را میتوان داشت:
T(free)t , @F(free)t, @T(moderate)t,F(moderate)t, @T(cautionary)t and @F(cautionary)t
t(free)t,t+1 , f(free)t,t+1, t(moderate)t,t+1,f(moderate)t,t+1, t(cautionary)t,t+1 and f(cautionary)t,t+1
توجه داشته باشید که رخداد "@F" میتواند با رخداد "@T" روی بازه دیگر تعریف شود. برای مثال، رخداد "@F(moderate)" زمانی رخ میدهد که "@T(free)t" یا "@T(cautionary)t" رخ دهد. به طور مشابه یک ثابت از نوع "t" میتواند با دو ثابت "f" بیان شود. برای مثال، ثابت "t(free)t,t+1" میتواند با ثابتهای "f(moderate)t,t+1" و "f(cautionary)t,t+1" بیان شود. به طور مشابه، رخدادها و ثابتها برای ویژگیهای Pr1 و Pr2 تعریف میشوند.
5-3- نیازهای ایمنی
با استفاده از تعریف نیاز ایمنی (بخش 2-4 را ملاحظه کنید) و کنشهایی که باید به وسیله سیستم در برابر رخدادهای محیطی انجام شود (این کنشها در بخش 5 با موارد الف تا د مشخص شدند)، نیازهای ایمنی را برای سیستم حفاظت قطار تعیین میکنیم. در ارتباط با کنش "ب" در بخش 5، یک رخداد بد وجود دارد که باید به وسیله پایشگر به صورت زیر هشدار داده شود. هنگامی که قطار میخواهد وارد ناحیه هشدار شود، سیستم باید یک سیگنال قرمز را برای قطار صادرکند. بنابراین، یک رخداد بد اتفاق خواهد افتاد اگر سیستم چنین سیگنالی را صادرنکند یا اینکه راننده قطار توجهی به آن نکند. در این راستا، نقضهای نیازهای ایمنی عبارتند از: (1) قطار با سرعت بالا در ناحیه هشدار حرکت میکند و (2) ترمز قطار در ناحیه هشدار آزاد است. این دو نقض را با SRV1 و SRV2 تعریف میکنیم و با رابطههای (19) و (20) نشان میدهیم.
(19) |
SRV1: @T(cautionary)t and t(high)t,t+1 |
(20) |
SRV2: @T(cautionary)t and t(putOff)t,t+1 |
در ارتباط با کنش "ج" در بخش 5، یک رخداد بد وجود دارد که باید به وسیله پایشگر به شیوه زیر هشدار داده شود: هنگامی که قطار میخواهد در سیگنال بعدی توقف کند، سیستم باید یک سیگنال زرد را صادر کند. بنابراین، یک رخداد بد رخ خواهد داد وقتی که سیستم، سیگنالی را صادر نکند (این میتواند به دلیل عدم محاسبه صحیح منحنی ترمز کاهش سرعت قطار باشد) یا این که راننده قطار، سرعت قطار را کاهش ندهد. بنابراین، نقضهای نیازهای ایمنی که با SRV3 و SRV4 (رابطههای 21 و 22) نشان داده میشوند، عبارتند: از (1) سرعت قطار در هنگام ورود به ناحیه محدود بالاست و کاهش نمییابد و (2) وقتی قطار وارد ناحیه محدود میشود، راننده قطار ترمز نمیگیرد.
(21) |
SRV3: @T(moderate)t and t(high)t,t+1 and @F(high)t |
(22) |
SRV4: @T(moderate)t and @F(putOn)t,t+1 |
نقضهای SRV1 و SRV2 بحرانی و نقضهای SRV3 و SRV4 ناامن هستند. به ترتیب نقضهای بحرانی و ناامن هستند. یک نقض بحرانی معرف یک موقعیت خیلی خطرناک است، در حالی که یک نقض ناامن معرف موقعیتی است که میتواند به وضعیت خطرناک منجر شود.
در ارتباط با کنش "الف" در بخش 5، هیچ نیاز ایمنی وجود ندارد، زیرا هیچ رخداد بدی اتفاق نمیافتد حتی اگر سیستم سیگنال قرمزی را صادر کند یا این که دستور ترمز گرفتن بدهد و به طور مشابه، در ارتباط با کنش "د" در بخش 5، هیچ نیاز ایمنی وجود ندارد، زیرا اگر ترمز آزاد نشود، رخداد بدی اتفاق نمیافتد.
5-4- ساخت اتوماتا
براساس بخش 3-1، دو اتوماتا ساخته میشود: (1) برای نمایش رفتار سیستم و (2) برای نمایش نقضهای بحرانی و ناامن نیازهای ایمنی. از اتوماتای اول برای پایش رفتار سیستم و از اتوماتای دوم برای کنترل سیستم استفاده میشود. برای ساختن اتوماتای اول، یک شبکه برای هر ویژگی محیطی ساخته میشود و سپس یک شبکه سراسری با استفاده از اتصال هر شبکه ایجاد می شود. براساس بخش 5-1، محیط سیستم یعنی قطار، 3 ویژگی Pr1، Pr2 و Pr3 دارد که به ترتیب شامل 3، 2 و 3 بازه است. بنابراین، سه شبکه پتری برای ویژگیهای Pr1، Pr2 و Pr3 ساخته میشود (نک. بخش 3-1). در زیر، مجموعههای P، T و m0 تا m2 به ترتیب مکانها، گذارها و نشانهگذاریها را برای شبکه اول توصیف میکند که محلهای P0 تا P2 معرف شاخصهای بازهای "کم"، "متوسط" و "زیاد" برای سرعت هستند و نشانهگذاریهای m1 و m2 از نشانهگذاری m0 بر طبق رابطه 17 ایجاد میشوند.
P = {P0, P1, P2}, T = {T0, T1, T2, T3}, •T0={P0}, T0•={P1}, •T1={P1}, T1•={P2}, •T2={P1}, T2•={P0},
•T3={P2}, T3•={P1}, m0={1,0,0}, m1={0,1,0}, m2={0,0,1}
به طور مشابه، مجموعههای P´، T´ و m´0 و m´1 به ترتیب مکانها، گذارها و نشانهگذاریها را برای شبکه دوم توصیف میکند که محلهای P'1 و P'2به ترتیب معرف شاخصهای بازههای "ترمز گرفتهشده" و "ترمز آزاد" و نشانهگذاری از نشانهگذاری بر طبق رابطه (17)، ایجاد میشود.
P' = {P'1, P'2}, T' = {T4, T5}, •T4={P'1}, T4•={P'2}, •T5={P'1}, T5•={P'2}, m'0={1,0}, m'1={0,1}
به طور مشابه، مجموعههای P´، T´ و m´0 و m´2 به ترتیب مکان ها، گذارها و نشانهگذاریها را برای سومین شبکه توصیف میکند که محلهای P"1 ، P"2و P"3 معرف شاخص بازههای "آزاد"، "محدود" و "هشدار" است و نشانهگذاریهای m´1 و m´2 از نشانهگذاریm´0 براساس رابطه (17) ایجاد میشود.
P" = {P"1, P"2, P"3}, T" = {T6, T7, T8, T9}, •T6={P"1}, T6•={P"2}, •T7={P"2}, T7•={P"1}, •T8={P"2}, T8•={P"3}, •T9={P"3}, T9•={P"2}, m"0={1,0,0}, m"1={0,1,0}, m"2={0,0,1}
شکل های (1)،(2) و (3) به ترتیب شبکههای پتری را برای سه شبکه فوقالذکر نشان میدهد که مکان های نشانهدار معرف مکانهای جاری در هر شبکه است.
شکل (1):شبکه پتری برای ویژگی Pr1
شکل (2): شبکه پتری برای ویژگی Pr2
شکل (3):شبکه پتری برای ویژگی Pr3
ویژگی Pr3 که معرف ناحیه(REGION) است، یک ویژگی پایشی است، زیرا به وسیله سیستم نظارت میشود، در حالی که ویژگیهایPr1 و Pr2 که به ترتیب معرف سرعت (VELOCITY) و ترمز(BRAKE) است، نقش ویژگیهای هم پایشی و همکنترلی را ایفا میکنند زیرا هر دو ویژگی به وسیله سیستم پایش میشوند، تا اگر لازم باشد تنظیم (کنترل) میشوند. شکل (4)، شبکه سراسری است که با استفاده از زیر شبکهها ساخته شده است. در این شکل، زیرشبکه مربوط به ویژگی Pr3(سمت چپ شکل) ورودی به سیستم است، در حالی که زیر شبکههای مربوط به ویژگیهای Pr1 و Pr2 (بالا و سمت راست شکل) هم ورودی و هم خروجی سیستم است.
اکنون به روش ساخت اتومای نقض نیازها می پردازیم که نشان دهنده نقضهای بحرانی و ناامن نیازهای ایمنی است و با توجه به رابطههای (19) تا (23) به دست میآید. برای این که رخداد در رابطه (19) عمل کند، گذار T8 در شکل (3) باید توانا باشد و ثابت t(high)در رابطه (19) معرف این است که محل P2 در شکل 1، یک نشانه دارد. رخداد به همراه ثابت در رابطه (19) با شکل(5)نشان داده میشود که در آن نشانهگذاری m0=[0, 0, 1, 0, 1, 0]، نشانهگذاری اولیه است. هنگامیکه گذار T8 در شکل (5) عمل میکند، نشانهها از محلهای P2 و P²2 حذف میشود و محل P²3 دارای نشانه میشود که با نشانهگذاری m1=[0, 0, 0, 0, 0, 1] مشخص میشود. نشانه گذاری m1 از نشانهگذاری m0 به وسیله پایشگر با استفاده از رابطه (17) به دست میآید. اتوماتای نقض برای رابطههای (20) تا (22) به صورت مشابه ساخته میشود.
شکل (4): شبکه پتری سیستم حفاظت قطار
شکل (5): اتوماتای نقض نیاز SRV1
5-5- شبیهسازی پایشگر
ما از زبان C# همراه با نخها و از کتابخانه TPL در محیط .NET برای : (1)شبیهسازی رخدادهای همروند و ثابتها در رفتار سیستم و (2) مشاهده و وارسی آنها به وسیله پایشگر در مقابل الگوهای نقض نیازها استفاده میکنیم. این الگوهاکه در شکل (5)نشان داده شده است، با یک همروندی نامطلوب تعیین میشود. این الگوهای همروند در شکل ترکیب رخدادها و ثابتها روی ویژگیهای Pr1 تا Pr3 ظاهر میشود (نک. بخش 5-1). برای مثال نقض Ù در شکل (5)، یک نمونه همروند است که معرف رخداد ورود قطار به ناحیه هشدار در هنگام بالا بودن سرعت قطار (که یک ثابت است) است. برای شبیهسازی با استفاده از کتابخانه TPL، برای هر اجرای همروند، یک وظیفه در نظر میگیریم. سیستم کنترل قطار و محیط آن (قطار) با سه اجرای همروند مدل میشوند: (1) رفتار قطار در ناحیه؛ یعنی ورود یا خروج قطار به یا از ناحیه، (2) رفتار سرعت قطار یعنی افزایش یا کاهش سرعت و (3) رفتار ترمز قطار یعنی گرفتن یا آزاد کردن آن. همچنین، یک وظیفه همروند برای اجرای برنامه پایشگر منظور میشود تا رخدادها و ثابتهای گزارش شده به وسیله سه وظیفه فوقالذکر را دریافت کند.
ما از کتابخانه TPL و نخها برای شبیهسازی اجراهای همروند استفاده میکنیم، اما کتابخانه TPL، دید روشنتری از رفتار سیستم و محیط آن میدهد. انتساب وظایف به هستههای پردازنده به صورت پویاست، در حالی در مکانیسم چندنخی انتساب هر نخ اجرا به یک هسته به صورت ایستاست. روش پویا با سوئیچ کردن بین هستههای یک پردازنده، یک اجرا را به هر هسته از پردازنده که بیکار است، میدهد در حالی که در روش ایستا، یک هسته وقف یک نخ میشود و از هسته بیکار پس از اتمام وظیفهاش استفاده نمیشود. در نتیجه، شبیهسازی شبکههای همروند با استفاده از کتابخانه TPL دید واقعیتری از همروندی در سیستمهای حقیقی و محیط آنها را میدهد. علاوه بر این، وقتی تعداد فرآیندهای همروند افزایش مییابد، استفاده از کتابخانه TPL به کارآیی محاسباتی سطح بالاتری روی پردازندههای چند هستهای نسبت به استفاده الگوی چندنخی منجر میشود.
شکل (6) زمان اجرای شبیه سازی را با چهار مکانیسم نشان میدهد: (1) تک نخی؛ (2) چندنخی؛ (3) مبتنی بر وظیفه و (4) ترکیب چندنخی و مبتنی بر وظیفه. ما این مکانیسمها را روی یک پردازنده دو هسته برای 10، 20 و 30 قطار به کار بردیم .شکل (6) زمان اجرا را نشان میدهد که در آن محور عمودی نشان دهنده زمان و محور افقی نشان دهنده مکانیسمهای 1 تا 4 است. میلهها زمان اجرا را برای 10، 20 و 30 قطار نشان میدهد. همان طور که شکل (6) نشان میدهد، مکانیسم مبتنی بر وظیفه حداقل زمان اجرا را دارد. شکلهای (7) تا (9)بهرهوری هستهها را در استفاده از مکانیسمها برای 50 قطار نشان میدهد. در حالی که شکلهای (7) و (9) نشان میدهد که مکانیسمهای چندنخی و ترکیبی (چندنخی و مبتنی بر وظیفه) از 68% و 54% و هستهها استفاده کردهاند، شکل (8) نشان میدهد که مکانیسم مبتنی بر وظیفه از هستهها نزدیک 100% بهره میگیرد.
6- ارزیابی کارآیی روش پیشنهادی
این بخش کارآیی روش پیشنهادی را ارزیابی میکند. ما روش پیشنهادی را برای نیازهای ایمنی کاربران سیستم حفاظت قطار به کار گرفتیم تا پایشگر سیستم را مدل و شبیهسازی کنیم. ارزیابی قدمهای روش پیشنهادی به شرح زیر است: (1) کارآیی مستندسازی نیازهای کاربران. در ارتباط با سیستمهای حساس به ایمنی، کارشناس سیستم مستندات نیازها را مرور میکند تا مطمئن شود که آنها سازگار و صحیح هستند. چنین مرورهایی کارآ خواهد بود اگر مستندات واضح و قابل فهم برای کارشناس باشد. برای محقق شدن این ویژگی، ما نیازهای ایمنی مبتنی بر دامنه مسأله را به زبان کارشناس و خبره سیستم بیان کردیم و سپس انتزاع کمیتهای سیستم را با تقسیم آنها به کمیتهای پایشی و کنترلی نشان دادیم. (2) کارآیی توصیف نیازها. در سیستمهای حساس به ایمنی، توصیف نیازها باید قابل وارسی به صورت رسمی (مبتنی بر ریاضی) باشد تا بتوان درستی و سازگاری آنها را نشان داد. (3) کارایی طراحی نیازها. با نگاشت نیازهای ایمنی به یک اتوماتا، یک مدل انتزاعی ساختیم که یک طراحی کارآ را برای پیادهسازی پایشگر فراهمکرد. برای نشان دادن کارایی طراحی، آن را برای پایشگر کنترل سرپرستی حفاظت قطار به کار بردیم.
شکل (6): زمان اجرا با مکانیسمهای (1) تک نخی، (2)چند نخی، شکل (7): بهرهبرداری از هستهها در برنامه چند نخی برای
(3) وظیفهای و (4) ترکیبی 50 قطار
شکل (8): بهرهبرداری از هستهها در برنامه چند وظیفهای شکل (9): بهرهبرداری از هستهها در برنامه ترکیب چند وظیفهای
برای 50 قطار و چند نخی
7- کارهای مرتبط
در مقایسه با تحقیقهای دیگران، دو مرحله را در نظر میگیریم: (1) توصیف مبتنی بر مدل و (2) شبیهسازی پایشگر، زیرا روش ما شامل دو بخش بود: (1) توصیف مبتنی بر مدل شامل توصیف سطح بالا (مبتنی بر رخداد) و توصیف مبتنی بر حالت و (2) شبیهسازی پایشگر در کنترل سرستی سیستم های رخداد گسسته. بنابراین، ما تحقیقهای مرتبط به توصیف و شبیه سازی سرپرستی را در نظر میگیریم. برادین و ونام چارچوبی ارائه کردند که در آن از رخدادهای زماندار برای توصیف کنترل سرپرستی سیستمهای گسسته استفاده شدند[14]. آنها تنها به موارد نظری در طراحی کنترل سرپرستی پرداختند. جیانگ و کومار [15] و رادیا و سارگنت [16] از منطق برای توصیف استفاده کردند که جیانگ و کومار از منطق زمانی انشعابی CTL و رادیا و سارگنت مشابه با روش ما، رخداد و شرط (ثابت) را برای توصیف استفاده کردند. اما آنها عموماً تنها یک توصیف مبتنی بر رخداد ارائه کردند و روشی برای نگاشت توصیفهای مبتنی بر رخداد به توصیفهای مبتنی بر حالت پیشنهاد ندادند. در حالی که برخی از محققان توصیفهای مبتنی بر رخداد و منطق را مشخص کردهاند [14-16] ، برخی دیگر به توصیفها مبتنی بر حالت پرداختند. در این میان، شبکه های پتری عمومیترین اتوماتا برای توصیفها هستند [17-20] . ما روی رفتار پایشگر و شبیهسازی و پیادهسازی آن تأکید کردیم. در این رابطه، گروه لگراند برای شبیهسازی از شیهای نخی همروند و زبان جاوا استفاده کردند [21]. دو تشابه بین روش لگراند و متد ما وجود دارد: (1) استفاده از مدلسازی دادهها در توصیف و (2) همروندی و مکانیسم چندنخی در شبیهسازی. اما گروه لگراند از مکانیسم چندنخی در شبیهسازی همروندی استفاده کردند و برای استفاده از مکانیسم ترکیب وظیفه و چندنخی و مکانیسم مبتنی بر وظیفه تلاشی نکردند. شبیهسازی ما نشان داد که مکانیسم مبتنی بر وظیفه نسبت به دو مکانیسم دیگر کارآتر است. علاوه بر این، در روش ما، قیودی که وسیله شبیهسازی استفاده میشوند، با استفاده از ثابتها در بخش توصیف مشخص شدند. سرپرستی براساس ثابتها، روش مؤثری در کنترل سرپرستی با استفاده از شبکههای پتری است. به این دلیل است که آیورداک و آنتساکلیس به اهمیت استفاده از ثابتها در سرپرستی پرداختهاند [22].
همان طور که در بخش مقدمه بیان شد، هدف این مقاله مشخصکردن مسأله مشاهده و پایش رفتار سطح پایین حین اجرای نرمافزار و وارسی درستی آن در برابر توصیف سطح بالای نیازهای کاربران سیستم است. این مسأله تاکنون توجه محققان دیگر را به خود جلب کرده است. گادین و باگناتو رویکردی را با استفاده از نظریه کنترل برای تثبیت نگاهداری نرمافزار ارائهکردهاند [5]. این رویکرد، نرم افزار مورد وارسی را قبل از استفاده تغییر میدهد تا بتواند پایش شود و با سرپرست در زمان اجرا تعامل کند (یعنی گزارش حالتهای خود را به سرپرست گزارش کند). رفتار امن با یک ماشین حالت متناهی توصیف میشود. مشابه با روش ما، آنها نخست یک توصیف رسمی هم از نرمافزار مورد وارسی و هم از نیازهای کاربر ارائه کردند و سپس به جای اثبات ارضای نیازها به وسیله نرمافزار، رفتار نرمافزار را در زمان اجرا کنترل کردند تا نیازها را اعمال کنند. اما این روش، توصیف رسمی خود را با یک روش مبتنی بر حالت (اتوماتا) آغاز کرد که فاقد : (1) استفاده از دادههای دامنه مسأله که بر حسب واژگان کارشناس سیستم بیان میشود و (2) توصیف مبتنی بر رخداد است. ما در این مقاله با گره زدن توصیفها در سطح کاربر و توصیفهای مبتنی بر رخداد به توصیفهای مبتنی بر حالت، راه حلّی برای چالش نگاشت توصیف سطح بالا به توصیف سطح پایین ارائه دادیم.
این مقاله و همچنین گادین و باگناتو [5] و گروه ونگ [23] از برنامههای پایشگری که از نظریه کنترل استفاده میکنند و پایش حین اجرا را از طریق کنترل سرپرستی بهکار میگیرند، استفاده کردند. گروه ونگ مسأله اعتبارسنجی کنترل پویای اجرای نرمافزار همروند را به منظور اجتناب از بنبستها مطرح کردند. آنها، استفاده از شبکههای پتری را در مدلسازی ارائه و قیود را با استفاده از ثابتها بیان کردند. بنابراین، آنها تنها از توصیف مبتنی بر حالت استفاده کردند و به توصیفهای در سطح کاربر و توصیفهای مبتنی بر رخداد توجهی نکردند. گروه کالان از نظریه کنترل سرپرستی و اتوماتای متناهی برای پایش نرمافزارهایی که باید دارای اطمینان بالا باشند، استفاده کردند [24] و گروه برینگر به رابطه بین کنترل سرپرستی و پایش و وارسی حین اجرا پرداختند [25] .
8- نتایج و کارهای آینده
در این مقاله، یک روش سه مرحلهای برای مدلسازی و شبیهسازی پایشگر در کنترل سرپرستی سیستمهای گسسته ارائه شد. این روش با ویژگیهای محیطی که به وسیله کاربر سیستم توصیف میشود، شروع شد و سپس با توصیفهای مبتنی بر رخداد و مبتنی بر حالت برای نیازهای ایمنی ادامه یافت. این توصیفها باید در نهایت، به وسیله سیستم مورد سرپرستی رعایت شود. در نهایت این مقاله با شبیهسازی پایشگر با استفاده از کتابخانه TPL خاتمه یافت. روش ارائه شده یک روش افزایشی بود که توصیف نیازهای ایمنی انتزاعی و سطح بالا را به فعالیتهای نرمافزاری سطح پایین و حین اجرا نگاشتکرد. برای نشان دادن بهکارگیری روش ارائه شده در این مقاله، سه قدم آن را برای سیستم حفاظت قطار بهکارگرفتیم.
به منظور سازماندهی بحث گسترده فوقالذکر،آن را براساس سه محور مقولهبندی میکنیم: (1) بهرهگیری از دو نوع توصیف برای نمایش دو دید از رفتار سیستم، یکی برای نمایش تعاملهای سیستم با محیطش برحسب رخدادها و دیگری برای نمایش رفتار مبتنی بر حالت سیستم. با گره زدن این دو نوع توصیف، ما راه حلّی برای چالش نگاشت توصیفهای سطح بالا به توصیفهای سطح پایین ارائه دادیم. (2) ارائه متد سازندهای برای استفاده از سه سطح سلسله مراتبی از توصیفهای: (الف) سطح کاربر؛ (ب) سطح توصیف و (ج) سطح پیادهسازی. توصیف انتزاعی نیازها و گسترش استفاده از متد پیشنهادی، دو فایده جنبی سطح سلسله مراتبی توصیفهاست. (3) استفاده از الگوی طراحی مبتنی بر حالت برای تسهیل پیادهسازی رفتار پویای سیستم با استفاده از اتوماتای پتری نت. به منظور بررسی کارآیی، ما زمان اجرای شبیهسازیهایی را که از مکانیسمهای چندنخی و مبتنی بر وظیفه استفاده کرد، مقایسه کردیم. بررسیهای عملی نشان داد که مکانیسم مبتنی بر وظیفه محض، کاراترین روش برای پیادهسازی همروندی وظایف در سیستمهای رخداد گسسته است. علاوه براین، انتساب پویای وظایف به هستههای پردازنده که به وسیله کتابخانه TPL فراهم میشود، زمان اجرا را نسبت به انتساب ایستای وظایف به هستهها کاهش داد.
به عنوان یک تحقیق آتی، کار ارائه شده در این مقاله میتواند برای سیستمهای SCADA[xii] گسترش یابد. نمونهای از این سیستمها، سیستمهای رایانهای هستند که فرایندهای صنعتی را پایش و کنترل میکنند [26]. سیستمهای SCADA معمولاً شامل یک پایگاه داده توزیع شده است که در آن دادهها، مقادیری هستند که به وسیله سیستم پایش و کنترل میشوند و همراه با زمان محاسبهشان ذخیره میشوند. در این پایگاه داده، سابقه دادهها یک دنباله از جفتهای زمان - مقدار را تشکیل میدهد. برای به کارگیری روش پیشنهادی این مقاله برای یک سیستم SCADA، باید یک روش خاص برای توصیف ویژگیهای محیط سیستم و همچنین، تقسیم بازهها درنظر گرفته شود، زیرا دادهها زمانی و توزیع شده هستند.
این تحقیق توسط دانشگاه کاشان بر اساس قرارداد طرح پژوهشی شماره 3055 پشتیبانی شده است.