دستگاه های مهندسی مدرن - از مانیتورهای پزشکی قابل حمل گرفته تا سنسورهای صنعتی IoT - سیستم عامل های تقاضا که بیش از مدیریت وظایف انجام می دهند؛ آنها باید به دقت هر میلی وات را به عنوان سخت افزار کوچک و انتظارات عملکرد افزایش دهند، سیستم عامل تبدیل به یک متخصص مرکزی مصرف انرژی می شود. طراحی سیستم عامل که بدون پاسخگویی یا قابلیت اطمینان، یک پیچیده است اما این مقاله اصلی را بررسی می کند، تکنیک های مهندسی انرژی و استراتژی های مهندسی کارآمد.

نقش سیستم عامل در بهره وری انرژی

یک سیستم عامل منابع سخت افزاری را هماهنگ می کند و تصمیمات آن به طور مستقیم بر استفاده از انرژی تأثیر می گذارد، بر خلاف بهینه سازی های سطح برنامه، سیستم عامل دارای دید گسترده سیستم است: آن را کنترل فرکانس های CPU، حالت های بیکار، تخصیص حافظه و فعالیت های محیطی است که یک سیستم آگاه انرژی به خوبی طراحی شده می تواند کل سیستم را تا 30 تا 50٪ در مقایسه با پیاده سازی ساده لوحی، به ویژه در دستگاه های متغیر برای سال های مهندسی انرژی، کاهش دهد.

سیستم عامل همچنین باید مدیریت برق را از توسعه دهندگان برنامه به جای مجبور کردن هر برنامه برای مدیریت حالت های سخت خواب، هسته مکانیسم های سیاست (گوترها، محدودیت قدرت، دستگاه PM زمان) را فراهم می کند که با شرایط زمان واقعی سازگار می شود.این جدایی از سیاست از مکانیسم اجازه می دهد تا تکنسین ها به رفتار انرژی بدون نرم افزار بازنویسی متصل شوند.

تکنیک های اصلی برای طراحی سیستم عامل انرژی-Efficient

ولتاژ پویا و مقیاس فرکانس (DVFS)

DVFS یک پایه مدیریت قدرت در سطح سیستم عامل است. [۵] با تنظیم ولتاژ پردازنده و فرکانس ساعت در پاسخ به تقاضای کار، معاملات سیستم عامل به اوج عملکرد صرفه جویی در انرژی مدرن - مانند لینوکس [FLT: ۰.۵] کاهش قابل توجه در تقاضا [FLT ۱]، conservative [FLT، و] ولتاژ هسته ای، به جای استفاده از فرکانس های کوچک:

با این حال، اثربخشی DVFS بستگی به حجم کاری دارد. انفجارهای کوتاه محاسبه ممکن است از تغییرات فرکانسی ناشی از انتقال سربار بهره مند نشود. OS باید تقاضای آینده را پیش بینی کند یا در میکرو ثانیه ها واکنش نشان دهد.کار اخیر در استفاده از شمارنده های عملکرد سخت افزاری و تاریخ های خاص کار دقت DVFS را بهبود بخشیده است.

پیشرفته خواب و مدیریت Idle

هنگامی که یک پردازنده هیچ وظایف آماده ای ندارد، سیستم عامل باید به حالت کم انرژی بی وقفه انتقال یابد. CPU های مدرن چندین حالت خواب (C-state) را با تاخیرهای مختلف و صرفه جویی در انرژی ارائه می دهند. فرماندار بیکار سیستم عامل عمیق ترین حالت مناسب را بر اساس مدت پیش بینی شده انتخاب می کند.

فراتر از CPU، سیستم عامل باید اجزای سیستم-on-chip (SoC) را مدیریت کند: کنترل کننده های حافظه، اتصالات و محیط های جانبی می توانند هر کدام از آنها را به حالت های خود تازه یا پاور-gate شده وارد کنند، مفهوم runtime Power Management] اجازه می دهد تا کرنل دستگاه های جاری را هنگامی که استفاده نمی شوند، به حالت های بلوتوث متصل کند، بدون اینکه این دستگاه های کنترل کننده اصلی را به عنوان یک کاربر ذخیره کنند و کنترل کننده کلید، به عنوان یک سیستم عامل ضروری است.

وظیفه ی برنامه ریزی برای بهینه سازی انرژی

الگوریتم های برنامه ریزی سنتی، عدالت یا برنامه ریزی را اولویت بندی می کنند.برنامه ریزان انرژی به عنوان یک هدف برنامه ریزی اضافه می کنند.

  • را تهدید به نفس کشیدن: کار کامل به سرعت در اسرع وقت، سپس وارد خواب عمیق، این کار به خوبی برای کارهای تکراری که در آن قدرت خواب بسیار پایین است.
  • ] انتخاب فرکانس انرژی کارآمد: برنامه نویس پایین ترین فرکانس را انتخاب می کند که با محدودیت های زمانی برای کارهای زمان واقعی مطابقت دارد.
  • مهاجرت پر جنب و جوش: در معماری های ناهمگن (به عنوان مثال، ARM بزرگ.LITTLE)، سیستم عامل موضوعات را به هسته های با کارایی بالا برای کار نور و هسته های بزرگ برای بارهای سنگین مهاجرت می کند.

برنامه ریزی انرژی آگاه همچنین باید اتصال حرارتی بین هسته ها و الگوهای دسترسی به حافظه را در نظر بگیرد. [برای مثال، حرکت یک کار به هسته نزدیک تر به داده های آن در سلسله مراتب حافظه را کاهش می دهد. Linux Energy-Aware Scheduling مستندات [FLT 1] یک نگاه عمیق به چگونگی اجرای این سیاست ها در عمل فراهم می کند.

حافظه و مدیریت قدرت I/O

حافظه (DRAM) قدرت قابل توجهی را مصرف می کند، به ویژه در هنگام دسترسی فعال، سیستم عامل می تواند انرژی حافظه را از طریق:

  • تخصیص آگاه بانک: گسترش دسترسی به بانک های حافظه برای جلوگیری از درگیری های بانکی و اجازه می دهد بانک ها در حالت های کم قدرت باقی بمانند.
  • جمع و جور صفحه و خوشه بندی: دسته بندی صفحات فعال به مناطق حافظه کمتر، به طوری که مناطق استفاده نشده را می توان در خود تجدید نظر قرار داد.
  • ] [برنامه ریزی آگاهانه ] [FLT 1 ] در سیستم های چند لایه ، نگه داشتن موضوعات و داده ها در همان گره برای به حداقل رساندن ترافیک حافظه از راه دور.

برای I/O، سیستم عامل تکنیک هایی مانند وقفه های شبکه زغال سنگ، دیسک دسته بندی می نویسد و خاموش کردن کنترل های استفاده نشده از طریق ACPI چالش حفظ پاسخگویی است: به تاخیر انداختن وقفه توسط چند میلی ثانیه می تواند قدرت را ذخیره کند، اما ممکن است یک مهلت خواندن سنسور را نقض کند.

چالش های سیستم های Real-Time و Embedded

طراحی سیستم عامل کارآمد انرژی به ویژه برای دستگاه های مهندسی که باید با مهلت های سخت زمان واقعی مواجه شوند - به عنوان مثال، یک کنترل کننده موتور در یک بازوی رباتیک یا یک سیستم خرید داده در یک ضبط کننده پرواز در اینجا، پس انداز انرژی نمی تواند هزینه از دست رفته مهلت های از دست رفته را به دست آورد.

یک رویکرد استفاده از زمان ضعیف است: پس از اتمام کار در اوایل، از کمبود باقی مانده برای کاهش فرکانس یا ورود به خواب استفاده می شود، این نیاز به تجزیه و تحلیل زمان دقیق و چالش پایین دارد، یکی دیگر از این است که حالت های خواب عمیق دارای دیربازهای بیدار کننده بزرگ هستند، اگر یک کار باید در 100 μ پاسخ دهد، سیستم عامل نمی تواند یک حالت C با 500 تاخیر خروج را وارد کند.

مدیریت Interrupt همچنین بر انرژی تأثیر می گذارد، برخی میکروکنترلرها اجازه می دهند تا سیستم عامل وقفه ها را تا زمان برنامه ریزی بعدی به تعویق اندازد، دوره های طولانی مدت را فعال کند، اما این امر باعث می شود مهندسان جوتر باید بین پس انداز انرژی و دقت زمان بندی برای هر برنامه خاص، معامله کنند.

تکنولوژی های نوظهور و مسیرهای آینده

یادگیری ماشین برای مدیریت قدرت پیش بینی

مدیریت قدرت سیستم عامل سنتی متکی بر شتاب سنج های ثابت (به عنوان مثال، آستانه استفاده) یادگیری ماشین ارائه می دهد پتانسیل انطباق سیاست ها به الگوهای کاری که در طول زمان تغییر می کند، یک شبکه عصبی می تواند تقاضای آینده CPU را بر اساس ورود به کار گذشته و محرک های سنسور پیش بینی کند، اجازه می دهد سیستم عامل به طور فعال تنظیم فرکانس ها یا حالت های بیکار نشان دهد که آزمایش های اولیه 10-20٪ انرژی اضافی بر روی بهترین صرفه جویی ثابت است.

با این حال، اجرای مدل های ML بر روی دستگاه های آموزش دیده انرژی، خود قدرت را مصرف می کند. [۱] سیستم عامل باید یا به یک شتاب دهنده کم انرژی اختصاص داده شده یا از مدل های سبک وزن (به عنوان مثال، درختان تصمیم) که در هسته قرار دارند، اشاره کند. مقاله تحقیق "مدیریت قدرت مبتنی بر آموزش برای پردازنده های چند هسته" [۱] [FLT: ۱] یک ارزیابی کامل از روش های انرژی ذخیره شده را فراهم می کند، به عنوان مدیریت سیستم عامل ML می کند.

ویژگی های بازی LowPower Hardware Synergies

سیستم عامل نمی تواند حداکثر بهره وری انرژی را بدون ادغام سخت افزار به دست آورد. SoCs ظهور می دهد دامنه های قدرت ریشه دار، تنظیم کنندگان ولتاژ تک هسته ای و حافظه غیر ارادی که در طول خواب عمیق وضعیت را حفظ می کند، سیستم عامل باید این قابلیت ها را از طریق چارچوب های مدیریت برق در حالی که مقابله با اشکالات و تغییرات سخت افزاری را در معرض قرار دهد.

فن آوری هایی مانند محاسبات ناهمگن (NTC) اجازه می دهد تا پردازنده ها در ولتاژ بسیار پایین اجرا شوند، اما آنها به دما و تغییرات فرایند حساس هستند. OS باید سنسورهای تراشه را نظارت کند و حاشیه ولتاژ را تنظیم کند - یک وظیفه که نیاز به حلقه های کنترل زمان واقعی دارد، علاوه بر این، معماری ناهمگن (به عنوان مثال ARM بزرگ xLITT، هسته انرژی هسته ای شناخته شده است که می تواند به خوبی از طریق یک سیستم عامل بزرگ استفاده کند:

یکی دیگر از مسیرهای امیدوار کننده استفاده از دستگاه های انرژی زا است که انرژی را از انرژی خورشیدی، ارتعاشات یا منابع RF جمع آوری می کنند، این دستگاه ها دارای منبع برق متناوب هستند؛ سیستم عامل باید محاسبات را در چرخه های انرژی مدیریت کند، و حالت را برای حافظه غیر ارادی قبل از شکست قدرت ذخیره کند.این "کامپیوترهای مجازی" نیاز به مکانیسم های بازرسی در سطح سیستم عامل، یک پارادایم از عملکرد مداوم انرژی دارد.

نتیجه گیری

طراحی سیستم عامل برای دستگاه های مهندسی انرژی یک چالش چند بعدی است که شامل DVFS، مدیریت بیکار، برنامه ریزی، حافظه و بهینه سازی I / O، و محدودیت های زمان واقعی است که طراحی های موفق ادغام این تکنیک ها را به یک سیاست منسجم که سازگار با سیستم های کار، سخت افزار و شرایط زیست محیطی است.