خرید اینترنتی کتاب

جستجو در تک بوک با گوگل!

تابعيت پايگاه تك بوك از قوانين جمهوري اسلامي ايران

فرادرس!



چطور!




تبلیغات!


غلبه بر کم رویی

اینترنت شبکه ۲

442 views

بازدید

امتیاز به این مطلب!
فصل چهارم
مدلسازی یک سوئیچ MPLS

۴-۱- مقدمه
 
 در این فصل ابتدا به بررسی روشهای طراحی سیستمهای تک منظوره  (که سوئیچ های شبکه هم نوعی از آنها می باشند)  و زبانهای  برنامه نویسی  که بدین  منظور بکار می روند  می  پرذازیم ]۱۰[ و سپس به معرفی زبان SMPL می پردازیم. در ادامه به ارائه مدلی برای سوئیچ MPLS  خواهیم پرداخت.
در فصلهای گذشته دیدیم که MPLS قابلیت مجتمع‌سازی هر نوع فنآوری لایه سوم (که عموماً IP می‌باشد) را با هر نوع فنآوری لایه دوم دارا می‌باشد. از آنجا که سیاست کلی مخابرات ایران، استفاده از فن آوری‌های مبتنی بر ارسال فریم  در لایه دوم می‌باشد، در این پروژه فنآوری لایه دوم PPP در نظر گرفته شده است. همچنین بعلت اینکه مدولاتورها و دمدولاتورهای لایه فیزیکی و لایه دو در حال حاضر در دسترس عموم قرار دارد، در مدلسازی کارت خط از پردازش های لایه فیزیکی و لایه دو صرفنظر کرده و مبنای شبیه‌سازی را بر دریافت و ارسال بسته‌های IP (همراه با سرفصل Shim) می‌گذاریم. در صورت استفاده از فنآوری‌های مبنی بر ارسال سلول مثل ATM، این مدل سوئیچ با اعمال تغییراتی می‌تواند برای شبیه‌سازی مورد استفاده قرار بگیرد.
 

۴-۲- روشهای طراحی سیستمهای تک منظوره

بطور کلی به سیستمهایی که دارای عملکرد ثابت می باشند و برای یک کاربرد خاص طراحی و ساخته می شوند، سیستمهای تک منظوره گفته می شود. این سیستمها دارای بخشهای نرم افزاری و سخت افزاری دیجیتال و حتی آنالوگ می باشد. با توجه به پیشرفتهایی که در صنعت ساخت  تراشه ها بوجود آمده است، پیچیدگی سیستمهای تک منظوره بسیار زیاد شده است که نهایتاً به تغییراتی در روشهای طراحی آنها منجر شده است.
روش طراحی قدیمی به این صورت بود که مشخصات سیستم به صورت دستی و بازبانهای طبیعی مانند انگلیسی تهیه می شد و طراح سیستم بنا به تجربه و مهارت خود، این مشخصات را به بخشهای مختلف نرم افزار و سخت افزار تقسیم بندی می نمود و بخشهای مختلف را به متخصصین مربوطه تحویل می داد. ابتدا طراحان سخت افزار مشخصات بخش سخت افزار را به زبانهایی مانند Verilog  و یا VHDL تبدیل می‌نمودند و سپس عملیات سنتز توسط ابزارهای طراحی با کمک کامپیوتر (CAD)  انجام می‌گرفت. با آماده شدن نمونه اولیه سخت افزار، این نسخه تحویل مهندس نرم افزار گردیده و کارنرم افزار نویسی آغاز می شد و بعد از عملیات سنتز و کامپایل کردن  نرم افزار، کد بر روی پروسسور سیستم اجرا می شد و سرانجام عملیات مجتمع کردن سیستم  انجام می شد .
این روش دارای مشکلات اساسی بود که نیازهای جدید را بر آورده نمی ساخت. به عنوان مثال طراحی سخت افزار و نرم افزار در چندین مرحله انجام می گرفت که باعث اتلاف زمان می شد. دیگر اینکه کشف خطاهای ممکن در مشخصات سیستم و یا در بخش سخت افزار ممکن است بسیار دیر صورت بگیرد، مثلاً زمانی که مهندس نرم افزار مشغول طراحی نرم افزار می باشد. بدین ترتیب حذف این خطاها بسیار پرهزینه خواهد بود. همچنین بعلت استفاده متخصصین مختلف از زبانها و ابزارهای کاملاً متفاوت، ارتباط این افراد با یکدیگر قطع می شود. همچنین روش قدیمی طراحی اجازه استفاده از طرح های حاضر و آماده را به سادگی امکان پذیر نمی نماید.
روشهای جدید طراحی مبنی بر این ایده می باشند که طراحی در سطح سیستم   و حصول اطمینان از درستی عملکرد سیستم قبل از ساخت اجزا می تواند جلوی انتشار خطا به مراحل بعدی را بگیرد. همچنین با ارائه یک مدل قابل اجرا و قابل شبیه سازی از سخت افزار به مهندسین نرم افزار، آنها قادر خواهند بود کار پیاده سازی و سنتز نرم افزار را همزمان با سنتز سخت افزار شروع و اجرا نمایند. استفاده از یک زبان برای مدلسازی و شبیه سازی تمامی اجزاء سیستم، ارتباط بین گروههای طراح مختلف را به سادگی میسر می نماید که مزایای زیادی به همراه خواهد داشت.

۴-۳- مراحل طراحی سیستمهای تک منظوره

سیستمهای تک منظوره شامل بخشهای سخت افزاری و نرم افزاری مختلف می باشند. بخش نرم افزار معمولاً شامل یک سیستم عمل کننده همزمان  به اضافه یک سری فرآیندهای کنترلی می باشد. همچنین ممکن است فرایندهایی بطور همزمان برروی پردازنده های کمکی مانند پردازنده های سیگنالهای دیجیتال (DSP)  اجرا شوند. بخش سخت افزار شامل پردازنده، حافظه، پردازنده های کمکی و قسمت برقرار کننده ارتباط بین بقیه اجزا می باشد. در بعضی از کاربردها استفاده از مدارات مبدل آنالوگ به دیجیتال و دیجینال به آنالوگ نیز معمول می باشد. بدین ترتیب سیستم شامل اجزای متفاوت با ماهیت های متفاوت می باشد که طراحی آنها باید به صورت همزمان و با روشهای متناسب با هر بخش صورت پذیرد.
روند طراحی معمولا شامل مراحل متفاوتی می باشد که در هر مرحله مشخصات سیستم یا تهیه می‌گردد (در اولین مرحله ) ویا خروجی مرحله قبل می باشد (System Spesification). این مشخصات به روش خاص تست می شود که آیا درست بوده و انتظارات طراحی را برآورده می سازد (Validation ) و سپس یا به صورت اتوماتیک و یا به صورت ترکیب اتوماتیک – دستی به مشخصات مرحله بعد تبدیل می شود (Synthesis). که در این عمل جزییات پیاده سازی بیشتری به مشخصات مذکور اضافه می شود .

۴-۳-۱- مشخصه سیستم
اولین مرحله در طراحی عبارت است از تهیه مشخصات دقیق سیستم. معمولا این مشخصات در بالاترین سطح، یعنی سطح عملکرد  تهیه می گردد و شامل اطلاعات دقیق نحوه عملکرد سیستم می‌باشد. در این مشخصات هیچ اطلاعاتی راجع به ساختار و نحوه پیاده سازی و حتی زمانبندی وجود ندارد.
مشخصه سیستم را هم می توان به صورت یک زبان طبیعی مانند انگلیسی تهیه نمود (که این روش در سالهای قبل منسوخ گشته است) و هم می توان از زبانهای سطح بالا مانند C/C++ استفاده نمود. استفاده از زبانهای سطح بالا مزایای زیادی را در بردارد. اولا زبانهای طبیعی دقیق نیستند، به این معنی که توسط افراد مختلف به طرق متفاوت تعبیر می شوند. ثانیا آنها را نمی توان مبنای روشها و ابزارهای طراحی اتوماتیک قرار داد.

۴-۳-۲- تایید صحت
هنگامی که مشخصات یک سییستم تهیه می شود باید درستی آن نیز تأیید شود. برای این کار از شبیه سازی  استفاده می شود. در این روش مدل سیستم به اضافه یک سری ورودیها به یک شبیه‌ساز داده شده و شبیه ساز خروجیها و حالات داخلی سیستم را استخراج نموده و نمایش می‌دهد. بدین ترتیب می توان صحت عملکرد سیستم را تعین نمود. واضح است که شبیه سازی نمی تواند درستی سیستم را اثبات نماید و ما را صد درصد مطمئن نماید ولی به هر حال شبیه سازی فراگیرترین و بهترین روش برای تایید صحت سیستم می باشد.
در گذشته قسمتهای نرم افزاری سیستمها جداگانه و بازبانهای سطح بالا شبیه سازی می شدند. قسمت های سخت افزاری هم جداگانه شبیه سازی می شدند اما امروزه،‌ کل سیستم شامل سخت افزار و نرم افزار با هم به طور همزمان شبیه سازی می شوند که به آن شبیه سازی همزمان می گویند.
مزیت شبیه سازی همزمان این است که بسیاری از خطاها و نقائص در تک تک اجزا بروز نمی نمایند بلکه هنگام مجتمع کردن بخشهای مختلف بروز می نماید و برای پیدا نمودن آنها شبیه سازی همزمان لازم است.

۴-۳-۳- سنتز
سنتز به معنی تبدیل یک مشخصه سیستم به دیگری با سطح انتزاع پایین تر و جزییات ساختاری بیشتر می باشد. عمل سنتز بسته به سطح انتزاع می تواند بصورت کاملا اتوماتیک و یا ترکیب اتومامتیک – دستی انجام گیرد. معمولا در سطح انتزاع پایین عملیات سنتز کاملا اتوماتیک انجام می شود.
سنتز معمولا شامل سه مرحله اصلی است:
۱-    نگاشت مشخصه سیستم به معماری: در این مرحله معماری کلی سیستم پیاده سازی شده، تعیین می گردد.
۲-    تقسیم بندی: در این مرحله بخشهای مختلف مشخصه سیستم اولیه به بخشهای نرم افزار و سخت افزار تقسیم می شوند .
۳-    سنتز سخت افزار و نرم افزار: هر کدام از بخشهای نرم افزار و سخت افزار توسط ابزارهای خاص تا مرحله پیاده سازی نهایی رسانیده می شوند .

۴-۴ – زبانهای شبیه سازی
در این قسمت به بررسی زبانهای موجود شبیه سازی می پردازیم و در نهایت برای شبیه سازی سوئیچ MPLS  یک زبان شبیه سازی را انتخاب می کنیم .
در حال حاضر رقابت سختی بین طرفداران زبانهای شبیه سازی برای حصول برتری و تبدیل شدن به استاندارد جامعه طراحی در جریان است. به طور کلی این رقابت دو جبهه دارد. در یکی از جبهات طرفداران زبانهای سطح بالا (به فرماندهی C/C++) و در جبهه دیگر طرفداران زبانهای سخت افزاری مانند Verilog و VHDL قرار دارند.
بطورکلی زبانهای شبیه سازی مطرح را می توان به سه دسته تقسیم نمود:
۱-    زبانهای آکادمیک مانند Ptolemy و Rosetta
۲-    زبانهای براساس Verilog مانند Superlog
۳-    زبانهای بر پایه C/C++ مانند SystemC، A/RT, SMPL
زبان Ptolemy  که توسط دانشگاه برکلی ارائه شده است با تاکید زیاد برناهمگونی سیستمهای تک منظوره طراحی شده و با استفاده از آن بخشهای متفاوت سیستم با ماهیت متفاوت را می توان مدل نموده و نهایتا همگی آنها را با هم شبیه سازی کرد ولی نقطه ضعف آن نبودن ابزارهای لازم برای سنتز آن می باشد. همچنین کند بودن از دیگر نقاط ضعف این زبان می باشد.
زبان دیگر از گروه اول زبان Rosetta می باشد. این زبان با توجه به این ایده توسعه یافته است که سیستم شامل اجزایی غیر الکترونیکی و مکانیکی نیز می باشد و طراحی باید از این سطح آغاز شود نه از سطح سیستم الکترونیکی که فقط شامل سخت افزار و نرم افزار می باشد.
زبان Superlog یکی از زبانهای گروه دوم می باشد که محصول شرکت Co-Design می باشد. این زبان بااضافه نمودن ساختارهای سطح بالای C  به زبان Verilog شکل گرفته است. قدرت این زبان در این نکته است که اکثر طراحان سخت افزار با Verilog آشنا بوده و تغییر سطح طراحی به سطح بالاتر براساس Superlog برایشان زیاد ناخوشایند نخواهد بود.
گروه سوم که زبانهای برمبنای C/C++ می باشند و هم اکنون بیش از هشتاد درصد توجه به این زبانها معطوف شده، به عنوان جهت دهنده آینده صنعت طراحی و شبیه سازی پیش بینی شده اند. این زبانها به دلیل محبوبیت فوق العاده C/C++ در بین طراحان سیستم و مهندسین نرم افزار و همچنین آشنایی مهندسین سخت افزار با آنها ازیک طرف و از طرف دیگر به علت توانایی های چشمگیر C/C++ اهمیت فوق العاده ای یافته اند.
یکی از این زبانها SystemC می باشد که با اضافه نمودن قابلیت مدلسازی زمان و مدلهای سخت افزاری به زبان C++ شکل گرفته است. این زبان به صورت اضافه کردن یک کتابخانه به C++ قابلیت مدلسازی آنرا افزایش می دهد و هم اکنون نسخه های جدید تر و تکمیلی آن در حال ورود به بازار می باشد.
زبان دیگر از گروه زبانهای برپایه C/C++ ، SMPL می باشد که جزو نخستین زبانها از این گروه می باشد. این زبان بصورت اضافه کردن یک کتابخانه به زبان C یا C++ فعال می شود و با توجه به سادگی دستورات آن، قابلیت مدلسازی همزمان نرم افزار و سخت افزار به راحتی فراهم می آید.
در این پروژه با توجه به روند تبدیل زبانهای بر پایه C/C++ به عنوان استاندارد صفت طراحی و همچنین سادگی شبیه سازی سیستمهای صف و سرویس دهنده توسط زبان SMPL، از این زبان شبیه سازی استفاده شده است.
در بخش بعدی به بررسی دقیق تر زبان SMPL خواهیم پرداخت.

۴-۵- زبان شبیه سازی SMPL

این زبان که توسط فردی به نام Mac Dougall ارائه شده است  ]11[،از جمله زبانهایی است که به آنها برپایه رخداد  می گویند. در زبان SMPL سه نوع نهاد مختلف وجود دارد:
۱-    وسایل 
۲-    بلیط ها 
۳-    رخدادها
یک سیستم را در حالت ایستا می توان مجموعه ای از وسایل در نظر گرفت. یک وسیله بطور نوعی نمایانگر مدلی از یک عنصر سیستم می باشد که کار خاصی را انجام می دهد، مانند واحد پردازش مرکزی (CPU) در یک سیستم کامپیوتر و یا یک گذرگاه در یک شبکه کامپیوتری. در زبان SMPL توابعی وجود دارد که به کمک آنها می توان وسایل را تعریف، ذخیره  و رها   کرد. ارتباط بین وسایل هم توسط بلیطهایی که بین وسایل رد و بدل می شوند، مشخص می شود .
بلیطها در واقع نمایانگر نهادهای فعال سیستم می باشند. عملکرد پویای سیستم بوسیله حرکت بلیطها در یک سری از وسایل مدل می شود. یک بلیط ممکن است یک کار   در یک مدل کامپییوتری، یک بسته در یک مدل شبکه مخابراتی و یا  یک دسترسی به حافظه   در یک مدل سیستم حافظه باشد. SMPL از دو نوع عملیات اصلی برای کنترل بلیطها  در یک سیستم شبیه سازی شده استفاده می کند؛ یک بلیط می تواند یک وسیله را ذخیره کند و یا می تواند فعالیت هایی را با مدت های مختلف زمانبندی   کند. اگر یک بلیط بخواهد یک وسیله در حال سرویس را ذخیره کند، وارد یک صف می شود و تا هنگامی که آن وسیله برای آن بلیط دسترس پذیر  شود، منتظر می ماند .
بلیطها می توانند دارای اولویتهای مختلفی باشند. در این صورت می توان با دستورات خاصی به بلیطهای با اولیویت بیشتر سریعتر از بلیطهای با اولویت کمتر سرویس داد.
یک رخداد به هر تغییری در وضعیت هر یک از نهادهای سیستم اطلاق می شو . به عنوان مثال اگر یک کار محاسبه در CPU تمام شود و CPU رها شود، دو رخداد اتفاق افتاده است:
اول اینکه یک کار تمام شده است و دیگر اینکه وضعیت CPU عوض شده است. اتمام کار ممکن است با آغاز یک کار دیگر همراه باشد، ‌مثلا رها شدن CPU ممکن است با اجرای یک کار دیگر که قبلا CPU را ذخیره کرده است همراه شود. در زبانهای شبیه سازی برپایه رخداد مانند SMPL کلیه فعالیتهایی که باید در یک لحظه از زمان اتفاق بیافتد را یک رخداد تلقی می کنیم. این مساله در مدلهای کوچک مشکلی را به همراه ندارد ولی در مدلهای بزرگ که باید در یک لحظه از زمان اتفاقات زیادی رخ دهد، سازمان دهی آنها کار مشکلی می باشد .
SMPL توابعی برای زمانبندی رخدادها و انتخاب آنها براساس زمان اجرایشان دارا باشد. در یک سیستم شبیه سازی یک رخداد توسط یک شماره منسوب به آن، زمان شبیه سازی که رخداد باید در آن اتفاق بیافتد و هویت بلیط مربوط به آن مشخص شود.
توابع SMPL که برای شبیه سازی سیستمها بکار می رود را می توان به سه دسته اصلی تقسیم نمود:
۱-    آماده سازی اولیه مدل
۲-    تعریف و کنترل وسیله
۳-    زمانبندی و ایجاد رخدادها
حال به معرفی توابع مهم هر قسمت می پردازیم.

۴-۵-۱- آماده سازی اولیه مدل
۱- smpl(m,s)                    int m;char *s;
تابع Smpl( ) برای آماده سازی اولیه سیستم برای اجرای شبیه سازی بکار می رود.
m مشخص کننده نوع ارتباط بین کاربر و برنامه می باشد وs نیز یک اشاره گر به نام مدل می باشد.
هنگامی که Smbpl( ) اجرا می شود کلیه مقادیر اندازه گیری در زمان شبیه سازی برابر صفر قرارداده می شود.
۲- reset( )
هنگامی که این تابع اجرا می شود کلیه مقادیر اندازه گیری شده صفر می شوند و زمانی  که این تابع صدا شده است به عنوان زمان آغاز اندازه گیری ثبت می شود.
۴-۵-۲ تعریف و کنترل وسیله
۱- f=facility                              char * s; int n;
این تابع یک وسیله را تولید و نام گذاری می کند و مقدار f را  بر می گرداند که توصیف گر وسیله می باشد و برای مشخص کردن وسیله عملیتهای بعدی بکار می رود.
s یک اشاره گر به نام وسیله می باشد که برای مشخص کردن وسیله در گزارش برنامه، دنبال کردن برنامه و پیامهای خطا بکار می رود. n نیز تعداد سرویس دهنده های وسیله رامشخص می کند .
یک وسیله می تواند دارای یک صف و  n سرویس دهنده موازی باشد. هنگامی که تقاضا برای ذخیره سازی یک وسیله می رسد، سرویس دهنده های یک تا n به ترتیب  چک می‌شوند و اگر یک سرویس دهنده آزاد پیدا شود برای تقاضای مورد نظر ذخیره می شود. اگر همه سرویس دهنده های وسیله قبلا ذخیره شده اند، تقاضا وارد صف وسیله مورد نظر می گردد. هنگامی که یکی از بلیطهایی که وسیله را ذخیره کرده است آنرا رها کند، تقاضای داخل صف جای آنرا می گیرد. بطور کلی یک وسیله مشغول است اگر همه سرویس دهنده های آن ذخیره شده باشند و مشغول نیست اگر حداقل یکی از سرویس دهنده های آن آزاد باشد.
۲-    r = request (f,tkn, pri)                 int f , tkn , pri   
این تابع تقاضا می دهد که یکی از سرویس دهنده های وسیله f برای بلیطی که با tkn مشخص شده است، ذخیره شود. f همان توصیف گر وسیله است که هنگام تولید وسیله توسط تابع facility مشخص شده بود. اولویت بلیط متقاضی توسط pri مشخص می‌شود. هر چه که مقدار pri بیشتر باشد، ‌اولویت آن نیز بیشتر است. اگر وسیله مشغول نباشد، یک سرویس دهنده برای بلیط متقاضی ذخیره می شود و مقدار صفر برگردانده می شود. اگر وسیله مشغول باشد، تقاضا وارد صف می شود و مقدار یک برگدانده می شود. در برنامه شبیه سازی از مقدار برگردانده شده برای تصمیم گیری در مورد رخدادهای بعدی استفاده می شود. بدین صورت که اگر وسیله ذخیره شود، باید اتمام سرویس بلیط بروی آن وسیله زمانبندی شود و اگر ذخیره نشود ممکن است برنامه رخداد دیگری را انتخاب و اجرا کند.
هر وسیله دارای یک صف می باشد. اگر هنگام یک تقاضا وسیله مشغول باشد، یک ورودی صف برای آن تقاضا درست می شود. این ورودی شامل بلیط، اولویت آن و شماره رخداد حال می باشد و صف هم براساس اولویت سرویس داده می شود، بدین صورت که ورودیهای با الویت یکسان بصورت”ورودی اول ، خروجی اول “ (FIFO)  سرویس داده می شوند. هنگامی که تابع
release ( ) یک سرویس دهنده را رها می کند، ورودی اول صف از صف خارج می شود و رخداد آن ورودی به همراه بلیط تقاضای  اصلی  برای زمان حال شبیه سازی، زمانبندی  می شوند. هنگامی
که برنامه تابع cause ( ) را صدا می زند تا رخداد بعدی را انتخاب کند، همان رخدادی که ابتدا تابع request ( ) را اجرا کرده بود، دوباره اجرا می‌شود و تقاضای جدید وارد سرویس دهنده می شود.
۳- r = preempt (f,tkn,pri)                     int f, tkn , pri
تابعpreempt ( )  تقاضا می کند که یکی از سرویس دهنده های وسیله f برای بلیط tkn  ذخیره شود. pri  نیز اولویت بلیط می باشد. اگر وسیله مشغول نباشد، یک سرویس دهنده برای بلیط متقاضی ذخیره می شود و مقدار صف برگردانده می شود.
اگر وسیله مشغول باشد، سرویس دهنده ای که بلیط سرویس گیرنده آن دارای کمترین اولویت می باشد، مشخص می گردد. اگر این اولویت بزرگتر و یا مساوی اولویت بلیط متقاضی باشد، تقاضا وارد صف می شود و مقدار ”یک “ برگردانده می شود. بنابراین هنگامی که وسیله مشغول نباشد یا همه سرویس دهنده های آن با بلیط های با الویت بیشتر از بلیط متقاضی دخیره شده اند Preempt( ) کاملا مثل request( ) عمل می کند.
اگر وسیله مشغول باشد و بلیطه سرویس گیرنده با کمترین اولویت دارای اولیت کمتری از بلیط متقاضی باشد، سرویس بلیط اول قطع می شود و وارد صف می شود و بلیط متقاضی سرویس می گیرد. این عمل بدین صورت انجام می شود که زمان سرویس باقی مانده برای بلیط اول محاسبه شده و هنگامی که این بلیط دوباره وارد یکی از سرویس دهنده ها شد، به اندازه مدت زمان باقی مانده در آن باقی می ماند.
۴- release (f, tkn)                            int f, tkn
این تابع سرویس دهنده وسیله f  که توسط بلیط tkn  ذخیره شده است را رها می کند. در هنگام رها کردن یک وسیله، SMPL سرویس دهنده ذخیره شده برای آن بلیط را پیدا می کند و آنرا رها می کند. سپس، صف آن وسیله چک می شود و اگر خالی نباشد، ورودی واقع در اول صف خارج شده و رخداد مربوط به آن برای ایجاد در زمان حال زمانبندی می شود.

۴-۵-۳ – زمانبندی و ایجاد رخدادها
۱- schedule (ev,te,tkn)                    int ev,tkn ;double te;
این تابع برای زمانبدی یک رخداد بکار می رود. ev شماره رخداد و te مدت زمان ایجاد رخداد از زمان حال می باشد. tkn  نیز بلیط مربوط به رخداد می باشد .
schedule ( ) مقدار te را به زمان حال اضافه می کند تا زمان اتفاق رخداد را بدست آورد. سپس در لیست رخدادها یک ورودی شامل شماره رخداد، زمان اتفاق رخداد و بلیط درست می کند.
لیست رخدادها بدین صورت می باشد که رخدادهای بازمان اتفاق کمتر در ابتدای لیست قرار دارند و اگر چند رخداد دارای زمان اتفاق برابر باشند، رخدادی که زودتر وارد لیست شده است در ابتداقرار می گیرد.
۲- cause (ev, tkn)                    int * ev, * tkn;
cause( ) ورودی واقع در ابتدای لیست رخدادها را بر می دارد، ‌زمان شبیه سازی را تا زمان وقوع  آن رخداد جلو می برد و شماره رخداد ev و بلیط tkn را بر می گرداند .
۳- tkn = cancel(ev)                int * ev;
cancel( ) در لیست رخدادها به جستجوی رخداد ev  می پردازد، اگر آنرا پیدا نکند مقدار     ”1-“ برمی گرداند. اگر آنرا پیدا کند، ورودی مربوطه را از لیست رخدادها بر می دارد و شماره بلیط مربوط به آن ورودی را بر می گرداند. اگر چندین نمونه ازرخداد ev در لیست رخدادها موجود باشد، فقط اولین ورودی برداشته می شود.
توابعی که معرفی شدند اساسی ترین ابزارهای لازم برای شبیه سازی توسط زبان SMPL می باشند. لیست کامل تابع و توضیحات مربوطه به آنها در ]۱۱[ موجود می باشد.

۴-۶- مدلهای ترافیکی

برای انجام هر گونه شبیه سازی بر روی یک سوئیج باید به آن ترافیک داده اعمال نمود. تا کنون مدلهای ترافیکی گوناگونی معرفی شده اند که در شبیه سازی های این پروژه از سه نوع آن استفاده خواهیم نمود.

۴-۶-۱- ترافیک برنولی  یکنواخت
ترافیک برنولی یکنواخت (i.i.d)  ترافیکی است که در آن داده ها بصورت مستقل از یکدیگر تولید می شوند. در این مدل طول هر بسته برابر با یک سلول در نظر گرفته شده است و احتمال تولید سلول در هربازه زمانی برابر با درصد بار می باشد. مثلا در زیر بار۸۰% در هر بازه زمانی با احتمال ۸/۰ یک سلول تولید می شود. مقصد سلولها نیز بطور کاملاً تصادفی از بین یکی از پورتهای خروجی انتخاب می شود.
این مدل ساده ترین مدل ترافیکی می باشد که تقریبا در همه مراجع به عنوان یکی از انواع ترافیک ورودی مورد استفاده قرار می گیرد.

۴-۶-۲- ترافیک زنجیره ای
ترافیکی که در شبکه موجود می باشد، معمولاً بصورت زنجیره ای است. این زنجیره ممکن است مربوط به انتقال یک فایل بزرگ و یا یک جریان ویدیوئی باشد. برای تولید ترافیک     زنجیره ای از زنجیره مارکوف  دو حالته بصورت روشن  یا خاموش  استفاده شده است. همانطور که در شکل ۴-۱ نشان داده شده است این زنجیره شامل دو حالت روشن و خاموش می باشد که احتمال رفتن از حالت روشن به خاموش برابر P و ا حتمال رفتن از حالت خاموش به حالت روشن برابر q می باشد.
همانطور که در ]۱۲[ نشان داده شده است برای تولید ترافیک زنجیره ای با طول B و تحت بار   پارامترهای q و p را می توان از روابط زیر بدست آورد:

 شکل ۴-۱- زنجیره مارکوف دو حالته برای تولید ترافیک

 
 
از این مدل ترافیک زنجیره ای در مراحل مختلف شبیه سازی سوئیچ به عنوان ترافیک اعمالی استفاده خواهیم کرد.

۴-۶-۳- ترافیک آماری
برای مدل سازی هرچه واقعی تر ترافیک  شبکه، انداز ه گیریهایی بصورت   آماری   برروی خط های اینترنت در جاهای مختلف دنیا انجام گرفته است.
با توجه به اطلاعات موجود در یک نمونه از این اندازه گیریها ]۱۳[ شامل طول بسته ها و تعداد بسته های مربوط به جریان های اینترنتی نمودار شکل ۴-۲ رسم شده است.
بعد از مدل کردن قسمتهای مختلف سوئیچ، از این ترافیک برای بررسی عملکرد سوئیچ استفاده خواهیم نمود.
 
 
                       شکل ۴-۲- نمودار افزایش طول بسته های شبکه

۴-۷- مدلسازی کارت خط در ورودی

همانطور که ذکر شد در هنگام مدل کردن کارت خط فرض می کنیم که داده ها را بصورت بسته‌های IP (همراه با سرفصل Shim) دریافت می کنیم. اگر سوئیچ در لبه شبکه باشد (LER) باید علاوه بر عملکرد MPLS، توانایی انجام پردازش های سرفصل لایه IP را نیز دارا باشد، بعبارت دیگر سوئیچ های MPLS لبه شبکه باید توانایی قسمت های هدایت به جلوی یک مسیریاب IP را داشته باشند. بنابراین کلیه نتایجی که در شبیه سازی یک سوئیچ (LSR) MPLS بدست می آید برای سوئیچ‌های لبه شبکه (LER) نیز معتبر است. ولی باید این نکته را در نظر داشت که برای سوئیچ‌های لبه شبکه (LER) عملیات پردازش سرفصل لایه IP که در مسیریاب های IP انجام می‌شود باعث افزایش تاخیر بسته های اطلاعاتی خواهد شد.
بنا به آنچه در فصلهای گذشته درباره MPLS و وظایف یک سوئیچ بیان شد، مدل زیر را برای کارت خط در ورودی یک سوئیچ MPLS ارائه میدهیم:
۱-    درهر پورت ورودی، بسته های IP همراه با سرفصل Shim که حاوی اطلاعات مربوط به برچسب ورودی، کلاس سرویس پشته برچسب، و زمان زندگی (TTL) می باشد، دریافت می‌شود.
۲-    حوزه TTL سرفصل Shim مورد بررسی قرار می گیرد (هشت بیت )، اگر مقدار آن برابر صفر بود، بسته فاقد اعتبار می باشد و از آن صرفنظر می شود. در غیر اینصورت از مقدار آن یک واحد کاسته می شود.
۳-    مقدار برچسب ورودی (بیست بیت ) استخراج شده و بوسیله جدولی که توسط قسمت کنترل برای هر پورت تهیه می شود، مقدار برچسب خروجی و شماره پورت خروجی تعیین می‌گردد. از آنجا که در شبیه سازی یک سوئیچ اطلاعات مربوط به شبکه وجود ندارد، این مقادیر با توجه به نوع ترافیک ورودی تعیین می شوند، مثلا در ترافیک زنجیره ای به همه بسته های مربوط به یک زنجیره برچسب خروجی یکسان داده می شود و همگی به یک پورت خروجی می روند.
۴-    بسته ها به سلولهای ۶۴ بایتی شکسته می شوند و ۱۰ بایت به عنوان سرفصل به آنها اضافه می‌شود که در قسمت خروجی کارت خط برداشته خواهد شد. این سرفصل بنا به استاندارد مورد استفاده بین کارت خط و فابریک سوئیچ می تواند متفاوت باشد ولی اطلاعات مربوط به پورت ورودی، پورت خروجی، کلاس سرویس و شماره سلولها را دارا می باشد.
۵-    سلولها با توجه به مقدار کلاس سرویسشان در VOQ مربوطه قرار می گیرند. این کار ممکن است بطور مستقیم و یا با کمک الگوریتمهایی با تخصیص عرض باندهای مختلف به کلاس‌های مختلف صورت بگیرد. در قسمت های بعدی هر دو این حالات را بررسی خواهیم کرد.

۴-۸- مدلسازی فابریک سوئیچ

فابریک سوئیچ عامل اصلی محدودیت در گذردهی و افزایش تاخیر بسته ها در یک سوئیچ می‌باشد‌. در فصل گذشته بعد از بررسی انواع فابریک سوئیچ ها، به عنوان بهترین انتخاب، تصمیم به استفاده از فابریک سوئیچ متقاطع با صف بندی در ورودی همراه با VOQ گرفته شد. همچنین الگوریتم iSLIP به عنوان یک الگوریتم زمانبندی ساده، سریع و با گذردهی بالا که بطور وسیعی مورد استفاده قرار می گیرد، معرفی شد که در اینجا به توضیح آن می پردازیم.

۴-۸-۱- الگوریتم iSLIP
iSLIP یک الگوریتم تکرار شونده  می‌باشد که در طی هر بازه زمانی چندین تکرار صورت می‌گیرد تا یک شکل از تطبیق ورودی‌ها و خروجی‌ها پیدا شود. الگوریتم iSLIP با استفاده از اولویت چرخشی هر یک از ورودی‌ها و خروجی‌های فعال را به نوبت برای ارسال اطلاعات انتخاب می‌کند. مهمترین خاصیت iSLIP سادگی آن می‌باشد که باعث می‌شود به راحتی قابل پیاده‌سازی در سخت‌افزار باشد و در سرعتهای بالا کار کند.


2+

نويسنده / مترجم : -
زبان کتاب : -
حجم کتاب : -
نوع فايل : -
تعداد صفحه : -

 ادامه مطلب + دانلود...
امتیاز به این مطلب!



هو الکاتب


پایگاه اینترنتی دانلود رايگان كتاب تك بوك در ستاد ساماندهي سايتهاي ايراني به ثبت رسيده است و  بر طبق قوانین جمهوری اسلامی ایران فعالیت میکند و به هیچ ارگان یا سازمانی وابسته نیست و هر گونه فعالیت غیر اخلاقی و سیاسی در آن ممنوع میباشد.
این پایگاه اینترنتی هیچ مسئولیتی در قبال محتویات کتاب ها و مطالب موجود در سایت نمی پذیرد و محتویات آنها مستقیما به نویسنده آنها مربوط میشود.
در صورت مشاهده کتابی خارج از قوانین در اینجا اعلام کنید تا حذف شود(حتما نام کامل کتاب و دلیل حذف قید شود) ،  درخواستهای سلیقه ای رسیدگی نخواهد شد.
در صورتیکه شما نویسنده یا ناشر یکی از کتاب هایی هستید که به اشتباه در این پایگاه اینترنتی قرار داده شده از اینجا تقاضای حذف کتاب کنید تا بسرعت حذف شود.
كتابخانه رايگان تك كتاب
دانلود كتاب هنر نيست ، خواندن كتاب هنر است.

دانلود کتاب , دانلود کتاب اندروید , کتاب , pdf , دانلود , کتاب آموزش , دانلود رایگان کتاب


تمامی حقوق و مطالب سایت برای تک بوک محفوظ است و هرگونه کپی برداری بدون ذکر منبع ممنوع می باشد.


فید نقشه سایت

تمامی حقوق برای سایت تک بوک محفوظ میباشد