دانلود رایگان ترجمه مقاله طراحی برای سیستم عامل های شبکه (ACM سال 2005)

 

 

این مقاله انگلیسی در نشریه ACM در 10 صفحه در سال 2005 منتشر شده و ترجمه آن 33 صفحه بوده و آماده دانلود رایگان می باشد.

 

دانلود رایگان مقاله انگلیسی (pdf) و ترجمه فارسی (pdf + word)
عنوان فارسی مقاله:

ملاحظات طراحی سیستم عامل های پردازنده شبکه

عنوان انگلیسی مقاله:

Design Considerations for Network Processor Operating Systems

دانلود رایگان مقاله انگلیسی
دانلود رایگان ترجمه با فرمت pdf
دانلود رایگان ترجمه با فرمت ورد

 

مشخصات مقاله انگلیسی و ترجمه فارسی
فرمت مقاله انگلیسی pdf
سال انتشار 2005
تعداد صفحات مقاله انگلیسی 10 صفحه با فرمت pdf
نوع نگارش مقاله پژوهشی (Research article)
نوع ارائه مقاله کنفرانس
رشته های مرتبط با این مقاله مهندسی کامپیوتر
گرایش های مرتبط با این مقاله معماری سیستم های کامپیوتری – مهندسی نرم افزار – برنامه نویسی کامپیوتر
چاپ شده در مجله (ژورنال)/کنفرانس ANCS: معماری برای سیستم های شبکه و ارتباطات
کلمات کلیدی پردازنده شبکه – پارتیشن بندی برنامه – نگاشت نرم افزار
کلمات کلیدی انگلیسی Network processors – application partitioning – application mapping
ارائه شده از دانشگاه گروه مهندسی برق و کامپیوتر دانشگاه ماساچوست آمهرست، ایالات متحده
شناسه دیجیتال – doi https://doi.org/10.1145/1095890.1095901
لینک سایت مرجع https://dl.acm.org/doi/10.1145/1095890.1095901
رفرنس دارای رفرنس در داخل متن و انتهای مقاله
نشریه ACM
تعداد صفحات ترجمه تایپ شده با فرمت ورد با قابلیت ویرایش  33 صفحه با فونت 14 B Nazanin
فرمت ترجمه مقاله pdf و ورد تایپ شده با قابلیت ویرایش
وضعیت ترجمه انجام شده و آماده دانلود رایگان
کیفیت ترجمه

مبتدی (مناسب برای درک مفهوم کلی مطلب) 

کد محصول F2436

 

بخشی از ترجمه

2. کارهای پیشین
نمونه های تجاری پردازنده های شبکه بسیار هستند [3، 6، 7، 10]. یک پردازنده شبکه معمولا به صورت چند پردازنده یک تراشه ای با اجزایI/O باکارایی بالا پیاده سازی میشود که برای پردازش بسته بهینه سازی شده است. به طور خاص، NPها یک معماری مناسب تر نسبت به ایستگاه کاری معمولی یا پردازنده های سرور، برای رسیدگی به این حجم کاری ارائه میکند. نیاز به یک معماری تخصصی به دلیل منحصر به فرد بودن حجم کاریNP است که تحت سلطه بسیاری از تسک های کوچک و عملیات I/O با پهنای باند زیاد است [21]. یک جایگزین دیگر برای پیاده سازی توابع پردازش بسته ، دستگاه های قابل برنامه ریزی منطقی هستند به عنوان مثال، مدارهاس مجتمع دیجیتال قابل برنامه ریزی (FPGA ها)، که بیشتر مناسب برخی از توابع پردازش به سبک جریان داده می باشند [1، 18].
الزامات طراحی برای پشتیبانی زمان اجرا در سیستم های مبتنی بر FPGA بسیار شبیه بهNP های معمولی هستند و در نتیجه انتظار می رود نتایج کار ما نیز به همان اندازه در این دامنه قابل اجرا باشد. به منظور دستیابی به کارایی لازم سرعت خطی روزافزون و توابع پردازش بسته به طور فزاینده پیچیده، هر دو NP و FPGA از روش موازی سازی استفاده میکنند که بطور ذاتی در حجم کاری این سیستم ها وجود دارد. به طور کلی، بسته ها را تا زمانی می توان به صورت موازی پردازش کرد که متعلق به جریان مشابه باشند. توابع پردازشی در یک بسته نیز می توانند بصورت موازی برای کاهش تاخیر بسته اجرا شوند. این امر منجر به سیستمهای NP با پردازش موازی زیاد و موتورهای پردازشی میشود. برای برنامه نویسی چنین سیستمی، چند زبان برنامه نویسی خاص دامنه توسعه یافته است.اینتل به طور مشترک با پروژه Shangri-La در دانشگاه تگزاس در آستین Baker را توسعه داده است [5]. پروژه MESCAL در دانشگاه برکلی NP-Click را توسعه داده [17]، که براساس روتر ماژولار Click می باشد[8].
در پروژه NEPAL [12]، Memik و همکاران یک سیستم زمان اجرا ارائه کردند که اجرای برنامه های کاربردی بر روی یک پردازنده شبکه را کنترل می کند. برنامه های کاربردی با استفاده از API NEPAL به ماژولهایی در سطح تسک تقسیم شده و که صورت پویا به هسته های اجرا نگاشت میشوند.همچنین یک سطح اضافی ترجمه در طی تبدیل کد برنامه به ماژول وجود دارد.
تجزیه و تحلیل تکنیک های زمان اجرا به ترکیبی از الگوریتم های تخصیص ابتکاری محدود شده است. Teja [19] یک محیط برنامه نویسی تجاری برای خانواده پردازنده های شبکه اینتل IXP می باشد. در حالی که آنها یک سیستم عامل پردازش شبکه ارائه میکنند (NPOS)، هم Teja و هم NEPAL برای ساده سازی روند برنامه نویسی یک برنامه واحد و با هدف استفاده مجدد کد در تمام سیستم عاملها طراحی شده اند. ما از توانایی انطباق سریع با برنامه های متعدد بر روی همان سیستم پردازنده شبکه پشتیبانی نمی شود.
بااینکه کارهای زیادی بر روی مکانیزم های مدیریت پویای برنامه های متعدد وجود ندارد، پژوهش هایی بر روی الگوریتمهای تطبیق و زمانبندی پردازنده های شبکه برای صرفه جویی در مصرف انرژی انجام گرفته است. Kokku و همکاران مسائل مربوط به طراحی محیط زمان اجرا، شبیه به آنچه که در اینجا ارائه میشود، را بررسی کرده اند[9]، اما آنها برنامه های پارتیشن بندی شده که روی چند پردازنده شبکه توزیع شده اند را در نظر نگرفته اند. در عوض، فرض شده است که یک برنامه کامل به یک پردازنده تک هسته ای نگاشت میشود.

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

