Download presentation
Presentation is loading. Please wait.
1
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations
2
2 אנו רוצים בסיס נתונים שימפה בין כתובות לעמודי מידע. אנו רוצים להגדיר נקודה בזמן (CheckPoint) בה יוקפא המידע. ניתן יהיה לשחזר את מצב המערכת למצבה בנקודת ההקפאה בעצם נקודת ההקפאה משמשת מעין גיבוי למצב המערכת עמודים 17-23 בספר של Zed שבאתר מערכת לניהול זיכרון
3
3 הגדרות כלליות למערכת נגדיר שני טיפוסי נתונים בסיסיים: ADDR, PAGE נגדיר את בסיס הנתונים שלנו כמיפוי בין הכתובות לדפים. הגדרה / סימון, בכל מקום נחליף את DATABASE במיפוי כל הפונקציות האפשריות המערכת: Checksys = [ Working, Backup : DATABASE ] יש לדאוג לאיתחול של כל מרחב הכתובות לדפים ריקים
4
4 הגדרת המערכת הבסיסית ┌─── Access ──── Checksys a? : ADDR p! : PAGE ├────────── p! = Working(a?) └───────────── ┌─── Update ──── Checksys a? : ADDR p? : PAGE ├────────── └───────────── קבלת דף לקריאה, אין שינוי במצב המערכת עדכון דף במערכת
5
5 הגדרת המערכת הבסיסית (המשך) ┌─── Checkpoint ──── Checksys ├────────── └───────────── ┌─── Restore ──── Checksys ├────────── └───────────── יצירת גיבוי שחזור מצב המערכת
6
6 עידון נתונים (Data refinement) אנו נגדיר מחדש את מבנה הנתונים שלנו. ההגדרה החדשה תהיה מותאמת יותר לבעיה האמיתית. בעקבות שינוי מבנה הנתונים נצטרך להגדיר מחדש (חלק) מהפעולות של המערכת
7
7 עידון נתונים להחזיק שני עותקים מלאים של בסיס הנתונים התברר לנו כהחלטה יקרה. תופס הרבה מקום. לוקח הרבה זמן ליצור גיבוי במקום לשמור שני עותקים נשמור עותק אחד + רשימת שינויים
8
8 עידון הנתונים ┌─── Checksys1 ──── Master Changes └───────────── ┌─── Abs ──── ├────────── └───────────── הסכמה המעודנת (קונקרטית) הגדרת הקשר בין שתי המערכות Master = [ master : DATABASE ] Changes = [ changes : ADDR PAGE ] הגיבוי שלנו רשימת השינויים מהגיבוי האחרון
9
9 הפעולות לאחר העידון ┌─── Access1 ──── ├────────── └───────────── ┌─── Update1 ──── ├────────── └─────────────
10
10 הפעולות לאחר העידון (המשך) ┌─── Checkpoint1 ──── ├────────── └───────────── ┌─── Restore1 ──── ├────────── └───────────── יצירת גיבוי שחזור מצב המערכת
11
11 עידון פעולות ללא עידון נתונים: נאמר כי פעולה קונקרטית (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
12 בדיקת כללי העידון ל Update כדי להראות כי Update ⊑ Update1 אנו צריכים להוכיח שני דברים: ישימות Pre Update Abs ⊦ pre Update1 נכונות Pre Update Abs Update1 Abs’ ⊦ Update
13
13 בדיקת כללי העידון ל Update (המשך) ┌─── Update ──── Checksys a? : ADDR p? : PAGE ├────────── └───────────── ראשית נבחן את pre Update (להזכירכם יש לבצע הסתרת משתנים) ┌─── pre Update ──── ├────────── └─────────────
14
14 בדיקת כללי העידון ל Update (המשך) נזכיר את כלל הצמצום: ( x:A · (x=T) P) (T A P[T/x]) ונקבל ┌─── pre Update ──── Checksys a? : ADDR p? : PAGE ├────────── └───────────── ואם עוד קצת מאמץ נקבל ┌─── pre Update ──── Checksys a? : ADDR p? : PAGE ├────────── └─────────────
15
15 בדיקת כללי העידון ל Update (ישימות) ישימות Pre Update Abs ⊦ pre Update1
16
16 בדיקת כללי העידון ל Update ( נכונות ) Pre Update: true Abs: Backup = Master Working = Master Changes Update1: Master’ = Master Changes’ = Changes {a? ↦ p?} Abs’: Backup’ = Master’ Working’ = Master’ Changes’ Update: Working’ = Working {a? ↦ p?} Backup’ = Backup נכונות Pre Update Abs Update1 Abs’ ⊦ Update, הבא נרשום את כל הפרדיקטים: ועכשיו נוכיח
17
17 הפעולות לאחר העידון (המשך) ┌─── Access1 ──── Checksys1 a? : ADDR p! : PAGE ├────────── p! = (Master Changes)(a?) └───────────── נחזור לסכמת הגישה מה הקשר בינה לבין הסכמה: ┌─── Access1_1 ──── Checksys1 a? : ADDR p! : PAGE ├────────── a? dom(changes) p! = Changes(a?) a? dom(changes) p! = Master(a?) └─────────────
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.