שְׁאֵלָה:
מתי אנו זקוקים למערכת הפעלה בתכנון מערכת משובצת?
quantum231
2014-01-01 02:11:52 UTC
view on stackexchange narkive permalink

כתבתי שפע קוד מתכת חשוף למעבדי PIC ו- x86. מישהו יכול להגיד לי כיצד ומתי עלי להזדקק למערכת הפעלה? לעומת זאת, באיזה יישום או סיטואציה ניתן להתמודד או גם ללא מערכת הפעלה?

כי לא כל מה שאתה צריך לדעת נלמד בבית הספר. אם אתה חושב שאתה צריך ללמוד RTOS, בחר פלטפורמה ולמד אותה.
השאלה לגבי השימוש במערכת ההפעלה במובנים תקפה. עם זאת, EE.SE לא יכולה לעזור לך עם "למה הם לא לימדו אותי את זה בבית הספר?" חֵלֶק. התייתרתי לערוך את זה.
כפילות אפשרית של [האם אני צריך מערכת הפעלה במכשיר שלי?] (http://electronics.stackexchange.com/questions/80933/do-i-need-an-os-in-my-device)
ובכן, הסיבות היחידות ששאלתי מדוע זה לא נלמד באוניברסיטה שלי היא משום שמעולם לא נתקלתי באף סטודנט EE שעשה זאת אולי באוניברסיטה. לפיכך נראה לי שזה לא נעשה בשום אוניברסיטה.
@quantum231 זה נעשה באוניברסיטה שלי, NTNU - נורווגיה.
חָמֵשׁ תשובות:
kkrambo
2014-01-02 21:18:21 UTC
view on stackexchange narkive permalink

כלל האצבע שלי הוא שעליך לשקול מערכת הפעלה אם המוצר דורש אחת או יותר מהפעולות הבאות: מחסנית TCP / IP (או מחסנית רשת מורכבת אחרת), ממשק משתמש מורכב (אולי אחד עם אובייקטים של ממשק משתמש כגון חלונות ואירועים), או מערכת קבצים.

אם ביצעת קידוד מתכת חשוף, כנראה שאתה מכיר את ארכיטקטורת התוכנית super-loop. אם דרישות הקושחה של המוצר פשוטות מספיק כדי להיות מיושמות עם לולאת-על הניתנת לתחזוקה (ובתקווה שאפשר להרחיב אותה מעט), ככל הנראה אינך זקוק למערכת הפעלה.

ככל שדרישות התוכנה גדלות, לולאת העל הופכת מורכבת יותר. כאשר דרישות התוכנה כה רבות עד כי לולאת העל הופכת מורכבת מדי או שאינה יכולה למלא את הדרישות בזמן אמת של המערכת, הגיע הזמן לשקול ארכיטקטורה אחרת.

ארכיטקטורת RTOS מאפשרת לך לחלק את דרישות תוכנה למשימות. אם נעשה כראוי, זה מפשט את היישום של כל משימה. ועם עדיפות משימות RTOS יכול להקל על מילוי הדרישות בזמן אמת. RTOS אינו תרופת פלא, עם זאת. RTOS מגדיל את מורכבות המערכת הכוללת ופותח בפניכם סוגים חדשים של באגים (כמו פסי נעילה). כחלופה ל- RTOS, תוכלו לשקול ולארכיטקטורת מכונות מדינה מבוססת אירועים (כגון QP).

אם למוצר שלכם יש רשת, ממשק משתמש מורכב וקובץ במערכת אז אתה יכול להיות בנקודה שבה אתה צריך לשקול מערכות הפעלה מלאות כגון VxWorks, Windows או Linux. מערכות הפעלה מובחרות כוללות מנהלי התקנים לפרטים ברמה נמוכה ומאפשרים לך להתמקד ביישום שלך.

JustJeff
2014-01-01 02:38:38 UTC
view on stackexchange narkive permalink

זה באמת תלוי בהגדרתך 'מערכת משובצת'. יש כאלה שטוענים שאם זה לא תכנות חשוף למתכת, הוא לא מוטמע (מה שמונע את שאלתך), אבל אני לא מסכים עם זה - אני טוען שכל מערכת שתוכננה לבצע פונקציה אחת בלבד, כלומר, להריץ 'יישום' ספציפי אחד, אפשר לקרוא לו מערכת משובצת.

עם זאת, צריך להיות די קל לדמיין מצבים שייהנו מהשירותים של מערכת הפעלה מלאה. למשל, במקום בו אני עובד זה די נפוץ למצוא אנשים שבונים ציוד בדיקה על גבי חבילת עיצוב מכשור שעוברת על גבי חלונות. מערכות אלה מוגדרות לאתחל בתצורת תחנת הבדיקה ולנעול את השימוש הכללי (כדי למנוע השחתה של התחנה) וניתן לטעון שמדובר במערכות משובצות.

עם זאת, רק קניית קלט / פלט מדף מודולים, חיבורם למחשב המותאם להרכבה, והקצאת תצורה בממשק משתמש עשוי להיכשל בתור עיצוב של מערכת מסוימת. למצב קצת פחות מהמדף, שקול בקר תהליך מותאם אישית עם FPGA, שעבורו אתה רוצה לבצע רישום נתונים מהודר. אתה יכול להטמיע מערכת מעבד ליבה רכה (עם BSP קיים) ולהריץ לינוקס בזמן אמת על מנת להריץ מחסנית רשת (לצורך רישום ו- NTP שלך וכו ') ולעשות את כל השאר בלוגיקה.

Taniwha
2014-01-01 05:07:09 UTC
view on stackexchange narkive permalink

כלל האצבע (המעורפל מאוד) שלי הוא שאם אתה זקוק ליותר מחוט שליטה אחד (נניח לפחות מכשיר אחד שכולל פרוטוקול או מכונת מדינה בתוספת משהו אחר לעשות) אז חלק מהתוכנות של OSish יהפכו את החיים קלים יותר

הגדרת RTOS דורשת כמות מסוימת של עבודה. אלא אם כן המאמץ להשתמש במכונות מדינה מבוססות 'מתג' עולה על זה, מכונות מבוססות 'מתג' מתאימות להיות טובות יותר. יתר על כן, בפלטפורמות 8x51 וגם ב- TMS2000 יישמתי מחליף משימות שיתופי פשוט מבוסס ערימה. אין היגיון של מערכת ההפעלה להחליט מתי לעבור - בכל פעם ש"שרשור "אחד מרגיש שהוא יכול לקחת הפסקה, הוא יעבור לשני. אם אותו חוט אחר היה רואה שמשהו שהוא חיכה לו עדיין לא קרה, הוא יכול היה לחזור לראשון בפחות זמן מאשר מערכת הפעלה רגילה הייתה משקיעה להחליט * אם * לעבור.
יתכן וכדאי להבחין בין "שרשור" אמיתי של תוכנת ריבוי משימות (שמצביעה מאוד על מערכת הפעלה) לעומת הפרעה פשוטה יותר המגיבה למצב חומרה.
Barleyman
2018-09-11 14:46:27 UTC
view on stackexchange narkive permalink

שאלה ישנה אבל אני אגיב בכל מקרה.

גם אם אין לך ערימות רשת וכדומה, בנקודה שבה אתה זקוק למתזמן משימות מכיוון שיש לך מספיק תהליכים ביישום המשובץ שלך, תוכל לשקול RTOS.כתיבת מתזמן ריבוי משימות שיתופי מבוסס טיימר פשוט היא לא כל כך קשה אך לוודא שתהליך תקוע לא יחסום את שאר היישום וכזה יכול לקחת זמן עד שהגיע נכון.אתה צריך ליישם מערכת עדיפות עם סוג כלשהו של הוראה כדי להיתקל בתהליכים בתור אם הם לא הושלמו.

RTOS גם נותן לך דברים כמו הגנה על זיכרון וכדומה, מה שמקל הרבה יותר על מעקב אחר כמה גאפים נפוצים בקוד C, אך מיקרו-בקרים פשוטים פשוט לא יוכלו להתמודד עם הגנת זיכרון מורכבת.לְמָשָׁל.MSP430 מאפשר לך להפריד בין קוד ונתונים ברמה גבוהה, אך אין בקרת גישה לזיכרון מגורען.

asif
2015-03-03 19:12:28 UTC
view on stackexchange narkive permalink

מערכת הפעלה למעשה מגשרת על הפער בין חומרה לתוכנת יישומים (דרך מנהל התקן). במילים אחרות, הוא מספק פלטפורמה ברמה גבוהה יחסית למתכנת, מה שבסופו של דבר מפחית את מורכבות הקוד. ובהמשך, מערכת ההפעלה מספקת פלטפורמה חזקה וגמישה לביצוע היישום.



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...