איך מחשבים עובדים

מה זה מחשב?

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

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

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

• קלט: המקלדת והעכבר, למשל, הם רק יחידות קלט – דרכים להכניס מידע למחשב שלך שהוא יכול לעבד. אם אתה משתמש במיקרופון ותוכנה לזיהוי קולי, זוהי צורה אחרת של קלט.
• זיכרון / אחסון: ככל הנראה המחשב שלך מאחסן את כל המסמכים והקבצים שלך בכונן הקשיח: זיכרון מגנטי ענק. אולם מכשירים קטנים יותר מבוססי מחשב כמו מצלמות דיגיטליות וטלפונים סלולריים משתמשים באחסון מסוגים אחרים כגון כרטיסי זיכרון פלאש.
• עיבוד: מעבד המחשב שלך (המכונה לעתים יחידת העיבוד המרכזית) הוא מיקרו-שבב הקבור עמוק בפנים. זה עובד בצורה קשה להפליא ומתחמם להפליא בתהליך. זו הסיבה שבמחשב שלך מאוורר קטן מתפוצץ – כדי למנוע ממוחו להתחמם יתר על המידה!
• פלט: ככל הנראה למחשב שלך יש מסך LCD המסוגל להציג גרפיקה ברזולוציה גבוהה (מאוד מפורטת), וכנראה גם רמקולים סטריאו. יתכן שיש לך מדפסת הזרקת דיו על השולחן שלך כדי ליצור צורה קבועה יותר של פלט.


מהי תוכנית מחשב?

כפי שתוכלו לקרוא במאמר הארוך שלנו על היסטוריית המחשבים, המחשבים הראשונים היו מכונות חישוב ענקיות וכל מה שהם עשו באמת היה “מספרים קראנצ’יים”: לפתור בעיות מתמטיות ממושכות, קשות או מייגעות. כיום מחשבים עובדים על מגוון רחב הרבה יותר של בעיות – אך כולם עדיין, בעיקרם, חישובים. כל מה שמחשב עושה, החל מסייע לכם לערוך תצלום שצילמתם עם מצלמה דיגיטלית ועד הצגת דף אינטרנט, כרוך בתמרון מספרים בדרך זו או אחרת.

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

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

כיום, רוב משתמשי המחשבים מסתמכים על תוכניות שכתובות מראש כמו Microsoft Word ו- Excel או מורידים אפליקציות לטאבלטים והטלפונים החכמים שלהם מבלי שאכפת להם כמה הם קיבלושם. (אפליקציות, אם תהיתם אי פעם, הן פשוט תוכנות מחשב ארוזות בצורה מסודרת.) כמעט אף אחד לא כותב עוד תוכניות, וחבל, כי זה כיף גדול ומיומנות ממש מועילה. רוב האנשים רואים במחשבים שלהם כלים שעוזרים להם לבצע עבודות, ולא כמכונות אלקטרוניות מורכבות שעליהם לתכנת מראש. יש שיגידו שזה טוב באותה מידה, מכיוון שלרובנו יש דברים טובים יותר לעשות מאשר תכנות מחשבים. ואז שוב, אם כולנו מסתמכים על תוכנות מחשב ואפליקציות, מישהו צריך לכתוב אותם, וכישורים אלו צריכים לשרוד. למרבה המזל, לאחרונה התעוררה ההתעניינות בתכנות מחשבים. “קידוד” (שם לא רשמי לתכנות, מכיוון שלעתים מכנים תוכניות “קוד”) נלמד שוב בבתי הספר בעזרת שפות תכנות קלות לשימוש כמו Scratch. יש תנועה חובבנית הולכת וגדלה, הקשורה לגאדג’טים לבנות אותה בעצמך כמו פטל Pi ו Arduino. ומועדוני קוד, בהם מתנדבים מלמדים תכנות לילדים, צצים בכל העולם.

מה ההבדל בין חומרה לתוכנה?

היופי במחשב הוא בכך שהוא יכול להריץ תוכנית לעיבוד תמלילים דקה אחת – ואז תוכנית לעריכת תמונות חמש שניות אחר כך. במילים אחרות, למרות שאנחנו לא באמת חושבים על זה ככה, ניתן לתכנת מחדש את המחשב כמה פעמים שתרצו. זו הסיבה שתוכנות נקראות גם תוכנה. הם “רכים” במובן זה שהם אינם קבועים: ניתן לשנות אותם בקלות. לעומת זאת, חומרת המחשב – החלקים שמהם הם עשויים (והציוד היקפי, כמו העכבר והמדפסת, אתה מתחבר אליו) – די קבוע כשאתה קונה אותו מהמדף. החומרה היא שהופכת את המחשב שלך לחזק; היכולת להריץ תוכנות שונות היא זו שהופכת אותה לגמישה. שמחשבים יכולים לבצע כל כך הרבה עבודות שונות זה מה שעושה אותם כל כך שימושיים – וזו הסיבה שמיליונים מאיתנו כבר לא יכולים לחיות בלעדיהם!

מהי מערכת הפעלה?

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

Leave a Reply

Your email address will not be published. Required fields are marked *