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

מסמכים קשורים
Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

מבוא למדעי המחשב

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

אגף כלכלה תקציב ומסחר

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

PowerPoint Presentation

שואב אבק רובוטי XIAOMI דגם - Vacuum Mi Robot מק"ט ספק 8223 תכנון מסלול חכם שאיבה חזקה שליטה חכמה ע"י Wi-Fi מרחוק בעל 21 חיישנים למיפוי מושלם של הבית צ

PowerPoint Presentation

Microsoft Word - solutions.doc

גילוי דעת 74.doc

Intel Paging & Page Table Exploitation on Windows מאת יובל עטיה הקדמה בשנת 1985, המעבד i386 של Intel יצא לעולם, והיה המעבד הראשון של Intel שתמך בפקודו

PowerPoint Presentation

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

וועדת הלסינקי מרכזית - מטרות ואמצעים

מחירים מיוחדים לחודשים מאי-יוני XBOX ONE 1TB + 1, X 6 ת ש HDMI שלט אלחוטי כבל XBOX ONE 1TB משחק מלחמה: Tom Clancy the Division מתנה בשווי

שיעור מס' 6 – סבולות ואפיצויות

מבנה מחשבים ספרתיים

<4D F736F F D20E4F9E5E5E0FA20EEF9E0E1E920FAEEE9F1E >

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

Microsoft PowerPoint - Lecture1

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63>

People. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסי

חשבונאות ניהולית שיעור תמחיר ABC תמחיר זה אומר כי בגלל שלאורך השנים יותר משמעותיות מאשר בעבר צריך למדוד אותן בצורה טובה יותר לוקחים את העלוי

עיצוב אוניברסלי

תוכן העניינים

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

בעיית הסוכן הנוסע

תקנון הגרלת מוצרי אינטל בין משתתפי כנס Technion GE

מדריך למרצים ומתרגלים 1

<4D F736F F D20F9E9F2E5F820F1E9EEF0E920E7ECE5F7E4>

Microsoft Word ACDC à'.doc

תוכן העניינים

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

מצגת של PowerPoint

פרויקט שורשים דמות

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

מבוא לאסמבלי

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

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

תהליך קבלת החלטות בניהול

ForMenahelHeshbonot

מצגת של PowerPoint

כמה מילים לפני שקופצים לתוך ה...ציור זוכרים? מרי פופינס קופצת עם הילדים לתוך הציורים, כמה מילות קסמים והם בפנים! וכמה קורה שם בפנים: הילולה, הרפתקה, ו

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

מבנה מחשבים ספרתיים

מיכפל

1

הקדמה

<4D F736F F D20F4E9E6E9F7E420FAF8E2E5ED20ECF2E1F8E9FA20E4E2E4E420F1E5F4E9FA20496C616E2E646F63>

פתרון שאלה 1: פתרון מוצע לבחינת מה"ט/משה"ח מערכות קירור ומיזוג אויר מועד א תשע"ח, חודש פברואר שנה 2018 מחבר: מר בוריס לחמן מכללת אורט סינגאלובסקי הערה

יום עיון עורכי בקשות להיתרים

סרגל כלים ל-Outlook או לExplorer- מדריך למשתמש

תקנון כדורגל כללי 1. הוראות תקנון זה, הינן ייחודיות לענף הכדורגל ובאות להוסיף על הוראות התקנון הכללי. 2. המשחקים ייערכו לפי חוקת המשחקים הנהוגה בהתאחד

Dell Vostro 3470 מדריך הגדרה ומפרטים

שעור 6

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

מטלת סיום שם הקורס: מורי מורים "עברית על הרצף" מוגשת ל- ד"ר האני מוסא תאריך הגשה: מגישה: זייד עביר יסודי ספר בית קחאוש אלפחם אום 1

קובץ הבהרות מס' 1 21/07/2019 מכרז פומבי מספר 5/19 למתן שירותי ביקורת פנים לחברת פארק אריאל שרון בע"מ

Microsoft Word - teachmodel1.doc

שקופית 1

דיודה פולטת אור ניהול רכש קניינות ולוגיסטיקה

Titre du document en police Sodexo

Microsoft Word - Ass1Bgu2019b_java docx

בארץ אחרת

<4D F736F F D20EEEBF8E6E9ED20FAEC20E0E1E9E120F2ED20F4FAF8E5EF2E646F63>

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

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

מרוץ סובב בית שמש , יום שישי 26

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

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

Microsoft Word - ExamA_Final_Solution.docx

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

<4D F736F F D20E8E9E9EEF8E9ED20E5EEE5F0E9ED20E1E1F7F >

תרגול 1

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

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

Microsoft PowerPoint - CE_Candidates_2011.ppt [Compatibility Mode]

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

תכנות מונחה עצמים א' – תש"ע

חינוך לשוני הוראת קריאה: נקודת מבט של הערכה: מהן הסוגיות שבהן ידע מחקרי עשוי לסייע בעיצוב מדיניות ועשייה?

Microsoft Word - tips and tricks - wave 5.doc

מצגת מבנה וטבלה מתוקן [לקריאה בלבד]

CITROËN DS3

Microsoft Word - beayot hespek 4 pitronot.doc

Slide 1

I PRO Skills כישורים לעולם העבודה I CAN I AM I GROW I BUILD I NET I MIX כל הזכויות שמורות לג'וינט ישראל- תבת 2017

Microsoft Word - tik latalmid-final

Algorithms Tirgul 1

Microsoft Word IG Lab - Configure Wireless Router in Windows Vista.docx

מערך פעולה 55 דקות מטרות: )1 )2 )3 נושא: המשימה: הגשמה משך החניך יגדיר מהי הגשמה וכיצד היא ביטוי של החלום במציאות. הפעולה החניך ישאף להגשמה בחייו. החנ

מקביליות

ייבוא וייצוא של קבצי אקסל וטקסט

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

תמליל:

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

כאשר מערכת ההפעלה יוצרת תהליך מסוים, נניח של תוכנית שכתבנו ב,C- היא מספקת לתהליך משאבים הנחוצים להרצתו - זיכרון הוא אחד מהם, אל הזיכרון יטענו חלקי התוכנית השונים, בין היתר הקוד של התוכנית עצמה - בדרך זו המעבד למעשה "מריץ" את התוכנית שכתבנו. למעשה, מידע הנטען ל RAM מיועד לשימוש המעבד, וללא RAM למעבד אין דרך לגשת למידע הנחוץ לו על מנת לבצע את עבודתו - במהירות נוכל להבין כי RAM הינו רכיב אינטגרלי במחשב. סוגים שונים של RAM נוכל לחלק זיכרונות RAM ל 2- סוגים עיקריים :.1 זיכרון סטטי SRAM -.2 זיכרון דינמי DRAM - כדי להבין לעומק את ההבדלים בין השניים - נדרש מאמר שלם, אך באופן רחב ההבדל הניכר הינו בביצועים. זיכרון סטטי ( ) SRAM יצרוך פחות חשמל והוא נחשב מהיר יותר בעוד שזיכרון דינמי ( )DRAM מציע גודל אחסון גדול יותר ועלויות הייצור שלו נמוכות יותר. כיום נעשים שימושים רבים בזיכרון סטטי ודינמי במוצרים ורכיבים טכנולוגיים שונים, אך סוג הזיכרון הרלוונטי לנו הוא זיכרון דינמי - והוא הזיכרון המשמש את המחשבים שלנו כיום. סוג זיכרון זה נקרא DDR SDRAM ולו מספר דורות שפותחו לאורך השנים, בנוסף להיותו זיכרון ראשי, הוא משמש כרטיסי מסך מודרניים בגרסה מותאמת הנקראת.GDDR ההתקדמות הטכנולוגית בין דור ודור מתבטאת בנפח זיכרון גדול יותר, ביצועים טובים יותר וצריכת חשמל פחותה. השוואה בין הדורות השונים נוכל לראות בטבלה הבאה : [מקור ]https://www.microcontrollertips.com/understanding-ddr-sdram-faq : www.digitalwhisper.co.il גליון,129 מאי 2021 2