3.1 تفاوت ها با سیستم عامل های ایستگاه کاری
در زیر جزئیات تفاوت بین سیستم عامل های پردازنده شبکه و سیستم عامل های معمولی لیست شده است:
• تفکیک کنترل و مسیر داده. این جدایی به شرایط پردازنده اشاره دارد نه به شرایط شبکه. برای رسیدن به توان عملیاتی بالا درNP ها، مطالعات متعددی نشان داده اند که پیاده سازی تعداد بیشتری از موتورهای پردازشی ساده تر نسبت به موتورهای کمتر ولی قوی تر مقرون به صرفه تر است این پردازنده های ساده قابلیت اجرای وظایف کنترلی پیچیده در بالای بسته پردازش وظایف ندارد. در طراحی NP های امروزی، کنترل بر روی یک پردازنده کنترل جداگانه پیاده سازی میشود. با توجه به تفکیک بین “کلاس های” پردازنده، داشتن یک ساختار کنترلی واضح تر از یک سیستم عامل معمولی ضروریست.
• تعامل محدود. کاربران به طور مستقیم با NP و یا سیستم عامل آن تعامل ندارند. حداکثر، بعضی اوقات برنامه های کاربردی نصب شده و حذف میشوند. این بدان معنا نیست که یک کاربر نمی تواند تنظیمات یک NP را تغییر دهد (به عنوان مثال، قوانین به روز رسانی یک نرم افزار دیوار آتش)، اما متغیر کلیدی در این سیستم الگوهای ترافیکی ست که تعیین می کند چه پردازشی باید اتفاق بیافتد.
• نظم و سادگی نرم افزارها. یکی از جنبه های برجسته پردازش شبکه این است که پردازش مسیر داده در بسته های منفرد انجام می گیرد. این بدان معنی است که تسک های پردازش بسته معمولا به علت قیود زمان واقعی تحمیلی توسط بسته های مداوم پیچیدگی ندارند. در نتیجه، تقاضای پردازش کم است (از چند صد تا چند هزار دستورالعمل) [16]. علاوه بر این، مسیر اجرای یک برنامه در بسیاری از موارد مشابه بوده و تنها برای تعداد کمی از موارد دیگر متفاوت است. بنابراین تجزیه و تحلیل جزئی برنامه های کاربردی پردازش بسته برای یافتن نگاشتهای خوب پردازنده امکان پذیر است.
• پردازش غالب بر مدیریت منبع. سیستم عامل های معمولی نیاز به پیاده سازی تعدادی توابع مختلف دارند: زمانبندی پردازنده، مدیریت حافظه، جداسازی نرم افزار، انتزاع منابع سخت افزاری، و غیره. در سیستم های پردازنده شبکه، این چالش ها تحت سلطه مدیریت منابع پردازشی است. تنوع منابع سخت افزاری محدود بوده و بسیاری از آنها به طور مستقیم توسط نرم افزار کنترل می شوند. همچنین، حافظه معمولا بطور ایستا تخصیص داده میشود تا از رفتار قطعی زمان اجرا اطمینان حاصل شود. این مساله ممکن است در آینده تغییر کند همانگونه که برنامه های کاربردی شبکه پیچیده تر شده و سیستم عاملهای پردازنده شبکه بیشتر شبیه به سیستم عامل های معمولی میشوند. در این کار، ما روی جنبه های پردازشی سیستم عامل تمرکز داریم.
• عدم تفکیک فضای کاربر/ فضای کرنل. تمامی توابع در یک پردازنده شبکه توسط یک موجودیت اداری مشابه کنترل می شود. هیچ جدایی واضحی میان فضای کاربر و فضای کرنل وجود ندارد. در عوض، عملیات بین کنترل و مسیر داده تقسیم شده است. در نتیجه مکانیزم های محافظت قدیمی به طور معمول در سیستم های عامل پردازنده شبکه اجرا نمی شوند.

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

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا