مدیریت زمان و منابع

مدیریت زمان و منابع

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

به زبان ساده تر، دستگاه سرعت لازم را برای اجرای تمامی توابع و نیازهای کاربر در زمان معین ندارد.
برای روشن شدن هرچه بیشتر این موضوع بهتر است ساختار چند نوع سیستم اجرایی را توضیح دهیم.
الف- سیستم هایی که برنامه ها را در یک وقفه زمانی معین اجرا می کنند و مدیریت اجرای برنامه ها به عهده خود سیستم است.
ب- سیستم هایی که برنامه شما را با حداکثر سرعت CPU اجرا می کنند و مدیریت زمان بندی بر عهده کاربر است.
سیستم های نوع اول که برنامه ها را به صورت Multi Task اجرا می کنند، خود دو گونه هستند. اول آن دسته از سیستم هایی که پروسه ها را به صورت Real Time اجرا می کنند و تضمین می کنند برنامه شما در زمان مقرر اجرا خواهد شد مثل RTOS ها و دوم آنهایی که برنامه ها را بر اساس مقدار انرژی مورد نیاز برنامه و  آزاد سیستم، اجرا می کنند مثل Windows.
در این سیستم ها کاربر نمی تواند مدیریت زمان را خود بر عهده گیرد ولی در عین حال درگیر مشکلات زمانبندی نمی شود.
در سیستم های نوع دوم، مدیریت منابع سیستم بر عهده خود کاربر بوده ولی از انعطاف بالاتری برخوردار است. عملا دست او بسته نیست و هرگاه بخواهد منابع انرژی سیستم را بر روی موضوعی که لازم باشد متمرکز می کند؛ ولی از طرفی درگیر برنامه نویسی بیشتری می شود.
مثلا فرض کنید شما انتظار دارید با یک ورودی دیجیتال در هر ثانیه یک کمیت را ۱۰۰۰ بار شمارش نمایید و چندین صفحه نمایش هم دارید که دارای المان های متعددی هستند.
خوب در سیستم هایی که مدیریت زمان به عهده خود سیستم می باشد چه بسا به اندازه کافی فرصت ایجاد نشود تا شمارش کانتر شما به درستی انجام شود.
حالا ببینیم در دستگاه های سری PAC شرکت فرارو، مدیریت زمان چگونه است.
PAC های طراحی شده شرکت از قوانین دسته دوم پیروی می کنند. یعنی برنامه شما در یک Super Loop اجرا می شود و کل منابع CPU سیستم در اختیار کاربر است. پس باید آن را مدیریت نماید.
بدترین کار این است که تمام برنامه ها و توابع مورد نظر را در سایکلیک اول بنویسید. این امر باعث می شود که سیستم انرژی زیادی را برای مدیریت توابع و چک کردن Enable آنها به خرج دهد.

کاربر باید در مدیریت زمانبندی دقت داشته باشد و همیشه پروسه های تندکار و کندکار خود را تفکیک کرده و در تایم مورد نظر اجرا نماید.

یکی از نکات مهم این است که توابعی که در Main اصلی قرار دارند، حتی اگر Enable آنها ۱ نباشد، از سیستم انرژی می گیرند؛ چرا که سیستم به آنها سر زده و فعال بودن و نبودن آنها را چک می کند.
پس باید تایمرهایی با زمانبندی های مختلف ایجاد نمود و پروسه ها را بر اساس سرعت اجرا، به صورت فانکشن درآورد.
ه پیوست مثالی الصاق شده است که با توجه به مطالب فوق اجرای سه پروسه سریع ، متوسط و کند را نشان می دهد.
در این مثال سعی شده با ایجاد سه فانکشن مختلف (سه شمارشگر) که هر کدام قرار است در زمان های معینی شمارش کنند، سیستم مدیریت شود.
این برنامه حتی مقدار Resource سیستم را نمایش می دهد. با فعال کردن هر پروسه، می توانید مشاهده کنید که چه مقدار از انرژی سیستم استفاده می شود.
نمایش شمارشگرها نیز با تایمری جدا هر ثانیه یکبار انجام می شود.
————————————————————————————————————————–
** این برنامه با ویرایش ۲٫۴۵ و برای دستگاه PAC 7070 نوشته شده است.
** لطفا نظرات خود را در مورد این مثال به ایمیل شرکت (info@fararopaya.com) ارسال نمایید.
** در ضمن می توانید سوالات خود را در تالار گفتگو مطرح کنید.