איך המחשב "תופס" זיכרון? כאשר נדבר על זיכרון,RAM נוכל להתייחס אליו כאל מערך גדול, כך שכל תא במערך מיוצג על ידי כתובת הקסדצימלית ייחודית, השם "זיכרון גישה אקראית" Memory( )Random Access מגיע מהעובדה שמעבד יכול לגשת לכל תא בזיכרון בסיבוכיות (1)O, או במילים אחרות - הוא בייט אחד. בהינתן כתובת נקבל תא, גודל כל תא ההבדל בין ארכיטקטורת 32bit ל- 64bit כאשר מדברים על ארכיטקטורות שונות, מתכוונים לגודל האוגרים של מעבד. למעבד בארכיטקטורת 32bit יהיו אוגרים בגודל,32bit כלומר - כל אוגר יכול להכיל )4294967296( 2 32 ערכים שונים, בהקשר של זיכרון, אוגר יכול להחזיק 4929499679296 כתובות שונות, מאחר וגודל כתובת הינו בייט אחד, מדובר בסדר גודל של.4GB מכאן עולה כי מעבד בארכיטקטורת 32bit יכול לגשת למקסימום של 4GB זיכרון גישה אקראי. לכן, במידה ומחברים למחשב בו מעבד 32bit זיכרון של,8GB הוא יוכל להשתמש רק ב- 4GB מתוך כל ה- 8, ולכן נוצר מצב של.Overkill כמו כן, כמות התהליכים שיכולים לרוץ במקביל מוגבלת - ככל שכמות הזיכרון המנוצל על ידי המעבד תתקרב ל- 4GB, הביצועים של המחשב ילכו וידעכו, בנוסף - לא יהיה ניתן להריץ תהליך שדורש יותר מ- 4GB של זיכרון. מהר מאד נבין שעבודה עם ארכיטקטורת 32bit עלולה ליצור "תקרה ביצועית" כאשר הזיכרון הנדרש ברגע נתון מתקרב לגודל הזיכרון המוקצה למעבד. 3 גליון 129, מאי 2021 www.digitalwhisper.co.il

הפתרון? להגדיל את האוגרים מעבד בארכיטקטורת 64bit עובד בצורה דומה לארכיטקטוריה של,32bit רק שבו גודל האוגרים בגודל,64bit ולכן הוא יכול לגשת ל- 2 64 כתובות - סדר גודל של 18.4 הקסהבייט )אם טרהבייט הם 19111 ג'יגהבייט, ופטהבייט הם 19111 טרהבייט, אז הקסהבייט הם 19111 פטהבייט, או בקיצור - המון( כעת, בעבודה עם ארכיטקטורת 64bit המעבד יוכל לגשת למרחב זיכרון גדול משמעותית וה"תקרה הביצועית" נהיית גבוהה הרבה יותר. )כמו כן, חשוב לזכור שגם בעבודה עם ארכיטקטורת 64bit תקרה זו קיימת( ניהול זיכרון לאחר שלמדנו שניתן להתייחס לזיכרון במחשב כאל מערך גדול, בואו נבין איך מערכת ההפעלה מנהלת את הזיכרון של המחשב לצרכיו השונים. מאחר ומערכת ההפעלה היא תוכנה בעצמה, היא נטענת אל הזיכרון בתהליך המכונה,Boot מערכת ההפעלה נטענת אל האזור הנמוך בזיכרון )הכתובות הנמוכות, 1 והלאה( המכונה,Low Memory שאר הזיכרון המכונה High Memory מיועד לתהליכי משתמש. נשאל את עצמנו את השאלה הבאה - באיזה צורה טוענת מערכת ההפעלה מידע לזיכרון? נניח ונרצה לטעון לזיכרון מידע כלשהו, בגודל של,4bytes האם נטען את הבתים אחד אחרי השני? )כלומר בכתובות עוקבות( אולי נטען אותם במקומות נפרדים בזיכרון אך נקבע חוקיות היוצרת ביניהם סדר? )רשימה מקושרת(. נניח ונרצה לטעון את המידע בצורה רציפה, לשם כך נצטרך 4 כתובות רציפות בזיכרון בהן לא נעשה שימוש. בשרטוט שלפנינו נוכל לראות מערך בעל 7 תאים, כך שתא אדום מסמן תא שנמצא בשימוש ותא ירוק מסמן תא הפנוי לשימוש. נניח שמערך זה הוא זיכרון של מחשב כלשהו, וברצוננו לטעון לזיכרון זה מידע בגודל 4bit באופן רציף. נוכל לשים לב שישנים 3 תאים אדומים ו- 4 תאים ירוקים. מאחר והמידע אותו נרצה לטעון דורש 4 תאים ירוקים, במחשבה ראשונה נראה שנוכל לטעון את המידע לזיכרון בלי בעיה, אך נזכר ונבין כי על מנת לטעון את המידע לזיכרון, יידרשו 4 תאים רציפים. כלומר, הגודל של הזיכרון הדרוש לטעינת המידע זמין, אך לא בצורה רציפה. התופעה אליה נחשפנו זה עתה נקראת External fragmentation גודל הזיכרון הדרוש זמין, אך לא בצורה רציפה - לכן לא נוכל לנצל אותו. 4 גליון 129, מאי 2021 www.digitalwhisper.co.il

