יותר

משתמשים בדפים מונחי נתונים למספר דפים עם ספירה?


יש לי קבוצה של 100 דפים מונחי נתונים המציגים כבישים שונים. ברצוני לייצא את ספר המפות בכביש. לְמָשָׁל. כביש אחד יהיה pdf אחד, כביש אחר ייוצא לקובץ PDF אחר.

הבעיה שיש לי היא עם מספור העמודים. הגדרתי לכל דף מספר עמודים דינאמי עם ספירה. כרגע, כשאני מייצא כביש א, מספרי הדפים מראים 'עמוד 1 מתוך 100', 'עמוד 2 מתוך 100' וכו '.

אני רוצה כביש א לאחר מכן יש 'עמוד 1 מתוך 5', 'עמוד 2 מתוך 5' וכו ' כביש ב ' יהיה 'עמוד 1 מתוך 2', 'דף 2 מתוך 2'.

אני לא מצליח להבין איך לעשות את זה, אני בטוח שעשיתי את זה בעבר, אבל הזיכרון הנורא שלי נכשל בי!


בדומה לשאלה קודמת (שליטה במספר דפי התוספת של דפים מונחי נתונים באמצעות ArcPy?).

יש דרך לעקוף מספרי דפים דינמיים.

קודם כל, בשדה מספר הדף שלך וודא שכל מספרי הדפים שלך הם כפי שאתה רוצה אותם (למשל כביש A עולה רק ל -5, כביש B מתחיל ב -1)

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

עמוד  מתוך 5

זה יפיק עמוד של 5 או כל מספר שתציין בסוף. לגבי כביש B עשו את אותו הדבר אך שנה את ה -5 ל -2

גם קצת קריאה נוספת על טקסט דינאמי


ניתן ליצור סדרות מפות ללא סקריפטים כלל באמצעות סרגל הכלים של דפים מונחי נתונים מתוך ArcMap. ההפך הוא הנכון גם: סדרות מפות ניתנות לתסריט מלא באמצעות arcpy.mapping מבלי להשתמש בממשק המשתמש של Data Driven Pages ב- ArcMap, אך ישנן סיבות טובות לשילוב שתי הטכניקות. ייתכן שסרגל הכלים של ArcMap Data Driven Pages אינו מספק מספיק אפשרויות ליצירת סדרת המפות "המושלמת", אך ההתנהגות הטבועה של מסמך מפה מאופשר לנתוני דפים יכולה לשמור שורות קוד רבות מכיוון שהדף נרחב, קנה מידה, טקסט דינמי ו וכן הלאה, כולם מנוהלים באופן אוטומטי בתוך מסמך המפה כך שלא צריך לכתוב קוד.

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

תחילה יש להפעיל ולחבר דפים מונחי נתונים בתוך מסמך מפה (.mxd) באמצעות סרגל הכלים של דפים מונחי נתונים ב- ArcMap לפני שניתן יהיה להתייחס אליו באמצעות arcpy.mapping.

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

למידע נוסף אודות דפים מונחי נתונים, עיין בנושאים הבאים:


להלן דוגמת עבודה פשוטה, שבה פקד BindingNavigator GUI משתמש באובייקט BindingSource כדי לזהות מעברי עמודים, על ידי הגדרת DataSource שלו למחלקה מותאמת אישית של IListSource. (תודה לתשובה זו על רעיון המפתח.) כאשר המשתמש לוחץ על כפתור "הדף הבא", BindingNavigator יורה את bindingsource1_CurrentChanged והקוד שלך יכול להביא את הרשומות הרצויות. הוראות:

  1. צור יישום של Windows Forms
  2. גרור אל הטופס BindingNavigator, DataGridView, ו- BindingSource
  3. החלף את Form1.cs בקוד הבא:

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

איך להשתמש בזה? הוסף את הקוד לעיל לפרויקט שלך, גרור את Supergrid ואת פקד ה- bindingnavigator לטופס הזכייה שלך.

ואתה מקבל דף Datagridview עם כריכת נתונים בלי למהר רב/

גישה נוספת לבעיה זו:

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

נסה זאת, קוד זה מיועד ל- OleDb, אך פועל גם לחיבורי SqlServer. האובייקט dt (DataTable) מלא בשורות דפים שנבחרו, בהנחה שהדף מתחיל באחד (לא 0)

במאמר זה יוסבר כיצד ליישם את Paging DataGridView ביישום Windows Forms (WinForms) באמצעות C# ו- VB.Net. לפקד DataGridView ביישום Windows Forms (WinForms) אין יכולות הדפסה ולכן יש ליישם הדפסה מותאמת אישית באמצעות הליך מאוחסן. ההליך המאוחסן מקבל PageIndex ו- PageSize כפרמטרי קלט על מנת להביא את הרשומות עבור אינדקס הדפים הרצוי. על מנת לאכלס את הביפר בקצה הקדמי, יש צורך במספר הרשומות הכולל בטבלה שאוחזר באמצעות הפרמטר RecordCount Output.

בתחילה הערך של PageSize מוגדר ל- 5 וה- PageIndex מוגדר כ- 1. הערך של הפרמטר Output RecordCount ו- PageIndex מועבר לשיטת PopulatePager (נדון בהמשך).

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


נתוני סטטיסטיקה חיוניים מוגבלים לשימוש

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

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

תיאורים של קבצי נתונים/פריסות רשומות

להלן תיאורי קובצי נתונים/פריסות רשומות לסוגים שונים של נתונים מוגבלים:

איך ליישם

מי שמעוניין לגשת למערכי נתונים מוגבלים חייב למלא את סמל pdf טופס סקירת הפרויקט [PDF & ndash 439 KB]. שלח בדוא"ל את הטופס המלא, יחד עם כל החומרים התומכים (ראה להלן), אל [email protected]

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

מועמדים לסטודנטים חייבים תמיד לכלול את הדברים הבאים:

  • קורות חיים של יועץ
  • מכתב תמיכה מיועץ
    • זה יכול להיות בצורה של מכתב חתום על נייר המכתבים של היועץ & rsquos (שניתן לצרף לבקשה כקובץ PDF) או הודעת דואר אלקטרוני שנשלחה ישירות מהיועץ ל- NCHS

    אי הכנסת כל המידע הנדרש המפורט לעיל ובבקשה תעכב את העיבוד.

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

    שימו לב: NCHS לא תקבל עוד בקשות המבוססות על טופס סקירת הפרויקטים הקודם (NAPHSIS).

    הכנת יישום מוצלח

    בקשות מתאימות יראו:

    • שימוש מיועד המתמקד במחקרי בריאות והגורמים המשפיעים על הבריאות
    • סבירות סבירה לתרום לידע בנושא בריאות

    סוגי הבקשות שאינן מתאימות כוללות:

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

    בקשות שהוגשו

    NCHS תעריך את בקשת הנתונים. אנא אפשר 4-6 שבועות לעיבוד. במהלך התהליך, בודקי NCHS עשויים לבקש מידע נוסף מהפונה באמצעות דואר אלקטרוני, אנא בדוק את הודעות הדוא"ל שלך והגיב על כל שאלה NCHS במהירות האפשרית כדי למנוע עיכובים נוספים.

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

    אם תידחה, תימסר למבקש הסיבות (ים) לדחייה.

    אם לא קיבלת הודעה על החלטה לאחר 4-6 שבועות, תוכל לבדוק את סטטוס הבקשה שלך. אנא העבר את הבקשה המקורית שלך ובקש עדכון סטטוס באמצעות דוא"ל ל- NCHS בכתובת [email protected]

    תנאי שימוש לנתונים מוגבלים

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


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

    אתה צריך שלושה פיסות מידע מהבקשה (או מוגדר לערכי ברירת מחדל):

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

    מספר הדף והגודל נותנים לך את ערכי ה"דילוג "וה"קח" שלך:

    לאחר מכן תוכל להביא את התוצאות באמצעות:

    כאשר השאילתה היא IQueryable - יש להשתמש ב- DbSet שלך ישירות או להחיל את DbSet עם סעיף Where, OrderBy וכו '.

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

    טיפ למקצוענים, תוכל להקביל את שתי השאילתות (תוצאות ומספר כולל) על ידי ביצוע:

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

    בכל מקרה, ברגע שיש לך את הספירה:

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

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


    תצוגות דף ותצוגות מסך

    צפיות בדפים ב- Universal Analytics מתורגמות לאירוע page_view בנכסי Google Analytics 4. אירוע page_view מופעל באופן אוטומטי על ידי קטע הקוד "config" gtag.js או על ידי תג תבנית התצורה של Google Analytics 4 ב- Google Tag Manager.

    בחלק ממאפייני תצוגת הדף של Universal Analytics יש מקבילות Google Analytics 4, כפי שמוצג להלן:

    תכונת תצוגת דף ב- Universal Analytics

    תכונת תצוגת דף ב- Google Analytics 4

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


    סקירה כללית של תנאים כרוניים

    משרד נתוני הארגון וניתוחי המרכזים למרכז שירותי Medicare ו- Medicaid Services (CMS) פיתח קבוצה של מוצרי מידע וניתוחים הבוחנים מצבים כרוניים בקרב מוטבי תשלום עבור שירות. OEDA מייצרת מידע זה כדי לספק לחוקרים ולקובעי המדיניות הבנה טובה יותר של נטל התנאים הכרוניים בקרב המוטבים וההשלכות על מערכת הבריאות שלנו. מידע על שכיחות, ניצול והוצאות Medicare עבור מצבים כרוניים ספציפיים ומצבים כרוניים מרובים מדגים את הנטל הכולל ומורכבות של מצבים כרוניים בקרב מוטבי Medicare וניתן להשתמש בו לזיהוי מוטבי Medicare בסיכון גבוה, כמו גם להודיע ​​לקובעי מדיניות ולספקים אודות משאבים שימוש בחולים עם מחלות כרוניות.

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


    אנו מציעים 15+ כלים חברתיים ושיווקיים המסייעים ביצירת קשרים עמוקים יותר עם הקהל שלכם ועוזרים להעביר אותם ממבקר חדש ללקוח חוזר.

    "AddThis הציע בדיוק את מה שחיפשנו. הכלים היו קלים ליישום ולבדיקה, והתחלנו לראות תוצאות באופן מיידי. עובדה היא שאנחנו מנצחים את סך כל השנה שעברה רק 6 חודשים בשנה!"

    בריאן גרהרדשטיין
    מנהל מדיה מקוון, מסילות למסלולים


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

    הערה: תשובות אלה ניתנו על ידי הודעות סטודנטים לפורום בשנים האחרונות, או על ידי המרצה. הם נועדו כמדריך לתשובות הנכונות. תודה רבה למי שתרם.

    לשאלות ללא תשובות, פרסם את ניסיונותיך בפורום ואני אתקן אותן.

    תשובות לנייר לדוגמא.

    & bull גודל עמוד קטן יותר מוביל לטבלאות דפים קטנות יותר & ndash False & ndash זקוקים לערכים נוספים מכיוון שיש לנו יותר דפים
    & bull גודל עמוד קטן יותר מוביל ליותר החמצות TLB & ndash True & ndash פחות סביר שדף יכלול כתובת שאנו מחפשים.
    & bull גודל עמוד קטן יותר מוביל לפחות תקלות בדף & ndash True

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

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

    & bull גודל עמוד קטן יותר מפחית את תפוקת הקלט/פלט של הדפים & ndash True
    & bull Threads זולים יותר ליצירה מאשר תהליכים & ndash True
    שרשורים המתוזמנים על ידי & bull זולים יותר ליצירה מאשר שרשורים ברמת המשתמש & ndash False
    & bull A חוסם מתוכנן של ליבה חוסם את כל האשכולות בתהליך & ndash False. זה נכון לשרשורים ברמת המשתמש
    & bull Threads זולים יותר למעבר הקשר מאשר תהליכים & ndash True & ndash לא צריך לשמור את שטח הכתובת
    שרשור חוסם ברמת משתמש חוסם את התהליך - נכון
    & bull שרשורים שונים ברמת משתמש של אותו תהליך יכולים להיות בעלי עדיפויות תזמון שונות & ndash False. שרשורים ברמת המשתמש אינם מתוזמנים, הם מניבים () את המעבד
    & bull כל האשכולות המתוזמנים על ידי הליבה של תהליך חולקים את אותו שטח כתובת וירטואלי & ndash True
    & bull האלגוריתם להחלפת הדפים האופטימלי הוא הבחירה הטובה ביותר בפועל & ndash False - אי אפשר ליישם אותו
    & bull מערכת ההפעלה אינה אחראית על הקצאת משאבים בין תהליכים מתחרים & ndash False & ndash היא אחראית לכך
    & bull שיחות מערכת אינן משתנות למצב הרשאות של המעבד & ndash False & ndash אנו מלכדים את הגרעין ולכן אנו משנים את מצב ההרשאה
    & bull פרוטוקול האימות Challenge-Response חשוף להתקפות חוזרות של פולשים שחוטפים ברשת & ndash False
    & bull מתזמן המעדיף תהליכי I/O כפופים בדרך כלל לא מעכב באופן משמעותי את השלמת התהליכים הקשורים ל- CPU & ndash True & ndash תהליכי הקלט/פלט מקבלים את ה- I/O ולאחר מכן מניבים את המעבד שוב.
    ש 2 א)

    99 להיטי TLB, שזקוקים לגישה אחת לזיכרון בלבד (הדרושה בפועל)

    .0095 החמצת TLB, קריאה אחת מהזיכרון בכדי לגרום לערך טבלת העמודים לטעון TLB, ולאחר מכן קרא אחד לקריאת הזיכרון האמיתי.

    .0005 pagefault plus קריאה בסופו של דבר מהזיכרון ועוד משהו כמו אחד מהבאים (הייתי לוקח כמה וריאציות כאן)

    1) הפניה לזיכרון לעדכון טבלת הדפים
    2) הפניה לזיכרון לעדכון טבלת הדפים והתייחסות זיכרון לחומרה כדי לקרוא מחדש את אותו ערך למילוי TLB.
    3) כל scebario סביר שמביא לטבלת עמודים תקפה ומלא TLB מחדש.

    אני מניח אפשרות 2 לתשובה סופית

    .99 * 100ns + .0095 * 2 * 100ns + .0005 (3 * 100ns + 5ms)

    תהיה תשובה אחת שהייתי מקבל.

    i) הזמנת FCFS עברה: 119,58,114,28,111,55,103,30,75
    מסלולים חצו: 547
    ii) הזמנת SSTF עברה: 75,58,55,30,28,103,111,114,119
    מסלולים חצו: 143
    iii) הזמנת SCAN עברה: 103,111,114,119,75,58,55,30,28
    מסלולים חצו: 130
    iv) הזמנת C-SCAN עברה: 103,111,114,119,28,30,55,58,75
    מסלולים חצו: 177

    Q5 ב)

    זה נמצא בהערות הרצאה מרובות תהליכים.
    http://cgi.cse.unsw.edu.au/

    רק כמה הערות שאולי טוב לציין

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

    מכאן לצמצם את מחלוקת האוטובוסים.
    & bull קרא לפני TSL
    & ndash ספין קורא את משתנה הנעילה
    מחכה שזה ישתנה
    & ndash כאשר זה קורה, השתמש ב- TSL כדי לרכוש
    המנעול
    & bull מאפשר לחלוק את הנעילה לקריאה בלבד
    בכל המטמון עד לשחרורו
    & ndash אין תנועת אוטובוסים עד השחרור בפועל
    & bull אין תנאי מירוץ, כרכישה
    עדיין עם TSL.

    תשובות לשאלות לדוגמא.

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

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

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

    i) הפשטות ברמה גבוהה
    למה?
    - ידידותי יותר למתכנתים
    - מספק ליבה משותפת לכל היישומים
    - מסתיר פרטי חומרה כדי להפוך את קוד היישום לנייד

    ii) מנהל משאבים
    למה?
    - מחלק משאבים בין תוכניות או משתמשים מתחרים על פי מדיניות מערכת כלשהי כדי להבטיח הוגנות וללא רעב במידת האפשר.


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

    התוכנית מרחב המשתמשים מבצעת קריאת פונקציות לספריית C, למשל. 'uptime', שמקים שיחת מערכת באופן המתאים לחומרה. על תכנית מרחב המשתמשים להגדיר פרמטרים כראוי ולאחר מכן ללכוד, כך שהגרעין ישתלט בשליטה ויעבד את הבקשה במרחב המשתמשים. ב- MIPS, הדבר מושג באמצעות הוראת syscall.
    לאחר שליטת הליבה, מצב המשתמש נשמר. הגרעין מבצע בדיקות אבטחה ושפיות הכרחיות, ולאחר מכן מנסה למלא את הבקשה. במקרה של 'זמן פעולה', הוא יעתיק את הערך של מונה, שככל הנראה סופר שניות מאז ההפעלה. מצב המשתמש משוחזר, הדלפק מונח זאת בערימה או רישום ומתחזר למרחב המשתמשים. שגרת הספרייה C קוראת את הערימה / הרשמה שהגרעין כתב זה עתה, ומחזירה אותה לתוכנית מרחב המשתמשים.

    cs3231/07s1/הרצאות/lect03.pdf
    הכל קשור לשיחות מערכת, ויש לו את המידע הנדרש.
    בעמוד 63 יש תרשים נחמד של המנהלים.

    השלבים עשויים להיות:
    - הגדר את הארגומנטים הנדרשים ל- syscall
    - הפעלת syscall שיחה
    & ndash שנה לערימת הליבה
    & ndash שמור את הרשמים על ידי שמירה בזיכרון (הערימה)
    & ndash השאר רשומות שמורות במקום נגיש
    & bull קרא טיעונים
    ערכי החזרה של & bull Store
    & ndash בצע את & ldquoread () & rdquo
    & ndash שחזור רשמים
    & ndash חזור לערימת משתמשים
    & ndash חזור לאפליקציה


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

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

    א) הכתובת שניתנה על ידי האפליקציה ככתובת הקלט או הפלט יכולה להיות
    - כתובת של אזור זיכרון בלתי חוקי
    - כתובת של אזור משפטי שעובד לדיסק

    ב) או, יכול להשתנות אם היישום מרובה שרשורים.

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


    4. האם הצבת בדיקות אבטחה בספריית C היא רעיון טוב או רע? למה?

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

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

    6. תכנות רב (או ריבוי משימות) מאפשר לכאורה לבצע יותר מתהליך אחד בו זמנית. איך זה מושג על unproroessor?

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

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

    7. מהו תהליך? מהן התכונות של תהליך?

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

    1. תוכנית בביצוע
    2. מופע של הפעלת תוכנית
    3. בעל המשאב המוקצה לביצוע התוכנית
    4. משימה או עבודה
    5. להקיף שרשור אחד או יותר

    תכונה של תהליך:
    מרחב כתובת
    קבצים פתוחים - (אפשר לטעון שהם חלק מהמשאבים)
    מזהה תהליך
    קבוצת תהליכים
    תהליך הורים
    אותות
    וכו '

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

    אם מערכת ההפעלה אינה תומכת ביישומים מרובי שרשורים, אז תכונות האשכול הופכות לתכונות תהליך.

    8. מה תפקידו של התור המוכן?

    9. מה הקשר בין חוטים ותהליכים?

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

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

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

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

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

    11. ציין כמה יתרונות וחסרונות של שרשורים ברמת המשתמש.

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

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

    12. מדוע חבילות שרשורים ברמת משתמש מתוזמנות בדרך כלל בשיתוף פעולה?

    13. ספר את היתרונות והחסרונות של תמיכה ביישומים מרובי שרשורים עם שרשורים ברמת הליבה.

    1. בהנחה שחבילת thread-user משתפת פעולה, אין צורך לכתוב תוכניות משתמש עם תשואות בכל מקום
    2. מובטחת לכל שרשור זמן ביצוע לא מבוטל (עד כמה שהמערכת ההוגנת היא הוגנת)
    3. תוכניות מרחב המשתמשים אינן דורשות בדיקה נוספת סביב חסימת i/o כדי להימנע מכך - כלומר, ניתן לתזמן שרשורים מוכנים אחרים בתוך התהליך אם החוט הפועל חוסם בשיחת מערכת או בתקלה בדף.
    4. ריבוי משימות בפירוט נמוך, נותן אשליה של מקביליות
    5. יכול לנצל מעבדים מרובים, מכיוון שהגרעין יכול לשלוח שרשורים למעבד אחר כפי שהוא רואה לנכון
    1. על תוכנית המשתמשים להשתמש במנעולים ובמוטקסים כראוי סביב חלקים קריטיים, מכיוון שהיא לא יכולה לשלוט מתי יתרחש החלפת הקשר (. אבל אז מה)
    2. הקוד פחות נייד מכיוון שזה דורש תמיכה במערכת ההפעלה
    3. לא יכול לבחור את אלגוריתם התזמון
    4. ניהול האשכולות (יצירה, מחיקה, ect) הוא יקר יותר מכיוון שהוא דורש כעת שיחות מערכת

    14. תאר רצף את רצף הצעדים המתרחשים כאשר מתרחשת הפסקת טיימר המביאה בסופו של דבר למעבר הקשר ליישום אחר.

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

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

    לקבלת דוגמא אמיתית לפונקציה כזו, עיין בקוד OS/161 mips_switch

    באופן כללי, קוד שפת ההרכבה מסוג swith עושה:

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

    16. מהו תנאי מירוץ? תן דוגמא.

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

    דוגמה לכך תהיה שני תהליכי עדכון מונה בו זמנית. נניח שלמדד יש ערך 1. תהליך א קורא את המשתנה אך לפני עדכון תהליך ב קורא ומעדכן את המונה ל 2. תהליך א ', מבלי לדעת מה תהליך ב' עושה, מעדכן את המונה ל 2. ההתנהגות הנכונה של התוכנית תגדיל את המונה ל -3, לא 2.

    17. מהו אזור קריטי? כיצד הם מתייחסים לשליטה בגישה למשאבים משותפים?

    18. מהן שלוש הדרישות של כל פתרון לבעיית החלקים הקריטיים? מדוע הדרישות נחוצות?

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

    19. מדוע הפיתור עובר פתרון גרוע לבעיית הסעיפים הקריטיים?

    20. הפסקת השבתה ומאפשרת היא גישה נפוצה ליישום הדרה הדדית, מה היתרונות והחסרונות שלה?

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

    21. מהי הוראת בדיקה והגדרה? כיצד ניתן להשתמש בו ליישום הדרה הדדית? שקול להשתמש בהסבר של שפת הרכבת psuedo-assembling.

    Test and set היא הוראה אטומית (כלומר בלתי ניתנת להפרעה) שתמיד מחזירה את התוכן של מיקום הזיכרון שנבדק, ובנוסף קובעת את המיקום ל- 1 אם (ורק אם) מיקום הזיכרון מכיל 0.

    הערות הרצאה:
    אזור_קריטי_אזור:
    tsl register, lock // נסה להגדיר את הנעילה והעתק את הנעילה ל- 'register'
    cmp register, 0 // אם הרישום הוא אפס
    jne critical_region // אז אנחנו לא מחזיקים את המנעול.
    ret // לחזור למתקשר לאחר ביצוע האזור הקריטי

    אזור_עזוב:
    העבר 0, נעל // הגדר את הנעילה לאפס כדי לשחרר אותו.
    לְהַשְׁרוֹת

    22. מה הבעיה של הצרכן המפיק? תן דוגמה להתרחשותה במערכות הפעלה.

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

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

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

    23. סמפור הוא פרימיטיבי סנכרון חוסם. תאר כיצד הם פועלים בעזרת פסאודו-קוד. אתה יכול להניח שיש קיום של thread_block () ופונקציה thread_wakeup ().

    לסמפור יש שתי פעולות: Verhogen ו- Proberen, תוספת וירידה
    P (הפחתה) מפחית באופן אטומי מונה ב -1 אם זה מניע אותו שלילי, הוא חוסם עד שהמונה הוא לפחות 0.
    V (הגדלה) מגדילה באופן אטומי מונה ב -1 ומעירה חוטים ישנים על סמפור זה.

    הפרעות מושבתות סביב אזורי קוד אלה כך שהן אטומיות.

    Psuedocode:
    P:
    // בעוד שהירידה תגרום לזה להיות שלילי, לישון.
    ספירה למחצה--
    while (sem.count & lt 0) <
    הוסף תהליך זה לתור סמפור
    thread_block ()
    >

    V:
    // להגדיל ולהעיר שרשורים אחרים
    sem.count ++
    אם (sem.count & lt = 0) <
    הסר את ראש תור הסמפור
    thread_wakeup (ראש)
    >

    24. תאר כיצד ליישם מנעול באמצעות סמפורות.

    מנעול באמצעות סמפורות מושגת על ידי אתחול הסמפור ל- 1. ספירת הסמפור היא למעשה המספר שניתן להתיר לפני שמניעים יותר כניסה, כך שאם הוא 1 הוא פועל כמנעול. לְמָשָׁל.:

    / * הפחתת סמפור (רכישת מנעול) */
    P (sem)

    / * increment sem (נעילת שחרור) */
    V (sem)

    25. מה הם צגים ומשתני מצב?

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

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

    26. מהו מבוי סתום? מהי התחלה? במה הם נבדלים זה מזה?

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

    דוגמה עם גודל קבוע של 2 <1,2>: אשכול 1 זקוק למשאב A ו- B כדי להמשיך, הוא מחזיק א. אשכול 2 זקוק למשאב A ו- B כדי להמשיך, הוא מחזיק B. שניהם חוסמים את המשאב שהם צריכים. ואינם יכולים לשחרר את מה שהם מחזיקים.

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

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

    27. מהן ארבעת התנאים הנדרשים בכדי להתרחש במבוי סתום?

    28. תאר ארבע אסטרטגיות כלליות להתמודדות עם סתימות.

    1) תתעלם מזה
    - קל
    - במיוחד אם שאר האסטרטגיות יקרות מאוד, ומבוי סתום הוא מקרה נדיר

    איתור:
    - עשה דפי מתמטיקה
    - ועוד קצת מתמטיקה
    - ואז עוד קצת
    - או אולי לחקור גרף
    - עם מתמטיקה

    להתאושש:
    - או שתגנוב משאבים הניתנים לניסיון או שתנסה לשמור מצבי תהליכים תקפים ותחזור אליהם
    - נראה מסובך.

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

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

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

    30. האם המערכת הבאה של ארבעה תהליכים עם 2 משאבים סתומה?

    מטריצת הקצאה נוכחית
    P1 1 3
    P2 4 1
    P3 1 2
    P4 2 0

    מטריצת הבקשה הנוכחית
    P1 1 2
    P2 4 3
    P3 1 7
    P4 5 1


    תן 1 2 ל- P1:
    מטריצת הקצאה נוכחית
    P1 2 5
    P2 4 1
    P3 1 2
    P4 2 0
    מטריצת הבקשה הנוכחית
    P1 0 0
    P2 4 3
    P3 1 7
    P4 5 1
    זמינות
    0 2

    P1 מסיים, משחרר 2 5.
    מטריצת הקצאה נוכחית
    P2 4 1
    P3 1 2
    P4 2 0
    מטריצת הבקשה הנוכחית
    P2 4 3
    P3 1 7
    P4 5 1
    זמינות
    2 7

    תן 1 7 ל- P3:
    מטריצת הקצאה נוכחית
    P2 4 1
    P3 2 9
    P4 2 0
    מטריצת הבקשה הנוכחית
    P2 4 3
    P3 0 0
    P4 5 1
    זמינות
    1 0

    P3 מסיים, משחרר 2 9:
    מטריצת הקצאה נוכחית
    P2 4 1
    P4 2 0
    מטריצת הבקשה הנוכחית
    P2 4 3
    P4 5 1
    זמינות
    3 9

    כעת אין בקשה אפשרית שניתן למלא, ולכן היא סתומה.


    אם וקטור הזמינות הוא להלן, האם המערכת למעלה עדיין חסומה?
    2 3

    תרחיש 2:
    מטריצת הקצאה נוכחית
    P1 1 3
    P2 4 1
    P3 1 2
    P4 2 0
    מטריצת הבקשה הנוכחית
    P1 1 2
    P2 4 3
    P3 1 7
    P4 5 1
    זמינות וקטור
    2 3

    תן 1 2 ל- P1:
    מטריצת הקצאה נוכחית
    P1 2 5
    P2 4 1
    P3 1 2
    P4 2 0
    מטריצת הבקשה הנוכחית
    P1 0 0
    P2 4 3
    P3 1 7
    P4 5 1
    זמינות וקטור
    1 1

    P1 מסיים, משחרר 2 5:
    מטריצת הקצאה נוכחית
    P2 4 1
    P3 1 2
    P4 2 0
    מטריצת הבקשה הנוכחית
    P2 4 3
    P3 1 7
    P4 5 1
    זמינות וקטור
    3 6

    עכשיו אין שום דבר מספק. סגור

    תרחיש 3: האם המערכת סתומה אם הזמינות היא
    2 4

    מטריצת הקצאה נוכחית
    P1 1 3
    P2 4 1
    P3 1 2
    P4 2 0
    מטריצת הבקשה הנוכחית
    P1 1 2
    P2 4 3
    P3 1 7
    P4 5 1
    זמינות וקטור
    2 4

    תן 1 2 ל- P1
    מטריצת הקצאה נוכחית
    P1 2 5
    P2 4 1
    P3 1 2
    P4 2 0
    מטריצת הבקשה הנוכחית
    P1 0 0
    P2 4 3
    P3 1 7
    P4 5 1
    זמינות וקטור
    1 2

    P1 מסתיים ומשחרר 2 5
    מטריצת הקצאה נוכחית
    P2 4 1
    P3 1 2
    P4 2 0
    מטריצת הבקשה הנוכחית
    P2 4 3
    P3 1 7
    P4 5 1
    זמינות וקטור
    3 7

    הפעל P3 (מהדורות 1 2):
    מטריצת הקצאה נוכחית
    P2 4 1
    P4 2 0
    מטריצת הבקשה הנוכחית
    P2 4 3
    P4 5 1
    זמינות וקטור
    4 9

    הפעל P2 (מהדורות 4 1):
    מטריצת הקצאה נוכחית
    P4 2 0
    מטריצת הבקשה הנוכחית
    P4 5 1
    זמינות וקטור
    8 10

    ואז P4 יכול לרוץ. המערכת לא סתומה.

    א) חפש תהליך שהבקשות שלו & lt = הזמינות.
    אנו יודעים שאז נוכל לספק את הדרישות לתהליך זה, ולכן אנו מניחים שהוא מקבל את משאביו הנדרשים ומסתיים. כך, אנו יכולים

    ב) שחרר את כל המשאבים * המוקצים כעת * לתהליך זה, והוסף אותם למאגר.

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

    31. בהנחה שמערכת ההפעלה מזהה את המערכת במבוי סתום, מה יכולה מערכת ההפעלה לעשות כדי להתאושש ממבוי סתום?

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

    32. מה חייב האלגוריתם של הבנקאי לדעת מראש על מנת למנוע מבוי סתום?

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

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

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

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

    הערה: הימנעות ממבוי סתום באמצעות הקצאה זהירה (למשל אלגוריתם בנקאי) אינה מניעה, היא הימנעות.

    34. מערכות קבצים יכולות לתמוך בקבצים דלילים, מה זה אומר? תן דוגמה לארגון הקבצים של יישום שעשוי להרוויח מתמיכת קבצים דלילה של מערכת קבצים.

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

    יישומי מסד נתונים מסוימים המחפשים קיזוזים גדולים המתקבלים מערכי hash גדולים עשויים להועיל לקבצים דלילים.

    35. תן דוגמה לתרחיש שעשוי להרוויח ממערכת קבצים התומכת בכתיבת גישה לצירוף בלבד.

    36. תן תרחיש שבו בחירה בגודל בלוק גדול של מערכת קבצים עשויה להיות יתרון תן דוגמה שבה זה עלול להפריע.

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

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

    37. תן דוגמה שבה ניתן להשתמש בהקצאה רציפה של בלוקי קבצים בדיסקים.

    38. איזה דפוס גישה לקבצים מתאים במיוחד להקצאת קבצים כבולים בדיסק?

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

    39. איזו אסטרטגיית הקצאת קבצים מתאימה ביותר לקבצי גישה אקראית?

    40. השווה הקצאה מבוססת מפת סיביות של בלוקים בדיסק עם רשימת בלוקים בחינם.

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

    הקצאה רציפה קלה יותר לביצוע/למצוא בעזרת מפת סיביות.

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

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

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

    הם יכולים להיות שווים רק עם הפשרה הנכונה של המקרים הנ"ל.

    42. מדוע הבלוקים הישירים עלולים להיות מאוחסנים במתקן עצמו?

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

    44. מהו גודל הקובץ המרבי הנתמך על ידי מערכת קבצים עם 16 בלוקים ישירים, חד -כיווני, משולש? גודל הבלוק הוא 512 בתים. ניתן לאחסן מספרי בלוק דיסק ב -4 בתים.

    מספר מספרי הבלוקים בבלוק כיוון
    = גודל בלוק / 4
    = 128

    מספר הבלוקים לנתוני הקבצים באותו אובייקט קובץ

    = 16 + 128 + 128^2 + 128^3
    גודל קובץ מקסימלי:
    (ישיר + עקיף יחיד + עקיף כפול + עקיף משולש) * (גודל חסימה)
    = (16 + 512/4 + (512/4)^2 + (512/4)^3) * (512)
    = 68853964800 בייט,

    45. מערכת הקבצים המהירה ביותר (ו- Linux Ext2fs) משתמשים ברעיון של קבוצות חסימות. תאר מהו הרעיון הזה ואילו שיפורים יש לקבוצות חסימות על פני פריסת מערכת הקבצים הפשוטה של ​​מערכת הקבצים System V (s5fs).

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

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

    46. ​​מהו שדה ספירת ההתייחסות באנודה? עליך לשקול את הקשר שלו לערכי ספריות שבהם אתה עונה.

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

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

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

    48. מה עושה flushd במערכת UNIX?

    מדי פעם מסנכרן (כותב) בלוקים מלוכלכים לדיסק (כל 30 שניות) כדי למנוע אובדן נתונים משמעותי בעת כיבוי מערכת הפעלה בלתי צפויה/הפסקת חשמל.

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

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

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

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

    סביר יותר שחלוקה סטטית סובלת מקרע פנימי.
    סביר יותר שחלוקה דינאמית תסבול מפירוק חיצוני.

    51. רשום ותיאר את ארבעת האלגוריתמים של הקצאת הזיכרון המכוסים בהרצאות. אילו שניים מתוך הארבעה נפוצים יותר בפועל?

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

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

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

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

    בכושר הגרוע ביותר
    מוצא את ההתאמה הגרועה ביותר ברשימה כולה
    איטי יותר כשהוא מחפש את כל הרשימה. פיצול עדיין נושא.

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

    52. MMUs בגבול הבסיס יכולים לתמוך בהחלפות. מה זה החלפה? האם החלפה יכולה לאפשר יישום הדורש 16M זיכרון לפעול במכונה עם 8M RAM?

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

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

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

    לכל תהליך יש טבלת עמודים משלו, המהווה מיפוי בין דפים וירטואליים ומסגרות פיזיות. דף הוא נתח של זיכרון וירטואלי (בדרך כלל 4KB) הקיים בתוך שטח הזיכרון הווירטואלי של התהליכים. זה ממופה למסגרת פיזית (4KB של 1s ו- 0s ב- RAM) באמצעות טבלת עמודים.

    התוכנית נתונה באשליה של ריצה במרחב כתובות משלה. הוראות המעבד מבצעות את התוכנית, שתבצע בקשות זיכרון לכתובות וירטואליות. אלה מומרים לכתובות פיזיות על ידי חיפוש למעלה בטבלת הדפים, (ליתר דיוק ה- buffer Lookaside Translation (TLB)), ואז ניגשים לזיכרון הפיזי.

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

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

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

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

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

    כמו כן, הדפסה תומכת בהפעלת תהליך שהשימוש בו בזיכרון וירטואלי גדול מהגודל של זיכרון RAM פיזי במכונה.

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

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

    הוראה נראית כך:
    תפעול, מה שלא יהיה, מספר קטע, קיזוז.

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

    56. מהו חיץ מבט לתרגום לתרגום? מה מכיל כל ערך שהוא מכיל?

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

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

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

    57. כמה TLB תומכים בזיהוי מרחבי כתובות (ASIDS), מדוע?

    58. לתאר טבלת דפים דו-רמדית? כיצד הוא משתווה למערך טבלאות דפים פשוט?

    עבור שטח כתובת וירטואלי 32 ביט (4 ג'יגה -בתים), עם עמודים/מסגרות 4K:
    טבלת עמודים דו -מפלסית משתמשת בכיוון כדי לחסוך בזיכרון ועל חשבון הזמן. טבלת הדפים ברמה העליונה (מערך של 1024 מצביעים למערכים ברמה 2) תתווסף לאינדקס כך שהסיביות המשמעותיות ביותר של הכתובת הווירטואלית (VADDR [31:22]) משמשות לחיפוש המערך בן שתי רמות ( של רשומות בטבלאות עמודים - מספרי מסגרות והרשאות), שבהן חלק מהסיביות הפחות משמעותיות של VADDR [21:12] משמשות לאינדקס הטבלה הזו.

    זה עדיף על מערכי טבלאות דפים פשוטים מכיוון שהוא מאפשר להשמיט דפים ברמה השנייה אם אין צורך בהם. זה גם אומר שאין צורך במערך ארוך עד כדי גיחוך. 2^20 ערכי טבלאות עמודים, 4 בתים כל אחד, הם 2^22 בתים, הוא זיכרון של 4MB הנדרש בכדי להכיל טבלת עמודים ברמה אחת. אם ניתן להחליף את טבלת הדפים עצמה, מדובר בלהיט דיסק גדול. אם לא, 4MB חייב להיות תושב בזיכרון הפיזי כמקטעים רציפים, מה שעלול לגרום לפיצול.

    טבלת הדפים של 2 רמות איטית יותר לחיפוש מכיוון שהיא דורשת 2 הפניות לזיכרון לכל חיפוש.
    נניח שקיבלנו כתובת וירטואלית של 32 סיביות וגודל דף 4k, טבלה A ברמה העליונה וטבלה B ברמה השנייה, 10 הראשונות הן לאתר את אינדקס A, ו -10 סיביות הבאות הן הקיזוז לאיתור אינדקס B, באמצעות התוכן של A לאיתור כתובת הבסיס של ה- B, ובתוספת הקיזוז לאינדקס B, קיבלנו את אינדקס המסגרת הפיזית ואז השתמשנו ב -12 הסיביות האחרונות בתוכן ה- B, לבסוף הכתובת הפיזית שנמצאה.

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

    59. מהי טבלת דפים הפוכים? כיצד הוא משתווה לטבלת דפים דו-רמדית?

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

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

    60. מה הם יישוב זמני ויישוב מרחבי?

    61. מהו מערך העבודה של תהליך?

    62. כיצד גודל הדף של ארכיטקטורה מסוימת משפיע על גודל ערכת העבודה?

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

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

    63. מה זה חבטות? איך זה עשוי להיות מזוהה? איך אפשר להתאושש מזה לאחר שזוהו?

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

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

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

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

    64. ספרו כמה יתרונות וחסרונות להגדלת גודל העמוד.

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

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

    65. תאר שתי מדיניות אחזור דף זיכרון וירטואלי. מה פחות נפוץ בפועל? למה?

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

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

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

    67. תן שם ותיאר ארבעה אלגוריתמים להחלפת עמודים. השווה אותם ביקורתית זה עם זה.

    מהטוב לגרוע (הערות הרצאה):

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

    2) לפחות לאחרונה בשימוש - חשב את כל הדף שלא נעשה בו הכי הרבה זמן, והפעל אותו. בלתי אפשרי ליישם ביעילות בפועל - דורש חותמת זמן על כל הפניה לזיכרון.

    3) החלפת דף שעון - הגדר סיביות 'הפניה' ל -1 כאשר משתמשים במשהו. כאשר אתה מחפש ערך לאתחול, הגדר את הסיביות האלה ל -0 אם הן 1, ובעט ב -0 המועמד הראשון שנמצא. לחדש את החיפושים מהאתחול האחרון. קירוב יעיל (בר ביצוע) של LRU - בשימוש בפועל.

    4) FIFO - הסר את הדף שהיה שם הכי הרבה זמן - אינו מתחשב בשימוש הזיכרון בפועל בהחלטתו - הוא יגרור את הדף הנפוץ ביותר במערכת.

    68. תאר חוצץ בתת מערכת I/O של מערכת הפעלה. תן סיבות למה זה נדרש, ותן מקרה שבו זה יתרון, ותיק שבו זה חיסרון.

    חוצץ במערכת המשנה i/o נדרש להתאים שתי ישויות כאשר יחידת ההעברה שונה (למשל עדכון בתים אחד בבלוק דיסק מחייב חוצץ בלוק הדיסק בזיכרון).

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

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

    69. בקרי התקנים בדרך כלל הופכים מורכבים יותר בפונקציונליות שהם מספקים (למשל חשבו על ההבדל בין יישום יציאה טורית עם כפפה הנשלטת על ידי המעבד ומתאם רשת מרובי ג'יגה-בייט עם מחסנית TCP/IP בכרטיס. עצמה). איזו השפעה עשויה להיות לכך על מערכת ההפעלה ועל ביצועי המערכת?

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

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

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

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

    71. הסבר כיצד הבעיה של יצרן-צרכן רלוונטית למערכת הפעלה/פלט של מערכת ההפעלה.

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

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

    72. מהו פריצת דיסק? איזו בעיה הוא מנסה לפתור?

    73. מהי הטיית גליל? איזו בעיה הוא מנסה לפתור?

    74. ציין ארבעה אלגוריתמים של תזמון זרועות דיסק. מתאר את האלגוריתם הבסיסי לכל אחד.

    75. מהן שלושת המטרות הכלליות של אבטחת מחשבים?

    76. איזה משלושת המטרות של אבטחת מחשבים היא ההתקפה הבאה על:

    א) חטטנות ברשת

    ב) מתקפת מניעת שירות מבוזרת

    ג) שינוי הציונים שלך במסד הנתונים של רשומות התלמידים

    77. תן דוגמה מדוע חשוב לשקול את המיומנות והמשאבים העומדים לרשות פולשים סבירים בעת תכנון מנגנוני אבטחת מחשבים ומדיניות להגנה מפני אותם פולשים?

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

    אם היריב הוא ממשלת ארה"ב, אז הסיסמאות לא יהיו להגנה מועטה.

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

    79. תאר מהי התקפת הצפת חיץ.

    80. מהו עקרון הפריבילגיה הפחות מיוחדת? מדוע מתקן השורש של setuid ב- UNIX מהווה הפרה של העיקרון? תן דוגמה ממחישה להפרה זו.

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

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

    JAVA:
    יתרון: היכולת לבדוק כתובות תקפות בזמן הריצה
    ניתוק: הפעל לאט בהשוואה להפעלת קוד מקורי

    ActiveX:
    יתרון: מהר יותר מאשר פרשנות
    ניתוק: אינו מגן על המשתמש מפני קוד רע/באגי

    82. מה ההבדל בין בקרת גישה חובה לבקרת גישה?

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

    83. מהן רשימות ובקרות גישה, וכיצד הן מתייחסות למודל מטריצת ההגנה של ייצוג סמכות במערכת.

    רשימות בקרת גישה מגדירות אילו משתמשים / תהליכים מסוגלים לבצע פעולות מסוימות במשאב. לדוגמה, הרשאות UNIX: קריאה, כתיבה, ביצוע. יכולות מגדירות, עבור כל משתמש / תהליך, אילו פעולות הוא יכול לבצע על משאבים שונים. שתי הדרכים לייצג את מודל מטריצת ההגנה של סמכות במערכת.

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

    84. הסבר כיצד קל יותר ליישם את עקרון הפריבילגיה הפחות מיוחדת במערכת מבוססת יכולות בהשוואה למערכת המבוססת על בקרת גישה.

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

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

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

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

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

    כדי להחיל את Principle of Least Privaledge על התהליך, יהיה עלינו להסיר את הזכות לתהליך זה לגשת לכל משאב אחד לפני זמן ההפעלה (זהו החלק הקשה). זה יביא לחיפוש אחר כל משאב שיש לתהליך גישה אליו (מאוד קשה לעשות עם ACL) ולאחר מכן לשנות כל משאב (גם זמן רב).

    הדרך הטובה יותר לעשות זאת תהיה עם יכולות.

    85. מהו בסיס מחשוב מהימן?

    בסיסי המחשוב המהימנים הם מכלול המרכיבים של המערכת שחייבים לסמוך עליו שיתנהג כראוי על מנת לאכוף את מדיניות האבטחה.

    מערכת ההפעלה כולה היא חלק מבסיס המחשוב האמין.

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

    86. מדיניות האבטחה רב-רמה Bell-La Padula היא מדיניות אבטחה שנועדה לשמור על מידע סודי בסוד. תאר את הדגם כולל המאפיינים שיש להבטיח כדי לשמור על סודיות.

    87. מהו ערוץ סמוי?

    ערוץ סמוי הוא ערוץ תקשורת בלתי מורשה שניתן ליצור במערכת על ידי התבוננות ומניפולציה של מאפייני הביצועים הניתנים למדידה של המערכת. לְמָשָׁל קידוד נתונים באמצעות זמני נעילת אוטובוסים, למשל על ידי ייצוג ההיגיון 1 עם קריאה (גרימת חביון) ו- 0 ללא קריאה (ללא חביון).
    ערוץ סמוי הוא ערוץ תקשורת בלתי מורשה ומרומז שנוצר באמצעות השפעה והתבוננות במשאבים משותפים במערכת.

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

    88. באיזה מבין RAID 1 או RAID 5 היית משתמש בתרחישים הבאים ומדוע:

    א) מסד נתונים של עסקאות המבצע אלפי עדכונים רבים בשנייה.

    ב) שרת אינטרנט המשרת תוכן אינטרנט סטטי כמעט לחלוטין.

    א) מסד נתונים של עסקאות המבצע אלפי עדכונים רבים בשנייה.

    בעת שימוש במסד נתונים, הפשיטה המועדפת לשימוש תהיה RAID 1. הסיבה לכך היא כי ביצועי הכתיבה והעדכון של RAID 1 טובים מזה של RAID 5.

    ב) שרת אינטרנט המשרת תוכן אינטרנט סטטי כמעט לחלוטין.

    RAID 5 יהיה מועיל יותר כאן, מכיוון שניתן לגשת לנתונים במהירות. מכיוון שהדפים סטטיים, ובהנחה שאין מסד נתונים של backend, אין כתיבות אמיתיות לדיסק, פירוש הדבר שביצועי העדכון של RAID 5 אינם מהווים בעיה, וכדאי שתחסוך במספר הדיסקים ותשתמש ב- raid 5.

    89. השווה את RAID 0, RAID 1 ו- RAID 5 במונחים של שיפור ביצועים, יכולת עמידה בכשל ותקרת שטח דורשים ליישם את רמת RAID המסוימת.

    תיקון: ביצועי כתיבה raid1 & ביצועי כתיבה gt raid 5

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

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

    RAID 5, שוויון בלוקים מבוזר ?? raid5, כמו raid0, משפר את ביצועי הקריאה אם ​​הבקשות הן בדיסקים שונים. ביצועי הכתיבה גרועים מ raid 0, גרועים מדיסק בודד וגרועים מ raid 1. כל כתיבה דורשת: כתיבה לגוש, לאחר מכן קריאת הזוגיות לחישוב מחדש של הזוגיות, ולאחר מכן כתיבה לגוש השוויון. סף הכישלון טוב יותר מדיסק יחיד ופשיטה 0, יכול לסבול כשל בדיסק יחיד.

    90.מדוע באופן כללי נכון להעדיף תהליכי כניסת קלט/פלט על פני תהליכים הקשורים למעבד?

    91. מה ההבדל בין תזמון מנע לבין תזמון שאינו מונע? מה הבעיה עם האחרון?

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

    זמן התפנית הוא זמן השלמה - זמן הגשה.
    גם: זמן המתנה + זמן ריצה

    זמן תפנית ממוצע = סכום זמני התפנית / מספר תהליכים

    = ((זמן השלמה 1 - הגשה 1) + (זמן השלמה 2 - זמן הגשה 2). (ct n - st n)) / n

    נניח שזמן ההגשה = 0 לכולם

    = ((task1) + (task1 + task2) + (task1 + task2 + task3). sum (task1..taskn)) / n
    = (n task1 + n-1 task2 + n-2 task3. + 1 taskn) / n

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

    תהליך א 'מסתיים בזמן א', ב 'מסיים בזמן א'+ב ',' ב 'ב'+ג 'וכן הלאה
    זמן הסיבוב הוא אז: (4a+3b+2c+d)/4
    * ניתן לראות מהמשוואה למעלה כי a תורם הכי הרבה לזמן המפנה הממוצע, גם מכיוון a הוא הזמן הקצר ביותר ולכן SJF ממזער את זמן הסיבוב

    93. תאר את תזמון הסבב. מהו הפרמטר המשויך למתזמן? מה הבעיה בבחירת הפרמטר?

    תזמון רובין עגול מפעיל כל תהליך עבור timelice t, ואז מקדים אותו, מעמיד אותו בסוף תור מוכן. ואז מריץ את התהליך הבא עבור timeslice t.

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

    94. מתזמן UNIX המסורתי הוא מתזמן סביבונים מבוסס עדיפות (נקרא גם מתכנן רובין עגול רב-שכבתי). כיצד מתכנן המתזמן מעדיף עבודות קשורות קלט/פלט על פני עבודות ארוכות טווח הקשורות למעבד? '

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

    95. בלוח הזמנים של הגרלות עם 40 כרטיסים. כיצד אני מחלק את הכרטיסים בין 4 תהליכים (A, B, C, D) כך שכל תהליך מקבל 10%, 5%, 60%ו -25%בהתאמה?

    96. מה הבעיה שאליה מתכנן מתזמן שיתוף הוגן לטפל?

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

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

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

    98. מהו מתזמן EDF? מה היתרון שלה על פני מתזמן מונוטי תעריף?

    EDF מובטח לייצר לוח זמנים אפשרי אם ניצול המעבד הוא & lt = 100%

    RMS נותנת אחריות כזו רק אם הניצול קטן מזה שצוין בנוסחה בהערות ההרצאה, שהיא משמעותית פחות מ -100%

    99. תאר מדוע השימוש במנעולי ספינל עשוי להיות מתאים יותר מחסימת מנעולים במעבד מרובה בהשוואה למעבד אחד. האם יש פשרה בין ספינינג לחסימה על מעבד רב? לָדוּן.

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

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

    100. האם תור מוכן יחיד על מעבד מרובה הוא רעיון טוב? למה?

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

    101. מהו חוטינות. מדוע זה עשוי לשפר את הביצועים?

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


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

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