העתקה בזמן כתיבה

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

Copy-on-write (נקראת גם COW) היא אסטרטגיית אופטימיזציה לניהול משאבים, אשר נעזרים בה בתכנות על מנת "להעתיק" אובייקטים גדולים ביעילות (למשל דפי זיכרון, קבצים, אובייקטים גדולים).

ניהול זיכרון וירטואלי[עריכת קוד מקור | עריכה]

אסטרטגיית Copy-on-write נפוצה ביותר בניהול זיכרון על ידי מערכת ההפעלה בעת שיתוף זיכרון בין תהליכים שונים. יעילותה נובעת מההבנה שמספר משימות שונות יכולות להשתמש בעותקים זהים של מידע, כלומר אין צורך לבצע עותק של המידע לכל תהליך. במקום זה, ניתן להצביע על אותו המשאב מכל התהליכים הדורשים עותק זה. ורק כאשר אחד התהליכים מנסה לעדכן את המידע פרדיגמת COW תבצע את ההעתקה בפועל כדי לספק שני עותקים שונים לשני התהליכים.

דוגמה ל-COW במערכת linux: כאשר קריאת המערכת fork מופעלת, עותק של כל הדפים התואמים לתהליך האב נוצרים ונטענים לאזור זיכרון נפרד על ידי מערכת ההפעלה לטובת תהליך הבן. פעולה זו אינה נדרשת במקרים מסוימים. למשל, במקרה שנבצע דרך התהליך הבן את קריאת המערכת execv או בזמן יציאה לאחר זמן קצר מרגע ה-fork. כאשר תהליך הבן צריך להריץ פקודה לטובת תהליך האב, אין צורך להעתיק את דפי הזיכרון של האב, זאת מפני ש-execv מחליף את כל הזיכרון בכל מקרה.

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

קישורים חיצוניים[עריכת קוד מקור | עריכה]

ויקישיתוף מדיה וקבצים בנושא העתקה בזמן כתיבה בוויקישיתוף
ערך זה הוא קצרמר בנושא מחשבים. אתם מוזמנים לתרום לוויקיפדיה ולהרחיב אותו.