כאשר נמשיל מצב זה למציאות, נוכל לדמיין מצב בו נרצה לטעון לזיכרון תהליך בגודל,4GB כאשר גודל הזיכרון זמין אך לא בצורה רציפה. טעינתו של תהליך לזיכרון מתעכבת ואף נמנעת, דבר הפוגע משמעותית בחוויית המשתמש. פתרון יצירתי לבעיה יהיה לחלק את הזיכרון לחלקים שווים הנקראים סגמנטים, כך שכאשר תהליך מסוים יטען לזיכרון, הזיכרון הדרוש יחולק על פני סגמנטים שונים בזיכרון, כך שהם אינם צריכים להיות רציפים וכלל לא תלויים במיקומם, הם יהיו מקושרים זה לזה בצורה כרונולוגיות המיוחסת לתהליך לו הם שייכים, לכן נוכל להסתכל עליהם כעל רשימה מקושרת. כעת לא נהיה זקוקים למקטע רציף בזיכרון על מנת לטעון את התהליך שלנו - כל עוד הזיכרון זמין נוכל לנצלו. נניח שאנחנו עובדים עם זיכרון בגודל 8GB המחולק לסגמנטים של 4MB כל אחד, כעת נרצה לטעון לזיכרון תהליך בגודל,16MB מאחר וגודל כל סגמנט הוא,4MB לטעינת תהליך זה יידרשו 4 סגמנטים, כלומר כל עוד קיימים 16MB זמינים בזיכרון, נוכל לטעון את התהליך לזיכרון, ללא תלות במיקום הסגמנטים. נמחיש את הכתוב התמונה הבאה: בדומה לדוגמא הקודמת, המערך הבא מייצג זיכרון של מחשב, רק שהפעם כל תא מייצג סגמנט בגודל 4MB )כמובן שהדבר אינו מדויק כי סגמנט מכיל מספר כתובות זיכרון, אך הדבר הוא לצורך המחשה( מאחר וסגמנט אדום מייצג סגמנט הנמצא תחת שימוש וסמגנט ירוק הינו חופשי, נוכל להסיק כי קיימים 16MB זמינים בזיכרון. אף על פי שהסגמנטים אינם "שכנים", נוכל לעשות בהם שימוש. עושה רושם שפתרנו את הבעיה, אך כעת נבין שגם לשימוש בפרגמנטים יש תופעות לוואי. תארו לכם מצב בו נעבוד עם זיכרון בגודל 8MB המחולק ל- 4 סגמנטים שגודלם.2MB נניח שכל הזיכרון זמין לשימוש, מה יקרה במצב בו נרצה לטעון לזיכרון תהליך הדורש 8MB,5MB של זיכרון זמינים לשימוש? מאחר וגודל כל סגמנט הוא,2MB תהליך בגודל 5MB יתחלק סה"כ ל- 3 סגמנטים שונים. 5 גליון 129, מאי 2021 www.digitalwhisper.co.il

לאחר טעינת התהליך נותרנו עם סגמנט פנוי אחד, או במילים אחרות - עם 2MB זמינים. רגע, אמרנו שאנחנו עובדים עם זיכרון בגודל 8MB והתהליך דורש,5MB אז איך יצא מצב שנותרנו עם?1MB הרי 8 פחות 5 הם 3, מה קרה פה בעצם? שרפנו?2MB בת'כלס? - כן. מערכת ההפעלה אכן סיפקה לתהליך 3 סגמנטים, אך בפועל התהליך ניצל 2.5 מהם - 2 סגמנטים נוצלו במלואם, ועוד שרק חצי מהסגמנט הנותר נוצל )1MB( ולמעשה התהליך קיבל יותר זיכרון ממה שהוא זקוק לו, ובכך הוא מבטל את זמינות זיכרון זה )אך בואו לא נמהר להאשים את התהליך, מערכת ההפעלה היא האחראית(. תופעה זו מכונה.Internal Fragmentation אמנם בדוגמא שראינו נוצר ביזבוז של,1MB ואין ספק שבעבודה עם 16GB גודל זה נשמע מזערי, אך תארו לכם מצב בו גודל של סגמנט היה,64MB תהליך בגודל 65MB ידרוש 2 סגמנטים, את אחד מהם ינצל במלואו, אך ינצל רק 1MB מהסגמנט השני, כלומר נוצר בזבוז של!64MB שזו כמות הרבה יותר משמעותית, נכפיל את בזבוז זה במספר גדול של תהליכים ונקבל כמות גדולה של זיכרון שהולכת לפח... הפתרון? שימוש בסגמנטים קטנים ככל הניתן. זיכרון וירטואלי במחשב הביתי שלי יש 16GB של זיכרון, המשחק Call Of Duty: Modern Warfare שוקל.175GB במחשבה ראשונית ופזיזה ניתן להסיק שבצורה כלשהי מערכת ההפעלה טוענת משחק במשקל 175GB לזיכרון בגודל,16GB דבר שנשמע לא כל כך אפשרי, בהתחשב בעובדה שהמשחק שוקל פי 11 מכמות הזיכרון הזמינה במחשב. מהר מאד ניתן להבין שניתן להסתכל על המשקל של המשחק כ"כל מה שיש למשחק להציע", מודלים תלת ממדיים של מפות, כלי נשק, רכבים, פס קול, וכמובן מנוע המשחק. מאחר ולא כל המידע הנ"ל רלוונטי בכל רגע נתון במשחק )כאשר נתחיל משחק, רק המפה בה נשחק רלוונטית, לכן אין בכלל צורך בשאר המפות בזיכרון(, לכן, בעת ריצת המשחק נטען רק את מה שרלוונטי לרגע הנתון, מה שבפועל ינוע בין 3GB - 5GB של זיכרון - נראה שפתרנו את הבעיה דיי בקלות. )כמובן שיש לציין שקיימות שיטות רבות שבאות לידי ביטוי על מנת להקטין את כמות הזיכרון הנדרשת להרצת המשחק, אך שיטות אלו אינן רלוונטיות למאמר זה(. מה לגבי סרט? נניח ועל המחשב שלי גרסת BluRay של סרט עדכני ששוקל 25GB - איך ייתכן שנוכל להריץ אותו כאשר הזיכרון הזמין לנו הוא?16GB ובכן בפועל, אומנם הסרט שוקל,25GB אך המידע הרלוונטי לנו כצופים הוא אך ורק המידע או "הקטע" בו אנחנו צופים באותו רגע, יתר הסרט אומנם רלוונטי להמשיך הצפייה או להרצה קדימה \ אחורה של 6 גליון 129, מאי 2021 www.digitalwhisper.co.il

הסרט, אבל לא לאותו רגע - לכן אין צורך לטעון אותו לזכרון. או במילים אחרות, התוכנה בה נשתמש על מנת לצפות בסרט, לא צריכה לקרוא את כל הסרט בכל רגע נתון, אלא רק את החלק הרלוונטי לנו כצופים. אז איך זה קורה? מערכות הפעלה מודרניות משתמשות בשיטת ניהול זיכרון הנקראת זיכרון וירטואלי, בשיטה זו מערכת הפעלה מנצלת את הדיסק הקשיח של המחשב (שבו בדרך כלל זיכרון גדול משמעותית מזיכרון ה )RAM- על מנת להריץ תהליכים בצורה יעילה. במקרה שלנו ", סרט" אינו תהליך, אלא קובץ בפורמט וידאו שעובר עיבוד על ידי תוכנת Media Player כלשהי, אך כמו שדנו קודם לכן, אותה תוכנה לא יכולה לקרוא את כל הסרט במלואו בו זמנית, מאחר ולמחשב לא קיים מספיק זיכרון לכך. ב חלק הקודם במאמר למדנו על שיטת ניהול זיכרון מודרנית בה הזיכרון מחולק לסגמנטים בגודל קבוע, בעוד שהזיכרון מחולק לחלקים המכונים סגמנטים, ה"סרט" יחולק בדיסק הקשיח לחלקים שווים הנקראים דפים (,) Pages בחלוקה זו גודל דף זהה לגודלו של סגמנט, מטרתם של הדפים היא "להכין" את חלקי הסרט לקראת טעינתם לזיכרון. לאחר שהסרט מחולק לדפים שונים בדיסק הקשיח, כאשר נרצה לצפות בסרט ותוכנת ה Media Player- תתחיל לפרש את הסרט מנקודת ההתחלה שלו, יחידת ניהול הזיכרון של המחשב (,MMU רכיב חומרתי שבין היתר אחראי על ניהול זיכרון וירטואלי) תטען את ה Page- הרלוונטי, כלומר את ה Page- המכיל את המידע של השניות הראשונות בסרט. בצורה מתמשכת יחידת ניהול הזיכרון תטען את הדף הרלוונטי לצפייה, בעוד שתפסיק את השימוש בדפים שאינם רלוונטיים לרגע הצפייה. בדרך זו מערכת ההפעלה חוסכת בכמות הזיכרון הנדרשת להרצת הסרט בכל רגע נתון. www.digitalwhisper.co.il גליון,129 מאי 2021 7

בפועל, כאשר תוכנת ה Media Player- מפרשת את קובץ הסרט, יחידת ניהול הזיכרון תבדוק האם המידע הרלוונטי לתוכנת ה Media Player- נמצא כבר בזיכרון, או שיש לשלוף את ה Page- הרלוונטי מהדיסק הקשיח - פעולה זאת נעשית בעזרת טבלת דפים ( )Page table שתפקידה הוא בין היתר למפות את הדפים הנמצאים בזיכרון על ידי יצירת רשומה ( )Entry ייחודית עבור כל דף. במצב בו המידע הרלוונטי לא מתועד בטבלת הדפים מערכת ההפעלה תטען לזיכרון את ה Page- הרלוונטי, מצב זה נקרא Page Fault והוא מתחלק ל 3- סוגים. - Minor Page Fault.1 מצב בו ה Page- הרלוונטי כבר נטען לזיכרון אך יחידת ניהול הזיכרון לא "מודעת" לכך, במצב זה תיווצר רשומה רלוונטית בטבלת הדפים על מנת לתעד את השימוש באותו דף. - Major Page Fault.2 מצב בו ה Page- הדרוש לא נטען לזיכרון ועל מערכת ההפעלה למצוא לו מקום מתאים על מנת שיוכל להיעשות בו שימוש. - Invalid Page Fault.3 מצב בו לא ניתן לטעון את ה Page- הרלוונטי לזיכרון (חוסר זיכרון זמין Page, שהתוכן שלו עובר שינוי על ידי תוכנה אחרת, וכו') מצב של Major Page Fault ניתן להמחיש בצורה הבאה : www.digitalwhisper.co.il גליון,129 מאי 2021 8

לצורך המחשת הרעיון שזה עתה למדנו, בתמונה הבאה נוכל לראות את הזיכרון שנגן המדיה VLC צורך כאשר הוא אינו מנגן סרט : במידה וננגן ב VLC- את הסרט הקלאסי Fight Club בגרסת,1080p משקל הסרט הוא 12.8GB ואורכו :2:19:18 ניתן לראות בבירור שכמות הזיכרון ש VLC- צורך עלתה באופן משמעותי, וזאת משום שכעת קיים יותר מידע "שרלוונטי" ל VLC- ברגע נתון. דוגמא נוספת היא ניגון הסרט Days Of Future Past מסדרת סרטי X- Men בגרסת UHD ב - VLC- משקל הסרט הוא 21.2GB וארכו :2:11:35 פעם נוספת ניתן לראות עלייה משמעותית בכמות הזיכרון ש VLC- צורך, על פי העקרונות שלמדנו נוכל להסיק שמשום שהסרט כבד יותר באופן משמעותי (מה שנובע מאיכות הפורמט) המידע הדרוש ל VLC- בכל "רגע של ניגון" גדול יותר. www.digitalwhisper.co.il גליון,129 מאי 2021 9

סיכום לאורך המאמר נחשפנו לעקרונות טכניים שונים שעזרו לנו להבין בצורה עמוקה את חשיבותו של זיכרון כמרכיב חיוני במחשב שלנו, למדנו על סוגים שונים של זיכרון ועל שיטות שונות בהן מערכת ההפעלה מנהלת זיכרון תוך כדי הקפדה על יעילות מרבית והבטחת חווית המשתמש. מאמר זה מראה לנו שלזיכרון השלכות רבות על תחומים טכנולוגיים שונים, חומרתיים ותוכנתיים כאחד, ולכן הבנה טובה יותר של זיכרון מקנה ידע רלוונטי שיסייע לנו להבין עקרונות טכנולוגיים שונים. לסיום, מקווה שנהניתם מקריאת המאמר, וכמו כן אשמח לקבל תגובות בנושא. תודה רבה, עידן. 01 גליון 129, מאי 2021 www.digitalwhisper.co.il