בתשובה לג'וד, 18/09/11 11:01
לטוס על חוט 581873
לגבי כפתור restart: דווקא מפתחים שאני מכיר היו רוצים תמיד כפתור כזה, כדי לפתור בדיוק את אותן בעיות (הם יודעים היטב שהם לא מספיק חכמים, ולכן מנסים להיות פיקחים).

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

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

1 בעיקרון כל בקר קטן מכיל היום מעבד פשוט והיינו יכולים לקרוא לו "מחשב", אבל קוראים לו בקר, כי למערכת עם פחות מ-‏64k ועם מעבד כ"כ חלש (במקרים רבים מעבד 8 סיביות) אי-אפשר לקרוא "מחשב".
לטוס על חוט 581881
זה בטח די קטנוני להעיר, אבל פעולת הכפתור האדום ההוא יכולה להיות מותנית בחיישן בודד שקיים כבר היום, ההוא שמראה שהמכונית ב-P. אני מוכן לערוך (חינם!) את כל בדיקות איכות התוכנה הנדרשות כדי להבטיח שלא יהיו באגים בתת-המערכת הזאת. הרבה יותר מסוכן לאפשר לנהג לסובב את המפתח ולהשבית את המנוע תוך כדי נסיעה, ודומני שאת זה ניתן לעשות כיום. לא ניסיתי, ואני לא ממליץ לאף אחד לנסות.

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

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

הבעיה מתחילה כשתוכנה מרכזית מתערבת בפעולת הבקרים ויוצרת ביניהם קשרים, ומתייעצת עם בקר המגבים לגבי פעולת בקר ה ABS. (נניח, אף שדוגמה כזאת כנראה לא תקרה לעולם. על אף האמון הדל שלי במתכנתים, יש גבול לכל תעלול.)
לטוס על חוט 581887
אגב בקרים - 64K זה המון, 64K של קוד אני כבר לא מחשיבה כחומרה.
הפרויקט הראשון שעשיתי היה טלפון על 8051 עם 4K, שכלל תצוגה, לדים, שפופרת, הפקת צלילים, תקשורת עם מחשב מרכזי, דיאגנוזות - ובנוסף לכל ספיקרפון מלא. היה שם כר נרחב לבאגים וניצלתי אותו יפה (התחשבות, עבודתי הראשונה...)
בקר בעיניי זה כמה שורות קוד, אני מאמינה שב ABS אין יותר מכמה שורות טריויאליות.

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים