|
||||
|
||||
LOL סיפור נהדר, מתאים לרגשות הבוז שלי למכונית הממוחשבת. (אישית אני כמובן צריכה לפתוח חלון בשביל האוזניים של הכלבה, אחרת איך הן יתנפנפו כשהיא מוציאה ראש החוצה?) |
|
||||
|
||||
אכן, סיפור משעשע. לענייננו, הוא מתחיל במשפט "BMW has told CNETAsia that an electronic fault caused the problem, rather than a system crash of the car's Windows-based central computer". |
|
||||
|
||||
אכן, אך המשפט הזה לא אומר הרבה. יכול להיות שבאמת פיזית התנתק המצבר אבל הסיכוי לכך נמוך. 90% של הבאגים במערכות משובצות מתחילים ב electronic fault – חיווי יוצא דופן מהחומרה, למשל מאחד החיישנים או הלחצנים, שאין לו טיפול בדיאגרמת המצבים, ובמילים אחרות באג. אלמלא זה היה באג תוכנה הפרוססור היה מרגיש שהוא תקוע ומאתחל עקב Watchdog_timer [Wikipedia] חומרה. פרוססור תקוע זה אחד הבאגים הכי מביכים בעולם. תהייה: אין במכוניות האלה לחצן ריסטרט גדול אדום זרחני? (מפתחי מערכות תמיד מתנגדים ללחצן כזה מתוך גאוותנות) חוץ מזה אני קצת המומה מזה שבשביל לכוון מיזוג, מגבים, חלונות ו-CD צריך לקנות מערכת הפעלה. (יש לקוות שהקונטרולר של ABS המונע נעילת בלמים, למשל, לא מחובר למערכת ההפעלה הזאת, אם כי אני מנחשת שדווקא כן, בגלל אבולוציית תוכנה שדיברתי עליה). |
|
||||
|
||||
לגבי כפתור restart: דווקא מפתחים שאני מכיר היו רוצים תמיד כפתור כזה, כדי לפתור בדיוק את אותן בעיות (הם יודעים היטב שהם לא מספיק חכמים, ולכן מנסים להיות פיקחים). אבל זה לא בהכרח יעבוד: האם מותר ללחוץ על הכפתור האדום באמצע נסיעה? ברור שלא: זה היה גורם ללא מעט תקלות ("איך מדליקים במכונית הזו את האיתות? לוחצים על הכפתור האדום הגדול הזה?"). לכן צריך גם להגן עליו עם כמה שכבות תוכנה. לדוגמה, מניעה של לחיצה עליו אם יודעים שהמכונית בנסיעה. ואיך יודעים? לפי לוגיקה שמעבדת קלט מכמה חיישנים, ושכמובן אין בה באגים. רכב כולל כמה וכמה "מחשבים"1. באופן כללי מערכת תא הנהג (מחוונים, CD, ועוד) היא מחשב נפרד ופחות קריטי מזה שמנהל את הנהיגה עצמה. 1 בעיקרון כל בקר קטן מכיל היום מעבד פשוט והיינו יכולים לקרוא לו "מחשב", אבל קוראים לו בקר, כי למערכת עם פחות מ-64k ועם מעבד כ"כ חלש (במקרים רבים מעבד 8 סיביות) אי-אפשר לקרוא "מחשב". |
|
||||
|
||||
זה בטח די קטנוני להעיר, אבל פעולת הכפתור האדום ההוא יכולה להיות מותנית בחיישן בודד שקיים כבר היום, ההוא שמראה שהמכונית ב-P. אני מוכן לערוך (חינם!) את כל בדיקות איכות התוכנה הנדרשות כדי להבטיח שלא יהיו באגים בתת-המערכת הזאת. הרבה יותר מסוכן לאפשר לנהג לסובב את המפתח ולהשבית את המנוע תוך כדי נסיעה, ודומני שאת זה ניתן לעשות כיום. לא ניסיתי, ואני לא ממליץ לאף אחד לנסות. לטובת אלה שאינם בקיאים בעולמם המופלא של המחשבים אני רוצה להבהיר שהטענה שאי אפשר להבטיח במאה אחוז פעולה תקינה של תוכנית היא טענה נכונה כללית, אבל היא אינה מתיחסת לתוכנית ספציפית. עבור תוכניות מסוימות בעיקר כאלה עם מספר קטן של החלטות ("הסתעפויות") ניתן בהחלט להבטיח פעולה תקינה בכל רמת בטיחות מתבקשת (עד לגבולות קוואנטיים). |
|
||||
|
||||
כן, חשבתי על הבעייתיות של כפתור ריסטרט. הצעה לפתרון: לשים אותו במקום כזה שרק כשידית ההילוכים במצב PARK אפשר להגיע אליו. נכון, מכוניות חדישות כוללות היום עשרות "מחשבים" שהם לא באמת מחשבים אלא בקרים, ואני מחשיבה את זה לא כתוכנה אלא כחומרה. הבעיה מתחילה כשתוכנה מרכזית מתערבת בפעולת הבקרים ויוצרת ביניהם קשרים, ומתייעצת עם בקר המגבים לגבי פעולת בקר ה ABS. (נניח, אף שדוגמה כזאת כנראה לא תקרה לעולם. על אף האמון הדל שלי במתכנתים, יש גבול לכל תעלול.) |
|
||||
|
||||
אגב בקרים - 64K זה המון, 64K של קוד אני כבר לא מחשיבה כחומרה. הפרויקט הראשון שעשיתי היה טלפון על 8051 עם 4K, שכלל תצוגה, לדים, שפופרת, הפקת צלילים, תקשורת עם מחשב מרכזי, דיאגנוזות - ובנוסף לכל ספיקרפון מלא. היה שם כר נרחב לבאגים וניצלתי אותו יפה (התחשבות, עבודתי הראשונה...) בקר בעיניי זה כמה שורות קוד, אני מאמינה שב ABS אין יותר מכמה שורות טריויאליות. |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |