Download presentation
Presentation is loading. Please wait.
Published byTatum Watt Modified over 9 years ago
1
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations
2
236368 Emilia Katz, Shahar Dag2 אנו רוצים בסיס נתונים שימפה בין כתובות לעמודי מידע. אנו רוצים להגדיר נקודה בזמן (CheckPoint) בה יוקפא המידע. ניתן יהיה לשחזר את מצב המערכת למצבה בנקודת ההקפאה בעצם נקודת ההקפאה משמשת מעין גיבוי למצב המערכת עמודים 17-23 בספר של Zed שבאתר מערכת לניהול זיכרון
3
236368 Emilia Katz, Shahar Dag3 הגדרות כלליות למערכת נגדיר שני טיפוסי נתונים בסיסיים: ADDR, PAGE נגדיר את בסיס הנתונים שלנו כמיפוי בין הכתובות לדפים. הגדרה / סימון, בכל מקום נחליף את DATABASE במיפוי המערכת: Checksys = [ Working, Backup : DATABASE ] יש לדאוג לאיתחול של כל מרחב הכתובות לדפים ריקים
4
236368 Emilia Katz, Shahar Dag4 הגדרת המערכת הבסיסית ┌─── Access ──── Checksys a? : ADDR p! : PAGE ├────────── p! = Working(a?) └───────────── ┌─── Update ──── Checksys a? : ADDR p? : PAGE ├────────── └───────────── קבלת דף לקריאה, אין שינוי במצב המערכת עדכון דף במערכת
5
236368 Emilia Katz, Shahar Dag5 הגדרת המערכת הבסיסית (המשך) ┌─── Checkpoint ──── ├────────── └───────────── ┌─── Restore ──── ├────────── └───────────── יצירת גיבוי שחזור מצב המערכת
6
236368 Emilia Katz, Shahar Dag6 עידון נתונים (Data refinement) אנו נגדיר מחדש את מבנה הנתונים שלנו. ההגדרה החדשה תהיה מותאמת יותר לבעיה האמיתית. בעקבות שינוי מבנה הנתונים נצטרך להגדיר מחדש (חלק) מהפעולות של המערכת
7
236368 Emilia Katz, Shahar Dag7 עידון נתונים להחזיק שני עותקים מלאים של בסיס הנתונים התברר לנו כהחלטה יקרה. תופס הרבה מקום. לוקח הרבה זמן ליצור גיבוי במקום לשמור שני עותקים נשמור עותק אחד + רשימת שינויים
8
236368 Emilia Katz, Shahar Dag8 עידון הנתונים ┌─── Checksys1 ──── └───────────── ┌─── Abs ──── ├────────── └───────────── הסכמה המעודנת (קונקרטית) הגדרת הקשר בין שתי המערכות Master = [ master : DATABASE ] Changes = [ changes : ADDR PAGE ] הגיבוי שלנו רשימת השינויים מהגיבוי האחרון
9
236368 Emilia Katz, Shahar Dag9 הפעולות לאחר העידון ┌─── Access1 ──── ├────────── └───────────── ┌─── Update1 ──── ├────────── └─────────────
10
236368 Emilia Katz, Shahar Dag10 הפעולות לאחר העידון (המשך) ┌─── Checkpoint1 ──── ├────────── └───────────── ┌─── Restore1 ──── ├────────── └───────────── יצירת גיבוי שחזור מצב המערכת
11
236368 Emilia Katz, Shahar Dag11 עידון פעולות ללא עידון נתונים: נאמר כי פעולה קונקרטית (OP C ) מעדנת פעולה אבסטרקטית (OP A ) אם: 1.הפעולות פועלות על אותם המשתנים 2.ישימות – pre OP A ⊦ pre OP C 3.נכונות – (pre OP A ) OP C ⊦ OP A ונסמן זאת כך : OP A ⊑ OP C עם עידון נתונים: הפעולות פועלות על שני ייצוגים שונים של נתוני המערכת המקושרים ביניהם על ידי סכימת Abs. 1.ישימות – (pre OP A ) Abs ⊦ pre OP C 2.נכונות – (pre OP A ) Abs OP C Abs’ ⊦ OP A OP A is possible -> OP C is possible OP A was possible; OP C was performed -> the result of OP A holds
12
236368 Emilia Katz, Shahar Dag12 בדיקת כללי העידון ל Update כדי להראות כי Update ⊑ Update1 אנו צריכים להוכיח שני דברים: ישימות נכונות
13
236368 Emilia Katz, Shahar Dag13 בדיקת כללי העידון ל Update (המשך) ┌─── Update ──── ├────────── └───────────── ראשית נבחן את pre Update ┌─── pre Update ──── ├────────── └─────────────
14
236368 Emilia Katz, Shahar Dag14 בדיקת כללי העידון ל Update (המשך) נזכיר את כלל הצמצום: ( x:A · (x=T) P) (T A P[T/x]) ונקבל ┌─── pre Update ──── ├────────── └───────────── ┌─── pre Update ──── ├────────── └─────────────
15
236368 Emilia Katz, Shahar Dag15 בדיקת כללי העידון ל Update (ישימות) ישימות Pre Update Abs ⊦ pre Update1
16
236368 Emilia Katz, Shahar Dag16 בדיקת כללי העידון ל Update ( נכונות ) Pre Update Abs Update1 Abs’ Update נכונות Pre Update Abs Update1 Abs’ ⊦ Update, הבא נרשום את כל הפרדיקטים: ועכשיו נוכיח
17
236368 Emilia Katz, Shahar Dag17 הפעולות לאחר העידון (המשך) ┌─── Access1 ──── ├────────── └───────────── נחזור לסכמת הגישה מה הקשר בינה לבין הסכמה: ┌─── Access1_1 ──── ├────────── └─────────────
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.