OS/2 – מאפיינים, פונקציות ויישומים

ההחלטה לכתוב ספר זה היתה החלטה קלה. מאחר ואנו, הכותבים, אנשי מפתח בקבוצת הפיתוח של מערכת ההפעלה OS/2, מצאנו את עצמנו עם כמות אדירה של ידע מעמיק ורחב יריעה על המוצר. – ISBN 965-361-004-x

OCR (הסבר)
מנהל התצוגה מנהל בסיס הנתונים המערכת האישית 28/2 ספרי לימוד והכשרה במדעי המחשב הוצאת הודיעמי עורך: יצחק עמיהוד תרגום: חיים פליכה עריכה לשונית ועיצוב: שרה עמיהוד )2 מאפיינים, פונקציות ויישומים ג'פרי י. קרנץ אנה מ. מיזל רוברט ל. וויליאמס חברים בצוות הפיתוח של 08/2 נספחים: מנהל התצוגה מנהל בסיס הנתונים המערכת האישית 28/2 ספרי לימוד והכשרה במדעי המחשב הוצאת הודיעמי )2 5 6מה 601085מט1 ,1696005 2תםא .1 ע60ת1611 11 א תתה 5 .1 +זסססת סח| ,חס 8 עסצ החחסנ עט 1988 (0) :הפוזעקסס 60 >וחףם וו 6 אפ הסוס 6הְהּטוחחה3| הפוח הס הסווה!פת8ז) 200וזסחזט .סח| 5חס5 8 עפווש חחס עס ספתפווסטוס 9 (0)) שש8ז100] חו זחשועָקסס פזסתפווסטק ווח-טס 5 31-09 ,560 אסם .0.ק [86ז9| כל הזכויות שמורות (0) 1989 הוצאת הוד-עמי לספרי מחשכים בע"מ ת.ד. 560 רמת-גן אין לצלם, להעתיק או לעשות כל שימוש בספר זה, או בחלקים ממנו, ללא קבלת רשות בכתב מבעלי הזכויות בעברית. הודפס בישראל סיון תשמ"ט, 1989 9 90| חן ס6זחוזק מסת"כ א-965-361-004 אםכ!| הספר מוקדש לאנשים אשר חזונם ויוזמתם ישפיעו כאופן משמעותי על מקומן של תחנות העכודה האינטליגנטיות (ע8ו) כעולם עיכוד המידע. המחברים מודים לאנשים הבאים עסח[[8 55606 ,(08%65 2111 ,תספם61ז18 ע18 ,מ6תסעה מוד וכן להנהלות של חברות יבמ (18%) ומיקרוסופט (1/11070501%6), למעצבים ולמתכננים, למתכנתים ולצוותי הבחינה, אשר עבודת הצוות שלהם ומאמציהם האישיים תרמו לפיתוח של המהדורה הראשונה של 05/2 ולהנחת התשתית למהדורות הבאות. הערת העורך: המחברים והמו"לים השתדלו להביא בפני הקורא את המידע העדכני שהיה בידם בעת הכתיבה של הספר. הספר מותאם לגירסה 1.0 ת0ס6161ם 6826ת5%68 05/2. הוא כולל עדכונים ותוספות עבור גירסה 1.1 ונושאים נוספים המתייחסים למהדורה המורחבת ₪ 05/2 (ת₪61%610 666ם66א₪ 05/2). הנספחים נוספו במהדורה העברית בהרשאה של המו"ל ע₪118 מת0ס1 ובאדיבות חברת יבמ ישראל. : בעת התרגום השתדלנו להשתמש במונחי המקובלים בעברית. כאשר אין מונח מוסכם, העדפנו להשתמש במושג באנגלית, כפי שהוא מופיע במקור. סימנים מסחריים - %5ע72866₪8 בספר זה הזכרנו סימנים מסחריים רשומים של חברות ושל מוצרים שונים. סימנים נוספים צוינו בגוף הספר. יבמ, אמך > סימנים מסחריים של ת0028%10ת00 65ת₪8001 655ת20181 81מ10ס8תעססתך מיקרוסופט, 6+162050%א > סימנים מסחריים של ת8610 0020 620850906 נא אינטל, 6061ם1 > סימנים מסחריים של ת028010קע002 61טתד הסימנים המסחריים הבאים הם של יבמ (18%), 8610ע2סק 00 18611568 211511655 81ת8610תעססתך1 2 ;5/5000/2 שת00628%1 2 ;5000/2ע5 81ַת50ע6ק 7א 0 41 ;81 עסטסטקמס0 [1ַתספע6ק שע86ת8) ת%68%510ת650עק 6 80661 1א 66גק00₪ 1הַתספעסק 1מתת 1620 |00 תוכן העניינים הקדמה איך לקרוא ספר זה מבוא: סקירה היסטורית המחצית הראשונה של שנות ה-70 מאמצע עד סוף שנות ה-70 מסוף שנות ה-70 עד אמצע שנות ה-80 המחשב האישי 26 ]18 ומערכת ההפעלה 05 21 פרק 1 - מבט אל 05/2 מדוע 05/2? תחנות עבודה בעלות טכנולוגיות חומרה מתקדמות 3 סוגי החומרה של ]18 הנתמכים על-ידי 05/2 255 סביבות עבודה חדשות 25 מיצוי הפוטנציאל של המחשבים האישיים 56 העוצמה של 05/2 סביבת הביצוע של 05 וסביבת הביצוע של 05/2 27 מספר הגבלות ושיקולים ביישומי 05 29| זיכרון אמית* גדול וזיכרון בפועל 20 תמיכה בזיכרון-יתר 311 סביבה רבת *ישומים 2 סביבה רבת משימות 33 תקשורת בין תהליכים 4 מישק קישור דינמי ותמיכה בשפות עיליות 4 תאימות עם מערכת הקבצים של 05 16 ניהול מבוקר פסקים של התקנים חיצוניים 7 תת-מערכות לקלט/פלט | (תצוגה, מקלדת ועכבר) 17 תמיכה בשפות לאומיות ואמצעים לטיפול בהודעות 8 הגירה של תכניות 05 ל-05/2 המאפיינים של המישק לתכנות יישומים סקירה על המיקרו-מעבד 80286 מערכת המחשב האישל 21| אפיק המערכת 12 17 17 9 99 20 211 33 33 27 >59 20 זיכרון המערכת 12 אמצעי 5/2 חיצוניים 33| גישה ישירה לזיכרון (18אכ) 33 פסקים 4244 מעבד מתמטי 45 המיקרו-מעבד 15 תיאור המבנה והתפקוד של ה-80286 16 מיעון ב-80286 - מצב אמיתי לעומת מצב מוגן 88 הפקת כתובת פיסית במצב אמיתי 88 הפקת כתובת פיסית במצב מוגן 19| הגנה והרשאה 3 טיפול בפסקים 6 סיכום פרק 2 - ניהול הזיכרון יתרונות עיקריים תמיכה בזיכרון-יתר הגנת הזיכרון מאפייני זיכרון המערכת טעינת סגמנט מראש וטעינה לפי דרישה מאפיינים הניתנים לקביעה על-ידי המשתמש מאפייני סגמנטים ב-116 ם0ג10ח611כ 0116ו06 שיקולי ביצועים בתכנון יישומים מישקים לתכנות הזיכרון מישקים לתכנות הזיכרון 8 ניהול הסגמנטים בזיכרון 64 סגמנטים משותפים 65 סגמנטים בעלי שמות משותפים 6 ניהול סגמנטים גדולים 6 הקצאות משנה בזיכרון 07 ניהול זיכרון בהתקנים חיצוניים התקני ק/פ ממופי זיכרון 08| התקנים עם גישה ישירה לזיכרון 8-. פרק 3 - ריבוי משימות ויישומים סביבה מרובת יישומים 5 רבים - נקודת המבט של המשתמש 72 66 7 7 8 00 00 00 1 1 02 3 08 .>9 71 מישקי התכנות ל-5₪5510% 72 תהליכים |-5כ4מאציד 74 מישקי תכנות לתהליכים 76 מישקי תכנות ל-45מתתך 919 מישקי תכנות לקביעת עדיפות ביצוע 9> תקשורת בין תהליכים 1 צינורות 2 תורים 12 אותות 55 אתתים 6 מישקים לאתת* מערכת 7 מישקים להשגת בעלות על אתת 08 מישקים להעברת אותות באמצעות אתתים 9. השירותים של השעון הפנימי 00 סגמנט מידע מקומי וגלובלי 1 פרק 4 - עקרונות תכנות 2 התחביר והקיצורים המוסכמים בשפת 6 933 הידור 933 קישור 4 הידור וקישור בצעד אחד 55 קריאה של תכנית 05/2 הכתובה בשפת 60 955 ק/פ באמצעות תצוגה ומקלדת 7 תיאור של תכנית הדוגמה 68 הפונקציות של 05/2 9. צידידץשט סוי 9. הזשתוז 5 1000 ור 10 המשך התיאור של תכנית הדוגמה 11 ביצוע רב-משימות - תהליך אחד עם שני 5מבפתחדך 12 הפונקציות של 05/2 103 בוו כ 133 55 18 ב ו 14 050 155 מז 155 תכנית דוגמה בעלת 11858425 רבים 166 ביצוע רב-משימות - שני תהליכים בעלי 5סגמאצד רבים 1066 הפונקציות של 05/2 17 ס 0500 17 10 ו-50:8+6ז8ת0+ טס 1.09 8 11 9 6 112 6ננ 133 | כ 114 בס 115 9 | 59| תיאור של תכנית בעלת תהליכים רבים 39| תמיכה בזיכרון-יתר 12 הפונקציות של 05/2 12 0 12 תכנית דוגמה לתמיכה בזיכרון-יתר 133 פרק 5 - הלט ופלט על-ידי היישום 156 מערכת ניהול הקבצים 18 התקנים המאחסנים קבצים 19 התקני תווים 133 התקנים סטנדרטיים 1>5166 צינורות 1%6 דיסק/דיסקט לוג: 117 מישקים לשימוש כללי 1177 מישקים המבוססים על קבצים 120 מישקים המבוססים על שמות קבצים 141 מישקים המבוססים על מקשרים לקבצים 1412 מישקים המבוססים על המדריך 133 מישקים להתקנים המאחסנים קבצים 133 תת-מערכות לביצוע ק/פ להתקני תו 14 0 5/2 לתצוגה 15 0 ק/פ של תווים 16 0 בקרה על הסמן 117 0 ניהול של גלילת המסך 8[ 0 בקרה על התקן התצוגה 08| 0 תצוגה שלא בסדר הרגיל (קט-00ק) 199 0 ניהול של מאגר התצוגה הלוג 1(0 0 ניהול של מאגר התצוגה הפיסי 100 0 החלפת פונקציות 12 עפא: ק/פ במקלדת 12 כעפא ק/5 של תווים 18 כעפא בקרה על ההתקן 15 כפא ניהול של המקלדת הלוגית 156 כעפא החלפת פונקציות 17 [זסאן: ק/פ באמצעות העכבר 17 [זסזן ק/פ של נתונים 199 [זסן בקרה על הסמן 100 [זסן בקרה על ההתקן 11 [זס]! החלפת פונקציות 12 אפשרויות לבקרת ק/פ (1006) 138 10 תכניות פיקוח להתקני תו ק/פ ישיר לחומרה פרק 6 - ניהול התקן מבוקר-פסקים תפקיד ה-5אמעזתכ מסנעמכ 6 אסזעמכ והק/פ של היישומים פקודות להתקנ* בלוקים 177 פקודות של התקנ* תו 100 שירותי מערכת 5-7אמעזתכ מסנעטטכ ניהול תהליכים 133 ניהול אתתים 14 ניהול תור הבקשות 14 ניהול תור התווי*ם 15 ניהול זיכרון 15 ניהול פסקים 16 שירות* שעון-עצר 16 ניהול תכניות פיקוח להתקני תו ניהול של 3105 6606ם4008 מרכיבי ה-תתעזתכ 65זעמכ שיגרת האסטרטגיה 18 שיגרת הטיפול בפסקי-חומרה שיגרת הטיפול בשעון העצר שיגרת הטיפול בפסקי תוכנה שיקולי עבודה בשני מצבים שיקולי תפעול מיעון לזיכרון 1066 סינכרוניזציה 1.06 קינון של פסקים 18 ביצועי המערכת 1.09 תיחול של 5אמע1אכ מסנטטכ 5% מתקדם ושיתוף פסקים 5 מתקסקדם - 38105 שיתוף בפסקי חומרה 24 17 17 1.9 11 12 201 איך ליצור תפעזתכ 8סזט8כ המתאים 05/2-7 התקנים סטנדרטיים ב-5/2 שעון 210 דיסק/דיסקט 20 מסך 21 מקלדת 21 159 107 1.9 100 12 12 17 14 155 200 201 206 20 11 מדפסת 21 עכבר 212 מחוון הציור 212 תקשורת אסינכרונית 212 דיסק בפועל 212 דיסק חיצוני 213 1צ 2013 2013 04 התמיכה של 05/2 ב-5אפעזחכ מסזעמכע של 05 פרק 7 - גישות מתקדמות בתכנות קישור של יישום סגמנטים הנטענים מראש 25 סגמנטים הנטענים לפי דרישה 216 קישור דינמי קישור דינמי בזמן טעינה 217 קישור דינמי בזמן ריצה 218 יצירה של ספריית קישור דינמי 209 ספרנית היבוא 222 משפטי הקובץ להגדרת המודול תכנית דוגמה לקישור דינמי בזמן ריצה האפשרות של המשתמש לבחור ספריה 206 6ע'דזט10026%0/ ו-6סע''זט)1056% 206 פב 207 5616018 208 תהליך 2 החדש 20 6 2083 0 214 16| -]/]צ-/ 205 תיאור של תהליך 2 205 ספריית קישור דינמ* 206 פרק 8 - תמיכה בסביבה בינלאומית התמיכה של 05/2 בשפות לאומיות אמצעים לטיפול בהודעות 200 סיכום של האמצעים לטיפול בהודעות 205 קביעת התצורה של המערכת למדינות שונות מידע התלו*י במדינה 226 המעבר מדף קוד אחד למשנהו 26 ערכת תווים כפולי בתים 227 האמצעים של 05/2 המטפלים ב-15אא 208 פקודות 15א בקוב% %5צ16.5עא60 208 12 20183 24 214 26 23 205 200 200 25 פקודות 15 למשתמש 208 מישקי תכנות דינמיים ל-15אז 209 פרק 9 - שינוי ברירות המחדל: נקודת המבט של המשתמש 200 אופציות קונפיגורציה 201 תיחול הידברות: 202 פעילויות של מערכת הקבצים 202 תמיכה בהתקנים 283 התמיכה במדינות שונות 204 היקף ההגנה 24 סביבת היישומים ב-05/2 205 ריבוי משימות 206 ניהול זיכרון 207 סביבת 05 208 ביצוע אוטומטי 208 בחירת תכניות 209 פקודות וקבצי אצווה 209 פרק 10 - להיכן מתקדמים מכאן? 21 מנהל התצוגה 202 מנהל בסיס הנתונים 202 מנהל התקשורת 208 קרש הפיצה 208 נספח א' - מנהל התצוגה 205 מהו מנהל התצוגה 205 ערכת כלים למתכנת 205 חלונות על פני המסך 206 יישום בבקרת מנהל התצוגה 2008 מבט מקרוב על החלון 209 יצירת חלון בתכנית 21 קבלת עוגן 201 יצירת תור הודעות 201 3 שיוך חלון לקבוצה 201 *צירת חלון סטנדרט?י 202 לולאת הודעות 2072 סיוס הפעולה של התכנית 23 פונקציית החלון 23 מודול תכנית החלון 204 תכנית דוגמה לתכנות חלונות מנהל התצוגה מול שירותי גרעין נספח ב' - מנהל בסיס הנתונים המודל הטבלאי של יבמ מבנה המערכת מישק בסיס הנתונים טבלאות נתונים 22 שפה לטיפול בנתונים 23 מישק התכנות 205 תמיכה סטטית ודינמית 205 שפה להגדרת (תונים 206 תכניות שירות ומישקים לתכניות *ישומים 206 הידור מראש וקישור 206 שירותי בסיס הנתונים עיבוד מרובב ושירות למשתמשים רבים 207 תמיכה בתנועות 207 גישה בו-זמנית 207 הידור ואופטימיזציה 208 ניהול האחסנה 208 אבטחה 209 תמיכה בשפות לאומיות 209 שירותים למרחק 209 סיכום נספח ג' - מערכת אישית יבמ/2 מבוא ארכיטקטורה וטכנולוגיה חדישות תקשורת רב תכליתית 201 עברית 201 מאפיינים ושימושים עיקריים דגמים 25, 30 201 דגם 50 201 דגם 60 202 14 200 204 208 200 21 202 202 207 209 200 200 21 דגמים 70, 80 22 נתונים טכניים - 5/2 188 יחידות היקפיות > מצגים 24 תקשורת 204 יחידות נלוות 24 מדפסות 205 תוכנה אינדקס. 2083 204 205 297 = 15 ה 7 הקדמה ההחלטה לכתוב ספר זה היתה החלטה קלה. מאחר ואנו, הכותבים, אנשי מפתח בקבוצת הפיתוח של מערכת ההפעלה 025/2, מצאנו את עצמנו עם כמות אדירה של ידע מעמיק ורחב :ריעה על המוצר. הרגשנו שהדְרך היחידה שבה נוכל לנצל את הידע הזה בצורה טובה היא לכתוב ספר. לצערנו, קל להגיד אך קשה לבצע. כמות המידע על המוצר שהיתה במוחנו *כולה היתה למלא מספר כרכים. לכן, רצינו לכתוב ספר שהקהל שלנו :וכל לעכל. לרוב האנשים יש עבודה אמיתית לעשות, אך רק כמות זמן מוגדרת לעשות זאת. השאלה הקשה ביותר שנאבקנו אתה היתה אזה סוג ספר אנו רוצים לכתוב. רצינו שהתועלת שתצמה לך כתוצאה מקר*את ספר זה תהיה מקסימלית. עשינו זאת על-ידי כיסוי סלקטיבי של החומר הקיים על 05/2. הספר שאתה מחזיק בידך הוא תוצאה של מאמצינו. הספר מכסה לפי הבנתנו את האספקטים החשובים ביותר של 2/ם500ע5 את0069801 גירסה 1.0 (הערה: בנספחים יש השלמות לגירסה 58 025/2)). אם אתה חבר באחת מהקבוצות הבאות, תמצא שספר זה *ועיל לך מאוד: משתמשי 2005 על מחשבי 6ק. אנשים הסקרנים לגבי הישימות של 025/2) לבעיותיהם. מנתחי מערכות. מעצבי מערכות. מתכנני מערכות. מפתחי *ישומים. אינך צריך להיות בקי בפרטים של מערכת ההפעלה 205 למחשבי 60ק-18% ותואמ*הם, או במיקרו-מעבד אינטל 80286 כדי להפיק תועלת מספר זה. הבאנו בספר חומר רקע כדי שתוכל להבין את מערכת ההפעלה 025/2) ואת הישימות שלה. מכיון שסביבת 05/2 עולה בתיחכומה על הסביבה הפשוטה במחשב האישי וגם מספקת פונקציות מערכת רבות ומתוחכמות *ותר, הסברנו עקרונות של מערכת הפעלה שנשתמש בהן בספר זה. הספר מסביר מדוע האפשרויות הגלומות ב-025/2) חשובות לך, ומדוע הבעיות ש-25/2) פותרת חשובות לך. השתמשנו, היכן שניתן, באפשרויות של 05 כנקודת *יחוס. אך לקרוא ספר זה כמות המידע והנתונים הקיימים על 05/2 הם רבים. בחרנו על כן, לתאר את מה שנראה לנו כמאפיינים החשובים ביותר של המוצר, והפחתנו את כמות הפרטים על כל מאפיין לרמה הניתנת לקליטה ולהבנה ללא מאמף לימוד מיוחד. לאחר שתקרא ספר זה על האפשרויות ש-25/2) מספקת, יהיה השימוש בפרסומים הטכניים הרבים הקיימים לגבי המוצר משימה קלה ויצירתית. חילקנו את התיאורים של האפשרויות השונות ב-025/2) לשלוש רמות כלליות של פירוט, אשר תאפשרנה לך להיות גמיש בקריאת הספר. 17 תחילה, תיארנו רבות מהאפשרויות של 05/2 בצורה מקוצרת. כך תבין את התפישה, את התועלת שניתן להפיק מן השירותים השונים של המערכת, ואיך ניתן ליישם אותם לבעיות שאתה צריך לפתור. ברמה הבאה *רדנו עמוק :יתר לפרטים לגבי כל שירות (כמו ניהול זיכרון למשל). עשנו זאת על-:ד:י תיאור המישקים המתאימים המאפשרים תכנות של יישומים. ברמה זו הצגנו את הפרטים החשובים ביותר של המישקים, כדי שתוכל לראות איך 05/2 מצליחה לבצע את מה שהוגדר קודם כאפשרות בלבד. רמת הפירוט הזו חשובה במיוחד, כי היא מאפשרת לך לראות איך ניתן לבנות *ישום מסוים, אשר :וכל לנצל בצורה מקסימלית את האפשרויות הגלומות ב-05/2. סיפקנו רמה שלישית של פירוט לאלה הרוצים לראות איך לנצל את האפשרויות ש-025/2) מציעה על-ידי שימוש בשפת מכונה. כללנו שני פרקים שמציגים את האפשרויות החשובות ש-25/2) מספקת, בעזרת דוגמאות של תכניות הניתנות להידור והרצה. התיאורים של 05/2 המסודרים בשלוש רמות שונות של פירוט, מאפשרים לך לבחור את הדרך הנוחה לך בקריאת הספר. אם אינך מתעניין בדוגמאות התכנות, אתה יכול לדלג על פרקים 4 ו-7 מבלי לפגוע בהבנת הספר. עם זאת, יכול להיות שתעדיף לפנות ישר לדוגמת תכנית לתמיכה בזיכרון יתר (עזסמסות +תתוותותס6זפטס) בפרק 4, לאחר שקראת בפרק 2 את הדיון המקדים על אפשרויות ניהול הזיכרון. לאחר שעברת על דוגמת התכנות, אתה :כול לחזור לפרק 2 ולקרוא על המישקים המאפשרים את ניהול הזיכרון. אנו מציעים לך לקרוא ספר זה מתחילתו עד סופו, כדי לקבל את התמונה הרחבה והמפורטת ביותר עכ 05/2. הספר נבנה במיוחד כדי שתוכל לבחור את הדרך הנוחה ביותר לעיון בו, בהסתמך על כמות הפרטים וסדר ההצגה שאתה מעדיף. 8 מבוא סקירה היסטורית. במטרה להבין להיכן ה-005/2 מובילה את המיחשוב האיש', הרגשנו שחשוב להיזכר היכן היינו. הדיון הבא הינו שילוב של נקודות המבט האישיות של הכותבים. המחצית הראשונה של שנות ה-10 בתקופה זו נוצר המפגש הראשון בינינו לבין עולם המיחשוב. זה קרה בסביבה אקדמית, אשר אופיינה כדלקמן: מרכז חישוב "גדול" (פיסית) ור*כוז?. = מכונות לניקוב כרטיסים. * זרם עבודות אצווה (ם38%06) שהוזנו למחשב בתיווכו של המפעיל. כיום, אפשר לתאר את הסביבה המוקדמת הזאת כפרימיטיבית מנקודת המבט של פשטות השימוש ופריון העבודה. הכנת הנתונים והתכנות עצמו נעשו באמצעות מכונות ניקוב. אנשים איחסנו את כל המידע והתכניות שלהם בחבילות גדולות של כרטיסים מנוקבים. הגברת פריון העבודה בסביבה זו נעשתה בעזרת תוף ניקוב או בעזרת מונה טורים סיפרתי על מכונת הניקוב שלך (אם היה לך מזל). אם היית חכם מספיק היית מנקב מספרים עוקבים על כל כרטיס בחבילה. ואז, כאשר המפעיל מחליט לזרוק את החבילה שלך, או כאשר קורא הכרטיסים מחליט שהוא רעב, היתה לך אפשרות להתאושש. שטח על דיסק פרטי נחשב למשאב יקר, ולא היה זמין בכמות מספקת למשתמש הממוצע. כל חבילות הכרטיסים של המשתמשים נאספו יחד על-ידי מפעיל המערכת והוזנר לתוך קורא הכרטיסים. תהליך ‏ זה :דוע בשם ע'יבוד באצווה (ג08%0 שת000591תק). בתהליך זה תכניות המשתמשים הוזנו בקבוצות ללא התערבות המשתמש. לאחר זמן מה, בד"כ חצי *ום או *ותר, חיכית בתור כדי לקבל תדפיס של תוצאות ההידור או ההרצה של התכנית שלך. אם התכנית שלך לא פעלה כשורה, היית צריך להתחיל את כל התהליך הארוך הזה מחדש. ברור, שהתהליך. של לימוד מטעויות שלך היה קשה ואיטי. המחיר של טעות אחת *כול היה להגיע עד כדי בזבוז של *ום עבודה שלם. בנוסף לכך, מחיר המיחשוב היה גבוה מאוד. סעיפים רבים היו צריכים להלקח בחשבון לצורך חיוב כמו: כל מאית ואלפית שניה של זמן עיבוד במחשב. כל פעולת קלט או פלט שהמחשב ביצע. כל *חידת אחסון שנעשה בה שימוש במתכקני האחסון החיצוניים. כל פעולה שהמפעיל היה צריך לבצע כדי לאפשר לתכנית שלך לרו>. כל שורה או דף של פלט מודפס שקיבלת. 19 בנוסף לכך, כמות משאבי המחשב שתכנית *כולה היתה לצרוך היתה מוגבלת. לדוגמה, בסביבה של מחיצת זיכרון קבועה, מנהל המערכת היה צריך לחלק למספר קטעים תכנית הצורכת :ותר מ-256% זיכרון. בסביבה אקדמית זו, האתגר הגדול ביותר של כולם היה להשיג עזרה כאשר היה צורך. ככלל, מפעיל המערכת היה האדם היחיד שהמשתמשים (סטודנטים) ראו אותו באופן קבוע. באופן כללי, מפעיל המחשב לא היה האדם הנכון לפנות אליו בנושא של עזרה טכנית. היית נותן למפעיל את הכרטיסים שלך, והוא (או היא) היו מחזירים לך את הכרטיסים והתדפיסים לאחר ביצוע. אם היית צריך עזרה, היית צריך להתיעצ* עם תכניתן המערכת. תכניתן המערכת היה מומחה, אדם היה בעל *דע ונסיון שאיפשרו לו לעשות דברים לא שיגרתיים. במבט לאחור על סביבת המיחשוב בתקופה שהיינו באוניברסיטה, אנו *כולים לאפיין אותה בדרך הבאה: יקרה. זמן סבב ארוך. משתמשים מופרדים ממערכת המחשב. משאבי מחשב מעטים. תהליך לימוד קשה ואיטי. קשה לבצע ניסויים. קשה לקבל עזרה. מאמצע עד סף שנות ה-70 בתקופה זו, ה"נו עדים למספר שנויים בסיסיים שחלו במרכזי המחשב הגדולים והריכוזיים. מסופים הידברותיים (%960:801176ת1) עם מסכי ‏ 687 הותקנו בכמויות גדולות. ההתקנות האלו איפשרו למשתמש הסופי להידבר ישירות עם המחשב. משתמש הכניס נתונים דרך המקלדת ויכול היה לבדוק אותם ישירות על המסך, או לראות את הפלט של התכנית לפני בקשת תדפיס. אפשרות חדשה זו האיצה באופן משמעותי את תהליך המשוב במקרה של טעויות. אפשר היה להריצ תכניות משתמש הן באצווה והן במקוון, עם משוב בזמן אמיתי על המסך. כמובן, שלמדת מהר להרי+ באצווה תכניות שצרכו כמויות גדולות של משאבי מחשב. מכיון שמשאבי מרכז המחשבים היו עדיין יקרים, היה צורך לאפשר למספר גדול של, משתמשים להשתמש במוחשב בו-זמנית. במספר מתקנים התפתו להעמיס את המחשב מעבר למה שאפשר, במטרה לשמור על יחס נמוך של הוצאות/ משתמשים. אם המערכת הועמסה מעבר ליכולתה, הדבר גרם לכך שלפעמים לא היית יכול לקבל שירות, כי יותר מדי אנשים השתמשו במערכת באותו רגע. עומס יתר גרם לכך שמשך הזמן שעבר בין הבקשות לשירותי מערכת לבין תשובת המערכת על המסך, התארך בצורה בלתי נסבלת. בהתחלה, המסופים (027) היו יקרים *חסית ולכן, בד"כ לא היה לאנשים מסוף אישי על שולחנם. כתוצאה מבעיות של זמן תגובה הנובעות ממערכות שפועלות בעומס יתר וכתוצאה מבעיה של מציאת מסוף פנוי, לא גדל פריון העבודה בצורה משמעותית כפי שניתן היה לצפות כתוצאה מעבודה בסביבת מיחשוב הידברותית. 2 אולם, שנות ה-70 המאוחרות סימנו את תחילת התקופה של הידברות אישית בין המשתמש לבין המחשב. מאחר וההידברות הינה תהליך של אחד לאחד, הזמן שדרוש לבצע ניסויים במערכת מתקצר באופן משמעותי, ולכן המשתמש מקבל תמרי+ לשפר את ביצועיו במערכת. מסוף שנות ה-70 עד אמצע שנות ה-80 אפשר לאפיין תקופה זו כזמן שבו המחשב הגיע אל האדם הממוצע, או כתקופת ההתפשטות של המיחשוב האישי. גם סביבת המחשבים הגדולים השתפרה במשך תקופה זו בצורה כ;ו, שמשאבי מרכז המחשבים הפכו להיות חזקים *ותר, גמישים וזולים *ותר. המסופים התחילו להופיע על כל שולחן, וחדר*י מסופים החלו להעלם. אבל זו היתה התפתחות טבעית של העשור הקודם. הסיפור האמיתי הוא המהפכה שחולל המיחשוב האישיל. כאשר אפשר לרכוש מערכת מחשב שלמה בעלות של אחוז קטן מתוך ההכנסה השנתית של עובד, והיא *כולה לעמוד בפינת השולחן שלו, אזי אפשר לצפות שהדבר :גרום למהפכה במאפיינים של המיחשוב. מחשבים חדשים אלה היו כה זולים שלא היה צורך להתחלק בהם עם אנשים רבים בו-זמנית, ואפשר היה לתכנן אותם כמערכות של משתמש *חיד. התפתחות זו הפחיתה בצורה משמעותית את המורכבות של מערכת ההפעלה שנדרשה כדי לנהל את משאבי המערכת. אדם היה :כול לשלוט על מה שהמחשב שלו, או שלה, נדרש לעשות. רמה זו איפשרה לאנשים לבצע שיקול של עומס העבודה על המחשב האישי מול זמו התגובה הנדרש. מספר האנשים שהיתה להם גישה למחשבים גדל במהירות. אפילו בגני הילדים ניתנה לילדים האפשרות לגשת ולעבוד עם מחשב אישי. יש מספר סיבות שבגללן התפשט הידע במחשבים בצורה מהירה בחברה שלנו: היחס של אחד לאחד (אדם-מכונה) האפשרי במחשבים האישיים. האופי הפשוט של היחסים. היכולת לקבל משוב מיידי על מה שאתה עושה. גישה קלה למחשבים אישיים. אין להבין מהתפתחויות אלו שהתועלת והצורך במערכות מחשב גדולות נעלמו. למעשה, הן גדלו. המחשבים האישיים החדשים לא החליפו את התפקיד או הצורך במערכות מחשב גדולות. בפועל, הם יצרו בעצמם צורך, שנדחף על-ידי קבוצות חדשות של אנשים ושווקים. במקביל, מערכות המחשב הגדולות הפכו להיות חזקות *ותר ויצרו אפשרויות חדשות וכל זאת תוך שיפור המחיר ביחס לביצוע. המחשב האישי 26 זא18 ומערכת ההפעלה 05 עם כניסתם לשוק של מחשבי 26 18% ומערכת ההפעלה 205 בשנות ה-80 המוקדמות, יצרה ]12% את מה שנועד להיות אחת מטביבות המיחשוב האישיות הפופולריות ב*ותר. רוב האנשים מייחסים את ההצלחה של 260 18% לא רק למאפייני החומרה של המערכת, אלא גם לכמות הגדולה של תוכנות *ישום שהיו זמינות לשימוש במחשב תוך זמן קצר, הן מצד יבמ והן מצד משווקים אחרים. תוכנת היישום והסביבה שבה היא הורצה, עשו יותר מאשר פתרון של בעיות אמיתיות שהיו למספר גדול של אנשים ועסקים. פשטות השימוש בסביבת התוכנה הקלה על הגישה למספר גדול של אנשים. המאפיינים של תוכנת היישום בתקופה זו נגזרו ממגבלות מערכת ההפעלה והחומרה שהיא רצה עליה. אלה המאפיינים של הסביבה הזאת: מערכת של משתמש יחיד. זיכרון פנימי של 640% (גאא). מערכת חד-משימתית (ביצוע פעולות בצורה סידרתית). יישום אחד המופעל בו-זמנית. נראה שסביבה זו ענתה על צרכי שוק *וצאי דופן, ופתרה בעיות למספר גדול של עסקים ואנשים. אז לאן אנו מתקדמים מכאן? ומדוע בכלל אנו רוציס להתקדם מכאן? 22 ברק 1 מבט אל 05/2 היתרונות . העיקריים של הגירסה הראשונה של מערכת ההפעלה 05/2 ניתנים לחלוקה למספר קטגוריות: שוברת את מחסום 640% של הזיכרון הפנימי. מספקת תמיכה לביצוע רב משימות (₪ם1א1/10161585). מספקת מישק לתכניות יישום (1סה). מספקת סביבה המאפשרת הרצת מספר יישומים במקביל. אפשרות ביצוע של יישומי 5סִ. מספקת מישק עקבי למשתמש. מדוע 305/2 מה אומרים לך דברים אלה? מדוע אתה צריך להתעניין בדברים כמו ריבוי משימות (8ת1א1/]0101%85%) ומישק לתכניות יישום (שַתותות8זשסז מ108010[סק 1 - 66:)806ת1)? מדוע סביר שסביבת 2005 הנוכחית אינה עונה על צרכיד העכשוויים והעתידיים? כדי שנתחיל להבין את התשובות, הבה נסתכל על מספר סביבות וצרכים של משתמשיס שיכולים לגרום לכך שיתרונות אלה *יראו חשובים: * תחנת עבודה עם אפשרויות רבות המורכבת מטכנולוגיות מתקדמות של חומרה. * סביבות חדשות. * משתמשים מיצו את הפוטנציאל הקיים במחשבים אישיים עם מערכת ההפעלה הנוכחית. [ תחנות עבודה בעלות טכנולוגיות חומרה מתקדמות הטכנולוגיה משתפרת בצעדי ענק. לפני עשר שנים מערכות שהיו להן 48%3 של זיכרון פנימי ([4ת2) ותצוגה של 16 שורות ו-64 טורים נחשבו למחשבים אישיים פופולריים ושימושיים (ראה גם סעיף בפרק זה העוסק בסקירה של המיקרו-מעבד 80286). מחשבי 25/2 181 החדשים מתחילים עם 118 של זיכרון פנימי על הלוח הראשי בדגם 50, ובדגם 80 אפשר להגיע עד 488 על הלוח הראשי, ללא כרטיסי הרחבה. שיפור זה ביחס עלות/ביצוע בטכנולוגיית החומרה מגדיל את הכדאיות שברכישתה כפי שנהוג מזה זמן רב בענף המחשבים. רמת התיפקוד הנוכחית של 505 אינה מסוגלת לנצל בצורה מלאה את השיפורים בחומרה. 33 השיפורים המשמעותיים ביותר בחומרה הם במהירות המעבד עצמו, בפעולות שהוא מאפשר (מאינטל 8 ל<אנטל 80286 עד לאינטל 80386) ובכמות הזיכרון הפנימי שמערכות אלו *כולות להכיל. בנוסף לכך, יש אפשרות לבצע עיבודים גרפיים ברמה דומה למערכות **עודיות לגרפיקה. 58 מספקת רמת תיפקוד המנצלת בצורה מלאה את המיקרו-מעבד אינטל 8088. במחשבי 26/8717 131 ו-5/2ק 181 דגמים 50 ו-60 הוכנס המיקרו-מעבד אינטל 6 במקום 8088 (יש מודלים נוספים שבהם מותקן 80286). ב-5/2ק 18% דגם 80 הוכנס המיקרו-מעבד אינטל 80386. ב-80386/80286 ישנו מצב הנקרא מצב אמיתי (006 681), אשר תואם ל-8088. זהו מצב שבו ה-205 פועל כאשר משתמשים ב-80286 או 80386 במחשב: 06/8'7 1ם1 ו-5/2ק ]18% דגם 50 ומעלה. במצב אמיתי, אף לא אחד מהמאפיינים החדשים של ה-80286 בא לידי ביטול. ונכון, איכפת לנו שנשתמש במאפיינים החדשים האלה. לדוגמה, ה-80286 מספק אפשרות להגן על מערכת ההפעלה ועל קבצי נתונים מפני תכניות *ישום ולהגן על :ישומים שונים זַה מזה; זהו מצב מוגן (₪006 05606זק). ה-80286 גם מאפשר תמיכה בזיכרון בפועל ותמיכה בזיכרון אמיתי הגדול מ-1%18. 05/2 עצמה מנצלת את המאפיינים של ה-80286 ומאפשרת לתכניות יישום לנצל אותם. אנו רואים שחייבים לעבור ל-05/2, אם רוצים לנצל את מלוא היתרונות שהטכנולוגיה החדשה של המיקרו-מעבדים מציעה. ככל שהזמן עובר, המיקרו-מעבדים והמערכות שהם נמצאים בתוכם הופכים להיות מהירים *ותר ו*ותר. כדי להגיע לניצול מלא של הפוטנציאל הטמון במערכת המיחשוב, מערכת ההפעלה צריכה לתמוך בביצוע של *ותר ממשימה אחת בו-זמנית. זאת אומרת, שמערכת ההפעלה צריכה לאפשר לחלקים שונים של עבודה, או יישומים, להופיע כאילו הם מבוצעים בו-זמנית. לדוגמה, בזמן שחלק אחד של העבודה צריך לחכות בגלל נתונים המג*עים מהתקן קלט/פלט כלשהו, המערכת *כולה לעבד חלק אחר של העבודה. ככל שהמערכות הופכות לחזקות *ותר, אפשרות זו הופכת לחשובה *ותר. 2025 אינה מספקת מנגנון אשר נותן שירות זה, אך 05/2 כן עושה זאת. מכיון ש-2005 תומכת רק ב-8088, או במצב האמיתי של 80286, היא :כולה לתמוך ביישום בגודל מקסימלי של 640% במחשבי 6ק 18%8. מרחב הכתובות בין 8 לךבין 8א1 מנוצל על-ידי *חידות קלט/פלט ממופי-זיכרון ועל-יד: פקודות ה-2105 ]/0)א2. אין ל-05עת שום דרך לבצע תכנית *ישום הגדולה מ-640%8. *ישומים אינם *כולים לגשת *שירות לנתונים שלהם, אם הנתונים מאורגנים בקבצים העולים על מחסום ה-640%3. לכן, יישומים הרצים בסביבת 5 אעם יכולים לבצע אופטימיזציה של השימוש בכל הזזיכרון שקיים במערכות המחשב האישיות החדשות. מכל מקום, 05/2 מאפשרת ליישומים לרוא במצב מוגן (006 00666ע2ק) שהוא מצב הפעולה המלא של ה-80286. *ישומים אלה *כולים להתבצע ביותר מ-1%/18 זיכרון ו*כולים להת*יחס ישירות לנתונים המאורגנים בקבצים הגדולים מ-13א1 זיכרון. ככל שהיישומים הופכים ליותר מתוחכמים, הם צורכים יותר מקום בזיכרון, אשר בו צריכות להתבצע ההוראות שלהם. בנוסף לכך, ככל שכמות הנתונים שצריכה להיות מעובדת בזמן נתון גדלה, כך הופך לקריטי, מבחינת תגובת המערכת, השטח הנוסף בזיכרון שנועד לנתוני היישום. ככל שיישומים מנצלים יותר את התצוגה הגרפית המתוחכמת (רזולוציה גבוהה וצבעים רבים), כך גדלה כמות השטח שיש להקצות לנתונים הדרושים ליישום. מכאן ברור מדוע אנו רוצים לנצל את כל מיליוני הבתים אשר מציע הזיכרון במערכות החומרה החדשות. נאמר כבר שתמונה שווה אלף מלים. קל *ותר להשתמש במישק גרפי, אשר *כול לתמוך בסביבה *שומית מתוחכמת טוב *ותר מאשר מישק-משתמש בשיטה המקובלת. ככל שהמשתמש מטפל במשימות רבות *ותר בו-זמנית, כך גובר הצורך לראות אותן בצורה של חלונות (קת!שס6תנש), ואת זה מספק אותו מישק גרפי. בסביבת חלונות, *ישומים שונים תופסים חלקים שונים של המסך. גירסה 1.0 של 05/2 מספקת מישק-משתמש מבוסס תווים לטיפול במסך שלם. גירסה 1.1 והגירסה ₪5 05/2 מאפשרות ליישומים לנצל בצורה מלאה את מישק המשתמש המבוסס על גרפיקת חלונות בעזרת מנהל התצוגה (6קַ8ת18 מ%8110ת656זק). סוגי החומרה של ]18% הנתמכים על-ידי 25/2) 2 אינה פועלת במחשבים אישיים שמותקנים בהם מיקרו-מעבדים מסוג 8086 או 8088. זאת אומרת, ש-25/2) אינה רצה על מערכות כמו 6 ]13%, דא סת, 2 דגמים 25 ו-30 ותואמיהם. בזמן כתיבת ספר זה, 2 תומך בסוגי החומרה הבאים של *במ: = מחשבי 6/8417 18/1 (5170) דגמים 068 עם דיסק קשיח (מקביל לדגם 9), 099, 239, 319, ו-339. * מחשבי 7א/6ק ]10% דגם 286 (5162). = מחשבי 5/2ק ]18 דגמים 50, 60, 70 ו-80. ה-80386 ב-25/2 דגם 70 ו-80 נתמך בדומה ל-80286 (כך המצב כעת). לא כל מתאם הקיים לכל דגם נתמך על-ידי 05/2. 05/2 דורשת לפחות כונן דיסקטים אחד בעל קיבולת גבוהה, דיסק קשיח, מקלדת, ומתאם תצוגה עם המסך הקשור אליו. 05/2 דורשת לפחות 1.518 של 311 כאשר רק 05/2 מורצת. אם משתמשים גם ב-005כ, 05/2 דורשת לפחות 218 של 4/1/ת. סביבת הביצוע של 05 וסביבת הביצוע של 05/2 מתוארות בהמשכו של פרק זה. סביבות עבודה חדשות המבוא לספר זה מציג שני סוגים נפרדים של סביבות מיחשוב שהו לנו עד היום: סביבת המחשב האישי וסביבת המערכת הגדולה. מחשבים אישיים תוכננו כך שישתמשו וישלטו בהם משולחן של מישהו. הם מאפשרים לאנשים להתאים את עיבוד הנתונים שלהם לפי צרכיהם. אבל העוצמה של המחשבים האישיים מוגבלת. כמו כן, הכמות והטווח של הנתונים המאוחסנים במחשב אישי מוגבלים. סביבת המערכות הגדולות מנוצלת לצורך *ישומים הדורשים כמויות גדולות של כוח מיחשוב ונתונים שמתחלקים בהם משתמשים רבים. מערכת גדולה יכולה להיות מבוססת על משתמשים רבים המפוזרים באתרים גיאוגרפיים שונים ומנצלים כוח מיחשוב של מחשב אחד או *ותר. הנתונים שאליהם *כולים המשתמשים לגשת *כולים להיות מרוכזים במחשב אחד ענק, או מפוזרים במספר מחשבים קטנים *ותר. אפשר לתחום את סביבת המערכת הגדולה באתר פיסי אחד. אולם במציאות, לא כל היישומים או הפתרונות מתאימים בדיוק לאחת משתי הקטגוריות שתוארו לעיל. לדוגמה, כלכלן העוסק בניתוח פיננסי בחברה גדולה לא *וכל לאחסן את כל הנתונים הדרושים לעבודתו במחשב אישי. אולם, אותו כלכלן יעדיף להשתמש במחשב האישי מכיון שהשימוש בו מאפשר לו הרבה יותר גמישות בתהליכי העיבוד, הניתוח והטיפול בנתונים. מערכות גדולות נוטות לאפשר פחות גמישות, אבל *כולות לטפל בכל הנתונים הפוטנציאליים שאנשים יצטרכו כדי לעשות את עבודתם. דוגמה אחרת *כולה להיות *ישום הדורש זמני תגובה מהירים מאוד בתנאים מסוימים, ותחת תנאים אחרים הוא דורש עיבוד מורכב באמצעות מערכת גדולה. התכנון .הטוב ביותר לשתי הדוגמאות הוא הצעד הלוגי הבא בהתפתחות של המחשבים האישיים והמערכות הגדולות, אשר נקרא עיבוד משותף (8ת06059?ק 86). ,. בבעילבוד משותף, תחנת העבודה המקומית (מחשב אישי) והמערכת הגדולה מבצעות את העבודות המתאימות להן ביותר, כל אחת בתחומה. בסביבת העיבוד המשותף, תכנית *ישום במחשב אישי תצטרך לבצע *ותר ממשימה אחת בו-זמנית. מערכת ההפעלה המטפלת בתכניות **ישום במחשב האישי חייבת על-כן: (1) לתמוך בציוד מתוחכם לתקשורת בזמן אמיתי, (2) לאפשר גישה לתקשורת לוגית מסובכת ולפרוטוקולים של רשתות בנוסף לגישה לארכיטקטורות להעברת הנתונים. תמיכה זו דורשת מספר רב של תוכנות **עודיות לתקשורת, אשר לא תכנסנה ב-640%8 ביחד עם תכנית *ישום מתוחכמת. סביבת המערכות צריכה לתמוך בזמן אמיתי בחומרה מבוקרת פסקים (11876₪8:6 מסץט1-כ +ק0תע0+ם1) ובמספר משימות בו-זמנית. ‏ רמה זו של תיפקוד סופקה כבר ב-205 בעזרת תכניות מיוחדות, עבור מערכות ויישומים מיוחדים. בסביבת 05/2 התמיכה :כולה להיות בצורה כללית שתאפשר בסיס מודולרי לצמיחה ולהרחבה של תכניות *ישום ותת-מערכות בכל הכיוונים האפשריים. ב-05/2, הגורם העיקרי שמאפשר את המודולריות הוא המישק לקישור דינמי של תכניות יישום - 801, שנדון בו בהמשך. סביבת 025/2) מאפשרת תכנון ופיתוח בצורה כללית של יישומים או מערכות, עם פעילות רבה מאוד של עיבוד משותף, מבלי שהמתכנן יצטרך להבין את כל הדרכים שבהם ניתן להשתמש במערכת לצורך תכניות *ישום נוספות בעתיד. תכונה זו מספקת אפשרות לא רק למשווקים עצמאיים הרוצים לספק תת-מערכות, אלא גם לארגונים הרוצים להחזיר את ההשקעה שלהם בעזרת הרחבות מתוחכמות של תוכנת המערכת. 25/2) תומכת בצורה מפורשת במספר *ישומים העובדים בו-זמנית. | אם נוסיף לכך שמישק המשתמש הוא עקבי, נקבל שהפוטנצנאל לניצול השיפורים במערכות, בין אם אלה שסופקו על-ידי היצרן ובין אם אלה שפותחו בנפרד, הוא גבוה. :ישומים *וכלו להכתב כעת לסביבת מערכות ולארכיטקטורה בדרך כזו, שהם *פעלו אפילו אם נוספו *ישומים נוספים למערכת או אם השתנו תת-המערכות .שמתחתם. תת-מערכות *כולות להשתנות מכיון שהסביבה החיצונית הפיסית של תחנת העבודה משתנה, או מכיון שסוג החומרה הנתמך על-ידן משתנה. המשתמש *וכל לנצל סביבה מרובת *ישומים זו, כי מישקס המשתמש לא רק מאפשר ליישומים שונים להתקיים במקביל, אלא גם מאפשר למשתמש להריצ אותם בו-זמנית. מיצוי הפוטנציאל של המחשבים האישיים אנו חיים בתקופה של ציפיות גבוהות. מה שהרשים אותנו בעבר והדהים אנשים רבים לפני חמש שנים הפך כבר לשיגרה. אנשים מחכים עכשיו לצעד הבא בטכנולוג*יית המחשב האישי שיאפשר להם לבצע את עבודתם בצורה טובה *ותר ולהגביר את *כולת התחרות שלהם בשוק. 26 כפי שראינו, הצעד הבא או יכול להתבצע רק בעזרת טכנולוגיית חומרה חדשה. שאלה חשטובה היא, איך המשתמש ינצל את טכנולוגיית החומרה הקיימת ואת זאת שתכנס בעתיד. כדי לענות על שאלה זו, נצטרך להסתכל שוב על סביבת מערכות ההפעלה. משתמשים מצפים לביצוע של משימות רבות *ותר במטרה להגביר את פריון העבודה. אחת הדרכים להשיג זאת היא לאפשר ליותר *ישומים לרוף בו-זמנית על מחשב אישי. אולם, חשוב שהשימוש בפונקציה זו יהיה כללי, כך שסוגי היישומים שתרצה להר*% במקביל על המחשב האישי *וכלו אומנם לעשות זאת זה בצד זה. בנוסף לכך, סביבה זו חייבת להיות מוצגת למשתמש בצורה עקבית וקלה לשימוש. ככל שהמערכת הופכת לחזקה *ותר, כך פשטות ההפעלה שלה הופכת לחשובה *ותר. אם המערכת תהיה מסובכת מדי לשימוש, אנשים *חזרו למערכות שמאפשרות פחות גמישות בהפעלה. אנשים לא *אמינו שיש להם את החופש להפעלת מערכת המחשב האישית בדיוק לפי צרכיהם. יהיה קשה להראות שאחד המאפיינים הבסיסיים של המחשב האישי ממשיך להתקיים. משתמשים מצפים לא רק לאפשרות להריץ מספר *:שומים, אלא גם לאפשרות להרלי יישומים מתוחכמים וחזקים *ותר. כפי שנראה, העוצמה של 5/2) מאפשרת ליישומים מתוחכמים *ותר להכתב בדרך כזו, שהם *וכלו לפעול זה בצד זה בסביבה מרובת *ישומים. *ישומים חזקים *ותר נכתבו בסביבת 205 תוך שימוש בפונקציות הנמצאות מעבר לסביבה הטבעית של 05כ. עובדה זו אינה מאפשרת להם לעבוד בצורה טובה בסביבה הכוללת *ישומים אחרים, שיתכן וינסו להשתמש גם הם בפונקציות הנמצאות מעבר לסביבה הטבעית של 005כ. העוצמה 6 05/2 מהם המאפיינים הבולטים ביותר ב-025/2? ברשימה הבאה נראה ריכוז שלהם: 1. סביבת הביצוע של 005 *כולה להתקיים במקביל לסביבת הביצוע של 2 2. זיכרון אמית* גדול וזיכרון בפועל. 3. תמיכה בזיכרון-יתר. 4. סביבה רבת *:שומים. 5 סביבה רבת-משימות. 6. תקשורת בין תהליכים. 7. מישק קישור דינמי. 8 מערכת קבצים תואמת ל-05כ. 9. חומרה מבוקרת פסקים. 0. תת-מערכות לקלט/פלט כמו תצוגה, מקלדת ועכבר. 1 תמיכה בשפות לאומיות ואמצעים לטיפול בהודעות. סביבת הביצוע של 05כ וסביבת הביצוע של 05/2 סביבת הביצוע החדשה והחזקה *ותר של 025/2) דורשת שיישומים *יכתבו בהתאם למערכת חדשה של כללים, השונה מהכללים הנהוגים בסביבת 205 הישנה. לכן, יישומי ₪05 שאנו רגילים להם אינם *כולים לרו+ בסביבת הביצוע החדשה של 2). סביבת ביצוע של 205 סופקה יחד עם 05/2, כדי שאפשר יהיה להריצ בה את יישומי 205 הישנים, עד שייכתבו מחדש ל-025/2). סביבה זו דומה ל-05כ 27 גירסה 3.3 וההתי*חסות אליה בהמשך תהיה כ"סביבת הביצוע של פ5סכ". משתמשים *כוּלים לעבור מסביבת הביצוע של ₪05 לסביבת הביצוע של 05/2, ולהנות מהעוצמה של 05/2. *ישומים הרצים בסביבת ‏ 2025 חייבים להיות מותאמים לכללים של ₪05 גירסה 3.3, בעוד שיישומי ה-0025/2 חייבים להיות מותאמים לכללים החדשים, המותאמים לעוצמה החדשה. *ישום ה-2025ע משתלט על המסך והמקלדת כאשר המשתמש עובד בסביבת ביצוע זו. המשתמש רואה את כל מה שיישום ה-₪65 עושה על המסך. יישום ה-005 יקבל את ההקשות שהמשתמש יקיש, פרט לצירופי מקשים מיוחדים המשמשים כמקשים "חמים" של המערכת. מקשים "חמים" אלה מאפשרים למשתמש לעשות דברים שונים, כמו להשעות את סביבת הביצוע של 205 ולאפשר לסביבת הביצוע של 2 להשתלט על המסך. כאשר סביבת הביצוע של ה-205 שולטת על המסך והמקלדת, היא נמצאת בחזית (0ת10:0₪100). כאשר המשתמש עובר מסביבת הביצוע של ה-205, היא עוברת לרקע (6מט0זק40%ם). כאשר סביבת הביצוע של 2005 נמצאת בחזית, היא מתחלקת במעבד עם יישומים הנמצאים בסביבת הביצוע של ה-05/2. כאשר מבוצע יישום 205, המעבד נתצא במצב. אמית* (66סם 681ת). כאשר *ישומי ה-025/2) מבוצעים, המעבד נמצא במצב מוגן (006 0660%זק). מערכת ההפעלה וה-8ת6ט1:כ 260106 שלה (תכניות השירות להפעלת *חידות קלט/פלט) נכתבו כך שיוכלו לטפל בעובדה שהמערכת *יכולה לעבוד הן במצב אמיתי והן במצב מוגן. מצב זה :דוע כסביבה דו-מצבית (681סחז1ם). למרות שמאפיין זה של ה-05/2 הוסיף סיבוך למערכת ההפעלה ולפרמטרים שהיו צריכים להיכתב ל-05/2, היה בו צורך כדי לתמוך בסביבת הביצוע של ה-05כ. כאשר סביבת הביצוע של ה-205 נמצאת ברקע, היא מושעית ולא מקבלת זמן מעבד. זו הסיבה מדוע אחת המגבלות על טביבת הביצוע של 205 היא תלות בתזמון וחוסר תמיכה ביישומים של זמן אמיתי. כאשר סביבת 205 נמצאת ברקע, *ישומי 05/2 מתחלקים במעבד בעם לבין עצמם. ביצועי המערכת איטיים *ותר כאשר סביבת הביצוע של 205 נמצאת בחזית, בגלל האופי הדו-מצבי של הסביבה. המשתמש *כול לבחור את גודל סביבת ה-2005 בעזרת פרמטר בקובף 5צ16.5 א . 5 הינו קובצ שה-025/2) קוראת כאשר היא מותחלת. התכולה של קוב% זה קובעת רבים מהמאפיינים של ה-05/2 ועל-5י קביעה של המשתמש. המשתמש יכול להגדיר ב-16.5%5עא00 שסביבת הביצוע של 05 לא תופעל. חלקי מה-05/2, וכל ה-678ט611 860106, נמצאים בזיכרון בכתובות שמתחת ל-640%8, והם מנצלים את הזיכרון שנועד לסביבת הביצוע של ה-2005. מאחר והמעבד נמצא במצב אמיתי בזמן שיישום של 2025 מופעל, *כול יישום של 05 לעקוף את הגנות המערכת של 05/2 ולבצע הוראות שאינן מותרות, או לכתוב על קודים השייכים למערכת ונמצאים מתחת לגבול של 8א640. סביבת הביצוע של 005/2 מספקת מישק חדש לתכנות יישומים יחד עם רמה שלימה של תיפקודיות מעבר למה ש-2005 מאפשרת. המשתמש יכול לעבור מיישום 05/2 אחד למשנהו ולסביבת 2025 בעזרת צירוף של מקשים "חמים". בעזרת בורר התכניות (ז56160%0 מ8זקסזע) אפשר לגשת ישירות ליישום או להתחיל *ישום חדש. כאשר יישום ה-025/2) נמצא בחזית, הוא מתחלק במעבד עם כל *ישומי ה-05/2 הפעילים באותו רגע. המעבד נמצא במצב מוגן, ולכן, *ישומים אינם *כולים 88 להכנס ללא הרשאה למרחב הכתובות של יישום אחר, למנוע מהמעבד לטפל בפסקים, או לפנות ישירות לאמצעי 9/0 (קלט/פלט), הוּכנה תשתית לכך שיישומים מיוחדים יוכָלו להכנס לרמה גבוהה מהרגיל של הרשאות, כדי שיוכלו להשיג הרשאת ק/5 (עקס1). נדוו בכך בהמשך פרק זה, בסקירה על המעבד 80286. המשתמש חייב להגדיר יישומי ‏ 1021 ב-5צ16.5עא0% כדי שיוכל להשתמש בהם. המנעות מטעינת יישומי ‏ 1021 בזמן נסיונות לאתר תקלה *כולה להיות דבר מועיל. בהמשך ספר זה נעסוק באפשרויות החדשות ש-025/2) מספקת ליישומי 05/2. טוב לדעת שרבים מיישומי 3.3 005 טובים עדיין לשימוש בסביבת הביצוע של ₪05 בחסות 05/2. בצורה זו ניתן להנות עדיין מהתוכנה הישנה במשך התקופה שבה יתבצע מעבר הדרגתי ליישומים החדשים שמאפשרת סביבת הביצוע החזקה של 2 מספר הגבלות ושיקולים ביישומי 5 יישומי 05 אינם נתמכים בסביבת הביצוע של 05/2. אי אפשר להשתמש בפונקציות החדשות של 05/2 בסביבת הביצוע של 5סס. יישומי 05 התלויים בתזמון אינם נתמכים על-ידי סביבת הביצוע של 05. אפילו כאשר סביבת ה-05 נמצאת בחזית, היא אינה מקבלת 100 אחוז מזמן המעבד כפי שקורה בסביבת 3.3 2025 אמיתית. כך *תכן, שיישום המבצע תיחקור (אַת:011ק) לאמצעי קלט בסביבת 3.3 205, לא יפעל בסביבת הביצוע של 205 תחת 05/2 בגלל בעיות בתזמון. יישומים שמשתמשים בקריאה לפונקציות שאינן מתועדות על-ידי 3.3 205 לא יקבלו תמיכה בסביבת הביצוע של 2025. *ישומים הרגישים למספר הגירסה של 05 לא יפעלו מאחר ומספר הגירסה של סביבת הביצוע של 205 הוא 10.0. אין גם תמיכה ביישומים המשתמשים בקריאות לפונקציות תקשורת של 05. קיימות הגבלות בשימוש בפסקים (67100689+ם1) מסוימים בתוכנות ה-₪05 וה-8105 בסביבת הביצוע של 2025. אין תמיכה ב-ז6?100 600166 הישן של 05 לטיפול בבלוקים. ישנם הגבלות משמעותיות על ה-ז6ט011 660166 הישן ב-05 לטיפול בהתקני התווים (6601065 ז תת 0). ישנם גם הבדלים בין מספר תכניות שירות ופקודות ב-3.3 2025. לבין תכניות השירות והפקודות הנתמכות על-ידי סביבת הביצוע של 05 ב-05/2. 02 אחראית לניהול משאבי המערכת. זו הדרך היחידה שבה *וכלו הרבה יישומים לנצל את אותה :חידה (כמו הדיסק) באופן *עיל. יש הגבלות על איזה פסקי חומרה *וכלו *ישומי ה-2005 להשתלט ואיזה סוגי חומרה הם *וכלו לתכנת בעזרת גישה ישירה לחומרה. יישומי 505 הנכנסים לתוך לולאה סתמית כדי להמתין שפסקים מסוימים יתרחשו בחומרה, אינם מאפשרים חלוקה יעילה של המעבד. יישומי 005 שיעשו את הדברים הבאים יגרמו לבעיה: *כתבו לתוך שטח בזיכרון שאינו בבעלותם. יכנסו לתוך לולאה סתמית ללא יכולת ביצוע. תכנות מחדש של בקר הפסקים (410116ת60 65קנתז6+%ם1). שימוש או שינוי שעון ה-0//05. אם *ישומים יבצעו משהו מהמתואר לעיל, או ינסו להשתמש במשאבי החומרה של המערכת ללא מעבר דרך מישק התכנות, הם מסתכנים בכך שלא ירוצו או יגרמו לכך שכל המערכת תפסיק לתפקד. זיכרון אמיתי גדול וזיכרון בפועל המעבד 8088, או המצב האמיתי במעבד 80286, תומכים באפשרות מיעון של זיכרון אמיתי עד 1]3. ה-8088 אנוה תומך בזכרון בפועל (081תנט 6), בייכרון אמיתי (עזסמסגת [268) אנוה מתכוונים לזיכרון הפיסי במערכת ולכתובות הפיסיות שיש בזיכרון זה. בסיכרון בפועל (01:1181 6 אנו מתכוונים לכתובות שבהן היישום משתמש ואותן הוא רואה. התפיסה של זיכרון בפועל אינה בשימוש כאשר ה-80286 נמצא במצב אמיתי. מרחב הכתובות בין 838 188-555 מנוצל על-ידי מתאמים לקלט/פלט ממופה-זיכרון וה-8105 ]/20. לכן המצב האמיתי של ה-80286 :כול לתמוך בקודים של *:שומים ובנתונים עד ל-8א640. זאת אומרת, שיישומי ה-05ע אינם *כולים לפגוע במערכת ההפעלה הנמצאת בכתובות מעל 640%. במערכת הפועלת ב-025, אחת הדרכים להשתמש בזיכרון מעל 1/3 היא להשתמש בדיסק בפועל (0219%8 - 615% 6081ז1ט). הדיסק בפועל מוגדר בזיכרון והוא מהיר בצורה משמעותית לעומת הדיסק הקשיח. :ישום *כול להשתמש בו בדיוק כמו שהוא משתמש בדיסק רגיל (דרך קוב מערכת בשם 1ק2). היישום :כול לעבד ישירות כל נתון הנמצא בכתובות שמתחת ל-640%3. לשימוש בזיכרון שמעבר ל-1/18 יש הרבה צדדים שליליים. היישום חייב לנהל את הנתונים שלו בדיסק בפועל בצורה של קוב>, בניגוד לנתונים הנמצאים בזיכרון. הוא חייב לאחסן נתונים ולהביא נתונים חדשים בכל פעם שהוא צריך להשתמש בנתונים הנמצאים על הדיסק בפועל במקום בזיכרון. פקודות היישום הנמצאות על הדיסק בפועל אינן *כולות להתבצע בצורה ישירה. הן חייבות להיות מובאות לזיכרון כמו שמובא רובד (ע006118) ואז להתבצע. הדבר *כול לגרום לעיכובים שלא ניתן לקבל אותם במערכות זמן אמת ולהוסיף מורכבות משמעותית למבנה ולתכנון של היישום. ניתן להשתמש בבנק זיכרון כדי לנסות להתגבר על צוואר הבקבוק של 8א640. שימוש זה ביותר מ-640%8 טוב *ותר מכלום, אבל הוא אינו הרחבה טבעית לאפשרויות הזיכרון של ה-80286 והוא לא מאפשר ליישומים להתרחב בצורה טבעית לתוך ארכיטקטורת האפשרויות של 80286 ו-80386. זו אחת הדרכים שבהן מערכות 8088 מתמודדות עם הצורך לאפשר ליישומים להשתמש ביותר מ-640%8 של זיכרון. למערכות המבוססות על המעבד 8088 אין אלטרנטיבות אחרות. 2 מספקת סביבה שבה אפשרויות המיעון של הזיכרון בעזרת המצב המוגן של 6 :*כולות להיות מנוצלות, לא רק על-ידי מערכת ההפעלה, אלא גם על-ידי היישומים. בסביבה זו, ל-025/2) וליישומי ה-005/2) יש גישה ישירה ל-16/18 של זיכרון פיסי בלי עזרה של אמצעים לא טבעיים כמו דיסק בפועל, או בנק זיכרון. בנוסף לכך, 005/2) משתמש באפשרויות של זיכרון בפועל בסביבת המצב המוגן של ה-80286. במקרה זה, הכתובות שהיישום רואה אנן שוות לכתובות הפיסיות. הדבר מאפשר לכל היישומים שנמצאים באותו רגע: בזיכרון להשתמש בהרבה *ותר ז'כרון מאשר קיים באמת במערכת הפיסית. ליישום נדמה שכל הזיכרון קיים באמת, למרות שהוא לא קיים במציאות. 025/2) מנצלת את העובדה 020 שחלק מהזיכרון הזה אינו דמיוני ונמצא באמת על הדיסק, והיא תביא את הזיכרון הזה לתוך הזיכרון הפיסי האמית*י כאשר היישום ינסה להכנס אליו. ליישום אין שום :דיעה על-כך שהפקודות, או הנתונים, ‏ לא היו באמת בזיכרוו הפיסי כאשר הוא גיסה לבצע אותן או להכנס אליהן. תהליך זה נקרא תמיכה בזיכרון בפועל. נדון בתפישות עבודה אלוי ביתר פירוט בהמשך פרק זה, כאשר נסקור את ארכיטקטורת ה-80286, ובפרק על אפשרויות הטיפול בזיכרון (פרק 2). כבר הדגשנו שחשוב שיהיה ליישומים זיכרון גדול ככל האפשר. עבור 05/2 יש לכך חשיבות רבה יותר כי היא תומכת במספר יישומים בו-זמנית, ועליה לספק מרחבי כתובות גדולים לכל *ישום. אפשרויות הזיכרון בפועל ב-80286 מאפשרות ל-05/2 לעשות זאת, על-ידי תמיכה באפשרויות הניצול של זיכרון אמיתי גדול שמאפשרת ארכיטקטורת ה-80286, 025/2) מאפשרת שימוש ישיר ואופטימלי בזיכרון אמיתי גדול הקיים במערכות מחשב אישיות כיום ושיהיה קיים בעתיד. תמיכה בזיכרון-יתר כפי שראינו, 05/2 מאפשרת ליישום או ליישומים להיות גדולים *ותר מבחינת השימוש בזיכרון, מאשר הזיכרון האמיתי במערכת. מאפיין זה נקרא תמיכה בזיכרון-יתר (%ו%ת6700ט0 עתסות6םת). 025/2) משיגה זאת על-ידי העברת סגמנטים (08מ500100 שַתנסק8ששפ) מהזיכרון לדיסק כאשר לא משתמשים בהם (אנו נדון בסגמנטים בסקירה על הארכטיקטורה של 80286 בפרק זה). הסגמנטים שהשתמשו בהם הכי פחות לאחרונה (₪966 ע11ת606? 1685%) *ועברו ראשוניס לדיסק. לאחר שסגמנט הועבר לדיסק (%ש0 8₪80066), הזיכרון האמיתי שהיה תפוס על-ידו יתפנה לשימוש חוזר ואפשר לאחסן בו סגמנט אחר שיובא מהדיסק (ת! 5₪800606). הסגמנט *ועבר פנימה מכיון שמערכת ההפעלה, או היישום, החליטו לבצע אותו או לגשת אל הנתונים השמורים בו. כדי להפטר מהטגמנטים בזיכרון שהשתמשו בהם הכי פחות לאחרונה, אפשר לא להעביר סגמנטים החוצה, אלא לבטל (61508:6) אותם במצבים הבאים: * היישום יצר את סגמנט הנתונים אם אפשרות לביטולו. = הסגמנט אינו יכול להשתנות מכיון שהוא סגמנט המכיל הוראות. אם צריך להשתמש בסגמנט שימוש חוזר אז אפשר: * להביא אותו חזרה מהמקור. * ליצור אותו מחדש על-ידי היישום. היישום נתן למערכת רשות להפטר מסגמנט הנתונים. גודלם של הסגמנטים יכול להשתנות עד גבול של 64%8, ולכן השטח שהשתחרר כתוצאה מביטול והעברה של סגמנטים מתוסף למרחב הכתובות האמית:. הבה נניח שיש בזיכרון האמיתי שני שטחים בגודל של 3248 וישנו סגמנט בן 8א64% שצריך להעבירו בנימה. במקרה כזה המערכת לא תוכל להעביר את הסגמנט לתוך שטחים שאינם רציפים בזיכרון האמיתי. היא תחליט להזיז סגמנטים בזיכרון האמיתי במטרה לצרף מספר שטחים זה לזה וליצור על-ידי כך שטח פנוי גדול *ותר. תהליך זה נקרא הזזת טגמנטים (ם10010 +מ5606). 1 אפשרויות ניצול הזיכרון באמצעות ה-80286 במצבו המוגן ימאפשר ליישומים גדולים להתקיים בו מבלי להיות מודעים לגודל הזיכרון העומד לרשותם. מצב זה שונה לחלוטין מהמבנים השכבתיים שיישומים גדולים ה:ו צריכים לטפל בהסם בעבר, כאשר היו גדולים *ותר מהזיכרון שעמד לרשותם. היישומים הלו צריכים להיות מתוכננים בגודל מסוים ובנויים בדרך מסוימת כדי שיוכלו להביא בעת הצורך, את ההוראות שהיו בתור לביצוע, אל מרחב הכתובות שלהם. יישומים שהשתמשו בשכבות היו צריכים לקחת בחשבון שמרחב כתובות המוקצה לנתונים בא על חשבון מרחב כתובות להוראות התכנית ולהיפך. בסביבה של תמיכה בזיכרון-יתר וזיכרון בפועל, :ישומים אינם צריכים לעסוק בארגון ובמבנה אלא רק בפרטים הבאים: - במספר הסגמנטים שהמערכת ממליצה שיהיו להם, - מספר הסגמנטים המקסימלי שבו המערכת *כולה לתמוך, - ההשלכות על הביצוע כתוצאה מכמות ההעברות שהמערכת תבצע. סביבה רבת יישומים ישנם שיפורים בסביבת 205 המאפשרים תמיכה בסביבה רבת יישומים. אולם, שיפורים אלה אינם עולים בקנה אחד עם רבות מההגבלות הקיימות במצב האמיתי ב-80286. קשה לתמוך בצורה *עילה ביישומים רבים של סביבת 05 משופרת בזיכרון של 640%9. אפשר להשתמש בתחבולות כדי להעביר יישומים לתוך דיסק בפועל וממנו, אבל הביצוע הסופי *כול להוות בעיה. בנוסף לכך, המצב האמיתי ב-80286 אינו מגן על היישומים זה מפני זה, ואין הוא מגן על מערכת ההפעלה מפני היישומים. בעיות אלו נעלמות בסביבת 05/2. המערכת מספקת מרחב כתובות דמיוני גדול לכל יישום המופעל במסגרתה. 025/2) משתמשת במנגנוני הגנה של ה-80286 כדי לספק הגנה בין יישומים לבין מערכת ההפעלה ליישומים. כמו כן, 25/2) מספקת ניהול משאבים וכללים הכרחיים כך שיישומים מתוחכמים רביס *וכלו לפעול זה בצד זה באותה מערכת ללא תקלות. אפשר לתת ליישומים עדיפות ביצוע, כדי שיקבלו את הכמות הדרושה של זמן המעבד. 2 מאפשרת ליישומים רבים לפעול במקביל. זאת אומרת שמשתמשים *כולים להגדיל בצורה משמעותית את פריון העבודה שלהם אם הם *תחילו להשתמש במחשבים שלהם בצורה *ותר (בונה: אפשר לקבל נתונים ממקור מרוחק בעזרת תוכנת תקשורת ובאותו זמן לבצע חישובים בגיליוןו אלקטרוני גדול, בעת שהמשתמש מפעיל מעבד תמלילים בחזית ומדפיס תזכיר. המשתמש *כול לעבור מיישום אחד למשנהו כדי לעקוב אחר הפעילות בכל אחד מהם. 2 מאפשרת שימוש במגוון רב *ותר של אפשרויות בתוכנה, כי היא מספקת סביבה שבה *ישומים *כולים לפעול זה בצד זה ולהתבצע מבלי להפריע זה לזה. קודם לכן, המשתמש אולץ לרכוש מערכת.: משולבת של יישומים שיכלו להתבצע יחד בצורה נכונה בסביבת ה-20025. בעולם החדש של 05/2, כללי פיתוח היישוסם מאפשרים ליישומים שפותחו על-ידי משווקים שונים לפעול *חדיו. הדבר פותח למשתמש אפשרות לבחור את היישום הטוב ביותר לכל בעיה. 2 סביבה רבת משימות ביצוע רב-משימתי הוא מצב, שבו המערכת מספקת. ליישום סביבה, שבה הוא נראה למשתמש כעושה יותר מפעולה אחת באותו זמן. במערכת יש רק מעבד ראשי אחד, ולכן אין היא *כולה לבצע בפועל *ותר מאשר משימה אחת בו-זמנית. אולם, הרבה פעמים קורה שביישום יש חלקים הניתנים לביצוע במקביל, בתנאי שקיימות נקודות סינכרון המוגדרות היטב. קורה גם שהמעבד או :כול להמשיך לבצע חלק של עבודה מסוימת, כי עליו לחכות לביצוע קלט/פלט מהתקן חיצוני איטי, כמו מקלדת או דיסק. סביבה רבת משימות מאפשרת לחלקי העבודה להיות בנויים בצורה כזאת, שבזמן שחלק אחד של העבודה ממתין שמשהו יתרחש במערכת, חלק אחר *ורשה להשתמש במעבד. בסביבה רבת יישומים, יש בכל *ישום חלקים של עבודה המחלקים ביניהם את זמן המעבד. 5 מתוכננת להיות סביבה חד-משימתית, אשר בה המערכת יכולה לבצע רק חלק אחד של העבודה בו-זמנית ורק ביישום אחד. כאשר יישום מצפה לנתונים מהדיסק, הוא ממתין להם ואינו עושה דבר אחר בזמן ההמתנה. יכול להיות שתתהה על כך שתכניות מסוימות בסביבת ה-205 נראות לך רב- משימתיות. נכון שעל-ידי עקיפת המישקים הרגילים של 2025, אפשר לבנות תכנית שיהיו לה מאפיינים של ביצוע רב-משימתי בסביבת ה-12005. אולם, סביר להני שיישום שיעשה זאת, לא *פעל עם יישומים אחרים, במיוחד אם יישומים אלה *עקפו גם הם את מישקי 205 הרגילים, כדי לאפשר לעצמם מאפיינים של ביצוע רב-משימתי. הביצוע הרב-משימתי ב-05/2) מאפשר שלכל יישום בסביבה רבת **שומים *ה:ו מאפיינים של ביצוע רב-משימתי. כל *ישומי 05/2 יפעלו זה בצד זה ולתבצעו בו-זמנית ללא הפרעה זה לזה. כמובן שככל שיהיו *ותר *ישומים, כך יקבל כל *ישום פחות מזמן המעבד. ב-025/2) ניתן לתת ליישומים עדיפויות, כדי שיישומים שבעיית הזמן אצלם היא קריטית, יקבלו זמן מעבד בעדיפות לעומת יישומים רגילים. יחידת העבודה הבסיסית הניתנת לביצוע ב-025/2) נקראת 6086זת). 680זת+ מורכב מסידרה של הוראות תכנית שיתבצעו במערכת. ב-686זת+ יש מאפיינים הדומים לתכנית 2025 פשוטה. יחידת הבעלות הבסיסית על משאבי המערכת נקראת תהליך (06058זק). כל תהליך מורכב מ-1:6806+ אחד או יותר. מספר 6808זת+ של אותו תהליך מתחלקים במערכת משותפת של משאבי מערכת (פרט לדברים כמו מחסנית, 5020%). נדון במאפיינים אלה בפירוט בפרק על ביצוע רב-משימתי וסביבה רבת :ישומים (פרק 3). ביצוע רב-משימתי נחשב לצורך חיוני בסביבת המערכות החדשה של 05/2. ללא מאפיין זה; לא היה אפשר לפתח יישומים מתוחכמים שהיו *כולים לפעול זה בצד זה בסביבה רבת *ישומים. משתמשים מצפים ליישומים שיוכלו להגיב במהירות לקלט מהמקלדת כאשר בו בזמן הם ימשיכו במסלולי עיבוד אחרים בתכנית. ככל שהמעבדים הופכים להיות מהירים *ותר, המהירות היחסית שלהם הופכת לגבוהה *ותר ביחס לאמצעים חיצוניים שבהם הם תומכים. תת-מערכות תקשורת ויישומים בזמן אמיתי דורשים שבמסגרת של ביצוע רב-משימתי יהיה ניתן להשגיח על אירועים חיצוניים בזמן שמבצעים חלקי תכנית אחרים בעדיפות נמוכה *ותר. ללא ביצוע רב-משימתי, לא היה ניתן לבצע דבר ממה שתואר לעיל בסביבה רבת יישומים. 3 תקשורת בין תהליכים וו הינה יחידת הביצוע הבסיסית בסביבת 05/2). מספר 276865+ *וצרים תהליך. בסביבת הביצוע הרב-משימתי ב-05/2, אם כל ה-6865ע2+ קשורים לאותו תהליך, קל להם לפעול בצורה מתואמת ולהסתנכרן זה לזה בכל זמן. ה-176805+ מתחלקים באותם משאבי מערכת. באופן טבעי, תהליכים שונים אינם מתחלקים באותם משאבי מערכת. אי לכך קשה לתהליכים שונים להעביר ביניהם מידע, או להסתנכרן בצורה מתאימה (אם זה נדרש). מצב זה מוביל לצורך להשתמש בתקשורת בין תהליכים. 02 מספק הרבה מנגנונים המאפשרים לתהליכים שונים להתקשר בניהם ולהסתנכרן זה לזה: אתת (560827076) 41 ואתת מערכת. שיגרה לטיפול באותות (ז616ת8ת 81ת51). צינורות (65כוק). תורים (116₪65). זיכרון משותף (עזסותסות 606ז58). נדון בתפישות אלו בהרחבה בפרק על ביצוע רב-משימתי וסביבה רבת **שומים (פרק ‏ 3). על-ידי שימוש במספר רב של אפשרויות לתקשורת בין תהליכים. 2 מספקת סביבה שבה *ישומים כמו גם תת-מערכות יכולים להיות מתוכננים בהתאם לתפקיד שאותו הם צריכים לבצע, ולמאפיינים שהם צריכים להציג. אם יחידות העבודה השונות הם תהליכים, אז הם מטבעם מוגנים זה מזה ומשפיעים זה על זה רק דרך קווי תקשורת מוגדרים היטב. מישק קישור דינמי ותמיכה בשפות עיליות ב-005/2) יש תמיכה ב-6 שפות תכנות המשווקות על-ידי יבמ: קובול/2 פורטרן/2 2 מקרו אסמבלר/2 פסקל/2 בייסיק/2 שפות אלו תפעלנה הן בסביבת 3.3 205 והן בסביבת 05/2, ולכן ניתן לכתוב תכניות שתפעלנה בשתי סביבות הביצוע. לצורך כך יש להשתמש בפונקציות מיוחדות של 65/2 וש לדאוג לכך שהפקודות תה"נה תואמות לכללים מסוימים. תת-קבוצה זו של תוכנת 801 05/2) נקראת מישק לתכנות יישומי משפחה (%671866ת1 שתומתתת8זקסץע תס1108%1קק ע11ם81). השימוש במישק זה מאפשר להעלות את פריון העבודה בעת פיתוח. יישומים שיוכלו לרוצ+ הן ב-05כ 3 והן ב-025/2) (כיישום 05/2 במצב המוגן), בתנאי שאין צורך במאפיינים החדשים של 025/2), ובתנאי שהיישומים *וכלו להשתמש במישק זה. שלוש השפות הבאות (מתוך הרשימה הקודמת) מאפשרות להשתתף במישק התכנות האחיד (6671806ת1 קתומונ8זקסז תסממנמס?)), שהוא אחד המרכיבים בארכיטקטורת היישומים הבין-מערכתית (544 - 6:ש1)600ת16 5פת201108)10 5ם566ע5) של 4 יבמ: = קובול/2 * פורטרן/2 .6/2 אם אתה מתעניין בסביבת המיחשוב ואפשרויות השימוש במישק שמספקת ארכיטקטורת המערכות של יבמ, אז השיקול של בחירת השפה המתאימה ליישום הוא שיקול חשוב. . המישק לתכנות יישומים (21 - 60:1806ם1 שתותתתה8זקסזק תס110401סקה), משתלב ביתר טבעיות עם מבנים האופיינים לתכנות בשפות גבוהות. אופי הקישור הדינמי של מישק זה מוסיף מימד חדש של גמישות למישק של מערכת ההפעלה, בהיותו כלי ‏ רב עוצמה. :ישומים מתייחסים לפקודות חיצוניות כקריאות רחוקות (פ]0641 ז18) ולכן אינם *כולים להכנס למעשה לפקודות אלה, אלא עד לאחר שהתכנית תוטען לזיכרון, או עד אשר היא תפעל. פקודות מערכת ההפעלה התומכות במישק קישור דינמי מסוים ניתנות לשינוי תוך שמירת תאימות עם *ישומים קיימים, ללא צורך לבצע מחדש הידור או קישור. בנוסף לכך, מישק הקישור הדינמי ניתן להרחבה לשירותים שתת- מערכות או יישומים אחרים ירצו לספק למערכת הכללית. זו הסיבה מדוע הקישור הדינמי שמאפשר המישק לתכנות *ישומים ב-05/2 הוא מודולרי וניתן להרחבה. אפשר להוסיף קבוצות שלמות של תכניות שירות למערכת בצורה שתראה כאילו ‏ הם חלק בלתי נפרד של המערכת, אפילו אם הן מסופקות על-:די משווקים עצמאיים, או על-ידי קבוצה שונה בתוך הארגון עצמו. דוגמה טובה לכך יכולה להיות תת-מערכת התקשורת, אשר *כולה להיות מורכבת בצורה כזו, שיישומים י*תייחסו אליה כאל הרחבה טבעית של מערכת ההפעלה. המאפיינים של מישק הקישור הדינמי מאפשרים דברים נוספים. בסביבת 05 הישנה, כאשר תכנית קושרה (%8606ם11) עם קבוצה של פקודות באמצעות הפניות חיצוניות, קטעי התכנית החיצוניים הפכו לחלק מהתכנית מאותו רגע והלאה. אם השגרות החיצוניות שונו לאחר מכן, היה צורך לקשר את היישום מחדש. השגרות החיצוניות האלו הופכות לחלק בלתי נפרד של היישום לאחר הקישור, ונגררות איתו תמיד. קישור דינמי משנה את כל התמונה. לאחר שהקישור בוצע, היישום אינו קשור לשגרות החיצוניות, והן אנן מהוות חלק ממנו. רק כאשר היישום מופעל במערכת, פונים ומשתמשים בשגרות הקשורות אליו. למאפיין זה יש *תרונות רבים ההופכים את סביבת הקישור הדינמי ב-005/2 לטובה *ותר מכל דבר אחר שקדם לה. אפשר לשפר את התיפקוד של מישק הקישור הדינמי תוך שמירת התאימות עם יישומים ישנים שעברו כבר את תהליך הקישור. היישומים החדשים אינם צריכים להכתב מחדש או להתקשר מחדש. הפקודות העומדות מאחורי מישק הקישור הדינמי ניתנות לשינוי כללי, כדי לאפשר תמיכה בסביבה של מערכות שונות. גם אז היישום אינו צריך להתקשר מחדש כדי לפעול באותה סביבה חדשה. הפריט היחיד שחייב להישאר ללא שינוי הוא המידע שמרכיב את ההפנייה החיצונית לספריית הקישור הדינמי ולשיגרה בתוך הספריה. מידע זה אינו דרוש ליישום עד למועד שבו הוא מוטען לצורך ביצוע, או עד לרגע שבו הוא מבוצע למעשה. קישור דינמי מונע את הפיכת השגרות החיצוניות לחלק בלתי נפרד מהיישום. 55 במקרה של הפניות חיצוניות למישק הקישור הדינמי, תכנית היישום אינה מכילה למעשה את השגרות שאליהן היא מחוברת בצורה דינמית. למעשה, היא מכילה רק את ההפניות אליהן. המערכת תפענהח קשרים אלה בזמן הטעינה או ההרצה. שגרות הקישור החיצוניות אינן הופכות לחלק מהיישום עד הרגע שבו משתמשים בו. לכן רק מערך אחד של שגרות צריך להיות דרך קבע בזיכרון גם אם יישומים רבים מתחברים לאותו מישק קישור דינמי. בכך משיגים חיסכון רב בשטח האחסון החיצוני הדרוש לאותם *ישומים. *תרונות הקישור הדינמי אינם מסתיימים כאן. אם הפקודות התומכות במישק מסוים לקישור דינמי נמצאות כבר בזיכרון האמיתי כתוצאה משימוש ביישום - קודם, אז כאשר יישום חדש מנסה להשתמש במישק, המערכת תבין שהפקודות התומכות במישק זה נמצאות כבר בזזכרון והיא תשתמש בפקודות שבז:כרון, במקום לפנות לדיסק ולהביא אותן שוב. זה משפר את ביצועי המערכת ואת מאפייני השימוש בזיכרון בסביבה רבת *ישומים. יישומים *כולים להשתמש בקישור דינמי בשתי דרכים שונות: בעת טעינה (6מ1? 1086) או בעת ריצה (6ם%1 תטז). השימוש בזמן טעינה הוא מה שרוב האנשים מכירים. במקרה זה כל ההפניות המקושרות בצורה דינמית (ס81מע0 אתזן) מוחלפות בזמן שהיישום מוטען לראשונה לתוך המערכת כדי להתבצע. בזמן זה, הפקודות של המישק המקושר בצורה דינמית יוטענו או לא *וטענו לזיכרון בהתאם למאפיינים של הסגמנטים שלהם (הטען מראש, או הטען לפי דרישה, שידונו בפרק 2) ואם הכמות הפנויה של הזיכרון הפנימי מספיקה עבור כל הסגמנטים שיש צורך להטעינם. נדגיש שוב שיש צורך להמיר את ההפניות החיצוניות כאשר התכנית מוטענת לראשונה. קישור דינמי בזמן ריצה מוסיף מימד חדש לגמישות של הקישור הדינמי. כאשר משתמשים בקישור דינמי בזמן ריצה, היישום אינו מחליט במפורש באיזה מישק הוא רוצה להשתמש, עד שפקודות היישום מבוצעות למעשה. קיימים מישקי מערכת המאפשרים קישור דינמי לשיגרה מסוימת בספריה במשך זמן הביצוע של התכנית. לדוגמה, תכנית יכולה להיכתב כד שתשאל את המשתמש באיזה חבילת קישור דינמי צריך להשתמש כדי לבצע פעולה מסוימת. המשתמש *וכל להזין את המידע הדרוש תוך כדי ביצוע התכנית, אשר תוכל להשתמש במידע הזה כדי להתחבר למישק חיצוני ולהעביר לו את השליטה על המשך הביצוע. תאימות עם מערכת הקבצים של 505 מערכת ניהול הקבצים ב-05/2 משתמשת בטבלת הקצאת הקבצים (ש16ק 1 - 18016 ם811008%10) בדיוק כמו ה-05כ2. ל-05/2) יש תמיכה דומה במחיצות של הדיסק הקשיח, אשר יש צורך בהן בדיסקים קשיחים בעלי נפח אחסון הגדול מ-3218. תאימות מערכת הקבצים עם 205 הינו מאפיין חשוב במיוחד של 05/2. תודות לתאימות זו, ניתן להעביר נתונים מ-205 ל-05/2 ללא צורך בשינויים. אם המשתמש מריף יישום 05 המפיק נתונים לצורך אחסון בדיסק קשיח או דיסקט, אז הנתונים האלה ניתנים לשימוש מיידי כקובף 025/2. כללי מתן השמות לקבצים בשתי המערכות זהים, והם מאפשרים למשתמש לשמור על מערכת עיקבית של שמות בשתי מערכות ההפעלה. 616 ניהול מבוקר פסקים של התקנים חיצוניים אמצעים חיצוניים נתמכים בסביבת ה-25/2) על-ידי תכניות שירות הנקראות 05 060166. בסביבת ה-26025 אפשר לתמוך באמצעים חיצוניים בצורה של חקירה | (שת0111ש) מכיון| ש-205 ינה סביבה חד-יישומית וחד-משימתית. בנוהל חקירה, כאשר :ישום או 68ש6"1 660106 מנסה להגיע אל אמצעי מסוים לצורך ביצוע פעולה כלשהי ונכשל, הוא *משיך לחקור את האמצעי החיצונל בעזרת | לולאה אין-סופית, עד אשר האמצעי החיצוני *סיים את הפעולה ויתפנה. כל פעולה אחרת לא תתבצע במערכת עד לתום החקירה. התכנית נמצאת בזיכרון ושואלת כל הזמן "האם גמרת?" חקירה מבזבזת כמות גדולה מאוד של משאבי עיבוד והיא אינה מתאימה לסביבה רבת *ישומים ורבת משימות, שבה חשוב להשתמש בכל משאבי המערכת בצורה יעילה ככל האפשר. הגירסה של ה-5:ז0ט011 660106 ל-059/2 נבנתה כך שתוכל להשתלב בסביבה רב-משימתית. ה-ז6ש671 660166 ב-25/2) אינו מחכה להתקן החיצוני שיגמור לבצע את מה שנתבקש לעשות. מה שקורה בפועל הוא, שהמערכת מבצעת עבודה אחרת, והתכנית מחכה שיהיה פסק (006[ת60ת1) בהתקן החיצוני. פסקים הם הדרך שבה התקנים חיצוניים עוצרים את המערכת ומאלצים אותה לשנות את הפקודות שאותן היא מבצעת באותו רגע. המערכת *כולה לבצע פקודות של יישומים עד אשר ההתקן החיצוני מבקש שישרתו אותו על-ידי הפקה של פסק. נדון שוב בפסקים בסעיף בפרק זה העוסק בארכיטקטורה של ה-80286 ובפרק על ניהול מבוקר פסקים של התקנים חיצוניים (פרק 6). 5 אינה מספקת מנגנון כללי המאפשר לפקודות של תכנית *ישום להתבצע בזמן שהמערכת ממתינה להתקן חיצוני שישלים את עבודתו. העובדה ש-005/2) מסוגלת לעשות זאת היא הסיבה העיקרית ליכולת שלה להשתמש במערכת בצורה אופטיימלית. מספר התקנים חיצוניים *כולים לבצע עבודה בו-זמנית עבור אותו *ישוס, או עבור *שומים שונים. בזמן ש-ז6ש6:1 060106 מסוים מחזיר את השליטה למערכת ומחכה לאירוע שיקרה בהתקן החיצוני, תכנית היישום יכולה לבקש שירות מהתקן חיצוני אחר. ההתקן האחר *כול להתחיל את עבודתו לפנ שהראשון משלים את פעולתו. ניתן לגרום לכך שהדיסקט, הדיסק הקשיח, המדפסת, כניסות התקשורת וכו' *וכלו לעבוד בו-זמנית. מאפיין זה מגביר את העוצמה של המערכת, הרבה מעבר לאפשרויות של 05כ. תת-מערכות לקלט/פלט (תצוגה, מקלדת ועכבר) 2 מספקת תמיכה באמצעי קלט/פלט כמו תצוגה, מקלדת ועכבר באמצעות שילוב של תכמות להגדרת אמצעי קלט/פלט ומישקי קישור. דינמיים. תת- מערכות אלו משולבות לתוך מאפייני מישק המשתמש של המערכת, ומסבקות מישקים מיוחדים שמקלים על השימוש באמצעי הקלט/פלט החיצוניים. תת-מערכת התצוגה מספקת מערך של מישקים ברמה גבוהה *ותר ממישקי התצוגה ת10 +ת1 31025 שקיימים בסביבת 1205. תת-מערכת המקלדת מאפשרת ליישום לקבל כקלט הן 60066 ם508 והן מייצגים של קוד 85011. הדבר מתוכנן כך שהיישומים לא יזדקקו ל-00]1) כאשר הם מחכים להקשה מהמשתמש. תת-מערכת העכבר מאפשרת ליישום לנהל בצורה כללית את העכבר. היא יכולה לשלוט בדרך שבה *טופל הסמן של העכבר, ואיזה אירועים המופקים על-ידי העכבר *כללו כנתונים באוגר הקלט שלו. כל אחת מתת-מערכות אלו מספקת פונקציות המאפשרות ליישום, או לתת-מערכת 7 אחרת, ליירט פונקציות קיימות. על-ידי השתלטות על הפונקציות של התצוגה, המקלדת והעכבר, *ישום :כול להרחיב או להחליף את הפונקציות הבסיסיות המסופקות על-ידי תת-מערכות אלו. תמיכה בשפות לאומיות ואמצעים לטיפול בהודעות אנו חיים בתקופה שבה חברות שיווק מצפות שתהיה להן גמישות באספקת תוכנה לשם שימוש במדינות שונות, כפי שמכתיבים הצרכים העסקיים שלהן. משווקי תוכנה עצמאיים רוצים שהמוצרים שלהם *היו משווקים במדינות רבות תוך השקעה מינימלית בשינויים כתוצאה משפה, או ממידע האופיעי למדינה זו או אחרת. הדבר יאפשר להם להחזיר חלק גדול יותר של ההשקעה בתוכנה המקורית. 2 תומך ב-11 שפות לאומיות עם המקשים הקשורים אליהן. זאת אומרת שכל מסכי ה-05/2, ההודעות והתיעוד מתורגמים לשפות המתאימות ושהתמיכה במקלדת מכירה את מערך (סידור) המקשים המתאים. השפות הן: דנית. הולנדית. צרפתית. גרמנית. איטלקית. נורווגית. פורטוגזית. ספרדית. שבדית. אנגלית בריטית. אנגלית אמריקאית. 2 תומכת גם בשישה מערכי מקלדות נוספים: בלגית. קנדית. פינית. ספרדית דרום-אמריקאית. צרפתית שוויצרית. גרמנית שוויצרית. התמיכה בעברית זמינה על-ידי יבמ ישראל. 02 תומכת גם בשינוי דף קוד (8₪6ק 6066) לצורך צגים ומדפסות מיוחדים. דף קוד *כול להחשב כמערכת התווים, או תבנית התווים (5)ם0ס1) של הצג או המדפסת. תמיכה זו מאפשרת ליישומים לבחור את מערכת התווים לצג ולמדפסת המתאימה ליישום מסוים. דף קוד המתאים ליישום מסוים לא היב להיות זהה לשפה שנקבעה בקוב% 5צ16.5ע6011. כדי לטפל בזה, 05/2 מספקת תמיכה לשני דפי קוד בו-זמנית, אשר ניתנים לבחירה בזמן תהליך ההתקנה. המשתמש והיישום *כולים לבחור בדף הקוד המתאים כשיש צורך בכך. דפי הקוד הנתמכים ב-05/2: 068 7 - 45011 6ק, ארה"ב ומדינות אחרות. : 100 - ריבוי שפות. (81שת:1611נותז), מדינות אירופאיות רבות. 0 - פורטוגזית. 3 - צרפתית קנדית. 5 - שפות נורדיות. פרט למעבר מדף קוד אחד למשנהו, קיימים מאפיינים נוספים לתמיכה בשפות לאומיות המסופקים על-ידי 25/2). מאפיינים אלה הופכים את כתיבת התכניות בסביבה בינלאומית לקלה *ותר. הם באים לידי ביטוי בעת הטיפול בהודעות של 05/2. הם מסוגלים להפריד בצורה מוחלטת את ההודעות שהיישום משתמש בהן בתכנית לבין ההודעות המוצגות למשתמש. ההודעות נמצאות בקובף נפרד הניתן לתרגום בצורה עצמאית על-ידי אנשים ללא ידע במיחשוב, אך בעלי ידע בשפות זרות. זו דרך מאוד *עילה לפתח תוכנה למדינות שונות מבלי לבצע הידור מחדש, או קישור מחדש לתוכנה. המתרגמים עצמם *כולים ליצור קוב הודעות חדש בעזרת כלים פשוטים לעריכת קבצים. גם מעצבי תוכנה *כולים להשתמש בטכניקת התרגום כדי להפריד את השפה שתוצג למשתמש הסופי ממה שהמתכנתים עובדים עליו. המתכנתים *וכלו להמשיך את מה שהם עושים בעוד שמומחים בהנדסת אנוש *וכלו להתרכז בניסוח הטוב ביותר של ההודעות למשתמש. חלוקת העבודה בדרך זו תומכת בפיתוח תוכנה ידידותית למשתמש. הגרה של תכניות 205 ל-05/2 תכנית *ישום אשר פועלת תחת 05 לא תפעל בסביבת הביצוע של 05/2. הדרך שבה תכנית מתחברת למערכת שונה בשתי מערכות ההפעלה. ב-2025, תכניות משתמשות במישק ה-דאז, כאשר ב-05/2) תכניות משתמשות במישק הקישור הדינמי. כדי שנוכל להרלף ישום 205 שנכתב בשפה עילית כיישום 05/2, חייבים לבצע הידור וקישור מחדש של התכנית. סביר להניח, שיהיה גם צורך לבצע שינולים בתכניות מקור, ובוודאי שיהיה צורך לבצע שינויים בתכניות הכתובות בשפת אסמבלר. יהיה צורך לשנות את כל קריאות ה-א לקריאות קישור דינמיות המופנות למישק לתכנות יישומים ב-05/2. התיעוד הטכני הקיים מספק הנחייה איך לעבור משגרות הביצוע של דא1 205 למישק לתכנות *ישומים ב-05/2. תהליך ההסבה של תכנית 05 לתכנית היכולה לפעול בסביבת הביצוע של 05/2 הינו תהליך הג'וני, אפילו אם התכנית אינה משתמשת באף אחת מהאפשרויות החדשות ב-025/2). זאת, מאחר שתכנית ב-05/2) יכולה להתקיים בסביבה רבת היישומים של 05/2, וניתן להשתמש בה מבלי להתייחס למגבלות זיכרון. אפשר לשפר את רוב היישומים על-:די ניצול של פונקציות חדשות הקיימות ב-05/2. לדוגמה, תכניות גיליוו אלקטרונל ניתנות לשיפור בכך שהן :תמכו בנפחים גדולים של נתונים מבלי להעביר נתונים אל הדיסק וממנו. הגיליון האלקטרוני יגראה ליישום כאילו כולו נמצא בזיכרון. במציאות, אם למערכת אין מספיק זיכרון פיסי, 05/2 תעביר חלק מהגלליון אל הדיסק. המשתמש נוכל לרכוש זיכרון פיסי יותר גדול ועל-ידי כך להמנע מכל העברה של נתוני | הגיליון. תכנית הגיליון האלקטרוני עצמה לא שונתה, אך מאפיני הביצוע שלה שונו לטובה בצורה משמעותית. משווקי תוכנה עצמאיים *וכלו לשפר את היעילות ואת *כולת התחרות של התוכנה שלהם על-ידי ניצול ‏ רמה חדשה של פונקציונליות הקיימת בסביבת הביצוע של 05/2. ניתּן לצפות שבמשך הזמן, בעקבות הלח שמפעילים משווקים ובעקבות הלחצ שמפעילים משתמשים הרוצים שכל היישומים יפעלו יחד בסביבת הביצוע של 05/2, *וסבו רוב היישומים הפופולריים לסביבת הביצוע של .2 המאפינים של המישק לתכנות ישומים המישק לתכנות יישומים ב-025/2) פועל הן באצווה והן במקוון. היאשום מפיק קריאה רחוקה ([041 ז8+) לשם של פונקציה. אחר-כך הוא מעביר את כל הפרמטרים לפונקציה על-ידי דחיפתם לתוך מחסנית (5640%). ניתן גם לדחוף את כתובות הפרמטרים לתוך המחסנית. כל הכתובות מורכבות מבורר (ז50160%0) בן 16 סיביות. (סגמנט) ומערך בן 16 סיביות של כתובת יחסית (011800%) בסגמנט (ר' הסקירה על המיקרו-מעבד בפרק זה). מספר הפרמטרים לפונקציה מסוימת הוא תמיד קבוע. בחזרה מהפונקציה, *מצא קוד החזרה באוגר (ז100159%0) 8% (ר' הסקירה על המיקרו-מעבד בפרק זה). פרמטרים :כולים להיות מוחזרים על-ידי הפונקציה. במקרה זה, היישום *דחוף את הכתובת של הפרמטר המוחזר לתוך המחטנית לפנ הקריאה לפונקציה. הפונקציה תמיד מוציאה את כל הפרמטרים מהמחסנית. הפונקציה שומרת לעצמה את כל האוגרים פרט לאוגרים 4% ו-05/זת. לא נציג בספר זה כל פרט על כל מישק לתכנות *ישומים. אתה יכול להשיג את המידע המפורט מתוך הספרות הטכנית הקיימת על 05/2. בפועל, כאשר אנו מכסים נושא מסוים, אנו דנים ברמות שונות של פירוט ברוב הפונקציות החשובות של המישק לתכנות *ישומים הרלוונטיות לנושא זה. במספר מקרים, אנו דנים בפרמטרים ובפונקציות ברמה מאוד כללית של פירוט. במקרים אחרים, אנו מביאים תיאורים לוגיים של כל הפרמטרים לפונקציה מסוימת, כדי להראות מה מייצגים הפרמטרים. במקרים אחרים, אנו מראים את כל הפרמטרים לפונקציה מסוימת עד רמת פירוט של שפת מכונה. אנו מספקים את הפרטים אודות מישק התכנות בצורה סלקטיבית זו, כדי להצביע על הנקודות החשובות ולהקל על ההבנה של רמת התיפקוד של אפשרות מסוימת ב-05/2. קירה על המיקרו-מעבד 80286 בסעיף ‏ זה אנו סוקרים, את המאפיינים והפונקציות החשובות ביותר של המיקרו-מעבד 80286. סקירה זו תעזור לך להבין טוב *ותר את התמיכה העומדת מאחורי חלק מהמאפינים החדשים של 05/2. 05/2 נשענת על המאפיינים החדשים של 80286 שיספקו פונקציות כמו: תמיכה בזיכרון אמיתי גדול. תמיכה בזיכרון בפועל. הגנה על נתוני מערכת ההפעלה והיישום. הגנה מפני ביצוע ‏ לא נכון של פקודות היישום על-ידי מערכת ההפעלה. * הגנה של המערכת מפני *ישומים המבצעים פקודות מסוימות של המעבד. 20 לפני שנרד לפרטים של ה-80286, הבה נראה בקצרה כיצד נראית מערכת מחשב אישית. מערכת המחשב האישי תרשים 1 מכיל תיאור סכימטי פשוט וכללי של מערכת מחשב אישית. אנו רואים שהמיקרו-מעבד מהווה רק חלק קטן של מערכת מחשב אישית. אפיק המערכת הינו "האוטוסטרדה" שדרכה מתקשרים רכיבי מערכת המחשב האישי. זיכרון המערכת מכיל את הפקודות והנתונים שאליהם ניגש המיקרו-מעבד בזמן ביצוע. אמצעי הקלט/פלט מתקשרים ישירות למיקרו-מעבד, או משתמשים ב-18 כדי להציב מידע בזיכרון המערכת. עכשיו, הבה נסתכל בכל אחד מהרכיבים האלה ביתר הרחבה ונכיר את הטרמינולוגיה שלהם. קוו פסקים בקר(*) הפסקים פסקים בלת: ניתנים למיסוך כתובת ק/פ זיכרון נתוני זיכרון צג המערכת נתוני ק/פ בקרת ק/5פ אמצעי ק/פ דיסק דיסקט מדפסת מקלדת עכבר תרשים 1. תיאור סכימטי של מערכת מחשב אישי +|1 אפיק המערכת אפיק המערכת (פטס 2מ5%0ע5) הינו מעין "משפך", שדרכו עוברת כל התקשורת בין המרכיבים השונים של המערכת. אם אי פעם התקנת כרטיסי הרחבה במחשב האישי שלך, חיברת את התקעים של כרטיסי ההרחבה לאפיק המערכת. האפיק מגדיר מערכת של חוקים שחלקי המערכת השונים חייבים לציית לה כך שיוכלו לעבוד במשולב כראוי. למאפיינים של אפיק המערכת יש השפעה חשובה על ההתנהגוּת והביצועים של המערכת. זו הסיבה שיבמ הפכה את ארכיטקטורת המיקרו-ערוץ ([6תםת8ת06 סעסו]) לחלק אינטגרלי של ההכרזה על החומרה של המערכת האישית/2 (2/ם5%6ע5 81ת50ע6ע - 5/2ק). זיכרון המערכת ז*יכרון הוא חלק אינטגרלי של המערכת, ותפקידו לאחסן את הנתונים השוטפים ואת פקודות המעבד. המקום בזיכרון שמשתמשים בו נבחר על-ידי כתובת פיסית (8001658 51081עתק) שמוצבת באפיק המערכת. הגודל של הכתובת הפיסית שניתן להציב באפיק קובע את הכמות המקסימלית של זיכרון פיסי שניתן להתקין במערכת. ישנם שלושה סוגים שונים של זיכרון הקיימים במערכת מחשב אישית: * בא - עזסתת6] 800655 8602 - זיכרון לגישה אקראית. * 01א - עזסת6]/א ע1תכ) 686 - זיכרון לקריאה בלבד. ו 1/0 66סס18/ עזסתסו - קלט/פלט ממופה ז*כרון. ה-241%1 נמחק כאשר מנתקים את המתח מהמערכת. ניתן לקרוא נתונים מה-בא וויתן לכתוב בו. פקודות תכנית המרכיבות את היישוּם שנבחר על-:די המשתמש נקראות לתוך ה-4%1א על-ידי מערכת ההפעלה מאמצעי 5/0 אחר ומבוצעות על- ידי המיקרו-מעבד (על-ידי קריאת הפקודות מה-1/א). דוגמאות של אמצעי 5/0 המאחסנים פקודות של תכניות הם דיסקטים ודיסקים. רוב הזיכרון המרכיב את המערכת הוא 1ובא. ה-[0 אינו מאבד לעולם את תכולתו, גם כאשר מנתקים את המתח למערכת. אולם, ה-0[1 אינו ניתן לשעוי על-ידי המעבד, אשר *כול לקרוא ממנו בלבד. ה-8011 ב-25/2 מכיל פקודות 8105 ונתונים של המערכת. 3105 הוא קיצור של ((5%6ע5 +ק6ט0 6טסח1 88516 - מערכת 9/2 בסיסית. ה-3105 כולל פקודות מכונה ונתונים, המאפשרות למעבד לבצע פעולות בחומרת המערכת מבלי להכנס ישירות לחומרה. הדבר מאפשר למערכת ההפעלה להיות מוגנת משינויים מסוימים בחומרה. ב-5/2ק יש 3105 תואם, הנקרא 8105 ע000084101114, מאותו הסוג של 3105 הנמצא ב-871 6ק. 8105 זה תומך במצב האמיתי של ה-80286. 8105 מתקדם חדש הנקרא 31025 46080606 פותח עבור המערכת 005/2. 5 זה תומך במערכת עם מאפיינים של ביצועים רב-משימתיים ותומך במצב המוגן של ה-80286. 025/2) וה-8ת6716 660166 משתמשות ב-3105 2400806 ב-25/2. פקודות ה-3105 נמצאות במרחב הכתובות הפיסי בין 64088 ל-18א1. ישנם אמצעי ק/פ חיצוניים אשר יש בהם ]אבת. ]בת זה ידוע בשם 5/0 ממופה זיכרון. דוגמה טובה לכך הינה צגי המחשב האישי של יבמ. המסך שהמשתמש רואה הוא **צוג ישיר של אותו חלק ב-3%1א המהווה חלק אינטגרלי של הצג. כשתכנית משנה את זיכרון הצג, דברים שונים מופיעים על המסך. המעבד משנה את מצבי הבקרה של הצג כדי לשלוט על הדרך שבה *תורגם ה-4%1א בצג להצגה סופית על המסך. 2381 זה נמצא בד"כ במרחב הכתובות הפיסי בין 64082 ל-18א1. 12 אמצעי ק/5פ חיצוניים הגישה לאמצעי 5/2 חיצוניים נעשית בד"כ באמצעות כתובות ק/פ ולא באמצעות כתובות זיכרון. למיקרו מעבד *ש פקודות שונות הגורמות להפקת כתובות הק/פ ולהעברת (תוני הק/5פ. כתובת ק/5 לא תאפשר גישה לזיכרון וכתובת בזיכרון לא תאפשר גישה לכתובת ק/פ. המערכת מבינה את ההבדל בין מיעון זיכרון לבין מיעון של ק/9, כי לאפיק המערכת יש קווי בקרה מיוחדים המראים אם הפעולה שמתבצעת הינה פעולת זיכרון או פעולת ק/5. באמצעי ק/5פ חיצוניים יש בד"כ קבוצות של אוגרי בקרה הממופים לקבוצה של כתובות ק/9. כאשר המעבד רוצה שאמצעי 5/2 חיצוני יבצע פעולה כלשהי, הוא יוציא הוראה לכתובת הק/פ המתאימה. מידע זה :וצב באוגר הבקרה של אמצע? הק/פ ובסופו של דבר יגרום לאמצעי הק/פ לבצע את הפעולה הדרושה. נתונים רגילים יכולים גם הם להיות מועברים לאמצעי הק/פ בדרך זו. גם אוגרי הבקרה של אמצעי הק/פ ניתנים לקריאה בידי המעבד כדי לקבל את המצב השוטף של אמצעי הק/פ. לדוגמה, המעבד :*כול לקרוא את אוגר הבקרה בכניסה של המדפסת המקבילית, כדי לראות אם המדפסת מוכנה לקבל תו נוסף. כאשר התשובה חיובית, המעבד שולח את התו לכניסת 5/2 שונה, המכילה את אוגר הנתונים של המדפסת המקבילית. אמצעי 9/0 מיוחדים הם אמצעי ק/9פ לטיפול בגושי (5100%85) נתונים. זאת אומרת, שהם מטפלים בחבילות של נתונים בפעולה אחת, במקום לטפל בתו (%6ק2) אחד בלבד. לדוגמה, הדיסק ב-87 20 או ב-25/2 מבצע את פעולות הכתיבה והקריאה עם 512 בתים בכל פעולה. מאחר ואין במעבד פקודת ק/פ האומרת "קרא 512 בתים", המעבד חייב לבצע מספר פקודות ק/5פ לקריאת בית אחד או שנים בכל פעולה. אם אמצעי הק/פ משתמש בגישה ישירה לזיכרון (8]ו - 8060085 עזסמממ6] 21:606) כדי להעביר נתונים לזיכרון המערכת, המעבד אינו צריך להיות מעורב בזמן פעולת העברת הנתונים. גישה ישירה לזיכרון (14אס) התקנים מסוימים משתמשים בבקר המערכת לגישה ישירה (ע:0מ16 60%עוכ אע - 800085) כדי להעביר נתונים לזיכרון המערכת וממנו. לכן המעבד אינו צריך להמשיך להוציא פקודות ק/9 לאמצעי הק/5 עבור כל בית או שני בתים של נתונים שמועברים. מה שקורה בפועל הוא, שהמעבד פוקד על בקר ה-3/ להעביר את הנתונים לכתובת פיסית מסוימת או ממנה, ופוקד על אמצעי הק/פ להתחיל להעביר את הנתונים. המעבד יכול לבדוק מדי פעם ולראות מתי הפעולה הסתיימה. ניתן גם לתכנת את אמצעי הק/5 שיפיק פסק (6קנתז60ת1) כאשר הפעולה הסתיימה. הפעולה המתוארת לעיל משתמשת בערוץ ]אכ *חיד. ברוב המערכות יש יותר מאשר ערוצ אכ אחד. אמצעי ק/פ לטיפול בגושים ואמצעים להעברת תו אחד בו-זמנית *כולים להיות מתוכננים כך שישתמשו ב-8כ. דוגמה לאמצעי העברת תו אחד בו-זמנית שתוכנן להשתמש ב-18כ הוא התקן ה-5216. הנתונים מגיעים בצורה של תו אחד בכל פעם, אבל המעבד אינו מעורב בהעברת כל תו של נתונים, מכיון שההתקן אוגר את התווים לקבוצות ואז מודיע למעבד שהם מוכנים להעברה. דיסק ודיסקטים הינם דוגמאות של אמצעים לטיפול בגושי נתונים היכולים להשתמש ב-ג1אכ. ב-41 26, נתוני הדיסקטים מועברים בעזרת 1כע, אבל נתוני הדיסק הקשיח 3 מועברים על-ידי סידרה של פקודות ק/פ שמופקות על-ידי המעבד. ב-5/2ק, נתוני הדיסקט והדיסק הקשיח מועברים בערוצים נפרדים של ה-4אכ. כאשר אתה משתמש ב-2025, שבו רק פעולה אחת מתבצעת בו-זמנית, אין שום חשיבות לכך שהפעולה נעשתה עם ב/כ. המעבד מחכה בכל מקרה שפעולת ה-א תסת:ים, מכיון שאין לו ממילא עבודה אחרת לעשות. בסביבת 05/2, העובדה שהמעבד אעו כבול בזמן העברת הנתונים, *כולה לתרום לשיפור הנצילות שלו. לדוגמה, ב-25/2 *כולים להעביר נתונים בשני ערוצי 14אכ נפרדים בזמן שהמעבד מבצע פעולה אחרת. לא ניתן לקבל דבר מבלי לתת תמורה. אם תחזור לתרשים 1, תוכל לראות איך כל הנתונים חייבים להיות מועברים דרך אותו "משפך" הקרוי אפיק המערכת. אם *ותר מדי העברות נתונים מתבצעות בו-זמנית, או אם העברה *חידה של נתונים משתמשת בחלק גדול מדי של רוחב הפס של האפיק (ת10%ש0ת8ס 8טס) לפרק זמן ארוך מדי, אז פעולות ה-18/ יפריעו זו לזו או למעבד. המעבד חייב להגיע לזיכרון המערכת אפילו כאשר הוא צריך להביא את הפקודה הבאה בתור לע'*בוד. אם המעבד אינו *כול להגיע לזיכרון המערכת כדי להביא הוראות, הוא נעצר ומחכה לאפיק שיתפנה. רוחב הפס של האפיק מגדיר את כמות הנתונים ביחידת זמן שהאפיק *כול להעביר. ככל שרוחב הפס *ותר גדול, יותר נתונים *וכלו לעבור באפיק ביחידת זמן אחת, ויותר פעילות גכ תתבצע ללא הפרעה לפעילות המעבד. זהו שיקול מאוד חשוב כאשר מתכננים מתאמי חומרה המשתמשים ב-14 בסביבה רבת משימות כמו ה-05/2. פסקים התקנים מודיעים למיקרו-מעבד שהם רוצים להפיק "פסק" על-ידי הצבת אות בקווי אפיק המערכת המיועדים לכך. בקר הפסקים מתרגם את האותות האלה ומפיק פסק שבסופו של דבר מגיע למיקרו-מעבד. בקר הפסקים תומך בקווים רבים המעבירים פסקי חומרה באפיק המערכת ומתרגם את מה שעובר באפיק הפסקים לאותות מיוחדים ה"מובנים" למיקרו-מעבד. כל קו פסקים במערכת מתאים לרמת פסקים מסוימת, ברמת עדיפות אשר נקבעת לו. בקר הפסקים מטפל גם במתן העדיפויות לקווי הפסקים. כאשר בקר הפסקים מנסה להפיק פסק למיקרו-מעבד, המיקרו-מעבד :גיב אם הוא מסוגל לקבל את הפסק. המיקרו-מעבד *פסיק את את העיבוד של זרס הפקודות המבוצע באותו רגע ויתחיל לבצע זרם אחר של פקודות. אנו נדון בדרך שבה נקבע זרס פקודות חדש בשלב *ותר מאוחר של פרק זה. זרם הפקודות החדש נקרא שיגרת טיפול בפסקים (ז616תאת +קטזז6+ת1). שיגרה וו נקבעת על-פי רמת הסיווג של הפסק שהופק, אשר תואם בד"כ לאמצעי ק/פ :תון. אי לכך, שיגרת הטיפול בפסקים מותאמת לטפל בפסקים השייכים לאמצעי ק/פ מסוים. לדוגמה, אֶפשר לקבוע במדפסת המקבילית שהיא תפיק פסק בכל פעם שהיא תהיה מוכנה לקבל תו חדש להדפסה. ה-ז6ט1ז6 660106 ישלח תו לאוגר הנתונים של המדפסת המקבילית ולאחר מכן יחזיר את השליטה למערכת ויאפשר לה ביצוע עבודה אחרת מועילה *ותר. לאחר שהתו הודפס, תפיק המדפסת המקבילית פסק. בקצב הדפסה של 40 תווים לשניה, זה יהיה לאחר 1111560 25 מסיום הדפסה של כל תו. שיגרת הטיפול בפסקים של ה-6ש61 660106 של המדפסת תשיג את השליטה הודות לפסק. היא תבדוק את הכניסה (+זסק) של המדפסת המקבילית 4 כדי לקבוע את הסיבה לפסק, תראה שהמדפסת מוכנה לקבל תו נוסף, ותשלח אותו לכניסה לשם הדפסתו. פסקים הם מופעלי סף (11280:00) 6086) ב-21 6 ורגישים לרמת-טיווג (560510106 61ט16) ב-25/2. זהו תיאור של הדרך שבה מופיע אות הפסק באפיק המערכת ולאיזה סוג של אות פסק בקר הפסקים צריך לצפות. 05/2 תומכת רק באמצע* ק/פ אחד ברמת פסקים מסוימת בסביבת 17 26. 08/2 תומכת באמצעי 5/0 רבים באותה רמת פסקים במחשבי 5/2ק. בסביבת הפסקים הרגישים לרמת-סיווג, אמצעי הק/פ אינו מפסיק להפיק את אות האירוע לבקר הפסקים עד אשר אמצעי הק/פ מקבל שירוחת. בסביבת הפסקים מופעלי-סף, אמצעי הק/פ מפיק פולס פסק אחד שבקר הפסקים מגלה. אם המערכת בוחרת לאתחל את בקר הפסקים מבלי לשרת את אמצעי חק/5, הפסק יאבד ואמצעי הק/פ לעולם לא יקבל שירות. מעבד מתמטי המעבד המתמטי הנוסף מספק סיוע חיוני למיקרו-מעבד. הוא מאפשר למערכת לעבד סוגים מסוימים של פקודות (כמו פעולות מתמטיות עם מספרים המיוצגים בשיטת הנקודה הצפה) במהירות גבוהה *ותר מאשר אם היו מדמים אותן בעזרת סידרה של פעולות מעבד רגילות. המערכת *כולה להיות מכוונת כך שתגלה שהמעבד המתמטי לא קיים, ואז היא תדמה את הפקודות האלה ותבצע אותן באמצעות המיקרו-מעבד הראשי. המיקרו-מעבד המיקרו-מעבד מביא פקודות מזיכרון המערכת ומבצע אותן לפי הסדר שבו הן מאוחסנות בזיכרון. במהלך הביצוע של נקודות אלו, המעבד :כול לכתוב נתונים בזיכרון, לקרוא נתונים מהזיכרון, לכתוב (נתונים לכתובת ק/5, או לקרוא נתונים מכתובת ק/פ. פקודות מסוימות (כמו הסתעפות מותנה) יכולות לגרום למעבד לבצע פקודה אחרת מאשר הפקודה העוקבת. בתוך המיקרו-מעבד ‏ יש זיכרון פנימי קטן, אשר מכיל ‏ את האוגרים (268150019) של המיקרו-מעבד. פקודות המשתמשות בנתונים הנמצאים באוגרי המעבד הן בד"כ *ותר *עילות ואינן דורשות מהמיקרו-מעבד לצאת לאפיק המערכת כדי לקרוא או לכתוב נתונים בזיכרון. ישנם בתוך המיקרו-מעבד אוגרים פנימיים נוספים שאינם משמשים לביצוע רגיל של פקודות, אלא עוזרים למיקרו-מעבד לתפקד. מאפיינים רבים של מיקרו-מעבד מסוים מבדילים אותו ממיקרו-מעבדים אחרים, כמו: * מספר האוגרים לשימוש כללי הנמצאים בו והגודל שלהם (מספר סיביות). * העוצמה של מערכת הפקודות וכמה סיביות של נתונים הן יכולות לעבד בפעם אחת. הכמות הפיסית של נתונים שהמעבד *כול להעביר בבת-אחת לאפיק המערכת (מספר הסיביות). * הדרכים השונות שבהן :כול המעבד למען את הנתונים שלו והאם הן ניתנות לשימוש על-ידי רוב הפקודות. 255 * האם ישנו מנגנון הגנה לשימוש מערכת ההפעלה ומהו. * מבנה הפסקים של המעבד. עכשיו, כשראינו כְבר את המבנה הכללי של המיקרו-מעבדים, הבה נביט מקרוב ב-80286. תיאור המבנה והתפקוד של ה-80286 הכרה של הזזיכרון המקומי ב-80286 ואיך הוא מנוצל היא המפתח להבנת פעולותיו של ה-80286. רובו של הזיכרון המקומי ב-80286 מורכב מאוגרים. התכולה של האוגרים מוגדרת כ"מצב" שה-80286 נמצא בו. על-ידי ניתוח מצב נוכחי נוכל לקבוע בדיוק מהי הפעולה הבאה שה-80286 עומד לבצע. הבט על תרשים 2. הוא מתאר את כל האוגרים ומשתנים אחרים המתארים מצב שבו אנו מתעניינים כדי שנוכל להבין את ה-80286. לפני שנחקור לעומק, נלמד תחילה את שיטת המיעון של ה-80286. כל כתובת מורכבת משני ערכים בני 16 סיביות: *' הראשון מציין את אחד מאוגרי הסגמנט (6₪15%6:8? 6ת6ת5001). השני מציין את הכתובת היחסית (01156%) בתוך הסגמנט. סגמנטים לשימוש כללי אוגרי הסגמנטים - ארבע אוגרים בני 16 סיביות. ארבעה אוגרים בני 16 סיביות. כל אוגר יכול לשמש גם : כ-2 אוגרים בני 8 סיביות. 6ח508₪6 0066 (סגמנט פקודה) %ת₪6ש50 2868 (סגמנט נתונים) 500606 העטאם (סגמנט נוסף) 4 = אב 50 5680% (סגמנט מחסנית) 8 = אפ 0 = 0% אוגרים מיוחדים וע = אפ ץ - פפַ18ת (דגלים) - ארבע אוגרים נוספים בני 16 סיביות. סז - עסטת1ס? תס61סטעספתד (מחוון פקודה) עספת01סק 88856 (מצביע הבסיס) | 85% - 0026 5080098 6תדַת6בא אסשת 5006 (אינדקס המקור) (מלת מצב מכונה) א66ת1 ת8610ת26861 (אינדקס היעד) %ע66ת01סק 5680% (מצביע המחסנית) מידע חשוב אחר אוגרים למתארים של ה-צע0₪0ש 6ת086. 7 - 18018 60%8ק1ע2680 010081 (טבלה למתארים גלובליים) 7 - 18016 ע60ק1ע680ע 10081 (טבלה למתארים מקומיים) עתפ - 18016 608ס2698021 6קטעת66םת1 (טבלה למתארים לפסקים) אוגר משימה, מצב משימה בסגמנט. תרשים 2. תיאור פשטני של מבנה ה-80286 146 ערך אוגר הסגמנט מגדיר את הסגמנט (%ת50₪6) שאליו אנו מתייחסים. ערך הכתובת מגדיר את הכתובת היחסית בסגמנט. ב-80286, יכולים להכנס בסגמנט עד 8א64% (65,536 בת'ם) ך הכתובת המקסימלית היכולה להכנס באוגר בן 16 סיביות: | 65,535 = 1 - .)277‏ נדון להלן כיצד מתורגמים הערך באוגר הסגמנט והערך של הכתובת היחסית, במטרה ליצור את כתובת הזיכרון הפיסית. אידך יודע המעבד מהיכן להביא את הפקודה הבאה בזיכרון? הוא מביא את הפקודה הבאה על-ידי שימוש ב-65 כערך של אוגר הסגמנט וב-12 כערך של הכתובת היחסית. פקודות מסוימות (כמו הסתעפות מותנית) משנות את הערך של ען. אם לא נעשה שינוי ב-ק1 על-ידי הפקודה הנוכחית, אז הגודל של הפקודה הנוכחית מתוסף ל-12 וכתוצאה מכך תתבצע הפקודה הבאה בתור. אם נעשה שינוי ב-ס1], אז פקודה אחרת מתוך הסגמנט המוגדרת על-ידי ה-05) תתבצע. פקודות מסוימות משנות הן את ה-65 והן את ה-12. הדבר גורם להבאת פקודה הנמצאת בסגמנט אחר. המחסנית (5%808) הינה קטע מיוחד בזיכרון שמנוצל לאחסון מידע בזמן שקורה אחד מהאירועים הבאים: * שיגרה אחת (שילוב של מספר פקודות) קוראת לשיגרה אחרת. = יש צורך בשטח אחסון זמני והתכנית אינה רוצה להקצות במפורש שטח לנתונים בשביל אותו אחסון זמני. סגמנט המחסנית הנוכחי מוגדר על-ידי אוגר 55. אוגרים 52 ו-80 מגדירים בד"כ את הכתובת ה*חסית שמשתמשים בה (תלויה במטרה שלשמה נעשה שימוש במחסנית). המעבד מקבל את הנתונים שלו מסגמנט המוגדר על-ידי אוגר הטגמנט 5 או 8. הכתובת היחסית שלהם *כולה להיות שילוב של דברים רבים ושונים. הכתובת הפיסית *כולה להיות מקודדת במפורש לתוך הפקודה, או שתיא יכולה להיות שילוב אריתמטי כלשהו של אחד או שניים מתוך האוגרים לשימוש כללי, או ערך מפורש בן 16 סיביות. יש מספר הגבלות על סוגי האוגרים לשימוש כללי שניתן להשתמש בהם בכל מצב מסוים. לרוב הפקודות יש מקור לנתונים ויעד שאליו הם נשלחים. מקור המידע *כול להיוח מוגדר במפורש בפקודה, *כול להיות באוגר לשימוש כללי, או *כול להיות בזיכרון. היעד של הנתונים *כול להיות אחד האוגרים לשימוש כללי או מקום כלשהו בזיכרון. רוב הפקודות אנן *כולות לפעול בו-זמנית על מקור הנתונים ועל היעד שאליו הם נשלחים. אולם, פקודות מסוימות תוכננו במיוחד לעשות זאת. פקודות אלו משתמשות ב-51 וב-₪1 עבור הכתובות היחסיות של המקור והיעד, והן משתמשות ב-25 וב-₪5 כסגמנטים של המקור והיעד. אוגר הדגלים (118₪58) מכיל מידע על התוצאה של הפעולה האחרונה (כמו סיבית הסימן, נגררת, גלישה וכו') ואם מתאפשרים פסקים במערכת. מילת מצב מכונה (0:6ש 5%8%605 6ת!ת86) מכילה מידע על המעבד כמו, אם הוא צריך להמצא במצב אמיתי או במצב מוגן. הדיון על שני האוגרים האלה הינו מחו% להיקף של ספר זה. הערכים המוצבים באוגרים אלה (ובזיכרון מקומי אחר) בזמן הפעלת המעבד קובעים מה המעבד *עשה בזמן האתחול (2656%). לאחר שמאתחלים את ה-80286, הוא מועבר למצב אמיתי על-ידי הצבת הערכים 200011 ב-05 ו-0עעע ב-פן 17 (שים לב, "₪3" מסמל *יצוג הקסה-דצימלי). כפי שנראה מיד, הדבר גורם למעבד להתחיל להביא פקודות מכתובת פיסית 011עעעע, קצת מתחת ל-1/13. שלושת אוגרי הסגמנט האחרים מאופסים. מיעון ב-80286 - מצב אמיתי לעומת מצב מוגן לכתובות הפיסיות המופקות על-ידי ה-80286 יש שני מרכיבים: ערך בן 16 סיביות באוגר הסגמנט וערך בן 16 סיביות המציין את הכתובת היחסית בתוך הסגמנט. הכתובת הי*חסית נקבעת על-ידי משתנים המקבלים ערכים שונים בהתאם למצב. שני הערכים בני 16 הסיביות מעובדים בצורה נפרדת על-ידי ה-80286 בהתאם למצב העבודה של המעבד - אמיתי או מוגן. כאשר ה-80286 נמצא במצב אמיתי, הוא מפיק כתובות פיסיות בצורה זהה למיקרו-מעבד 8088 או 8086. הבה נתבונן בתרשים 3 כדי להּבין איך מופקות פקודות פיסיות במצב האמיתי של ה-80286. הפקת כתובת פיסית במצב אמיתי התרכז בתרשים 3 ולמד אותו. לדרך זו של הפקת כתובות פיסיות יש מספר מאפיינים חשובים ביותר. דנו כבר בצורה שבה קובע אוגר הסגמנט את הסגמנט שבו תהיה הכתובת. מכיון שהכתובת היחסית היא ערך בן 16 סיביות, נובע שכל סגמנט הוא בן 64%3 (65,536 בתים). ערך הכתובת היחסית נע בין 0 ל-65,536. סגמנטים תמיד מתחילים בכתובת פיסית שהיא כפולה של 16. הכתובת הפיסית הסופית שמופקת היא ערך בן 20 סיביות, כך שרק ל-18א1 (זזַקעתתת-00000) של זיכרון ניתן להכנס כשמשתמשים במצב האמיתי של ה-80286. האם שמת לב למאפיינים החשובים מכל? על-ידי ידיעת הערך הנמצא באוגר הסגמנט, אנו *ודעים בדיוק היכן ניתן למצוא את הסגמנט בזיכרון. מכיוו שתכנית היישום מציבה ערכים, באוגר הסגמנט, היא *כולה לקבוע לאיזה זיכרון פיסי (כתובת) היא תכנס. זו הסיבה מדוע נאמר קודם שבמצב האמית* של ה-80286 הכתובת בפועל זהה לכתובת האמיתית. זכור, הכתובת בפועל היא הכתובת שהתכנית רואה והכתובת האמיתית הינה הכתובת הפיסית המשמשת לגישה לזיכרון הפיסי במערכת. יישומים יכולים גם להניח שאם הם *וסיפו 1 לערך הנמצא באוגר הסגמנט, הם יוכלו להכנס לאותו זיכרון, כאילו הכפ/לו את הערך של הכתובת היחסית פי 6 (בהנחה שאין גלישה). אלו הן הנחות שתכניות בסביבת 205 עושות כל הזמן. זו אחת הסיבות מדוע תכניות אלה אינן *כולות להתבצע בצורה ישירה בסביבת המצב המוגן של ה-80286. |88 . קח אוגר סגמנט בן 66 סיביות (ערך: 65,535 - 0, או: אקקעעק - 000081) והכפל אותו ב-16. במלים אחרות, הפוך אותו לערך בן 20 סיביות על-:ד:י כך, שתש'ם ארבעה אפסים בסיביות הנמוכות. 2. הערך שיצא מאוגר הסגמנט הוא בתהום: אתתתקק - 000008 (1,018,650 - 8). כיון שערך ארבע הסיביות הנמוכים הוא תמיד אפס, הערך *כול להיות רק כפולות של 16 בתוך אותו טווח. הוסף ערך כתובת 'יחסית בן 16 סיביות אל הערך בן 20 הסיביות. . יהתוצאה היא כתובת פיסית סופית בת 20 סיביות הנעה בין הערכים 8 ל-נסתקקק (אין מתייחסים לגלישה). 4. אוגר הסגמנט ערך אוגר סגמנט בן 16 סיביות ייצוג בעזרת ערך בן 20 סיביות 6. | כתובת יחסית ערך בן 16 סיביות של כתובת י*חסית ערך כתובת פיסית בן 20 סיביות תרשים 3. תהליך הפקת כתובת פיסית במצב אמיתי הפקת כתובת פיסית במצב מוגן עד עתה קיבלנו מושג כללי לגבי המצב המוגן. דנו כבר בעובדות הבאות הקשורות להפקת כתובות במצב המוגן של ה-80286: * תמיכה בז'כרון פיסי במערכת, אשר גודלו עד 16/]8. * הכתובות בפועל לא זהות לכתובות האמיתיות (הפיסיות). הערך באוגר הסגמנט אינו תואם בצורה ישירה לכתובת הפיסית. * יש תמיכה בכתובות בפועל שאינן נמצאות כרגע בזיכרון (ולכן יש צורך להביא אותן לזיכרון). = ניתן לתמוך במרחבי כתובות בפועל שונים לתכניות *ישום שונות. * קיימת הגנה בזיכרון בין מערכת ההפעלה ליישומים. הרמז לגבי צורת העבודה של המצב המוגן הוא שהערך באוגר הסגמנט אינו קובע את הבסיס לחישוב הכתובת הפיטית של הסגמנט כפי שקורה במצב האמיתי. הערך באוגר הסגמנט, כאשר ה-80286 נמצא במצב מוגן, נקרא בורר (56160+07). הבורר פועל כאינדקס לטבלה מיוחדת, שיש בה את כל המידע על |59 סגמנט הזיכרון הפיסי. מידע זה נקרא מתאר הסגמנט (:ז%0ק1ז6650 %ת6ת507). הבט על תרשים 4 ותראה כיצד מתורגם ערך הבורר. שתי הסיביות הנמוכות ביותר אינן משמשות בתהליך הפקת הכתובת הפיסית, כי יש להם תפקיד במנגנון ההגנה. תפקיד זה :דון בהתשד. יש שני סוגים שונים של טבלאות במערכת המכילות מתארי סגמנטים. הטבלאות הן: טבלת המתארים הגלובליים (027 - 18016 :65011000 010081)) וטבלת המתארים המקומיים (1271 - 18016 650710001 [12008). סיבית מס' 2 בערך הבורר קובעת את סוג הטבלה שאליה פונים לצורך בחירת מתאר הסגמנט. זכור, מתאר הסגמנט מכיל את כל המידע המתאר את הזיכרון הפיסי שאנו מעונלינים בו. תרשים 5 מתאר כיצד נבחר מתאר הסגמנט. לאחר שנבחרה הטבלה המתאימה, סיביות 15-3 של ערך הבורר מאפשרות לבחור אחד מתוך 8,192 מתארי הסגמנטים השונים. כל מתאר הוא בן 8 בתים. טבלת המתארים הגלובליים (07) מכילה בד"כ סגמנטים שמשתמשים בהם במערכת בלי קשר ליישום שמופעל. לדוגמה, פקודות מערכת ההפעלה ומתארי הסגמנטים של הנתונים נמצאים ב-6007. קבוצות של פקודות הצריכות להיות מוגנות זו מזו מציבות את מתארי הסגמנטים שלהן בטבלאות 1027 שונות. מערכת ההפעלה שומרת 127 שונה לכל קבוצה של פקודות הדורשת שהזיכרון שלה :היה נפרד מקבוצות אחרות של פקודות. ב-05/2, לכל תהליך יש 127 הקשור אליו. אוגר הסגמנט 08 2 3 5 ערך בורר בן 16 סיביות 2 סיביות של מידע על הרשאות. - (16061 110806ט1עק 8 - קת) בוחר בין טבלת המתארים הגלובליים (007) לבין טבלת המתארים המקומית (157). ערך בן 13 סיביות המציין אחד מ-8192 (8%) מתאר: הסגמנט השוניס בטבלה המתאימה (001 או 187). תרשים 4. תרגום ערך הבורר 020 סיבית 2 בערך הבורר אינדקס לטבלת המתארים סיביות 15-3 של ערך הבורר בוחר את טבלת המתאריסם המתאימת כניטה של מתאר הסגמנט כל ערך הוא בן 8 בתים דסז 07 טבלת המתארים טבלת המתארים המקומיים הגלובליים תרשים 5. בחירת מתאר הסגמנט הבט בתרשים 6 וראה את פריטי המידע הנמצאים במתאר הסגמנט אודות כל סגמנט. המידע שאנו מעונינים בו כרגע הוא הכתובת הפיסית הבסיסית בת 24 סיביות. ערך זה בן 24 סיביות קובע היכן מתחיל הסגמנט בזיכרון הפיסי. ערך הכתובת היחסית בן 16 הסיביות מתוסף אל הכתובת הפיסית שקיבלנו ממתאר הסגמנט, כדי לקבוע את הכתובת האמיתית הסופית. בהנחה שסגמנט גדל עם הזמן (ולא קטן כסגמנט המחסנית), הכתובת היחסית עלולה לעבור את גודל הסגמנט ואז המעבד *נסה להכנס לזיכרון שאינו חלק מהסגמנט. זהו מצב שגיאה המצביע על כך שהתכנית טעתה. ישנה אפשרות למצב שגיאה אחר, שבו תכנית תנסה לעקוף את אמצעי ההגנה ולהכנס לזיכרון. הבורר ומתאר הסגמנט מכילים מידע המאפשר הגנת סגמנטים. דומה שכל הבדיקות האלו המתבצעות בכל פעם שנכנסים לכתובת, מעמיסות מאוד על המעבד. אם נחזור לתרשים 2, נוכל לראות למה משמשים אוגרי המתארים של ה-6ת680. המעבד שומר את המידע בזיכרון המקומי שלו, הקיים במתארי הסגמנט הנוכחיים שנבחרו על-ידי ערכי הבורר הנמצאים כרגע באוגרל הסגמנטים. המעבד אינו צריך להכנס שוב ל-621 או ל-71כ12, אלא אם השתנה אוגר הסגמנט. זו הסיבה מדוע שינוי באוגר הסגמנט במצב מוגן דורש הרבה משאבים במונחים של ביצוע. המעבד שומר גם את הערך הנוכחי של הכתובת ואת הגודל של ה-271 וה-10'7 בזיכרון המקומי שלו. 1 ערך בן 24 סיביות הקובע את הכפתובת הבסיסית של הסגמנט הפיסי. מאפשר גישה ל-8א16% של זיכרון פיסי אמית'י. ערך בן 16 סיביות הקובע את גודל הסגמנט (עד 8א64). האם הסגמנט נמצא כרגע בזיכרון הפיסי. האם ערך הבורר המתאים למתאר סגמנט זה הוטען לתוך אוגר הסגמנט. הדבר מציין סימן שבוצעה כניסה לסגמנט זה. האם זה סגמנט פקודה, סגמנט נתונים, או סגמנט "מ*וחד" (*). אם הסגמנט הינו סגמנט המכיל פקודות אז: - האם המעבד צריך, או לא צריך, לקרוא נתונים מסגמנט זה. - האם סגמנט הפקודות הזה ערוך כהלכה (*). אם הסגמנט הינו סגמנט המכיל נתונים: - האם המעבד צריך, או לא צריך, לכתוב לתוך סגמנט זה. - האם הערך הגבולי תואם לגודל הסגמנס. מידע על הרשאות - רמת הרשאת המתאר (.201 - 10061 116₪6ט1עק ע0סס1ע690כ) (*) מחוצ להיקף של ספר זה. תרשים 6. המידע הנמצא באוגר הסגמנט חזור לרשימת המאפיינים של תהליך מיעון הכתובות במצב מוגן המתוארים בתחילת סעיף זה. אנו רואים איך ניתן לתמוך ב-16/13 של זיכרון אמית:, וכיצד מרחבים שונים של כתובות בפועל נתמכים בעזרת שימוש בטבלאות זז שונות. הכתובת שהתכנית מציבה באוגר הסגמנט אינה תואמת לחלוטין לכתובת האמיתית שמשתמשים בה. אם נצרף את המידע שהוצג בתרשים 6, נוכל לראות שאנו תומכים בכתובות בפועל שאינן נמצאות למעשה בזיכרון. אם הסגמנט אינו נמצא כרגע בזיכרון האמיתי, אז מתאר הסגמנט שלו *ודיע שהוא אינו נמצא. אם התכנית מטעלנה לאוגר הסגמנט ערך בורר המתאים לסגמנט שאינו נמצא, המעבד יעבור למצב של שגיאה לגבי פעולה זו ויטפל בשגיאה בעזרת שיגרה מיוחדת של מערכת ההפעלה. שיגרה זו תמצא היכן מאוחסן הסגמנט על הדיסק, תעביר אותו לזיכרון האמיתי, ותעדכן את מתאר הסגמנט כדי שיראה היכן נמצא הסגמנט בזיכרון האמיתי. אם המעבד יצטרך לפנות מקום לסגמנט, יתכן שהוא *עביר סגמנט אחר לדיסק. הסגמנט שיועבר החוצה לדיסק נקבע על-ידי מערכת ההפעלה, והוא יהיה בד"כ הסגמנט שהיה הכי פחות בשימוש לאחרונה. המידע על הגישה לסגמנטים הנמצא בטבלאות המתארים עוזר למערכת ההפעלה לקבוע איזה מהסגמנטים היה הכי פחות בשימוש לאחרונה. עוד הבדל חשוב בין מצב אמיתי למצב מוגן הוא, שבמצב מוגן לכל סגמנט יש ציוו נפרד של גודל. במצב אמיתי, כל הסגמנטים היו בעלי גודל של 64%8. 2 במצב מוגן, התכניות מקצות סגמנטים שגודלם נגזר מצרכי התכנית. ובכך הן חוסכות בזיכרון אמיתי וזיכרון בפועל הנמצא על הדיסק. אם תכנית טועה ומנסה להכנס לזיכרון הגדול מזה של הסגמנט השייך לה, תופק הודעת שגיאה ומערכת ההפעלה תבין שמשהו אינו כשורה. עוד לא השלמנו את הדיון בהגנת הזיכרון. אחד מהאספקטים החשובים ביותר של הגנת הזיכרון הוא רמת הרשאה, אשר תידון בסעיף הבא. הגנה והרשאה במצב המוגן של ה-80286 ניתן למצוא מאפייני אבטחה ומתן הרשאות. במצב האמיתי של המעבד אין כל אמצעי הגנה שהוא. זאת אומרת, שכל תכנית *כולה להכנס לכל מקום בזיכרון הפיסי (עד ל-1/18) ויכולה לבצע כל פקודת מעבד אשר מותרת במצב אמיתי. מערכת ההפעלה מבטיחה שכל *ישום :היה מוגן מיישומים אחרים על-ידי כך שלכל יישום נשמרות טבלאות 1 משלו. כל ערך בורר שהיישום *פיק אינו יכול להגיע למתאר סגמנט שאינו נמצא בטבלת ה-7כ10 הנוכחית. בתרשים 6 מתוארים מנגנוני הגנה הנבדקים בכל פעם שמבוצעת גישה לזיכרון. בכל פעם שמופר כלל המשמש להגנה, המערכת מוציאה הודעת חריגה (ח660+10א6), אשר גורמת למעבד להתחיל לבצע שיגרה לטיפול בשגיאות חריגה (ע016ת8ת םס61ק06א6). זהו מצב דומה מאוד לפסק, פרט לכך שהמעבד עשה משהו שגרם לחריגה, ואילו פסק מופק בד"כ על-ידי התקן חיצוני. מערכת ההפעלה היא זו שמטפלת בחריגה. המעבד מתוכנן כך שיאפשר לפקודה שגרמה את החריגה להתבצע מחדש לאחר שמצב החריגה במעבד אותחל (1050%). להלן מספר דוגמאות של פעולות של מיעון כתובות הגורמות למצבי חריגה ומצביעות על כך שקיימת בעיה בתכנית: * הבורר מצביע על מתאר טגמנט הנמצא מעבר לתחום הנוכתחי של טבלת המתארים. * הכתובת היחסית עוברת את הגודל הנוכחי של הסגמנט. * הפרה של כללי ההרשאה. = 05 (אוגר סגמנט הפקודה) הוטען בערך בורר התואם למתאר סגמנט נתונים. המעבד אינו יכול לבצע פקודות מתוך סגמנט נתונים. * המעבד מנסה לכתוב לתוך סגמנט נתונים המוגדר לקריאה בלבד. * המעבד מנסה לקרוא מתוך סגמנט המכיל פקודות לביצוע בלבד. מצב שגיאה :ווצר גם כאשר המעבד מנסה להטעין אוגר סגמנט בבורר, אשר מתאים לסגמנט שאינו נמצא בזיכרון. מערכת ההפעלה תמצא את הסגמנט על הדיסק, תעביר אותו לזיכרון האמיתי, תשנה את מתאר הסגמנט כך שיודיע שהסגמנט נמצא במקום פיסי מסוים בזיכרון, ותחדש את הביצוע בפקודה שגרמה לשגיאה. ללא מנגנון ההרשאות, היה קשה מאוד לבצע בצורה *עילה את תכנית ההגנה הזאת. לדוגמה, תכנית יודעת שעל-ידי הצבת ערך מסוים בסיבית 2 של ערך הבורר ניתן להגיע ל-027. מאחר וה-02'7 מכיל סגמנטים רבים של מערכת ההפעלה, התכנית יכולה לנסות להשתמש בערכי בורר של ה-12'7), אשר אין להם שום קשר לתכנית ולנתוניה. איך החומרה מכוונת למנוע מתכניות לבצע פעולות כאלה? 8 יש ארבע רמות הרשאה ב-80286. הן ממוספרות מ-0 עד 3, כאשר 0 היא רמת ההרשאה הגבוהה ביותר ו-3 - רמת ההרשאה הנמוכה ביותר. מערכת ההפעלה מנהלת את ההרשאות. ב-05/2, לרוב היישומים יש רמת הרשאה 3, ולגרעין (61מ61) מערכת ההפעלה יש רמת הרשאה 0. ניתן לכתוב *ישומים שיקבלו הרשאת ק/5 (1022 - 686נטזע 1/0). אנו נדון ב-1021 מאוחר *ותר. ב-025/2), כאשר ליישום יש הרשאת ק/5, הוא נמצא ברמת הרשאה 2 ואינו יכול לבצע את כל הפעולות שהיו מותרות לו ברמת הרשאה 3. הגישה העומדת מאחורי הרשאות אומרת, שפקודה המתבצעת במחשב יכולה להכנס לסגמנט נתונים רק כאשר רמת ההרשאה שלו שווה לשלה, או נמוכה *ותר. הדבר מונע מיישומים להכנס לנתוני מערכת ההפעלה, אבל מאפשר למערכת ההפעלה להגיע לנתוני היישומים שהיא צריכה. רמת ההרשאה של הפקודות שרצות כרגע נקראת רמת הרשאה נוכחית (,021 - [6ט160 6ק16נטוזק 6מ6תעט6) והיא שוות- ערך לשתי הסיביות הנמוכות באוגר הסגמנט 065. רמת ההרשאה של הנתונים שנכנסים אליהם מוגדרת על-ידי שתי סיביות במתאר הסגמנט, ונקראת רמת הרשאת המתאר (221 - [1606 6ש16נטנזק 60%ק65071). סביבת הביצוע *כולה להיות מכוונת כך שיישום לא *וכל לשנות את ה-]60 שלו. מערכת ההפעלה תוכל להגן על עצמה ללא קושי אס תגדיר ליישום 601=3, ותגדיר (=]סת לכל הנתונים החשובים שלה (בדוגמה זו גם רמות 1 ו-2 *ספיקו). הסתעפויות רחוקות וקריאות *וכלו להיות לסגמנט פקודה בעל רמת הרשאה זהה. בכך, נמנע מיישומים לקרוא לסגמנטים המכילים פקודות של מערכת ההפעלה. ישנם מתארי סגמנטים מיוחדים הנקראים שערים (28668), אשר משתמשים בהם לצורך העברת השליטה בין רמות הרשאה שונות ולצורך שינוי רמת ההרשאה הנוכחית, פרטים אלה הם מחו להיקף של ספר זה. מהי הרשאת ק/5 (1021)? מערכת ההפעלה קובעת באילו רמות הרשאה מותר לבצע פקודות מטוימות הקשורות לפעולות ק/9פ. אלה הן הפקודות: * פקודות המאפשרות למעבד לקרוא נתונים ממרחב הכתובות של הק/פ, או לכתוב בו. * פקודות שמאפשרות, או שאינן מאפשרות, למעבר לקבל פסקים מהתקנים חיצוניים. * פקודת 100% (נעל את האפיק. מחוצ להיקף של ספר זה). לפקודות אלו יש בדיקות מיוחדות הקשורות אליהן, מכיון שהן *כולות לגרום נזק למערכת אם הן מבוצעות בתכנית שלא קיבלו הרשאה. על-ידי דרישה מיישום לבקש 2ת102, מערכת ההפעלה *כולה להגביל את מספר תכניות היישום היכולות לפגוע במערכת. מערכת ההפעלה יכולה להגדיר את הערך המקטימלי של 1 שיכול לקבל ‏ 1021. ב-05/2, רמת .1021 נקבעה ל-2. תכניות *ישום רצות בד"כ עם 021=3, ועל-כן הן אינן יכולות לקבל ‏ 1021, אך ישנו 421 המאפשר זאת. המשתמש *כול להגדיר את ה-5צ10.5ע001% בצורה כזו שתאפשר ליישומים לקבל 1022. ישנן הגבלות על מה שיישומים *כולים לעשות עם ,1021 בסביבת 2). ללדוגמה, *ישומים אינם *כולים לטפל בפסקים של התקנים חיצוניים מתוך סגמנט פקודה עם הרשאת ק/5. השיטה המועדפת לטיפול בפסקים היא דרך 5 060106. ישנן פקודות נוספות הניתנות לביצוע רק מתוך רמת הרשאה 0 (621=0), שהיא רמת ההרשאה הגבוהה ביותר. פקודות אלו מגדירות את גודלן של טבלאות 7 ו-12'1 ואת מקומן. 4 ישנן פקודות רבות שאינן קיימות ב-8088 וקיימות ב-80286. רוב הפקודות האלו קיימות גם במצב האמיתי ב-80286. ראעו כמה עשירה המערכת של מנגנוני ההגנה הנמצאת ב-80286. טיפול בפסקים כבר הצגנו מדוע התקנים חיצוניים צריכים להפיק פסקים. יש להסביר עתה כיצד נקבע איזו שיגרה תקבל את השליטה לאחר שהמעבד קיבל את הפסק. אחד הפסקים שהמערכת *כולה לקבל נקרא פסק בלתי ניתן למיסוך (8016א1//85%-תס קוא - 6זססת1). המעבד אעו *כול להתעלם מ-1]אא, מכיון שהוא מודיע למעבד על שיבוש חמור במערכת. דוגמה טובה לכך תהיה תקלה בזיכרון. ישנם חמישה-עשר ערוצי חומרה ב-47 26 וב-25/2 המשמשים להעברת פסקים, אשר הטיפול בהם נעשה בידי שני בקרי פסקים המחוברים ביניהם. כאשר 05/2 מאתחלת את בקרי הפסקים, היא בוחרת איזה פסקים *ועברו בכל אחד מחמישה- עשר ערוצי החומרה. מספר הפסק המתאים לערוצ חומרה מסוים קובע או שיגרה תקבל שליטה לאחר שהמעבד יקבל את הפסק. בקר הפסקים מפקח על חמישה-עשר ערוצי חומרה המשמשים להעברת פסקים, והוא אחראי גם על הפקת מספר הפסק הנכון במעבד. בקר הפסקים יפיק את המספר המתאים בהתאם לכללי סיווג הפסקים שלו. אפשר לשלול את יכולת המעבד לקבל פסקים חיצוניים מבקר הפסקים בכל רגע, על-ידי ביצוע פקודה מתאימה. הפקודות המאפשרות למעבד לקבל פסקים ואלה השוללות *כולת זו, *כולות להתבצע תחת ;102, או ברמה גבוהה יותר. איך נעשית ההתאמה בין מספר הפסק לשיגרה המקבלת את השליטה לאחר שהמעבד קיבל את הפסק? כדי לענות על השאלה הזו נצטרך להציג במעבד טבלה נוספת - טבלת מתארי הפסקים (1271 - 18016 -60ק1ת12650 6קנתע%6ת1). הטבלה מכילה 6 ערכים הדומים מאוד לערכי מתארי הסגמנט שכבר ראינו. ההבדל הגדול ביותר ביניהם הוא בכך שאלה הם מתארי סגמנט מיוחדים הנקראים שערים (8%05]). כל שער מצביע על שיגרת הטיפול בפסקים המתאימה לאותו מספר הפסק. הדיון בשערים הינו מעבר להיקף של ספר זה. נאמר אך זאת: כאשר דנו בהרשאות לפקודות, הזכרנו ששערים משמשים להעברת השליטה על הביצוע מרמת הרשאה אחת לאחרת. הפיסקה הקודמת מתארת כיצד נבחרת במצב מוגן השיגרה המתאימה לטיפול בפסקים. במצב אמיתי התהליך של בחירת שיגרת הטיפול בפסקים דומה, פרט לכך שנעשה שימוש בסוג שונה של 7'כ1. טבלת 7'כ1 זו שונה בגודלה מזו שבמצב המוגן בנוסף לכך שהערכים שלה במצב אמיתי אינם שערים. למעשה, כל ערך בטבלת ה-121 הוא כתובת לפי מצב אמיתי, המתבססת על ערך סגמנט בן 16 סיביות וכתובת יחסית בת 16 סיביות. ערך זה תואם לערך הכתובת הפיסית במצב אמיתי, אשר תקבל את השליטה כאשר *ופק מספר הפסק המתאים. מספר הפסק מתאים לערך מסוים בטבלת ה-12071 השייכת למצב האמיתי. :ישומים בסביבת 2005 המופעלים ב-025/2 צריכים להשתמש בשירותי ה-025כ כדי לשנות את שיגרת הטיפול בפסקים למספר פסק מסוים. הם אינם צריכים לשנות בצורה ישירה את טבלת ה-12'7 השייכת למצב האמיתי. מספר הפסק גורם למעבד להעביר את השליטה לשיגרה המתוארת על-ידי ערך ה-7'כ12 המתאים למספר הפסק. משתמשים במחסניות כדי להבטיח שפקודה שאיבדה את השליטה תוכל להתבצע בשלב מאוחר :ותר. ישנם סוגים רבים של שערים 5 שמשמשים להשיג סוגים שונים של דברים. פסקים בלתי ניתנים למיסוך (1אא) גורמים להפקת מספר פסק 2. תוכנה *כולה להפיק פסקים על-ידי ביצוע פקודת 1א1 במעבד. 05/2 אעה תומכת ביישומים המשתמשים בפקודת 71א1 במצב מוגן. גם מצבי שגיאה *וצרים פסקים שהמעבד אינו *יכול להתעלם מהם. מערכת ההפעלה חייבת לטפל במצבי השגיאה. סיכום כיסינו כמות רבה של חומר בפרק זה. כרגע צריכה להיות לך הבנה טובה מאוד של הפונקציות הכלליות של 05/2 ורקע בסיסי על הדרך שבה עובד ה-80286. זה הזמן להתחיל להכנס לפרטים ולהסביר כיצד להשתמש במקצת מהפונקציות שדנו בהם. בפרק הבא נדון באפשרויות השימוש בזיכרון שמספקת 05/2 ואיך 0 יכולות להשתמש באפשרויות אלה באמצעות המישק לתכנות :ישומים 1תה). סו1-6ץ ו 6 . זס)56!60 והסזףסזם .ז6)ח= 658זק ח6ח7 .צ זס /,< ,> 655זק ,והסזףסזק 0 56160% סד .ז6)ח= 655זק ,ה6ח 7 .10] 658זכ ,60)6ק 56|60% 6ך סז סק חְהוההטה ₪ ס) הס)ואפ סז סזק 0 107% סק הסוח 60 005 = זסו 0 '₪' זס ושי = עו ז5 1 שו 'ן-'א סז הסוח 00 05/2 א | | )סז 600 05/2 א ל 115% 6וום -'|ק א 2 +קוחסזק הטסו 00 05/2* טח6] ז56]!6010 הההבזטסזק בורר התכניות 66 פרק 2 ניהול הזיכרון לזיכרון המערכת תפקיד חשוב ביותר בפעולתה של מערכת המחשב. פקודות מערכת ההפעלה ונתוניה וכן גם תכניות היישום ונתוניהן, נמצאות בזיכרון המערכת. המיקרו-מעבד לוקח את הפקודות מזיכרון המערכת ומבצע אותן. לשם ביצוע פקודות שונות פונה המיקרו-מעבד לזיכרון| המערכת לשם הבאת הנתונים. אחד השיפורים המשמעותיים ש-05/2) מספקת לעומת ה-05כ, הוא בכך שהיא מנצלת אפשרויות טיפול נוספות בזיכרון כפי שמאפשר המיקרו-מעבד 80286. בפרק הקודם סקרנו בפירוט את היתרונות שיש ל-80286 בהשוואה ל-8086 מבחינת ניצול זיכרון המערכת. נסכם ונאמר שה-8086 פונה לכתובת בזיכרון הפיסי באופן ישיר מכתובת שהיישום מציין. כתובת זו היא *יצוג ישיר של הכתובת הפיסית ומבוססת על סגמנט בן 16 סיביות וכתובת *חסית בת 16 סיביות. ערך הסגמנט בן 16 סיביות מגדיר סגמנט בן 64%3 בזיכרון הפיסי, והכתובת היחסית מגדירה לאיזו כתובת בתוך הסגמנט יש לפנות. בעזרת 8086 ניתן להכנס עד ל-118 של זיכרון פיסי. הכתובת שהיישום משתמש בה ב-80286 אה *יצוג ישיר של הזיכרון הפיסי. זו הסיבה מדוע היא נקראת כתובת בפועל (800:655 081)זנט). הכתובת מתבססת על ערך בורר בן 16 סיביות וכתובת יחסית בת 16 סיביות. ערך הבורר משמש להצבעה על מתאר סגמנט מתוך טבלה הנמצאת בזיכרון. המתאר מכיל את פרטי המידע החשובים על סגמנט הזיכרון הפיסי וכולל את הדברים הבאים: * המקום בזיכרון הפיסי שבו נמצא הסגמנט (אפשרות גישה בזיכרון הפיסי עד ל-16/13), או מידע שהסגמנט אינו נמצא בזיכרון. * גודל הסגמנט (הסגמנטים אינם חייבים להיות בגודל 8א64). * מידע על הגנה, הרשאה וסוג השימוש (לדוגמה, קריאה בלבד). יתרונות עיקריים כתוצאה מניצול אפשרויות הטיפול בזיכרון שמאפשר ה-80286, יכולה 05/2 לספק את השיפורים הבאים: * תומכת במערכות שבהן עד 1618 של זיכרון פיסי. מערכת 205 מספקת 8 של זיכרון לשימוש ישיר של היישומים, אך ב-05/2, מערכת ההפעלה והיישומים *כולים לבצע פקודות ולהביא נתונים ישירות מזיכרון פיסי שיכול להגיע עד 16/83. מרחב הכתובות בין 64088 ל-1/18 מנוצל על-ידי המערכת ל-8105 ולק/5 ממופה זיכרון. 7 * תומכת ביישומים המשתמשים בכמות :'כרון הגדולה מ-640%9 ואף גדולה מכמות הזיכרון הפיסי במערכת. ניתן לכתוב *ישומים שישתמשו ביותר מ-640%. בנוסף לכך, 025/2) מאפשרת לסגמנטים של זיכרון לא להיות בזיכרון הפיסי. בפועל, הסגמנט נשמר על הדיסק ומובא לזיכרון כאשר יש צורך להשתמש בו, בנוהל של תמיכה בזיכרון-יתר. * תומכת ביישומים רבים המשתמשים בו-זמנית בזיכרון הגדול מהזיכרון הפיסי במערכת. בנוסף לכך, משתמשים בטבלאות שונות של מתארים מקומיים (7'כ1), כדי לאפשר ליישומים להיות מוגנים זה מזה. * 005/2) עצמה משתמשת באפשרויות החדשות שמספק ה-80286. שירותים אלה מאפשרים הגנה על מערכת ההפעלה מפגיעה על-ידי *ישומים, והם מאפשרים לפקודות מערכת ההפעלה ולנתונים שלה להשתתף בתהליך התמיכה בזיכרון-יתר. 025/2) אינה צורכת כמות כה גדולה של זיכרון כפי שהיה נדרש, אילו כל התוכנה היתה צריכה להמצא באופן קבוע בזיכרון הפיסי. 2 מספסקת הגנה בין *יישומים שונים ובין היישומים לבין מערכת ההפעלה. בנוסף לכך, היא מאפשרת למשתמש להרי יישום או קבוצה של *ישומים המשתמשים בכמות גדולה של זיכרון. ניתן להשתמש ביותר מ-640%₪ זיכרון, ואף ביותר זיכרון מאשר ניתן למצוא פיסית במערכת. אפשרויות השימוש בזיכרון גדול | מתורגמות בצורה ישירה לל*תרונות משמעותיים למשתמש. יישומים יכולים לעשות את הדברים הבאים: לפתור בעיות יותר מתוחכמות. להיות קלים יותר לשימוש. לטפל ביותר נתונים. לספק משוב חזותי מפורט *ותר. יישומים יכולים להציע את היתרונות האלה אם הם לא *וגבלו על-ידי זיכרון פיסי קטן מדי, או על-ידי מרחב כתובות קטן מדי במערכת. אבל *ותר חשוב, המשתמש *כול להריצ *ותר מיישום אחד בו-זמנית מבלי לדאוג שיחסר לו זיכרון פיסי במערכת. מערכות תוכנה ויישומים שונים *כולים להיות בשימוש מבלי שכל פקודה וכל נתון **מצאו בזיכרון הפיסי. כמו בכל דבר אחר, חייבים גם פה להתחשב בחלופות, הן ביחס לזמן הביצוע והן ביחס לביצועים עצמם. יישומים צריכים להיבנות כך, שהם *צמצמו את העברת הנתונים בין הזיכרון הפיסי והדיסק. המשתמש חייב להתקין זיכרון פיסי גדול במידה מספקת כדי לאפשר זמן תגובה סביר בסביבת הביצוע הרצויה. תמיכה בזיכרון-יתר ניתן להבין בקלות את מהות התמיכה בזיכרון פיסי עד (161. הסידור של מתאר הסגמנט מאפשר הפקת כתובת פיסית עד 16/18. אולם, כאשר אנו אומרים שיותר זיכרון יכול להיות בשימוש מאשר באמת קיים במערכת, למה אנו מתכוונים? כאשר פונים לכתובת ב-80286, *כול לקרות שמתאר הסגמנט *ודיע שהסגמנט לא נמצא בזיכרון. הכתובת המייצגת תופעה זו נראית כמו כל כתובת אחרת הנמצאת בשימוש מערכת ההפעלה והיישומים. רק 8 כאשר המיקרו-מעבד מנסה לקבוע היכן הכתובת נמצאת בזיכרון הפיסי, מתברר שהכתובת אינה נמצאת הזיכרון הפיסי באותו זמן. הדבר גורם למעבד להפיק הודעת שגיאה האומרת שהסגמנט לא נמצא. מערכת ההפעלה חייבת לטפל בשגיאה זו ולהבין היכן נמצא סגמנט הזיכרון הדרוש. הסגמנטים "שאינם נמצאים בזיכרוןו" בזמן מסוים נשמהים בקובצ סגמנטים מועברים (1116 ק8ש8) הנמצא בדיסק הקשיח. התמיכה בזיכרון-יתר אפשרית על-ידי שימוש בשלוש טכניקות: * העברת סגמנטים. * ביטול סגמנטים. < הזזת סגמנטים. העברת סגמנטים (קת1קק8 5 6ת568(06) מתארת העברה של טגמנטים מהזיכרון הפיסי אל קוב+ הסגמנטים הנמצא בדיסק. לשם כך משתמשים באלגוריתם הפועל על פי עקרון 180 (₪566 ₪606 120886), כדי לציין אילו סגמנטים הו בשימוש הכי פחות לאחרונה, כדי להעביר אותם מהזיכרון הפיסי אל הדיסק. כאשר צריך להביא סגמנט זיכרון מהדיסק, חייבים להקצות לו מקום בזיכרון הפיסי, ועל-כן יתכן ויהיה צורך להעביר סגמנט מהזיכרון הפיסי כדי לפנות עבורו את המקום הדרוש. 05/2 מנסה להמנע מהעברה לדיסק של סגמנטים שמשתמשים בהם בתדירות גבוהה ו/או לאחרונה. יש סיכוי גבוה שסגמנטים אלה יהיו בשימוש שוב, ובקרוב. אם סגמנט "פופולר:" יועבר לדיסק, :היה צורך להחזיר אותו מיד לזיכרוו הפיסי, בפעולה אשר תעמיס את המערכת ללא צורך ותשפיע על ביצועיה. כדי לפנות מקום בזיכרון הפיטי לסגמנטים חדשים דרוש ביטול סגמנטים (6180810 | 6ת0ם5001). אין צורך להעביר לדיסק סגמנטים מכילי פקודות, כי הם אינם משתנים וניתן לבטל אותם בזיכרון. כאשר מגיע הזמן להשתמש בהם שוב, הם *ובאו שוב מן המקור בדיסק. ניתן לבטל גם סגמנטים מסוימים המכילים נתונים. כאשר *וצרים סגמנט נתונים ניתן ליצור אותו. כניתן לביטול. כאשר היישום משתמש בסגמנט, הוא "נועל" אותו כך שלא ניתן יהיה לבטל אותו. יישומים המאפשרים לבטל סגמנטים עוזרים למערכת ההפעלה לספק סביבה יעילה יותר של תמיכה בזיכרון-יתר. נניח שצריך להביא מהדיסק סגמנט בן 64%8. לשם כך יש צורך בזיכרון פיסי רצוף בן 6448 שייתכן ולא יהיה פנוי. זו הנקודה שבה חשובה הטכניקה של הזזת סגמנטים. במקרה זה דרושה הזזת סגמנטים (ם0)10ג 5ת0מ1ש56) בזיכרון כדי לקבף שטחים קטנים ולא מנוצלים לשטח פנוי אחד, שיהיה גדול ורציף. בפרס 4 כללנו דוגמה של תכנית שבה נדרשת תמיכה בזיכרון יתר. בדוגמה זו, הצגנו את המישק לתכנות הזיכרון, הנקרא 20541106568. התכנית תוכננה כך שהאדס המריף אותה יוכל לפרט את כמות הזיכרון שברצונו להקצות. בדרך זו אפשר לנסות ולהקצות כמוזות שונות של זיכרון ולראות את ההבדלים בהתנהגות המערכת כתוצאה מכך. אנו מתארים את המישקים השונים לתכנות הזיכרון מאוחר *ותר: בפרק זה. 99 הגנת הזיכרון יישומים (תהליכים) מוגנים זה מזה מאחר ויש להם טבלאות 1027 שונות. 05/2 יוצרת טבלת ז'כ.1 שונה לכל תהליך במערכת. החלק של ערך הבורר בכתובת משמש את היישום כאינדקס לטבלת 127 מסוימת לצורך בחירת מתאר הסגמנט. אין אפשרות שיישום אחד יקבל מתאר סגמנט השייך ליישום אחר, כי הוא אינו יכול לגרום ל-80286 להכנס לטבלת 1227 של *ישום אחר. לכן, יישומים אינם יכולים לקרוא או להרוס מרחבי כתובות של *ישומים אחרים. *יישומים צריכים לפעמים להשתמש באותו חלק של הזיכרון. הדבר דרוש כאשר יישום אחד צריך ליצור קשר עם :ישום אחר על-ידי שימוש בקטע משותף של הזיכרון. 05/2 מספקת אפשרות זו דרך המישק לתכנות השימוש בזיכרון. יישומים *כולים ליצור סגמנטים שניתן להשתמש בהם במשותף. סוגים מסוימים של סגמנטים משותפים בזיכרון הם סגמנטים בעלי שמות משותפים (-6ממהת 65 8766ת5). נסביר סגמנטים אלה בפרק זה, בסעיף העוסק במישק לתכנות יישומים. יישומי 05/2 פועלים במחשב ברמת הרשאה 3. *ישומי 05/2 שיש להם הרשאת ק/פ פועלים ברמת הרשאה 2 בזמן שיש להם הרשאת 5/2 (1021). 05/2 עצמה וה-6710615 660106 פועלות ברמת הרשאה 0. רמת הרשאה 0 הינה רמת ההרשאה בעלת מספר הזכויות הרב ביותר. רמת הרשאה ב-80286 מאפשרת למערכת ההפעלה להיות מוגנת מיישומים ובנוסף לכך היא מאפשרת למערכת ההפעלה לדרוש מיישומים הצריכים הרשאת 5/2 למלא אחר חוקים מיוחדים. מאפינ' זיכרון המערכת 2 מעמידה לרשות סביבת הביצוע של 005 את כמות הזיכרון המירבית. היא עושה זאת על-ידי כך שהיא משתמשת בחלק קטן בלבד של הזיכרון מתחת ל-640%8. החלק של 05/2 הנמצא דרך-קבע (%ת68100-) בזיכרון אינו ניתן להעברה החוצה אל הדיסק, וכן גם כל ה-68ש671 660106 במערכת, אשר נ(מצאים מתחת לגבול ה-640%5. גם הם אינם ניתנים להעברה החוצה. שאר שטח הזיכרון שמתחת ל-640%8 ניתן לשימוש על-ידי סביבת הביצוע של 005. חלק נוסף של 05/2 נמצא דרך-קבע בזיכרון מעל כתובת הזיכרון המציינת את 8 פרט לחלקי ה-025/2) הנמצאים דרך קבע בזיכרון, ישנו חלק של 05/2 הניתן להעברה, בדיוק כמו יישומים. הדבר מאפשר שימוש *ותר *עיל בזיכרון הפיסי של המערכת. טענת סגמנט מראש וטעינה לפי דרישה סגמנטים של יישומים מוגדרים כנטענים מראש (61080זַ2), או כנטענים לפי דרישה (6ת06₪.8 תס 1080). כאשר סגמנט נטען מראש, הוא נטען לזיכרון מיד לאחר שהיישום מתחיל לפעול. זאת אומרת, שהסגמנט *נסה להשתמש בזיכרון פיסי, אבל יתכן והוא *ועכר החוצה אם אין מספיק זיכרון פיסי פנול. כאשר סגמנט מאופיין כנטען לפי דרישה, הוא אעו מוטען לזיכרון עד אשר 020 היישוסם צריך להשתמש בו (בנתונים או בפקודות). סגמנט הנטען לפי דרישה אינו מעמיס על זיכרון המערכת עד אשר צריך להשתמש בו. סגמנט הנטען לפי דרישה לא יתפוס לעולם זיכרון פיסי, או מקום בקוב> הסגמנטים המועברים. סגמנטים של יישומים שסביר להניח שלא :היו בשימוש הם מועמדים טובים להקבע כסגמנטים הנטענים לפי דרישה. השיטה לטעינת סגמנטים מראש ולטעינה לפי דרישה חייבת להשקל בתשומת לב רבה במטרה להפחית את העומס על המערכת. עומס זה *גדל אם היישומים ישתמשו בטעינת סגמנטים מראש. מאפינים הניתנים לקביעה על-ידי המשתמש למשתמש יש אפשרות לקבוע רבים ממאפייני השימוש בזיכרון המערכת באמצעות פרמטרים בקובף 5צ10.5עא 0ס6. המשתמש יכול להחליט שחלק מהזיכרון הפיסי לא יהיה זמין ליישומים, על- ידי קביעת דיסק בפועל או על-ידי קביעת זיכרון מטמון (6ת080). המשתמש חייב לשקול את היתרונות שבשימוש בדיסק בפועל, או בזיכרון מטמון, מול העומס שיווצר במערכת כאשר *היה פחות זיכרון פיסי הזמין לשימוש של היישומים. המשתמש *כול לבטל העברות ותזוזות של הסגמנטים במערכת. הוא ירצה לעשות זאת בסביבת *ישומים מיוחדת, אשר גורם הזמן בה הוא קריטי. אפשר שיישום כזה לא יפעל כהלכה אם הוא יצטרך לחכות לפקודה, או לנתון, שאינם זמינים לגביו באופן מיידי, כיוןו שהם הועברו החוצה או הוזזו. המשתמש *כול לקבוע שסביבת הביצוע של 205 תהיה קטנה *ותר מהמקסימום שנקבע לה (קצת מתחת ל-640%8). המשתמש גם *כול לקבוע שסביבת הביצוע של 5 לא תהיה קיימת בכלל. משתמשים שאין להם צורך להריצ *ישומים בסביבת הביצוע של 025 צריכים לוודא שלא תיווצר סביבה כזאת באופן אוטומטי. בכך יישאר יותר זיכרון פיסי פנוי עבור היישומים החשובים. המשתמש *כול להחליט היכן יהיה קוב הסגמנטים המועברים. אם קיימת אפשרות שקובף הסגמנטים המועברים יגדל וישתמש בכל הדיסק, *תכן והוא ירצה לשים את הקוב הזה במחיצה נפרדת בדיסק. מאפין' סגמנטים ב-] ותו 6 תיאור של קוב להגדרת מודול (עכ12 - 2116 תסגש1ם611כ1 100016/), ניתו בפרק על גישות מתקדמות בתכנות (ראה פרק 7). מתכנת *ישומים יוכל להשתמש ב-1102 לקביעת רבים ממאפייני הסגמנטים המכילים את פקודות היישום, או את 1 נתוניו. חלק ממאפייני סגמנטים אלה מובאים להלן: * האם הסגמנט נטען מראש, או נטען לפי דרישה. = אם זה סגמנט המכיל פקודות, האם הוא נקרא כנתונים ומבוצע, או שהוא מבוצע בלבד. אם מנסים לקרוא כנתונים סגמנט המוגדר לביצוע בלבד, נקבל הודעת שגיאה. * אם זה סגמנט נתונים, האם יש צורך לקרוא ממנו ולכתוב עליו, או רק לקרוא ממנו. אם מנסים לכתוב לתוך סגמנט המוגדר בקריאה בלבד, ה-80286 *וציא הודעת שגיאה. שיקלי ב'צועים בתכנון "שומים כפי שדנו קודם, יש לבנות את היישומים באופן כזה שכמות העברות והזזות הסגמנטים במערכת *היה נמוך ככל האפשר. ניתן לעשות זאת על-ידי סידור הסגמנטים מכילי הנתונים והפקודות, כך שהפקודות והנתונים שהס:כוי שיהיו בשימוש הינו הגבוה ביותר *קובצו לסגמנטים משותפים. הפקודות והנתונים שהסיכו שיהיו בשימוש הינו הנמוך ביותר (כמו עזרה, או עיבוד שגיאות) *יקובצו בסגמנטים נפרדים. הסגמנטים *וגדרו כנטענים מראש, או כנטענים לפי דרישה, בהתאם לסיכן? ולתכיפות השימוש בהם. למתכנת היישומים חשוב גם לשקול את גודל הסגמנטים. סגמנטים גדולים טובים לנתונים ופקודות שישתמשו בהם בתדירות גבוהה. ככל שהסגמנט גדול יותר, כך גובר העומס על המערכת כתוצאה מהעברה או מהזזה שלו, וגם השטח שהוא תופס בזיכרון הפיסי גדול *ותר. שילוב של פקודות ונתונים הנמצאים בשימוש תדיר עם כאלה שאינם נמצאים בשימוש תדיר, או רצוי וגם בזבזל מבחינת הזיכרון הפיסי במערכת. *ישומים צריכים להתחשב בשיקולים הבאים: גדלי הסגמנט. > * מספר הסגמנטים. * מספר הסגמנטים שיהיו צריכים להיות נוכחים בזיכרון הפיסי בזמן הביצוע הרגיל של היישוס. * כחיתח ההעברות שתצטרך להיות במצב של תמיכה בזיכרון-יתר. המתכנת צריך לדאוג לכך שהמשתמש הסופי :וכל להריצ מספר יישומים בו- זמנית. המתכנת אינו צריך לנסות לכתוב תכנית אופטימלית לסביבת הפעלה של יישום אחד. לדוגמה, אין להגדיר את כל הסגמנטים של היישומים כנטענים מראש, כדי לגרום לכך שהיישוס ירוצ מהר *ותר (אם למערכת יש זיכרון פיסי המספיק להרצת יישום אחד). המתכנת צריך לפתח את היישום כדי ש'תנהג בצורה טובה בסביבה רבת *ישומים. המשתמש *עריך :ישומים שיעבדו בצורה אופטימלית בסביבה רבת :ישומים, והוא לא יבחר ביישום שמפריע ללא צורך לביצועים של שאר היישומים במערכת. 02 מישקים לתכנות הדדכרון אינד אריך להיות מתכנת יישומים כדי שתרצה להבין את אפשרויות ניהול הזיכרון שמספקת 025/2). אתה צריך להבין אפשרויות אלה כדי שתוכל לעשות את הדברים הבאים: * לכונן את המערכת שלך כראוי (דרך 5צ16.5עא00). : * להבין איך כמות הזיכרון הפיסי שיש לך משפיעה על ביצועי המערכת בזמן הרצת קבוצה כלשהי של *ישומים. אם אתה משתמש בשפות עיליות כדי לכתוב יישום פשוט, לא תהיה חייב להשתמש במישקים לתכנות הזיכרון ש-05/2 מספקת. אולם על-ידי לימוד של האפשרויות שמספקים מישקים לתכנות הזיכרון, תבין טוב *ותר איך יישומי 05/2 *כולים לנצל את אפשרויות הטיפול האלה בזיכרון גדול. בדיון על המישקים לתכנות הזיכרון, השתמשנו במונח תהליך (66855סזק). בשלב זה, תהליך לגביך הוא דבר הזהה ליישום. זו יישות ב-025/2) שבבעלותה נמצאים משאבי המערכת. אחד ממשאבים אלה הוא הזכות להכנס לסגמנט של הזיכרון, *ישום *כול להיות מבוסס על תהליך אחד, או על מספר תהליכים. מישקים לתכנות הזיכרון 2 מאפשרת לתהליכים להקצות סגמנטים בזיכרון. כאשר מקצים סגמנט בעזרת המישק לתכנות *ישומים (21 - 6011806ת1 שמותמתהזקסז ם0ס10801!קקה), מוחזר ערך בורר בן 16 סיביות לתהליך. התהליך משתמש בערך הבורר כדי להכנס לסגמנט בזיכרון. התהליך יכול ליצור סגמנטים בכל גודל עד 64%8. אם הוא רוצה, הוא יכול גם לשנות את גודל הסגמנט, דבר המאפשר לתהליך להשתמש בצורה *עילה *ותר בזיכרון המערכת. בנוסף לכך, התהליך :*כול להודיע ל-05/2 שהוא אינו רוצה להשתמש *ותר בסגמנטים בזיכרון. הדבר מאפשר ל-025/2) לבטל את הערכים המתאימים בטבלאות ה-12'7 ולהפסיק להעביר סגמנטים החוצה. תהליכים *כולים ליצור סגמנטים שניתן להתחלק בהם עם תהליכים נוספים. אחת השיטות לעשות זאת גורמת לכך שיינתן "שם" לסגמנט המשותף, כדי לאפשר לתהליך אחר מיעון לסגמנט. שיטה אחרת מאפשרת לתהליך אחד להתיר במפורש לתהליך אחר לבקש להשתמש בסגמנט המשותף, ללא איזכור השם הלוגי שמזהה אותו. תהליכים :כולים לייצור סגמנטים הניתנים לביטול על-ידי 05/2. כאשר התהליך רוצה להשתמש בסגמנט, הוא מודיע ל-05/2 במפורש שלא תבטל את הסגמנט כרגע (נועל את הסגמנט). כאשר התהליך אינו צריך את הסגמנט לזמו מה, הוא מודיע ל-05/2) שהסגמנט ניתן לביטול כעת (משחרר את הסגמנט). כאשר 05/2 צריכה לפנות מקום בזיכרון הפיסי, היא תשתמש באופציה זו ותבטל את הסגמנט. כאשר התהליך צריך להשתמש שוב בסגמנט, הוא מודיע ל-05/2 שהסגמנט אינו ניתן לביטול (נעול) כעת. אם 05/2 ביטלה כבר את הסגמנט, ניתנת הודעה על כך לתהליך (החזרת מידע מפונקציית הנעילה) והתהליך צריך ליצור את הסגמנט מחדש. למרות שטכניקת הביטול נראית כעבודה נוספת, היא מאוד מועילה לתהליכים הדורשים כמות גדולה של זיכרון זמני. תהליכים אלה אינם רוצים להעמיס על המערכת את כל ההעברות שהיו נדרשות, אילו לא היו משתמשים בטכניקה זו. 3 אחד האספקטים המעניינים ביותר של הדרך, שבה תכניות 2025 נכנסות לזיכרון הוא, שהכתובת הפיסית תואמו, בצורה ישירה לכתובת הסגמנט בת 16 סיביות המשמשת את התהליך. עובדה זו מאפשרת לתהליכים, אשר יש להם צורך ביותר מ-64%8 של זיכרון, לפנות לכתובות של מבנ* נתונים גדולים. בצורה זאת הם יכולים לעבור על כל מרחב הנתונים מבלי לחפש אחר כתובות חדשות של סגמנטים. 005/2 מספקת ליישומים שיטה להקצות סגמנטים רבים בני 64%5, אשר לכל אחד מהם יש ערכי בורר הנגזרים מזה של ערך הבורר הקודם. ערך הבורר הבא מתקבל על-ידי הוספה של ערך קבוע לערך הבורר הנוכחי. כך היישום יכול לבקש שטח גדול בזיכרון (*ותר גדול מ-64%8) ולהכנס לכל השטח באופן ישיר על-ידי שימוש בערך הבורר של הסגמנט הראשון בלבד שמתאר את שטח הזיכרון הגדול. 2 ממאפשרת לתהליך ליצור ערך בורר לפקודה הנמצאת בשטח המכיל נתונים. בעזרת ערך בורר זה, התהליך *כול לבצע פקודה הנחשבת גם לנתון, אשר יתכן ונכתב על-ידי תהליך אחר. ישנם מקרים שבהם תהליך צריך הרבה קטעים קטנים של זיכרון. אם התהליך בונה סגמנטים נפרדים לכל מספר קטן של בתים שהוא צריך, נוצר עומס רב על המערכת. 025/2) מספקת מנגנון שהתהליכים משתמשים בו כדי לפצל סגמנט אחד גדול למספר קטעים קטנים. 05/2 עוקבת אחר אותם חלקי זיכרון מתוך הסגמנט הגדול שאינם נמצאים בשימוש. התהליך מגיש בקשות לחלקים קטנים של זיכרון מתוך הסגמנט הגדול, ו-25/2) מחזירה את הכתובת היחסית הנכונה בתוך הסגמנט שאיתה צריך התהליך להשתמש. מאפיין זה של ה-05/2 נקרא הקצאת- משנה <:'כרון (ם5₪0811008%10 עתסמ16/), והוא מסופק כסידרה של שגרות קישור דינמיות. ניהול הסגמנטים בזיכרון מישק התכנות ב-025/2) מספק מנגנון המאפשר ליצור סגמנטים, לשנות את גודלם ולשחרר אותם. אפשר להפוך סגמנט נתונים לסגמנט של פקודות הניתנות לביצוע. בהמשך נפרט את הפקודות המשמשות למטרות אלו. 6% זיזיוצרת סגמנט בכל גודל עד 64%8. המישק מחזיר ערך בורר בן 6 סיביות שהתוהליך משתמש בו כדי להכנס לסגמנט בזיכרוו שזה עתה נוצר על-ידי המערכת. הסגמנט החדש ניתן להזזה ולהעברה החוצה. התהליך :כול לבקש שלסגמנט שנוצר *ינתנו המאפיינים הבאים: * הסגמנט יהיה משותף, על-ידי כך שהתהליך הנוכחי יאפשר לתהליך אחר לגשת אליו. ראה 05021656₪. * הסגמנט יהיה משותף, על-ידי כך שתהליך אחר יצליח להכנס לסגמנט זה. ראה 0506%568. * הסגמנט ניתן לביטול. זה *כול לקרות במערכת שבה מותקן זיכרון קטן. ₪ משנה גודל של סגמנט לאחר שכבר נוצר, על-ידי העברה למישק של ערך הבורר והגודל הרצוי. אם הסגמנט הוא משותף, ניתן להגדיל את הסגמנט בלבד. אם הסגמנט מאופיין כניתן לניטול, בקשה זו מבצעת את אותו תפקיד כמו 058100%568. 4 8 מאפשרת לתהליך לשחרר סגמנט שנוצר קודם, או שהוא השיג כניסה אליו. אם הסגמנט הוא משותף, הוא *וקצה מחדש (ישוחרר) רק לאחר שכל התהליכים שהשיגו כניסה אליו או יצרו אותו *וציאו בקשה זו. 0 תהליך *כול ליצור סגמנט הניתן לביטול. אם הוא עושה זאת, אז בכל פעם שהוא רוצה להשתמש בסגמנט (פרט לאחר שהסגמנט נוצר לראשונה) הוא חייב להשתמש במישק התכנות הזה. שימוש במישק מודיע למערכת שהיישום ישתמש כעת בסגמנט, והמערכת אינה *כולה לבטל אותו כעת. אם קריאה זו נכשלת, התהליך :ודע שהסגמנט בוטל והוא חי*ב ליצור אותו מחדש עם 0 סע מודיעה למערכת שיש לה אישור לבטל את הסגמנט. אפשר לבצע קינון (שַם650ת) של 205100568 ו-568א100ם2051. | במלים אחרות, אם מבצעים א פעמים קריאות של 568א205100, חייבים לבצע גם א פעמים קריאות תפס לפני שהמערכת תוכל לבטל את הסגמנט. המערכת תוכל עדיין להזיז או להעביר סגמנט שננעל. 00 מודיעה למערכת שהיא *כולה לבטל כעת סגמנט שמותר לביטול, אשר היה נעול עד לרגע זה. השיטה של ביטול סגמנטים היא שיטה שבה תהליכים מאפשרים למערכת להשתמש בצורה טובה *ותר בזיכרון הפיסי הקיים. לדוגמה, אם תהליך משתמש בכמות גדולה של זיכרון זמני, זו *כולה להיות שיטה יעילה להפחית את ההשפעה של השימוש בכל הזיכרון הזה. 8 *ל**וצרת ערך בורר תקף לסגמנט פקודה מתוך ערכי בורר של סגמנטים המכילים נתונים (25, ₪5, או 55). הסגמנט חייב להיות בבעלות בלעדית (לא משותפת) של התהליך, ואינו יכול להיות חלק מגוש של זיכרון שהוקצה על-ידי 12054110011086. התהליך מטעין קבוצה של פקודות תקפות לתוך סגמנט נתונים ומשתמש בפונקציה זו כדי שהוא *וכל להתייחס לסגמנט זה כסגמנט פקודות. סגמנטים משותפים מישק התכנות מאפשר לתהליך שיצר את הסגמנט בזיכרון לשתף תהליכים אחרים בגישה אליו. מתירה לתהליך שיצר את הסגמנט בזיכרון לאפשר לתהליך אחר להכנס לאותו סגמנט. כדי שבקשת 1205016568 תפעל בצורה נכונה, התהליך חייב להודיע למערכת במפורש בזמן יצירת הסגמנט, שהוא עומד לעשות זאת. התהליד שיצר את הסגמנט עם 120881100568 מעביר למערכת את ערך הבורר של הסגמנט ואת המספר המזהה של התהליך (12 2006655 - ראה בפרק הבא) שישתמש במשותף בסגמנט. המערכת מחזירה את ערך הבורר שהתהליך האחר יצטרך להשתמש בו, כדי להכנס לאותו סגמנט. התהליך המקורי מעביר את ערך הבורר הזה לתהליך האחר על-ידי שימוש בצורה כלשהי של תקשורת בין תהליכים. 8 משיגה גישה לסגמנט שנוצר על-ידי סגמנט אחר. התהליך שיצר את הסגמנט חייב להתיר לתהליך אחר לפנות לסגמנט בעזרת המישק הזה. התהליך האחר מעביר את ערך הבורר של הסגמנט הרצוי למישק הזה, והמערכת מתירה לתהליך האחר להכנס לסגמנט. 65 סגמנטים בעלי שמות משותפים אפשר לתת שמות לוגיים לסגמנטים בזמן יצירתם. בכך, תהליכים אחרים במערכת יוכלו להכנס לסגמנט על-ידי שימוש בשם הסגמנט. 0340 *וצרת סגמנטים בכל גודל עד ל-64%8, אשר מזוהים בעזרת שם. התהליך מעביר את הגודל והשם למישק. ערך הבורר שהתהליך צריך להשתמש כדי להכנס לסגמנט מוחזר למבקש. השם שהתהליך נותן לסגמנט הוא באותו מבנה כמו שם קוב ב-025/2). השם ח*יב להיות בתת-מדריך מ6םם6ז8ת5, ולכן כל השמות *תחילו במחרוזת התווים \ת6ת876ת5. מישק 7568ת12054.11005 מתיר לתהליך אחר כניסה לאותו סגמנט על-ידי שימוש בשם שניתו לסגמנט על-ידי התהליך שיצר אותו. 090 משיגה אישור כניסה לסגמנט שנוצר עם פונקציית המערכת 0[הפסע. כל התהליכים צריכים לדעת את השם שניתן לסגמנט בזמן שהוא נוצר. התהליך מעביר את השם של הסגמנט למערכת ומקבל בחזרה את ערך הבורר שישמש לו לכניסה לסגמנט. ניהול סגמנטים גדולים אם דרוש שטח זיכרון הגדול מ-64%8, צריך לשקול שימוש במאפיין זה של מישק התכנות. 6 ממצה גוש בזיכרון הגדול מהגודל המקסימלי של הסגמנט (64%9). התהליך מודיע למערכת כמה סגמנטים בני 64%8 הוא רוצה, ומהו הגודל של הסגמנט האחרון (עד 64%3). התהליך מודיע למערכת גם את הגודל המקסימלי | שאלין גג'ע גוש הזיכרון| הזה אי-פעם. התהליך משתמש ב-+1205026+110269111 כדי לחשב את ערכי הבורר המתאימים לסגמנטים הנוספים בגוש הזיכרון הגדול. הבט על הדוגמה בתרשים 7. התהליך מבקש שטח זיכרון בן 140%3. מוחזר לו ערך | בורר ‏ "1024", | המצביע | על סגמנט בן 64%8. על-ידי שימוש ב-%+1205020%110869211, התהליך מגלה שהוא צריך להוסיף 8 לערך הבורר הראשון (1024) כדי לקבל את הערך של הבורר (1032) שמצביע על ה-64%3 השני בשטח בן 14088 בזיכרון. על-ידי הוספת 8 ל-1032, יחושב ערך הבורר השלישי. ערך הבורר השלישי מצביע על סגמנט המכיל 12%8. שלושת הסגמנטים מסתכמים ב-2א140 זיכרון. סגמנטים שהוקצו בדרך זו מתירים 6568ט120501, 205001568 וביטול סגמנט; ההבדל היחיד בין זה לבין זיכרון שהוקצה עם 0541100568 הוא בכך, שהקריאות המתאימות משתמשות רק בערך הבורר הראשון עבור כל גוש הנתונים הגדול הזה. + משיגה את הערך שצריך להתוסף לערך הבורר הראשון המוחזר כתוצאה מקריאה ל-051100106. על-ידי הוספה של הערך הזה לערך הבורר הראשון נקבע ערך הבורר השני, שבו ישתמש התהליך כדי להכנס לגוש 8 השנל בזיכרון. כל אחד מערכי הבורר הבאים לאחר מכן מחושבים בדרך דומה. 6 תרשים 7. הקצאת זיכרון "גדול" של 140%8 6 משנה את הגודל של גוש הזיכרון שהוקצה במקור על-ידי 86, ניתן להגדיל רק עד למקסימום כפי שנקבע ב-054110011086 המקורל. הקצאות משנה בזיכרון 2 מספסקת קבוצה של מישקי תכנות שהתהליך יכול להשתמש בהם כדי להקצות יחידות זיכרון קטנות לתוך סגמנט *חיד. מאפיין זה חשוב, מאחר ואין זה יעיל ליצור סגמנט חדש לכל *חידה קטנה של זיכרון שהתהליך זקוק לו. + מודיעה למערכת להכין טגמנט לשימוש התוכנה להקצאות משנה (80%806ק ת5₪08[1008010 עזסומסות). חייבים להשתמש במישק זה, אם גודל הסגמנט הוגדל עם 2058681100115602. החבילה להקצאות משנה משתמשת בסגמנטים שנוצרו על-ידי 208411005068 ו-508זזת05811005]. 0% ממקצה בלוק של זיכרון בתוך הסגמנט שנוצר ואותחל על-:ידי %,.,.,. התהליך מעביר את גודל הבלוק הרצוי ואת ערך הבורר של הסגמנט למישק התכנות. התהליך מקבל כתשובה את הכתובת היחסית של הבלוק בתוך הסגמנט. הבלוק המקסימלי שניתן להקצות *כול להגיע עד 8 בתים פחות מגודל הסגמנט. כל הבלוקים ניתנית להקצאה בכפולות של 4 בתים. 07 6 משחררת בלוק של זיכרון שהוקצה על-ידי 0551041106. ערך הבורר של הסגמנט, גודל הבלוק, והכתובת היחסית של הבלוק בסגמנט מועבריס למישק התכנות. אם המידע אינו עקבי עם הסידור של הבלוק בתוך הסגמנט, המערכת מודיעה על שגיאה. ג"ל זיכרון בהתקנים ח'צניים במבוא דנו בהתקני ק/פ ממופי זיכרון ובהתקנים עם גישה ישירה לזיכרון (גואס). מישק התכנות המאפשר את ניהול הזיכרון אינו מכיל מספיק פונקציות התומכות בהתקנים אלה. הפונקציות שכיסינו אינן מאפשרות ליישום לבקש להכנס לכתובת פיסית מסוימת. בעוד שיישום יכול ליצור סגמנטים בזיכרון ולהכנס אליהם, אין הוא *כול להודיע למערכת למקם את הזיכרון הזה או להכנס לכתובת פיסית מסוימת בזיכרון המערכת. התקני ק/פ ממופי זיכרון כדי להשתמש בהתקני ק/5 ממופי זיכרון, צריכה להיות ליישום האפשרות להכנס לכתובת פיסית מסוימת בזיכרון הפיסי המוקדש לק/9פ ממופה זיכרון. פרק 6, אשר דן בניהול התקנים מבוקרי-פסקים עוסק בדרך שבה 060166 ץז *יכול ליצור ערך בורר שהיישום משתמש בו כדי להכנס לזיכרון הפיסי בהתקן הק/9. התקנים עם גישה ישירה לזיכרון התקנים המשתמשים בגישה ישירה לזיכרון (גכ) כדי להעביר נתונים לזיכרון המערכת וממנו צריכים תמיד את הכתובת הפיסית בזיכרון המערכת. אבל כפי שהסברנו כבר, היישום אינו מטפל בכתובת הפיסית של הסגמנט שבו הוא משתמש לאגירה של נתונים. פרק 6 מסביר איך ה-:0ט611 660106 משיג אפשרות מיעון לזיכרון פיסי זה. 08 פרק 3 ריבוי משימות ויישומים בפרק הקודם חקרנו איך 05/2 מספקת מרחב כתובות המספיק כמעט לכל יישום, או קבוצת יישומים העולה על הדעת. שיפור נוסף ב-05/2 לעומת ה-205 הוא האפשרות שיש ליישומים לבצע מספר משימות בו-זמנית והאפשרות שיש למשתמש לעבוד עם *ותר מיישום אחד בו-זמנית. בעולם ה-1005 אפשר להפעיל במחשב רק *ישום אחד בו-זמנית. זאת אומרת שהמשתמש חייב להשלים את כל העיבוד הדרוש לתכנית 8 לפני שהוא *וכל להריצ את תכנית 23. מדוע חשוב להריצ יותר מיישום אחד בו-זמנית? אם הינו עושים את עבודות הבית לפי הכללים של פעילות אחת בלבד בו- זמנית, היום שלנו היה עובר בצורה מאוד לא *עילה. היינו מעמיסים את כל כלי המטבח לתוך מדיח הכלים, מפעילים אותו ולא עושים דבר עד שהוא מסיים. ‏ רק אז ה"נו מרוקנים ממנו את הכלים ומסדרים אותם. לאחר מכן היינו מכניסים את כל הבגדים המלוכלכים לתוך מכונת הכביסה ומחכים שהיא תסיים את פעולתה, מעמיסים את מייבש הכביסה ומפעילים אותו. אם נשארו עוד בגדים שיש צורך לכבס אותם, לא היו *כולים לעשות דבר עד אשר מייבש הכביסה יסיים את פעולתו. רק אז הינו יכולים לכבס בגדים נוספים. כמובן שנוהל עבודה זה אינו מאפשר ניצול נכון של הזמן שלנו. אם ה*ינו יכולים להפעיל את מדיח-הכלים, מכונת-הכביסה ומייבש הכביסה בו-זמנית, הזמן הכולל שהיה עובר היה קטן בהרבה, וה*ענו *כולים לבצע עבודות נוספות שהיה צורך לעשותן. דבר זה נכון גם לגבי משתמשים בתחנת עבודה. משתמש ירצה להריצ מספר תכניות, אשר כמעט אינן דורשות הידברות, אך זמן הביצוע שלהם הוא ארוך. להלן מספר דוגמאות של תכניות עם המאפיינים האלה: חישוב של גיליון אלקטרוני גדול. הידור של תכנית. קבלת נתונים בקווי תקשורת. הדפסת קוב>. בזמן שכל הפעילויות האלו מתבצעות, המשתמש *כול לפעול עם תכנית שדורשת מידה ‏ רבה של הידברות, כמו עורך (ע86160) או מעבד תמלילים. על-ידי ביצוע כל הפעילויות האלו במקביל, המשתמש *כול להעלות בצורה משמעותית את פריון העבודה שלו. משך הזמן שדרוש להרי+ מספר תכניות במקביל אינו שווה לסך כל הזמני*ם, אילו היינו מריצים כל *ישום בנפרד. השוולון אינו קיים, מאחר ורוב היישומים אינם צריכים את המעבד ב-100% של הזמן. בד"כ היישום צריך לחכות לנתונים שייקראו מהתקן ק/5, או לחכות שייכתבו לשס. בזמן שהיישום מחכה שפעילות זאת תתבצע, המעבד *וכל לבצע עבודה מועילה אחרת. התמיכה של 05/2 בסביבה רבת משימות ומרובת *ישומים מבוססת על ניצול מקסימלי של המעבד. 9 תחת 205, היכולת של המעבד לבצע עבודה ביעילות מוגבלת, מכיון שסביבת 5 ממאלצת אותו "לחכות" לסיום פעולות הק/9פ לפני שהוא יכול לבצע את העבודה הבאה. המעבד אינו נכנס למעשה למצב של "המתנה". בפועל, הוא ממשיך לשאול אם פעולת הק/פ הסתיימה עד שהוא מקבל תשובה חיובית. סוג הפעולה הזאת ידוע בשם לולאה סיבובית (1000 מנסף). לפעמים הפעלה של מספר עותקים של אותו *ישום יכולה להיות מאוד מועילה. משתמשים רוצים למשל, שמספר עותקים של עורך הטקסט יהיו פעילים כדי שיהיה ניתן לעבוד בו-זמנית על קבצים שונים של רשימות שונות בנושאים שונים. על-ידי שימוש במספר עותקים של אותו יישום בו-זמנית, המשתמש איגו צריך לבצע את התהליך של שמירת קוב אחד והבאה של אחר, חשוב מאוד שהשיטה המאפשרת מעבר בין יישום אחד לשני תהיה מהירה וקלה. אנו יכולים להבין בקלות את היתרון שנשיג אם נוכל להריץ יותר. מיישום אחד בו-זמנית. אבל מה לגבי הרצה של מספר משימות בו-זמנית? 05/2 משתמשת בתמיכה שלה במספר משימות בו-זמנית כדי לאפשר את הקיום של סביבה מרובת יישומים. הצורך בהפעלה של מספר משימות בו-זמנית קיים אפילו לגבי *ישום אחד. תמיכה במספר משימות בו-זמנית מאפשרת ליישום לעשות יותר מאשר פעולה אחת בעת ובעונה אחת. מאחר ויש מעבד אחד בלבד במערכת, היישום אינו מבצע בפועל יותר מדבר אחד בו-זמנית, אולס המערכת משתמשת במעבד בצורה כזו, שנראה לנו שהיא מבצעת פעולות אחדות באותו זמן. במערכת 025כ, *ישום יכול לעשות רק משימה אחת בו-זמנית. אפשר לחשוב על משימה כנתח של עבודה שצריך להתבצע על-ידי המעבד. *ישומים חייבים לבצע את המשימות שלהם בצורה מסונכרנת (ע1פטסתסזתסמע5), בדרך שבה כל משימה חייבת להתבצע לאחר משימה אחרת. לדוגמה, לאחר בקשה לקרוא קוב מהדיסק, אין יישום ב-05כ יכול לבצע דבר אחר עד אשר הקריאה הושלמה והנתונים נקראו מהדיסק לתוך הזיכרון. יישום ב-05 יכול לשאול את המערכת האם יש תווים שהוא צריך לקרוא מהמקלדת. פעולה זו נקראת חקירה (אַת!1סק). הסיבה לחקירה זו היא שהיישום אעו רוצה להגיע למצב שבו הוא יתקע בהמתנה להקשה מהמקלדת. בסביבה רבת משימות, יישום אינו צריך לבצע את המשימות בזו אחר זו, או בצורה מסונכרנת. ליישום יכולה להיות *ותר ממשימה אחת פעילה בו-זמנית. למשל, הוא יכול להיות במצב שבו משימה אחת תהיה קריאה מהמקלדת ומשימת אחרת תהיה קריאת נתונים מהדיסק. בזמן ההמתנה לקריאת הנתונים מהדיסק, היישום *כול להשתמש במעבד כדי לקבל הקשות מהמקלדת ולעשות כל דבר אחר שדרוש. מאחר ואין תזמון בין המשימות בכל נקודה ונקודה, נוכל להגיד שהמשימות מתבצעות בצורה אטינכרונית (ע1פטסמסזתסתע85). בגלל האופי המורכב של הסביבה רבת המשימות, המערכת מספקת שירותים רביס על-מנת להבטיח שיישום או קבוצת יישומים *יכתבו בצורה נכונה. לדוגמה, המשימות ביישום חייבות לבצע את הדברים הבאים: להתחיל, לעצור ולפקח על משימות. להתקשר זו עם זו. לסנכרן פעילויות. להשתמש באופן סידרתי במשאבי המערכת. 70 ללא אפשרויות אלו, לא היה אפשר לבצע עבודה בצורה יעילה בסביבה רבת משימות, מאחר וזה היה גורם לאי-סדר נוראי. בפרק זה אנו חוקרים את הדרך שבה המישק לתכנות *ישומים ב-25/2) תומך בסביבה רבת משימות. בסביבת 025/2) אין משתמשים במונח "משימה" (85%+). במקומו משתמשים בשלושת המונחים הבאים כדי לתאר את היישויות המתייחסות לסביבה רבת המשימות ומרובת היישומים של 05/2: = 565910 (מהלך עבודה). * 00055זק (תהליך). * 686עת+ (*חידת ביצוע - "חוט"). אנו מתארים את האפשרויות הסביבה רבת המשימות ב-25/2) מנקודת המבט של ת509510, 106055 ו-6806עת5. סב'בה מרובת "שומים מנקודת המבט של המשתמש, יישום כולל בד"כ תכנית הקוראת מהמקלדת או מעכבר, מציגה נתונים על המסך, ומבצעת עיבוד נתונים. בטרמינולוגיה של 2 לפנינו ח565510 (מהלך עבודה). היישום שכרגע מקבל הקשות מהמקלדת ומציג נתונים על המסך נקרא 5655100 6ת700ק6ז10 (מהלך חזית). שאר התכניות במערכת ה-25/2) נקראות 8 ₪6ת80%700פ (מהלך רקע), והן מקבלות זמן מעבד וממשיכות להתבצע. השוני היחיד בין שתי קבוצות התכניות הוא בכך, שהמשתמש *כול להתקשר רק ל-ם569810 אחד בו-זמנית: לזה הנמצא ב-6ת0708700+, כלומר - בחזית. אין זה הגיוני לאפשר לכל תכנית שרצה במערכת לכתוב על המסך בו-זמנית. אין זה גם הגיוני שכל תכנית במערכת תקבל כל תו שהמשתמש מקליד מאחר וזה היה מבלבל את המערכת. כאשר 505810 6תט086%"0 מנסה לכתוב נתונים למסך, הוא מופנה לחלק מסוים בזיכרון המערכת שהוא **צוג לוגי של המסך. הנתונים אינם מוצגים למעשה על המסך, אלא בשטח בזיכרון הנקרא מאגר תצוגה לוגי (ז410טפ 71060 [10₪168). כאשר ת56580 6תט0זק80%ם עובר להיות 06ת10:6₪100, מאגר התצוגה הלוגי ששייך לו עובר למסך. תמונת המסך הקודמת נשמרת במאגר התצוגה הלוגי של ה-ת565510 הקודם. באותו אופן, כאשר המשתמש מקיש במקלדת או מזיז את העכבר, הנתונים עוברים ל-ת565510 הנמצא ב-06מ10768700 בלבד. התכניות הפועלות ב-5ת565510 6תטסזקאסא8ם מניחות שהמקלדת ו/או העכבר אינם בשימוש. סביבת ה-2005 מקבלת זמן מעבד רק כאשר היא הופכת ל-ת5055910 6תט0זק0ע10. כאשר סביבת ה-2005 עוברת להיות ת565510 6תטסזקַאסס, היא אינה מקבלת זמן מעבד והיא מוקפאת עד אשר היא מוחזרת ל-0תש6010זס1. זאת מאחר |לישומים בסביבת הביצוע של 2005 אינם "מתנהגים כראוי". לדוגמה, *ישום 2005 הנמצא ב-ת565510 6מ9808:00 *וכל לכתוב *שירות למסך עצמו, כלומר לכתוב על המסך השייך ל-ת565910 6תטש0זש6זס1, ולא כיישומי 05/2 אשר כותבים למאגר תצוגה זמני. 71 8 רבים - נקודת המבט של המשתמש איך מתורגמת הקונספציה של ה-ם565910 לפעולות שבהן המשתמש *כול לשלוט? בורר התכניות (50160%07 מנ8זשסזק) ומנהל ה-86991005 מבצעים משימה זו. בורר התכניות מספק תפריט על מסך מלא המאפשר למשתמש לעשות את הדברים הבאים: = לבחור תכנית להרצה מתוך רשימה של תכניות. * להתחיל את מעבד הפקודות (0665501זכ 6תה8תנמסס). * . להעביר את המסך לתכנית שכבר הופעלה. הבחירה של המשתמש הופכת להיות ת565810 סק ס+. המשתמש יכול להוסיף תכניות חדשות לרשימת התכנלות הניתנות להרצה, או לבטל ממנה תכנית כלשהי. אם סביבת ה-2025 מסופקת כחלק מהתצורה של המערכת, המשתמש *כול לבחור את הסביבה הזאת מתוך הרשימה של התכניות שנמצאות כבר בהרצה. אם המשתמש בוחר בסביבת ה-2025, המסך מתחלף ומופיע המנחה של ה-05 ומעבד הפקודות של ה-2025 (6.60מהמנות 00) עובר להיות פעיל. המשתמש יכול לבחור את מנחה (+קומסזק) ה-25/2) מתוך רשימת התכניות הניתנות להרצה. לאחר שנבחר מנחה ה-05/2, הוא מוצג על המסך ומעבד הפקודות (6א646.6) של ה-05/2 עובר להיות פעיל לגבי ה-ת508510 :0+ הנוכחי. מרגע שמנחה 08/2 מופעל, ניתן להריצ תכניות 05/2, בדיוק כמו שניתן להריץ יישום 205 ממנחה ה-205. המשתמש *כול ליצור קובץ מיוחד הנקרא קובץ אצווה (1116 ת2860) המכיל סידרה של פקודות שמוכנסות באופן נורמלי באמצעות מנחה הפקודות. הדבר מאפשר לקבוע מראש סידרה מורכבת של פקודות שתשמש מפעיל פחות מתוחכם של תחנת העבודה. מנהל ה-ת565510 מספק צירוף של מקשים שהמשתמש :וכל בעזרתם לעבור ל-ת505810 הבא (תכנית הנמצאת במצב ריצה). צירוף מקשים אחר מאפשר למשתמש להעלות מיד את התפריט של בורר התכניות. בעזרת אפשרות זו, המשתמש *כול לשנות בקלות את התכנית שאיתה הוא רוצה לעבוד. למשתמש גם קל | מאוד להריץ תכניות חדשות, | או לבחור איזה ת56880 *הפוך ל-ת565510 0ם107000. הפוח של מנהל ה-5ת565810 היה מוגבל אילו היה אפשר להפעיל אותו רק בצורה הידברותית. החלק הבא מתאר את מישקי התכנות של מנהל ה-ת569810. המישק מאפשר לתכנית הרצה ב-ת869810 אחד להתחיל ולשלוט ב-ם568910 אחר. אפשר להשתמש במאפיין חזק זה של 05/2 בצורה אוטומטית כדי להפע:ל 8 חדשים ולקבוע באמצעותו איזה מהם *ופיע למשתמש כ-6ת6000ז10 תסן55. מישקי התכנות ל-א555510 סע *וצרת ומתחילה תכנית חדשה ב-ת565510 נפרד. התכנית החדשה מתקשרת עם המשתמש ללא תלות בתכנית שהתחילה אותה. המבקש מגדיר את הכותרת של התכנית, הכוללת את השם המלא של התכנית ואת הפרמטרים שיש צורך להעביר לתכנית החדשה. הכותרת של התכנית מופיעה בתפריט של התכניות הנמצאות כבר בביצוע, שהוא חלק מבורר התכניות. שם התכנית מכיל את אות 72 הכונן המתאים ואת המסלול (ע:01:60%0 ת8%ק) שדרכו ניתן להגיע לתכנית, ואת השם שלי הקוב% המכיל את התכנית. הפרמטרים הינם חלק מהקלט המועבר לתכנית כאשר מתחילים אותה בסביבת הביצוע של 05/2. הם מגדירים "לתכנית איך לפעול כאשר היא נקראת. : בנוסף לכך, אפשר להשתמש במישק זה כדי להעלות את מעבד הפקודות של 05/2 כתכנית (6א6.6ַ01) שיש צורך להתחיל אותה ב-ת565510 אחר. משתני הקלט הםי היישום שממנו יש צורך להפעיל את מעבד הפקודות של 05/2. מעבד הפקודות מכוון לסיים את ה-מ565910 כאשר היישום סיים את עבודתו, אוּ לאפשר ל-ת565510 לרו+ בהנחייה של מעבד הפקודות כאשר היישום יגמור את עבודתו. אם בוחרים את היישום מתוך רשימת התכניות הניתנות להרצה, התכנית תתחיל לרוצ ללא מעבד הפקודות. ְּ . אם התכנית המבקשת שלרות ת055+87%565810 נמצאת ב-ת565510 6תט0זק0זס1, היא יכולה לבקש שהתכנית שהיא עומדת להרי+ תעבור להיות 6ת0700700ס1 ת505510. אם לא כן, התכנית שהותחלה חייבת להיות 565510 6תטסזקאס8ס חדש. התכנית החדשה ניתנת להרצה כיישות בלתי תלויה לחלוטין מהתכנית שהתחילה אותה. אולם התכנית המבקשת *כולה לבקש שיתקיימו יחסים של אב/בן בין ה-ת565510 של המבקש לבין ה-ת5658!0 של התכנית החדשה. ה-ת808810 של המבקש הופך להיות 56550 האב, והתכנית החדשה הופכת להיות ת0ס50981 הבן. איןו לבלבל את יחסי אב/בן אלה עם *חסי אב/בן הקיימים בין תהליכים שנדון בהם במישק התכנות 1מ6078א2088. על-ידי הפיכת ה-ם565810 החדש לילד שלו, יכול ת565510 האב לשלוט ב-ת569810 בעזרת מישקי תכנות אחרים של מנהל ה-ת565510. ת505510 האב :כול לשלוט רק בצאצאים ישירים שלו. הוא אינו יכול לשלוט בצאצאים של הבן (כלומר כל ת565900 שהותחל על-ידי הבן). אם 565510 האב מתבטל, הבנים שלוּ מתבטלים גם הם. אם התכנית המבקשת *וצרת *חסי אב/בן, מספר הזיהוי של ת565510 הבן חוזר לאב. מספר זיהוי זה משמש בקריאות למישקי תכנות אחרים של מנהל ה-ת565510. בנוסף לכך, התכנית המבקשת :כולה לקבוע שטח בזיכרון כדי לקבוע מתי מסתיים ב0ס)5058 הבן ומה היה הקוד שהוחזר ממנו. מנגנון התורים ב-05/2 מבצע זאת. אנו נדון בפונקציית התורים ב-025/2) מאוחר *ותר בפרק זה. 05561606+5659100 ת690 האב הופך את אחד ללדדו ל-0ת016100+ ת0ן5055. זה יכול לקרות רק אם ת865510 האב או אחד מהצאצאים שלו נמצאים כרגע ב-ת505510 0תט1096870. האב משתמש במספר הזיהוי של ה-ם565810 כדי לזהות את הבן שהוא רוצה להפוך ל-ת5058!0 0תט1076870. בעזרת מישק זה, ה-ת505510 שהמשתמש עובד איתו כרגע בצורה הידברותית *וכל להיות מבוקר בצורה אוטומטית. התכנית הקוראת *כולה גם לבקש שה-ם565510 שלה יהפוך ל-6ת100ק6זס+ מ0ן5655. פעולה זו *כולה להתבצע רק אם אחד מהצאצאים שלה נמצא כרגע ב-ת565810 6מש0זק6זס1. 055090 50550 האב יכול לקבוע מספר מאפיינים ל-ת565510 הבן. האב משתמש במספר הזיהוי של הבן כדי לזהות את ם868510 הבן. 565500 האב *כול לקבוע אם ת565510 הבן היה ניתן לבחירה, או שלא יהיה 33 ניתן לבחירה מתוך התפריט של בורר התכניות. ניתן עדיין לקבוע ש-תס[5058 הבן יהיה 565510 6תש0זש10?0 בעזרת ם20550160%505810. ם0ס56991 האב יכול לקשור אליו את אחד מבניו. זאת אומרת שאם המשתמש בוחר את ת56595910 האב, אז ם56880 הבן יהפוך בצורה אוטומטית ל-0ם100ק0ץס1 ם865910. אפשר לקשור רק בן אחד בו-זמנית ל-ת565510 האב. הקשירה משפיעה על בחירה הנעשית על-ידי המשתמש, אך אינה משפיעה על בחירה הנעשית דרך ם120556166+565910. ם565510 האב *כול גם לשחרר את םס56551 הבן. 0 +05 ת569810 האב *כּול להפסיק את פעולתו של בן מסוים על- ידי שימוש במספר המזהה של אותו ם505510, או הוא *כול להפסיק את פעולתם של כל צאצאיו. אפילו אם הבקשה לפונקציה זו הושלמה, אין המבקש *כול להניח שהבן הפסיק את עבודתו, עד אשר הוא קיבל הודעה על כך ממנגנון התורים שהופעל כאשר 568510 הותחל בעזרת ת055+81%568510ש. תהליכים |-05תחחד אחד מהתפקידים של 025/2) הוא לנהל את השימוש במשאבי* המערכת. אנו יודעים כרגע שהגישה למקלדת ולמסך מנוהלת כ-ם805510. המסך הפיסי והמקלדת כפופים למרותו של ה-ם805510 6תט0זק0זס1. ישנם סוגים נוספים של משאבים במערכת. כניסה לסגמנט מסוים בזיכרון או לקובצ (על-:ידי שימוש ב-616ת28 1116) הן דוגמאות למשאבי מערכת. לכל תהליך יש טבלת מתארים מקומית (110'7) משלו המאפשרת לו להכנס לזיכרון שבבעלותו. לכל תהליך יש גם מערכת של קבצים, צינורות, תורים ואתתים הקשורה אליו. היישות שבבעלותה נמצאים משאבי המערכת ב-025/2) נקראת תהליך (0700655). יישום מתחיל כתהליך בתוך ם0ס58591. לדוגמה, מעבד הפקודות מאפשר למשתמש להתחיל *ישום משורת הפקודה של ה-ת565510. הסיבה מדוע *ישום אינה מלה נרדפת לתהליך היא בכך, שהתהליך המקורי היוצר את היישום *יכול להתחיל תהליכים נוספים, שגם הם חלק מהיישום. כל התהליכים של היישום *כולים להתחלק (להיות שותפים) במקלדת ובְמסך מאחר והם נמצאים באותו ת505510. אולם הם אינם יכולים להתחלק באותו זיכרון (פרט למקרה שבו מאפשרים זאת על-ידי הגדרת סגמנטים משותפים) ואין הם *כולים להתחלק בגישה לאותם קבצים. הפרדת הבעלות על משאבי המערכת מראה שקיימת מחיצה מוגדרת היטב בין תהליכים. מחיצה זו *כולה להיות מאוד מועילה ליישומים גדולים ומורכבים. המחיצה, שהיא למעשה אנלוגיה על הקונספציה של הבעלות על משאבי המערכת, מאפשרת לתכנן את היישום, כך שיהיה ניתן לשבור אותו לקטעים קטנים שיכולים לפעול זה עם זה רק בדרכים מוגדרות היטב. תהליכים שונים מספקים מנגנון השומר על השלמות של חלקים שונים של היישום. תהליך אחד אינו מקבל באופן אוטומטי את האפשרות לשנות את התוכן של קבצים או נתונים של תהליך אחר. ניתן להשתמש בזה להגנה על מידע רגיש מפני חלקים שונים של אותו *ישום. מערכת ההפעלה עורכת מעקב אחר משאבי המערכת שבבעלות התהליך ועוזרת לאושש את משאבי המערכת אם התהליך לא הסתיים בצורה מוצלחת. 74 התהליך ב-05/2 מאפשר לשבור יישומים גדולים ומורכבים לקטעים קטנים שיכולים להשפיע זה על זה בדרכים מוגדרות היטב. על-ידי תכנון היישום כתהליכים נפרדים, אנו *כולים להקטין את המורכבות הכוללת שלו. קבוצות שונות או אנשים שונים, *כולים להתקין את התהליכים השונים עם תכנון ברור מאוד כיצד הם יפעלו זה עם זה. ארכיטקטורת התהליכים ב-005/2) מאפשרת את התכנון הנדרש. המחיצה בין התהליכים השונים דורשת מנגנונים מוגדרים היטב שיאפשרו לתהליכים לפעול זה עם זה. הפעולה ההדדית הזו נקראת תקשורת בין תהליכים (108%1005תמתנת00 006585ז6672ת1) והיא מכוסה בפרק זה. אנו *ודעים כבר איך תהליכים שונים *כולים להכנס לאותו סגמנט בזיכרון. תהליכים הפועלים זה על זה דרך מנגנונים אלה אינם בהכרח חייבים להיות חלק מאותו *ישום. בבעלות. תהליך נמצאות גם *חידות ביצוע. יחידת ביצוע נקראת 0:686+. אפשר לדמיין זאת כסידרה של פקודות המבוצעות בזו אחר זו. אנו *כולים להשוות יישום בסביבת 2025 ל-686תת+, מאחר וכל התכנית מתבצעת בצורה מסונכרנת מהתחלה עד הסוף. בסביבת 205 לא *כול לקרות ששני מערכים של פקודות יבוצעו בו-זמנית או בצורה אסינכרונית. ב-05/2), כל המערכים של הפקודות המתבצעים בצורה בלתי-תלויה זה מזה (בצורה אסינכרונית) נקראים 6865ע%. תהליך מורכב מ-0:0806? אחד לפחות אבל הוא *כול להיות מבוסס גם על וי רבים. כל ה-6865ז2+ של התהליך מתחלקים בצורה שווה במשאבי המערכת הנמצאים בבעלות התהליך. לדוגמה, לשני %1260805 של אותו תהליך יש אפשרות גישה לאותם סגמנטים בזיכרון, ואין שום דרך לאחד לבטל את הזכות של חברו. כאשר תהליך מורכב מ-1268065+ רבים, הם נחשבים ל"מחוברים בצורה הדוקה" כי הם חייבים לשתף פעולה זה עם זה. אם הם לא ישתפו פעולה, הם עלולים לשנות זה את זה, או לשנות את משאב המערכת ששניהם פונים אלו מבלי להיות מודעים למעשה זה. כאשר שני 68065זת1 מתבצעים בצורה אסינכרונית זה לזה, זאת אומרת שכל אחד מהם אינו יודע מה השני עושה. לדוגמה, 1686 אחד של התהליך יכול לקרוא נתונים מהמקלדת ולכתוב אותם על המסך, ו-1:686+ אחר של אותו תהליך *כול לקרוא מקובצ+ ולכתוב על המסך. היכולת להריץ מספר 68065זַת+ במקביל היא בעלת ערך רב, כי היא מאפשרת לתהליך להמשיך לעשות עבודה מועילה, אפילו אם צריך לחכות שחלק אחר במערכת ישלים ביצוע בקשה שלו. אפילו אם פעולות הק/פ בקובצ נמשכות זמן רב, המשתמש יוכל עדיין לראות את היישום מגיב לקלט מהמקלדת. הסיבוך היחיד בדוגמה זו הוא בכך ששני ה-176805+ מעדכנים את המסך. אם כל אחד מהם היה פועל על חלק אחר מהמסך לא היתה קיימת בעיה. אם שניהם מעדכנים את אותו חלק של המסך, שניהם חייבים בנקודות מסוימות ומוגדרות היטב במהלך הביצוע לסנכרן את הפעולות שלהם זה עם זה. למרות שתהליך הוא יישות ב-05/2 שבבעלותה נמצאים משאבי מערכת, המערכת צריכה עדיין לערוך מעקב אחר דברים מסוימים ביחס ל-6806ז): * מספר הזיהו* של ה-686זת+ (כ1 511686). בזמן שנוצר כל 680ז0+ של תהליך, הוא מקבל מספר זיהוי :יחודי. מספר זיהוי זה משמש 5 אחרים בתהליך כדי לזהות 116860+ מסוים בתהליך. * מהסנית (5080%8). כל 680עת+ בתהליך דורש שטח נפרד לאוגרים שלו. * אוגרים במעבד (אם אינם מבצעים דבר כרגע). לכל 101686 בתהליך יש מערך נפרד של אוגרים במעבד שחייבים לעקוב אחריו. 75 * מצב ניתוב. מתזמן העבודות (:60₪16ת56) ב-025/2) צריך לדעת האם ה-680ת+ ניתן לביצוע, או אם הוא מחכה כרגע למשהו שיקרה במערכת לפני שיהיה ניתן לבצע אותו. * עדיפות (ידון בהמשך). לכל 686זת1 יש עדיפות ביצוע *יחודית הקשורה אלנו. , 2 דורשת את הפרטים האלה כדי שתוכל לנהל *חידות ביצוע שונות (670805). פחות יקר לתהליך, במונחים של זמן, להתחיל 680ת0+ חדש מאשר להתחיל תהליך חדש. 680ץת+ הוא רק *חידת ביצוע חדשה בתוך אותה סביבה של התהליך. באופן בסיסי ה-686זת+ החדש *וצר סביבת עבודה קטנה. לעומת זאת, תהליך חדש יוצר סביבת תהליך חדשה, הכוללת טבלת מתארים מקומית חדשה (7'כ1) ומערכת חדשה של מקשרים לקבצים. *יישום המתבסס על תהליך אחד עם 6865זת+ רבים, הוא מבנה של יחידות ביצוע רבות שכולן מתבצעות בצורה אסינכרונית. ‏ כל *חידות הביצוע הנפרדות מתחלקות באופן שווה באותם משאבי מערכת, כמו גישה לסגמנטים ומקשרים לקבצים. המבנה של *ישום המתבסס על תהליכים רבים זהה לדוגמה הקודמת, פרט לכך שליחידות הביצוע השונות יש מערכים נפרדים של משאבי מערכת. לכן הן אינן *כולות להכנס זו למשאבי זו (לדוגמה, סגמנטים או קבצים) אם לא ניתן לכך אישור במפורש. בפרק 4 תמצא שתי דוגמאות תכנות המתארות תהליכים ו-%06865. הדוגמה הראשונה מראה תבנית פשוטה של 1686+ שמשתמש באתת (שזסתִקהַ561) של ה-4%1א ובמספר מישקי תכנות כד:י להודיע על פסק ולסנכרן ‏ את הביצוע של ה-76805ת+. הדוגמה השניה מפתחת את תבנית ה-27680+ הזו על-ידי הצגה של תהליך נפרד. בדוגמה זו, מנגנון הצינור (6ק1ק) לתקשורת בין תהליכים, באמצעות העברת נתונים בין תהליכים. אנו נתאר את מישקי התכנות השונים המת*יחסים לתהליכים ול-6865זת+ מאוחר *ותר בפרק זה. מישקי תכנות לתהליכים תכנית ב-005/2) מותחלת כתהליך חדש. כאשר תכנית חדשה מתחילה, מועבר אליה סגמנט סביבה (+ם560 +תתסענטם6), אשר מורה לה מה היא צריכה לעשות. סגמנט הסביבה דומה לקידומת סגמנט התכנית (- א611ץק 6ת5626 מתאזקסזק 5) שמועברת לתכנית 205 בזמןו התחלתה. התהליך משתמש ב-60₪₪א2050 כדי ליצור ולהתחיל תהליך חדש. לאחר שנוצר תהליך חדש, מועברים אליו פרמטרים המציינים מצבי פעולה (6ת6מתטשקזה פשם!ןז)5) ופרמטרים המצינים את הסביבה (5שת1ז50 +תסנתתסזוטת6) כחלק מסגמנט הסביבה. התהליך החדש קובע מה *היה המבנה של סגמנט הסביבה והתהליך היוצר קובע את התוכן של סגמנט הסביבה. מעבד הפקודות ב-05/2 תמיד יעביר את שם התכנית ואת כל מה שהוכנס על-ידי המשתמש בשורת הפקודה כמחרוזות של ארגומנטים הקובעים מצב פעולה. המשתמש *כול לקבוע באמצעות משתני הסביבה בפקודת 581 את הארגומנטים של הסביבה. תכנית *ישום *כולה לקבוע תו מוסכם, שאם המשתמש ישתמש בו, התכנית תתנהג בצורה מסוימת. 2 תומכת במשתני סביבה מסוימים שניתנים לשינוי על-ידי המשתמש. לדוגמה, מחרוזת תווי הסביבה 28111 קובעת את מסלולי החיפוש של קבצים הניתנים לביצוע. 6 כאשר תהליך אחד יוצר תהליך אחר, התהליך היוצר נקרא תהליך האב והתהליך שנוצר נקרא תהליך הבן. אין לערב יחסי אב/בן בין תהליכים עם *חסי אב/בן בין 5ת569510. . תהליך הבן יורש (109ז6תת1) מאפיינים מסוימים של תהליך האב. לדוגמה: * מקשרים (פָסַָ6ְתאַת) ל: - קבצים. - צינורות. - התקנים סטנדרטיים (ק/5). - התקנ* תווים. * סגמנט הסביבה. * עדיפות ב'צוע. * ת5655[0. תהליך הבן יורש את מקשרי הק/5 הסטנדרטיים לקבצים. אם נוסיף לכך שהאב יכול לשלוט להיכן *צביעו מקשרי הקבצים, נקבל שתהליך האב *כול לשלוט להיכן תהליך הבן ישלח את הקלט והפלט שלו (בהנחה שהוא משתמש במקשר* הקבצים הנכונים). המערכת משתמשת במשמעות הזו של "ירושה" כדי להסדיר את הניתוב (ם601"60%10). לדוגמה, המשתמש *כול להתחיל יישום באמצעות מעבד הפקודות שמקבל את הקלט שלו מקוב> מסוים, ואז לגרום לכך שפלט של היישום יעבור לקובצ מסוים אחר או ליישום אחר. תהליך יכול לשלוט על תהליך אחר על-ידי יצירה שלו ושל סגמנט הסביבה שלו, להפסיק את פעולתו, לשנות את עדיפות הביצוע שלו, לשלוט במקשרים שיעברו אליו ולעבוד איתו באמצעות המנגנונים לתקשורת בין תהליכים ב-05/2. תהליך *כול לקבוע שקבוצת פקודות מסוימת תתבצע, כאשר הוא *סיים את פעולתו. פקודות אלו נקראות שיגרת היציאה (6ם100%1 101156א6). התהליך משתמש באפשרות זו כדי לקבוע איך יתנקו משאבי המערכת שלו לפני שהמערכת מסיימת את פעולתו. ספריית הקישור הדינמי משתמשת באפשרות זו כדי לנקות כל משאב שהיא מעמידה לרשות התהליך. לתהליך יכולות להיות מספר שגרות *ציאה, המתבצעות כאשר מפסיקים את פעולתו של היישום. ישנן הגבלות על מה ששיגרת יציאה :כולה לעשות. לדוגמה, שיגרת יציאה אינה *כולה להתחיל תכניות אחרות, והיא חייבת להסתיים כמה שיותר מהר. אס תכנית נוצרת ומותחלת כתכנית בן. תהליך האב מזהה את הקוב המכיל את התכנית כשם קובצ מלא (מכיל את מספר הכונן ומסלול חיפוש במדריך), או רק כשם קובף. אם שם הקוב אינו מוגדר בצורה מלאה, *בוצע חיפוש לפי המשתנה הנוכחי המוגדר עבור 2₪7111, עד אשר יימצא שם הקוב המתאים המכיל את התכנית. שם התכנית מועבר גם הוא לתהליך הבן. סביבה חדשה נוצרת עבור תהליך הבן. כפי שהסברנו קודם, תהליך הבן *ורש מאפיינים מסוימים מתהליך האב שלו, אשר יכול לשלוט בחלק מהמאפיינים העוברים בירושה. אם תהליך האב רוצה לשלוט בסגמנט הסביבה שהבן *ירש, הוא מעביר לתהליך הבן מחוון (ת66ת01ק) לפרמטרים הקובעים מצב פעולה ומחוון לפרמטרים שיקבעו את הסביבה (צירוף של שניהם *וצר את סגמנט הסביבה). 77 תהליך האב שולט בצורה שבה *תבצע תהליך הבן ביחס לתהליך האב. בביצוע מסונכרן, ה-8:6806+ של תהליך האב לא ימשיך להתבצע מהנקודה שבה בוצעה הקריאה ל-60₪₪א058כ, עד אשר תהליך הבן השלים את עבודתו. קוד הסיום וקוד התוצאה של תהליך הבן מועברים אל תהליך האב. תהליך הבן מפרט את קוד התוצאה כאשר הוא מסיים את עבודתו. קוד הסיום מודיע לתהליך האב אם תהליך הבן הסת*ים בצורה נורמלית, לא-נורמלית, או שעבודתו הופסקה על- ידי תהליך אחר לפני הסיום הנורמלי שלה. בביצוע לא מסונכרן, ה-680עת+ של תהליך האב ממשיך להתבצע בו-זמנית *חד עם תהליך הבן. כאשר הקריאה ל-6028₪א058 מסתיימת, מוחזר מספר הזיהול של הבן לתהליך האב וה-680זת+ של תהליך האב ממשיך להתבצע בזמן שתהליך הבן מתבצע. תהליך האב משתמש במספר הזיהוי של תהליך הבן עבור מישפי התכנות המאפשרים שליטה עליו. אם תהליך האב רוצה את קוד התוצאה של הבן, הוא משתמש במישק התכנות 81%6ש050כ, כדי לבקש שקוד זה *וחזר אליו. *חידת הביצוע, ה-07686+ של תהליך האב ממתינה לסיום של תהליך הבן. כאשר עובדים בצורה אסינכרונית, יש צורך להתחיל את תהליך הבן בעזרת 60228א058 עם אופציה של החזרת קוד מצב ל-20500816. ה-0"6806+ של תהליך האב *כול לבחור בין שני מצבי פעולה. במצב הראשון עליו לחכות עד אשר תהליך הבן יסתיים. בשני - הוא ימשיך להתבצע אם לא התקבלה הודעת סיום בזמן שבוצעה הקריאה ל-12050₪81%. תהליך האב *כול לבחור לחכות לתהליך בן מסוים, או לכל אחד מהבנים. בנוסף לכך, הוא :כול גם לחכות לסיום של הצאצאים של תהליך הבן. קוד התוצאה וקוד סיום הפעולה של תהליך שהושלם מועברים לתהליך האב. 8 תהליך יכול להפסיק (8%6ת1ת6+) את פעולתו של תהליך הבו, או של תהליך הבן וכל הצאצאים שלו. 00058עק208111 מפיק אות הנקרא 510381 ומעביר אותו לתהליכים, אשר אמורים להפסיק את פעולתם. תהליך *כול לקבוע שיגרה מיוחדת, אשר תטפל באות ה-1א51)0273 ותשתלט על הביצוע, כאשר תהליך אחר מנסה להפסיק את פעולתו בעזרת 100655ק205%111. אנו נדון בטיפול באותות מאוחר *ותר בפרק זה. +אפפס מאפשר ל-6806?(+ להפסיק את פעולתו. ה-6806עת+ *כול לבקש שכל ה-176805+ בתהליך. שלו *פסיקו את פעולתם, במטרה להפסיק את פעולת התהליך כולו. כאשר תהליך רוצה להפסיק להתבצע, הוא צריך לקרוא ל-10א2058 ולבקש שהביצוע של כל ה-2768605+ *ופסק. הדבר יפסיק את פעולתו של כל 680זת+ שמערכת ההפעלה התחילה מטעמו של התהליך, אך הוא אינו *ודע עליו. כאשר תהליך | מפסיק | את פעולתו, | *תבצעו שגרות הסיום שנקבעו | בעזרת לס 4 מאפשר לתהליך לקבוע קבוצה של פקודות שתכנס לפעולה כאשר התהליך מפסיק את פעולתו. שגרות 68101156 אלו *כולות לשחרר משאבים שיתכן ויידרשו על-ידי תהליכים אחרים. .לדוגמה, תהליך *כול להחזיק במשאב מערכת כאשר הוא מופסק בצורה לא שגרתית. שיגרת 101155א6 של התהליך נכנסת לפעולה ויכולה לשחרר את משאב המערכת, כדי שתהליכים אחרים *וכלו להשתמש בו. אם לא כן, משאב זה לא *וכל להיות בשימוש. השימוש במנגנון זה גורם לכך, שהתהליך אינו מאלצ תהליכים אחרים לחכות לנצח למשאב כדי שיתפנה. בנוסף לכך, שגרות 6%1015% משתמשות ב-1)1185א12052 כדי להכניס לפעולה 68 שגרות 1)1156א6 אחרות השייכות לאותו תהליך. כל שיגרת 161556א6 חייבת לסיים את פעולתה מהר ככל האפשר, כדי שמערכת ההפעלה תוכל להשלים את הפעולות הדרושות להפסקת התהליך. מישקי תכנות ל-45מתצוד ו יכול ליצור ולהתחיל 68065-ת+ אחרים באותו תהליך. 680זת1 בתהליך יכול להשעות, או לחדש את פעולתו של 680ז0+ מסוים בתוך אותו תהליך. 68 יבול גם למנוע מ-6805ת2+ אחרים מלהתבצע בזמן שחלק קריטי שלו מתבצע. ב ה-3:680+ יכול ליצור ולהתחיל 6806:+ חדש השייך לאותו תהליך. ה-680זת1 החדש מתבצע בצורה בלתי-מסונכרנת לביצוע של ה-6806זת1 הנוכחי. מספר הזיהוי (12 686עת1') של ה-6806עת+ החדש מוחזר למבקש. ה-3:680+ המבקש מעביר מחוון באמצעות פקודת הסתעפות אל קבוצת פקודות שתקבל את השליטה ותתחיל את הביצוע של ה-686ת2? החדש. המבקש מעביר גם מחוון למחסנית (5%80%8) של ה-2680+ החדש. מערכת ההפעלה מכניסה את הערכים לאוגרי המעבד, יוצרת ומתחילה את ה-686תת+ החדש באותה עדיפות ביצוע של התכנית המבקשת. ו כ .ה-11680+ המבקש משעה את פעולתו של 6806זת+ אחר בתוך אותו תהליך על-ידי ציון מספר הזיהוי המסוים של אותו 680זת1. ה-680זַת1 המושעה לא יבצע פקודות נוספות של היישום, אבל **תכן והוא לא יפסיק את פעולתו מיד לאחר קבלת פקודת ההשעייה, אם הוא מתבצע באותו רגע ותופס משאבי מערכת. סע ה-686זת+ המבקש מתחיל מחדש 686ת1+ (השייך לאותו תהליך) שהושעה קודם לכן. הוא מציין את מספר הזיהוי המתאים של אותו 6 6 6ג6תת+ *כול למנוע ביצוע של 6865זת+ אחרים הנמצאים בתהליך שלו. המערכת סופרת את מספר הפעמים שבוצעה קריאה לפונקציה זו (ערך בן 16 סיביות). דבר זה יכול להבטיח ש-76806(+ אחר בתהליך לא :כנס למשאב שה-6806"(+ מבקש להשתמש בו בצורה סידרתית. קריאה זו אינה מונעת משיגרת הטיפול באותות של התהליך מלהשתלט על הביצוע כשדרוש. 6 הקסרת ההשפעה של הפונקציה הקודמת 610116566+ת12055. אם בוצעו קריאות רבות ל-%6011+560ת205₪, יש צורך לבצע את אותו מספר קריאות ל-100115560א2055, כדי לאפשר ל-6865ז1+ האחרים בתהליך להתבצע. מישקי תכנות לקביעת עדיפות ביצוע עדיפות ביצוע של תהליך או 680זת+ מצביעה על חשיבותו, ומכאן - על הסיכוי שלו להתבצע. 6806זת+ המפקח על-כך שערוצ תקשורת מסוים יפעל כשורה, חשוב הרבה יותר מאשר 6806תת+ המעדכן את הזמן על המסך, כי למשתמש לא אכפת אם הזמן על המסך מתעדכן בדיוק מלא. עם זאת, למשתמש יפריע מאוד -- ערו התקשורת אינו פועל מכיון שה-686זת+ האחראי עליו אינו יכול וגיב. >9 המישק לתכנות *ישומים מאפשר ליישום לקבוע עדיפות ביצוע לגורמים אחרים במערכת. חשוב מאוד שיישום לא <צל לרעה אפשרות זו ויקח לעצמו את עדיפות הביצוע הגבוהה ביותר במערכת. אם כל *ישום יעשה זאת, המערכת לא תוכל לפעול כראול. אם למספר 6865זת+ יש את אותה עדיפות ביצוע, 05/2 תקצה פלח זמן (18651106+) שווה לכל אחד מהם. זאת אומרת, שמערכת ההפעלה מאפשרת לכל 8 לתתבצע בפרק זמן מוגדר, בשיטה הנקראת תזמון בשיטת הריצה המחזורית (קת11ו60ת50 ת001? 6תטסץ). שיטה זו מאפשרת ל-68065תת+ רבים שיש להם אותה עדיפות ביצוע להתחלק במעבד בצורה הוגנת. למשתמש יש שליטה על פרק הזמן בעזרת פרמטר של ה-5צ16.5ע00% הנקרא 1105פמ/אז. אם ל-686?(+ אין אפשרות להתבצע תוך פרק זמן מסוים, הוא מקבל "העלאה" בעדיפות הביצוע. למשתמש יש שליטה על פרק הזמן שעובר עד שמתבצעת ההעלאה בעדיפות, בעזרת פרמטר של ה-5צ6.5]ע00% הנקרא ‏ 017 העדיפות של ה-6806ז2+ מורכבת מאחת משלוש רמות של עדיפות ביצוע ומתת-רמה הנלווית אליה. שלושת הרמות הן: * קריטית מבחינת זמן ביצוע | - 601181081 6תנך7 * רגילה - ו * אדישה - 86 לכל רמת עדיפות יש 44 תת-רמות (81-ט. כככק שהמספר *ותר גדול, כך עדיפות הביצוע גבוהה *ותר. לרמה הקריטית מבחינת הזמן יש עדיפות ביצוע גבוהה יותר מאשר לרמה הרגילה, ולרמה הרגילה יש עדיפות על הרמה האדישה. 2 תבצע 68685זת1 עם עדיפות ביצוע גבוהה לפני 68065זת+ עם עדיפות ביצוע נמוכה. כפי שהשם מרמז, הרמה הקריטית מכוונת ל-170806+ עם פעילות שצריכה להתבצע תוך פרק זמן קצר מאוד מהתרחשות של אירוע מסוים. אם הפעילות הקריטית מבחינת זמן אינה מתבצעת, היישום או סביבת העבודה יפסיקו לפעול. מערכת ההפעלה אינה משנה את תת-הרמה של ה-68065ת2+ הנמצאים ברמה הקריטית מבחינת זמן הביצוע (תזמון קבוע). 05/2 מתזמנת את ה-68065ץת+ הנמצאים ברמה הקריטית באותה תת-רמה בשיטת הר*צה המחזורית. הרמה האדישה משמשת ל-%1"6865 המתבצעים כאשר אין עבודה אחרת ברמה גבוהה יותר, והיא מאפשרת לנצל את כוח העיבוד במערכת בצורה אופטימלית. מערכת ההפעלה אינה משנה את תת-הרמה של ה-68065זת+ הנמצאים ברמה האדישה (תזמון קבוע). 05/2 מתזמנת את ה-%1"68065 הנמצאים ברמה האדישה באותה תת-רמה בשיטת הריצה המחזורית. ברמה הרגילה רצים רוב ה-1768065+ במערכת. מערכת ההפעלה משנה את תת-הרמה- - -- של | ה-6805זת+ הנמצאים ברמה זו. השעוי בתת-הרמה תלוי בפעילות שה-1-6806+ מבצע וביתר הפעילויות המתבצעות במערכת. דוגמאות של פעילויות שיכולות| להשפיע על תת-הרמה כוללות 686ע2+ המבצע פעולות | ק/פ ב-6ת10768700, או 680זת+ שלא קיבל הזדמנות להתבצע. ץז סע משנה את רמת עדיפות הביצוע ואת תת-הרמה הקשורה אליה עבור 020 היישויות הבאות: = תהליך וכל ה-6865עת+ שלו. התהליך מזוהה על-ידי מספר זיהו"ל. ניתן לבחור גם בתהליך הנוכחי. * 680זת+ מסוים בתוך התהליך הנוכחי, או ה-%1686 הנוכחי. * תהליך (וכל ה-6805ז2+ שלו) וכל הצאצאים שלו (וכל ה-68065עת1. שלהם). התהליך הנבחר חייב להיות התהליך הנוכתי, או צאצא של התהליך הנוכחי. המשתמש יכול לבחור בין שנוי של רמת העדיפות לבין שינוי של תת-הרמה, או בשינוי של שתיהן. השינוי המבוקש בתת-הרמה צריך להיות יחסי לערך הנוכחי של תת-הרמה. לדוגמה, המבקש רוצה להעלות את תת-הרמה הנוכחית ב-5 דרגות. ‏ אם הוא משנה את רמת העדיפות, עליו לציין רמת עדיפות מסוימת. לדוגמה, המבקש רוצה לשנות את רמת העדיפות הנוכחית לרמה הקריטית מבחינת הזמן. כאשר נוצר 686זת5, הוא יורש עדיפות ביצוע הזהה לזו של אביו. 090 מאפשר ל-686זת+ לקבל את רמת העדיפות ואת תת-הרמה של ה-0:680+ שהתתיל אותו, ‏ או של 686זת+ מסו*ם (על-5י מספר הזיהוי) בתהליך. תקטורת ב'ן תהליכים כאשר *ישום מבוסט על תהליך אחד ויחידות ביצוע רבות, קל מאוד לראות איך ה-6865זת+ השוניסם מתקשרים בינם לבין עצמם. כולם מתחלקים באותם משאבים (כמו זיכרון, למשל). במצב כזה חשוב להבטית ש-1768065+ שונים לא יפריעו זה לזה. אנו יודעים כבר איך מישק התכנות מאפשר ל-680658ז1+ לשלוט על הביצוע של 5 אחרים באותו תהליך. הם *כולים להשעות אותם, להתחיל אותם מחדש ולהפסיק את הביצוע של שאר ה-6805זַת%. כאשר יישום מורכב מתהליכים רבים, או כאשר תהליך מיישום אחד צריך להתקשר עם תהליך מיישום אחר, צריך להתחשב בכך שהתהליכים אינם מחלקים ביניהם את משאבי המערכת. מערכת ההפעלה חייבת לספק פונקציות מיוחדות המאפשרות לתהליכים להעביר, או להתחלק בנתונים זה עם זה. הפונקציות הן: * זיכרון משותף (עזסתסות 66ז8ת5). צינורות (65ק1ק). תורים (₪61165)). למדנו כיצד תהליך יוצר סגמנט שניתן להתחלק בו עם תהליך אחר. צינורות ותורים הם שני מנגנונים נוספים להעברת נתונים או להתחלק בהם. בנוסף לכך, תהליכים יכולים לשלוט בגישה או לפנות לסירוגין למשאבים משותפים, | או לפונקציות. הם גם *כולים להעביר את עובדת התרחשותם של אירועים מסוימים זה לזה. הדבר נעשה בעזרת המנגנונים הבאים לתקשורת בין 1 תהליכים פנימיים: * אותות (8815ת51₪). * אתתים (0:65תק568). אות מבוצע על-ידי אחת היישויות במערכת (תהליך או 686ז+). האתת הינו מקום בזיכרון, אשר נקבע על-ידי אחת היישויות האלו לצורך העברת הודעות על אירועים המתבצעים במערכת. ציגורות שני תהליכים ויותר מאותה משפחה *כולים להתקשר באמצעות צינור. תהליכים מאותה משפחה הם כל התהליכים שירשו מאפיינים מאותו "מייסד" של שושלת התהליכים. לדוגמה, שני תהליכים שהם בנים של אותו תהליך אב, שייכים לאותה משפחה. אם תהליך *וצר צינור, כל הבנים שהאב יצר *כולים לרשת את היכולת לכתוב לצינור, או לקרוא ממנו. תקשורת באמצעות צינור דומה לכתיבה לקובאצ וקריאה ממנו, וההבדל היחיד הוא בכך שצצינור נמצא בזיכרון ולא על הדיסק. כאשר הצינור נוצר, היוצר קובע את גודלו שיכול להגיע עד 64%8. התהליך סורא נתונים מהצינור לפי הסדר של "ראשון נכנס ראשון *וצא" (0ש1ק). אין דרך לשנות את סדר הנתונים בצינור ויותר מכך, ברגע שתהליך קרא נתונים מהצעור, הוא אנו *כול לקרוא אותם שוב. מערכת ההפעלה עורכת מעקב על נתונים ועל שטח פנול בצעור. אם 17686+ כותב לצינור והצינור מלא, מערכת ההפעלה מאלצת אותו לחכות עד אשר *ווצר מקום פנוי בצינור עבור הנתונים שלו. הנתונים שהתהליכים מעבירים ביניהם מועתקים למעשה פעמיים. בפעם הראשונה בין הכותב לצינור ובפעם השניה - בין הצינור לקורא. שיטה זו אינה יעילה אס מועברים נתונים רבים בין תהליכים. 86 תהתהליך וצר את הצנור וקובע ‏ את גודלו. ניתן לקרוא מהצינור ולכתוב אליו בעזרת שגרות ק/5 סטנדרטיות, 2058686 ו-05711196כ. שני מקשרים מוחזרים למבקש: אחד ל-20586806 ואחד ל-1196/ט5ס. לבנים של תהליך האב יש זכות לכתוב לצינור ולקרוא ממנו, אם הם ירשו את הזכות הזאת והם משתמשים במקשרים הנכונים. הגישה למקשרים מופסקת בעזרת שיגרת הק/פ לקבצים, 120501056. הצינור מתבטל כאשר כל התהליכים המשתמשים בצינור מוציאים 0501056. תורים תור הוא מנגנון נוסף שהתהליכים *כולים להשתמש בו כדי להעביר נתונים או להתחלק בהם. שיטת התור טובה וגמישה יותר מאשר שיטת הצינור. כאשר שני תהליכים מתקשרים באמצעות תור, המידע אינו עובר בין של התהליכים. במקום המידע מועבר האיבר של התור (%ת616(6 6ט6ט) הכולל מחוון לנתונים וערך המציין את אורכם. השימוש בתור *עיל *ותר מאשר 2 השימוש בצינור, כי חוסכים את העתקת הנתונים. במקום העתקה, מועבר המידע הדרוש כדי למצוא את הנתונים המנוהלים באמצעות מנגנון התורים. לכל התהליכים המשתמשים בתור חייבת להיות אפשרות מיעון לסגמנטים המכילים נתונים. כאשר תהליך קורא את האיבר של התור ומנסה להכנס לסגמנט המכיל את הנתונים, הוא לא יוכל לעשות זאת כל עוד לא קיבל רשות ואפשרות להכנס לאותו סגמנט. זאת אומרת, שיש צורך להשתמש בתור בשילוב עם זיכרון משותף. האיברים של התור *כולים להקרא מהתור ולהמחק לאחר מכן. התהליך *כול גם לקרוא את האיברים של התור לפי סדר "ראשון נכנס ראשון *וצא", לפי סדר של "אחרון נכנס ראשון יוצא" (0ע11), או לפי סדר עדיפות כלשהו. אם נקבע סדר עדיפות לאיברים, הכותב לתור מפרט את העדיפות היחסית של האיבר (60-15). מסיבה זו ברור שתורים גמישים בהרבה מאשר צינורות, שבהם מנגנון הקריאה ההרסני (כי אינו ניתן לקריאה חוזרת) לפי 0ע1ע ההנו הדרך היחידה לקרוא מתוך הצינור. התהליך היוצר (הּבעלים) את התור הענו היחיד שיכול לקרוא ממנו את האיברים. גם כל ה-1768065+ שלו :*כולים לקרוא מהתור. תהליכים אחרים יכולים לקבל הרשאה לכתוב לתוך התור, וגם כל ה-6865ת2+ בתוך התהליכים הכותבים *כולים לעשות זאת. לסיכום, לתור יש קורא אחד וכותבים רבים. התהליך שקורא מהתור מבצע את הפעולות הבאות: * יוצר את התור - 2080268%60(10016. * קורא איבר מהתור ‏ - 058686000016כ. * מציא אל התור - 600106 סכ . * יסוגר את התור - 2080109860(101165. התהליך שכותב לתור מבצע את הפעולות הבאות: * פותח את התור - 6 סכ = כותב איבר לתור - - 106006006עאפסכ. * סוגר את התור - 16ז0580105601100. 86 יוצר את התור. המבקש (התהליך שהינו הבעלים של התור) נותן לתור שם, הנראה בדיוק כמו שם-קוב%. השם חייב להתחיל ב-118)155. כאשר תהליך אחר רוצה לפתוח את הקוב לקריאה, הוא משתמש בשם זה. התהליך המבקש בוחר בסדר קריאת האיברים מתוך התור. האפשרויות .הן 190ע, 0, או לפי סדר עדיפות. התהליך המבקש מקבל מקשר (שַַתאַת) שישמש מישקי תכנות אחרים הקשורים בתור. התהליך המבקש הינו היחיד שיכול לקרוא את האיברים מתוך התור. 86 פפותח את התור לכתיבה. חייבים ליצור תור לפני שפותחים אותו לכתיבה. ברגע שנוצר תור הוא מקבל שם, אשר משמש תהליכים אחרים הרוצים לפתוח אותו. השם צריך להיות דומה לשם קובף, וצריך להתחיל ב-91181185. התהליך המשתמש במישק זה מקבל את מספר הזיהוי של הבעלים של התור ואת המקשר המאפשר כתיבה לתור. לאחר שתהליך פתח את התור, הוא רשאי לכתוב לתוכו. 3 06 מוסיף איבר לתור המזוהה על-ידי מקשר. איבר התור מכיל את הפרטים הבאים: * הכתובת של הנתונים. * האורך של הנתונים. * מלה נוספת המשמשת לתיאור המידע שהאיבר מצביע עליו. המשמעות של המלה חייבת להקבע מראש על-ידי התהליך הקורא והתהליכים הכותבים באותו תור. המשתמש במישק זה מפרט את העדיפות של האיבר החדש. איברים עם אותה עדיפות מועברים לפי סדר 0עזט. 86 מממאפשר לכל 1686+ של התהליך שהינו הבעלים של התור לקרוא ממנו איברים. מקשר התור (016ת8ת) מזהה את התור שיש צורך לקרוא ממנו. האיבר מוצא מהתור לאחר שהוא נקרא. ה-7686+ המשתמש במישק זה מקבל את הפרטים הבאים: * האיבר (גודל, כתובת הנתונים ומלת המידע הנוספת). . *= מספר הזיהוי של התהליך שכתב את האיבר לתור. * העדיפות של האיבר. הקורא של התור *כול לעקוף את סדר הקריאה הרגיל של האיברים על-ידי שימוש ב-205266%0₪06₪6. האיבר הקודם שנבחן בעזרת 0526680686 *כול עדיין להקרא בעזרת 586800₪6₪06סכ. ה-680זת+ המשתמש במישק זה יכול לעשות את אחד מהדברים הבאים: * להמתין עד אשר יהיה לפחות איבר אחד בתור. * לא להמתין, אפילו אם אין איבר אחד בתור. אס המשתמש במישק זה בוחר באפשרות ההמתנה, הוא חייב לציין את המקשר לאתת. אם 6805ז1+ רבים של בעל התור קוראים מהתור, עליהם להשתמש באותו מקשר לאתת. אנו נדון באתתים מאוחר *ותר בפרק זה. האתת מאפשר לתהליך לדעת מתי נכתבים נתונים לתוך התור ולפעול בהתאם. 06 ממבצע את אותה פעולה כמו 205868000006 פרט לדבר אחד. התהליך המצי% (שחייב להיות בעל התור) משתמש במישק זה כדי להציצ באיבר מבלי להוציא אותו מהתור. בכך הוא מאפשר לבעל התור לסרוק את האיברים עד שהוא מוצא איבר מסוים. לאחר שמצא, הוא משתמש ב-058686016₪6 כדי להוציא את האיבר המסוים הזה מהתור. 06 ממאפשר לתהליך הקורא ולתהליכים הכותבים לדעת את מספר האיברים הנמצאים כרגע בתור. המקשר לתור מזהה את התור. 6-ו בעל התור מוחק את את כל האיברים הנמצאים בתור ומותיר אותו ריק. 46 מבטל את הרשות של תהליך להכנס לתור. אם בעל התור סוגר את התור, אז התור נמחק. בנקודה זו, כל אחד מהכותבים לתור מקבל קוד המודיע שהופסקה פעולתו. 4 מנגנון התורים הינו בעל עוצמה רבה ומאפשר לתהליכים, אשר *ש להם זיכרון משותף, להעביר (תונים בינם לבין עצמם. אפשר להעביר ביעילות כמויות גדולות של נתונים כי אין צורך להעתיק אותם; במקום העתקה מועבר איבר תור מתהליך אחד לחברו. הסדר שבו תהליך מעביר את האיברים הינו גמיש ביותר. התהליך הקורא *כול לקרוא (להציצ) איברים מבלי להוציאם מהתור. אותות רינו כיצד תהליכים *כולים להתקשר בינם לבין עצמם על-ידי משלוח וקבלה של נתונים. בנוסף לכך דרוש מנגנון שיאפשר לתהליך להודיע לתהליך אחר לעשות משהו כעת, בדומה לדרך הפעולה של פסקים בתוכנה. פסק בתוכנה מכניס לפעולה מיידית שיגרת טיפול מתאימה. תהליך מייעד שיגרת טיפול לאירוע הנקרא אות (81מ51). לאחר שבוצעה הקריאה לשיגרת הטיפול היא מבוצעת על-ידי ה-680ז1+ הפותח של התהליך, אשר נוצר כחלק מהתהליך בעזרת 607₪8א2058. התהליך יכול להשתמש באותות לדברים אחרים מאשר קבלה של אירועים *וצאי דופן. אם הוא רוצה לעשות כן, הוא אינו יכול להשתמש ב-686:ת+ הפותח לביצוע עבודה רגילה. אפשר ליצור 58 נוספים בעזרת 680תת080768%61 כדי לבצע את העבודה הרג*לה. מערכת ההפעלה או התהליך *כולים לשלוח אות לתהליך מסוים. כאשר השליטה עוברת לשיגרת הטיפול באות, מועברים אליה הכתובת וסוג האירוע שהתרחש. השולח של אות-הסימון (אַ118) *כול גם להעביר מידע לשיגרת הטיפול באות-הסימון המסוים. התהליך *כול לייעד שיגרת טיפול באותות לסוג* האירועים הבאים: מקשים %701+8768%ת0) לחוצים (5%א5100). מקשים ‏ 6101+6ת00 לחוצים (78א5101). הפסקת התכנית (1אא510). אות-סימון 8 (510278). אות-סימון 3 (510272). אות-סימון .6 (510076). אס התהליך אינו יוצר שגרות לטיפול באותות 51029854%, 51)07521, או 8ך%, מערכת ההפעלה תפסיק אותו אם אחד מהאותות האלה *ישלח אליו. תהליך *כול ליצור שגרות טיפול באותות אלה כדי שהם לא יפסיקו אותו. תהליך *כול לשלוח לתהליך אחר כל אחד מאותות הסימון בעזרת המישק 58 תהליך *כול להשתמש במישק 0918081ת120556 כדי להעביר לתהליך אחר אות דימוי של 4701+07688ת00, או 6701+0ת60. פונקציות הטיפול באותות הן מנגנונים בעלי עוצמה רבה. תהליכים *כולים להשתמש בהן כדי לבצע פקודה מיוחדת כאשר אחד מהאירועים הנ"ל מתרחש. התהליך *כול לשמור במצב אדיש (רדום) את ה-6806עת+ ההתחלי שלו, ואז הוא יוכל לטפל ללא קושי בכל אחד מהאותות שהוא ירצה לקלוט כדי לבצע את עבודתו. הפונקציה 120581110706655 משמשת למשלוח אות 510218811 לתהליך אחר. 055 מאפשר לתהליך לפרט את הפעולה שתתבצע לכשיתקבל אות 55 מסוים. התהליך יכול לבקש שאחת מבין הפעולות הבאות תתבצע: * ברירת המחדל של המערכת תתבצע כשיתקבל אות. * יש להתעלם מהאות. * שיגרת הטיפול באותות שהוגדרה על-ידי התהליך תפעל כאשר יתקבל אות. * אם תהליך אחר מנסה לשלוח אות לתהליך זה, הוא יקבל הודעת שגיאה. * שיגרת הטיפול באות מודיעה למערכת ההפעלה שהיא סיימה לעבד את האות והיא מוכנה לעבד אות נוסף. כאשר תהליך מתקין שיגרת טיפול לאותות, מועברים אליו הכתובת של שיגרת הטיפול הקודמת והפעולה שהיא עמדה לנקוט בעת קבלת האירוע. אם התהליך אינו רוצה ששיגרת הטיפול הנוכחית תהיה פעילה, הוא :*כול לשחזר את שיגרת הטיפול הקודמת בעזרת מידע זה. 1 מאפשר לתהליך להשעות את העיבוד של האותות לפרק זמן קצר ביותר. לדוגמה, ספריית השגרות של הקישור הדנמי *כולה להקצות משאב לתהליך, אך היא אינה יכולה לטפל בהפסקת פעולתו של התהליך לפרק זמן קצר. פונקציה זו מאפשרת לתהליך להפסיק ולחדש את הטיפול באותות. פעולות אלו *כולות להיות מקוננות (65%60ת). המערכת תזכור שהאות הופק ותעביר אותו לתהליך מיד לאחר שהוא יחדש את . עיבוד האותות. פרק הזמן שבו לא יבוצע עיבוד האותות צריך להיות קצר ככל האפשר, כשם שפרק הזמן שבו לא יבוצע העיבוד של פסקי החומרה צריך להיות קצר ככל האפשר. 8 תהליך *כול לשלוח אות-סימון (8, 3 או 6) לתהליך אחר, או לתהליך אחר ולכל הצאצאים שלו. זאת אומרת ששיגרה אחת (או *ותר) לטיפול באותות תכנס לפעולה. המשתמש *כול לציין את המשתנה שתקבל שיגרת הטיפול באותות של תהליך המטרה. אות לא יטופל אם תהליך המטרה לא התקין שיגרה לטיפול באותו סוג אות. תהליך המטרה :כול גם לקבוע שתתקבל הודעת שגיאה כאשר מנסים לשלוח את טוג האות המסוים באמצעות 6160ם0556%518119ש. המשתמש במישק זה מעביר למערכת את מספר הזיהוי של התהליך הרצוי ואת סוג האות. 1 התהליך שולח 1101-0ת20) או 68%ז%70[1-2ת60 לקוב+ האחרון שהופעל בעצ של אותו תהליך שזוהה בעזרת מספר הזיהו*י המתאים. המערכת מחפשת שיגרת טיפול באותות על-ידי סריקה של תהליכי האב, עד אשר היא מוצאת את השיגרה המתאימה. אתתים אתתים (0:05ת7ק568) הינם מנגנון התקשרות חשוב ביותר. הם מאפשרים ל-176805? להשתמש במשאב או פונקציה בצורה סידרתית. אתתים מאפשרים ל-1-6806+ לשלוח אות ל-17680+ אחר כדי להודיע לו על התרחשות של אירוע. 5 של אותו תהליך או 6865זת+ של תהליכים שונים :כולים להשתמש באתתים. כלומר, אתתים יכולים לשמש לתקשורת בתוך התהליך, או לתקשורת בין תהליכים שונים. 66 יש שני סוגים של אתתים: * אתת* מערכת (0765ת56[(80 566ע5). * אתתי ]תא (פ6עסתק562 [אגת). אתת מערכת חייב להיווצר בעזרת 1050768%65681. התהליך הלוצר נותן לאתת שם, ובכך הוא מאפשר לתהליכים אחרים להכנס אליו. כאשר תהליך *וצר או פותח אתת מערכת, הוא מקבל אליו מקשר של אתת מערכת. התהליכים משתמשים במישקי תכנות אחרים לאתתים הנמצאים במערכת ההפעלה. אתתי מערכת מעמיסים את מערכת ההפעלה יותר מאשר אתת: 41/1ת. מערכת ההפעלה מספקת מנגנון פתיחה (מ56ת205006),: אשר מאפשר לתהליכים אחרים להכנס לאתת המערכת מבלי שיהיה להם זיכרון משותף. במקום זה, התהליכים השונים צריכים להשתמש בשם של האתת. מערכת ההפעלה מנהלת גם את הפסקת הפעולה של תהליך שבבעלותו נמצא אתת המערכת. תהליכים אחרים אינם צריכים להמתין עד אשר התהליך שפעולתו הופסקה ישחרר את אתת המערכת, מכיון שמערכת ההפעלה מפקחת על האתת. אתת ה-3%1 הינו למעשה מלה (רדפת לזיכרון המערכת, והמקשר אליו הינו הכתובת של המקום בזיכרון המכיל את האתת. אין צורך ליצור או לפתוח אתת ]אהת, אבל יש לדאוג לכך שהוא יהיה ידוע. לכל התהליכים המשתמשים באתת צריכה להיות אפשרות גישה לסגמנט הזיכרון שבו הוא נ(מצא. אתתי ה-8[11 דורשים הרבה פחות פיקוח של המערכת מאשר אתתי המערכת. השימוש הטוב ביותר בהם *היה בין 68065זת+ שונים של אותו תהליך. המערכת אינה נוקטת בשום פעולה כדי לנהל את אתתי ה-8%1א. לדוגמה, אם הופסקה פעולת תהליך שהינו הבעלים של אתת 311ת מבלי שהוא שחרר את האתת, מערכת ההפעלה לא תודיע לתהליך אחר שהבעלים של אותו אתת הופסק, ועל-כן לא יוכל לשחרר אותו לעולם. מישקים לאתתי מערכת תהליכים :כולים ליצור אתתי מערכת, או לקבל אישור כניסה לאתת מערכת שכבר קיים. 05070806 מאפשר לתהליך ליצור את אתת המערכת ולתת לו שם. השם הוא שם קובף הנרשם לפי הכללים ומתחיל ב-5%/1. התהליך מקבל מקשר לאתת שאיתו הוא יכול להשתמש עם מישקים אחרים לאתתים. התהליך היוצר את אתת המערכת קובע אם הוא יהיה בלעדי (6ט01851א6), או לא. השימוש הטוב ביותר באתתי מערכת בלעדיים הוא כאשר יש צורך להשתמש בפונקציות שנדרשת בהן בעלות על האתת. 686ז:ת+ משיג את הבעלות על אתת המערכת על-ידי כך שהוא משתמש במישק 12055618601105%. אם אתת המערכת נוצר עם מאפיין של בלעדיות, רק 680עת+ אחד *כול להיות הבעלים שלו, ורק הוא יוכל לשנות את המצב של אותו אתת. הדבר מונע מ-0:68065+ אחרים לשחרר את האתת מידי הבעלים שלו. רק ה-6806זת+ שהוא הבעלים של אתת מערכת בלעדי יכול לשחרר אותו. אם אתת המערכת משמש לאיתות, יש צורך ליצור אותו כלא-בלעדי, ובכך לאפשר לכל 680זַ0+ לשנות את המצב שלו. ברוב המצבים שבהם יש צורך לשלוח אות משתמשים באפשרות זו. 7 תק 050 מאפשר לתהליך להכנס לאתת מערכת שנוצר על-ידי תהליך אחר. לשם כך עליו לקבל את השם שניתן לאתת בזמן *צירתו באמצעות המקשר לאתת. התהליך שיצר את אתת המערכת אינו צריך להשתמש בפונקציה זו. כאשר תהליך יוצר תהליכים חדשים (מק607א2053), הם *ורשים את המקשרים המאפשרים את פתיחת האתתים. תהליכי הבנים לא *היו הבעלים של האתתים, גם אם תהליך האב היה הבעלים של אתת כזה בזמן שהוא יצר אותם. 0501056 מיועד לתהליך שאינו רוצה להשתמש עוד באתת המערכת. התהליך מעביר למישק התכנות את המקשר של אתת המערכת שאותו הוא רוצה לסגור. אתת המערכת נמחק מהזיכרון כאשר כל התהליכים השתמשים באותו אתת מערכת מוציאים הוראה כזאת. אם תהליך מופסק ואינו סוגר אתת מערכת, המערכת עושה זאת באופן אוטומטי. אם מופסק תהליך בעודו משתמש באתת המערכת, המערכת מודיעה זאת לכל ה-176805+ של התהליכים האחרים הממתינים לאתת. מישקים להשגת בעלות על אתת מישקים אלה מתאימים הן עבור אתת מערכת והן עבור אתתים של ה-אגא. הפונקציות להשגת הבעלות על אתתים משמשות בעיקר אתתי מערכת בלעדיים. מרגע ש-6806ת+ השיג בעלות על אתת מערכת בלעדי, הוא היחיד שיכול לשנות את מצבו. % ממאפשר ל-2"686+ לטעון לבעלות על אתת המזוהה על-:ד: המקשר לאתת. אם האתת אינו בבעלות של אף אחד, ה-176846+ המשתמש במישק זה יהיה מרגע זה הבעלים של האתת. אם האתת נמצא כבר בבעלות של אחר, ה-11680+ הנוכחי *כול לבחור באחת מדרכי הפעולה הבאות: * להמשיך להתבצע ללא האתת. * לחכות עד אשר הוא *וכל להשיג את הבעלות על האתת. * להמתין פרק זמן מוגדר מראש, ואם עד אז האתת לא *היה פנן" - לוותר עליו. אם 680ע(+ מחכה עד אשר ישיג את הבעלות על האתת, מערכת ההפעלה תבצע בדיקת-מצב של האתת כאשר היא תנסה לבצע את ה-686זת%. אם האתת לא נמצא במצב המתאים, מערכת ההפעלה לא תתחיל את הביצוע. המערכת אינה בוחנת שוב אם האתת שוחרר, ועל-כן ה-686"ת+ לא :בוצע גם אם האתת שוחרר לאחר שהתקבלה תשובה שלילית בעת הבדיקה. לכן, הדבר מאפשר ל-6806עת+ אחר שמתבצע באותו זמן להשתלט על האתת. האתת צריך להיות פנוי בזמן שהמערכת מנסה לבצע (ת61508%0) את ה-6806תת+ הממתין. אם האתת הוא אתת מערכת ונוצר עם מאפיין של בלעדיות, הבעלים *כול לקרוא ל-2055618601105%, בצורה רקורסיבית. המערכת עורכת מעקב אחר מספר הפעמים שה-07680+ ביקש את האתת. כאשר האתת נמצא בבעלות של מישהו, 6805ז0+ אחרים | אנם *כולים לבצע פונקציות שיכולים לשנות| את מצבו (כמו 0556סכ, 055656%כ וכו'). מישק זה משמש עבור אתתי 341 ואתתי מערכת לא בלעדיים, למטרות של שיגור אותות. |08 סע בעזרת מישק זה משחרר ה-6806זת+ את האתת. 686זה+ משיג את הבעלות על האתת על-ידי קריאה ל-20556188001105%. .אם אתת המערכת הוא בלעדי, ו-20556180065% בוצע מספר פעמים, יש לבצע את 055610168 אותו מספר פעמים כדי שהאתת *הפוך לחופשי. אם אתת המערכת הוא לא-בלעדי, כל 6 *כול להשתמש במישק זה כדי לשחרר את האתת. אפשר להשתמש במישק זה יחד עם המישקים 2055680/816, 55656%0/816ס ו-10/81%ת56א12051 כדי לנקות את האתת למטרות של איתות. מישקים להעברת אותות באמצעות אתתים מישקים מתאימים הן לאתתי מערכת והן לאתתי ]1הא. אתתי מערכת בלעדיים אינס משמשים בד"כ להעברת אותות. אפשר להשתמש במנגנון של 2055618601165% ו-זַ055610108 להעברת אותות באמצעות אתתי מערכת לא-בלעדיים ואתתי ה-8811א. במקרה כזה ה-686ז1+ ימתין כדי שהקריאה ל-2055686065%4 תסתיים. הוא יחכה לאירוע שינקה את האתת ורק אז הוא *וכל להמשיך להתבצע. אין זה משנה מי הבעלים של האתת. כל 68 יכול לשלוח אות ל-6806ז1+ הממתין על-ידי שימוש ב-1ַ0556100168. מישקי התכנות המתוארים מטה משמשים כדי לקבוע את השימוש באתתים ולהמתין להם שישתחררו. ז168.)נ1205561 משמש לשחרור אתתים. %% קובע שהאתת ישמש להעברת אותות (6ת:5180811). פעולת מישק זה מנוגדת ל-2055611681, המשחרר את האתת מפעילות של העברת אותות. ה ה-01686? המשתמש במישק זה ממתין עד אשר האתת יהיה חופשי, או עד אשר חולף פרק זמן מסוים. אם האתת כבר חופשי, אין צורך להמתין לו. המשתמש במישק זה יכול לקבל את השליטה מיד, אם האתת נמצא בבעלות של מישהו, או להמתין עד אשר האתת *שוחרר, מישק זה אינו מאפשר לקבל בעלות על האתת. בדומה ל-120855618601105%, מערכת ההפעלה בודקת את מצב האתת כדי לראות אם הוא פנוי. המצב של האתת חשוב רק כאשר מערכת ההפעלה מנסה לחדש את הביצוע של ה-686זת5. 99 מבצע פעולה דומה לזו של 2055610/815, פרט לכך שניתן לקבוע את הבעלות בעזרת מישק זה. ה-686עת+ המשתמש במישק זה חייב להמתין שהאתת יתפנה, אלא אם הוא מבקש לקבל את השליטה מיד, בלי קשר למצב האתת. בדומה ל-120556110/816, מערכת ההפעלה בודקת את מצב האתת כדי לראות אם הוא פנוי. המצב של האתת חשוב רק בנקודה שבה מערכת ההפעלה מנסה לחדש את הביצוע של ה-6806זת?. וס ה-11680+ המשתמש במישק זה ממתין עד אשר יתפנה אחד מתוך קבוצה של אתתים. המשתמש במישק זה בוחר פרק זמן מסוים, כך שגם אם אף לא אחד מהאתתים יתפנה, המערכת עדיין תוכל לבצע את ה-6806תת+. המשתמש *כול לבחור לקבל את השליטה מיד גם אם אף לא אתת אחד התפנה, או שהוא *כול לקבל את השליטה רק כאשר אחד מהאתתים מתפנה. .9 ישנו הבדל משמעותי בין פונקציה זו לפונקציות הקודמות. המשתמש במישק זה יכול לפרט רשימה של אתתים שצריכה להיות בפיקוח. אס אחד מהם מתפנה, אפשר לבצע את ה-%2686. בנוסף לכך, הבדיקה של כל אתת נעשית בצורה של "הפעלת סף". זאת אומרת, שאם האתת התפנה והשתלטו עליו שוב (לפני שמערכת ההפעלה ניסתה לבצע את ה-1:6806 שקרא ל-56110/416אנ5/1סכ), עדיין ניתן לבצע את ה-686ז% הממתין. השירותים של השעו] הפנימי מספר של מישקי תכנות ב-025/2) נותנים שירותים הקשורים לפעולות הבאות: * קבלה וקביעה של זמן ותאריך. * המתנה לפרק זמן מוגדר. = התחלה והפסקה במרווח: זמן ("שעוני עצר"). רוב המישקים מספקים קלט ופלט ביחידות של אלפיות השניה. חשוב לציין שהדיוק של המערכת לא מגיע לכך. מערכת ההפעלה משתמשת בשעון פנימי שפועל בתדירות של 32112. זאת אומרת, שמערכת ההפעלה עוקבת אחר הזמן בערך כל 2 של השניה. פרק זמן זה נקרא תקתוק (א16+) השעון. הדיוק של מרוותי זמן *כול להגיע עד 2+ תקתוקים. זאת אומרת שכרגע דיוק הזמן לצורך ביצוע הפונקציות שנדונו הוא בערך 50 אלפיות השניה. אפילו אם ה-686זת+ מוכן לביצוע בדיוק של 50 אלפיות השניה, אין זה מחייב את מערכת ההפעלה לבצע אותו מיידית. השעון הפנימי מונה במדויק שעות, דקות ושניות, אך הוא אינו מונה במדויק אלפיות השניה בפרק זמן ארוך. תכניות העורכות מעקב אחר פרקי זמן ארוכים צריכות להתחשב בעובדה זו. 6ז''1205026)128+6| ה-686זת+ המשתמש במישק זה מקבל את הפרטים הבאים: זמן בשעות, דקות, שניות, ומאיות השניה. תאריך על פי חודש, *ום ושנה. איזור זמן ביחס לזמן הכללי (6ת1'1 881ת6ט1תז). היום בשבוע. 120556)128+6'16 מאפשר ל-686זת+ המשתמש בפונקציה זו לקבוע את פרטי* המידע המתקבלים על-ידי 0506%28%611₪6כ. אין אפשרות לקבוע את היום בשבוע. 67 מאפשר ל-686זת+ להשעות את הביצוע של עצמו לפרק זמן מוגדר מראש. פרק הזמן נמדד באלפיות השניה והוא מעוגל לתקתוק השעון הבא. המשתמש בפונקציה זו חייב לקחת בחשבון שהדיוק של הפונקציה הוא בטווח של 2 תקתוקים. שיקולי תזמון לפי עדיפות :כולים: למנוע מ-6806זת+ להתבצע למרות שתקופת ההשעיה עברה. תכניות אינן צריכות להשתמש בפונקציה זו למטרות של מעקב אחר זמן. 051160 הוא המקביל האסינכרוני של ק12055166. ה-107686 המשתמש בפונקציה זו מעביר מקשר לאתת המערכת וממשיך להתבצע. כאשר פרק הזמן 0 המוגדר עובר, המערכת מנקה את האתת. על-ידי קביעת האתת לפני השימוש בפונקציה זו, התהליך :כול לגלות שפרק הזמן עבר על-ידי כך שהוא מקבל הודעה שהאתת אופס. המקשר לשעון העצר מוחזר למשתמש במישק זה, והוא משמש לעצור את שעון העצר לפני שהוא סיים את פעולתו. סכ מקביל ל-6תע45ז511110סכ, פרט לכך שבמקום לבקש הודעה על פרק זמן *חיד שעובר, הוא מבקש הודעה בכל פרק זמן מסוים. לאחר שהמערכת מאפסת את האתת, היא מתחילה למדוד בצורה אוטומטית פרק זמן נוסף. אם התהליך רוצה לבצע פעולה כלשהי לאחר שיחלוף פרק זמן מסוים, הוא חייב לקבוע שוב את הבעלות על האתת. אם התהליך לא יקבע שוב את הבעלות לפני שפרק הזמן הזה חלף, הוא יחמיצ מרווח זמן אחד לפחות. סע מיועד לעצור את שעון העצר שהותחל על-ידי סתץ15 :סמ דפסס, אוה על-ידי 5+81%ז116פסס. המקשר לשעון, החוזר עם כל אחת מהפונקציות הנ"ל, משמש לעצירת השעון לפני שחלף פרק הזמן שהוגדר מראש. לאחר עצירת השעון יעברו האתתים ששימשו את הפונקציות האלו למצב לא מוגדר. סגמנט מידע מקומ' וגלובלי מערכת ההפעלה מחזיקה שני סגמנטים של מידע (10568ת1): סגמנט מידע מקומי וסגמנט מידע גלובלי. הסגמנט הגלובלי מכיל מידע אשר ישים לכל המערכת, והסגמנט המקומי מחזיק מידע עבור כל תהליך במערכת. יישומים אשר צריכים להשתמש במידע זה צריכים להיות ערים לכך, שסגמנט המידע *כול להתעדכן בשעה שהם קוראים אותו. תהליך קורא את סגמנט המידע הגלובלי, או את סגמנט המידע המקומי שלו, על-ידי שימוש במישק התכנות 1056₪ח20502601. סגמנט המידע המקומי מכיל את המידע הבא: מספר הזיהוי של התהליך הנוכחי. מספר הזיהוי של תהליך האב של התהליך הנוכחי. רמת עדיפות הביצוע ותת-הרמה של ה-686ז1+ הנוכחי. מספר הזיהוי של ה-17686+ הנוכחל. מספר הזיהוי של ה-ת565510 שהתהליך הנוכחי הוא חלק ממנו. סגמנט המידע הגלובלי מכיל את המידע הבא: זמן ותאריך. מספר הגירסה הנוכחית של המערכת. פרמטרים שהמערכת משתמשת בהם לתזמון הביצוע של ה-6805ז0+. מספר הבלוק שהמערכת הותחלה ממנו. מספר הזיהוי של התהליך הנמצא ב-0ת60700ז10. האם קיימת במערכת סביבת ביצוע של 05. 1 פרק 4 עקרונות תכנות פרק זה מיועד לקורא הרוצה לרדת לפרטים הטכניים הקשורים בניצול הפונקציות של 005/2). בפרק זה נראה מספר תכניות פשוטות המדגימות את השימוש במישק לתכנות *שומים (401). נתחיל בסקירה של הכלים הדרושים כדי לבנות תכנית לסביבת ה-05/2 ולאחר מכן נציג מספר דוגמאות תכנות לשימוש ב-401. לרשות המתכנת צריכים להיות תחנת עבודה עם 05/2, ערכת כלים (005/2) 0% מהדר ו/או אסמבלר. בפרק 1 ניתן למצוא את רשימת השפות הנתמכות על-ידי יבמ ב-025/2. המהדרים, האסמבלרים, וכלים אחרים המסופקים עם שפות אלו הם :ישומי משפחה (5ת01108%10קק8 ע11ומ18) הניתנים לביצוע ב-025/2) או ב-3.3 5,. מוצרים אלה *כולים להפיק פקודה שתתקבל על-ידי כל אחת ממערכות ההפעלה. הדוגמאות שנשתמש בהן בספר זה כתובות בשפת 0. בחרנו ב-0 מכיון שהיא הופכת לשפה מקובלת, ומכיון שסוג*י הנתונים שלה, מבני הבקרה והספריות הסטנדרטיות לזמו ריצה איפשרו לנו להעביר בצורה היעילה ביותר את המהות ועיקר: הפעולה של המישק לתכנות יישומים ב-05/2. בכל המקרים, סגנון התכנות שנשתמש בו מתאר בצורה אופטימלית את ה-421 והוא גם מקל מאוד על קריאת התכנית. לדוגמה, רוב המשתנים בדוגמאות מוגדרים כמשתנים גלובליים בהתחלת התכנית, כדי להקל על ההבנה של' תפקידם בהמשך. באופן טבעי, בסביבת פיתוח של תוכנה, יש כאלה המתאמצים לצמצם למינימום את מספר המשתנים ולהשאיר רק את אלה שהשגרות צריכות להכנס אליהם. בדוגמאות אלו אין אנו בודקיס את ה-111070006 המוחזר משגרות הביצוע של 025/2). במספר מקרים הצגנו בצורה מקוצרת עקרונות בסיסיים לתכנות של מספר פעולות בו- זְמנית. הקורא המתכוון לפתח תכניות בשפת 6 ל-025/2) צריך לפנות לאחד הספרים על 6, או לספר הדרכה הדן בפיתוח של *ישומים רבי משימות ובטכניקות לפיתוח | תכניות | ברורות, | אשר ‏ נלתנות | לתחזוקה | ולנלוד (8016+זסק). בערכת הכלים למתכנת של 05/2 ניתן למצוא מידע חשוב היכול לסייע למתכנת המתעתד לפתח תוכנה בסביבת תפעול זו. בנוסף לקווים המנחים לשימוש במקשר (ע6א%ם11), היא מכילה הגדרות סטנדרטיות של מכללים, הגדרות של פונקציות והודעות שגיאה לשפות אסמבלר/2 ו-6/2, אשר משווקות על-ידי יבמ. כלים אלה, ביחד עם דוגמאות של תכניות המסופקות יחד עם ערכת הכלים, *כולים לעזור למתכנת להפיק תכנית בזמן קצר ביותר. לפנ שנמשיך נסקור בקצרה הידור, קישור וקיצורים מוסכמים בשפת 6 לתועלת הקוראים, אשר אינם מתמחים בשפה זו דווקא. 2 התחביר והליצורים המוסכמים בשפת 6 בחלק זה נדון בהידור ובקישור. כמו כן, נסקור חלק קטן של התחביר בשפת 6 כדי לעזור בקריאת הדוגמאות על-ידי מי שאינם מתכנתים בשפה זו. נדון גם בסוגי הנתונים הנפוצים שמשתמשים בהם כדי לקרוא לפונקציות 05/2 מתוך שפת התכנות 0/2 ]18. הידור תכנית בשפת 6 מתבססת על קוב מקור אחד או יותר. הסיומת של שמות קבצי מקור בשפת 600 היא "6" (0.אאאאאאאא). הכרזות (5ת8%10ז66018) והשוואות (0018+69) נפוצות, הנמצאות בשימוש בתכניות בשפת ‏ 6, מופרדות בד"כ מהתכנית, ומוכנסות לתוך קבצים הנקראים קבצים מוכללים (11165 61006ם1). הסיומת של שמות הקבצים המוכללים, הידועים גם בשם קבצי כותרת (ז6806 5), היא האות "םת" (ג.אאאאאאאא). כל קוב מקור של תכנית חייב לעבור דרך המהדר של שפת 6. הפלט של תהליך זה הוא קובצ היעד (1116 00[66%), שהוא הייצוג בשפת מכונה של תכנית המקור. בנוסף לכך, ניתן למצוא בו מידע המאפשר עבודה עם תכנית הקישור (ז6את11), ומידע למטען (ז10800) של מערכת ההפעלה על אפשרויות הניוד של התכנית בזיכרון. המהדר *כול גם להפיק קבצי הדפסה (11165 6ת1150) הערוכים במבנים שונים, שבהם נרשמים התוצאות של תהליך ההידור. אפשר להפעיל את מהדר 6/2 ]18% מתוך 05/2 על-ידי הפקודה 00. לאחר הופעת מנחה המהדר (6קמסזק) יש להכניס את שמות הקבצים הדרושים ואת האופציות השונות. אם תבחר להשתמש בפקודת 06, תרצה בוודאי לבנות קובצ ת8%6ס (סיומת 28%.* ב-2025 ו-06.* ב-05/2), ולהרי* את המהדר ישירות משורת הפקודה. התחביר של הפקודה המאפשרת להריצ את המהדר באופן ישיר: [;][[806ח8ה115%1],] [[6ה8ת60%[מס],] 6תהת66עט50 006 הסבר: [;][[שם קובף הדפסה],] [[שם-קוב-יעד],] שם-קובצ-מקור 66 באופן כללי, הכוונה היא לכך שאתה חייב לספק את שם קוב המקור. אם לא תספק את שמות קבצי היעד וההדפסה, המהדר ישתמש בברירות המחדל שלו כדי לקבוע זאת. אופציות שונות של המהדר חייבות להופיע לפני התו נקודה- פסיק (;). שבסוף ההוראה. דוגמה לשורת פקודה המפעילה את המהדר 6/2 ]18% היא: 1 %05%0208.186 08.00[,/28ע08.0,565%0עק665% 606 שורת הפקודה גורמת למהדר לעשות את הדברים הבאים: * הידור של קוב% המקור הנקרא 565%0706.6. * קביעת השם [%65+0106.00 לקובצ היעד. =" יצירת קובצ הדפסה הנקרא 102.15%ק565%. . אופציית 725/ שלפני שם קובף ההדפסה מורה לבצע תדפיס (שַם1190) של קוב המקור. האופציה 02/ מורה להפיק קוד למיקרו-המעבד 80286. 3 יש להדגיש, כי מתגי האופציות רגישים לשינויים בסוג האות (אות גדולה או קטנה) ויש להכניסם בדיוק כפי שרשום. למרות שהדוגמה הזו מציגה שימוש בשת: אופציות בלבד, אין להסיק מכך ששתי האופציות האלו הן היחידות. קיימות אופציות רבות שניתן להשתמש בהן כדי לשלוט בתהליך ההידור. חלק מהאפשרויות האחרות של המהדר הופכות אותו לכלי חזק מאוד לפיתוח תוכנה בידי המתכנת, אשר :כול לעשות את הדברים הבאים: * להשתמש במשתני סביבה המכוונים את המהדר לסרוק במדריכים נפרדים אחר קבצים הניתנים לביצוע, קבצים מוכללים ומודולים של ספריות. * לקבוע אופציות המאפשרות תאימות עם מהדר שפת 6 גירסה 1.00 למחשבי 6ק ]13%. לשלוט על הפקת הסוגים השונים של קבצי ההדפסה. לקבוע שיטות שונות לטיפול בחישובים עם נקודה צפה. לקבוע את רמת הדיווח של הודעות אזהרה/שגיאה. לערוך אופטימיזציות שונות, כמו גודל זיכרון ומהירות ביצוע. להשתמש במספר מודלים שונים של זיכרון הכוללים קטן, בינוני, קומפקטי, גדול וענק (110₪6 8 18786, 866קו0), ממט1001א, 811 5). * להפיק קבצי יעד עם המאפינים הדרושים לעבודה עם תכנלת לניפו? שגיאות (₪ת₪1ט000) המסופקת יחד עם המהדר. סיכום קצר זה של האופציות האפשריות במהדר 0/2 ]18 מכוון להציג מקצת מן הכוח והגמישות שבו. קיימות אופציות נוספות מתקדמות *ותר. לשם כך יש לפנות לפרסומים על מהדר זה. קישור לאחר שהתכנית עברה הידור, היא מוכנה לקישור. בדומה למהדר, תכנית הקישור (ז6את11) תנחה אותך להכניס את הקלט הדרוש, אם לא סיפקת אותו בשורת הפקודה. לחילופין, תכנית הקישור יכולה לקרוא כקלט "קובף תגובה" (1116 56ת6500). קוב זה מפרט את שמות הקבצים ואת האופציות שיהיו בשימוש. למרות שאנו מראים כאן דוגמה לשורת פקודה המפעילה את תכנית הקישור, אנו עוסקים בפרק 7 ביתר פירוט בתחביר של תכנית זו. חלק חשוב של תהליך הקישור לתכניות בשפת ‏ 6 הוא קביעת אפשרות המיעון לספריות המתאימות של תכניות יעד סטנדרטיות בשפת ‏ 6. פונקציות רבות הנפוצות בתכניות בשפת 6, אען למעשה חלק מהשפה, אך מקובלות כתקן בהתקנות שונות בשפת 6. למשל, ישנן פונקציות סטנדרטיות בשפת 6 לטיפול בק/פ ובמחרוזות בזמן ריצה. יש ספריות שונות לזמן ריצה המותאמות למודלים שונים של הזיכרון וסביבות שונות של מערכת ההפעלה. אתה *כול לבצע את תכנית הקישור באותה סביבה שבה אתה מתעתד לבצע את התכנית הסופית. במקרה זה השימוש בספריות המתאימות נעשה לפי ברירות המחדל. בדומה למהדר, נתרכז בהפעלה של תכנית הקישור מתוך שורת פקודה. דוגמה לשורת פקודה המפעילה את תכנית הקישור ב-005/2 מובאת להלן: , קפו. 65%020₪> , 6א6 . שסנק65%> , [פס. שסעק65%>% %ת11 ;5. 40508118 511065.115 51106.110 4 שורת הפקודה תגרום לתכנית הקישור לעשות את הדברים הבאים: * קישור של קוב היעד [0.00זס%65%. * קביעת השם 6א%6510108.6 לקובצ המתקבל. קובצ זה מכיל את התכנית שניתנת כבר לביצוע (600%8016א6). * הכנת מפת קישור ק5650208.(8, המפרטת את כל הסגמנטים בתכנית הטעינה 6א6. * שימוש ב-כ51106.11 - החלק שאעו תלוי ב-05ע, של הספריות המשרתות תכניות 6 בזמן ריצה. * שימוש ב-511009.10 - החלק התלוי ב-05/2, של הספריות המשרתות תכניות 6 בזמן ריצה. * שימוש ב-60508115.115 - הספריה המשמשת להפניות חיצוניות לקישור דינמי חיצוני של פונקציות 05/2. הפרסומים על. 0/2 ]18% וה-066ם6ז616ע [108ת(166 025/2) מכילים תיעוד על האופציות וברירות המחדל של תכנית הקישור. אנו נמשיך בדיון שלנו על תכנית הקישור בפרק 7. הידור וקישור בצעד אחד ב-6/2 181 יש פקודה המאפשרת למתכנת לבצע הידור וקישור של תכנית בשלב אחד. פקודה זו נקראת פקודת ")". דוגמה לפקודת 61 עבור הידור וקישור של דוגמת התכנית הראשונה בפרק זה, הנקראת ס.ְתת, מובאת להלן: 0 ₪// 6.0תהת פע/ 01 שורת פקודה זו מכוונת את המהדר ואת תכנית הקישור לעשות את הדברים הבאים: * האופציה 25/ מורה להפיק רישום של תכנית המקור. * "0.סגתהת" הוא שמו של קובצ המקור. * האופציה 2000 ע/ מקצה מחסנית בת 8%8. רוב האופציות האפשריות עם פקודת ‏ 00 אפשריות גם עם הפקודה 61. כפי שניתן לראות, התחביר של שורת הפקודה בפקודה 61 הוא מאוד נוח. בהמשך השתמשנו בפקודה 02 להידור וקישור של הדוגמאות המוצגות בספר. קריאה של תכנית 05/2 הכתובה בשפת 6 כפי שהוזכר קודם, הכרזות ומשוואות נפוצות, שמשמשות תכניות שונות בשפת 0 מופרדות מהתכניות ומוכנסות לתוך קבצים מוכללים. ערכת הכלים למתכנת ב-05/2) מספקת הכרזות (5ת6601878%10) נפוצות לפונקציות ב-025/2 שניתן להשתמש בהן בתכנית בשפת 6/2 18%1. ניתן לכלול בתכנית את ההכרזות האלו באמצעות משפט התכנות הבא: <ת. 405081[1> 1066סת41 בתרשים 8 מוצגת דוגמה להכרזה על פונקציה של 25/2) בתכנית בשפת 6. אנו משתמשים בפונקציה היפוטתית הנקראת "61160411ת06פסכ". 05 /* פףתפתחסס 3 18 5גת7 */ 6 חאחסט מססְסַַא3ת0 3686 - 0806062100811 ***/ * 6 ₪6 תסעש2 ספסְסבּעַהּת6 3 מתעגטסצפסת * /* ) 100811ע6ת20806 85081ק 18% 6₪ת10פתג9 ת%662א6% /* 6868 060106 ע20 ע%6טם */ ,(* ע8+ 6010608068 66גע5% /* ע6ס66חהעהק מתסגסטסתטץע */ ,סתש1פתגו /* 16בֶתהת 166ט6ק */ ;( 66ת16פתט תרשים 8. הכרזה על פונקציה של 05/2 בשפת 6 המטופקת בערכת הכלים למתכנת דבר ראשון שאנו רואים הוא, שהערות מתחילות ב-"*/" ומסתיימות ב-"/*" ויכולות להקיף מספר שורות. הדוגמה מראה הכרזה בתכנית בשפת 60 על פונקציה חיצונית של 05/2. המונה "[8508ק 187 66ת1₪פתט" מורה על סוג הערך החוזר וגודלו (שהוא קוד השגיאה החוזר מהקריאה לפונקציה), יחד עם הקיצור המוסכם לקריאה לפונקציה. בהמשך הפונקציה ניתן למצוא רשימה של סוגי הפרמטרים עם הערות המסייעות לתעד את סוג הפרמטרים הדרוש לביצוע. המונח "תז%6א6" מפרט את סוג האחסון ויש להשתמש בו בכל הכרזה על פונקציות חיצוניות. זאת אומרת, שעבור קישור פונקציה זו יש להקצות שטח קבוע (5%8610) במשך כל זמן ההרצה של התכנית. השם של שטח זה חייב להיות ידוע לתכנית הקישור. המונח "60ק!פתט" פירושו, שהערך המוחזר משיגרת הביצוע הוא מספר שלם חיובי, אשר ב-6/2 הוא ערך בן 16 סיביות (מלה של 80286). המונח "זַם1" מורה על כך שצריך להכנס לפונקציה דרך קריאה רחוקה. המונח "85681" מורה על סדר הכנסת הפרמטרים למחסנית. רשימת סוגי הפרמטרים נמצאת בתוך הסוגריים של הכרזת הפונקציה. בנוסף לפרמטרים שהם ערכים שלמים וחיוביים, רואים משפט בשפת 6 המגדיר פרמטר שהוא מחוון רחוק (66ם1סק "18) אל מבנה נתונים מסוים. בדיון שלנו על המיקרו-מעבד 80286 הסברנו שהכתובת מורכבת משני חלקים בני 16 סיביות כל אחד. במצב אמיתי הכתובת מורכבת מסגמנט בן 16 סיביות ומכתובת יחסית בת 6 סיביות. במצב מוגן הכתובת מורכבת מערך בורר בן 16 סיביות ומכתובת יחסית בת 16 סיביות. אם התכנית בשפת 6 פונה לנתונים, היא עושה זאת בעזרת אחד משני סוגים של מחוונים. אם הנתון נמצא בסגמנט הנתונים הנוכחי, אז אפשר להשתמש במחוון המפרט את הכתובת היחסית בלבד בסגמנט הנתונים הנוכחי. אם הנתון נמצא בסגמנט נתונים אחר, יש צורך להשתמש במחוון שיפרט הן את ערך הבורר (או הסגמנט במצב אמיתי) והן את הכתובת היחסית. כדי להשלים את הדוגמה על הכרזה של פונקציה, הבה נסתכל בתרשים 9, המראה הכרזת מבנה ל-10628%8ט26 בפונקציה 61100811ת05026ש. הכרזות אלו על פונקציה ומבנה הן הצהרות היפוטתיות בלבד, אך הן נותנות תמונה ברורה על המבנה של הכרזות סטנדרטיות ב-6/2. הכרזות כאלו קיימות כקבצים מוכללים בערכת הכלים והדבר מקל מאוד על פיתוח תכניות בשפת 6 בסביבת 05/2. 6 /* 68%68 460106 8ת%681ת600 86ת6 6עטססטע8% - 601662868 ***/ ] 6010862868 6%5גע8%6 /* 0068 060106 שהע */ 060106 עהת0 684ת1פתט /* 0066 05 סַת1קקבת 5011 */ 1 5011 6288 64תס6ג1גפתט /* 3808 0% קתח8068 6106 */ שם0ס1 66מ16פתגו הכרזת המבנה הנראית בתרשים 9 נקראת 126010628+8. יש בה 3 פריטים מסוגים שונים. סוג* הנתונים הנפוצים ביותר ב-6/2 לצורך פרמטרים המועברים לפונקציות של 05/2 הם: זאת תו בן 8 סיביות (בתחום 128- עד 127) ז68 66תשופחט תו בן 8 סיביות ללא סימן (מ-0 עד 255) + מספר שלם בן 16 סיביות (32,768- עד 32,767) 68 ה מספר שלם ללא סימן (0 עד 65,535) קַחס! מספר שלם ארוך בן 32 סיביות (2,147,483,648- עד 7, 2147) שַח0ס] 66חא1פחט | מספר שלם ארוך בן 32 סיביות ללא סימן (0 עד 7585) * ז18 66תקופחט | מחוון בן 32 סיביות (סגמנט/ערך בורר:כתובת .יחסית) למספר שלם בלי סימן. * ז8] ע8ת0 | מחוון בן 32 סיביות (סגמנט/ערך בורר:כתובת יחסית) לתו. נבחן עתה מספר דוגמאות פשוטות של השימוש במישק לתכנות יישומים (401). 7/פ באמצעות תצוגה ומקלדת הפונקציות למקלדת ולתצוגה ב-05/2 מהוות תחליף בעל רמת ביצועים גבוהה לפונקציות ה-31025 הקיימות ב-1005, מתכנתים *כולים להשתמש בפונקציות אלו כדי לפתח *ישומים *עילים לעיבודי תמליל. בחלק זה נבחן דוגמה ליישומים מבוססי תמליל המשתמשים ב-1ק8 לתצוגה ולמקלדת. תרשים 10 מראה את המהלך הלוגי של התכנית הראשונה שבה נשתמש, כדי לתאר מספר קריאות פשוטות לפונקציות 05/2 המשמשות לתצוגה ולמקלדת. תרשים 11 מכיל את התכנית האמיתית. נקה את המסך הצג "סשהפא עטסע עפסםם 16856ק" קרא מחרוזת תווים מהמקלדת הצג את התוים שזה עתה נקראו סוף תרשים 10. הלוגיקה של תכנית הדוגמה הראשונה - שימוש בשגרות 0זע ו-480 7 [וווווווווו .פס /י 8 ות ה ה 4 1060 */ /ו4וו9ווו0ו1ו!ווווווווווווווווווונווווווווווווווווווווו|)וואווווווווווווווווו1 ווהוווגוגווווווו 'וווווגווווווווו] / 8 1 05/2 */ <. 0056311> 1161006 /י 8סן)סתט] ָת1ז50 0 */ <ם, חַת1ז56> 68ט01ת41 /י טס ם531 0 01 50326 */ ו /.,ווווווווווווווג)וווווווווווווווווווגווג)ווווו)וו)ווווווו סק 6 סמ ףוסמ %6=טר - 58 1 י/ /י 3115 05/2 על 60:86 %3106 */ = 877070066 | 4פח0ָ1צתט /* 1007 "זס]" ת1 864 135168ג) */ = :6)תטס0טס 1 /* 5 26 01637 כס */ :1 > 06%ת50168006 1% ]|וו3ו.וו1)ווווו.ו+וווווווווווווווווווו)ו\ווווו|ו|וו גה 5 זט 1 סס ד - 5 בי יו /י זל 00330007 */ ו ונ /י (ת 00503115 08ת3516)1: תַחְתסם */ :תלחַת0416א בִסַהַה1סַת245671א | 6סטז51 /* | :003 ז0] 98415 ]1 010366ה1 */ :1 66ת16פתצ 6ַהסָ1פת 5פסק [015013 0ת3 /13ק015 01638 60 64פג - 65[פגנפגץ ץד1)זאסנל */ /י 8 ]0 [תסט 3680964 */ ]ווו).ווווו.)וווווווגווווווווווווווווווו\וור /* 510 6ה11 אתמ[ */ :"תת" = 111003:555* ז3] 0083 /י [נז50 [ךך 01 ב06ת06 */ ו %ג /י 8 ]0 [ססע 63660 */ ₪60ת6צת ּ ]ו40909033)ווג)ווו9ווווו43.)))))וו.ה)))))ו.)))ו44))))וווווווווווו)))))))))ווווווווווווווו בה 0% יו /* 00088זק ת[ 6905קו% 311 ףאל */ :06 66תף1פתט / 00500315 ש0] 58060 ש[טפסת */ :6-0 100669פתנ ][33444440%99)))ו))ו))ו1ווואוווווו+4ווווצוו)וו\))וווווו,ו\)ווווווגווו)ווגו)ווגו םסק 6 9% 5% יו / 50706 6ת11 25 96 0163 */ (+ + :5600000 = ת סה ;0 6 תטס0)זס) /* .68ם1| את13ל 25 הַג)1זצ על */ / 00:50 6() צ6טסם [617:א10ץ */ ."תק" = ז3150ת0צדד 10 = 0006קססום /* 0) 385א 6טק)טס 06 מסטסן) 35 */ , (771003756)ת55016 = מ6חַת6ששךך . .0 3 */ = 110880616 יס שספט ₪6 סל 0% סנס */ ," :386 קטס? ]תק 716886" = 0350 10 = 0066תסתקם /י .6 61 :6066 */ , (87550ת557160)1116 = ם6ת06עדך 1 = 618ת1083) /* 3 ס0ת1 6מהת 5 ז6פג 196 7606 */ - תסָת6א. 160% /* )שקה 6/20304א ש60:50%6 32 */ /י .168טס */ > |,3:900107ת0(* 137 1905101(00180)6088 = 0066תספשק /י בזגסם]6א ]901 16ט0613 6תך */ .0( 5 10055 שת1 2056 80005) 1 15 ₪066 )שקה */ 0 - 100316 ;0 = 0016 /* 6תגת ₪567'8 6 00008668866 */ = [508חת16. 5 0ת46 א 039167 [י .8 "16110" 3 ב16ע */ :0" סד 86110 5318 05/2 \")80704% = של5זגמ6ודך /*.₪639806 הם1650151 06 6טוקשט0 */ 1 = 0068 קז , (ז111003250)ת55716 = מלשַת6ע/דד = 416ם1083? /י תס61גה1תז0) 01 05/2 6117סור */ 6 ; (00008 36801 /י ונטס ה₪31 06 06 בת */ ן ...1 תרשים 11. תכנית דוגמה - שימוש בשגרות 0סזט ו-כסמא תיאור של תכנית הדוגמה התכנית הפשוטה שבתרשים 11 אנה מנצלת את כל הגמישות שמאפשרות הפונקציות לתצוגה ולמקלדת. התכנית מכוונת להראות דרכים נוחות לביצוע קריאות ל-05/2. נעבור על התכנית שלב אחר שלב, נתאר מה היא עושה, ונסביר באיזה פונקציות של 05/2 היא משתמשת. לאחר ההערות בתחילת הקוב הכוללות את שם התכנית, אנו רואים את הפקודה '68 6 של הקדם-מעבד (66001109זק). משפטים אלה מנחים .את הקדם-מעבד לכלול הכרזות לספריית ה-821 ב-05/2 ולספריית 6 שנמצאות בה פונקציות סטנדרטיות לטיפול במחרוזות. שאר התכנית מוגדרת על-ידי פרוצדורה הנקראת "תנאות". בשפת 6 פרוצדורה (הליך) נקראת "פונקציה". בספר זה נשתמש במונת זה בצורה דומה, אם כי לא בהכרח זהה. בכל תכנית 6 חייבת להיות פונקציה הנקראת ת1אח, מכיון שהמשפט הראשון הניתן לביצוע ב-תואתת מוגדר כנקודת הכניסה הראשית לתכנית ‏ 6. הגוף של הפונקציה ₪81 נמצא בתוך סוגריים ימניים ושמאליים ()). גוף הפונקציה מתבסס על הכרזה של רשימה של משתנים, ועל סידרה של משפטים הידועים בתחביר של 63 כמשפט מורכב (+ת5+8%6106 6תטסקנתס6). כדי לעזור בקריאת התכנית, קיבצנו את כל ההכרזות על המשתנים. בקבוצה הראשונה של המשתנים רואים הכרזה על מספר שלם ללא סימן, הנקרא 6. שפת 6 מאפשרת לנו לאתחל את המשתנה הזה בהכרזה שלו, ואנו עשינו זאת על-ידי הצבת הערך 0 ב-070006ע?₪. הקבוצה הבאה של המשתנים משמשת לקריאה לפונקציה של 05/2 הנקראת ת[8ת005471א. תחילה אנו רואים מערך של תווים בן 32יבתים הנקרא 878₪1167ת6. אחר-כך אנו רואים משתנה הנקרא ת0קח061.0א, שהוא נתון מובנה מסוג ה%קת16ת1קת1ז650סא. המבנה הזקַת16ת1קַתוזו2065 מוגדר בקובף המוכלל "ת.60508115" המסופק יחד עם ערכת הכלים למתכנת ב-05/2. ההגדרה של מבנה זה מבוססת על ההגדרה של ה-471 ל-ח1קת14065+71 כפי שמפורט ב-06מ61670ת2 [108נתת7160 05/2, כרך 2. שני המשתנים הנוספים המשמשים את הפונקציה ם81ת3005%:1 הם מספרים שלמים ללא סימן (חיוביים). הגדרנו שלושה משתנים עבור הפונקציה צ'0100/017. הראשון, ‏ 56זת0עידד, הוא מחוון רחוק למחרוזת של תווים. המחוון מצביע בתחילה על שורה ריקה מתווים. ה-ץ וה-ת הם צירופים של תווים המאפשרים חילוף (650806) לתווי ה-תזט16% 08111886 וה-16606 6ת!1 בהתאמה. ת+קת16צי11 ו-616ת10118/י מוגדרים כמספר שלם וכמספר שלם ללא סימן, בהתאמה. לבסוף, שני המשתנים בפרמטרים הדרושים לפונקציית 0058816 מוגדרים כמספרים שלמים ללא סימן ומאופסים בעת האתחול. הפונקציות של 05/2 לפני שנמשיך, הבה נבחן ביתר פירוט שלוש פונקציות של 05/2 שהצגנו בתכנית המוצגת בתרשים 11. צ 0 צדזץצטס1 מעבירה לתצוגה מחרוזות של תווים. התצוגה מתחילה במקום הנוכחי של הסמן ואם התווים הגיעו עד סוף השורה, היא עוברת לשורה הבאה. הפונקציה מעלה את המסך שורה אחת למעלה ([50701), אם יש צורך בשורה חדשה בתחתית המסך. נוח מאוד להשתמש בפונקציה אם יש צורך להשתמש בפלט המבוסס על שורות. לפונקציה זו יש שלושה פרמטרים: ץ)פזגת 6 הוא מחוון רחוק למחרוזת שצריכה להכתב. 9 תזאַח6 הוא מספר שלם המציין את אורך המחרוזת בפלט. 6 המקשר לתצוגה אינו נמצא כרגע בשימוש במישק לתכנות התצוגה, אבל המתכנת חייב לספק מלה של אפסים לפרמטר זה. כל התוויס הנמצאים במחרוזת הפלט נשלחים לתצוגה פרט ל 6 ס6תגן, 6, 58 ותווים המפעילים מתייחסים כפקודות ופועלים לפיהן כנדרש. -700011 08771886, את הזמזם. לתווים אלה הזקתז 5 פונקציה זו קוראת מחרוזת תווים מהמקלדת. התנהגות הפונקציה מושפעת ממצב העבודה של המקלדת. תיאור מפורט של מצבי העבודה של המקלדת הוא מחוף להיקף של ספר זה. למרות זאת, ברצוננו לציין מספר מצבים: 880611 מול בינארי, ומצב 011/ת0 סת560. לפונקציה זו יש ארבעה פרמטרים: 6 הוא מצביע רחוק למאגר (1109טפ) של מחרוזת הקלט. חן הוא מצביע רחוק לטבלת האורכים (מבנה) עם שני איברים. האיבר הראשון בטבלה מועבר למשתמש בפונקציה זו ומכיל את האורך של מאגר הקלט. האיבר השני הוא האורך של הקלט המתקבל מהפונקציה םזשת085%71. ה הוא פרמטר בעל מספר משמעויות התלויות במצב העבודה של המקלדת. במצב 150611, פרמטר זה תמיד נקבע ל-0 כדי להצביע על כך שהפונקציה צריכה לחכות שהמשתמש ילחף על תזצ60ז. במצב בינארי, ערך "אפס" בפרמטר זה מצביע על כך שהפונקציה צריכה לחכות עד אשר מאגר הקלט מלא, ורק אז היא חוזרת. ערך "אחד" בפרמטר זה במצב בינארי משמעותו לחזור מיד, עם כמה שיותר תווים שיכולים להכנס למאגר הקלט. 6 מציין את ברירת המחדל של המקלדת, או את המקלדת הלוגית. *ישום *כול לעבוד עם מספר מקלדות לוגיות כחלק מהתמיכה של 05/2 בדפי קוד (28₪05 0066) (ראה פרק 8 בדיון על דפי קוד). בדוגמה שלנו בחרנו את מצב ברירת המחדל למקלדת על-ידי כך שקבענו ש-616ם300118 יהיה שווה לאפס. בדוגמה שלפנינו בחרנו להשתמש במצב ברירת המחדל למקלדת: 456011 עם תס 0ת0ם. יס פונקציה זו מודיעה למערכת ההפעלה שמופסקת הפעולה של 680ז1+, או תהליך. לפונקציה זו יש 2 פרמטרים: 6 מציין| אם להפסיק את פעולתו של 1:686+ זה בלבד (0 = 0%100006/), או להפסיק את פעולתם של כל ה-6805עתת+ בתהליך (1 = 0006ם40%10). 1000 606 הוא קוד הפסקת הפעולה המועבר לכל 21:680+ בתהליך האב שהנפיק את הפקודה +120500/81 (המתן שתהליך הבן :סיים את פעולתו) לתהליך זה. במקרה של תהליך בן עס 6865ע2+ רבים, רק קוד הפסקת הפעולה האחרון יוחזר ל-686-:ת+ הממתין עם 050081%. כאשר תהליך עומד להסתיים, מבצע ה-680זת+ האחרון בו את השגרות הנמצאות ברשימת ‏ 1)115%א2050. כאשר תהליך מסיים את פעולתו, משוחררים כל המשאבים, שנערך אחריהם מעקב של המערכת והם היו בבעלות התהליך. הפסקת פעולתו של תהליך חייבת להיות מצוינת תמיד על-ידי 1 = 00066ם80010, כי המערכת *כולה ליצור בצורה אוטומטית 16805+ בשמו של התהליך לצורך מספר פעילויות שונות. המשך התיאור של תכנית הדוגמה נתחיל לבצע את תכנית התצוגה והמדפסת בפעולה של ניקו*י המסך. אנו משתמשים ב-עי'61זַעט10 בתוך לולאה מטוג "07+", כדי להוציא פלט של 28 שורות ריקות למסך. מאחר ותכניות 6 רגישות לצורת האותיות (גדולות או קטנות באנגלית), כל פונקציות ה-05/2) נכתבו באותיות גדולות בלבד. אנו נמשיך להשתמש בצורה מעורבת בזמן הדיון על הפונקציות, כדי לשפר את הקריאות של התכנית. הביטוי "++ז660תטס6שסת" בלולאת ה-:10 פירושו הוא "השתמש בערך הנמצא ב-ז6+תטסי)שסת ולאחר מכן העלה אותו באחד". שים לב שאורך המחרוזת בפלט מתקבל על-ידי שימוש בפונקציית אורך מחרוזת סטנדרטית של שפת 6 (מ501160). הצעד הבא הוא להוציא מנחה (6קנמסעק) למשתמש כדי שיוכל להזין את שמו/ה. כהכנה לקריאה לפונקציה תזַקת1:+065%א, קבענו ערך תחילי לאיבר המכיל את גודל מאגר הקלט. רק לאחר מכן קראנו ל-ת1שת005%71א. שיסם לב שלא הגדרנו מחוון ל-1465ש0 שיועבר כפרמטר לפונקציה זו. במקום זאת, נתנו תפקיד לביטוי זה ברשימת הביטויים של הפונקציה מ1שת6005%71. ב-6, הערך של מזהה המערך הוא אקוויוולנטי למחוון של האיבר הראשון (אינדקס המערך שווה לאפס) במערך. מכיון שאנו מהדרים את הדוגמה כתבנית של תכנית קטנה, ברירת המחדל של המחוונים לנתונים היא ערך בן 16 סיביות של הכתובת היחסית בתוך הסגמנט. הפונקציה ת1שת3065?71 דורשת מחוון רחוק למאגר של מחרוזת הקלט. עשינו זאת בעזרת הביטוי "(* 187 זהַת0)". באופן דומה, המחוון לטבלת האורכים (מבנה) של מחרוזת הקלט מוכל בפרמטר השני. אפשר לקרוא כך את הביטוי בתכנית: "מחוון רחוק למבנה מסוג ת8%ת16ת1מ200501 הנמצא בכתובת 8%ת016סא". הפלט הסופי של התכנית הפשוטה הזו נבנה על-ידי הצבה של בית ריק במאגר הקלט בסוף המחרוזת שהמשתמש הכניס. בית ריק זה הופך את המחרוזת למחרוזת 850112 שניתן להעביר אותה לפונקציה המבצעת שרשור (50086). שם המשתמש משורשר אז עם הודעת| ה-6110ת, והמחרוזת הסופית מועברת לתצוגה בעזרת הפונקציה צץץשזשסש. השלב האחרון של התכנית הוא לקרוא ל-%א2052, כדי להודיע למערכת שהתכנית עומדת לסיים את פעולתה. שים לב, כי הערך התחילי של ה-40+1050006 הוא 1, כדי להודיע למערכת שתפסיק את הפעולה של כל 48 שהיא התחילה בשמו של התהליך. 11 בתכנית זו ניתן לראות כמה קל להריצ+ תכנית תחת 025/2). לאחר שהבנו את הדוגמה הזאת, נעבור לדוגמה שתנצל כמה מהמאפיינים החדשים של 05/2. בצוע רב-משימות - תהליך אחד עם שני 5סטאזזד כפי שראית בפרק 3, 05/2 מספקת אוסף גדול ומקיף של פונקציות המאפשרות ביצוע רב-משימות. נסתכל על תכנית פשוטה המתארת את השימוש בתהליך אחד עם שני 60:6865, המנצלים את מנגנוןו התקשורת בין תהליכים (700655ק?%6ת1 6 - 5ת168%10תט601), כדי לסנכרן את עצמם. אחד המאפיינים החשובים של ה-6865זת+ הוא, שהם קשורים בצורה הדוקה (160ק0ס6 ע%1ת18+). אנו מתכוונים בכך שלכל ה-6865ז1+ בתוך אותו תהליך יש אפשרות שווה לגשת למשאבים הנמצאים בבעלות התהליך. הזיכרון המוקצה לתהליך הינו אחד מהמשאבים המשותפים ל-6865ז%1. כדי לנצל אותו כראוי, אנו משתמשים באתת 341 כמנגנון ‏ 126 המסנכרן את ה-6865זת+. התכנית שלנו הינה דוגמה ליישום המשתמש ב-6806ז"ת+ אחד לביצוע פרוצדורה המקבלת נתונים מהמקלדת, וב-686תת+ אחר - כדי לעדכן את המסך. תרשים 12 מציג את הלוגיקה של התכנית הזו. שים לב שלא סיימנו במפורש את פעולתו של 10686 מס' 2, מכיון שקבענו שה-40%100006 בפונקציה 15א2050 *היה שווה ל-1. בכך מודיָעים למערכת לסיים את התהליך וגורמים לסיום כל ה-2768068+ השייכים לתהליך, ובתוכם - 6 מס' 2. תרשימים 13 ו-14 הם דוגמת התכנית עם 6805ת2+ רבים. 4 מס' 1 48 מס' 2 פרוצדורה ראשית פרוצדורת המקלדת קבע את האתת שיצביע מת* לחכות לתו * ביצוע אינסופי התחל את 686עת% מס' 2 ובצע את * המתן לקר*יאת תו פרוצדורת המקלדת * נקה את האתת קרא לפרוצדורת התצוגה סוף תהליך פרוצדורת התצוגת * בצע עד אשר המשתמש יכניס את התו "4" * המתן עד אשר האתת יהיה נקי ואז קבע אותו מחדש * הצג הודעה שמקש נלח% * הזור לפרוצדורה הראשית תרשים 12. הלוגיקה של התכנית בעלת שני 68065זת1 12 ]ו1)41+4404+ווווווווו,וו)))וווווווווו,ווו,וו,וווווווווןווו\)וו)ו)ו|))))ווווווווווווווווווווווווווווווווווווו] /י יי לו 5 2 16א 00685ת? | */ [ו0404+))):),ווו+,ו)ווווו,))))וווווו))).וו\וןווווווו)ווווווווג,)ו)וווווווו\ווווווווווווווו\וגוווווווו] /יץזגזס11 אתג1 סנתגּהץ0 21( 05/2 */ <ת. 60563[1> 06ט[סתנ% /י 18[ 616 תטז 1/0 6ז03ה503 0 */ לז.55010> 66ט[סתנ% ***+*+**+*+*++++++++++++++וצוווווווי וי צסְפָבָנזב) [3ז6ה06 */ /* 05/2 ת0:] תזט6%] 6006 זסתשם */ = 877010006 חפט /י 5 תס1לסתט] */ /]וו,,וו4\:+)וו))וווווו)וווו)ווווו\ווווו.ו)ו\ווווו)ווווו)וווווווווו|ווווווו 5 ת610סתט? 6 ו /* | 006ק3ת56 גל ז0] 6סָז5)0 */ 6 ו 10 10004פחט /י 6 אגא 0ם ז66תנס? */ יי = 6[6ת83ת *56‏ ז3] 084[ 64ת16פתמ /* 860%( 166ת1]תג זס] 56% */ :1 = 1150000 10 64חף1פתט ]ווו4ו04+,))1ו))),))ו))ו\)\\ווווו))וווו\)ווווווווווו\וווו,וו))וו)ו)ו'ווווו ופד | הזג י/ /י תג 60ת6611 6זטלסטץ5% ץש */ ב וני כ 83 5670060 /י .00503115 */ /י | :003 זס] 8316 ]1 610366ת1 */ ו ספת /י 8 ]0 906 6501006 */ 16 תע /י 16 6 60 ז60ת01ץ */ 6 = ז060ת%675%1005470701* ז3) 7670862 507005 ]ג4ו.94))))))))ו)43ווו))ו+))ו)ו++.),)))ו)ווווו\)וווו\)))ו)ו)ו.)))))ווווווו\ווווןוווווו ב | %סס ו /* 00685זק ת1 %0:6868 [[3 16אם */ ; [-1000006 0% ןפת /*- 20808316 ז0] 53064 050[6ת */ :0 טפט ]|וו4ו4)).)).)),),4+4))))וווווווווווו.|ו\וו.))וווווו,))ו))ווו))\וווו,וו)ווו|ווווווווו\\וווו)ווווווווווו] 7 08 חס1לסתנק */ ו בצ 700006 0 ץז 016 תרשים 13. 176868+ רבים (הלק 1) - הכרזות הפונקציות של 05/2 אנו מניחים בנקודה זו שאין צורך לחזור על הכרזות המשתנים בשאר תכניות הדוגמה, ולכן ניגש מיד להגדרות של הפונקציות של 05/2. בדוגמת התכנית שבתרשימים 12 עד 14 יש חמש פונקציות חדשות של 05/2. + פונקציה זו קובעת אתת ויש לה פרמטר אחד. 86 הווא ערך בגודל מלה כפולה שהמשמעות שלו תלויה בסוג האתת. לגבי אתת מערכת, המקשר מוחזר הן בבקשת ([2050768%656 והן בבקשת ב1ז50ת6ק050כ. לגבי אתת ה-:1/1גא, המקשר הוא הכתובת של האתת בזיכרון (מחוון רחוק לאתת). הפונקציה קובעת את האתת בלי להתייחס למצבו הקודם. בתכנית הדוגמה השתמשנו במאפיין זה כדי לאתחל את האתת. סכ 055610697 מנקה את האתת ומעורר כל 17686 שהמתין לו. ישנו רק פרמטר אחד לפונקציה זו. 86 ((כמו בפונקציה 0556[56%כ) 13 /י 6 ה1גפ ]0 50475 */ ()ת1גח / [ווא9ו4ו40),..,ו+)ווו\)וווו)וווווווגוווווווווו)!))וווווווו)ו)ווווןוווו|:וווגווג בוו | |צ ו י/ /י 0 636 עו "9 / הייו דצו ןפת /י 0% 604ז50 עסו( */ "יי | ו יד ]וו))),0ו)וא))וווווו)ו)ווו)ווווווווווווווווווווווווווווווו\וווו)ווווווווווו סק 6 0 %ג "/ /* ,860 38 00:6ק5683 116121126 */ ; (05584521056083018 = 070006 /* 90376ץ6א ז0] 2 630ע01 076866 */ 0 = 800070066 /י ו */ ל ז3] בַסַתסָנפתט) : 1199812 6076065308 + 7 603 66תף1פתט) /י 6 8603048 0180137 */ "ח, 600016סזק 76/2038 508 08] (2 5(684) 634עת% 56287366 8 "ם, 10066076 ל 6 6ת6000א6 18 (1 6100636 636עת6 18181ת1" .1 60 6 655זק ,/6א 10ז6תטתגתק31 /ת3 688ע?" /' 6שט66ססשק ]015013 606 0311 */ "וי /י , ץ 6 זר וצ */ 9 /, 8 |ת01מ6 06 ) ו 1 :(".%1-6368 811 56181866 כל 566 3601000066 הגע 2058816 הַת155%1")]>חנוק /* הסה1מז6: ]0 0 טו "ו 6 0 100660 .6 ת31ם 6 ]0 4תם */ / ]-]-‏ //- /י .6 0150137 */ (37720000076)0 1501 9 0% תו 6 מס 9100% */ 0 = 80000006 86 030508 פפסזק צ6א 3 */ : 118600 / 86 60 00000:6פ "1 */ | ;(0008 67567064:6.0036ה, "ח.)1נ סס יְּ - ו 5 6 סא") 7 0 :1 = 0066 6.008ז שה ו צנ :0 /י 8 ל בת */ 1 ]וגו))אווווווווו .וו |.).)ו))ו)))))))).)ו)+ווווווווווו)ווו)וווווווווו.וווווו)ווווווווווווווווווווווווווווווווו] /* 6 סט */ ()126ו903-020060ץ6ה 1375 ו = ַת%311 100%8פ קסס1 166ם1)ם] */ ]0 מס 34 ז300ז0 3 סס] */ א יו 0 = 877070006 > 816 ;0 = 83016 4 ]0151 06 פַהַתמָנ8 */ ; (568880616 )205580018 = 87000066 ה 8 / / 6 ג 0 4 */ 1 ]וו+.)9וו+ווו+ 0% 0 תרשים 14. 176865+ רבים (חלק 2) - פרוצדורת ה-תנאות הפונקציה מנקה את האתת בלי להתייחס למצבו הקודם. ניתן להשתמש בה עם הפונקציות 205561%6011656, 05560560/816כ2, 55608165סס ו-+5607/81א0510ע כדי לתמוך הן בשיתוף משאבים והן באיתות. ו ו פונקציה זו משיגה את הבעלות על האתת. הכוונה בכך היא, שהפונקציה משנה בהצלחה את מצב האתת מלא-פעיל לפעיל. בדוגמת התכנית שלנו, השתמשנו ב-120556116011050 עם אתת לא-בלעדי, כדי לאותת על אירועים. אם האתת פעיל בזמן שפונקציה זו נכנסת אליו, ה-686זת+ :עבור למצב המתנה עד אשר האתת יתנקה. ה-2?686+ המבקש *כול לציין פסק זמן שלאחריו *ופסק מצב ההמתנה וה-17686+ *וחזר למשתמש בפונקציה זו. לפונקציה זו יש שני פרמטרים. 86 ((כמו בפונקציה 20556564) 14 + הוא ערך בגודל של מלה כפולה המצביע על מספר אלפיות השניה שה-076806+ :חכה לאתת. המשתמש בפונקציה זו *כול לוזורות על פסק זמן שיימשך עד אין סוף על-ידי הצבה של (1-) בפרמטר. אפשר להשתמש בפונקציה זו עם אתתי מערכת, כדי להסדיר שימוש סידרת: במשאב, אשר במסגרתו ניתן להגדיר אתת מערכת עם בעלות בלעדית. זאת אומרת, שברגע ש-680עת+ מסוים קבע את בעלותו על האתת, 6806זת+ אחר לא יוכל לנקות, או לשנות את המצב שלו. מערכת ההפעלה עורכת מעקב אחר מספר הפעמים שנעשה שימוש ב-2055686011650. האתת ישתחרר רק לאחר שהפונקציה סע תבוצע מספר פעמים זהה. דיון מפורט על השימוש באתתים בלעדיים מופיע בחלק על האתתים בפרק 3. ב פונקציה זו *וצרת 686זת+ נפרד בתוך התהליך הנוכחי. יש לה שלושה פרמטרים. 58 ְ הוא מחוון רחוק לכתובת שתקבל את השליטה במסגרת ה-686ע1 החדש. 48 הווא מחוון רחוק לכתובת של המלה שבה 686:ת050768%61 יציב את המספר המזהה של ה-1:686+ החדש. אפשר להשתמש במספר זה כדי לשלוט על ה-6806ז1+ עם פונקציות אחרות (כמו הפונקציה 0717680מ0506ו55סכ, או 0586503611680). 9% הווא מחוון רחוק לכתובת שבה נמצא סוף המחסנית של ה-11686+ החדש. המתכנת אחראי להקצות שטח למחסנית לכל %16806 חדש של התהליך. הגודל המינימלי של המחסנית תלוי בפונקציות של 05/2 שה-686ע1 יבצע, אך אנו מציעים שלא יהיה קטן מ-2%8. המערכת *וצרת *ישות חדשה (686תת+) הניתנת לביצוע, ועורכת קריאה רחוקה לתכנית הנמצאת בכתובת המצוינת בפרמטר 84007655אק. כל המשאבים של התהליך משותפים בו-זמנית לשימוש 686זת+ זה ולכל שאר ה-6865זת+ בתהליך. הזת הפונקציה 10066871 מחזירה קבוצה של נתונים כאשר היא מקבלת תו מהמקלדת. ההתייחסות לקבוצת (תונים זו היא כאל רשומה של נתוני תו. לפונקציה זו יש שלושה פרמטרים. 8 הוא מחוון רחוק למאגר, שבו *וצבו נתוני התו. קבוצת הנתונים המוחזרת עם כל קבלת תו היא גדולה, כפי שניתן לראות ברשימת השדות הבאה: קוד 85611 של .התו. קוד הסריקה (0066 ת508) מהמקלדת של המקש שהוקש. מידע על המצב של התו. שדה שמור לצורך מידע על המצב של "התמיכה בשפות לאומיות". שדה המתאר את מצב ה-11%ת5 של כל מקשי ה-1%וַת5. חותמת הזמן של ההקשה (86א605020א 6+ 01 קם5+8 6ם1). 105 יה )ו מציין אם לחכות לתו (0 = 100816), או לחזור מיד אם לא ניתן לקבל תו (1 = 100816). 6 מציין אם משתמשים בברירת המחדל של המקלדת, או במקלדת לוגית. רשומת נתוני תו מתקבלת בכל פעם שמתקבל תו, או בכל פעם שמשתנה מצב ההיסט במקלדת. המידע על ההקשה ניתן לשעוי על-ידי תכנית הפיקוח של המקלדת לפני שהנתונים מגיעים ליישום. תכנית דוגמה בעלת פ5כגמחצד רבים בתכנית זו אנו רואים כמה קל ליצור 16806+ עצמאי ביישום של 05/2. אנו משתמשים באתת 321 כדי לסנכרן את הפעולה של שני ה-680עת+, ומשום כך צריך היה להפעיל את האתת לפני שהתחלנו את ה-686ז2? השני. רק אחר-כך קראנו לפונקציה 050168%6112086. שים לב שלמרות שזו תכנית קטנה בשפת 6 אנו צריכים לציין רק את המזהה עבור 6:ַט8/80810270000א. זאת, מאחר שהכרזנו עליה כפרוצדורה רחוקה (40080816220060076 18 6נסט). לאחר החזרה מ-2050168%6121680, אנו משתמשים בפונקציית הפלט הסטנדרטית בשפת ‏ 0, "שתנזס", ‏ כדי להציג הודעה על הסטטוס. לאחר מכן קראנו ל-210000016ע1215018, אשר עוברת מיד למצב המתנה מאחר והיא מבקשת להשתמש באתת שהופעל קודם. לאחר שהאתת נוקה, מדפיסה הפונקציה 69תוזק הודעה שמקש נלח. תנאי מסוג "6![ותש" הופעל, כדי לבחון אם התו שנלח היה "1" (ערך הקסדצימלי '71'). אם התו אנו 4, הפרוצדורה חוזרת על עצמה ומוציאה שוב 05961860165%כ2. בכל המקרים האחרים אנו חוזרים לפרוצדורה הראשית, מציגים הודעת סיום, ומפסיקים את פעולתו של התהליך. פרוצדורת המקלדת היא פונקציה פשוטה מאוד המכילה לולאה אין-סופית מסוג "ז0+" עם שתי קריאות לפונקציות של 025/2). הקריאה הראשונה היא לפונקציה םזז8ת006א עם הפרמטר 100/816, הקובע שיש להמתין לתו שייכנס. כאשר התו מגיע, ם[87ת14000 מסתיימת ומתבצעת הפונקציה ז0108ת205596, כדי לאותת לפרוצדורת התצוגה (76זט010000ש15014כ). ביצוץ רב-משימות - שני תהליכים בעל' 5קהחאזזוד רבים כפי שרואים מהדוגמה הקודמת, אפשר להשתמש במספר 6805תת+ בו-זמנית בתוך יישום אחד. ניתן להשתמש במספר 6865זת+ כדי לפשט את מבנה התכנית, על- ידי חלוקה של פונקציות היישום לפרוצדורות המתבצעות בצורה נפרדת, חשוב לזכור, ש-6805עת+ השייכים לאותו תהליך, קשורים בצורה הדוקה. מאפיין זה יכול לפשט את השימוש ב-6865זת+ מחד, אך *כול לפגוע בתכנון המודולרי של התכנית מאידך. כל ה-6805?ת+ בתהליך *כולים להשתמש במשאבי התהליך בצורה שווה, ולכן כל תקלה ב-686זת+ :יכולה להרוס נתונים, או להפריע לביצוע של שאסזו+ אחר באותו תהליך. עקרון בסיסי של תכנון מבני הוא צמצום של היקף הנתונים ושל הבעלות על משאבים העומדים לרשות פונקציות עצמאיות. המטרה של עקרון זה היא להפחית את המורכבות של יישום גדול על-ידי פירוקו למערכת של מודולים עצמאיים 106 קטנים *ותר, וכך לקבל יישום קל *ותר לפיתוח ולתחזוקה. אחת הטכניקות שמתכנת היישומים ב-05/2 יכול להשתמש בה כדי לצמצם את היקף הנתונים והבעלות על משאב. היא השימוש בתהליכים של 05/2. ניקה את הדוגמה הקודמת כבסיס לדוגמה הזו, ונשפר את היישום ההיפוטת:י שהיא מייצגת. נניח שאנו רוצים להפעיל בסיס נתונים שיכיל נתונים על התרחשות של אירועים שונים. בדוגמה הקודמת, האירוע היחיד שהיינו צריכים לפקח עליו היה לחיצת המקש על-:די המשתמש. נניח, שאירוע זה הוא רק אחד ממספר סוגים של אירועים שאנו רוצים לרשום בבסיס הנתונים. יתר על כן, גם נניח ששמירה על השלמות של בסיס הנתונים הזה חיונית לעסק שלנו. הגדרנו כרגע *ישום שניתן לחלק אותו בצורה לוגית לשני מודולים עצמאיים. מודול אחד לפיקוח האירועים (זכור, ביישום אמיתי יהיו בוודאי *ותר מאשר מודול אחד לפיקוח האירועים) ומודול נפרד אחר - לרישום האירוע בבסיס הנתונים. היישום שלנו מיישם את גישת המודולים בשני תהליכים ומשתמש במנגנון לתקשורת בין תהליכים 126 כדי לקשר ביניהם. כאן, מנגנון ‏ 106 מדגים העברת נתונים במסרים (146588₪098) באמצעות מנגנון הצינור. על-ידי הפרדת הפיקוח על האירועים מהרישום שלהם, הפכנו את היישום לפשוט יותר, כי הבעיה מוצגת עתה כשתי בעיות קטנות ופשוטות יותר (גישת הפרד ומשול). הביצוע של *ישום זה בסביבה רבת משימות של 05/2 הוא יתרון, כי היישומים *כולים להתבצע במקביל. השמירה על שלמות הנתונים בבסיס הנתונים משתפרת, כי התהליך המפקח על האירועים אינו יכול לגשת לנתונים ולמשאבים (קבצים) השייכים לתהליך הרישום בבסיס הנתונים. הפעולה ההדדית בין שני התהליכים מוגבלת למנגנון ‏ 126 המוגדר היטב - הצעור. הדבר מדגים כיצד 05/2 מפשטת את היישום של עקרונות התכנות המובנה. ניתן לתכנן יישומים בצורה מובנית, עם קישור מינימלי בין מודולים, ‏ על-ידי שימוש במישק 156 המוגדר היטב. ולבסוף, הדוגמה שלנו, המשתמשת בתהליכים נפרדים, מדגימה שאם 680ז0? השייך לתהליך המפקח על האירועים מפסיק את פעולתו בצורה לא נורמלית, אין אנו צריכים לחשוש מכך שתהליך הרישום בבסיס הנתונים יפסיק גם הוא את פעולתו בצורה לא נורמלית. ישנה נקודה נוספת לגבי הדוגמה ההיפוטתית שלנו. כדי לפשט את הדוגמה ולתת לה :ותר מאפיינים הנראים לעין, ערכנו הדמייה של כתיבת רשומות לקוב%> של בסיס הנתונים, על-ידי כתיבתן לחלון במסך התצוגה. הלוגיקה של תכנית הדוגמה הזו מוצגת בתרשים 15. תרשימים 16 עד 25 מכילים את תכניות המקור של הדוגמה העוסקת ביישום עם מספר תהליכים. הפונקציות של 05/2 בדוגמה המוצגת בתרשימים 15 עד 25 השתמשנו בשמונה פונקציות חדשות של 2 ו פונקציה זו מגוללת כלפי מעלה שטח נתון במאגר התצוגה. לפונקציה זו יש שבעה פרמטרים. 107 תהליך 1 תהליך 2 48 מס' 1 8 מס' 1 פרוצדורה ראשית פרוצדורה ראשית אתחל את חלונות התצוגה לתהליך זה * אתחל את החלון התצוגה לתהליך זה הגדר את הצינור להעברת הנתונים * בצע עד שתתקבל הודעה עם התו 6%" התחל תהליך 2 (משססס6אמפסכ) * קרא הודעה מהצינור קבע והפעל את האתת המצביע שיש לחכות * שרשר הודעה עם תאריך וזמן לתו *" כתוב לבסיס הנתונים (הצג) הגדר 65686 2 כדי שיבצע את * סיים את התהליך פרוצדורת המקלדת קרא לפרוצדורת התצוגה סיים את התהליך פרוצדורת התצוגה 86 מס' 2 * בצע עד אשר המשתמש מכניס את התו "4" * המתן עד אשר האתת משתחרר, ואז קבע | פרוצדורת תאריך וזמן אותו מחדש * קרא את התאריך והזמן * קבע מאפיין חדש לתו זה * בנה מחרוזות של תאריך וזמן * הצג את התו/מאפיין * הצג את מחרוזות התאריך והזמן * כתוב הודעה אל הצינור * השהה ביצוע למשך שניה אחת * הזור לפרוצדורה הראשית 4 מס' 2 פרוצדורת המקלדת * בצע עד אינסוף * המתן לקבלת תו * הצג את התו וסמן את המאפיין שלו * נקה את האתת תרשים 15. הלוגיקה של תכנית הדוגמה - שני תהליכים בעלי 6805תת) רבים שסתקס ערך בגודל מלה המכיל את השורה העליונה בשטח שיש לגולל. 1 ערך בגודל מלה המכיל את הטור השמאלי ביותר בשטח שיש לגולל. שת ערך בגודל מלה המכיל את השורה התחתונה בשטח שיש לגולל. 1 ערך בגודל מלה המכיל את הטור הימני ביותר בשטח שיש לגולל. 68 ערך בגודל מלה המכיל את מספר השורות שיש לגולל. הוא מצביע על מספר השורות שיוכנסו בתחתית השטח שנגלל. 1 הוא מצביע רחוק לכתובת של מבנה המכיל את התו ואת המאפיין שלו (8%0710066), שבהם יש להשתמש בשטח שגולל. 86 נשמר לשימוש עתידי וחייב להכיל מלה של אפסים. |18 [ו0444ו04),010),וווו)))ווג)וווווווווווווווו)וווו)וווו))\)|)וווו)ווווו\וו\וו)1)וווווווווווווווווווווווווווו] /י 1 058 - 1076368 8 תזןצ 770068808 8 / ]וווואווו,ו)ו)ו),ווווווו,ווגוווגווווווווגווווווווווווווווונווג)וווווו':וווווווווווגוווווו)ווו\ווו|וב וופווווו] /י זז אַת11 16מ3חץ4 21ה 05/2 */ <ז. [005631> 1868סת%1 /י 115 5186 תטז 1/0 03:0ת503 6 */ <ת.55010> 46ט[0ח%1 1 ץזגקסן1 וָת1ז50 6 */ ?.ַת1ז56> 66ט01ת%1 ]יוו)וו))))ג)וווווו)ו\וווווווו|ו\ווווווווו\וווגוווווווווווווווווו\וגווווווווו,ו|וגוו 6% [6:3ת06 */ /י 09/2 08ז] תזט60ץ 0006 שסקזק */ = 172070066 פע , 5 חסגסתט] */ /ו))\וו)גוו1)\וו;.|ו1ווווגו),)גוווו||ווווווגוווו\\וווווווגווווווווווווווו חן חסנ66תטץ 06 י/ /* 56830006 024 ז0] 906ז5:0 */ ו וַת10 64תף1פתט /י קת גל ס; ז66ת1ס? */ = 0[6ה13ה56* :3] הס[ בשהף1פתט /י 0% 106ה1]םן ז0] 566 */ : - 1156046 104 64הף1פתט [וו4ו41114,ו)))+\).,)),וורו\4ווווו,),\ווווווווווווווווו)וווווווווווווווווווווווווו 8 תן 63 % */ /"י חן 6ה06)1 6זטלסטז55 767 */ ב כ 3 560050 /י .00803118 */ /י 6 67 60 ז6פה01? */ "= %67567005₪76201006* 837] 7670353 06מז86 ]|גו)וווו,)ווו+ווווו+וגוווווגגוגצווווווווווווווווווווווגו))גוווו\וווווווווווווווווור 8 1050001100 */ /י חס 4תגת 1666 ס6קקט */ יי ןפת : בי בת /*י שסחזסס 4תגת 1008? ת00600 */ ;0 ןפת :1 | /* [[500 0] פשת11 01 צססתט */ מ ת /י 6 0 :60378000 111? */ :0200 = [11[003:02? חָגּתס /* 5 ]0 :סט 6507964 */ % = 10830016 תו /* 111 זפת)סת */ :0 - [111003:12 6 זג 4+ ספת 4תה 65קתסתק 6א0: 0190137 0ם ₪804 - 165מ18קג? 56:065:במ00תאסנל */ [" > 100תט 06 60 ד ₪ 0 זג זג /* חָת[ז50 :8056ז3ת6 00 תִתַהת6] */ :10 שתנפתט /י פס - ה1610פסק שָת568:61 */ :אס ופט /% םעש[00 - תס1)נפסק הֶתנז563 */ :תפ 4פת /י 8 דגס */ :די ]03 ]|יאווווווווצוו,:))ווו)ווווו)+וו,)ו)))וווווווווווו)ווווווווווווו\)\\גוגו)ווגווווווווו 8 0% */ /* 6658סזק ת1 6368זת% [31 סגאט */ ; [-100086 05 4ףפתו /*י 0050815 ז0] 58060 68415ק */ 0 חפט תרשים 16. תהליכים רבים: תהליך 1 (חלק 1) - הכרזות מספרי השורה והטור מבוססים על אפס (2670-08566). בנוסף לגלילה (50:01), פונקציה זו *כולה לשמש מנגנון | מהיר ונוח למחיקת המסך. 100/08 ו-+875+7/1ת:0+ק10ע פונקציות אלו כותבות מחרוזת תווים למסך. עם 875%%ת0100/:60, התווים במחרוזת | מקבלים | את מאפיני התצוגה של התוו"ים שהם מחליפים. ל-815%14605ת100/10 יש פרמטר נוסף, המאפשר למתכנת לציין מאפיין תצוגה יחיד שישמש להצגת התו במסך. לפונקציות אלו יש חמישה ושישה פרמטרים, בהתאמה. ע6815% הוא מחוון רחוק למחרוזת תווים שצריכה להכתב למסך. תַזאַת6] הוא ערך בגודל מלה, המכיל את האורך בבתים של מחרוזת התווים. 1-09 ]וווווווווו))),)ו))),)))))))))))|ווווו\וווווווווווווווווווווווווווו)וו)ו 06/10151008 ז603:3006 טסבה!ט ז015018 *( /* 0: 0866 פחַה1ז50 ]0 להזז3 הג */ /* [13ק018 1 630זהך 506 6ח11>טס */ /* צססת1א */ טְ - [60%)12ת107630101* ז3] 003 ג :3 + ד + 1 1 1 ב /* 0] 60פט פסַת1ז55 ]0 זזה הג */ ."ך-") = [00%13ת107630281* ז3] :003 /* [3[ק2/615 690זת1 06: 6ת611טס */ ב /* צסנהןצ */ "0" /י ק00[ "זס]" ת! 561 130168ז%3 */ = ז6)תטס0שס ה /*י פסת[ז50 ]0 378:ז3 )טק)טס ס% */ : = תחתש [אסנתגת תג = ה0062106000ה1א 1 ]ווווווווו)00ו4))וו)אוו)))וווו)וווווו)וווו/)או))ווו)/ווו)וווווווווווווווווווווווווווווה נה ?5 יו /< 6>תגת 00[60% */ 7 3 /* ז6]])טל ָת1ז51 =תסתטףָז */ )הסט זה 7 /* 8%7005 6660160006 ת5046076סק */ 8 8 867005 /י [ַןז8% 6תגת ת3זףסז? */ ;"002.6%6זק" = | ]3386 סל ו /* ז66ה!סק ז0]]של 6תבת 00[60% */ :003 = 561ת701)טפסתג ל 0* ז] 0 /* ףַךַחַח6| ז6]]של 6תגת 00[60% */ 1 - ה0אַת016ת3 ( 0 ופט /" 2 6 */ ; = 06071305 וט /י סק 80:10 שתסתטטָז */ :סז = ז66ה01ק0זג* 08 /י ז6)תנסת ו ]תסתתסזגצתק */ :0 0 = ז00ה01?צחת* 03 / םה סק 50:0060:6 6086 תזטל6ק */ 00 = 00005(60:058תז9660* ז3] 8681[500005 006ש56 /* ז)ק 986ה1[6] 66א6 60 תהזססז? */ וז = :66ת01?תף?* זז [00044084ו0)0)00000)9))ו)9ו)וווווווווווווווווווו/ואןווווו)וווווווווווווווווואווווה בי | יריו ו /י 6שתזט6%] - 6[6תגת 638ז 6ק[? */ ;06 ופט /* 60תז000ז - 4[6תגת 166זט 6ק1? */ מ | /י 6 16 6008606 */ דנ פתט [וווווווווווו))ווווווווווו/ו)וו)ווווווו)וווווווו|)ו)וווו))וו))וווווווו)ווווווווווווווווה 5-ל זו ּ/ /+ |;אה6[ ז6]]של ו זו י] - 00006ז90]]6 ןפת /" 600 - ה1606;א 168ץ8 */ 0 )ופט ווווווווווואווווווווווהווווווווופאואופופויי9יא, הְסןה[טקנהגת הַתגז8% [3זסהסף ז0] 564ט - 180[68זהץ הַת1ז)5 */ :5 %תן :0 0 % - או40 הג ג זג :100 ז650 [6תגח* 0 [וווואוו))ווווווווווואווווג)וו|או)וווווווווווווווווו)ווווווווווווון)וווווווווווווו\וווווווווווווווווווווווו] /* 0003108 תס61סתטץ */ 0 וצ : (00000784 0307 16 זג 9010 תרשים 17. תהליכים רבים: תהליך 1 (חלק 2) - הכרזות שסאת הוא ערך בגודל מלה, המכיל את מספר השורה (2670-08560) שבה יכתב התו הראשון במחרוזת. תומט![60 ערך בגודל מלה, המכיל את מספר הטור (מבוטס-אפס) שבו *כתב התו הראשון במחרוזת. 6 ((רק ב-815%4:8%6ת0100/:00) הוא מחוון רחוק למאפיין התצוגה, שיש להשתמש בו עם כל תו במחרוזת. 86 שמור לשימוש' עתידי, וחייב להכיל מלה של אפסים. 120 /י 6 ה31 )0 50375 */ ו ]ו.)ו,וווווווו\)ו,)וו)ואוו)\ו)ווווו|ו\וון)ון)וווו\וווגוווגוו|וו\וגוווגווןו חן כו .1 /י 9 63ז) צשן[ */ היו[ ו חפט /* 590% 636זת אסון */ ו זג 61ח10פחט []ווו,וא))א)):וווווו))וג+)|ו)\וג)))וגגו))|)וווגג)וגווגווו/|\ווווווןוון, פגפךָסזן 6 זי 6 */ /י 80066 606 01888 */ ו - 00008 00 / ו .--0601ַתַסנת חפט .1-=68ח1,]תט! .11[03ק(* 87 :003) = 016ת1083? /" 01513 606 71616 */ "ח241510 51300370 (07 05/20" 0 = 0086 סוט . (ז003750)ח50?16 = ת8%ת1006? .7 > תפט001 - 41083018 /* 9 מגה ם3זהסזק 106 66ט1סה1 */ ,"6[קפגאט 8 16" = 0 = 0066 זז . . (ז078750)ה8%516 = ת%התט0ס%1 5 - 0 = חתט[00 : - 0[6ת%1088 /* מגזהסזק 16א6 50 צסון 15013 */ "ו 0 07658" = 10005 )= 0068תסזום , (97901ת0)ח16ז86 = ת0%ת%1006 4 - שסף = תפצ[00 = 616ה1083) /* 06פט ה50766 ]0 3:68 [6ל08 */ "700855 = 105 זל /י 1 00088 זס] */ , (ז003150)ה50716 - 6 הפו .5 - 0% ,6 = תפט[00 "0" = 6 ג של = 1088616 /י אסנהנצ 1 634שתד 15018 */ (++0 000 > תס :0 )0 [ 07 ות 0 10 = 00066 סז , (( 30/0067 |60%ת1 (7636ת1)ת5%816 = 6תסם סג ,0 0900 + 7 - שסת 5 = תפצ[00 ,"034" = 606פ1ז365 - 616ת%1088 /י 2 690זחד 18013 */ (++6:חנוס0אסת :160200 > 0 :0 = 6 תט000ת)זס] ( 07 תה | 632100 תד ד סקאס - 070006 , ( 0 0 | 60 ת גא [680ת1) ה6 861 = ו ,תטססת + 20 - צסת - תאפט[00 ,"034" - 15466ז306 > 016ת410898 /* 6 18166 ז50זטס 6סג[ק */ .1 = 10507000705008ל = 010066זת /* 10% 2 696?הך */ ,0 = תתט[00 1 - 616ח%1083 תרשים 18. תהליכים רבים: תהליך 1 (חלק 3) - אתחול ותצוגה אם המחרוזת ארוכה *ותר מאשר השורה הנוכחית, השארית של המחרוזת עוברת. לשורה הבאה עד אשר מגיעים לסוף המסך. ברגע שהפעולה מגיעה לסוף המסך הפונקציה מסיימת. 5 5מנט קובעת את המיקום של הסמן. לפונקציה זו יש שלושה פרמטרים. 11 /י [!1צ 6036 6ק1ק 506 6306ז0 *] 6[ זב תת 008 = 0006סזזם /* 2 00088:? 6 */ ,6 * ז3] 64ה0810) - 71265126 /ית3ז00זק 00688זק 60110 106 לטל */ (++א1060חה1 :56 :(567ת01?ת0?)ת₪5:16 -> א66ת61ת5611 ;0 - 06%מ[90:100)ז10 1 הסתטףְז3 1:5%] 16 ת1 תבה */ : [א66ַת1חַת1 :55| 6 39%3זח0ז? = [א06ת1[ת5671] חַת1 :5 חסתטנ א :80 */ :55-16 = א66ת011זה 0 3 50 016ה3ת 7630 606 5ז6עת00 / ; (83018, סָז6165%ח13 , 016ת1503)763683 = ז56ח1ַסקַחַת1ז1165ח8 תג זפ 4 (++660ה1ףת1ז55 ; (ז6לת01לחַת1ז0[655ת683ה16ז86 => א06ת01ת96:1 :0 7 8 זסן /* 6 הָה[:56 0[6ח3 690ז 6אגון */ 5071166 1ה1 88016567 = [אסַת1ַמָת1ז5% + א06ה1-011ג| הַת1ז5%)תסתנוסת א /* הַה1ז50 %ת6חטףז3 0ת5600 */ / /י* 2 7100088 00 */ 30000 2058070000 = 0066ת1:0ם ,החפ ו ל שח רצ ; (60ח1סקַחסָ? /* .56% 35 6זסק3ת₪6 15131126ה[ */ ; (016ח20558%58105683 = 1070006ז1 /* %6/50316 ז0] 2 630זת5 0:8866 */ 7006 209088 = 00066ז ות /י 6 */ ות * ז3] בסתף1פתט) ([98)א2686%10:6305%30* :3] :673 64ת16פתט) /י 0060006זק 6 [0 */ ; (915187006000104 /* ד 1 */ ,4 > 10587000705080%8? = 0008ת0זז /* 6]א6 061016 ז0פזטס תש טס */ - תזט (10880618 0 8 %ת01ח6 %06 /15013ת 0 :(".6305ז% 311 366ח1תז16 50 56% 061000066 תפןש 0058815 חָה15501")]תנזת .6 ,1 - 050011080%1000066 /י הס!6גת1תז%6 01 08/2 01/7 */ = 68010006 / .6 חת31ח 0 01 תק */ ) /ווווואווגואו)וו)ו)אוווווןואוואווו)ווואווווווו,))))וווווווווווו)וווווווווווווווווווווווו/ווווווווווווווו] תרשים 19. תהליכים רבים: תהליך 1 (חלק 4) - שאר הפונקציות בפרוצדורה תנַ118 שסא הוא ערך בגודל מלה, המכיל מספר מבוסס-אפס של השורה שבה יש להציב את הסמן. תוזט601 הוא ערך בגודל מלה, המכיל מספר מבוסס-אפס של הטור שבו יש להציב את הסמן. 86 שמור לשימוש עתידי נחייב להכיל מלה של אפסים. 9-6 הפונקציה *וצרת צינור לצורך תקשורת בין תהליכים. לפונקציה זו שלושה פרמטרים. 86 ההוא מחוון רחוק לכתובת של מלה, שאליה מוחזר מקשר הקריאה לצינור. מקשר זה משמש לפונקציות אחרות כדי לקרוא נתונים מהצינור. 86 הוא מחוון רחוק לכתובת של מלה, שאליה מוחזר מקשר הכתיבה לצינור. מקשר זה משמש לפונקציות אחרות כדי לכתוב נתונים לצינור. 86 הוא מלה המכילה את מספר הבתים שהמערכת שומרת לנתונים בצינור. 112 ל 00008 ו */ ()6ז0060-ל37 21871 או 6 */ 1 ו 06 תס 100% */ 6 05 = 00066 4 090568 658זת - ג*/ : (11600% , 2 1:66 1 ]5600163 */ : , - [111003710 1607 /י 1813 )א6ת 1366ש0310 */ :7 - 049111003:111ו (0870 < [1]זבת6911[6) 15 /י 6 0 30015656 */ 0 + [1]:גת6991110 - [3:]1ת6871110ו( 61586 /י 4ה3 030166 אשת 015013 */ 1 = 07006 /י 6פוזג */ ,00 ,7 ,0 -[%60תַ6ָנַת , [=68ח1תטן( ,3060911100 ז8) ז3מ6) :(0 = 018ת1083+ 121070006 = 08 /י 4 03790167 106 166שח */ . . 0 10 וו וע 60 06שפ1ז:)ג */ ,ז3ת6471110![(* 188 זגת0+ 6 2/0608 2700088 */ : ,0 ; (ח687%65%:1%06(* 38] 4שחף1פתט) /* 003130601 "" ג [1)תט 60636 */ /י 64 68 */ -! 0 0 /י | 58 ל */ |א.,.א).))א).אוג .1 וווווווווווווווווו( /* 036 */ ()0370770000016פ 6 181 8 :0% * ו 7 /* 0ת931%1 10088 0 6 */ /* ה6(% 6ת93 :07378000 3 ת0] */ ; (0,0, 561ת6701תנ05טשל5ץ06) 90081 = "יי ₪ 0 0503 6ת6 810018 */ /י גצ */ 0 ו - [111003:/0? %-- 1 /יח26460 56150088 תִס6 1ַאפפַ1חֶמָסד */ / ;7 = [1] זג /י 60 1060צ 6786צה1 בח3 [אתזסח */ ;0 +ג] ז20,1,)003, 20,21, 1050801000621). = 1010066 /י 6 0 63816 5[ 6אגם */ ג ו /י ‏ 6/208:6א ָת6361ל 2 לו יו /י תו */ 6 - ב /* 8 38 68)גת[םז6: 634זת+ 18תך */ 100 711* זג] 5גת20,1,)6, 20,21, %1050900000)21. = 0100066 /* 15516 [ 10:680 ]0 768415 */ :% - 1658160פָפָסד ; 0 הגע 0050416 3 */ /" 1 ; (5658806010 )205580000 = 1010068 / /י | ה ל */ דר .ווווה ו תרשים 20. תהליכים רבים: תהליך 1 (חלק 4) - פונקציות התצוגה והמקלדת 6 פונקציה לטיפול בקבצים, שתפקידה לכתוב (נתונים לקובאצ. השימוש בפונקציה זו תופס גם לגבי צינורות וגם לגבי התקנים התומכים במישק מערכת הקבצים (כמו, 050/:156 ל-2271, כאשר 1271 הוא שם שמור למדפסת מספר 1). הפונקציה מעבירה מספר מוגדר של בתים ממאגר הפלט לקובצ/צינור/התקן ואז חוזרת ל-686זת+ המשתמש בה. לפונקציה זו ארבעה פרמטרים. 86 הוא ערך בגודל מלה המכיל את המקשר לקובצ או להתקן שהתקבל מה-ת2050226, או מקשר בכתיבה לצינור שהוחזר לאחר השימוש ב-0518860106. 8 הוא מחוון רחוק למאגר (ע2146) הפלט של המשתמש בפונקציה. הז+קַת16ז116ט הוא: מלה המכילה את מספר הבתים שיכתבו מהמאגר. 1)008ז/650+ע3 הוא מחוון רחוק לכתובת של מלה שבה **כתב מספר הבתים שנכתבו באמת. 383 ]98%ו94ו,וו)ווו)וא)ווווווווו)וו)וווווווווו/ו|וווווו)ווווווווווווואוו)וווווווווווווווווווווווווווווווווווווווון /י 2 7700085 - 1076305 0 5 / ]יוווו,ו,.,וו,,,)ווו,וווווו|וו,גוווו\,,והאוווג).,,.הוווןווגוווווון.וגוווווווו .ווווו)ו.ואווו..וגווווו יווווופן יז 11% 16תהחץ0 01 09/2 > ד <ה. [005631> 0[006ה%1 /* 115 116 הטז 1/0 6ַזג0ַת563 6 */ <ה.86010> 01066ה11 /* ץזזסן הזל 0 */ לה [ָת1ז55> 61006ה11 ]'ווווו)ו.)וווואוווווווווגגו\|,ווווו\ווגווגגווווו,,וגוווו),ו)\ווווווו 5תסן16ת6)1 0-3 אסשת1צ ג ות יו /*י 0 60פט פחָתגז50 ]0 3:5 ת */ 5 ") - [00%)12ה7100281* 38] שגתס /* 153 1 7100655 6ת6 6ת6[1טס */ 0 " /י סע */ = 2 7 " /* ק0ס1 "זס]" ת] 0561 185[65ז3+ */ 0 חן - תתַחַח6א60ת1ת :תג ]'וווו,ו))וווגווג.גוווווווו,ו,.,,,|\גווגגגווווווגוו)וווווווו ג סזק 6 סז סט - 8 0-1 / /* 09/2 תסז] תזט66] 0066 שסתזט */ מ הט /י 8 חס61סחט] */ ]ו440000)0000049ו0)!ווווו99)ו/וווווווווה 68 360 פלקתסזק 5685 [815713 50 4ספט - 125165ז3) 3:50-865ת60זחסוץ */ /* הלצא 06 0ל 7 %/ 0 3 ]03 /* מָת1ז80 :4006זַת6 ]0 תְ:אָת6/ */ :10 ופט ; 0% - חסן8[פסק הָת[5ז5698 */ :0% ופט /* תתט[00 - ה51510סק ַת1)ז5%8 */ :0 פוט /י 6 זגו */ ג ]03 /, 8 ]0 9076 26561964 */ - 016ה1083+ חפט ]'וואא|),)ווווו),ווווו),וו)וגוו))\)))).)ווווו)|,ו))וווג.,וגוווווו)ו))וו)ו\וווו). 8 10500110 י/ /* זז 36 1616 שסקקט */ יו טפט :0 ה /י זסחזס6 6תגת 6לף1ז תס0%סק */ וי 6 מ חפט / 1[ סל 68ת11 01 זססתטון */ ופט ו 6 0 :60378016 [11ת */ = [2]ז3ת1110ץ 0 ]ו,וו4)),)ווווו,))ווווו)))ווווווווו).)וווווווווווווווווווון)ווווווווווו)\ווווגוווו)|))ו: ב ל יו /(16חגת 636: 6ק1ק)0[6תבת 1[6ק */ ו וט /" זט שטקהן */ 0-1 ו /י מַחָת16 ז6]]טס שטקה] */ :6 > 67000 ]90 ופט /* 6 - 7684 668ץ9 */ ל וט ]ווואו))וווווו,)ו\וווגווואווו)ווו)\וווווווווווואוו)))וו\ווווווון)און))וווןו 8 6 י/ /* 6 0פ1ך 306 0306 */ יי 8 5170065 /* ז60ת1סק 6זש06טז50 0366/1186 */ :8 = 560ת6701ת007086011* ז3] 03661186 0%ז]5 תרשים 21. תהליכים רבים: תהליך 2 (חלק 1) - הכרזות אם קובצ או התקן נפתחו עם מאפיין של קריאה בלבד, הפונקציה 05001166 לא תתבצע. ב פונקציה זר שייכת למערכת הקבצים המשמשת לקריאת נתונים מקובא. השימוש בה תופס גם לגבי צינורות וגם לגבי התקנים התומכים במישק מערכת הקבצים (כמו, 2058680 מ-60/11, כאשר 0011 הוא שם שמור לכניסה הטורית מס' 1). הפונקציה מעבירה מספר מוגדר של בתים מהקובף/צינור/התקן ל-1467טם, ואז חוזרת ל-680עת+ המשתמש בה. לפונקציה זו ארבעה פרמטרים. 114 ]ו,וו)))))ווווג)ו)ו:\\ןו)וו\))|)וןג)וג\ו)ן)|\וווגוווו\ו)))))\ווווו);)ווו|ו)וווווג 58 [ כי ו יז /י הדי *! :חוד וַת10 61תף51חט /ווון4)ו)4))א)+וו:ו)וווו)ו)))))ו)ו\ו))\)וון)ו.|ו)\)ג)))ווווו\וןווו|\ו\ווווווווו 8 [ציך) */ /* סל 866 31132168ץ חַת[ז5 */ ' ו זג /י [ַתז80 5158 6ת% 116טל */ :11860 = 68:ת6000:701תנדי זג 6 1168: :11868 = ש66ת665701טת641תו+* 0 :10 בד נמ - ונר 110560087 0 :"0 " - [1186)9 זז 6 ₪ 1 ב /י 00 0464 180168זץ הַת1ז)9 */ היהי זג /"* [ַת1ז50 0868 8ת6 116גס */ ;1 ה 0 זג :6 ג :930 = 667 ת1סקת 060 בקי 6 0 0: ;0 = 0 ו 0 930619[ - " / "; 0 > ז60ח6701ש03* 0 . 6 א 18 ו ד */ ו 7 3 6 הַתנחָס10 18 6036 630זת+ 0 - 1 0 ה 2 חסןלסתט] 1608 506 [ם 0866 */ - א901 1% ]ווגהג),א)וו\\וווווו)וו)וווו\)גוו\וג\ווו))ן)\\\ווווווו\\\|וווווגוגווווון פס יו /* 00088זק תג 6368ז%0 [81 16אם */ :0100006 ןפת ]| 0080815 זס] 53004 5[שפסת */ "וי הט ]ו9094)ו)ו)ו)ו)ו)וו4וו4ו)א)1ו.)))0))))ו)ו/וווווןו/ו/)\))ו))))ו\וווןו)וווווווו))ווו)וווווווווווווווווו] /י 8 חס1)סהטץ */ : ( 007000000 1+ +6 1 : (06ת8011003665671 4+ ]וא8א44או*)אווו)א))))))))|)ו)))ווו))ווו)ו)))))ווו0ו))ו/ו)וווו/וווןו)וווווווווווו/ווווווווווווווווווווווון תרשים 22. תהליכים רבים: תהליך 2 (חלק 2) - הכרזות 86 הוא ערך בגודל מלה המכיל את המקשר לקוב+ או להתקן שהתקבל מה-ת76ק080כ2, | או מקשר הקריאה | מהצנור| שהוחזר | לאחר השימוש ב-6106א51]8סכ. 8 ההוא מחוון רחוק למאגר הקלט של המשתמש בפונקציה זו. תזקת6ז6]]טת הוא מלה המכילה את מספר הבתים שיקראו לתוך המאגר. 8 הוא מחוון בחוק לכתובת של מלה שבה *ירשם מספר הבתים שנקראו באמת. אין בטחון בכך שאמנם נקרא את מספר הבתים שביקשנו לקרוא. לאחר השימוש בפונקציה זו, התכנית צריכה תמיד להשוות בין )קת110:00ט2 לבין בי :4 וי ול כו פונקציה זו מאפשרת לתכנית לבצע תכנית אחרת כתהליך בן, ושתיהן *כולות להתבצע בצורה מסונכרנת, או ללא תלות זו בזו. אם שני התהליכים עומדים לרוצ בצורה עצמאית, התהליך החדש יכול לרוצ באותו ם565510, או בצורה נפרדת. לפונקציה זו שבעה פרמטרים. 115 /* 8 ת!3 0 ]0 55305 */ (קצה6 ,אסְז3 ,סַסָזְגּ)הנָח 15 /י ס>חסטףָזג ]0 סתט00 18 סֶמָזֶב */ , 58 *] :]| |אזג* ז03 /* )תסתטסָזּ 5ת31]תס0 [גזז3 זב */ :| |קאת6* ת073 /י 5 */ /* 8 10 חס ו יו / ]יוו וווווווווווו,)|)ווון)ו ',וו,אווווווווווו,ווווווגוגגו,וו,ו|))וווו|)אוווווןוווו 5 כו ו 7" 0 זו עסו[ */ הניוו וש ןפת / 530% 630זתש אסא */ 630580 זת 6/7 זג 061ף1פתט |יוווו.ווווווווג,ו))א):))ו.וווווו:ווואו)ווון.ווווגוווגוווווווווו)ווווווווווו יז סזק 6 01 ]3 יו /* 0546 ת60ז50 ]0 3:63 [6למ] */ ,"2 77800855 = 1035 = 0006ת0זוק /* 2 7100688 ץס] */ , (ז50ז603)ת85716 - תל ו 0 - 5. .5 = תתט001 ,"032" = 66710066 = 616ה1083 /* א00ת1צ 2 00088:? 6ו% זג[קפ1ט */ (+ +00 :50 6080000ת%1 > 661 תטס0אסת :0= 6 תטס6סת)זס] 8 10 = 0068ת תנק ו ([ 6 000 ] 60%ה00281ז16062ז56 = ה65ח%1006 ,61 תטס0אסת + 7 - אס = התט[00 ,"032" = 6215066 ; (016ח%1083 /* 6ת3 0806 ז0] 2 10686 06866 */ = 00066 /י 8 16 */ 1* 37] 66תף1פתט) ((6/0691776365580%11000(* - 181 :03 6סח6ָ1פת) /יתסז] 6[בתגת 634ז 6ק1ק תל 06% */ :((1] צז39) 3501 = 8[6ח63083ת /* הָת86:1 %תסתטףז3 8ח8600 6ת% */ / 0 /* >סטת[)תסס 0026 קְסַ10 ]0 קסד */ /* פסז] 06118 :33000( הַת6861] */ 6 0008 , "" 3 611חט 6ק1ק 6 */ 1 ז3] ז003) / 4 15 00318000 */ ות ;0 3 0סתף1פתנ) /* 6 ת%1% אסטת!צ תל [01ז80 */ 0 = 00068 א 36 סה */ 59 7 תח 68=1ח1:תטן ,1110031?(* ז8] ז003) - 616ת1083+ / ₪ נַת1ז)8 104 %08 9116 */ = [010ת1 סע / - [101ז56ַסָסע1 :כ" ",07 ת701שה1 )86036 500 1007 100 0103000 ו "5503000 = ז8ה701טת1 סע (08662010501, ז10ה0701ת1ש551086610656 = ז6ה1ַ0בַָת1005611 /* שת1ז80 10 אסת 56 018013 */ 05 19 10ל = 0046 סזוע , (ז01000חת1 100911)ת55116 = ת06ת%1006 - צס 9 = תפט[00 1 "= 026פ1ץ:;) . ; (010ח1083 , /י "ף" ג ז0] 686 */ =! [1160003180%67061110תצ /* הס1שה1ת :ל 01 05/2 ץ/61סון */ 6 : (680100006 ש ---- 0 תרשים 23. תהליכים רבים: תהליך 2 (חלק 3) - הפונקציה 11/81 116 /י /י /" 1000 6001655 ת96[1 */ 6 6תג 6306 06 06% */ [ַת[ז650ת11611ש8 0811 */ [ָה[:50 6ת%1 6ת% [015013 */ 14ז86116030650 0311 */ שָתגזל5 6366 506 015013 */ 04 3 00%ל3 זס] 8166 */ ה6תא 665גהןתז6: 636זת) פנתך */ 8 00688זק 606 */ ()23601186770060076 ]1 או זז ; (001ת16701 1003667 009081017 = 12010066 ו 10 10 = 00068 (%60ה1156701)ה55716 - ה%ח06ס1+ - 0% .1 > פטס ,"2" = 40010006 ; (10130616 : (06ח1ז811003%650 06700 10005 = 0066ת0זז , (561ת2866701)ח55716 = 6 ו - 0%) ,6 * תפש001 ,"032" = 006פ06?1) ; (018ת1088 :(1000 = 660%81ת61ת20552827011 = 811010066 ) ]|הווגווו,.))וו,)))).),)\)))\\ו\ו\))\),)ווו\וון,\ו.גוו\,)\,ווגגווהגווו\.גווווגוג\\)ו'וווווו] 0 */ "/ /י /י 6] 8)גתזס] חסנלסְתט] פגַהֶךָ */ 615013 ז0] 54113916 6ת1 */ זטסן %06 36פזסץ */ 5 106 835ז0? */ 858 6 836ז0ץ */ (0ה1ז110115650ש9 6נסצ ז 0 = ז00ה1 16070 -= (502ת201ז1186000)ה1168%716 - [60:]0ת[620ת11 ]11908000 = [ 11 567ת01ל6ת11 1 ]= ;0 וד = [0] ז%6ת1186701 1156007201 > [6:]1שת6?01ת1ך : (84018, 0605ח1186%1, 65 ת1ם. 186 1508)00]03167 = ז66ת65701:טת681פ1ך >- (567ה665701שת1196%81)ת16ז1])55 = [6:]3:ת1106701 :0570 ת6/1מ11 - [60:14ת6201ם1ך ,15% ;]6570 טת61ת11 = [6:]3:ת1186701 :0 65001טת[6%ה1ך = [06:]4ת186701ך ; (8618, 65600065ת11, 8600765. 186 1603)60708667 = 867ת1165600068701 >- (%67ת11565600005701)ת16ז1/08% - [56:]6ה1186701 0 - [16117ת6701הוד 1 : [%01]0ת11565600065201 = [50:]6ת6701ת11 :5 ז56ת11565600065701 = [6:]7שת1186701 ][וווגו|..ו)ווגוו\,|.|)\גגו\))ג)ו\).|\ן)),ו)|\)ג)))וג)ו\ג))|.)))וג),|ו)|)ווווו,ו)))ווווווווווווו] ]האס הוא מחוון תרשים 24. תהליכים רבים: תהליך 2 (חלק 4) - 6ח71ז+301107'1(65 8 70060076 6ת8+6'1 רחוק למאגר שאליו *וחזר מידע, אם הפונקציה 0 תיכשל. השם של תכנית היעד שתרמה לכשלון יוצב במאגר. האס הוא מלה המכילה את האורך בבתים של +ט68הא[00. 117 /י 6] 65תז0] הס[פסחט] פןתך */ 000ת1ז8011003565% 16סצ /* 018013 זס] 50153516 0866 */ 1 [* ת)חסת 6ת% )גתזסץ */ : 196182 ה ח0ו03%6, ה תסת. 16 1508073167 = 567 ה1סקת תס69 )ג -- (:6שת201ת%ת0366%0)ת16ז1]65% = [3:6001050:10 0366001 = [1] ז50ה366701פ |ם 4 :3500 - [0] ז50ה3%6701ק :030600 = [1] ז%6ת366701 1 /י 56 5התזסץ */ : (83018, [036603, [03. 186 1508)00703661 = זסלתן0תַץְ0603ס 1% ו 10 = (3]ז66תן0ס6גם 0356030 = [06:]4ה856701ס וו - [3] 30600150 3 = [00:14ת06701גס , 7" 3%.506פזסץ */ : (83618, ז0356168, 03 1503000708561186 = 6616317010668הם :0318163701 = [06:]6ה6701/ ז0318163-70106 = [56717ה06001ג +,++++++++,,+++--+ הווה וווווווון תרשים 25. תהליכים רבים: תהליך 2 (חלק 5) - שת1ז11628+650ש8 8 אות-הסימון הזה היא ערך בגודל מלה המצביע על אחת מהדרכים שבהן התהליך ירו+. האות מציין אחת מהאפשרויות הבאות: (1) ריצה מסונכרנת, או לא-מסונכרנת, לתהליך האב; (2) עם שמירה, או ללא שמירה, של קוד התוצאה של סיום התהליך; (3) עבודה תחת מעקב (0866), בדומה למה שנעשה עם מנפה שגיאות (ע00000); (4) ריצה ברקע (6ם00ז280%8) כתהליך נפרד; (5) טעינה לזיכרון וציפיה להפעלה על-ידי ה-61קהתאנת ב0ס86991. 67+ת01ז הוא מחוון רחוק להתחלה של שתי מחרוזות ארגומנטים, אשר מועברים לתהליך החדש ומשמשות כשורת פקודה של 05/2. מתרגם שורת הפקודה "מבין" שהמחרוזת הראשונה מבין המחרוזות היא שם התכנית, והשניה מכילה תווים נוספים המוכנסים בשורת הפקודה. "תס טת הוא מחוון רחוק לקבוצה של מחחרוזות המועברות לתכנית ומכילות מידע על הקונפיגורציה. 5 הוא מחוון רחוק לכתובת בגודל של מלה כפולה המשמשת לאיחסון מידע המתקבל לאחר השימוש בפונקציה זו. בתהליכים אסינכרוניים, המלה הראשונה מכילה את המספר המזהה לתהליך הבן. בתהליכים מסונכרנים, המלה הראשונה מכילה את קוד סיום הפעולה של המערכת, והמלה השניה מכילה את ה-650160066 המצוין על-ידי ה-686ע1+ האחרון בתהליך הבן שהפעיל את הפונקציה 16א058כ. ז%6ת[0חקתק הוא מחוון רחוק למחרוזת תווים המכילה את שם הקוב של התכנית העומדת להתבצע. כאשר שני תהליכים מתבצעים בצורה מסונכרנת, הכוונה היא שה-686ז+ המפעיל את 8קק60א58ס עובר למצב המתנה עד אשר תהליך הבן מסתיים. תהליך בן שרף בצורה נפרדת, מכוון לרוצ ברקע ללא אפשרות שימוש במקלדת או 138 במסך. *וצא דופן הוא השימוש בפונקציה כ[זקסעסוע כדי לטפל במצבי שגיאה. תהליך בן הרצ בצורה אסינכרונית חייב לעשות זאת בתוך המגבלה של שנל תהליכים המתחלקים באותו ם565510. הדבר כולל שיתוף במשאבי המקלדת והמסך השייכים ל-ם5655910 זה. מערכת ההפעלה בונה טבלת מתארים מקומית (7כ.1) כדי לספק לתהליך החדש מרחב כתובות משלו. הטבלה מאפשרת לתהליך הבן להכנס למשאבים הניתנים בירושה, אשר נפתחו כבר על-ידי תהליך האב, כמו מקשרים לקובצ מסוים וצינורות. בדוגמה שלנו, תהליך הבן יורש את מקשר הקריאה לצינור. (יכם ב פונקציה זו מפסיקה את פעולת היע"מ במהלך פרק הזמן שהוקצה לה, ומעבירה את ה-680ע1+ למצב המתנה לפרק זמן מוגדר. לפונקציה זו פרמטר אחד. 1 תתו" הוא ערך בגודל של מלה כפולה המצביע על פרק הזמן באלפיות השניה שיעבור עד אשר ה-686ת1+ יחדש את פעולתו. ערכי הזמן מעוגלים כלפי מעלה לכפולות של מחזורי הזמן בשעון. הפעולה תתבצע בדיוק של עד שני תקתוקים בשעון, בהתאם לביצוע של ה-6805עת1 האחרים במערכת. תיאור של תכנית בעלת תהליכים רבים על-5י הלוגיקה של התכנית הנראית בתרשים 15 נראה, שתהליך האב (תהליך 1) מאוד דומה לתהליך שבדוגמה הקודמת. הוספנו לדוגמה זו כמות משמעותית של פעולות ק/פ ושימוש בצבע בתצוגה, כדי לשפר את המימד הוטואלי של התכנית. התכנית מניחה שהתצוגה היא במצב התואם עם 6א56 6010 80*25 6 של האביזר 004 ]18%. על-פי הלוגיקה של התכנית, כל אחד מה-6805ז11 כותב לשטח אחר של המסך וכתוצאה מכך, שורות רבות בתכנית מוקדשות להכרזות וללוגיקה שיעזרו לארגן את המסך. בדומה לדוגמה הקודמת, 6806עת+ מס' 1 בתהליך 1 אחראי להתחלת כל פעולה אחרת .ולאחר מכן הוא מבצע את פרוצדורת התצוגה. בפרוצדורה העיקרית של תהליך ‏ 1 אנו *וצרים את הצינור לפני שאנו מתחילים את תהליך 2, כדי שתהליך 2 :וכל ל"רשת" אותו. 686זת+ מס' 1 התחיל את 686זת+ מס' 2 כדי שיבצע את פרוצדורת המקלדת, ואח"כ קרא לפרוצדורת התצוגה. בדוגמה זו שיפרנו את פרוצדורת התצוגה. ל-680עת+ מס' 1 המבצע את פרוצדורת התצוגה יש חלון, שדרכו הוא מעביר את התווים שהתקבלו כתוצאה מההקשות האחרונות. 46 המהתצוגה מחשב מאפיין תצוגה חדש לכל תו חדש שמקישים. זוג זה של תו/מאפיין הוא חלק מההודעה על אירוע שאנו רוצים לרשום. כדי לרשום את הודעת האירוע, 686זת+ מס' 1 כותב את הזוג הנ"ל לצינור שעבר בירושה לתהליך 2. 0686+ מס' 1 ממשיך להתבצע בלולאה שלו, ממתין לאתת ואז מציג את התווים החדשים שנכנסו עד אשר מתקבל התו "שָ". לאחר שהתקבל התו הוא חוזר מפרוצדורת התצוגה. הפעולה האחרונה המוטלת על 686זת+ מס' 1 היא לסיים כהלכה את תהליך 1, כך ש-6806עת+ מט' 2 יסיים גם הוא את פעולתו. 139 שאר החלקים של תהליך 1, פרוצדורת המקלדת, מתבצעים על-ידי 686זת+ מס' 2 בדרך דומה מאוד לדוגמה הקודמת שעסקה במספר 6805ת1+ בתהליך. ההבדל העיקרי בין שתי הדוגמאות הוא, ששני ה-6805זת+ כותבים נתונים למסך כד:י לספק אינדיקציה ויזואלית של הביצוע הרב-משימתי שמתרחש. 686ע2+ מס' 2, המבצע את פרוצדורת המקלדת, מחליף בין תצוגה רגילה (ס6נץ [אמתסת) לבין תצוגה במהופך (1660ט 6:56ט16) של התווים המוצגים, כדי לספק משוב על הפעילות שלו. אם נעבור לחלק השמאלי של תרשים 15, נראה ש-6806ע1+ מס' 1 של תהליך 2 נשאר בתוך הפרוצדורה הראשית. הוא מנקה את המסך ונכנס ללולאה הקוראת הודעות מהצינור, משרשרת את הודעה עם זמן ותאריך, ומבצעת הדמייה של רישום על-ידי כתיבת ההודעה למסך. פעולה זו נמשכת עד אשר התו "1" נקרא מתוך הצינור, והוא מצביע על כך שהתהליך צריך לסיים את פעולתו. 48 מס' 2 בתהליך 2 מתחזק את המחרוזות של הזמן והתאריך הנוכחיים. בנוסף לשימוש שנעשה במחרוזת זו לבניית הודעת הרישום, אנו מציגים את מחרוזת התאריך והזמן, כדי להצביע על הביצוע של 686זת+ זה. בתרשימים 16 ו-17, כללנו את ההכרזות לתהליך 1. המשפט הראשון הניתן לביצוע נמצא בתרשים 18. הוא קורא לפונקציה ק1056101111 כדי לנקות את המסך. הפונקציות הבאות לאחר מכן, 5%ע8ת100/:00/ ו-50184+6זהת0+ז/טסג משמשות לכתיבת כותרות והכותרת הצבעונית "פשסנתוש 2-6806+". החלונות של תהליך 1 הם בצבע אדום בהיר (034 באוקטלי) והחלונות של תהליך 2 (תהליך הרישום) הם בצבע *רוק בהיר. השתמשנו במערכים עם נתונים קבועים כדי לצייר את ריבוע* החלונות ובלולאות מסוג "10" כדי להוציא את המערכים לתצוגה. הפונקציה 205:ַש1056%0 משמשת למיקום הסמן בחלון המציג את הפעילות של ה-680זת+ המבצע את פרוצדורת המקלדת. לאחר שהמסך תוחל (16411260ת1) לתהליך 1, התכנית מתכוננת ליצירת תהליך הבן הנראה בתרשים 19. השלב הראשון בהכנותינו הוא הקצאת צינור בעזרת 6, תהליך הבן יורש את הגישה לצינור זה, ואנו מעבירים אליו את מקשר הקריאה לצינור בעזרת מחרוזת הארגומנטים. ודאי תזכור מהתיאורים הקודמים על מישקי התכנות, שתהליך האב מעביר מחרוזת ארגומנטים לתהליך הבןו בעזרת פרמטר, שהוא מחוון רחוק השייך לפונקציה 8קק60א055סכ. לשם הנוחות, המחרוזת הראשונה במחרוזת הארגומנטים היא שם התכנית, ולכן שם התכנית מועתק ראשונה לתוך מחרוזת הארגומנטים. השתמשנו בפונקציה 1608 85011(‏ 0+ 60867ם1) כדי להפוך את מקשר הקריאה למחרוזת תווים והוספנו אותה למחרוזת הארגומנטים. ברגע זה אנו מוכנים ליצור את תהליך 2 בעזרת במ 6אסק. הפרמטר 286071888 ב-60₪א2053 מצביע על כך שאנו רוצים שתהליך 2 יתבצע בצורה לא מסונכרנת לתהליך 1, ולכן השליטה תחזור לתהליך 1 מיד לאחר שתהליך 2 מתחיל להתבצע. מה שנשאר לתאר מתהליך 1, מאוד דומה לדוגמה הקודמת: תהליך 1 *וצר את 686זת+ מס' 2 כדי שיבצע את פרוצדורת המקלדת, ולאחר מכן הוא קורא לפרוצדורת התצוגה בעזרת 6806זו? מס' 1. תרשים 20 מכיל את פרוצדורת התצוגה ואת פרוצדורת המקלדת. ניתן לראות שהלוגיקה הבסיסית שלהן נשארה ללא שעו*י מהדוגמה הקודמת. הוספנו את הפונקציה 050/:166 כדי לכתוב כל *חידת תו (כוללת את תו ה-85)0111 ואת מאפיין התצוגה שלו) לצינור. לשתי הפרוצדורות הוספו קריאות לתת-מערכת התצוגה (סנט), כך שניתן לראות את ביצוע שני ה-6805זה+ במסך. 120 תרשימים ‏ 21 ו-22 מכילים את ההכרזות לתהליך 2. בתרשים 23, תהליך 2 (תהליך הרישום שלנו) מאתחל את השטח שלו במסך על-ידי שימוש בטכניקות הדומות לאלה של תהליך 1. תהליך זה :וצר את 1686 מס' 2 המבצע את הפרוצדורה 8%61186. לאחר" שהוא שב מביצוע הפונקציה 7686ת8861]/פס, משיג 6806זו% מס' 1 את מקשר הקריאה לצינור ממחרוזת המשתנים שהועברה מתהליך 1. לאחר מכן נכנס 686זת% זה ללולאה הקוראת *חידת תו מהצינור, מגולל כלפי מעלה את החלון שלו במסך, וכותב את מחרוזת הרישום החדשה. וז מס' 1 בודק אם התו "1" הגיע דרך הצעור. תו זה מצביע על כך שיש לסיים את פעולתו של התהליך עם כל ה-6865תת+ שלו. תרשים 24 מראה את הפרוצדורה 28601186 המבוצעת על-ידי 686זת+ מס' 2. פרוצדורה זו אחראית על תחזוקת המחרוזת של תאריך וזמן ועל הצגתה בחלק העליון של חלון התצוגה השייך לתהליך 2. פרוצדורת ה-6מ8%6611 קוראת לפונקציה 2050260028%6118(6,. ואח"כ לשאר הפונקציות כדי לערוך את התאריך והזמן כמחרוזת תווים הניתנת להצגה במסך. 686ז11 זה משתמש גם בפונקציה 0 כדי להשעות את הביצוע של עצמו. ולעבור למצב של המתנה למשך שניה בערך. 680זת+ מס' 2 מפסיק לפעול כאשר 086ת2+ מס' 1 מפעיל את 8% עקם 400100066 שווה ל-1. הפונקציה 8ת31101165071 המוצגת בתרשים 24 ו-8ם8₪11628%65011 המוצגת בתרשים 25 עורכות את מחרוזת התאריך והזמן בהתאם למקובל בארה"ב. בפרק 7 העוסק בתכנות מתקדם נראה כיצד ניתן להכניס את שתי הפונקציות האלה לספריית הקישור הדינמי, כדי לאפשר לנו לתמוך בשימוש אחר, מבלי לשנות את תכנית היישום המשתמשת בפונקציות אלה. תרשים 26 מתאר את התבנית של המסך כאשר מתבצעת תכנית הדוגמה בעלת תהליכים רבים. ה201610 03:6ה563 (אד) 05/2 6 210065865/1770805 61018 טול 2 00555 051 ץץ/00/תת 58:תת:חת 0 טנ ל 6 2655 תרשים 26. תהליכים רבים: תיאור מסך 11 תמיכה בזיכרון-'חר לפני שנסיים פרק זה נתבונן בדוגמת תכנות נוספת, המתארת את היכולת של 02 לתמוך בזיכרון-יתר,. היישום שלנו במקרה זה *כול להיות ג'ליון אלקטרוני גדול מאוד. אנו מאפשרים לך לציין את כמות הזיכרון הדרושה לגיליון אלקטרוני זה, ואף לציין יותר זיכרון מאשר עומד לרשותך במערכת. התכנית| מבצעת הדמייה של ג'ליון אלקטרוני הנכנס לנתונים בכל אחד מהסגמנטים שלו המוקדש לנתונים. כאשר אתה מפעיל את תכנית הדוגמה הזו משורת פקודה, אתה צריך גם להכריז על מספר הסגמנטים בני | 64% שאתה. רוצה להקצות. ברגע שמוקצים הסגמנטים של הנתונים, אנו מתחילים להתייחס בזה אחר זה לכל סגמנט, ועל-ידי כך לבצע הדמייה של חישוב מחדש של הגיליון. אם גרמת לתכנית לתמוך בזיכרון- יתר, תראה שהנורה של הדיסק הקשיח מהבהבת. זה סימן שמנהל הזיכרון של 02 מעביר את הסגמנטים האלה לדיסק הקשיח ומחזיר אותם לזיכרון. הסגמנטים המועברים נקבעים בעזרת האלגוריתם המחשב את אלה שהיו הכי פחות בשימוש לאחרונה. דיון נרחב בנושא ראה בפרק 2 בסעיף העוסק באפשרויות ניהול הזיכרון. כדי שדוגמה זו תפעל, אתה חייב לאפשר למערכת ההפעלה לבצע את העברות הסגמנטים. אם נתיב ההעברה הוא לדיסק הקשיח - זו תהיה ברירת המחדל, אלא אם עקפת אותה על-ידי המשפט 25 /5סא=אב/תאמוא ב-5צ10.5עא00. אם קבעת שנתיב ההעברה הוא לדיסקט, מן הראוי שתדע שברירת המחדל היא לא לבצע את ההעברות. כדי לאפשר אותן, אתה חייב להוסיף את המשפט 5082-אגתאש ב-5צ10.5עא 60. העברה לדיסקטים אינה מומלצת, בגלל איטיות הפעולה. הפונקציות של 05/2 התכנית המדגימה תמיכה בזיכרון-יתר מוצגת בתרשימים 27 עד 29. בתכנית זו נשתמש בפונקציה נוספת של 05/2. השג כמות של זיכרון להקצאה (פרמטר בשורת הפקודה) הקצה את הסגמנטים קבע את מחוון הסגמנט הנוכח: בצע עד אינסוף * גע בסגמנט הנוכת: * הצג את מספר הסגמנט שכרגע נגעת בו * העלה את מחוון הסגמנט ב-1 סיוס לולאה סיים את התהליך תרשים 27. הלוגיקה של תכנית הדוגמה - ניהול הזיכרון 12 ---סהסבס==סהסהפ וו י ד 1 8 - 9605 06001 מ יו )ו0ווווווווווווואווווווווווואווווווווווווווווווווו.ו.... 157 .ו י .ווווו,ן.)),אואוון:ו ייוווווון זז 11% 16תגהץ0 301 05/2 */ לח 00503[1> 66ט[סה!1 /* 115 6156 הטז 1/0 8ז03ח503 6 */ ח.55610> 1101066 /" ץז [ת1ז50 0 */ לה [ת1ז50> 06ט[סהג! ,+ ווווווווווו)וווווווווווווווו. ב ן 01 יז /* 08/2 05ז] תז0ל6ץ 0006 שסזזט */ = 070006 | /* 8 חסן)סתט] */ /"י סק ז3] ]0 [הצז */ "1 זג 64תףןפתט /י 8 יס */ - 5040000006 לה = 130161006 שחו = א66ת]אגון ו /* זס)ת01ק ז8] 8 8[ושל 60 0504 */ :וס וַת10 64חף|פחט /* 800% אסת 8 תסטס% 50 0504 */ ג +ההרית ו 4חףָןפחט + אואווווווואוואווו)ואווווווווווווואואווווווווווווגן בנםו | 5% יו /י 4% - 8126 6005 */ 6-4 וט /? 604 56160007 */ יי כ ופט /* 0[6ג61808:0 ]0 3:3516ת₪ ססון */ * 110001305 חפט ,+ וווווווווווואוווווווווווווווווווווווווווווווווווו. 8 %אספסם + /: 0058סתק ת| 106308 811 16אק */ - 00006 ופט /*י 00800316 :0] 58464 65016ק */ = 8050180066 ופט 7 -- תרשים 28. תמיכה בזיכרון יתר (חלק 1) - הכרזות ב וכ בו מקצה סגמנט בזיכרון עבור התהליך המשתמש בה. לפונקציה זו שלושה פרמטרים. 06 הוא ערך בגודל מילת מחשב המצביע על הגודל בבתים של הסגמנט שיוקצה. גודל הסגמנט יכול להיות בין 0 ל-65,5936 בתים. כאשר הבקשה היא להקצות גודל 0, יוקצה סגמנט בן 64%88. 0 הוא מחוון רחוק למלה שבה יוצב ערך הבורר. זהו ערך בר-תוקף לקריאה ל-121 של התהליך, ולכן הוא מאפשר כניסה לזיכרון שהוקצה. 58 הוא ערך בגודל מלה המראה אם מספר תהליכים יכולים להשתמש בסגמנט באמצעות הפונקציות 6566ע501ס ו-05020%508, ואם ניתן לבטל אותו כאשר אין מספיק מקום בזיכרון. אם לא הוגדר אחרת, הזיכרון שהוקצה בעזרת 120501100568 ניתן להזזה ולהעברה. תכנית דוגמה לתמיכה בזיכרון-יתר השלב הראשון בדוגמה דורש שנשיג את כמות הזיכרון שיש צורך להקצות. בשפת 6, פרמטרים המוכנסים בשורת הפקודה מועברים לתכנית במשתנה-מערך-מחרוזת (78118010 ע8?ז8 אַת1ז50) הידוע בשם ".טשז8". החישוב של כמות הסגמנטים שיש להקצות נקבע בעזרת הפונקציה 8%01 (ז0אַ60ת1 %0 85011) הפועלת על 13 האיבר הראשון בשורת הפקודה ([1]ששז8). לאחר מכן מציגה התכנית הודעת מצב הנותנת משוב על כך שמספר הסגמנטים שחשבנו להקצות, אמנם נכון. לאחר מכן נכנסים ללולאה שמקצה סגמנטים בני 64%8. בשלב זה משתמשים בפונקציה 120541100568 תוך ציון הגודל 'כ-0, כדי להצביע על סגמנט בגודל 8. בסיום הפעולה התכנית מודיעה על כך במסך. בשלב הבא מכניסים את ערך הסגמנט המוחזר לתוך טבלה של מחוונים שמוקצית לכל סגמנט. יצירת מחוון רחוק בשפת 6 עם ערך הבורר המוחזר יכולה להיות משימה קצת מסובכת, ולכן אפשר להשתמש במספר טכניקות. בדוגמה זו השתמשנו בטכניקת הה*סט (שַם5(1101). ערך הבורר, שהוא מספר שלם בן 16 סיביות ללא סימן, * הופך להיות מספר שלם ארוך בן 32 סיביות ללא סימן, הנקרא 1166ט0ת66תנסק. לאחר מכן מסיטים את ה-670₪11667+ת201 16 סיביות לשמאל, והופכים אותו למחוון רחוק בן 32 סיביות, המצביע על הבית הראשון בסגמנט. שימוש בטכניקה זו מפעיל את הודעת האזהרה "068ע+ 6ם6111670 0+ +תס6ממתפופפה" של המהדר, אבל נשיג את התוצאה הרצויה. לאחר שהקצינו את המספר הרצוי של הסגמנטים ובנינו מערך של מחוונים כדי , לקרוא להם, נכנסנו ללולאה אינסופית הנכנסת לסגמנטים בזה אחר זה. אם אתה מקצה מספר סגמנטים הנכנסים אל שטח הזיכרון הפנוי כרגע, תראה שהתכנית מתבצעת מהר באופן *חסי. אך אם אתה מקצה מספר סגמנטים הגורם למצב של תמיכה בזיכרון-יתר, תראה שהדיסק פעיל מאוד והתכנית תרוצ לאט יותר, באופן משמעותי. /י 6 ח31ת 6 01 56376 */ (קצח6 ,סֶזג ,ססָזְ3)הנגת /י >חתסתטָזְג3 01 :טסט 18 סְסְז */ :6 8 */ :| | זג /* )הסתטףז3 פת631הס0 [3:78 מָזֶבּ */ :| ]קץת6* זגת0 /י 8 */ /י פחַת1ז56 5ת6תהסזןצת6 18 קצת6 */ /:3[[00306 0) 15ח6מך56 ]0 8 06% */ /י 0ה8 1186 6ה8תח60 הס 666766 */ 6 0 שטק)טס */ /* %65ה6מ861 31[00366 %0 קְססם */ /* [100356 8 64% 566% / /י 6 5536649 0180137 */ /*3016+ ז6]ה1סק ת( :56[60%0 6ש? */ /" 0 311008610 ]0 4תם */ [ 61ט0) 60 1000 61685ה2 */ /י 5 */ /* הס1תגת1םז6: ]0 09/2 ץ11:סון */ , :([1] )3501 = 6ת600ח56006 ; (?תש100ת86ך56, "ת4? 18 31100856 60 85ה6ת66 64% ]0 ז6לפטא")]:חוזק 60 6 | 800006 ,656160006(* :3] 810060ת8) :3 (0 -- 07008זז8) ]1 :(1301610064+1, "תל 5ח06ך56 311008660 ץ50006581011")])ה1זק ;0 = %618011067ת01? 66 :66:881106ה201 = [א06ח5616050718516]735161 +: ;00 ת9696-- ; (0 < 00008%ח56ף56) 116חצ : - 1301610068 = 0068[אגו :% = א06ת130161 + ;00 ; 56[60601135[6]1351618068* = 3860362/3[06? ; (1+א130161006, "ח 24 6ח6פ56 0068804 6פט6])"2תנזק 3+ (א06ת1אג < א66ת[13016) ]1 % > 135161006 0 06 6501 00006( ; ] [גוו)))אוגוו)ו)).)ו.)גוו\וו).)).):\.))וו)ו))).ווווו))))))))ווווווו))))ו)וןווווווו))וווווווווווווו] תרשים 29. תמיכה בזיכרון יתר (חלק 2) - פונקציה ראשית 14 לאחר שתבצע הידור וקישור לתכנית, תן לקובצ הניתן לביצוע את השם "6א6.גת06ת81!00" כפי שאנו נתנו. ניתן להפעיל את התכנית משורת פקודה. אם תרצה להריצ* את התכנית כך שתקצה 2/3 של זיכרון, שורת הפקודה תיראה כך: 2 11066 בהתבסס על כמות הזיכרון במערכת, אתה צריך להריצ את התכנית פעמיים. בפעם הראשונה תרוצ כאשר יש מספיק זיכרון כדי לתמוך בבקשת הקצאת הזיכרון. בפעם השניה - הקצאת סגמנטים תכריח את המערכת לבצע תמיכה בזיכרון-יתר על-ידי ביצוע העברות. ₪ מציין יישום של 05 בחהטסז0פזס בחטסזטא30 א שתטסזטזס נחטסזאסהם ₪ הטסזטפזס בהטסזטאסהם ₪ שחטסזזס] ההטסזטאסבם ₪ בחטסז0זס: ההטסזטאסבּם יישומי 25/2 ויישומי 2005 רצים בעת ובעונה אחת 155 פרק 5 קלט ופלט על-ידי היישום הטכנולוגיה של החומרה במחשבים מתקדמת בצעדי ענק וחשוב מאוד שנוכל לנצל אותה כראוי. השימוש במחשב ובהתקנים הצמודים אליו י*כול להיות מוגבל בגלל היכולת של היישומים להשתמש בחומרה. כדי לאפשר ליישומים להשתמש בהתקנים השונים וכדי לספק פלטפורמה לצמיחה עתידית, 25/2) מספקת מגוון רחב של מישקים לתכנות יישומים (801) ומגוון של התקני קלט/פלט (ק/פ). מה הופך את השיטות ש-05/2) מציעה ליעילות כל כך עבור יישומים ותת- מערכות? היתרונות בולטים בהשוואה ל-2005, שהיא סביבת תפעול חד-משימתית. יישום ב-205 :*כול להניח שכל התקני המערכת נמצאים בבעלותו והוא אינו מוגבל במה שהוא :כול לעשות. תרשים 30 מתאר את המישקים והמנגנונים לטיפול בהתקני ק/5פ העומדים לרשות יישומי 05כ. יישום 205 *כול לשלוט בצורה ישירה על התקן באמצעות פקודות א1 ו-7[ז00 לכניסת הק/פ שלו (0*ת0ק). שימוש ישיר בק/פ הופך את היישום לתלוי במאפיינים של ההתקן. זאת אומרת, שיש סיכוי סביר שהוא לא יפעל אס ההתקן יוחלף. בנוסף לכך, *יתכן ותהיה בעיה ב-2005 כאשר השליטה של היישום בהתקן תופר על-ידי תכנית הנמצאת דרך קבע בזיכרון המערכת (-8+6ת767811 - 6ת865100-ע6-5+8ם8). כדי להמנע מבעיות אלה, *ישום יכול להשתמש במישקים אחרים במערכת: מערכת הקבצים של 005כ, בקרת הק/פ5 (- 006701 1/0 1 וה-3105. מצד אחד מישקים אלה מספקים את היתרון של אי-תלות בהתקן, אך מצד שני הם עדיין חשופים להפרעות מצד תכניות 158. כאשר יש בעיה עם מישק שהופרע על-ידי תכנית 8ת15, קשה לקבוע איזו מן התכניות היא מקור התקלה. הת ק נ* ם תרשים 30. מישקים להתקני ק/פ ב-05כ 156 לעומת זאת, אפשרויות הק/פ ב-05/2 מספקות ליישום גמישות וסדר, שהם תוצאה ישירה של החופש לבחור. מפתח *:שומים *כול לבחור מבין הדברים הבאים העומדים לרשותו ב-05/2: מישקי מערכת הקבצים. מישקי בקרת הק/פ5 (1068). מישקי תת-המערכות לתצוגה, למקלדת ולעכבר. מנגנון הפיקוח על התקני תווים. מנגנון סגמנט הפקודה עם זקס1. מערכת הקבצים תומכת בק/פ למגוון של *עדים: קבצים, התקני תווים וצינורות. ה-106%1 תומך בפונקציות המאפשרות בקרה על מספר רב של סוגי התקנים. מישקי התת-מערכת משפרים את *כולת היישום להתמודד עם התפני הקונסולה (501ת60: מסך, מקלדת, עכבר). מנגנון הפיקות הינו טכניקה כללית לטיפול בנתוני ההתקנים. מנגנון סגמנט הפקודה של 102, הוא שיטה לביצוע ק/פ ישיר לכניסות של ההתקנים. שילוב של אמצעים אלה הו שיפור משמעותי לעומת 205. תרשים 31 מראה את השיטות העומדות לרשות :ישום ב-065/2 לביצוע ק/פ. סדר ביצוע הק/פ הינו תוצאה ישירה של הסביבה רבת המשימות, שבה משאבי המערכת מתחלקים בין מספר יישומים. בטביבה כזאת יש צורך בכללים ל0/פ, כך שהמשתמשים בהתקנים בו-זמנית, *וכלו "לחיות בשלום" זה עם זה. המישקים והמנגנונים של 05/2 כופים את כללי הגישה האלה היכן שאפשר. במספר מקרים, ליישום עצמו יש אמצעי בקרה המאפשר שליטה על הדרך, שבה יישום אחר *וכל לפנות להתקן שנמצא כבר בשימוש. לדוגמה, מערכת הקבצים מאפשרת ליישום לציין האם ואיך אפשר להתחלק בקובץ עם משתמשים אחרים. כאשר יישום *יכול לגשת ישירות לכניסה של התקן כלשהו, הוא חייב למלא אחר כללים מוסכמים שיאפשרו לו לטפל בהתקן, אפילו אם הוא משתתף בו עם יישומים אחרים. להתקן כמו מסך, אשר ק/5 ישיר נעשה. בו לעתים קרובות, יש תת-מערכת תצוגה עם פרוטוקול 9/0 ומספר מישקים. מישקים אלה מאפשרים ליישום לטפל בצורה ישירה במתאם התצוגה, ואינם מונעים את השימוש במסך על-ידי מספר *ישומים באותו זמן. סגמנט הפקודה וו תת-מערכות ב-05/2 מפקח ההתקנים ב-05/2 תצוגה 10 מקלדת | פמא עכבר טס מערכת הקבצים ב-05/2 תרשים 31. מישקי התקשרות עם התקני ק/פ 127 התקנים מערכת | תת-מערכת בקרת |מנגנון| 107 קבצים ק/פ פיקותח : : בו נפוצים לא || צצ הפ - 4 שש ג 4 . ז צ - - ט טש | % צ א ץצ ₪ כו (ק205866) לא : תרשים 32. ביצוע פעולות ק/5 ב-05/2 | 5 זצ 4 א || אפשרויות הק/9פ ב-025/2) נותנות רמה בסיסית של תפקוד למספר התקנים, בסיוע של ה-67?16:5 660166 המסופקים יחד עם מערכת ההפעלה. תרשים 32 מתאר את התועלת במישקי הק/פ ובמנגנונים השונים. הטבלה מתייחסת להתקני ק/9 נפוצים הנתמכים על-ידי 025/2) וה-8:ז6ש611 660106 שלה. מפתחי :ישומים ותת-מערכות :כולים להתאים לרצונם פונקציות עבור *חידות 5/2 מסוימות, באמצעות הכלים של המערכת. מערכת ניהול הקבצים מבחינה תפקודית, מערכת התוכנה לניהול הקבצים ב-05/2 הינה מרכיב חשוב בביצועי הק/9פ. היא מאפשרת ליישום לבצע את הדברים הבאים: * לפנות לסוגים רבים של התקנים. * לשתף גישה להתקנים, או להגביל את הכניסה אליהם. * לנתב מחדש ק/5 מהתקן אחד למשנהו. בנוסף לכך, יש מספר *תרונות הנמצאים מעבר לאפשרויות הביצוע של מישקי מערכת ניהול הקבצים: 18 * תאימות עם 05כ. גישה ושימוש בקבצים עם שירותי מערכת ניהול הקבצים של 05/2 דומה לטיפול בקבצים עם 05כ2, מכיון ששתי מערכות הקבצים תואמות ביניהן. הכוונה בתאימות היא, שאתה :כול ליצור קובצ ב-05כ ולהשתמש בו ב-025/2. וגם להיפך, תוכל ליצור קוב+ ב-05/2 ולהשתמש בו ב-2)025. תכונה זו חשובה ביותר לתאימות המערכות ועבור הגירה של יישומי 05 ל-05/2. = מנגנון שיתוף הקבצים נמצא באופן קבוע בזיכרון (%ת65146ת). אחד ההבדלים העיקריים בין מערכת ניהול הקבצים של 05/2 ובין זו של 205 הוא הזמינות של מנגנון שיתוף הקבצים. ב-05/2) שיתוף קבצים מבוצע בצורה אוטומטית על-ידי התוכנה הנמצאת דרך קבע בזיכרון. ב-2005 אתה חייב להריצ קודם את התכנית 510.88 לפנ שמערכת ניהול הקבצים תוכל לבצע את שיתוף הקבצים. זאת אומרת, שלמערכת הקבצים ב-05/2 יש תמיד את היכולת לבקר איך *ישומים יפנו לקבצים. לגבי מערכת הקבצים ב-025)כ2, שיתוף הקבצים :בוא, או שלא יבוא, לידי ביטוי כתלות בהרצה של תכנית השירות מאמ.שת14 על-ידי משתמש הקצה. = ניהול אמצעי אחסון נתיקים. הבדל נוסף בין מערכת הקבצים של 05/2 לבין זו של 05 הוא היכולת לנהל אמצעי אחסון נתיקים. מערכת הקבצים של 05/2 עורכת מעקב אחר אמצעי האחסון הנתיקים במטרה להבטית את שלמות קבצי הנתונים. לדוגמה, אם משתמש הקצה הוציא את הדיסקט לפני שהיישום סיים לעבוד, ‏ 05/2 תורה למשתמש להחזיר את הדיסקט המסוים לכונן. בסביבת תפעול רבת משימות, יש סיכוי רב שיתרחשו פעולות ק/5פ רבות. מנגנון ניהול יחידות האחסנה ההיקפיות (כרכים - פ6מתט[סט) עוקב אחר השימוש בהן "ודע איזה מבין הכרכים הנתיקים נמצא בשימוש. בדרך כלל, מקובל לחשוב שמערכת ניהול הקבצים הינה מנגנון לביצוע פעולות קלט/פלט בהתקנים לאחסון קבצים. אולם, ניתן להשתמש במערכת זו לביצוע פעולות ק/9פ גם בהתקני תווים כמו המדפסת, או קווי תקשורת אסינכרוניים. התקנים אלה נקראים התקנים סטנדרטיים (2601065 6ז08ת5%8). מערכת הקבצים משתמשת בק/9 גם לגבי הצעור, שהוא קוב מדומה המשמש בתקשורת בין תהליכים. רשימת ההתקנים שמערכת הקבצים יכולה לטפל בהם כוללת אפילו סוג מיוחד של התקן המאחסן קבצים - כונן דיסק/דיסקט לוגי. בהמשך, נדון בשימושים השונים של מערכת הקבצים עבור הסוגים השונים של ההתקנים. התקנים המאחסנים קבצים התקנים המאחסנים קבצים הם בד"כ דיסק קשיח או דיסקט. מערכת הקבצים היא למעשה תת-מערכת המנהלת התקנים המאחסנים קבצים. מערכת הקבצים שולטת על סוג הנתונים שיאוחסן ועל המיקום שלו בהתקן ומכתיבה את הצורה שבה *וכשר ההתקן כדי שיוכל לאחסן נתונים. זאת למעשה פעולת הפירמוט (+אתהס1). מערכות הקבצים ב-05/2 וב-205 משתמשות בטבלה להקצאת קבצים (116ת זהת - 718016 ם0ס41100861) לשם ניהול הנתונים בהתקן. לגבי הדיסקט זאת אומרת שאתה מריף את תכנית השירות 0%1471ע. דיסק קשיח יש לחלק תחילה למחיצות (עם תכנית השירות 215%ת), ולאחר מכן לפרמט את המחיצה הרצויה. מערכת הקבצים מקצה אות אחת או *ותר לכונן של ההתקן. אות זו משמשת 1259 להגדרת התקן לוגי. אם במערכת יש שני כונני דיסקטים, היא תקצה לכל כונן אות זיהוי אחת נפרדת. מערכת הקבצים :כולה לייעד לכונן הדיסקטים עד שתל* אותיות כונן. במקרה שיש רק כונן אחד, מערכת הקבצים תיעד לו את האותיות ‏ ":8" ו-":ס", שייצגו שני כוננים לוגיים נפרדים. הדבר מאפשר להעביר נתונים בין שני דיסקטים, למרות שיש רק כונן פיסי אחד. התקן המאחסן קבצים, כמו דיסק קשיח, ניתן לחלוקה למספר מחיצות. כל מחיצה יכולה לתפקד כהתקן נפרד לאחסון קבצים הנקרא דיסק לוגי. יישום צריך לטפל בהתקן לאחסון קבצים באמצעות אות הכונן בלבד, *ישום פונה בעיקר אל קבצים ולא אל התקני האחסון. קובצ כולל קבוצה של נתונים המאוחסנים בהתקן לאחסון קבצים. כך, יישום משתמש באות הכונן כדי לבחור בהתקן לוג', ובשם של קוב כדי לזהות נתונים מסוימים. מערכת הקבצים משתמשת במידע זה כדי לאתר את הנתונים בהתקן לאחסון הקבצים. התאימות של מערכות הקבצים ב-2205 וב-025/2) מאפשרת עקביות בכללי מתן השמות לקבצים. שס קוב ב-25/2) הוא מחרוזת תווים שאחריה רשומים (לא חובה) נקודה וסיומת. שם קובאצ ב-025/2) הוא בעל המאפיינים הבאים: = מחרוזת השם הראשי *כולה להיות באורך של 1 עד 8 בתים (תווים). * אורך הסיומת, שאה חובה, נע בין 1 ל-3 בתים (תווים). = כל התווים הם תוו* 85011, פרט לתווים שאינם מותרים:- - רווחים. - תווי 845611 בערכים הקסדצימליים מתחת ל-20. - תווים מיוחדים: ? > + > : | ),. "7 רן[] בסביבת 05/2, כאשר שם קוב ארוך *ותר מהתבנית [8.3] הוא אינו מקוצ, אלא גורם להודעת שגיאה. בסביבת ה-20)025, השם מקוצ% לתבנית [8.3] כדי שיהיה לפי הכללים. ב-12005 התווים '*' ו-'?' משמשים כתווי*ם גלובליים. התו '?' מייצג תו בודד והתו '*' מייצג קבוצה של תווים שאינם מזוהים במפורש. פרוטוקול הק/פ ב-05/2 הוא "ק/פ מבוסס מקשרים", אשר זהה לפרוטוקול ב-005). מקשר הוא ערך בן 16 סיביות שהמערכת משתמשת בו כמזהה למידע על קוב+ מסוים. *ישום חייב לעשות את הדברים הבאים בפעולות קלט/פלט: * לכונן קשר, או לפתוח (א02₪), קובצ קיים, או קובץ חדש, כדי לקבל מקשר לקובף. * לקרוא נתונים מהקובף, או לכתוב אליו בעזרת המקשר לקוב>. *" לסגור את הקוב (0105₪), ועל-ידי כך לשחרר את המקשר לקוב>. כדי לפתוח או ליצור קוב עם מערכת הקבצים של 05/2, צריך לתת פרמטרים הזהים לאלה הדרושים במערכת הקבצים של 025כ2. בתרשים 33 תמצא סיכום של הפרמטרים, אשר מתייחסים לפעולות של פתיחה ויצירה של קובצ. תהליך של 2 מספק מחוון למחרוזת תווי 856011 המציינת את הכונן (לא חובה) ואת מסלול החיפוש במדריך (לא חובה), את שם הקוב ובית עם ערך 00 בהקסה. כאשר כל החלקים של מחרוזת זו נמצאים, היא נקראת שם קוב "תקין בהחלט" (8111100ט) ע11ש1). כאשר קוב נפתח, התהליך חייב לציין את אופן הגישה אליו, ובכך להודיע למערכת הקבצים על סוג הפעילויות שהתהליך מתעתד לבצע בקובצ (קריאה בלבד, כתיבה בלבד, קריאה/כתיבה). התהליך מציין עוד את אופן השיתוף. בכך הוא מודיע על סוג הפעילות שהתהליך מאפשר לתהליכים אחרים לבצע בו-זמנית בקוב> (גישה בו-זמנית אסורה, גישה בו-זמנית מותרת 100 לצורך קריאה, גישה בו-זמנית מותרת לצורך כתיבה, גישה בו-זמנית מותרת לכל מטרה). בתרשים 34 תמצא את ההשלכות השונות של ההרשאות לשיתוף קבצים. בזמן *יצירת קוב חייבים לציין מאפיין (0₪%6כ8%0:1) לקובף, אשר מצביע שהקוב% מיועד לקריאה בלבד, אם זהו קובצ סמוי, קובצ מערכת, קוב ארכיב או שהשם מגדיר תת-מדריך. מרגע שקוב% נפתח או נוצר, המקשר שהתקבל הוא המפתח לק/פ. כפי שתזכור, תהליך הינו יישות שבבעלותה נמצאים משאבי המערכת, וזה כולל את המקשרים לקבצים. זאת אומרת, שכל ה-68065זַת+ בתהליַך יכולים להשתמש באותו מקשר כדי לבצע 9/0 לקובא. מאחר ולכל ה-116805+ בתהליך יש את היכולת להשתמש באותו מקשר לקוב>, הם חייבים להיות מתואמים בינם לבין עצמם כדי למנוע התנגשויות בפעולות ק/פ. ק/פ לקוב+ מבוצע בעזרת המקשר לקובף. המערכת מתחזקת מחוון קריאה/ כתיבה או מחוון ק/פ לקוב>, וקובעת אותו על הבית הראשון בזמן הפתיחה של הקוב. *ישום :כול לבצע ק/פ בקובף בצורה סידרתית באופן אוטומטי, כי מערכת הקבצים מזיזה את מחוון הק/פ למקום בקובצ שבו הסתיימה בקשת הק/פ האחרונה. *ישום יכול לבצע ק/פ בצורה אקראית על-ידי שינוי המקום שבו נמצא מחוון הק/פ הנוכחי (פעולה זו ידועה גם בשם "חיפוש לוגי"). התהליך יכול לבצע ק/פ בצורה אסינכרונית בעזרת שתי טכניקות: שימוש בפונקציות של מערכת הקבצים המטפלות בקריאה וכתיבה בצורה אסנכרונית, או שימוש ב-102086 שיבצע ק/9 בזמן ש-68065ז2+ אחרים בתהליך בצעו פעילויות אחרות. ריבוי המשימות והשלבים הקשורים בביצוע של בקשת ק/9, אינם מתירים למערכת הקבצים להבטיח את ביצוע בקשות הק/פ לפי הסדר שהתהליך ביקש. לדוגמה, אם המאגר של היישום נמצא בסגמנט שהועבר החוצה, מערכת הקבצים תנסה לבצע בקשות ק/9פ אחרות של 6865ת2+ אחרים בתהליך, אשר ניתן לבצעו מיד. בנוסף לכך, ה-ז6ש611 060106 של הדיסק עושה אופטימיזציה של ביצועי ההתקן על-ידי מיון הבקשות שהוא מקבל לפי מספר הסקטור הפותח, במטרה להפחית את הזמן שדרוש לאתר את הנתונים. אם תהליך תלוי בצורה קריטית במידע שעודכן בקובצ בסדר מסוים, אסור לו להתחיל ביצוע של מספר בקשות ק/פ בו-זמנית, אלא עליו להקצות 686זת+ אחד לביצוע כל בקשות הק/פ. כאשר לתהליך אין עוד צורך לבצע 5/7 לקובץ, הוא סוגר את המקשר לקובף. פעולה זו מסיימת את הקשר בין התהליך לבין הקוב וגורמת למערכת הקבצים לעדכן את המידע במדריך ולנקות כל מאגר המכיל מידע הקשור לקובץ. במקרה שהיישום מסתיים בצורה לא שיגרתית, מערכת ההפעלה סוגרת כל מקשר לקוב שהיה בבעלות התהליך (שים לב: המקשר הוא משאב של המערכת). תהליך :כול לציין בזמן שהוא פותח או *וצר קובצ, אם תהליכי הבן שהוא מתחיל *כולים לרשת את המקשר לקוב>. כך, כאשר תהליך האב מתחיל את תהליך הבן, תהליך הבן יקבל העתק לכל מקשר קובצ הניתן לירושה והנמצא בבעלות התהליך. זאת אומרת, שק/5 המבוצע על-ידי תהליך הבן עם מקשר ק/5 שניתן בירושה, ישפיע על תהליך האב (ולהיפך), מכיון שמחוון הק/פ בקובץ *עודכן כתוצאה מק/9 המגיע משני מקשרים קיימים לקבצים. אולם, ניתן לסגור כל אחד מהמקשרים האלה בצורה בלתי תלויה בחברו. תהליך הבן יכול לסגור את המקשר לקובצ שלו, ותהליך האב יוכל להמשיך להשתמש במקשר שלו ולהיפך. 1-1 מצב (21/40 מסקס) אופן הגישה ירושה ירושה (008 תסקס) כתיבה ישירה כתיבה ישירה שגיאות כשלון שגיאות כשלון 8, ט, ת/ט 8, א, 2/ח אפ, טפ, שתפ, אפ חת, חם, שתפ, אפ מאפיין קרא בלבד קרא בלבד הקובצ סמו: סמו (10066ע86%6) מערכת מערכת ארכיב ארכיב מדריך מדריך אופן השיתוף אופן הגישה כ( > 8ע6806ת עַמ6ס (כתיבה בלבד) 8 = קריאה את = 8ע106עח צַח6ע (קריאה בלבד) א = כתיבה אתפ = 411 עַחסע (אין כלל הרשאות) 8 = קר:יאה/כתיבה את = 6חסא צַח26 (קריאה וכתיבה) משטספתף-166עש = כתיבה ישירה תרשים 33. הפרמטרים של ח0ק2050 עבור קבצים אופן הגישה המיועד השח קורא אחד כותבים רבים סוג ההרשאה שניתנה כתיבה בלבד אין קוראים כותבים רבים קורא אחד כותבים רבים קריאה בלבד קוראים רבים אין כותבים קוראים רבים כותב אחד קוראים רבים כותב אחד לא קריאה ולא כתיבה קורא יחיד אין כותבים אין קוראים כותנ *חיד קורא יחיד כותב יתיד הכל מותר קוראים רבים כותבים רבים קוראים רבים. כותבים רבים קוראים רבים כותביםס רבים תרשים 34. ההשפעה של הרשאות על שיתוף קבצים 112 ירושה של מקשרי קבצים הנה הגורם העיקרי המאפשר הכוונה מחדש (קת7001200+1) של 0ק/5. תהליך האב *כול לקבוע למקשר עם מי לפעול, עם קובצ, או עם :עד אחר כלשהו. תהליך האב *כול לפתוח מקשר חדש, או לאלא את המקשר הקיים להתאים את עצמו ליעד מסוים. לאחר מכן הוא *כול להתחיל תהליך בן שישתמש במקשר זה שעבר בירושה. מגבלת המערכת היא שמספר מקשרי הקבצים לא יעלה על 255. לכל תהליך מוקצים בתחילה 20 מקשרים והוא *כול להגדיל את המספר הזה בעזרת פונקציה של המערכת. ההגדלה תלויה במספר התהליכים האחרים במערכת, ובמספר המקשרים שהוקצו להם. התקני תווים בדומה למערכת הקבצים של 05כ, אפשר להשתמש במערכת הקבצים של 05/2 לביצוע ק/פ להתקני תווים. יש לציין שהתקן המכיל תו אינו דומה להתקן המכיל קוב+. מרגע שנשלחו נתונים להתקן תו או התקבלו ממנו, הם אינם ניתנים לשינוי. משלוח של (תונים להתקן תו אינה משנה את הנתונים שכבר נשלחו; קריאה מחדש של נתונים מהתקן אִינה מביאה נתונים הזהים לקריאה הקודמת. זאת אומרת, שיישום חייב לטפל בנתונים בסדר מסוים. להתקני תווים יש גם מאפינים מיוחדים, חלק מהם - התקני קלט (כמו המקלדת) שניתן לקרוא מהם נתונים בלבד וחלק מהם - התקני פלט בלבד (כמו מדפסת) שניתן לכתוב אליהם נתונים. ויש גם התקני 95/7 (כמו התקן לתקשורת טורית), כך שניתן לקרוא מהם ולכתוב אליהם. השלבים הדרושים כדי לגשת להתקני תו ולהשתמש בהם עם מערכת יהקבצים של 02 דומים לאלה הדרושים במערכת הקבצים של 005כ. הפרוטוקול שבו מערכת הקבצים משתמשת לצורך קשר עם התקני התו מבוסס על מקשרי ק/9. מקשר ההתקן דומה למקשר הקובף. זהו ערך בן 16 סיביות שמערכת הקבצים משתמשת בו כמזהה *יחודי למידע על ההתקן. *ישום חייב לעשות את הדברים הבאים: 1. לפתוח את ההתקן בעזרת שם ההתקן כדי לקבל מקשר להתלן. 2. לכתוב להתקן, או לקרוא ממנו בעזרת המקשר להתלקן. 3. לסגור את ההתקן בעזרת המקשר להתקן. כפי שצפוי, כללי מתן השמות להתקני התווים זהים ב-05/2 וב-205. בשתי המערכות ה-68ש0:1 060106 של התקן התו מספק את השם. שם התקן התו הינו מחרוזת של תווי 456.11 הממלאת אחר הכללים הבאים הדומים לאלה של הקבצים: = גודל המחרוזת הוא בין 1 ל-8 בתים. * כל התווים הם תווי 850111 פרט לתווים שאינם מותרים: - רווחים. - תווי 456111 בערכים מתחת לערך ההקסדצימלי 20. - תווים ממיוחדים: < > + > : | :,." 7 צ1] 2 כוללת 65ש6:1 660106 להתקני תו מסוימים, לשימוש של היישומים המופעלים בה. להלן ההתקנים ושמותיהם: 133 אסס התקני הקונסולה (מסך ומקלדת). 6% מקלדת. 3, 2 , 11 שלוש מדפסות מקביליות. טא התקן דמי. אהת שם נוסף למדפסת המקבילית הראשונה. ו מסך. ניתן לפנות להתקני הקונסולה, למסך ולמקלדת באמצעות מערכת ניהול הקבצים של 05/2, אך השימוש בהם הוא בד"כ באמצעות. תת-המערכות להתקני התצוגה והמקלדת. כדי שתוכל להשתמש בהתקני תווים אחרים עם מערכת הקבצים, יש צורך להתקין 58 660106 בקובא 10.545ע60 בעזרת הפקודה -168שמק. כדי לפתוח התקן תו, היישום צריך לציין את שם ההתקן במקום שם הקובצ, ללא שם כונן וללא מסלול חיפוש. *ישום אנו *כול להגדיר התקן תו, כי הדבר נעשה באמצעות ההתקנה של ה-61ש671 660166. בפקודת המערכת 03% (גם ב-205 וגם ב-05/2), יש לשם ההתקן עדיפות. על שם הקובף. זאת אומרת, ששם הקובצ צריך להיות שונה משם ההתקן. בנוסף לכך, התהליך מציין את אופן הגישה, המגדירה את סוג הפעילות שהתהליך מתכוון לבצע בהתקן התו (קריאה בלבד, כתיבה בלבד, כתיבה/קריאה). התהליך צריך גם לציין את אופן השיתוף או סוג הפעילות, שהתהליך יאפשר לתהליכים אחרים לבצע בו-זמנית בהתקן התו (גישה בו-זמנית אינה מותרת, מותרת גישה בו-זמנית לקריאה בלבד, מותרת גישה בו-זמנית לכתיבה בלבד, או גישה בו-זמנית מותרת לכל צורך). בתרשים 34 תמצא את ההשלכות של ההרשאות השונות על שיתוף הקבצים. ההרחבה של פונקציית שיתוף הקבצים במערכת הקבצים של 05/2 אשר כוללת התקני תו, הינה שיפור לעומת מערכת הקבצים של 05כ. יתר על כן, בעזרת ה-660106 67161 של התקן התו ניתן לציין זאת בקובצ ה-5צ10.5קא60. פונקציית המערכת אמק מחזירה מקשר המזהה את ההתקן למערכת הקבצים. .בתרשים 35 תמצא סיכום של הפרמטרים הדרושים לפונקציה זו כדי שתוכל לפתוח התקן תו. בדומה למקשר הקובצ, גם מקשר ההתקן נמצא בבעלות התהליך. לכן, כל ה-6805זת+ בתהליך יכולים להשתמש במקשר כדי לבצע 5/7 להתקן והם חייבים להיות מתואמים בינם לבין עצמם כדי למנוע התנגשולות בביצוע פעולות ק/9. בדומה למקשרי הקבצים, תהליך יכול לציין בזמן שהוא פותח את התקן התו, אם תהליכי הבן שלו יוכלו לרשת את המקשר להתקן. במלים אַחרות, תהליך הבן *כול לקבל עותק של מקשר ההתקן המתאים לכל אחד ממקשרי ההתקנים הניתנים לירושה והנמצאים בבעלות התהליך. תהליך הבן :כול לבצע ק/פ להתקן התו מבלי לפתוח אותו, תהליכי הבן והאב חייבים לתאם את הק/פ להתקן, מכיון שאופי הנתונים הקשורים בהתקן התו הוא "קרא פעם אחת ו/או כתוב פעם אחת". אולם, ניתן לסגור כל אחד מהמקשרים ללא תלות במה שקורה לחברו. תהליך הבו יכול לסגור את מקשר ההתקן שלו, ותהליך האב *וכל להמשיך להשתמש במקשר שלו ולחיפך. ניתן להשתמש במקשר ההתקן בפונקציות לקריאה וכתיבה כדי שהן *וכלו לבצע את הק/פ להתקן. יישום *כול לבקש שמספר בתים מסוים *ועבר להתקן, ומערכת הקבצים ב-05/2 תודיע ל-ז6ש011 660106 של התקן התו שיבצע ק/5 עם המספר הזה של בתים. הנוהל הזה שונה ממערכת הקבצים של 205, שבה אין הבדל בין בקשה המכילה בתים רבים לבין בקשה המכילה בית אחד בלבד. בדומה לקבצים, התהליך יכול לבצע 9/7 בצורה אסינכרונית בעזרת שתי טכניקות. הוא יכול 14 להשתמש בפונקציות של מערכת הקבצים המטפלות בקריאה וכתיבה בצורה אסינכרונית, | או להשתמש ב-7080ַת+ שיבצע ק/9 בזמן ש-6865ת? אחרים בתהליך יבצעו פעילויות אחרות. ניתן להשתמש במקשרי ההתקנים עם פונקציות אחרות המבוססות על שימוש במקשרים. *ישום אינו יכול לבצע ק/פ לבתים בצורה אקראית מכיון שמחוון הק/פ מתייחס רק לקבצים. אולם, *ישום יכול לשכפל מקשרי קבצים. בדומה לק/פ בקבצים, אין מערכת הקבצים *כולה להבטיח את ביצוע בקשות הק/פ השונות לפי הסדר שהתהליך ביצע אותן. לדוגמה, אם המאגר (:116טם) של היישום נמצא בסגמנט שהועבר החוצה, מערכת הקבצים תנסה לבצע בקשות ק/פ אחרות להתקן השייכות ל-768065ת+ אחרים בתהליך, ואולי היא תצליח לבצע אותם. אם תהליך תלוי בצורה קריטית במידע שנשלח להתקן, או התקבל ממנו בסדר מסוים, אין הוא צריך להתחיל ביצוע בו-זמני של מספר בקשות ק/פ, ועליו להקדיש 680ז0+ אחד בלבד לביצוע כל בקשות הק/פ של התהליך, ולא להתחיל מספר 268065+ לביצוע ק/פ לאותו התקן. כאשר לתהליך אין עוד צורך לבצע ק/פ לקוב>, הוא סוגר את המקשר להתקן, ובכך הוא מפסיק את הקשר בינו לבין ההתקן. במקרה שהיישום מסתיים בצורה לא סדירה, מערכת ההפעלה סוגרת כל מקשר להתקן שהיה בבעלות התהליך. המגבלה של המערכת על מספר מקשרי הקבצים כוללת גם את מקשר ההתקנים. לכן ההקצאה הבסיסית של 20 מקשרים לתהליך תופסת הן לגבי קבצים והן לגבי התקנים. תהליך *כול להגדיל את מספר המקשרים העומדים לרשותו בעזרת פונקציה של המערכת. הגדלה זו תלויה במספר התהליכים האחרים במערכת ובמספר המקשרים שהוקצו להם. פרמטר תיאור : מצב (21.40 מסקס) אופן הגישה (028 מסקס) ירושה שגיאות כשלון 5, א, 5/ט הפ, אפ, אתע, אפ אופן השיתוף אופן הגישה חת = 8ע30800 צַם26 (כתיבה בלבד) 8 = קריאה שת = 8ע1662עא צַםת6כ2 (קר*אה בלבד) א = כתיבה תת = 411 עַםת6כע (אין כלל הרשאות) 8 = קר:אה/כתיבה את = 6תסא עַמם26 (קריאה וכת*בה) תרשים 35. הפרמטרים של ח6ק7ק2090 עבור התקני תו 15 התקנים סטנדרטיים מספר התקנ* תווים מוכרים אוטומטית על-ידי מערכת הקבצים. התקנים אלה הם התקן הקלט הסטנדרטי (260106ע ע[זעא1 068:6ם5%8), התקן הפלט הסטנדרט: (260166 00112101 6816מ5+8) והתקן השגיאה הסטנדרטי(27000 0876ת518 6), להתקנים הסטנדרטיים יש מקשרים המוגדרים מראש וכל התהליכים יכולים להשתמש בהם. מקשרים אלה הינם העתקים של מקשרים המשמשים את התקני הקונסולה (501ת00). תהליך :כול לקרוא מהמקלדת בעזרת מקשר קלט סטנדרטי, או לכתוב למסך הן בעזרת מקשר הפלט הסטנדרטי והן בעזרת מקשר השגיאה הסטנדרטי. ההבדל בין התקן הפלט הסטנדרטי להתקן השגיאה הסטנדרטי הוא בכך, שלא ניתן לנתב ק/פ (6617000) המיועד אל התקן השגיאה הסטנדרטי. ניתן לנתב את מקשרי הפלט והקלט הסטנדרטיים, וגם משתמש הקצה יכול לעשות זאת משורת הפקודה. אם תהליך צריך להציג למשתמש הקצה הודעה הדורשת לבצע פעולה מסוימת (ולכן לא ניתנת לניתוב לקוב, לדוגמה), היישום צריך לכתוב את ההודעה בעזרת מקשר השגיאה הסטנדרטי. בדומה להתקני תווים אחרים, המקשרים (6165ם18) של ההתקנים הסטנדרטיים יכולים לשמש פונקציות מערכת המבוססות על מקשרים. פונקציות אלו כוללות את 586806סכ, 6, סבתע5 205680 | 6מע12050/11605, | 61056פסע, ו-6116ת118קטכ5סכ. מערכת הקבצים של 05/2 אינה תומכת בהתקן חיצוני (עז1118אט8) סטנדרטי, או בהתקן מדפסת סטנדרטי. התקנים אלה מוכרים על-ידי מערכת הקבצים של 5. צינורות צינור הוא התקן של קובצ מדומה (256160-1116), המאפשר לתהליכים השייכים לאותה משפחה להתקשר ביניהם בצורה הדומה לביצוע 5/7 לקובץ (ראה תקשורת בין תהליכים בפרק 3). בכל מקרה, צינור אינו התקן אחסון, אלא הוא קיים כמבנה נתונים בזיכרון. כדי לבצע ק/5 לצינור יש צורך להשתמש בפונקציות המבוססות על מקשרים. לשם כך, הבה נערוך חזרה קטנה. בתחילה, התהליך *וצר את הצור בעזרת פונקציית מערכת מיוחדת (205118860106), אשר מחזירה שני מקשרים לצנור: אחד משמש. לקריאה מהצינור והשני משמש לכתיבה לצינור. כאשר תהליך האב מתחיל את תהליך הבן, תהליך הבן יורש את המקשר המאפשר כתיבה לצעור. לאחר מכן ניתן להשתמש במקשרים אלה לביצוע ק/5 לצינור עם פונקציות לקריאה וכתיבה של מערכת הקבצים. כאשר תהליך מסיים להשתמש בצינור, הוא מנתק את החיבור לצינור על-ידי סגירת המקשר. המקשרים לצינור הם מקשרים הנמצאים בשימושה של מערכת הקבצים, ולכן הם חלק מאותו מאגר של מקשרים שאליו שייכים גם מקשרי הקבצים ומקשר: ההתקנים. מספר התקני התווים, הצינורות והקבצים הנמצאים בשימוש של יישומים אחרים *קבע את מספר המקשרים שתהליך :וכל להשיג. 156 פרמטר תיאור מצב (100ע תססס) אופן הגישה פתיחה ישירה - 25 (028א תספס) תרשים 36. הפרמטרים של ת6ק12050 עבור דיסק/דיסקט לוגי דיסק/דיסקט לוגי דיסק/דיסקט לוגי הוא התקן המוכר ליישום כאות כונן. דיסק/דיסקט לוג: הוא שם אחר למחיצה על דיסק קשיח, או על דיסקט. באופן רגיל, *ישום פונה לדיסק/דיסקט לוגי בכל פעם שהוא מבצע 5/0 לקובאצ, מכיון שקובצ נמצא על מצע מגנטי המזוהה על-ידי אות הכונן. במצבו הבסיסי, דיסק/דיסקט לוגי אינו יכול לאחסן נתונים ולכן יש צורך לפרמט אותו. כדי לפרמט את המחיצה על הדיסק/דיסקט, חייבת תכנית השירות להכנס אליו, או לפתוח אותו, באמצעות מערכת הקבצים. השם המשמש לזיהוי ההתקן הלוג: דומה לשם קובא, פרט לכך שהוא מציין את הכונן (תו כונן, נקודותיים) בלבד. פונקציית המערכת 028% מחזירה מקשר מיוחד להתקן, אשר משמש את הפונקציה 20526010206401 (ראה הפקודות ל-100601 קטגוריה 8). לאחר שתכנית השירות של המערכת מפרמטת את ההתקן הלוגי, היא סוגרת את המקשר המיוחד להתקן. בתרשים 36 תמצא סיכום של הפרמטרים הדרושים לתכנית השירות כדי לפתוח דיסק/דיסקט לוגי. מישקים לשימוש כללי מישקים אלה משרתים את כל מגוון האובייקטים שאליהם י*כולה מערכת הקבצים להתקשר, מהתקני תו ועד לצינורות. 6 סוגר את המקשר הספציפי (קובצ, התקן תו, צינור, התקן סטנדרטי, או דיסק/דיסקט לוגי) ומנתק את הקשר של התהליך לאובייקט. לגבי קובצ, מערכת הקבצים מעדכנת את המידע אודות הקוב+ במדריך, ומנקה את המאגרים ששימשו לק/פ. לגבי התקן התו, מערכת הקבצים תודיע ל-660166 ץ על מצב 010258, אם צריך. 6 פס מחזיר מקשר, שהוא העתק של המקשר הספציפי שהתהליך ביקש. כדי להוריש מקשר לתהליך בן, או כדי להעביר מקשר, התהליך צריך לשכפל את המקשר שנמצא בבעלותו. ניתן לעשות זאת עם מקשרי קבצים, מקשרים לצינורות, מקשרים להתקני תו, או מקשרים להתקנים סטנדרטיים. מערכת 17 הקבצים *כולה ליצור מקשר חדש, או להשתמש במקשר הקיים הנמצא בבעלות התהליך. אם התהליך רוצה שמערכת הקבצים תגרום לכך שהמקשר הקיים יהיה העתק של מקשר לאובייקט הספציפי, יהיה עליה לסגור את המקשר הקיים לפנל שהיא תוכל להגדיר עבורו אובייקט חדש. כל פעולת ק/5 המבוצעת עם המקשר המועתק גורמת-לעדכון מחוון הק/פ בקוב>, אשר מועבר לכל ההעתקים של אותו מקשר. מאידך, ביצוע 010255 בעזרת מקשר מועתק משפיע רק על אותו מקשר - העתקים אחרים של המקשר ישארו פעילים. 050060 מחזיר מקשר לקובף, להתקן תו, או לדיסק/דיסקט לוגי. אם האובייקט הוא קובף, היישום מספק את הדברים הבאים: * שם הקובף. = הפעולה שצריך לבצע (הפרמטר 7186 םמ006): 0 אם הקוב> קיים, היישום *כול לבחור בין: - כשלון הבקשה, - פתיחת הקוב>, - החלפת הקוב>. ס אם הקובף אינו קיים, היישום *כול לבחור בין: - כשלון הבקשה, - יצירת הקוב>. = גודל הקובצ לצורך ביצוע הפעולות | 02247₪ (יצירת הקובף) ו-32105א (החלפת הקובף). = מאפייני הקובצ לצורך ביצוע הפעולות 6047 ו-08/זקמת (קריאה בלבד, סמוי, מערכת, מדריך או ארכיב). המאפיינים חייבים להתאים למאפיינים הנמצאים במדריך על הקובצ העומד להיות מוחלף. לא ניתן להחליף קובצ המוגדר לקריאה בלבד. * אופן הפעולה (הפרמטר 11066 ם6ק0). 0 שימוש במאגרים של מערכת הקבצים לצורך העברת (תוני הקבצים (218₪ הקטסזת106-1ז/? - כתיבה ישירה). בעת ביצוע פעולת ק/פ, המאגרים של מערכת הקבצים משמשים לאגירת נתוני הקובצ לפי הצורך. ביצוע בקשת הק/5 יכול להסתיים לפני שכל נתוני הקוב נכתבו למצע האחסון החיצוני (16618). היישום *כול להודיע למערכת הקבצים לשלוח את נתוני הקובצ+ אל הכונן בכל בקשת 5/0 וכך, לעקוף את העבודה במאגר. כאשר מסתיימת פעולת ק/9, הנתונים *היו בפועל במצע האחסון החיצוני. 0 הטיפול בשגיאות (18₪/ 8ז0תזם-811/ - שגיאות-כשלון). שגיאות של פעולות במצע אחסון *כולות להיות מדווחות באמצעות השיגרה לטיפול בשגיאות קריטיות של מערכת ההפעלה. הן תגרומנה להתערבות המפעיל, או שתדווחנה קוד שגיאה אל היישום, אשר יטפל בשגיאה. 0 אפשרות להוריש את המקשר שהתקבל (186? 06ת189ז6תת1 - *רושה). תהליכי| הבנים אינם *כולים לרשת מאפינים מסוימים כמו: 8 תשטסתת0/106-1 ו-188ע פזסעזם-811ק. ס מטרת הפניה לקובצ (אופן הגישה - 1006 8200655): קריאה בלבד, כתיבה בלבד, קריאה/כתיבה. 0 צורת השיתוף שהיישום מאפשר ליישומים אחרים (אופן השיתוף - 6 אַתוַזאַת5): כתיבה בלבד, קריאה בלבד, אין הרשאה כלל, מותרת קריאה וכתיבה. אם האובייקט החוא התקן תו, היישום חייב לספק את הפרטים הבאים: * שם התקן התו. * סוג הפעולה כמו א02₪ להתקן קיים (הפרמטר 188 ם006). 18 * אופן הפעולה (הפרמטר 1/1066 ת6קס). - אפשרות להוריש את המקשר שהתקבל (182/ 6ס6ת1+8זפתת1 - *רושה). - הטיפול בשגיאות (7188 פ8עסזזת-2811 - שגיאות-כשלון). שגיאות יכולות להיות מדווחות באמצעות השיגרה לטיפול בשגיאות קריטיות של מערכת ההפעלה. שימוש בשיגרה זו יגרום את התערבות המפעיל. ניתן גם לדווח קוד שגיאה ישירות ליישום, אשר *טפל בשגיאה. - מטרת הפניה להתקן (אופן הגישה - 11066 400055): קריאה בלבד, כתיבה בלבד, קריאה/כתיבה. - צורת השיתוף שהיישום מאפשר ליישומים אחרים (אופן השיתוף - 6 אתנזא8ת5): כתיבה בלבד, קריאה בלבד, אין הרשאה כלל, מותרת קריאה וכתיבה. מערכת הקבצים כופה את אופן השיתוף כפי שנקבע על-ידי ה-ז0ט1ז6 0860106 של ההתקן. אם ה-67ש671 660166 מורה למערכת הקבצים לא לאל> שיתוף להתקן, השיתוף לא יתקיים. אם האובייקט הוא דיסק/דיסקט לוגי, היישום מעביר את הפרטים הבאים: = מפרט הכונן (ת506011108110). * סוג הפעולה, כמו א025 להתקן קיים (הפרמטר אַ18ע ת6קס). = אופן הפעולה (הפרמטר 11066 ת6קס). - סוג ההתקן (ק218 ת6ק0 כפס). 86 ממחזיר מידע על מצב המקשר, ללא תלות בסוגו. התהליך יכול לקבוע את הדבריס הבאים לגבי המקשר: * אם המקשר מייצג דיסק/דיסקט לוגי. = אם המקשר ניתן לירושה או לא. = אם סיום הכתיבה לקובצ מצביע על כך שהנתונים הועברו למצע מגנטי, או שהם נמצאים/לא-נמצאים במאגרים של מערכת הקבצים. * אם שגיאות קריטיות בק/9פ לקבצים מטופלות על-ידי מערכת ההפעלה, או מדווחות ישירות לתהליך. * את סוג הגישה שניתן לבצע לאובייקט. * את סוג השיתוף המותר לאובייקט. 6 פס מוסר את סוג המקשר המסוים: מקשר לקוב, מקשר לצינור, או מקשר להתקן תו. אם המקשר הוא מקשר להתקן תו, ההתקן יזוהה כמדפסת, כמסך או כהתקן אחר. אם המקשר הוא מקשר לדיסק/דיסקט לוגי, הוא *זוהה כמקשר לקובא. 46 כקלורא מספר מוגדר של בתים מקובץ, מצינור, או מכל התקן המזוהה על-ידי המקשר. לא יהיה ניתן לקרוא נתונים מההתקן, אם הרשאת הגישה לקוב> אינה כוללת קריאה. אם ניתן להשיג את הנתונים, התהליך חייב לבדוק את מספר הבתים שהוחזרו בפועל, מכיון שיתכן שלא היה ניתן לקבל את המספר המבוקש של הבתים. לדוגמה, אם מספר הבתים שהוחזר בפועל הוא אפס, המשמעות היא שהתהליך ניסה לקרוא מעבר לסוף הקוב>. מחוון הק/פ: בקוב* מוזז למקום הבא לצורך ק/5. כלומר, המקום החדש שווה למיקום ביצוע לפני הבקשה ועוד אורך הנתונים שהתקבלו. 6 סכ קריאה אטינכרונית של מספר מוגדר של בתים מקובף, מצינור, או מכל התקן המזוהה על-ידי המקשר. התהליך מעביר אתת 311 וקוד החזרה של מאגר בנוסף לפרמטרים הרגילים של 2058686. התהליך חייב להפעיל את אתת 199 ה-41/1א (בעזרת 1205561156%) לפני שהוא קורא ל-6מע2058680/5. לאחר שמערכת הקבצים מסיימת את הפעולה ומעדכנת את מחוון הק/5, היא מנקה את האתת. בנקודה מסוימת, התהליך ממתין (205560//81%) שאתת 4% יהיה זמין. רק אז הוא *כול לבחון את הקוד המוחזר ואת מספר הבתים שנקראו. 6 כקובע את המצב של המקשר, ללא תלות בסוגו. היישום *כול לקבוע את הדברים הבאים: * את סוג המקשר שתהליך הבן *רש. * בקשת הק/פ תחזור ליוזם לאחר שהנתונים הועברו למעשה למצע המגנטי. * שגיאות קריטיות בעת פעולות ק/פ5 לקובצ *טופלו על-ידי מערכת ההפעלה, או *דווחו ישירות לתהליך. 01 קובע את מספר המקשרים המקסימלי שיעמדו לרשות התהליך. כל המקשרים הפתוחים הנמצאים בבעלות התהליך אינם מושפעים על-ידי פעולה זו. 6 כותב מספר מוגדר של בתים לקובף, לצינור או לכל התקן המזוהה על-ידי המקשר. הנתונים לא *ישלחו להתקן אם הקובא מאופיין כקריאה בלבד, או שהרשאת הגישה לקוב% אינה כוללת כתיבה. התהליך חייב לבדוק את מספר הבתים שנכתבו בפועל להתקן. לגבי קבצים, אס מספר הבתים שנכתבו שונה ממספר הבתים שהיו צריכים להכתב, יתכן שאין מספיק מקום במצע המגנטי להכיל את הנתונים. מחוון הק/פ בקוב מוזז למקום הבא לצורך ק/5. כלומר, המקום החדש שווה למיקום לפני ביצוע הבקשה ועוד אורך הנתונים שהתקבלו. בבקשת כתיבה של נתונים הנמצאים במספר סקטורים (סקטור הוא בן 512 בתים), הסדר שבו הסקטורים *כתבו במצע האחסון אינו מובטח מראש. אם יש צורך שכמות גדולה של נתונים תכתב בסדר מסוים, היישום צריך לבצע פעולות כתיבה נפרדות ולציין את הדרישה לכתיבה *שירה (2188 תקטסעת166-1ע/ט %). בדרך זו הנתונים *כתבו ישירות למצע המגנטי לפני שהפיקוח *חזור לתהליך. 0566 כתיבה אסינכרונית של מספר מוגדר של בתים אל קוב>, צינור, או אל כל התקן המזוהה על-ידי המקשר. התהליך מעביר אתת ]בת וקוד החזרה של מאגר בנוסף לפרמטרים הרג*לים של 2050/1166 התהליך חייב לאתחל את אתת ה-2411 (20556056%6) לפני שהוא קורא ל-6תע59ב0580/216. לאחר שמערכת הקבצים מסיימת את הפעולה ומעדכנת את מחוון הק/5פ, היא מנקה את האתת. בנקודה מסוימת, התהליך ממתין (1208556110/81%) שאתת ]גת יהיה זמין. רק אז הוא יכול לבחון את הקוד המוחזר ואת מספר הבתים שנכתבו. מישקים המבוססים על קבצים סיכמנו בשתי קטגוריות את מישקי מערכת הקבצים שתוכננו במיוחד לקבצים: מישקים המבוססים על שם הקובף, ומישקים המבוססים על המקשר לקוב. המישקים המבוססים על שם הקוב דורשים מחרוזת 85611 המסתיימת בבית ת00 (ידוע גם בשם 850112). עבור המישקים המבוססים על מקשרים דרוש מקשר לקובא. הערה: הסימון תתת או תתתתת בהמשך מציין תווים בקוד הקסה-דצימלי (ג). 120 מישקים המבוטסים על שמות קבצים ניתן להשתמש במישקים אלה עם קבצים, מבלי להתחשב בכך שהם נפתחו או לא. אולם, מספר פעולות דורשות שהקוב> לא *היה בשימוש. 6 מוחק קובף מסוים במסלול חיפוש מוגדר. אם לא הוגדר מסלול חיפוש, הוא מוחק את הקוב מהמדריך הנוכחי. קבצים עם המאפיין של קריאה בלבד אינם ניתנים למחיקה. אם רוצים למחוק קוב כזה, חייבים לשנות תחילה את מאפיין הקובצ. גם קבצים שנפתחו על-ידי תהליכים אחרים אינם ניתנים למחיקה, מכיון שהפונקציה 21₪7₪ פועלת כמשתמש בלעדי של הקוב>. 6 פפוגר מפתח חיפוש למדריך, כדי להפסיק חיפוש של שם קוב או קבוצה של שמות קבצים. הפונקציה 671756ת120571 *כולה להתחיל חיפוש במדריך. + מוצא את הקובצ הראשון ששמו שווה לשם הקוב שמחפשים במדריך שהוגדר. אם לא הוגדר מדריך (ע:61:6060) מסוים, הוא מחפש את הקובצ* במדריך הנוכחי. לאחר מכן הוא מחזיר את מפתח החיפוש בקובצ כדי לאפשר ל-%א6%6ת120591 להמשיך את החפוש במדריך זה. התהליך *כול לציין מפתח של מדריך מחדל (ע6176060 6618%15) (ת0001). ניתן לחפש תמיד במדריך זה, או לבקש שהמפתח של המדריך *וחזר. אם התהליך מציין מפתח של מדריך שמחפשים בו באותו רגע, המפתח נסגר והבקשה מצורפת לבקשה הנוכחית. התהליך. *כול לציין ‏ שם קובף שיכול להכיל תווים גלובליים ומאפיינים (נורמלי, סמוי וכו'). התוצאות של החיפוש *ועברו למאגר שצוין על-ידי היישום. תפס מוצא את הקוב הבא ששווה לשם הקוב ולמדריך כפי שצונו במפתח החיפוש. מפתח זה מוחזר על-ידי הפונקציה 1956ע0ת0501. התהליך משתמש ב-%א0%6ת205/1 עד אשר אין יותר קבצים אשר שווים למפתח החיפוש. המידע על הקבצים האלה מועבר למאגר שצוין על-ידי היישום. 6 מעביר קוב למדריך ו/או לקובצ אחר. התהליך מציין את שם המסלול/קוב+ הנוכחי ואת שם מסלול/קובץ המטרה. אם משתמשים באות כונן, הכונן חייב להיות זהה הן בקבצי המטרה והן בקבצי המקור. זאת אומרת, שניתן להעביר קובצ למדריך אחר באותו כונן ולתת לו שם אחר, אבל לא ניתן להעבירו לכונן אחר. 6 מחזיר את המאפינים שנקבעו לקובצ שזוהה על פי שמו. המאפיינים (605טכ1ז8%0) הם: קריאה בלבד, סמוי, מערכת, תת-מדריך, וארכיב. סע מחפש שם קוב מסוים במסלולי החיפוש שצוינו. ה*ישום קובע את סדר החיפוש באחת מהדרכים הבאוח: * מחרוזת 85011 המכילה מספר מסלולי חיפוש המופרדים על-:די נקודה-פסיק ומסתיימת בבית שערכו ת00. * מחרוזת 85611 המכילה שם של משתנה המכיל מסלול חיפוש, הנמצא בסביבה של התהליך. החיפוש במסלולים השונים נעשה לפי הסדר שצוין במחרוזת. אם נמצא שם של קוב התואם את השם שצוין שם, המדריך ושם הכונן מועברים למאגר שצוין 141 מישקים המבוטסים על שמות קבצים ניתן להשתמש במישקים אלה עם קבצים, מבלי להתחשב בכך שהם נפתחו או לא. אולם, מספר פעולות דורשות שהקובצ לא *היה בשימוש. 6 מוחק קובא מסוים במסלול חיפוש מוגדר. אם לא הוגדר מסלול חיפוש, הוא מוחק את הקובף מהמדריך הנוכחי. קבצים עם המאפיין של קריאה בלבד אינם ניתנים למחיקה. אם רוצים למחוק קוב כזה, חייבים לשנות תחילה את מאפיין הקובצ. גם קבצים שנפתחו על-ידי תהליכים אחרים אינם ניתנים למחיקה, מכיון שהפונקציה 178 פועלת כמשתמש בלעדי של הקוב>. 86 ססוגר מפתח חיפוש למדריך, כדי להפסיק חיפוש של שם קוב% או קבוצה של שמות קבצים. הפונקציה 07190ם120571 *כולה להתחיל חיפוש במדריך. 4% מוצא את הקובף הראשון ששמו שווה לשם הקובצ שמחפשים במדריך שהוגדר. אם לא הוגדר מדריך (ע:61:6000) מסוים, הוא מחפש את הקובצ במדריך הנוכחי. לאחר מכן הוא מחזיר את מפתח החיפוש בקובצ כדי לאפשר ל-%א0%6%ת1205/1 להמשיך את החפוש במדריך זה. התהליך *כול לציין מפתח של מדריך מחדל (צ:ז61?6000 6618416) (ת0001). ניתן לחפש תמיד במדריך זה, או לבקש שהמפתח של המדריך *וחזר. אם התהליך מציין מפתח של מדריך שמחפשים בו באותו רגע, המפתח נטגר והבקשה מצורפת לבקשה הנוכחית. התהליך *כול לציין ‏ שם קובף שיכול להכיל תווים גלובליים ומאפיינים (נורמלי, | סמוי וכו'). התוצאות של החיפוש *ועברו למאגר שצוין על-ידי היישום. + מוצא את הקובא הבא ששווה לשם הקוב ולמדריך כפי שצונו במפתח החיפוש. מפתח זה מוחזר על-ידי הפונקציה 09195%ת20521. התהליך משתמש ב-+א6%6מ205/1 עד אשר אין יותר קבצים אשר שווים למפתח החיפוש. המידע על הקבצים האלה מועבר למאגר שצוין על-ידי היישום. %6 מעביר קובצ למדריך ו/או לקובצ אחר. התהליך מציין את שם המסלול/קוב% הנוכחי ואת שם מסלול/קובף המטרה. אם משתמשים באות כונן, הכונן חייב להיות זהה הן בקבצי המטרה והן בקבצי המקור. זאת אומרת, שניתן להעביר קובצ למדריך אחר באותו כונן ולתת לו שם אחר, אבל לא ניתן להעבירו לכונן אחר. 6 ממחזיר את המאפינים שנקבעו לקובץ שזוהה על פי שמו. המאפיינים | (8+07100%665) הם: קריאה בלבד, סמול, מערכת, תת-מדריך, וארכיב. ה+0556870078ע מחפש שם קובף מסוים במסלולי החיפוש שצוינו. היישום קובע את סדר החיפוש באחת מהדרכים הבאוח: * מחרוזת 45011 המכילה מספר מסלולי חיפוש המופרדים על-:די נקודה-פסיק ומסתיימת בבית שערכו ת00. * מחרוזת 45011 המכילה שם של משתנה המכיל מסלול חיפוש, הנמצא בסביבה של התהליך. החיפוש במסלולים השונים נעשה לפי הסדר שצוין במחרוזת. אם נמצא שם של קובצ התואם את השם שצוין שם, המדריך ושם הכונן מועברים למאגר שצוין נ1ג|1 על-ידי היישום. שם הקוב% שצוין מתוסף למסלול הזה, אפילו אם שם הקוב% הכיל תווים גלובליים. הדבר מאפשר ליישום למצוא מדריך המכיל שם קוב% אחד או *ותר, התואם לשם הקוב שצוץן בבקשה, מבלי לשנות את ה-61118%ת051כ. 06 קובע את המאפיינים של קוב שזוהה לפי שם הקוב>. מאפייני הקובצ הניתנים לשינוי הם: קריאה בלבד, סמוי, מערכת וארכיב. מישקים המבוססים על מקשרים לקבצים מישקים אלה דורשים שקוב הקלט יפתח קודם שהם מופעלים. % מקה את המאגרים של מערכת הקבצים ששימשו את המקשר לקוב שצוין. מערכת הקבצים מעדכנת את המידע על הקוב במדריך באותה דרך כפי שהיא היתה עושה אילו הקוב היה נסגר, אולם הקוב נשאר פתוח. התהליך *כול לציין מקשר גלובלי (תעעעת) לקובצ, אשר ינקה את כל המאגרים של מערכת הקבצים הקשורים לכל הקבצים הפתוחים של התהליך. ע+1160ַעאַת050 מז את מחוון הק/פ בקובצ עבור מקשר הקוב המסוים. תכנית היישום מציינת הן את כיוון התנועה והן את המרחק. ניתן להזט את מחוון הק/פ כדלקמן: *‏ מתחילת הקובף פלוס המרחק שצוין. * מהמקום הנוכחי של מחוון הק/5פ פלוס המרחק שצוין. *" מסוף הקובצ (₪09) פלוס המרחק שצוין. עצבתי נועל לשימוש בלעדי ומשחרר טווח של בתים בקוב פתוח המזוהה על פי המקשר לקובף. התהליך מציין את איזור המטרה ככתובת יחסית מתחילת הקובצ, ואת גודל השטח שיושפע מכך. התהליך *כול לציין בפקודה אחת, כפרמטרים של הפונקציה, את האיזור שיש לנעול ואת האיזור שיש לשחרר. כאשר יש צורך לשחרר ולנעול בפקודה אחת, מערכת הקבצים תשחרר לפני שתנעל. אם נועלים איזור העובר את סוף הקובצץ לא תופק הודעת שגיאה. מנגנון הנעילה ושחרור של טווח מונע באופן זמני מתהליכים אחרים מלהכנט לשטחים בקובף הפתוח. תהליך ישתמש בנעילה כדי למנוע מתהליכים אחרים מלכתוב בו-זמנית לאיזור מסוים בקובצ. הוא *כול גם למנוע באופן זמני מתהליכים אחרים מלקרוא איזור מסוים בקוב> בזמן שהוא כותב לאיזור זה. אם קוב נסגר כאשר הנעילה עדיין בתוקף, מערכת הקבצים משחררת את הנעילה, אך היא אינה עושה זאת בסדר מוגדר כלשהו. אם מעתיקים מקשר לקוב שיש לו גישה לאיזור הנעול, גם לעותק תהיה גישה לאיזור זה. אולם, אם תהליך-בן צריך לרשת מקשר לקובץ שיש לו גישה לאיזור הנעול, המקשר הזה לא יוכל לגשת לאותו איזור. 6-ו משנה את הגודל של קובצ המזוהה על-ידי המקשר שלו. התהליך מציין את הגודל החדש של הקוב>, שמציין אם חל גידול או הקטנה. שנוי זה לא ישתקף במידע על הקוב עד אשר הוא יסגר. ההקצאה של השטח הנוסף לקוב נעשית, עד כמה שאפשר, מתוך שטח הסמוך לשטח שהקובף נמצא בו כרגע. שינוי בגודל הקוב אין פירושו העתקה פיסית של הקובצ למקום חדש. אי אפשר לציין גודל חדש לקובץ המוגדר לקריאה בלבד. 1412 0 מחזיר מידע על קובצ שזוהה בעזרת המקשר שלו. התהליך יכול לקבל את הפרטים הבאים על הקובצ: תאריך וזמן של יצירת הקוב. תאריך וזמן של הגישה האחרונה לקובא. תאריך וזמן של הכתיבה האחרונה לקוב. כמות הנתונים בבתים. כמות ההקצאה הכוללת לקובצ בבתים. מאפיין. 0 קובע פריטי מידע מסוימים אודות קובצ המזוהה על-:די המקשר שלו. ניתן לעשות זאת רק לגבי קבציםי שנפתחו לצורך כתיבה בלבד. התהליך *כול לשנות את פריטי המידע הבאים: * תאריך וזמן של יצירת הקובף. * תאריך וזמן של הגישה האחרונה לקובא. * תאריך וזמן של הכתיבה האחרונה לקוב>. מישקים המבוססים על המדריך מישקים אלה מאפשרים. לתהליך לטפל במדריכים. ןס משנה את המסלול הנוכחי כפי שצוין בבקשה. המסלול אינו משתנה אם חלק כלשהו של המסלול שצוין בבקשה אינו קיים. זן0א]05 *וצר תת-מדריך כפי שצוין בבקשה. תת-המדריך לא יווצר אם חלק כלשהו של המסלול שצוין בבקשה לא קיים. 05 מחזיר את שם המסלול הנוכחי בהתאם לכונן שצוין בבקשה. 205007015% מחזיר את כונן ברירת המחדל ומפת סיביות, שבה מצוין אילו מבין 26 אותיות הכונן האפשריות מתאימות לדיסק/דיסקט הלוגי בזמן הבקשה. תפס מבטל תת-מדריך המזוהה על-ידי המסלול שצוין בבקשה. כמו ב-205, לא ניתן לבטל תת-מדריך אם הוא מכיל קבצים כלשהם, כולל קבצים סמויים. כמו כן, לא ניתן לבטל תת-מדריך אם הוא המדריך הנוכחי, או שהוא המדריך הראשי. מישקים להתקנים המאחסנים קבצים מישקים אלה משמשים לטיפול במידע על התקנים המאחטנים קבצים. 70 ממחזיר את פרטי המידע של מערכת הקבצים הקיימים ברמת המידע שצוינה בבקשה. המידע המוחזר הוא על דיסק/דיסקט לוגי המזוהה על-:יךד: מספר הכונן. רמת המידע הראשונה של מערכת הקבצים מכילה את הפרטים הבאיסם: 13 מספר סקטורים: ביחס ליחידת הקצאה. מספר *חידות ההקצאה. מספר יחידות ההקצאה החופשיות. מספר הבתים בסקטור. רמת המידע השניה של מערכת הקבצים מתייחסת לתווית השם של הכונן: * תאריך וזמן יצירה. * אורך המחרוזת של תווית השם. * מחרוזת 856011 המכילה את תווית השם של הכונן. ]060067 מחזיר את המצב הנוכחי של אימות תוך כדי כתיבה לקוב (ע1וזסט תתנש 166עש), או להתקן אחר. התהליך משתמש בנוהל זה כדי להבטיח שנתונים קריטיים *יכתבו להתקן ללא שגיאה. 8% בוחר את הכונן שצוין בבקשה ככונן ברירת המחדל של התהליך שביקש. 70 כקכובע את רמת המידע שמערכת הקבצים תציג לגבי דיסק/דיסקט לוגי המזוהה על-ידי מספר הכונן. רמת המידע הראשונה שמערכת הקבצים מציגה מתייחסת להתקן לוגי ולא ניתנת לשינוי על-ידי התהליך. הרמה השניה של המידע מתייחסת לתווית השם של הכונן. היישום יכול לשנות את המחרוזת המכילה את התווית של הכרך (6ממט1סט) ואת אורכה רק כאשר הכרך נפתח למטרת כתיבה. ]0556+67 קובע את המצב של אימות נתונים תוך כדי כתיבה לכל הקבצים ולכל ההתקנים שאליהם מבצע התהליך ק/5. התהליך משתמש במצב זה כדי להבטיח שמידע קריטי נכתב להתקן ללא שגיאות. תת-מערכות לביצוע ק/פ להתקני תו תת-מערכת ב-0025/2) היא קבוצה של שירותים המכוונים לטפל בהתקן, או במאפיין מסוים. תת-מערכת לק/5 *כולה לקבל צורות שונות, אשר ביניהן יש 3 צורות עיקריות: *‏ 1007" 660166, אשר תומך בק/פ של היישום להתקן שלו בעזרת מישקים רגילים של מערכת ההפעלה. * ספריית הקישור הדינמי, אשר תומכת בק/5פ של היישום בעזרת מישקים שלו שהותאמו לטיפול בק/פ. * תהליך, אשר תומך בק/פ של תהליכים אחרים, באמצעות מישק המבוסס על תקשורת בין תהליכים (106). תת-המערכת יכולה להכיל שילוב של שלוש האפשרויות. במהדורה הסטנדרטית של:05/2 ניתן למצוא 3 תת-מערכות לק/פ המשרתות את התקני הקונסולה: מסך, מקלדת ועכבר. כל אחת מתת-מערכות אלו מתבססת על ספריית קישור דינמי של מישקים ליישום ועל 6168 660106. שמות תת- המערכות הם: 14 *‏ 10/, תת-מערכת לתצוגה. = כםא, תת-מערכת למקלדת. * [1]01, תת-מערכת לעכבר. סנט: ק/פ לתצוגה תת-המערכת 010 מתבסטת על ספריית קישור דינמי ו-67ט0:1 660106. המישקים השייכים לספריית הקישור מתחילים עם הקידומת ‏ "10/", וה-67ט611 660106 הוא חלק ממערכת ההפעלה. מישקי ה-010 מספקים פונקציות *יעודיות לטקסט, אשר מהוות קבוצת-על של הפונקציות המסופקות על-ידי מישקי התצוגה של ה-31025 בסביבת ה-26025. תת-המערכת 10 מספקת שתי שיטות בסיסיות לביצוע הק/פ למסך: באמצעות מאגר תצוגה לוגי (108 - 116ש2 1660 102101), או באמצעות מאגר תצוגה פיסי (₪/ק - ז110ט3 1660ש [8ַסנפעתק). : כפי שתזכור, בכל פעם ש-ת565810 מתחיל, מערכת ההפעלה *וצרת לו מאגר תצוגה לוגי, אשר מתחלק בין כל התהליכים המתבצעים באותו מ805510.. לכל ת569810 יש מאגר תצוגה לוגי משלו. מאגר התצוגה הלוגי נקשר למאגר תצוגה פיסי (המסך) בכל פעם שה-ת565510 עובר לחזית (6תט0ז10:0₪) כתוצאה מהוראה של משתמש הקצה (ראה תרשים 37). בכל פעם שמשתמש הקצה עובר מ-ת569510 אחד למשנהו, תת-המערכת 010 שומרת את המסך של ה-ם505510 הקודם ומציגה את המסך של ה-מת86581[0 החדש. מאגר התצוגה הלוג של ה-ת565510 הנמצא ברקע (6מט0ז086%), מאפשר לתהליך הנמצא בו להמשיך את הק/פ לתצוגה; אולם, מאגר התצוגה הלוגי לא *וצג, עד אשר ה-ם5055)0 יועבר לחזית. ישנו מקרה אחד *וצא דופן, שבו תהליך הנמצא ברקע מציג בצורה זמנית מידע בחזית: תהליך זה :כול להשתמש ב-ת565910 6תט170ק0זס1 מיוחד הנקרא "סט-קסק" (מופיע שלא בסדר הרגיל), כדי להציג מידע על אירועים קריטיים ולחכות לתשובה ממשתמש הקצה. 4מטסע10:6 ת865910 8 ב3תגוסל386%6 86108 2ע6++גוע 1660 1061081 פט ג פטע ע6+צגום 1660 1681פצתק פצטע 666 תרשים 37. תצוגה בחזית מול תצוגה ברקע 1455 תהליך :כול לפנות למאגר התצוגה הפיסי באמצעות תת-המערכת 710 והוא אינו חייב להשתמש במאגר התצוגה הלוגי לצורך ק/פ. התהליך המטפל ישירות במאגר התצוגה הפיסי חייב להיות כפוף למספר כללים, מכיון שמאגר התצוגה הפיסי חייב להתחלק בין ה-5ת565910. התהליך חייב לנעול ולשחרר את מאגר התצוגה הפיסי כדי שהק/פ שלו *וכל להיות מתואם עם ה-5ת565510 האחרים, הן בזמן שה-ת565510 נמצא בחזית, והן בזמן שה-ם5695910 שלו נמצא ברקע. התהליך חייב גם להיות מסוגל לקבל הודעות על מצב ה-ם565910 שלו כאשר יש צורך בביצוע אסינכרוני של 5ת565510. כאשר משתמש הקצה עובר מה-ת565510 שבו נמצא התהליך, התהליך מקבל הודעה לשמור את המסך שלו; כאשר המשתמש חוזר ל-ת565510, התהליך מקבל הודעה לשחזר את המסך. הבחירה באסחה סוג מאגר להשתמש לצורך הק/פ תלויה בסוג התצוגה הרצוי. רוב מישקי ה-סנש מיועדים לטפל בטקסט, ובמקרה זה היישום *כול להשתמש במאגר התצוגה הלוג: וגם לטפל בו ישירות. אולם אם היישום צריך להשתמש במצב הגרפי, הוא חייב לטפל ישירות במאגר התצוגה הפיסי. במקרה זה ביצוע מהיר של הק/פ אינו הבעיה הקריטית, כי מישקי ה-010 מתוכננים להגיב במהירות, כדי שהיישומים הפועלים בסביבת ביצוע רבת משימות לא יצטרכו לטפל באופן ישיר בחומרה. השימוש במאגר התצוגה הלוגי הוא בסיס לנתיב הגירה לסביבת החלונות והשירותים הגרפיים של מנהל התצוגה המסופק עם מערכת ההפעלה 05/2 גירסה 1.1. מישקי ה-010 מקובצים במספר קטגוריות כלליות: ק/פ של תווים. בקרת הסמן. הניהול של גלילת המסך (501011). הבקרה על התקן התצוגה. הניהול של תצוגה שאינה מופיעה בסדר הרגיל (פט-קסע). ניהול מאגר התצוגה הלוגי. ניהול מאגר התצוגה הפיסי. החלפת פונקציות. 0 ק/פ של תווים כאשר אומרים שיישום מבצע ק/פ למסך, המשמעות היא שהוא עושה זאת באמצעות תווים והמאפיינים שלהם (צבע, עוצמה וכו'). תו המשולב עם המאפיין שלו נקרא יחידת תו ([661 68180%667). )1068006115 קורא מחרוזת של יחידות תו המתחילה ממקום מסוים במאגר התצוגה, כפי שצוין. אם הקריאה מגיעה לסוף השורה והמחרוזת לא הסתיימה, הקריאה תמשך בשורה הבאה. אם הקריאה מגיעה לסוף המסך והמחרוזת לא הסתיימה, הקריאה מסתיימת ואורך המחרוזת הוא מספר הבתים הנמצא במאגר של היישום. 1060 קורא מחרוזת של תווים המתחילה ממקום מסוים במאגר התצוגה. אם מגיעים לסוף השורה והמחרוזת לא הסתיימה, הקריאה תמשך בשורה הבאה. אם מגיעים לסוף המסך והמחרוזת לא הסתיימה, הקריאה מטתיימת ואורך המחרוזת הוא מספר הבתים הנמצא במאגר של חיישום. 1466 2 כותב מחרוזת של *חידות תו המתחילה במקום מסוים במאגר התצוגה. אם מגיעים לסוף השורה והמחרוזת לא הסתלימה, הכתיבה תמשך בשורה הבאה. אם מגיעים לסוף המסך והמחרוזת לא הסתיימה, הכתיבה מסתיימת. 01001087 כותב מחרוזת של תון*ם ‏ המתחילה במקום מסוים במאגר התצוגה. אם מגיעים לסוף השורה והמחרוזת לא הסתיימה, הכתיבה תמשך בשורה הבאה. אם מג*עים לסוף המסך והמחרוזת לא הסתיימה, הכתיבה מסתיימת. כותב מחרוזת של תווים המתחילה במקום מסוים במאגר התצוגה תוך שימוש במאפיין כללי לכל התווים. אם מגיעים לסוף השורר והמחרוזת לא הטתיימה, הכתיבה תמשך בשורה הבאה. אם מגיעים לסוף המסך והמחרוזת לא הסתיימה, הכתיבה מסתיימת. ץ)4א+זשסוט כותב א פעמים את המאפיין ממקום מסוים במאגר התצוגה. אם מגיעים לסוף השורה והמחרוזת לא הסתיימה, הכתיבה תמשך בשורה הבאה. אם מגיעים לסוף המסך והמחרוזת לא הסתיימה, פעולת הכתיבה מסתצימת. 1 סט כותב פעמים את יחידת-התו ממקום מסו*ם במאגר התצוגה. אם מגיעים לסוף השורה והמחרוזת לא הסתיימה, הכתיבה תמשך בשורה הבאה. אם מגיעים לסוף המסך והמחרוזת לא הסתיימה, פעולת הכתיבה מסתיימת. זאתסא)תטסוט כותב פעמים את התו ממקום מסוים במאגר התצוגה. אם מגיעים לסוף השורה והמחרוזת לא הסתיימה, הכתיבה תמשך בשורה הבאה. אם מגיעים לסוף המסך והמחרוזת לא הסתיימה, פעולת הכתיבה מסתיימת. ע'ז'1)ז10/ כותב מחרוזת תווים במאגר התצוגה המתחילה במקום הנוכחי של הסמן ומזיז אותו למקום אחד אחרי סוף המחרוזת,. אם מגיעים לסוף השורה והמחרוזת לא הסתיימה, הכתיבה תמשך בשורה הבאה. אם מגיעים לסוף המסך והמחרוזת לא הסתיימה, מתבצעת גלילה של המסך ופעולת הכתיבה ממשיכה. תווים מסוימים מטופלים כפקודות: התו םמזט686%ק087:18, התו 666ע6ת11, התו 280%50806, התו 18₪ ותו הזמזם (3611). הטיפול בתווים מושפע על-ידי 1א, כלומר אם 4%51 הופעל. שיטת טיפול זו בתווי התצוגה ידועה בשם צעץ. 0 בקרה על הסמן יישום יכול לשלוט במיקום ובצורה של הסמן, אשר משמש בדרך כלל למיקום תווים המוזנים במקלדת. 8 מחזיר את השורה והטור הנוכחיים שבהם נמצא הסמן. 106 מחזיר את הגובה, הרוחב והמאפיין הנוכחיים של הסמן. 8 קובע את מיקום הסמן לפי השורה והטור שצוינו בבקשה. 10566 קובע את הגובה, הרוחב והמאפיין של הסמן. 117 0 ניהול של גלילת המסך היישום *כול להשתמש בגלילה של שטחים מרובעים בתוך המסך ובתוך מאגר התצוגה. 105 מגולל כלפי מטה שורות טקסט בתוך שטח מרובע, עד לסיום מספר השורות שצוין בבקשה. הוא גם מכניס את מספר השורות שנגללו בעזרת *חידת תו המוצגת בראש השטח שבו בוצעה הגלילה. 41 מגולל לכיוון שמאל שורות טקסט בתוך שטח מרובע. התזוזה תהיה לפי מספר הטורים שצוין. הוא גם מציג את מספר הטורים שנגללו בצד ימין של השטח שבו בוצעה הגלילה. + מגולל לכיוון ימין שורות טקסט בתוך שטח מרובע. התזוזה תהיה לפי מספר הטורים שצוין. הוא גם מציג את מספר הטורים שנגללו בצד שמאל של השטח שבו בוצעה הגלילה. וי מגולל כלפי מעלה שורות טקסט בתוך שטח מרובע עד לסיום מספר השורות שצוין. הוא גם מכניס את מספר השורות שנגללו בעזרת יחידת תו המוצגת בתחתית השטח שבו בוצעה הגלילה. 0 בקרה על התקן התצוגה יישום יכול להשתמש בסוגי המסכים והמתאמים השונים בעזרת מגוון של מישקים. מישקים אלה מאפשרים לקבל ולקבוע את מצבי התצוגה, המידע על ההתקן ודפי קוד (או סוג האותיות המופיע במסך). בנוסף לכך, היישום יכול להפעיל בקרה מורחבת על המסך והמקלדת כפי שמוגדרת על-ידי 51אב, המווה חלק מתת-המערכת 100 (ב-205, הבקרה המורחבת על המסך והמקלדת לפי 4851 דרשו לציין ב-5צ20%916.5) את ה-071067 860106 ששמו 5צ1191.5ם). מצב 8%51 מגדיר צירופי תווים הממקמים את הסמן, מוחקים טקסט מהמסך, קובעים את מצב הק/5 למסך, ומגדירים מחדש את המשמעות של תווי המקלדת. בוב מחזיר את המצב הנוכחי של הבקרה המורחבת על המסך והמקלדת לפי 1פאג. 010060018 מחזיר את סוג המסך, סוג מתאם התצוגה ואת כמות הזיכרון הנמצאת במתאם התצוגה. הזיהוי של המסך ושל מתאם התצוגה מבוסס על מספר בדיקות שמבוצעות על-ידי תת-המערכת (10/, שמטרתן לקבוע את הקונפיגורציה של אמצעי התצוגה. אין זה אפשרי לזהות בוודאות את הקונפיגורציה של אמצעי התצוגה, כי יתכן שמצב מתגי התצוגה אינו תואם את המצב בפועל והתצוגה אינה קשורה למעשה למתאם התצוגה. פרטי המידע החוזרים משקפים את ההשערות של תת-המערכת 710 לגבי מצב העבודה בפועל. 100607 מחזיר את מספר הזיהוי של דף הקוד (גופן - %ם0+) הנוכחי; + מחזיר את הגופן (דף קוד) הנוכתי, או גופן מסוים הנמצא ב-3011 של מתאם התצוגה (בתנאי שהמתאם מטפל בפונטים). 6 מחזיר את מצב התצוגה במונחים של מצב עבודה, מספר הצבעים, מספר השורות והטורים להצגת תווים ואת הרזולוציה האופקית והאנכית. מצבי 1088 העבודה השונים כוללים מצב תואם-מונוכרום, מצב טקסט, מצב גרפי, ושילוב צבעים, או ציון שאין צבעים. מספר הצבעים ניתן בחזקות של 2; לדוגמה, 1 מצביע על 2 צבעים ו-2 מצביע על 4 צבעים. מספר השורות והטורים מצביע על הרזולוציה (במונחים של תוו*ם) במצב טקסט. הרזולוציה האופקית והאנכית מצביעה על מספר הפיקטלים (615ק) במסך. 6 מחזיר את המצב הנוכחי של אוגרי טבלת הצבעים, של צבעי קווי הגבול, ושל עוצמת ההבהוב והרקע. 1 מפפעיל ומפסיק את הבקרה המורחבת של המסך והמדפסת לפי 51אג. )סט קובע את דף הקוד, או את הגופן, לדף המזוהה על פי מספר הזיהוי של דף הקוד. + מטעין את סוג האותיות, או את דף הקוד, לתוך מתאם התצוגה. סוג האותיות חייב להיות תואם עם מצב התצוגה הנוכתחי, וניתן להשתמש בו רק באותם מתאמי תצוגה התומכים בשינוי של סוג:י אותיות. 6 קובע את מצב התצוגה. המצב נקבע במונחים של סוג, צבעים, מספר שורות וטורים לטקסט, ורזולוציה אופקית ואנכית. סוגי המצבים כוללים מצב תואם מונוכרום, מצב טקסט, מצב גרפי, ושילוב צבעים או ללא צבעים. מספר הצבעים צריך להיות רשום בחזקות של 2; לדוגמה, 1 מצביע על 2 צבעים ו-2 מצביע על 4 צבעים. מספר השורות והטורים מצביע על הרזולוציה (במונחים של תווים) במצב טקסט. הרזולוציה האופקית והאנכית מצביעה על מספר הפיקסלים האפשריים במסך. קביעת המצב מתחלת את סוג הסמן ומיקומו. 6 כלובע את המצב של אוגרי טבלת הצבעים, של צבעי קווי הגבול, ושל עוצמת ההבהוב והרקע. 0 תצוגה שלא בסדר הרגיל (קט-קסק) תהליך המופעל ברקע *כול להכניס חלון זמני, חלון ‏ צ+ או "סט-קסק", לתמונת המסך של ה-ם565510 6ת10"6₪700. הדבר מאפשר לתהליך הנמצא ברקע להודיע למשתמש על אירוע חשוב ולאפשר לו לפעול בהתאם. קת מבטל את הבעלות על מאגר התצוגה הזמני בחזית. קסוע מבקש מאגר תצוגה זמני בחזית. במידה ואין מאגר פנוי, נקבל קוד שגיאה, או שהתהליך ימתין עד אשר מאגר *תפנה, בהתאם לפעולה שהתהליך ביקש לבצע בחזית. אם הקוד החוזר מביצוע פונקציה זו מצביע על הצלחה, התהליך *וכל להשתמש בהתקני הקונסולה (מסך, מדפסת ועכבר) לצורך ק/פ. כל שירותי ה-0710 שהתהליך מבקש *ופנו מרגע זה למאגר (ע16+טם) התצוגה הזמנל בחזית, עד אשר התהליך יקרא ל-כ0%ק0ק0ת0102. רק יישום אחד *כול לבצע קט-פסק בו-זמנית, ולכן יתכן שהיישום המבקש יצטרך להמתין עד אשר תורו יגיע. בזמן שה-"קט-קסק" מתבצע, אין המשתמש *כול להחליף באופן זמני 5, ותהליכים השייכים ל-םמ565510 0תט0זק6ז0ס1 אינם :כולים לבצע את הפונקציות שלהם הקשורות במסך. אולם, אם התהליך שהוא הבעלים של ה-קט-קסק נמצא ב-ם565510| 6ם68900ז10, אז ‏ רק תהליכים השייכים ל-ת569510 | 6ת10₪0ק1070 אינם *כולים לבצע את הפונקציות שלהם הקשורות 1139 במסך. בנוסף לכך, כאשר ה-קט-קסק מתבצע, אין בעליו יכול להכנס למאגר התצוגה הפיסי. 0 ניהול של מאגר התצוגה הלוגי יישום *כול לטפל ישירות במאגר התצוגה הלוגי, מבלי לפגוע בתמונת המסך המוצגת באותו זמן. הוא גם יכול לגרום לכך שמאגר התצוגה הלוגי יעדכן את מאגר התצוגה הפיסי. ]0 משיג אפשרות מיעון (ערך בורר וכתובת *חסית) ל-7כ,1 (טבלת מתארים מקומית) של מאגר התצוגה הלוגי. לשם כך הוא מקבל את הגודל של מאגר התצוגה הלוגי, אשר תלוי במצב התצוגה הנוכח:. זו טסת105? מעדכן את מאגר התצוגה הפיסי עם תוכן מאגר התצוגה הלוגל. מישק זה *עבוד בתנאי שהתהליך המשתמש בו נמצא ב-ם505510 6ת100ק0זס1. למישק זה אין השפעה אם התהליך נמצא ב-ת565510 6מוסזק6%ס. 0 ניהול של מאגר התצוגה הפי'סי המערכת 025/2) גירסה 1.0 אינה מספקת בצורה ישירה פונקציות התומכות במצב: התצוגה הגרפיים. לכן היא מספקת ליישום שירותי תצוגה, המאפשרים לו לבצע עבודות בגרפיקה וגם לפעול עם *ישומים המתבצעים ב-5ם565510 אחרים. הפרוטוקול לביצוע גרפיקה במסך הוא כדלקמן: 1. השג אפשרות מיעון למאגר התצוגה הפיסי. 2. קבע מצב תצוגה גרפי (בעזרת 105601006/). 38 נעל את מאגר התצוגה הפיסי לצורך ביצוע ק/פ. 4. בצע 5/0 למאגר התצוגה הפיסי. 5. שחרר את מאגר התצוגה הפיסי. יישום גרפי צריך להקדיש 680ז0+ אחד לביצוע שמירה ושחזור של המסך שלו, מכיון שהמפעיל יכול לעבור מ-םת565510 ל-ת565910. היישום יצטרך להקדיש 6 נוסף לביצוע שמירה של מצב התצוגה ושל תוכן האוגרים של מתאם התצוגה, אם הוא גם מטפל בצורה ישירה באוגרים של מתאם התצוגה. ]0 משיג אפשרות מיעון ל-17 של מאגר התצוגה הפיסי. התהליך מזהה את מאגר התצוגה הזה על-ידי ציון כתובתו, אשר מכילה כתובת פיסית בת 32 סיביות וערך נוסף המציין את גודל המאגר. כתובות חוקיות נופלות בתוך הטווח ת80000 עד תעעעע2. התהליך מקבל ערך בורר אחד, או *ותר, שמאפשרים לו להכנס למאגר התצוגה הפיסי. כל ערך בורר מאפשר כניסה ל-64%8 של המאגר, ולכן התהליך צריך ערך בורר אחד או יותר כדי להכנט לכל המאגר שעומד לרשותו. אם גודל המאגר גדול מ-64%8, ערך הבורר הראשון יאפשר גישה ל-6488 הראשונים, ערך הבורר השני יאפשר גישה ל-64%8 הבאים, וכן הלאה, כאשר ערך הבורר האחרון יאפשר גישה לשטח שנותר. התהליך :כול לטפל במאגר התצוגה הפיסי רק כאשר הוא נמצא ב-מ565510 0תט0ז10?68. כדי לעזור בתיאום הק/פ שלו למסך, חייב התהליך להשתמש ב-410501106% וב-105011(5100%/. 100 0 מבסל את השירות 101/10660/816 שהופעל על-ידי 686זת+ אחר בתהליך. הוא עושה זאת באחת משתי דרכים אלו: המישק גורם ל-101/10060/816/י להחזיר קוד שגיאה ל-686זת1 האחר, או שהוא גורם להפסקת פעולתו של ה-07686+ | האחר. התהליך *כול לשמור אופציה לבעלות על השירות , אפילו אם שירות זה בוטל (ראה פרטים ב-6010/10060/816). + ממתין להודעה שתגרום לשחזור של אופן התצוגה, של מצב התצוגה ושל האוגרים של מתאם התצוגה. התהליך הגרפי חייב ליעד 680זת+ לביצוע הפונקציה 0/10/10660/81%, רק אם הוא כותב ישירות לאוגרים של מתאם התצוגה במטרה לשחזר את מאפייני התצוגה לאחר ש-קט-קסק זמנ*י (כתוצאה משגיאה קריטית, או יישום הנמצא ברקע) הגיע לסיום. היישום הגרפי לא יצטרך לשחזר את מאגר התצוגה הפיסי, כי תת-המערכת ‏ 10/ שומרת את השטח שהוקצה| ל-קט-קסק.| לאחר ש-686זת1 | בתהליך הפעיל | את הפונקציה +, הוא ממתין עד אשר שירות זה חוזר אליו. כאשר הוא חוזר, ה-680-+ חייב לבדוק את הקוד החוזר, ואם הוא אינו קוד שג*אה, עליו לשחזר את אופן התצוגה, את מצב התצוגה ואת האוגרים של מתאם התצוגה. ה-17680+ האחראי על ה-10/10860/816 צריך להמנע מלבצע קריאות אחרות של המערכת או לגרום שגיאות קריטיות, מכיון שהדבר *כול לעצור את פעולת המערכת. לאחר שה-686:ת+ השלים את שחזור מאפייני התצוגה, הוא *כול להפעיל שוב את הפונקציה %10/066//816 כדי שתמתין לפעם הבאה שבה הוא יצטרך לשחזר את התצוגה. ב-ם565510 ישנו רק תהליך אחד הרשאי להפעיל את 6%, ומכיון שהוא עשו* לשנות את תמונת המסך, עליו להשתמש ב-60ת1 1010061 כדי לבטל את הפעולה. 0 מבטל את השירות 0/816ש105886018/ שהופעל על-ידי 48 אחר בתהליך. הדבר נעשה באחת משתי דרכים אלו: המישק גורם ל-0/810ש01058080018 להחזיר קוד שגיאה ל-1686+ האחר, או שהוא גורם להפסקת פעולתו של ה-6806:ת+ האחר. התהליך יכול לשמור אופציה לבעלות על השירות 0/816ש1058786018/, אפילו אם השירות הנוכחי בוטל (ראה פרטים ב-1058000180/816/). ו ממתין להודעה שתגרום לשמירה, או לשחזור של מאגר התצוגה | הפיסי. התהליך הגרפי חייב | ליעד | 686זת% | אחד ‏ לביצוע 8% 1058 במטרה לשמור או לשחזר את תמונת המסך בעת מעבר בין 85. מרגע ש-1-686+ בתהליך הפעיל את 0/816ש8ז260ט1058, הוא ממתין עד ששירות זה יחזור אליו, ואז הוא בודק את סוג ההודעה ושומר או משחזר לפי הצורך את מאגר התצוגה הפיסי, את מצב התצוגה ו/או כל מידע אחר שדרוש ליישום כדי להשלים את תמונת המסך. ה-680:ת+ האחראי על ביצוע ההוראה צריך להמנע מלבצע קריאות מערכת אחרות או לגרום שגיאות. פעולות אלו יכולות לגרום לכך שהמערכת תעצר. בזמן הכניסה למאגר התצוגה הפיסי, ה-680-ת+ האחראי על ₪0/816ש010580860:8 אינו נועל אותו מכיון שהוא כבר קיבל את הבעלות עליו דרך מנהל ה-5ת565510. כאשר ה-1:686+ השלים ביצוע שמירה/שחזור של המסך, הוא *כול לבצע שוב את 0/816ש010589860:8 כדי שתמתין לפעם הבאה שבה הוא יצטרך לבצע את הפעילויות האלה. ב-ת5655)0 ישנו רק תהליך אחד הרשאי להפעיל ₪0/81%ש8ז105808060/. תהליך זה עשןל לשנות את תמונת המסך ועל-כן עליו לבטל את ההוראה בעזרת 0 שת 1058 % מבקש לקבל את הבעלות על מאגר התצוגה הפיסי. התהליך מודיע אם הוא רוצה להמתין עד אשר מאגר התצוגה הפיסי יתפנה, או שהוא רוצה שהשירות 010501106% *חזור אליו מיידית אם המאגר או פנוי. התהליך 1:1 חייב לבדוק את התוצאה של ביצוע פונקציה זו, כדי לקבוע אם היישום :כול להשתמש במאגר התצוגה הפיסי. יש שתי סיבות שבגללן לא יקבל תהליך את הבעלות על המאגר: 1. ה-ם565510 שלו נמצא ברקע. 2. מאגר התצוגה הפיסי נמצא בבעלות של תהליך אחר. ברגע שתהליך מקבל את הבעלות על מאגר התצוגה הפיסי הוא יכול לבצע אלו ק/פ. אולם, עליו לשחרר אותו מהר ככל האפשר בעזרת 100%ם1050110/, כדי לאפשר למשתמש הקצה מיתוג בין ה-5ת568910 השונים. לא ניתן למתג את ה-56951005 בזמן שמאגר התצוגה הפיסי נעול. אולם, אם המשתמש מנטה לעבור ל-ת505510 אחר בזמן הנעילה, הוא ייעזר בכך שמערכת ההפעלה תגביל את הנעילה לפרק זמן מוגדר. אם פרק זמן זה עבר ובעליור של מאגר התצוגה הפיסי לא שחרר את הנעילה, מערכת ההפעלה תשעה את ביצוע התהליך (שהוא הבעלים של המאגר) ולמעשה תעביר אותו לרקע. מנקודה זו היא ממשיכה לבצע את בסשת המפעיל ולעבור ם565510. התהליך המושעה לא יתבצע עד אשר המפעיל יחזור ל-ת569910 שבו הוא נמצא. 0 מבטל את הבעלות על מאגר התצוגה הפיסי. 0 החלפת פונקציות יישום, או תת-מערכת תצוגה אחרת, *כולים לנטרל בצורה סלקטיבית מישקים של תת-המערכת ‏ 010 במטרה להחליפם, או להרחיב את טווח פעולתם. כמובן שתת-מערכת אחרת לתצוגה יכולה להגדיל את מספר מישקי התצוגה כדי להוסיף תפקודים חדשים. 10007 מבטל את תת-המערכת לתצוגה שקודם לכן נרשמה לפעולה בתוך ה-ת565510. רק התהליך שביצע את ה-01000₪15807 ב-ם565510 מסוים רשאי לבצע את 10060681500/. תס רושם לעבודה תת-מערכת לתצוגה בתוך ה-ת56580 הנוכתי. ניתן להפעיל רק תת-מערכת אחת בו-זמנית בכל ת569510. תת-המערכת החדשה חייבת לציין אזה מבין השירותים שמספקת תת-המערכת 10ש היא עומדת להחליף. לאחר-מכן, בכל פעם שתהליך יקרא לשירות 010 שהוחלף, תקרא תת-מערכת זו לתת-המערכת החדשה והיא תבצע את הפעולה. תת-המערכת החדשה יכולה להפעיל את שירות ה-10 המקורי על-ידי החזרה של קוד שגיאה מיוחד 1 (תעעעע) לתת-המערכת 10/. כעפא: ק/פ במקלדת תת-המערכת 380 מתבססת על ספריית קישור דינמי, אשר המישקים שלה מתחילים בקידומת "30א", ועל ז6ץ1ז0 660106 למקלדת, אשר נטען אוטומטית על-ידי מערכת ההפעלה. למישקי ה-א יש מאפיינים רבים הדומים באופיים לשירותים המסופקים על-ידי מישקי ה-3105 בסביבת ה-2005. הם מאפשרים ליישום לקבל באמצעות רשומת נתוני התו את ה-0066 ת508 של צירוף הקשות מסוים ואת תו ה-45011 המתאים ל-60646 581. היישום יכול לקבל מחרוזת 850611. רשומת נתוני התו מתוארת בתרשים 38. קלט מהמקלדת הפיסית מוכנס למאגר בעל אורך קבוע המתוחזק על-:ידי 12 תת-המערכת ז8א. כמו ב-025כ, לאחר שהמאגר מתמלא, אין המפעיל יכול להסיש הקשות נוספות. כאשר מתרחשת גלישה (מטזע6טס) במאגר התו שאו נכנס מתבטל. מכיון שהמקלדת העה חלק מהקונסולה, ‏ רק *ישומים הנמצאים ב-ת865810 6ם0-071700ס+ יכולים לקבל הקשות. כפי שתזכור, בכל פעם שנפתה ת565%00, נוצר עבורו מאגר מקלדת לוג המשותף לכל התהליכים המתבצעים באותו ת565510. מאגר המקלדת הלוגי נקשר למקלדת הפיסית בכל פעם שה-ת565510 עובר לחזית, כלומר בכל פעם שהמפעיל עובר אליו. בכל פעם שהמפעיל עובר מ-ת569510 אחד למשנהו, תת-המערכת 1480 מקשרת בין המקלדת לבין מאגר המקלדת הלוגי של ה-ת569810 החדש. מאגר המקלדת .הלוגי של ה-ת565510 6מש0עש80%ס מאפשר לתהליך הנמצא ב-ם565910 זה להמשיך לבצע ק/5 למקלדת. אולם, הקשות לא יוצבו במאגר המקלדת הלוג: עד אשר ה-ת568510 *ועבר לחזית. יש מקרה אחד *וצא דופן בק/פ למקלדת שבו תהליך הנמצא ברקע *כול להשתמש במקלדת הפיסית: תהליך :*כול להשתמש ב-ת565510 06ת10:0900 זמני הנקרא קט-קסק לשם תקשורת עם המפעיל. לכל. ם868810 יש מאגר מקלדת שהוא ברירת מחדל, אך התהליך :כול לבחור מאגר מקלדת לוגי אחר, היישום ישתמש במקשר ברירת המחדל (ם0000) של תת-המערכת 882 כדי להתחבר עם המקלדת הלוגית המוגדרת כברירת המחדל של ה-ת569510 שבו נמצא היישום. התהליך ישתמש במקלדת לוגית אחרת מזו של ברירת המחדל, אם בתוך אותו ם5655910 מתבצעים תהליכים נוספים המשתמשים בהתקני הקונסולה (מסך, מקלדת ו/או עכבר). המקלדת הלוגית המשנית מאפשרת לתהליך לבודד את הק/נ שלו מזה של התהליכים האחרים. כדי שהתהליך *וכל להשתמש במקלדת הלוגית המשנית, הוא חייב להשתמש ב-מ76ק4060 כדי ליזום מקלדת לוגית וכדי להשיג אליה מקשר. התהליך משתמש ב-1406)026%700₪58 כדי לקשר באופן זמני את המקלדת הלוגית למקלדת הפיסית לצורך קבלת קלט. 8 מגנתק את המקלדת הלוגית מהמקלדת הפיסית ומאפשר לתהליכים אחרים להשיג את ה-0015ע. 42001056 מנתק את התהליך מהמקלדת הלוגית. מקשרי ה-482 למקלדת אינם ניתנים לירושה כמו המקשרים שהוקצאו על-ידי מערכת הקבצים. מישקי ה-39 המתוארים מטה חולקו למספר קבוצות כלליות והן: ק/פ של תווים. בקרה על ההתקן. ניהול המקלדת הלוג:ת. החלפת פונקציות. עפא ק/פ של תווים היישום מבצע קלט ממקלדת באמצעות מקשר ה-%820 למקלדת לוגית המוגדרת כברירת מחדל, או באמצעות, מקשר 392 למקלדת לוגית אחרת. התהליך *כול לקרוא רשומת תו, או מחרוזת של תווים, ממאגר הקלט של המקלדת הפועל לפי שיטת 0ע1ע. 18 קוד 2425011 של התו מצב מצב מקש ה-1+6ם5 % פא חותמת הזמן של התו קוד ה-845011 של התו מתורגם מה-6068 ם908. ה-0066 5868 מתקבל מהמקש שנלתא. סוג התו מגדיר את הדברים הבאים: תו סיום תו ביניים (נתמך על-ידי 5מא) אין תו, מקש 6+1%ת8 בלבד. מצב 5196 5]א נשמר (ם00). מצב מקש ה-1?6ם5 מודיע על מצב המקשים הבאים: ספת 6 סתשנת בכ % סתפנת 1% 1690 8 % 1690 1 סתשנת 0% טא 1 126090 | 12066 011ע50 חותמת הזמן של המקש מבוטאת באלפיות שניה מאז ה-12 האחרון. תרשים 38. רשומת נתוני תו תתלא קורא רשומה של נתוני תו מן המקלדת הלוגית (לפי ברירת המחדל, או אחרת), המזוהה על-ידי מקשר ה-%82 שלה אל תוך מאגר שצוין על- ידי התהליך. התהליך חייב גם להודיע אם הוא רוצה להמתין עד אשר התו יתקבל, או שהוא רוצה שהשירות ת871ת4000 *חזור מיד, אם אין אף לא תו אחד. רשומת נתוני תו תחזור רק אם המקלדת הלוגית קשורה באותו רגע למקלדת הפיסית. סביר להניח שהמקלדת הלוגית, המוגדרת כברירת המחדל ב-ת565510, תהיה קשורה, אלא אם נעשה שימוש במקלדת לוגית אחרת. 67 זו תפ[ מנקה את מאגר המקלדת הלוגית (ברירת המחדל או אחר) המזוהה על-ידי מקשר ה-8820. הניקוי יתבצע כאשר המקלדת הלוגית קשורה 144 באותו רגע למקלדת הפיסית, וסביר להניח שהמקלדת הלוגית המוגדרת כברירת המחדל תהיה ממוקדת, אלא אם נעשה שימוש במקלדת לוגית אחרת. 6% מחזיר רשומת נתוני תו מהמקלדת הלוגית המזוהה על-ידי מקשר ה-22א שלה, רשומה זו אינה מוצאת מהמאגר. רשומת נתוני המקלדת תוחזר אך ורק אם המקלדת הלוגית קשורה באותו רגע למקלדת הפיסית, וסביר להניח שהמקלדת הלוגית המוגדרת כברירת המחדל תהיה ממוקדת, אלא אם נעשה שימוש במקלדת לוגית אחרת. תזַאַתןז)065 מחזיר מספר מוגדר מראש של תווי 859611 (רק את הקודים עצמם) ממקלדת לוגית המזוהה בעזרת מקשר ה-4820 שלה. מספר התווים (בתים) המקסימלי הוא 255. התהליך חייב להודיע אם הוא רוצה להמתין או לא: 1 במצב של קלט בינארי, התהליך ממתין עד אשר הוא מקבל את מספר התווים שביקש. במצב של קלט ב-45611, התהליך ממתין עד אשר יוקש תו "שורה חדשה" (םזט6877182680%). זאש סא במצב של קלט בינארי, התהליך מקבל מספר תווים רב ככל האפשר, עד למספר המצוין בבקשה. אם לא ניתן אף תו, השירות ם[ַשת%009%?1 חוזר מיד. במצב של קלט ב-45011, איןו תמיכה לאופציה 417 סאא. תווי המקלדת *וחזרו אך ורק אם המקלדת הלוגית קשורה באותו רגע למקלדת הפיסית. סביר להניח שהמקלדת הלוגית, המוגדרת כברירת המחדל ב-מ505810, תהיה ממוקדת, אלא אם נעשה שימוש במקלדת לוגית אחרת. 6 מתרגם את ה-0006 ם508 ואת מצבי מקש ה-%/501 שנמצאו ברשומת נתוני התו לקוד 85611. התרגום מתבצע לפי דף הקוד (אַק8ק 6066) המתאים למקלדת הלוגית המזוהה בעזרת מקשר ה-82א שלה. התו המתורגם מוחזר במסגרת רשומת נתונים מתורגמים, המוצבת במאגר שצוץ על-ידי היישום. בגמר התרגום *ופעלו אותות סימון (11885). אם *וקשו צירופי מקשים מסוימים, יהיה צורך לקרוא למישק זה מספר פעמים. כעפא בקרה על ההתקן יישום *כול להשתמש במספר מישקים שיאפשרו לו לקבל ולקבוע פרטים מסוימים על המקלדת ועל הדרך שבה יטופלו ההקשות. 62 מחזיר את מספר הזיהוי של דף הקוד המשמש לתרגום ה-ם508 5 לתוול 45011 עבור המקלדת הלוגית המזוהה בעזרת מקשר ס8א. 8 מחזיר מאפיינים של המקלדת ביחס למקלדת לוגית המזוהה בעזרת מקשר 32א. המידע על ההתקן מוצב במאגר שצוין על-ידי התהליך, והוא כולל את הפרטים הבאים: * מצב הקלט. מצב הקלט *כול להיות 85011 או בעארי. במצב 250611, תווים המתקבלים מהמקלדת מבוקרים בעזרת תווי בקרה מיוחדים. (כמו 06, למשל), הגורמים לביצוע פעולה מסוימת בדומה לפקודה. במצב בינארי, אין בקרה על התווים. 155 * סמן תו הבניים. אפשר להפעיל את סמן תו הבניים (7188 08+8780%ת0 ם!ז%6ם1) כדי להודיע שהיישום רוצה לקבל כל תו בניים השייך לתו מרובה סימנים, במטרחי לבנות את התו הסופי. סמן זה הוא בעל משמעות רבה לשפות, אשר דרוש בהן לבצע מספר הקשות כדי לבנות תו אחד. * מצב מקש 116ת5. מצב מקש 116ת5 מציין אם השתמשו באחד ממקשי ה-116ת5. לדוגמה, לחיצה על מקש א6805100% תקבע את המצב שלו ל-א0, ולחיצה נוספת על מקש זה תקבע את המצב ל-עע0. מקשי ה-11%ת5 כוללים את המקשים הבאים: 1% % 6>תשות 6 % שהקות 1616 0% % 16%:6 1 >6תאות 0% טא 1 1616 א 507011 * מצב ה-0ת₪6. מצב ה-0ת₪0 מציין אם תווי המקלדת *וצגו באמצעי הפלט הסטנדרטי. * הגדרת תו השורה החדשה. הגדרת תו השורה החדשה מצביעה על התו, 845011 או 845011 מורחב, שמציין מעבר לשורה חדשה, או במילים אחרות את תו "שורה חדשה" - .6 313006 קובע את דף הקוד המזוהה בעזרת מספר הזיהוי שלו. דף זה משמש לתרגום ה-060065 ת5808 לתווי 85011, אשר נעשה עבור מקלדת לוגית המזוהה בעזרת מקשר 982א. מאגר המקלדת הלוגי מרוקן את התווים שתורגמו בעזרת דף הקוד הקודם. %% לקובע את דף הקוד המשמש לתרגום טבלה שסופקה על-:די התהליך לצורך עבודת המקלדת הלוגית המזוהה על-ידי מקשר כ82א. התהליך חייב לשמור את הטבלה המתורגמת בזיכרון הנמצא בבעלותו. מאגר המקלדת הלוגי מרוקן את התווים שתורגמו בעזרת דף הקוד הקודם. 808 כובע את מאפייני המקלדת הלוגית המזוהה בעזרת מקשר 480 המידע על ההתקן מועבר במאגר שצוין על-ידי התהליך והוא כולל את מצב הקלט, סמן תו הבניים, מצב מקש ה-116ת5, מצב ה-0ת₪0, ואת הגדרת תו השורה החדשה, כפי שתוארו ב-1406020%5%8%15. פא ניהול של המקלדת הלוגית *ישום יכול לטפל במקלדת לוגית השונה מברירת המחדל של ה-ם565810. 6 סוגר את המקלדת הלוגית (ברירת המחדל או אחרת) המזוהה על-:די מקשר 82א. המקלדת הלוגית המוגדרת כברירת המחדל, ניתנת לסגירה בידי התהליך, אך היא תמשיך להתקיים לגבי ה-ת565910. מקלדת לוגית משנית תנותק, לפי הצורך, מהמקלדת הפיסית ותרוקן לפני שפעולתה תופסק. 68 מנתק את המקלדת הלוגית, המזוהה על-ידי המקשר שלה, מהמקלדת הפיסית. אם אין אף בקשה ממתינה לביצוע מיקוד (10005), המיקוד חוזר למקלדת הלוגית שהיא ברירת המחדל. 16 8 ממחבר את המקלדת הלוגית המזוהה.על-ידי מקשר 832 אל המקלדת הפיסית. התהליך חייב לציין אם הוא רוצה להמתין שהמקלדת הפיסית תתפנה, או שהוא רוצה שהשירות 00)26%7000₪5 *חזור אליו מיד, אם המיקוד של המקלדת הפיסית נמצא כבה בבעלות של מקלדת לוגית אחרת. תא מחזיר מקשר 882 למקלדת הלוגית המשנית. המקלדת הלוגית מאותחלת לדף הקוד המוגדר כברירת המחדל. כעפא החלפת פונקציות יישום או תת-מערכת אחרת למקלדת *כולים לנטרל את מישקי ה-882 במטרה להרחיב או להחליף את השירותים המסופקים על-ידי תת-המערכת 832. כמובן, שכמו בכל תת-מערכת, תת-מערכת נוספת למקלדת :כולה גם להוסיף מישקים נוספים לאלה הקיימים. 0066180 מבטל את הרישום של תת-המערכת לפעילות ב-ת805510. רק התהליך שביצע את ה-4006215007 *וכל לבצע את ה-11066786215667. 0086715008 רושם לעבודה תת-מערכת למקלדת בתוך ה-ב565510 הנוכחי. בכל ת0ן5655 ניתן להפעיל רק תת-מערכת אחת, אשר חייבת להודיע איזה מבין שירותי הק/פ של תת-המערכת 82א היא עומדת לנטרל בזמן שהיא פועלת. יש לציין, שתת-המערכת החדשה תשפיע אך ורק על התהליכים הנמצאים ב-ת565510 הזהה לשלה. מרגע זה, בכל פעם שתהליך *פעיל שירות של כ82א שנוטרל, תקרא תת-המערכת 482 לתת-המערכת החדשה, לגבי שירות ה-82א4 שנוטרל, תת-המערכת החדשה :כולה לגרום לביצוע שירות זה על-ידי החזרת קוד שגיאה מיוחד בעל ערך של 1- (תשחחת). תת-המערכת 80א תקרא לשירות ה-82א המקורי. 6הע5 מאפשר לתת-המערכת החדשה שנרשמה לעבודה לסנכרן את הגישה שלה למקלדת הפיסית. פונקציה זו עוזרת לתת-מערכות המטפלות במקלדת לתאם את הפעולות שלהן עם ה-67ש6?1 860106 של המקלדת. טסוא: ק/פ באמצעות העכבר תת-מערכת [:100 מתבססת על ספריית קישור דינמית, אשר מישקיה מתחילים בקידומת "[10/", ועל שני 8ז6ט611 660106: של העכבר ושל מחוון הציור (ש8ז0 %67ת!סק). יש צורך להטעין את ה-675ט6:1 660166 באמצעות הפקודה =105/ ב-5צ10.5עא00. תת-מערכת 11011 מאפשר ליישום לשלוט בפעילויות הבאות: * בדרך שבה יטופל הסמן של העכבר. * בסוג של אירועי עכבר, אשר :*כללו כנתונים ו*ועברו למאגר (ע116טס) הקלט. * בפעולות אחרות הקשורות בניהול ההתקן. רשומת נתוני העכבר מתוארת בתרשים 39. 157 חותמת זמן האירוע אירוע מתאר את סוג האירועים שנרשמו. לחצן (1, 2 או 3) לחוצ / אין תנועת עכבר לחצן (1, 2 או 3) לחו> / יש תנועת עכבר אין לחצן לחוצ / יש תנועת עכבר אין לחצן לחו> / אין תנועת עכבר חותמת הזמן של האירוע היא באלפיות השניה מאז ה-0ק1 האחרון. ציר ה-צ הוא המיקום האנכי של סמן העכבר. ציר ה-א הוא המיקום האופקי של סמן העכבר. תרשים 39. רשומת נתוני העכבר קלט מהעכבר הפיסי מוצב במאגר המתוחזק על-ידי תת-מערכת 10011. נתוני העכבר מגיעים בצורה של אירוע, המתבטס על לחיצה של לחצן אחד, או *ותר, ומשולב עם התנועה של העכבר. סמן העכבר (נקרא גם מחוון העכבר) במסך עוקב | אחר התנועה של העכבר הפיסי, אשר *כולה להיות מדווחת בקואורדינטות, או ב-605א10%ם. המונח ע86א10ת הוא *חידה *חסית של תנועת העכבר. התהליך :כול לבחור את סוג היחידות שישמשו במדידת תנועת העכבר. השימוש בקואורדינטות הינו ברירת המחדל של המערכת להצבעה על תנועת העכבר. קואורדינטות ניתנות בתווים, או במרחק *חסי בפיקסלים, בהתאם למצב המסך. ערכיהם יחסיים לפינה השמאלית העליונה של המסך, שהיא נקודת ה-0 לגבי צירי ה-א וה-צ. אם הוחלט להשתמש ב-5ע1086מ, ערכי ה-% וה-צ יהיו יחסיים למיקום הנוכחי של העכבר. ערכי ע10%6 שליליים מצביעים על תנועה למעלה או שמאלה במסך. משתמש הקצה מז את העכבר וגורם למאגר להתמלא עם הנתונים הנובעים מתנועה זו. אם המשתמש *משיך להזט את העכבר, התנועות שלו לא יאבדו, אלא :יכתבו על הנתונים הקודמים במאגר. במלים אחרות, למרות שהמאגר הינו בעל גודל קבוע, הוא בעל אופי "מעגל:" ושומר על האירועים האחרונים של העכבר. מכיון שהעכבר העו חלק מהקונסולה, רק *ישומים הנמצאים ה-ת565510 6תט0זש6זס1 *וכלו לקבל ממנו נתונים. כפי שתזכור, בכל פעם שנפתףח 565810 נוצר גם מאגר עכבר לוגי, אשר משותף לכל התהליכים המתבצעים ב-ת565510. לכל ת508810 יש מאגר עכבר לוג משלו. מאגר העכבר הלוגי נקשר לעכבר הפיסי בכל פעם שה-ת565510 עובר להיות 565510 6ת00ז1070₪. בכל פעם שהמפעיל עובר מ-ת565510 אחד למשנהו, תת-מערכת ה-110011 מחברת את העכבר הפיסי למאגר העכבר הלוגי של 18 ה-ם565510 החדש. מאגר העכבר הלוגי השייך ל-ם505510 6מ00זש80%ס מאפשר לכל תהליך השייך אליו להמשיך בק/פ לעכבר; אולם, נתוני .העכבר לא *וצבו במאגר העכבר הלוגי של ה-ת569510 6תש70א80% עד אשר ה-ת565510 :עבור לחזית. ישנו רק מקרה *וצא דופן אחד שבו תהליך הנמצא ברקע יוכל להשתמש בעכבר הפיסי: תהליך ברקע יכול להשתמש ב-ם56590 0מ10768:0₪ מיוחד הנקרא קט-קסק, כדי להתקשר עם המפעיל. הפרוטוקול המשמש לביצוע הק/9פ לעכבר דומה לזה המשמש התקני תו אחרים. התהליך פותח את העכבר בעזרת םמ100006, אשר מאתחל את העכבר הלוג*. מרגע זה הוא מבצע את כל פעולות הק/פ הקשורות בעכבר בעזרת מקשר 1/1011 שמוחזר על-ידי מסקסטסו/. לבסוף, התהליך מפעיל את 10001056 כדי להפסיק את הקשר לעכבר הלוגי. כדי לטפל באירועי העכבר, התהליך חייב לעקוב אחר סוגי האירועים שדווחו. לדוגמה, נניח שהתהליך השתמש ב-0185%ת6ט96+8טסו כד: להודיע שהוא רוצה שרק אירועים הקשורים ללחצן 1 *דווחו. כדי להמחיש דוגמה זו, הצגנו בתרשים 40 אירועים אשר דווחו במאגר הקלט של העכבר על- פי פעולות שננקטו על-ידי המפעיל. מישקי ה-1/10011 חולקו למספר קטגוריות כלליות: ק/פ של נתונים. בקרת הסמן. בקרת ההתקן. החלפת פונקציות. טסו ק/9 של נתונים יישום יוכל לקבל קלט מעכבר לאחר שישיג מקשר [101 להתקן. הקלט עצמו הינו קריאה של רשומות נתונים של העכבר ממאגר הקלט הפועל לפי שיטת סשקזק. 6 סוגר את העכבר המזוהה על-ידי מקשר ה-1//011 שלו. 6 טסו מנקה את המאגר המכיל את אירועי העכבר המזוהה בעזרת מקשר [זסוא. 0061 מחזיר את מספר רשומות נתוני העכבר הנמצאים כרגע בתוך מאגר הקלט של העכבר. הוא גם מחזיר את מספר הרשומות המקטימלי היכול להיות במאגר הקלט של העכבר המזוהה בעזרת מקשר 1ז10/. ח6ק0ט 0 פותח את העכבר לתהליך ומחזיר מקשר 1/1011 להתקן. 6 קורא רשומת נתוני עכבר ממאגר הקלט של העכבר המזוהה בעזרת מקשר [11001. התהליך חייב להודיע אם הוא רוצה להמתין עד אשר הוא יקבל רשומה, או שהוא רוצה שהשירות 0₪6+ת1008680206/ יחזור מיד אם אין כל רשומה שהיא. ראה תרשים 39 המתאר את מבנה רשומת נתוני העכבר. 199 פעולת המפעיל סוג האירוע שדוות לחצן 1 נלתף. לחצן 1 לחוא. אין תנועה. לחצן 1 עדיין לחוא. העכבר בתנועה. לחצן 1 לחוא. יש תנועה. לחצן 1 משוחרר. אף לא לחצן אחד לחוא. העכבר נעצר. אין תנועה. לחצן 2 עדיין לחוא. אין אירוע. העכבר בתנועה. לחצן 2 עדיין לחוא. העכבר עדיין בתנועה. לחצן 1 נלחף. לחצן 1 לחו). לחצן 2 לחוא.: יש תנועה. לחצן 1 שוחרר. לחצן 2 שוחרר. העכבר עדיין בתנועה. אף לא לחצן אחד לחוא. יש תנועה. העכבר (עצר. אין אירוע. (אין שינוי הקשור ללחצן 1) תרשים 40. דוגמה לאירועי עכבר המבוססים על פעולות המפעיל [ז0]ן בקרה על הסמן יישום *כול לשלוט בצורה ובמיקום של סמן העכבר, כמו גם באזורים שבהם ניתן להציג את סמן העכבר. ץז וס | מאפשר לסמן של העכבר המזוהה בעזרת מקשר [1/101 לנוע בשטת שהיה סגור בפניו קודם. פעולה זו גורמת לשרטוט סמן העכבר אם הוא נמצא באיזור שנסגר בפניו קודם. 1100860062%7 קובעת את האיזור שייסגר בפנל סמן העכבר. 68 ממחזיר את המיקום האנכי והאופקי של הסמן של העכבר המזוהה בעזרת מקשר [ז0סוא. 6 ממחזיר העתק של צורת הסמן המשמש את העכבר המזוהּה בעזרת מקשר 1//0%1. ברירת המחדל במקרה של מסך במצב טקסט היא ריבוע, שמאפשר לתווים שכתובים כבר במסך להמשיך להראות. ברירת המחדל במקרה של מסך במצב גרפי היא חף. התהליך *כול לשנות את הצורה של סמן העכבר בעזרת 6מנ 0 100 כ קובע את שטח המסך שיעמוד לרשות הסמן של העכבר. התהליך מגדיר ריבוע שבו הסמן לא :וכל להופיע, ואם הוא נמצא בתוך האסור המוגבל, הוא מוצא משם. 2%%ש1100018₪ משחרר את ההגבלות על התנועה של הסמן. : 1-5 קובע את המיקום האנכי והאופקי של סמן העכבר, המתאים לעכבר המזוהה בעזרת מקשר [ז1]0א. 86 קובע את הצורה שבה *ופיע סמן העכבר המתאים לעכבר המזוהה בעזרת מקשר [101א. התהליך חייב לציין את הפרטים הבאים: * סיביות המיסוך 0%א ו-כ8% לצורך קביעת הצורה של הסמן. * הרוחב והגובה של הסמן המוצע. * נקודת ההתחלה של הסמן. [זא בקרה על ההתקן לרשות היישום עומדים מספר מישקים המאפשרים לקבל ולקבוע פרטי מידע על העכבר ועל מאגר הקלט שלו. היישום *כול לשלוט בסוג האירועים שידווחו, ומי יציג את סמן העכבר. 898 ממחזיר את מצב העכבר המזוהה בעזרת מקשר 1011. המידע הזה כולל את הפרטים הבאים: האם המיקום של העכבר מצוין בקואורדינטות או ב-5ע6א10. האם התהליך אחראי לתחזוקה של הסמן במסך. האם ניתן לשרטט את העכבר במצב המסך הנוכח:. האם מאגר האירועים של העכבר מתרוקן כרגע. האם מתבצעת כרגע קריאה ממאגר האירועים של העכבר. האם מאגר האירועים של העכבר עסוק כרגע עם ק/9. וס( מחזיר את סוגי האירועים המדווחים באמצעות רשומות נתוני עכבר השייכות לעכבר המזוהה בעזרת מקשר [10%. הזיהוי של הלחצנים נעשה באמצעות מספר לוגי, אשר השמאלי בהם הוא 1. סוגי האירועים הם כדלהלן: * לחצן 1 לחואצ/משוחרר. לחצן 1 לחוצ/משוחרר וקיימת תנועה של העכבר. לחצן 2 לחו+/משוחרר. לחצן 2 לחוא/משוחרר וקיימת תנועה של העכבר. לחצן 3 לחוצ/משוחרר. לחצן 3 לחוא+/משוחרר וקיימת תנועה של העכבר. קיימת תנועה של העכבר ללא פעילות בלחצנים. 0 מציין את מקשי העכבר המקבילים בתפקידם לצירופים של מקשים במקלדת הידועים בשם "מקשים חמים". מקשים אלה מוגדרים לכל המערכת, ועל כן הם זהים בכל ה-8ת565910. הם מאפשרים למפעיל לפנות לבורר התכניות של 05/2, אשר מראה רשימה של *ישומים שניתן להתחיל אותם ורשימה של ה-5ת565910 הפעילים כרגע. הוא גם מאפשר לעבור ת565810. המקש החם של העכבר *כול להיות מורכב מלחצן אחד, או *ותר, שחייבים להלח בו-זמנית. 11 05+ות תטא)26)ט10 מחזיר את מספר הלחצנים בעכבר. )10026 מחזיר את מספר ה-58ע16%6ת הנכנסים בסנטימטר אחד לגבי העכבר המזוהה בעזרת מקשר 011/. 6% מחזיר את היחס שבין התנועה האנכית והאופקית של העכבר, לבין תנועת הסמן של העכבר על פני המסך. יחס זה מבטא את מספר ה-5ע10%6ת הדרושים להזיז את סמן העכבר לאורך 8 פיקסלים. ברירת המחדל לציר האנכי היא 8 *חידות ק86א168מ עבור 8 פיקסלים. ברירת המחדל לציר האופקי היא 16 *חידות ע6א10 עבור 8 פיקסלים. 608 כקלקובע פרמטרים מסוימים לעכבר המזוהה בעזרת מקשר 1011/א. הפרמטרים שניתן לקבוע אותם הם: * האם המיקום של העכבר *צוין בקואורדינטות, או ב-5ע116%6. * האם התהליך *היה אחראי לתחזוקת הסמן במסך. טס קובע את סוגי האירועים שידווחו באמצעות רשומות נתונ?ל עכבר השייכות לעכבר המזוהה בעזרת מקשר [101א. הזיהוי של הלחצנים נעשה באמצעות מספר לוגי, אשר השמאלי בהם הוא 1. סוגי האירועים שניתן לדווח עליהם הם: * לתצן 1 לחוצ/משוחרר. לחצן 1 לחוצ/משוחרר וקיימת תנועה של העכבר. לחצן 2 לחואצ/משוחרר. לחצן 2 לחו+/משוחרר וקיימת תנועה של העכבר. לחצן 3 לחואצ/משוחרר. לחצן 3 לחו+/משוחרר וקיימת תנועה של העכבר. קיימת תנועה של העכבר ללא פעילות בלחצנים. 6% כובע את היחס שבין תנועת העכבר במציאות לבין תנועת הסמן במסך. יחס זה מבטא את מספר ה-5ע10%6ג הדרושים להזיז את סמן העכבר ב-8 פיקסלים. 01 החלפת פונקציות יישום או תת-מערכת אחרת לעכבר *כולים לנטרל את מישקי ה-[001, במטרה להרחיב או להחליף את השירותים המסופקים על-ידי תת-המערכת 10011 כמובן שכמו בכל תת-מערכת, תת-מערכת נוספת למקלדת *כולה להוסיף מישקים לאלה הק*ימים. טס מבטל את הרישום של תת-המערכת שנרשמה קודם לפעולה ב-ת565510. רק התהליך שביצע את ה-110186715667 ב-ת565910 *וכל לבצע את ה-636215%67כנוסן/. טס רושם לפעולה תת-מערכת לעכבר בתוך ה-ם565510 הנוכחי. בכל ת56590 ניתן להפעיל רק תת-מערכת אחת, אשר חייבת להודיע איזה מבין שירותי הק/פ של תת-המערכת 11011 היא עומדת לנטרל בזמן שהיא פועלת. יש לציין שתת-המערכת החדשה תשפיע אך ורק על התהליכים הנמצאים ב-ת565910 הזהה לשלה. מרגע זה, בכל פעם שתהליך *פעיל שירות של 1011 שנוטרל, תקרא תת-המערכת [1/1021 לתת-המערכת החדשה. לגבי שירות ה-[1021/ שנוטרל, תת-המערכת 12 החדשה *כולה לגרום לביצוע שלו על-ידי החזרת קוד שגיאה מיוחד בעל ערך של 1- (תחתעת). תת-המערכת [101 תקרא אז לשירות ה-[1כ0 המקורי. הסתעפטסוא מאפשר לתת-המערכת החדשה הרשומה לפעולה לטנכרן את הגישה שלה לעכבר הפיסי. אפשרווזת לבקרת ק/פ 100 יישום יכול לפקח על ההתקן ועל הפעולות שלו באמצעות מישק בקרת הק/פ. מישק זה ידוע גם בשם מישק 1008 - 6701ת60 1/02, זאת בנוסף לאפשרויות הקיימות באמצעות מישקי מערכת הקבצים ומישקים של תת-מערכות אחרות המטפלים בק/5. מישקי בקרת הק/פ משמשים לבקרה על הפרמטרים של ה-166ש646 6 הניתנים לשינוי. מישק בקרת הק/פ קשור קשר הדוק לסוג ההתקן, ולכן הפקודות שלו מחולקות לקטגוריות לפי סוג ההתקן, ובתוך כל קטגוריה יש חלוקת משנה לפי פונקציות. בתרשים 41 תמצא רשימה של הקטגוריות שמוגדרות כרגע על-ידי 05/2. יישום ב-025/2) מגיש בקשה ל-106%1 באמצעות הפונקציה 05269106%1כ. תנאי מוקדם לבקשת 102011 הוא קבלת מקשר להתקן. זאת אומרת, שהיישום חייב קודם לפתוח את ההתקן כדי לקבל מקשר של מערכת הקבצים להתקן. במקרה של התכ תו, היישום משתמש בשמו של התקן התו עם שיגרת הביצוע 028% של מערכת הקבצים. כדי לפתוח התקנים המטפלים בבלוקים, התהליך משתמש בשיגרת הביצוע 028% של מערכת הקבצים עם אות הכונן המשמשת כשם ההתקן. לאחר שהיישום משיג מקשר להתקן, הוא *כול להשתמש בפקודת 1020%[1 לאותו התקן שהוא השיג את המקשר שלו. מערכת ההפעלה מקבלת את בקשת ה-100%1 ומעבירה אותה ל-61167 860106 של ההתקן שמדובר בו. | א | קטגוריה לפי התקן 1 ָ 3. בקרה על מחוון הציור / ו [ 1 ו ] בקרה על הדיסק הפיס: בקרה על התקן הפיקוח בקרה כללית תרשים 41. קטגוריות ה-106+1 143 יישום ב-25/2) אינו חייב לשלוח פקודות 102661 להתקנים שהוא משתמש בהם. מבין| הקטגוריות השונות שכרגע מוגדרות, היישום צריך לשקול שימוש ב-10641 של ההתקן הסידרתי או בזה של המדפסת, אם הוא משתמש בהתקנים אלה. יישום ה-05/2) *וכל לוותר על ה-100%6 של המקלדת, העכבר ומחוון הציור ולשלוט בהתקנים אלה דרך תת-המערכות הייעודיות של כל אחד מהם. תת-המערכות 80א ו-[ז10 צריכות לבחון את השימוש ב-106)1 עבור התקנים אלה. השיגרה של המערכת המבצעת פירמוט, או זו המבצעת מחיצות במצעים המגנטיים, חייבת להשתמש ב-1020%1 של הדיסק/דיסקט הלוגי ובאלה של הדיסק הקשיח בהתאמה. ה-1020%1 הכללי וזה של התקן הפיקוח משמשים בד"כ את מערכת ההפעלה, או מרכיבים אחרים של המערכת. קטגוריות 1020%1 נוספות וחלוקת המשנה בתוכן ניתנות להגדרה על-ידי :ישום או תת-מערכת שמספקים 67167 106ט66. קטגוריית ה-[1020% הינה שדה בגודל בית, שבו הסיבית החשובה היא הסיבית הגבוהה ביותר (סיבית 7). כאשר היא מופעלת, היא מצביעה על כך שהיישום הגדיר את הקטגוריה. אם היא ריקה, הדבר מצביע על כך שמערכת ההפעלה הגדירה את הקטגוריה. בתרשים 42 תמצא את הגדרת הסיביות בקוד של הקטגוריה. פונקציות המשנה של ה-1060%1 הן שדה בגודל של בית, שבו שלוש הסיביות הגבוהות ביותר הן המשמעותיות ביותר. סיבית 7 מורה איך לטפל בבקשה, אם ה-6:168 660106 אינו תומך בפונקציית המשנה המסוימת. סיבית 6 מורה אם פונקציית המשנה נשלחת ל-:6ש071 660166 לצורך עיבוד. סיבית 5 מצינת אופציה בלבד ומטרתה לארגן את הקודים בפונקציית המשנה. בתרשים 42 תמצא את ההגדרה של המספר המייצג את פונקציית המשנה. פונקציית משנה קוד קטגוריה 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 ב ב ב ו ב מוגדר על-:די המשתמש מוגדר על-ידי המערכת 5 התעלם מהפקודה, אם אינה נתמכת על-:די ההתקן החזר שגיאה, אם אינה נתמכת על-:ד:* ההתקן ו כ = 1 שלח ל-ע82106 600106 0 שלח למערכת ההפעלה 1 השג נתונים מההתקן (בחירה) 0 שלח נתונים להונקן (בחירה) * > 1 ניתן להגדרה תרשים 42. ההגדרה של הקטגוריה ופונקציית המשנה ב-106₪ 14 לסיכום, כדי להגדיר קטגוריה חדשה, יישום או תת-מערכת, צריכים להציב בסיבית הגבוהה ביותר 1, ולהשתמש בסיביות הנותרות, לפי הצורך, כדי ליצור מספר קטגוריה. כדי להגדיר פונקציית משנה, היישום או תת-מערכת צריכים לקבוע מה יהיו הערכים בשתי הסיביות הגבוהות ביותר, ולהשתמש בשאר שש הסיביות להגדרת מספר הפונקציה. תכניות פיקוח להתקני תו תכנית פיקוח (ז60נתסות) להתקן תו היא מנגנון המאפשר ליישום 05/2, או לתת-מערכת, "ליירט" את זרם הנתונים העובר דרך התקן (ראה תרשים 43). היישום :כול לשנות, או לצרוך חלק מהנתונים, ‏ או את כולם, באחד משנל המקרים הבאים: = לפני שהנתונים מוכנסים למאגר ההתקן, אשר קוראים ממנו נתונים. ה לפ( שהנתונים שנכתבו על-ידי *ישומים אחרים נשלחים להתקן, אשר כותבים אליו נתונים. / יישום 05 משתמש בשיטה אחרת כדי להשיג את אותה פעולה: *ישום 05 יכול להשתלט על פסק של ההתקן, או על פסק של ה-81025, כדי שהוא *וכל לדעת מתי הנתונים עוברים דרך ההתקן. יישום "המיירט" את זרם הנתונים של ההתקן נותן למעשה שירות ליישומים אחרים. תכנית פיקוח להתקני תו היא כלי, שהיישום *כול להשתמש בו לביצוע שירות שיהיה שקוף ליישומים אחרים. אין צורך לשנות יישומים ‏ אחרים, כדי שיוכלו להשתמש בשירותים אלה; הם ממשיכים לבצע את פעולות הק/פ שלהם כרגיל. 6 נש פס | | מאגר הפלט יישום "מ" תכנית הפיקוח לפלט יישום ייה תכנית הפיקוח לקלט תרשים 43. התנועה של נתוני ההתקן באמצעות תכניות הפיקוח 165 תכנית הפיקוח להתקני תו תלויה ב-ז61100 060106 לביצוע פעולותיה: אין זו רק הגדרה של אופי זרם הנתונים אלא הוא גם חייב להשתתף באופן פעיל בהכוונת הנתונים לתכנית הפיקוח. הגדרת של זרם הנתונים חשובה ליחסים ביו ההתקן למערכת (וכתוצאה מכך, גם עם תכנית הפיקוח), כי הוא מגדיר איך יישומים *יבצעו ק/פ להתקן. לדוגמה, זרם הנתונים *כול להיות מטופל ביחס ל-ת56591)0, כפי שהדבר נעשה עם המקלדת והעכבר, או ביחס לכלל המערכת כפי שהדבר נעשה עם המדפסת. זאת אומרת, שהיקף ההשפעה של תכנית הפיקוח על הק/פ של יישומים אחרים הוא בהתאם להיקף של זרם הנתונים לאותו התקן. לכן, תכנית פיקוח על זרם נתונים המוגדר ביחס ל-5098102 מסוים תשפיע רק על אותם יישומים הנמצאים באותו ם565510. תכנית . פיקוח על זרם נתונים המוגדר לכל המערכת תשפיע על כל היישומים בכל ה-56551005. הכוונת זרם הנתונים שמבוצעת על-ידי ה-:6ט611 600166 חשובה, מאחר ואין ביכולתה של תכנית הפיקוח לשלוט בזרם הנתונים. זאת אומרת, שאפשר להשתמש בתכניות פיקוח רק בהתקנים שה-:6ט671 60166 שלהם תומך בפיקוח. ב-05/2 יש שלושה 5:ז0ט611 660106 שמאפשרים פיקוח על זרם הנתונים שלהם: המקלדת, העכבר והמדפטת. ה-0:5ש011 660166 של המקלדת והעכבר מגדירים זרם נתונים לכל ת565510. ה-ז611/6 669106 של המדפסת מגדיר זרם נתונים לכלל המערכת עבור התקן אחד. לדוגמה, היישום שמפקח על נתוני המקלדת יכול למפות (ק8ם) את צירופי המקשים, או לקבוע זיקה בין צירוף מקשים אחד לשני. זאת אומרת, שהקשה אחת או *ותר תוכל לשמש כקיצור לצירוף של מספר הקשות. מאחר וקיים רק זרם נתוני מקלדת אחד בכל ת865910, המפעיל יוכל להתאים קיצורים שונים ליישומים הנמצאים ב-8659105 נפרדים. באשר למדפסת, היישום *וכל להשתמש בתכנית הפיקוח, כדי "ליירט" את המידע להדפסה ולכוון אותו למדפסת אחרת או להתקן אחר. ניתן לכתוב 5ז07100 660166 להתקני תו אחרים ולשלב בהם עבודה עם תכניות פיקוח. תכנית הפיקוח מורכבת למעשה מ-686ז0? בעל עדיפות ביצוע גבוהה המטפל בשני מאגרים שאפשר להתייחס אליהם כמאגרי א1 ומאגר 00177). היישום חייב לפתוח תחילה את התקן התו לשימוש מבוקר, והוא עושה זאת באמצעות מקשר הפיקוח שהתקבל. נתונים מההתקן מוצבים במאגר א1, וכדי לעבד אותם, ה-680זת+ האחראי על הפיקוח קורא אותם מתוך המאגר לתוך מאגר פרטי. רק אז תכנית הפיקוח *כולה לבדוק, לשנות, להכניס ו/או למחוק תווים בנתוניס שהתקבלו. אם יש נתוניס שצריך להחזיר להתקן, היא כותבת את הנתונים לתוך מאגר 02177). הנתונים שנמצאים במאגר 0111 מוצבים אז בזרם הנתונים הכללי להתקן. כאשר היישום רוצה לבטל את הפיקוח שלו, הוא עושה זאת בעזרת מקשר הפיקוח להתקן. תכנית פיקוח אחת, או יותר, יכולה לשלוט על זרם הנתונים של ההתקן. הקיום של תכניות הפיקוח האחרות שקוף לחלוטין לגבי כל אחת מהן, אולם בזמן שמתבצע הרישום של התפנית, יש לה את האפשרות להצביע על ההעדפה שלה לגבי המיקום שלה ביחס לאחרות (ראשונה, אחרונה, לא חשוב) על בסיס ראשו|-מגיע-ראשון-מקבל. במלים אחרות, תכנית הפיקוח הראשונה שנרשמה לעבודה וביקשה מקום ראשון תהיה ראשונה, ואילו תכנית הפיקות הבאה שנרשמה לעבודה ובקשה מקום ראשון תהיה שניה בתור. באופן דומה, תכנית הפיקוח הראשונה שנרשמה לעבודה וביקשה מקום אחרון תהיה אחרונה, ואילו תכנית הפיקוח הבאה שנרשמה לעבודה וביקשה מקום אחרון תהיה שניה מהסוף. תכניות פיקוח שנרשמו לעבודה בלי העדפה כלשהי לגבי המיקום שלהן *וצבו 16 לפני אלו שביקשו להיות אחרונות. המישקים שהיישום צריך להשתמש בהם לצורך הפיקות רשומים להלן לפי סדר השימוש בהסם. ה006ת2059]0 פותח את התקן התו המזוהה בעזרת שם ההתקן, ומחזיר מקשר פיקוח. ת0פסע רושם לעבודה את תכנית הפיקוח ביישום לפי המיקום שחהיא מעדיפה להיות בו ברשימת תכניות הפיקוח. היא פועלת על זרם נתונים מסוים של התקן תו המזוהה על-ידי מקשר הפיקוח שלו. תהליך *כול להפעיל תכנית פיקוח לכל זרם נתונים של ההתקן ולהשתמש לשם כך באותו מקשר פיקוח. במקרה של זרם (תונים נפרד לכל ם569500, היישום *כול להפעיל תכנית פיקוח נפרדת לכל מ569510. 48 ק<ורא רשומת נתונים מתוך מאגר ה-א1 לתוך שטח עבודה פרטי המוגדר על-ידי תכנית הפיקוח. במקרה שב איץ'* כרגע נתונים לקריאה, היישום צריך לציין אם הוא רוצה להמתין עד אשר הוא יקבל נתונים, או שהוא רוצה שהשירות יחזור אליו מיידית. 6 פס כותב רשומת נתונים מתוך שטח העבודה הפרטי לתוך מאגר 7ז00). 6 ססוגר את ההתקן המזוהה על-ידי מקשר הפיקוח שלו, ומנתק את הקשר לזרם הנתונים של ההתקן. ק/פ שיר לחומרה יישום או תת-מערכת ב-05/2) *כולים לבצע ק/פ ישיר להתקן באמצעות סגמנטים של פקודות הרשאה (1021). זאת אומרת, שיישום או תת-מערכת *כולים לתכנת את המתאם להתקן מבלי להשתמש ב-ת616 660106, או במישק בקרה מסוג 0 ישנם מספר מצבים שבהם *ישום או תת-מערכת צריכים לשלוט ישירות בהתקן. לבקרה ישירה יש יתרון בכך שהיא *ותר מהירה מאשר שימוש בשירותי ביניים. כדי לבצע זאת, היישום צריך להשאיר בזיכרון רק את הסגמנטים שהוא משתמש בהם בפועל. לכן, סגמנטים המכילים שגרות המשמשות לשליטה בהתקן אינם חייבים להיות בזיכרון ולתפוס בו מקום, עד אשר הם נקראים להתבצע. ב-2)25, אין למעשה הגבלות על מה שהיישום *כול לעשות עם התקן שהוא פונה אליו ישירות. עם זאת, חופש הפעולה *כול להוביל בקלות לקונפליקטים בין תכניות 7153, המתחרות ביניהן על השימוש באותו התקן. יישום ב-05/2) :כול לפנות ישירות להתקן בתנאים מסוימים בלבד. תנאים אלה קיימים בגלל שתי סיבות: הראשונה היא, שמנגנוני ההגנה של המיקרו-מעבד 80286 מציבים הגבלות על מה שפקודה ברמת הרשאה של :ישום (3 = 1ק6) *כולה לעשות; הסיבה השניה היא, שבסביבה רבת משימות :ותר מיישום אחד *כול להשתמש בהתקן, וכדי למנוע תקלות יש צורך בכללי עבודה מסוימים. כללי ההגנה של 80286 מונעים מפקודה ברמת הרשאה של יישום (3 = מקס) לשרת פסקי חומרה, למרות שיש צורך לטפל בהם בכל רמת הרשאה. המעבד אינו מאפשר ליישום להעלות את רמת ההרשאה שלו, ולכן רק פקודות ברמת הרשאה של 107 המערכת יכולות לשרת את פסקי החומרה. כתוצאה מכך, רק ה-ז0ע6]1 660166 יכול לשרת את פסקי ההתקן, מכיון שהוא מתבצע עם רמת הרשאה מועדפת המתאימה לצורך זה. זאת אומרת, שהתקן שאינו מבוקר פסקים הגו המועמד הטוב ביותר לביצוע ק/9 ישיר. דוגמה טובה להתקן כזה הוא מתאם התצוגה. כדי לשלוט ישירות בהתקן, היישום חייב להשתמש בפקודות ק/9 כמו א1, פאז, דשס, %5, 01 ו-511. הפקודות 5א1/א1 ו-017/00715 מקבלות ושולחות בהתאמה נתונים לכניסות הק/פ של ההתקן. הפקודות 611 ו-511 מנתקות ומאפשרות בהתאמה פסקים של החומרה. אולם, ה-80286 מגביל את השימוש בפקודות אלו ליישומים שיש להם רמת הרשאת ק/5 (1021), או רמת הרשאה גבוהה יותר. מכיון שיישומים מתבצעים ברמת ההרשאה הנמוכה ביותר, הם אינם *כולים לבצע פקודות ק/פ. 05/2 מספקת את האמצעים שבעזרתם יישום או תת-מערכת *כולים לפעול ברמת הרשאה גבוהה *ותר, כדי שיוכלו לבצע ק/5 ישיר. במטרה לשמור על רמת ההגנה הקיימת, מערכת ההפעלה אינה מאפשרת לכל הסגמנטים ביישום או בתת-מערכת לפעול ברמת ההרשאה החדשה (1021). רק הסגמנטים שנקבע שהם זקוקים לרמת הרשאה גבוהה יותר יורשו להתבצע במסגרת עעסז. מסיבה זו, *ישום או תת-מערכת חייבים לבודד את כל השגרות המשתמשות בק/פ ולהכניס אותן לתוך סגמנט פקודה אחד או יותר, ולהצביע בזמן הקישור מי מבין הסגמנטים המכילים פקודות דורש ;פס1. שירותי מערכת אינם *כולים להתבצע מתוך סגמנטים של פקודות עם הרשאת 1. הדבר גורם לכך, שפקודות ברמות ההרשאה השונות *כולות להגן על עצמן ביעילות זו מזו. אולם, סימון של סגמנט פקודה עם הרשאת 100 או מספיק כדי לבצע פקודות ק/5. לפני הקריאה לשיגרה מתוך סגמנט הפקודה עם זפסז, היישום או תת המערכת חייבים לבקש רשות להשתמש בהתקן, באחת משתי דרכים: האחת מאפשרת להשתמש בכניסות הק/פ של ההתקן וגם מאפשרת לטפל במצב פסקי החומרה (1205201+80600655), והאחרת מאפשרת לטפל רק במצב פסקי החומרה (05061.18466655כ). ישנו עוד אספקט חשוב אחד הנוגע ל-1021. מאחר ו-1021 מנצל את מנגנון ההגנה של המעבד, יש למשתמש הקצה שליטה על שילוב האופציה הזו. הוא עושה זאת על-ידי קביעה של מילת המפתח .1021 בקובצ ה-5צ10.5עא00. הדבר מאפשר לסגמנטים של יישום, או תת-מערכת, להתבצע ברמת הרשאה 100₪. באמצעות כלים אלה, משתמש הקצה *כול לקיים את רמת ההגנה והאמינות הדרושה במערכת. הוא *כול למנוע הרצה בשוגג של :ישום אחד או *ותר, אשר משנים את סביבת התפעול מבלי לדעת על כך. רשת תקשורת מקומית 1.08 פרק 6 ניהול התקן מבוקר"פסקים אחד המאפיינים החשובים ביותר של המחשב האישי הוא התגובה המהירה שלו לפעילויות המבוצעות על-ידי משתמש הקצה. החשובות ביניהן הן פעולות הק/פ שהמשתמש והיישומים מבצעים במטרה לטפל בנתונים. ב-005ע, פעולות ק/פ להתקן מתבצעות לפי מודל הת:חקור (אַם11סק) וחייבות להסתיים לפ שהמשתמש :וכל להמשיך בפעילות כלשהי אחרת. ב-05/2, פעולות הק/5 נבנו לפי מודל של התקן מבוקר-פסקים, אשר משפיע הן על המשתמש והן על היישומים. ניהול התקן מבוקר-פסקים מאפשר לפעולות הק/פ להתבצע בו-זמנית עם פעילויות אחרות. לכן, ביצוע רב-משימתי הוא *ותר *עיל במונחים של שיתוף זמן המעבד בין פעילויות המתבצעות בו-זמנית. *עילות גבוהה *ותר גורמת לתגובה מהירה יותר, שממנה נהנים הן המפעיל והן היישומים שהוא מריף. מדוע ניהול התקן מבוקר-פסקים הוא כה חשוב למערכת? כדי להבין את מידת ההשפעה שלו, אנו חייבים להבין תחילה את המאפיינים של ניהול התקן לפי שיטת התיחקור. כפי שתזכור, ביצוע חד-משימתי ב-025 אומר, שאין אף מנגנון ב-05 שיכול להודיע ליישוסם שבקשת הק/פ שלו הסתיימה. *יישום ב-205 (וכתוצאה מכך גם משתמש ב-2025) חייב לבצע את הפעולות שלו בצורה סידרתית. דרישה זו מכתיבה את העקרון הבסיסי של ניהול 5/7 תחת 005 בשיטת התיחקור. במלים אחרות, התכנית שהוציאה בקשת 5/2 להתקן, מבצעת לולאה של הוראות הבודקות אם חל שגוי במצב של סמן מסוים. אם מצב הסמן השתנה, התכנית *ודעת שפעולת הק/פ הסתיימה, ואם מצב הסמן לא השתנה, התכנית חייבת לבצע שוב את לולאת ההוראות. הסמן *כול להיות תוצאה של שינוי בערך הנמצא באחד מחיבורי הק/5פ (%5זסק) של ההתקן, או תוצאה של פסק בהתקן. במקרה האחרון, הפסק המופיע בהתקן מפעיל שיגרה לטיפול בפסקים, אשר משנה את מצב הסמן שהתכנית בודקת בלולאה. מדוע חשוב לדעת שפעולת הק/5 הסתיימה? סיבה אחת היא טיפול בשגיאות. אם פעולת הק/פ נכשלת, *ישום ה-2)025 צריך לנסות שוב את הפעולה, או להודיע למפעיל שיש צורך להפסיק את הפעילות הזאת בגלל שגיאה. הצלחה בביצוע הק/פ אומרת שיישום 2005 יכול להמשיך לפעולה הבאה. סיבה שניה היא ניצול של הזיכרון. לאחר שפעולת הק/פ הסתיימה, היישום יודע שהמאגרים המכילים את הנתונים לצורך פעולת הק/9 פנויים וניתנים לשימוש חוזר. תחת 05כ, יישום אינו נדרש לנהל את התיחקור. אם *ישום 10005 משתמש במישכי המערכת לצורך ביצוע ק/פ, מישקים אלה מנהלים את התיחקור לגבי מצב פעולת הק/פ. אבל *ישום 205 המטפל ישירות בהתקנים, חייב לנהל את התילחקור בעצמו. בכל מקרה, ניהול התקנים תחת 2025 מוגבל לשימוש סידרתי ולתיחקור בלבד. 19 ניהול מבוקר-פסקים של התקן ב-025/2) משחרר את ההגבלות שהיו על 9/7 בשיטת התיחקור. ניהול מבוקר-פסקים של ההתקן מאפשר למבקש הק/5 להודיע על סיום הפעולה. בזמן ביצוע הק/פ5 בהתקן (ל*תן לבצע פעילות אחרת, ולמעשה גם סוגים שונים של ק/9פ יכולים להתבצע בו-זמנית, כמו למשל ק/פ לדיסק, למדפסת, למסך ולעכבר. כתוצאה מכך משאבי המערכת *כולים להיות מנוצלים בצורה יעילה על-ידי מספר :ישומים. הדבר נכון גם לגבי :ישום אחד שבו פועלים מספר תהליכים או 6805עת5. ביישום כזה יכולה להתבצע חפיפה בין פעולות עיבוד לבין בקשות ק/9. יתרון נוסף של ניהול מבוקר-פסקים של התקן בסביבה רבת משימות הוא השימוש האופטימלי בהתקנים "חכמים". המעבד הראשי :*כול להעביר למעבדים בהתקנים אלה עבודה המתאימה להם, ובכך להשתחרר לשם טיפול ביותר פעילויות הקשורות ביישום. כתוצאה מכך ניתן להגיד ש-25/2) מתאימה היום לפיתוח עתידי של התקנים. הבסיס לניהול מבוקר-פסקים של התקן הזו החיבור בין מערכת ההפעלה לבין התכנית השולטת על ההתקן, במקרה שלנו ה-67ש611 660106. ה-6806זם+ של ה-ז611/6 860106 שהוציא את בקשת הק/9 מוותר על פלח הזמן שלו בשעה שהוא : ממתין להתקן שיסיים את פעולתו. כאשר ההתקן מוכן, הוא שולח פסק למערכת. הפסק פורצ במהלך הביצוע של ה-686ע2+ הפעיל, וגורם להפעלת שיגרת הטיפול בפסקים של ה-6:160 860166. שיגרה זו מאתחלת את מצב הפסק בהתקן ומודיעה למערכת ההפעלה שה-686תת+ של ה-67ט6:1 669166 שהמתין לסיום בקשת הק/5 מוכן לריצה. לאחר ששיגרת הטיפול בפסקים סיימה את פעולתה, יכולה מערכת ההפעלה לתזמן את ה-68065זת+ השונים בהתאם לעדיפות הביצוע שלהם, ולהפעיל את ה-686זת+ בעל עדיפות הביצוע הגבוהה ביותר. התזמון הזה חשוב בעיקר לפעילויות שגורם הזמן בהן העו חשוב ביותר, כי המשך פעולתן תלוי במצב התקן הק/פ. אחת הדוגמאות הינה תקשורת נתונים, שבה נדרשות פעילויות מסוימות כדי לתפעל את ערוצ התקשורת. כאשר ה-680זת+ של ה-ז6ש671 660106 מתבצע, הוא מחזיר קוד סיום ליישום שסם את בקשת הק/פ. כפי שרואים, ניהול מבוקר-פסקים של התקן משתלב בצורה מלאה עם הבצוע הרב-משימתי שמכתיבה מערכת ההפעלה, והוא גם מגיב מהר *ותר למצבים השונים בהתקן. התגובה המהירה מושגת מכיון שההתקן מאותת על מצבו בעזרת שידור של פסק בחומרה. יישום הפועל תחת 05/2 יכול לבצע ק/5 בשיטת התיחקור. אולם, חזרה ללא צורך על הוראות של לולאה הינה ניצול לא *עיל של זמן הביצוע המוקצה לו. כדי לעקוף זאת אפשר להשתמש במישקים המספקים שירותים של השעון הפנימי כמו 205118679%816, או ק2055166, כדי לקבוע את התדירות שבה היישום יבדוק אם ההתקן טיים את פעולת הק/5 שלו. תפקיד ה-פומ/1הם זופת מודל ההתקן מבוקר הפסקים ב-05/2) מושג על-ידי שימוש ב-6ש6"1 860166. ב-05/2, רק ה-61167 660106 *כול לטפל בפסקים של התקנים. לכן, *ישום שצריך לנהל התקן מבוקר-פסקים חייב לספק ז6ט6"1 660106 משלו, או להשתמש בזה הקיים לאותו התקן. 110 ההגדרה של 6ש1ז6 660106 ב-05/2 דומה לזו שב-2025. זוהי תכנית שמנהלת את זרימת הנתונים להתקן וממנו. היא אינה **ישות עצמאית בדומה לתהליך, אלא דומה *ותר לתת-שיגרה. מערכת ההפעלה קוראת ל-זַ6ט611 660166 כדי שיבצע פעולה מסוימת: בשמה של בקשת 5/2 של היישום ולמעשה, אפשר להסתכל עליו כהרחבה של מערכת ההפעלה. בקשות הק/פ של היישום ב-025/2) מופיעות בשתי צורות. צורה אחת נגזרת כתוצאה מהשימוש במצב המוגן של ה-80286, והצורה השניה נגזרת כתוצאה מהשימוש במצב האמיתי של המעבד. כתוצאה מכך, מערכת ההפעלה קוראת לאותו 67 660106 שיבצע את בקשת הק/5 גם במצב מוגן וגם במצב אמיתי (ראה תרשי 44). פסקים בחומרה ימשיכו להתרחש בלי תלות במצב שבו מופעל ה-[621. לכן אפשר להגיד, שה-:61100 660106 ב-025/2 יכול להתבצע בסביבה דו-מצבית, כלומר גם במצב האמיתי של ה-80286 וגם במצב המוגן. במצב מוגן, ה-ז6ט021 68 מתבצע עם רמת הרשאה של המערכת, כלומר רמת הרשאה=0, אשר מעניקה לו רמת-הרשאה לק/5 (1001). 1001 מאפשר ל-860106 6 לגשת לכניסות הק/פ של ההתקן ולבצע פקודות מוגנות כמו א1 ו-7ש0. ה-61ע71 6 יכול גם לטפל במצב אות-הסימון של הפסק, ובכך לאפשר או לבטל את השימוש בפסקים. יישום ב-025/2) יכול לגשת לכניסות הק/פ של ההתקן בעזרת שגרות המקובצות בסגמנטים מכילי פקודות עם הרשאת 100₪. יש להדגיש שרק ה-67ש6171 6601606 יכול לטפל בפסקי חומרה. התקנת 011/67 660106 ב-0025/2 דומה להתקנה ב-2)005, באמצעות המשפט =105שמ בקובצ התצורה 5צ10.5ע60%. בזמן התיחול של מערכת ההפעלה, נבדק קובף התצורה ואז הקובף המצויץן על-ידי =₪0108כ נטען לזיכרון. לאחר הטענה קוראת מערכת ההפעלה לתכנית ה-זַ8ש671 6601066 לתחל את עצמה. במערכת ישנם מספר 6011068 860106, אשר חלקם נטענים אוטומטית (המסך, המקלדת, המדפסת, דיסק/דיסקט והשעון), ואת השאר יש צורך להטעין בעזרת המשפט >165עמכ שבקוב% התצורה (העכבר, תקשורת אסינכרונית ודיסק בפועל). על-ידי כך שסיפקנו מערכת בסיסית של 6:106:8 660106 איפשרנו ל-05/2 להבטיח תמיכה בתצורה של מערכת המכילה התכקנים ופונקציות סטנדרטיות. 02 16> 02 ע6ץ1עף שכשששששששששששםששנששפבפששם | = פסק יישום חומרה תרשים 44. המקום של 0ט671 600106 במערכת 171 היכולת להתקין 671675 669166 מאפשרת להרחיב את התיפקודיות של מערכת ההפעלה. ניתן להתליף 65168 660106 קיי*ם כדי לספק פונקציה נוספת להתקן, ואפשר גם להוסיף 611068 669106 חדש למערכת כדי לתמוך בהתקן חדש. כמו ב-2025, יש שני סוגים של 675ט1ז0 660106 ב-025/2): האחד - להתקנים המטפלים בתווים (להלן התקני תווים) והשני - להתקנים המטפלים בבלוקים (להלן התקני בלוקים). התקן תו מבצע ק/פ של תו אחד בו-זמנית, בד"כ דרך פקודות ק/5 בתכנית (אז ו-1[ז) בכניסות הק/פ). בהתקני תו, סדר הופעת התווים הוא משמעותי, כי ה-ז67106 660106 של התקן התו אינו יכול להכנס לנתונים בצורה אקראית. סדר בקשות הק/5 גם הוא משמעותי, כי ה-ז6ש6?1 660106 ימלא אחר הבקשות לפי הסדר שהוא קיבל אותן. הסיבה הע*קרית שבגללה הסדר הוא כל-כך חשוב בהתקני תו היא, שלהתקני תו אין זיכרון שבתוכו הם :כולים לשמור את הנתונים העוברים דרכם. לאחר שמידע נכתב או נקרא, אין אפשרות לאחזר אותו. התקן תו ניתן לז'הוי והפניה אליו נעשית בעזרת שם ההתקן. זהול ההתקן בעזרת שם מאפשר ליישום להתייחס להתקן כקובצ, ולהשתמש בפונקציות מסוימות של מערכת הקבצים כדי לבצע בו פעולות ק/9. דוגמאות להתקני תו ושמותיהם: מדפסת (71ק], 1072), מקלדת (880%) ותקשורת אסינכרונית (60%11, 002). התקן בלוקים מבצע בד"כ ק/5 עם בלוקים של נתונים מהדיסק, באמצעות אביזר תאש (גישה ישירה לזיכרון). המונח השימושי לבלוק נתונים הוא סקטור. סקטור הוא *חידת אחסון בדיסק בגודל 512 בתים, אשר ה-67ש611 060106 יכול להכנס אליה בכל זמן. התקן בלוקים אינו דורש שהק/פ לסקטורים *בוצע באותו סדר שבו הסקטורים ממוקמים בהתקן. זאת אומרת, שה-ז06:106 660106 של התקן בלוקים יכול לסדר מחדש בקשות לק/5 שהוא מקבל במטרה לבצע אופטימיזיציה של ביצועי ההתקן. לדוגמה, הוא *כול למיין את הבקשות לפי המספר ה*חסי של הסקטור, כדי לצמצם את בזבוז הזמן שנגרם כתוצאה מהמתנה להתקן שימצא את מיקום הסקטור. סדר הסקטורים אינו חשוב להתקן הבלוקים, כי התקן זה הוא התקן אחסון, השומר את הנתונים שהוא מקבל. התקן בלוקים ניתן לזיהוי והפניה אליו נעשית בעזרת אות הכונן. *ישום אינו ניגש בד"כ ישירות להתקן בלוקים, אלא מבצע ק/9פ לקובף, המהווה ‏ <צוג לוגי של נתונים בסקטור. הוא גם משתמש באות הכונן כדי לציין באיזה התקן בלוקים הקובץ נמצא. לאחר מכן מערכת הקבצים ממירה את בקשת הק/פ לקובף לבקשת ק/פ לסקטור, אשר נשלחת ל-ז6710 060106. ההתקנים הבאים הינם התקל בלוקים: כונני דיסקים קשיחים, כונני דיסקטים ודיסקים בפועל. השמות שלהם *כולים להיות :8 ו-:₪ וכו'. 6 והק/פ של הישומים ניהול ההתקנים נעשה על-:די 6:8ש611 669106 בהקשר לק/פ של היישומים. יישומי 05/2 מבצעים 5/2 עם המישקים הבאים: - מישקי מערכת הקבצים. - מישקי ה-10061. - מישסי תת-המערכות לק/פ. - מישקי פיקוח על התקני תו. 172 יישומים משתמשים במישסי מערכת הקבצים, כדי לבצע 5/2 לאובייקטים המבוטסים על שמות (קבצים) ואשר הגישה אליהם נעשית בעיקר באמצעות 5 660106 המטפלים בהתקני בלוקים בלבד. מישקי מערכת הקבצים מאפשרים ליישום לסקור את הנתונים שבהתקן בצורה של מבנים לוגיים. קוב הוא מבנה נתונים לוגי הנמצא בהתקן בלוקים שאפשר לראות אותו כמחרוזת של בתים. היישום מבצע 9/0 לקוב על-ידי כך שהוא מזהה את המיקום היחסי של הבית הראשון בקובצ ואת מספר הבתים שיש להעביר. אולם, ה-61ט671 660166 של התקן הבלוקים מבצע ק/5 רק במונחים של סקטורים. יותר מכך, הוא אינו יכול לזהות איזה סקטורים מכילים את הנתונים של היישום. מערכת הקבצים ' הופכת את הבתים המתייחסים לבקשת הק/פ של היישום לסקטורים בהתקן המתאימים לקוב>. בעבור כל בקשת ק/פ של היישום, מערכת הקבצים שולחת בקשת 9/2 (המבוסטת על סקטורים) אחת או יותר ל-61ט611 660166 של התסו הבלוקים, והוא מעביר את הסקטורים המתאימים לבקשה. לדוגמה, יישום המשתמש במישסי הק/פ פותח (א025, תחילה את הקובצ, לאחר מכן הוא קורא (2582) או כותב (מדזאש) לקובצ, ולבסוף סוגר (010058) אותו. כתוצאה מבקשת היישום להקים קשר עם ההתקן (לפתוח את הקוב), מערכת הקבצים יכולה לבקש מה-611067 660166 לקרוא סקטורים, המייצגים את המדריך ומכילים מידע אחר המאפשר בקרה על ההתקן. מערכת הקבצים :כולה גם לבקש מה-6ט6"1 660166 לכתוב סקטורים להתקן במטרה לרוקן 0:5++טט פנימיים של מערכת הקבצים (ראה דוגמה בתרשים 45). כתוצאה מביצוע ק/פ (סעהפת או אדזאשט) על-ידי היישום, מערכת הקבצים מודיעה ל-611061 106ש66 של התקן הבלוקים לכתוב או לקרוא סקטורים. כתוצאה מכך שהיישום ניתק את הקשר להתקן (סגר את הקוב>), מערכת הקבצים מבקשת מה-67ט011 060166 לכתוב להתקן סקטורים המייצגים את המדריך המעודכן ומידע אחר המאפשר בקרה על ההתקן. ה-67ט611 660106 אינו רואה את סוג הבקשה שהיישום ביקש, אלא הוא פועל לפי הנחיות מערכת הקבצים, הפועלת בשמן של בקשות הק/פ של היישום. ניתן להשתמש במספר מישקים של מערכת הקבצים לצורך ק/פ עם התקני תו, מאחר והתקנים אלה הם בעלי שמות. מדובר בעיקר ב-א5ע0, 601058, סבמת ו-3175/ט. היישום יכול לראות את הנתונים של התקן התו רק בצורה של מבנים לוגיים בדומה להתקני בלוסים; כלומר, כמחרוזת של בתים (או תווים). היישום מבצע ק/פ להתקן זה על-ידי ציון ההתחלה של מחרוזת הנתונים ומספר הבתים שיש להעביר. ה-ז6ש611 660106 יכול למלא אחר בקשת הק/פ של היישום ללא עזרה של מתווך. ואמנם, מערכת הקבצים תשלח אליו, במקרה זה, את בקשות הק/9 של היישום מבלי לשנות דבר. לדוגמה, יישום המשתמש במישקי הק/פ לקובצ פותח (א02₪) תחילה את שם ההתקן, לאחר מכן ;ורא (סבהמת) או כותב (08118) להתקן, ולבסוף סוגר (61025₪) אותו. כתוצאה מבקשת היישום להקים קשר עם ההתקן (לפתוח את ההתקן), מערכת הקבצים מבקשת מה-67ש611 6 להקים קשר בין שניהם, ולהכין את ההתקן לשימוש. כתוצאה מביצוע ק/פ (עבפת או מד1ח/) על-ידי היישום, מערכת הקבצים מבקשת מה-611761 660106 של התקן התווים לכתוב או לקרוא בהתאמה (ראה גם תרשים 46). כתוצאה מכך שהיישום ניתק את הקשר להתקן (סגר את ההתקן), מערכת הקבצים מודיעה ל-61ש6:1 660166 לבטל את הקשר הקיים להתקן, להפסיק את הק/פ ולאתחל משתנים פנימיים. אפשר לומר שה-671061 660106 של התקן התווים רואה את סוג בקשת הק/פ המג'יעה מהיישום, כתוצאה מפעולת הניתוב של מערכת הקבצים. 158 מערכת 0/2 קרא סקטור 11 למאגר 1 ב5006 סכ "45% . ₪1,זדק" ניהול = הקבצים סט 1 קרא סקטור 12 למאגר 2 של של הדיסק כתוב סקטור 7% למאגר 3 קרא סקטור 13 למאגר 3 תרשים 45. דוגמה לק/5 מנקודת המבט של תזסע1ז 60106 106% מישק ה-102061, או מישק לבקרת ק/5, משמש למשלוח פקודות *יחודיות להתקן, אשר עוזרות בבקרה ובשליטה עליו. מישק ה-[1006% *כול לפעול עם 660166 59 המשמשים הן את התקני התווים והן את התקנ* הבלוקים. כאשר *ישום מוציא בקשת 1020%1, מערכת ההפעלה שולחת את הבקשה *שירות ל-660106 6 המתאים. לדוגמה, המשתמש במישק ה-102061 פותח תחילה את שם ההתקן בעזרת מישק של מערכת הקבצים. לאחר מכן הוא שולח בקשת 10001 ולבסוף סוגר את ההתקן בעזרת מישק של מערכת הקבצים. הפתיחה והסגירה קובעות את מצב החיבור בין היישום להתקן, והן מטופלות על-ידי מערכת הקבצים בהתאם לסוג ההתקן. לאחר הפתיחה נשלחת בקשת ה-1)02661 ישירות מן היישום אל ה-זַ6ט671 660106 המזוהה על-ידי החיבור בין היישום להתקן. פקודת 1)020%1 תגיע ישירות מן היישום אל התקני תווים או אל התקנ* בלוקים. מישקי תת-מערכות ה9/0 משמשים לשירותי 5/7 המותאמים לאופי של ההתקן: תצוגה (10/), מקלדת (82א) ועכבר ([101/). הן מספקות מישקים *חודיים לכל אחד מהתקני התו האלה. אפשר לראות את מערכת הקבצים כתת-מערכת ק/5 המשמשת לשירותים הקשורים בהתקנ* בלוקים. מישקי תת-מערכת הק/9 מאפשרים ליישום לראות את הנתונים הנמצאים בהתקן רק בצורה של מבנים לוגיים המותאמים לאופי של ההתקן. לדוגמה, אפשר לטפל בנתונים הקשורים לתצוגה במונחים של תווים ומאפייני התצוגה שלהם, או במונחים של מאגר תצוגה לוגי. אפשר להתייחס לנתוני המדפסת והעכבר במונחים של רשומות, המכילות מידע על נתוני ההתקן. כאשר היישום מבצע בקשת ק/פ השייכת לתת-מערכת, תת-מערכת הק/5 יכולה להשתמש בשגרות .1021, במישקי מערכת הקבצים או בבקשות ה-106+1 כדי לטפל בק/5. אם תת-מערכת הק/9פ משתמשת במישקי מערכת הקבצים או במישק ה-[1006, היא צריכה גם להפיק בקשות ל-6ש671 060166 המתאים. והיא אמנם מפיקה בקשה אחת, או *ותר, כדי למלא אחר בקשת היישום. . 14 מערכת הקבצים 10=6 05006 טי יי ,ןי של המדפטסת יישום מערכת 2 =] הקבצים 6 6-כ 1 "םת" בתים "ת" בתים של המדפסת תרשים 46. ק/5פ מנקודת המבט של 6ט1:ז0 660106 להתקני תו מישק תכנית הפיקוח להתקני תו משמש לשליטה בזרם הנתונים אל ההתקן וממנו. מישק זה ישים רק לגבי 6:16:58 660106 התומכים בתכניות פיקוח. מבין ה-0:16:5 660106 הבסיסיים המסופקים עם 05/2, רק ה-660106 8 של ההתקנים הבאים תומכים בתכניות פיקוח להתקנים שלהם: מדפסת, מקלדת ועכבר. היישום המבצע את תכנית הפיקוח :כול לסנן את נתוני ההתקן הנמצאים בזרם הנתונים, להשתמש בהם או להחליף אותם. ה-67ש611 660106 מעביר אל תכנית הפיקוח במקרה זה כל נתון שהוא מקבל, והיא שולחת אותו ליעדו האחרון. היחס בין הסוגים השונים של בקשות הק/5 לבין מה שה-ז6ט!:6 660106 נדרש לעשות תלוי ברכיב המערכת האחראי לביצוע מישק הק/5פ. הרכיב הזה :כול לבצע מספר פעולות 5/0 כדי למלא אחר בקשת ק/9פ אחת של היישום. מנקודת המבט של ה-6ש1ז0 660106, לא תמיד אפשר לדעת את הסוג המדויק של בקשת הק/9 המבוצעת על-ידי היישום. רק במקומות שבהם ה-67ט611 860106 קשור בצורה הדוקה לתת-מערכת או למישק, הוא *וכל לזהות את המצב המדויק של של היישום המבקש. ה-67ש611 660106 של התקן הבלוקים אינו צריך לדעת את סוג בקשת הק/5, כי מערכת הקבצים דואגת לחיבור היישום להתקן לצורך ביצוע ק/פ. לעומת זאת, 6ט611 660106 להתקני תו צריך לעתים קרובות לנהל את החיבור בין היישום לבין התקן התו, ובעיקר במקרים שבהם אין תת-מערכת שתבצע את הפונקציה הזו. במקרה כזה, ה-:ַ16ז6 660166 של התקן התו *כול לבקש ממערכת הקבצים, באמצעות הכותרת (ז68006ת) של ההתקן, להודיע לו כאשר היישום מקים או מבטל את הקשר שלו להתקן התו. במלים אחרות, כאשר היישוס פותח את ההתקן, מערכת הקבצים שולחת פקודת 028% ל-זַ6ש671 660166 וכאשר היישום סוגר את ההתקן, מערכת הקבצים שולחת פקודת 010058. פעולה זו מאפשרת ל-ת6ש6:1 660106 לצרף בקשות ק/5 (6פותש 8 680:) עוקבות המתייחסות לחיבור מסוים. במקרים כאלה ישנה אפשרות שה-67ש671 106ַש66 יצטרך גם לתחל (118126ם1) את מצב ההתקן בכל פעם שיישום מתחבר לראשונה להתקן. המישק שרכיבי המערכת, כמו מערכת הקבצים, משתמשות בו כדי להודיע ל-071701 660106 מה לעשות, נקרא מישק חבילת הבקשה (80866ק 00₪0656ת). הרכיב במערכת ההפעלה קורא ל-67ט611 86106 ומעביר לו מחוון לחבילת 175 הבקשה, שאינה אלא מבנה נתונים (ראה תרשים 47). מבנה זה מתחיל בכותרת באורך קבוע המכילה מידע המשותף לכל הבקשות הנשלחות ל-ז6ט671 860106, ולאחריה ישנו שטח באורך משתנה המכיל מידע *יחודי לבקשה מסוימת. הכותרת מכילה חמישה שדות חשובים: אורך, יחידה, פקודה, מצב וקישור. שדה האור מודיע ל-:0ט611 660106 על הגודל האמיתי של החבילה. מאחר וישנו שטח בעל אורך משתנה, הגודל של המבנה אינו זהה בכל בקשה. שדה היחידה מתייחס ‏ רק ל-675ט611 660106 המטפלים בבלוקים, והוא מזהה את התקל הבלוקים, מבין שאר ההתקנים הנמצאים בבעלות ה-6ט6"1 106ט660, שהינו היעד של הבקשה. שדה וופקודה מודיע ל-6:106 660106 על הפעולה שיש לבצע. שדה המצב ממולא על-ידי ה-ז100ז0 060106 לאחר שהוא ביצע את הבקשה, ובו מוצב הקוד החוזר ליישום. שדה הקישור *כול לשמש את ה-60ט6:1 060106 כדי לאחסן את רשימת החבילות שיש לקשר. 61167 660106 צריך לשמור רשימה של בקשות שלא הושלמו במשך אותן פעמים שההתקן עסוק ואינו יכול לעבוד על בקשה אחרת. פקודה יחידה 0 5 9 שדה רוחב משמעות מסשַת16 אורך 1 בית האורך הכללי של מבנה הנתונים >מט *חידה 1 בית איזה התקן בלוקים תהשמסס פקודה 1 בית הפעולה שיש לבצע 8 מצב 2 בתים קוד הסיום של הפעולה 46 שמור 8 בתים 6 קישור 4 בתים רשימת החבילות שיש לקשר עסת6ס אחר משתנה מידע על פקודה מ*וחדת תרשים 47. מבנה חבילת הבקשה 1% פקודות להתקני בלוקים הפקודות שה-61ש671 660106 המטפל בהתקני בלוקים יכול לקבל: 76 1/6018 )% % 2878605050 3105 8[נט 8 6 סט ב16/ט 1%6ע/ט %זסקקט5 116018 8016ט60 1 060760 086% 8 סק 6טנזע 1081081 026% כ 6טוזכ 1081081 56% 5 186660 8741108016 ע-16ו6 5 1215%/1.021081 60א1ע 026% השדה "יחידה" בכותרת חבילות הבקשה לפקודות אלו, מזהה את התקן המטרה. הערך המוצב בשדה "חידה" הוא *חסי למספר הכללי של ההתקנים הנתמכים על-ידי ה-ת61106 660106: הוא נע בין 0 ל-1-ם, כאשר ם הוא מספר ההתקנים הלוגיים הנתמכים. ז6ט1ז0 6860106 להתקן בלוקים התומך בארבעה התקנים (שני כונני דיסקטים ודיסק קשיח שיש בו שתי מחיצות) יראה שערך זה נע בין 0 ל-3. . לגבי התקני בלוקים, מערכת ההפעלה משתמשת גם בתפיסה של מיפוי התקן לוגי להתקן פיסי. אם קיים רק כונן דיסקטים יחיד שיכול לטפל בשתי אותיות הכונן ‏ ":8" ו-":ס", אפשר לקבוע שההתקן הפיסי *וכל לייצג רק אחד משנל ההתקנים הלוג*ים בו-זמנית. במקרה שבו נקבעו מחיצות בדיסק הקשיח, ההתקן הפיסי מחולק בין מספר התקנים לוגיים, ולכל התקן כזה יש אות כונן משלו. בתגובה לפקודה 1)181126ת1, ה-67ש611 660106 צריך לכוון את ההתקנים שלו ולהחזיר בחבילת הבקשה את מספר ההתקנים הלוגיים שבהם הוא תומך. לדוגמה, במערכת שבה יש כונן דיסקטים *חיד, ה-ת6ט1ז6 660106 יחזיר את הערד 2, המצביע על תמיכה בכוננים ":8" ו-":ם". הוא חייב להחזיר גם את הסוגים של התקני הבלוקים בהם הוא תומך. הוא עושה זאת על-ידי העברת מערך של 8 282810660 3105 (322 להלן), אשר מתאר את המאפיינים של התקן הבלוקים הכוללים את מספר הראשים, מספר המסילות ומספר הסקטורים בכל מסילה. פקודה זו נשלחת ל-67ש06?1 660106 אשר התכנית שלו נטענת על-ידי השורה >0/105 בקובצ ה-5צ6.5[עא00, ואם ישנם משתנים כלשהם בשורת =10שמכ, הם מועברים אליו. מערכת הקבצים משתמשת בפקודה 066% 16018 בעיקר כדי לקבוע אם השתנה המצע המגנטי בהתקן הבלוקים. ה-67ש671 660106 חייב להצביע אם המצע השתנה ‏ או לא. אולם, לגבי מספר התקני בלוקים, אין ה-0:5ט611 660106 שלהם *כולים לגלות שינוי שבוצע בידי המשתמש, ובמקרה זה עליהם להגיב בתשובה של אי-ודאות לגבי המצע המגנטי הנמצא בהתקן. לגבי התקני בלוקים אלה, ה-ז6ט611 660106 חייב להגדיר נקודת זמן שמעבר לה הוא לא *היה בטוח לגבי המצע בהתקן. בד"כ, 0:58ש6:1 660106 שאינם *כולים לגלות שינוי במצע המגנטי יערכו מעקב אחר פרק הזמן שעובר בין בקשות ק/9 להתקן שמדובר בו. כאשר פרק הזמן ארוך, אפשר להניח שהחליפו את המצע. כמובן 17 שהמצע אינו יכול לחשתנות אם ההתקן הוא דיסק קשיח. מערכת הקבצים משתמשת בפקודה א8106 86%6ז28 21025 2₪116 בכל פעם שה-67ש1ז6 660166 מודיע שהמצע המגנטי השתנה או שיתכן והשתנה. לאחר שהוא קיבל פקודה זו, הוא חייב לזהות את המצע בהתקן ולהחזיר 328 ומתאר של המצע. הפקודות 680א, 166ז, ע]1ז06 16 166ז/) מודיעות ל-:6ש671 660106 להעביר מספר סקטורים, המתחילים בסקטור מסוים. ההעברה נעשית מ-1167נם שצוין על-ידי מערכת הקבצים מצע המגנטי בהתקן ולהיפך. לאחר שה-660106 7 מלא את הבקשה, הוא חייב לציין את מספר הסקטורים שהועברו בפועל במסגרת חבילת הבקשה. אולם, אם הוא גילה שהמצע המגנטי השתנה או שיתכן והשתנה, הוא חייב להחזיר שגיאה של "116618 ת06108[1ם[)" לבקשת הק/5 ולכל בקשות הק/5 שיבואו אחריה, עד אשר מערכת הקבצים תאתחל את ההתקן (3656% 8)).. הפקודה )0:6קק5₪ 116018 36008016 מופקת כתוצאה משימוש של היישום ב-1020%1. בעזרת פקודה זו היישום מברר אם המצע המגנטי הוא (תיק או לא (כלומר, דיסק קשיח מול דיסקט). ה-ז0ש611 660106 מגיב על-ידי הצבת סימן בחבילת הבקשה. הפקודה 102661 0710ת26) נשלחת ל-67ש6?1 860106 כתוצאה מבקשת 100661 שנעשתה על-ידי היישום (הפונקציה 205260100:1, או הפונקציה ת21 6ת1). ה-ז67106 669106 בודק את הקטגוריה של הפונקציה ואת קוד פונקציית המשנה, כדי לקבוע א[שסה פעולה הוא צריך לבצע. ישנן שתי קטגוריות המתייחסות במיוחד להתקני בלוקים: קטגוריה ‏ 8 שהיא בקרת דיסק לוג', וקטגוריה ‏ 9 שהיא בקרת דיסק פיסי. ההבדל בין שתי הקטגוריות הוא, שפקודות ה-102001 הנמצאות בקטגוריה 8 מתייחסות להתקן לוגי (או למחיצה בהתקן פיסי), ואילו פקודות ה-1066 הנמצאות בקטגוריה ‏ 9 מתי*חסות להתקנים פיסיים הניתנים לחציצה. בפיסקאות הבאות תמצא תיאור קצר של פונקציות המשנה שה-:6:16 660106 *כול לקבל. ראוי לדעת שישנן פונקציות משנה נוספות, אשר מיורטות על-ידי מערכת ההפעלה ואינן מועברות ל-660106 ץ6ץןע. פונקציות אלה הן מחוצ לתחום הנושאים שבהם עוסק ספר זה. קטגוריה תיאור 8 בקרה של דיסק לגוג ת63/ת43 קבע/השג פרמטרים של ההתקן. מודיע ל-6"167 060106 לקבוע או להשיג מק להתקן הבלוקים, או למצע המגנטי בתוך ההתקן. ה44/64 כתוב/קרא מסילה. מודיע ל-67ש011 660106 לבצע ק/5 על סקטורים במסילה בעזרת טבלת המסילה המועברת בחבילת הבקשה. תפ6/ת45 פרמט ואמת מסילה/אמת מסילה. מודיע ל-ז6ט611 660106 לכוון ו/או לבדוק את המבנה של המסילה, בהתאם לטבלת המסילה המועברת בחבילת הבקשה. |08 קטגוריה תיאור 9 בקרה של דיסק פיטי 44/64 כתוב/קרא מסילה פיסית. מודיע ל-01ט611 660106 לבצע ק/פ על סקטורים במסילה בעזרת טבלת המסילה המועברת בחבילת הבקשה. מספר המסילה ניתן באופן יחסי להתחלה של כונן פיסי ולא של כונן לוגי. 63 השג פרמטרים של ההתקן הפיסי. מודיע ל-011067 860106 להחזיר מידע על ההתקן הפיסי. 65 אמת מסילה פיסית. מודיע ל-6"106 660106 לבדוק את המסילה בעזרת טבלת המסילה המועברת בחבילת הבקשה. מספר המסילה ניתן באופן יחסי להתחלה של כונן פיסי ולא של כונן לוגי. מערכת הקבצים משתמשת בפקודה 16618 656% כדי לאשר את קבלת קוד השגיאה "6018/[ ת667%81ת1ז" שה-ת6ש06"1 6601606 החזיר על ביצוע בקשה קודמת להתקן הבלוקים. היא מאפשרת לו לדעת שהוא אינו צריך להחזיר קוד שגיאה לגבי המצע המגנטי הנמצא בהתקן הבלוקים. המערכת משתמשת בפקודות ק8][ 6ש1:] 1081681 56% ו-6ט1ז] 1021681 266) סא כדי להודיע ל-ש06"106 069106 להגדיר התקן לוגי מסוים להתקן פיסי. זוג הפקודות הזה משמש בעיקר במערכות שבהן יש רק כונן דיסקטים אחד שתומך באותיות הכונן ‏ ":8" ו-":ע". במקרה זה, שני ההתקנים הלוגיים שייכים להתקן פיסי אחד. פקודות אלו גם מאפשרות ל-67ש6?1 660106 ולמערכת ההפעלה להשתמש בכונן אחד, כך שיתמוך במצעים עם מאפייני פירמוט אחרים. לדוגמה, הפקודה ק18 6ש1זכ 1081081 026%) מבקשת מה-67ש671 660166 לזהות איזה התקן לוגי מחובר כרגע להתקן הפיסי. הפקודה [102108 56% קפא 6טגעכ מודיעה לו לחבר את ההתקן הפיסי להתקן הלוג* שצוין בפקודה. המערכת משתמשת בפקודה 121588 60א1/ 8916ת28161)10 661 כדי לזהות את מספר התקני הבלוקים הניתנים לחציצה (כלומר דיסקים קשיחים) הנמצאים בבעלות ה-זַ6ש611 660106. ספירה זו היא של התקנים פיסיים, ולא של מספר המחיצות הקיימות בדיסקים הקשיחים. המערכת משתמשת בפקודה 168ח[1 [1215%/102108 60א71 +66 כדי לזהות איזה התקנים לוגיים קיימים בהתקן בלוקים מסוים ובמלים אחרות, כמה מחיצות קיימות בדיסק קשיח. ה-ז6ץט61 869106 מחזיר בחבילת הבקשה, מפת סיביות, אשר מייצגת את ההתקנים הלוגיים הנמצאים בבעלותו, והוא חייב לקבוע את הסיבית המתאימה להתקן הלוגי. לדוגמה, 6106 669106 תומך בשני כוננל דיסקטים ודיסק קשיח, אשר מחולק לארבע מחיצות ולכן עליו לקבוע את מפת הסיביות, כך שתצביע על-כך שיחידות 2 עד 5 קיימות בדיסק הקשיח. 1|9 פקודות של התקני תו 67 660106 המטפל בהתקני תו יכול לקבל את הפקודות הבאות: 16 | 6% 8 סטסח1 תפטןע %טסחז 6 8 מש טסט תפטןע %טקלטוס ת6ק0) 106ש6כ 6), 60106 1 2006716) 1-1 בחבילת הבקשה לפקודות אלו, אין שדה המזהה את התקן המטרה שאליה מיועדת חבילת הבקשה. ה-ז6ש0:1 860106 של התקני תו משתמש במנגנון שונה מזה של התקני הבלוקים, לזיהוי ההתקנים שלו, ולכן הוא חייב להגדיר מבנה נתונים מיוחד, הנקרא כותרת ההתקן (ת116806 260106), עבור כל התקן הנמצא בבעלותו. כל כותרת התקן חייבת להכיל נקודת כניסה *יחודית לתוך ה-ז0ט071 660166. ואז, כאשר ה-67ט671 660166 נקרא באמצעות חבילת הבקשה, הוא ייקרא בנקודת הכניסה הקשורה להתקן המטרה. הפקודה 1)181126ח1 מודיעה ל-611001 660166 שהוא צריך לכוון את ההתקןו לצורך פעולות ק/פ עתידיות. פקודה זו נשלחת, כאשר תכנית ז0ט671 60166 נטענת על-ידי השורה >2₪0105 בקובצ ה-5צ10.5ע00%. ואם ישנם משתנים כלשהם בשורת >5/102כ2, הם מועברים גם-כן. פקודות 8680 ו-0/166 מודיעות ל-:61106 660166 להעביר מספר מסו*ם של בתים בין מאגר שהוגדר על-ידי היישום לבין המאגר בהתקן. לאחר שהבקשה בוצעה, נמצא בה את המספר של הבתים שהועברו בפועל. הפקודה 266% (19 0 26806 66501000146תסו1) מודיעה ל-0ש611 660106 להעביר למערכת הקבצים העתק של הבית הראשון הנמצא במאגר של ההתקן מבלי להוציא אותו מתוך המאגר. אם המאגר ריק באותו רגע, ה-ז0ט671 660166 מחזיר קוד המציין זאת. פקודה זו מאפשרת למערכת הקבצים להסתכל תו אחד קדימה במאגר של ההתקן, מבלי שבקשת ₪686 תמתין ב-:61106 660106 לקבלת נתונים מההתקן. הפקודות 55805 )+שקח1 ו-9+8605 % מבקשות את מצב הק/5 בהתקן התו. מצב הקלט מציין אם יש תווים במאגר של ההתקן, או במלים אחרות, אם יש תווים שאפשר לקרוא אותס. מצב הפלט מציין אם ההתקן תפוס כרגע, כלומר אם תווים נכתבים להתקן. הפקודות גפט1 +טסחז ו-חפט1? 6206ש0) מודיעות ל-ז6ט611 660166 לבטל את כל הבקשות הממתינות בהתקן, או להפסיק את הביצוע שלהן. השימוש בפקודות אלו נפוצ בעיקר במקרים בהם יש צורך לבטל את הבקשות הממתינות בתור. הן גם משמשות להוצאת נתונים מכל המאגרים (11628טכ) שב-ז0ט611 660166. 100 קוד ה-421062 660106 הקטגוריה להתקן התו התקן אס*נכרו(* תקשורת אסינכרונית מקלדת מקלדת מדפסת מדפסת עכבר עכבר מחוון הציורי מחוון העכבר תכנית הפיקוח להתקן תו כל אחד תרשים 48. קטגוריות ה-10001 עבור 011068 060106 המטפלים בהתקני תו הפקודות ח6ק) 1260106 ו-21056) 6 מודיעות ל-:0ש6:1 660106 שתהליך כלשהו ביישום מתחבר ומתנתק מההתלן. הדבר מאפשר ל-67ש0?1 660106 לעקוב אחר השימוש של היישום בהתקן, ולארגן את הגישה להתקן בצורה סידרתית למשל, כדי לאפשר רק לתהליך אחד לבצע ק/9 בו-זמנית. דוגמה אחרת *כולה להיות רישום של מספר השימושים בהתקן (על-:די הוספה של 1 לכל ת6ק0 וחיסור של 1 לכל 01056). בהתבסס על נתון זה, כאשר מספר זה מגיע לאפס, הוא *וכל להעביר את ההתקן למצב מסוים, או לרוקן את ה-5ת116טם של ההתקן. הפקודה 4 602600716 נשלחת ל-67ש611 6 כתוצאה מבקשת 100% שנעשתה על-ידי היישום (הפונקציה 10061ש0526, או הפונקציה 21 5ת1). ה-ז6ע011 660166 בודק את הקטגוריה של הפונקציה ואת קוד פונקציית המשנה כדי לקבוע אסחה פעולה הוא צריך לבצע. בתרשים 48 תמצא סיכום של הקטגוריות של פקודות 1 המתי*חטות ל-ע6ש611 660166 המטפלים בהתכני תוו*ם. בתוך כל קטגוריה יש פונקציות משנה המותאמות להתקן מסוים. הקטגוריה של ההתקן האסינכרוני מאפשרת ליישום לטפל במאפייני הקו (כמו למשל, עצירה, זוגיות וסיביות הנתונים), באותות הבקרה של המודם ובבקרת הזרימה (שדר מיד, אסא, עע0א) ועוד. קטגוריית המקלדת מאפשרת ליישום לשלוט בפרמטרים של המקלדת הכוללים טבלת תרגום, מצב היסט, ואופן הקלט. קטגוריית המדפסת כוללת פונקציות משנה שמאפשרות ליישום לקבוע את בקרת המסגרת (שורות ותווים | באינצ') ולשנות | גופנים | (פונטים). | קטגוריית | העכבר כוללת פונקציות משנה המאפשרות ליישום לשלוט במחוון העכבר ולקבל מידע על התקן העכבר עצמו. קטגוריית מחוון הציור קשורה בצורה הזיוקה לקטגוריית העכבר ומשמשת בעיקר לקבלת מידע על מחוון העכבר ביחס למסך. קטגוריית תכנית הפיקוח להתקנ? תו משמשת למשלוח פקודות *חודיות ל-:0ש611 060166 התומך בתכנית פיקוח להתקנים שלו. הפקודה 1 מבקשת מה-ת6ש0:1 660106 להפסיק את התמיכה שלו בהתלן. ה-01161 660106 יכול למלא אחר הבקשה ויכול לסרב לה. אם הוא ממלא אחר הבקשה, הוא חייב לשחרר את כל המשאבים שהוקצו להתקן, כמו זיכרון פיסי ופסקי חומרה. ביצוע הפקודה מתרחש רק בזמן תיחול המערכת ומשמעותה היא ש-017101 660106 חדש שמוטען כעת מבקש להחליף את זה שהוטען קודם. במלים אחרות, ה-ז6ש611 660106 רוצה לתמוך בשם ההתקן שנוצר כבר על-:די ה-ז071!00 660106 הקודם. ה-:6ט611 6860106 הישן מתבקש לבצע ‏ 81)פת61 11 לתמיכה שלו בהתקן שמדובר בו. אם הוא מבצע זאת, אז ה-67ט011 060106 החדש צריך לבצע 1)!41126ח1. שאם לא כן, הוא *בוטל, כי ה-660166 6 הישן לא יוותר על הבעלות על ההתקן. שרות' מערכת ל-פהקעזחם פ6חוות רבות מהפעילויות שה-6ט6:1 660106 מבצע אינן מכוונות לצורך בקרה על ההתקן בלבד. כפי שתזכור, ה-8:ז6ש6:1 660106 משתפים פעולה עם מערכת ההפעלה בטיפול בק/פ של היישום המגיע משתי סביבות ביצוע שונות, במצב אמיתי או במצב מוגן. בנוסף לכך, 0116"5 660166 משתתפים בתמיכה בביצוע רב-משִימתי שמערכת ההפעלה מספקת. מערכת ההפעלה עוזרת ל-67ש6011 660106 לשתף עימה פעולה, על-ידי כך שהיא מספקת לו מספר שירותי מערכת. מערכת ההפעלה מספקת מספר שירותים לפונקציות הנדרשות בד"כ על-:ידי 660166 8 ועל-ידי כך היא מסירה את הצורך לשכפל אותן לכל אחד מהם בנפרד. שירותי מערכת אלה *דועים כשגרות-עזר, או כשירותי כ111ט60כ. ה-0?1067 660106 מקבל מחוון למישק כ[2607 בחבילת הבקשה של הפקודה 6 הוא חייב לשמור את המחוון הזה כדי שיוכל להשתמש בשירותים של המישק. המחוון למישק כ[26011 הינו מחוון מיוחד שנמצא בתוקף גם כאשר ה-[621 משנה מצב, ממצב אמיתי למצב מוגן ולהיפך. זאת אומרת שה-660166 ץ6 יכול תמיד לקרוא למישק ק60111 מבלי להתחשב במצב המעבד. כדי להפעיל שירות ק260111 מסוים, יש לבצע 3 פעולות: - להציב משתני ביצוע לתוך האוגרים שצוינו על-ידי שירות כ111ש6ס, - להטעין את קוד הביצוע של השירות לתוך האוגר זפ, - לבצע קריאה רחוקה בעזרת המחוון למישק כ111ט6כ. ניתן תמיד לקרוא למישק 6011כ, אך הזמינות של השירותים שלו תלויה בנסיבות, או בהקשר שבו הופעל ה-67ש6:1 660166. אנו נדון בהקשרים השונים של פעילויות אלו בפרק זה בסעיף "מרכיבי ה-67ט671 106ַש66 וההקשרים שלהם". ניתן לסווג את שירותי ה-ק111ש26 בקבוצות הבאות: ניהול תהליכים. ניהול אתתים. ניהול תור הבקשות. ניהול תור התווים. ניהול זיכרון. ניהול פסקים. שירותי שעון-עצר. ניהול תכניות פיקוח להתקני תו. ניהול של 3105 660ת4008. כדי לפשט את הדיונים הבאים, תיארנו את שירותי ק260111 בשמות מנמוניים ולא בקוד הביצוע שלהם. 12 ניהול תהליכים שירותי 5ק1260111 לניהול תהליכים עוזרים ל-ז6ש61 060106 לבצע את הדברים הבאים: - להשיג מידע הקשור לתהליך. - לטפל בהפסקות ביצוע של ה-0:6806?. - | לדווח למערכת ההפעלה על אירועים מסוימים של התהליך. - להכנס לסגמנטים המכילים מידע כללי של המערכת. שירותי כ260111ע בקבוצה זו הם: 6% ו-חטת 4 ו-0/1616 6מסש 5 10567105600100 5 % ו-חות מאפשרים ל-6ש671 660106 לעצור ולהתחיל בהתאמה את הביצוע של 176806). יש לחסום (81006) את הביצוע של 6806עת+ כאשר הוא חייב לחכות שיתרחש אירוע בהתקן לפני שהוא יוכל להשלים את המשימה שצועה בחבילת הבקשה (שהופקה לפי בקשת היישום). במלים אחרות, הוא משחרר את ה-[621 בזמן שהוא ממתין לפרק זמן שיחלוף, או לפסק בהתקן. כתוצאה מסיום פרק הזמן, או כתוצאה מפסק בהתקן, ה-ז6ש6:1 106ש66 יוכל להריצ (חטא) שוב את ה-07680+. זאת אומרת, שהוא מאפשר ל-686ז(+ לקבל חזרה את ה-[02% כדי שהוא יוכל להמשיך להתבצע. 86 ו-1616/צ10 מאפשרות ל-:6ש1ז6 660106 להפסיק בתנאים מסוימים את הביצוע של ה-17680+ שלו באופן זמני. 1016צ גורם ל-2:686+ אחד לוותר על ה-[621 ל-686?ת+ אחר עם עדיפות ביצוע שווה כשלו או גבוהה ממנה. 61616 גורם ל-17680+ של ה-ז67106 660106 לוותר על ה-[02% רק ל-680זת+ אחר עם סיווג קריטי מבחינת הביצוע. אם חולף זמן רב (מעל שלוש אלפיות השניה) עד אשר ה-67ש611 660166 :*כול לחסום 686ץ"ת+ אחר, או לחזור למערכת ההפעלה, הוא חייב לבצע את 1616צ ו-1)1616' במחזוריות. ה-ז6ש011 660106 יכול להשתמש בפקודה 6ת00 בזמן קבלת פסק, כדי לסמן שהפעולה שנדרשה על-ידי חבילת הבקשה הסתיימה. הוא חייב לעשות זאת רק אם לא נחסם הביצוע של ה-17686+ בזמן שטיפל בחבילת הבקשה. ה--6ש0:1 660106 משתמש ב-+ת5606506 כדי להודיע למערכת ההפעלה על אירועים מסוימים המשפיעים על המערכת כמו לחיצה על המקשים 701+3768%+ת20), או על צירוף אחר של מקשים המשמש למיתוג בין ה-5ת565510. כרגע, +ת6טע6ת56 מותאם להתקני-קלט אשר בשליטת המשתמש, כמו המקלדת או העכבר. 1056560000 עוזר ל-ז6?16 860106 לתמוך בק/פ להתקן שלו בסביבת 5. ה-67ץש61 660106 משתמש בו כדי לסמן קטע ביצוע קריטי של 2105 ]אסא ועל-ידי כך למנוע מהמפעיל לעבור מסביבת ה-205. זה חשוב, מאחר והביצוע בסביבת 05 מושעה בכל פעם שהמפעיל *וצא מיישום ה-205. אם יישום 05 שולח בקשת ק/5פ ל-3105, ה-2105 בתגובה משנה את מצב ההתקן, ויש צורך לאפשר לו לסיים את הפעולה שלו, כדי שההתקן *וכל להיות במצב :דוע לגבי ה-ז6ש6"1 | 060106. אפשר להגיד שה-67176 6860166 משתמש בפקודה ב-13102507105606+108 לסימון כניסה ויציאה מה-3105. הוא גם מודיע בעזרתו למערכת ההפעלה, שהמפעיל יכול לעבור מיישום ה-005כ. 138 626005081 מאפשר ל-ז011/6 660106 להכנס לסגמנט מידע של המערכת ולסגמנט מידע הקשור לתהליך. סגמנט המידע הגלובלי מכיל פרטים שונים, כמו תאריך וזמן וקוד הכונן שממנו הוטענה מערכת ההפעלה. סגמנט המידע המקומי מכיל פרטים כמו מספר הזיהו* של התהליך, עדיפות הביצוע הנוכחית, ומספר ה-ם565510. ניהול אתתים שירותי 5ק111ש126 אלה מאפשרים ל-67ש011 660106 להשתמש הן באתתי ה-34%1 והן באתתי המערכת כדי לקשר בין רכיבים שלו לבין עצמם וגם בינו לבין יישומים. ה-5ק1260111 שמאפשרים ניהול אתתים הם: 016ת5610118, +50860065, 568. אתת מזוהה על-ידי מקש, או על-ידי מקשר לאתת. המקשר לאתת ה-811ת הוא הכתובת שלו (ערך בורר:כתובת יחסית, או סגמנט:כתובת *חסית). את המקשר לאתת המערכת יש לקבל בעזרת 616ת5611118, המעביר מקשר לאתת ברמת היישום. ברגע של-01167 660106 יש מקשר, הוא י*כול להשתמש ב-)56160₪650 וב-00:1081ת56 כדי לטפל הן באתתי ה--8%א והן באתתי המערכת. בעזרת + נלתן לדרוש את האתת ו-56800168% משמש לשחרור האתת. בד"כ ה-0171061 660106 משתמש באתתי 4/1 כדי לתאם פעילויות בתוך עצמו, ובאתתי מערכת - כדי להעביר אירועים ליישומים. ניהול תור הבקשות שירותי 5ק[6011 אלה מאפשרים ל-ת67ט0?1 660106 לתחזק רשימה מקושרת של חבילות בקשה (80%46%5 60165%). השירותים לניהול תור הבקשות הם: 4סת 6 ב 06 6 |ו(-660עע 67 660106, שיכול לטפל בבקשות ק/59 רבות להתקן שלו, עורך מעקב אחר הבקשות לביצוע בעזרת תור עבודה (0₪616 אעסש). 5ק111ש26 מאפשרים ניהול פשטני של רשימה מקושרת בעזרת שדה הקישור, אשר נמצא בחבילת הבקשה ומאפשר את שרשור הבקשות. בדרך זו, "0116 660106 *כול לתחזק בקלות תור עבודה אחד או *ותר לכל התקן. 468 (נקרא גם 6%א8602804ח5ט2) מכניס חבילת בקשה לסוף התור המבוקש. 6 (נקרא גם 11860280%6%) מוציא חבילת בקשה מתחילת התור המבוקש. 4 ((או 861080%6%ז50) מכניס חבילת בקשה לתור המבוקש בסדר המוכתב על-ידי שדה הסקטור הראשון. הדבר נותן ב'ידי ה-68ש6:1 660106 אמצעים פשוטים המאפשרים את ארגון הבקשות. 2601/10ק18600065 (או 0100188ז8ק1]!שק) מוציאה את חבילת הבקשה המבוקשת מהתור, בלי להתייחס למקומה בתור. 41106 ו-7766 מאפשרים ל-071061 660106 לקבל ולשחרר חבילת בקשה ריקה שאפשר למלא אותה. הוא יכול להשתמש בה לצורך מעקב אחר בקשות 5/2 שהונפקו ל-31025 על-:ידי יישום ב-2)005, או לעקוב אחר שלבים של ק/5פ בהתקן רב-שלבי. 144 ניהול תור התווים שירותי 12601115 המאפשרים את ניהול תור התוו*ם מאפשרים ל-166ַש66 67 לתחזק מאגר פשוט של תווים. השירותים לניהול תור התווים: * +תך א 686 * 6ען,/ט * תפטנוע שירותים אלה מאפשרים ל-01167 660106 לערוך מעקב אחר תווים, בהתבסס על ההנחה שהמידע על תו הוא בגודל של בית אחד. 16ת1 קובע את המאגר. פעולה זו חייבת להתבצע לפני שמפעילים 5ק260111 אחרים מקבוצה זו. 6806א ו-1-6ע/ט מוציאים ‏ תו מה-1167טם או מוסיפים אליו בהתאמה. תפש1ע מאתחל את ה-ז16+טס למצבו הראשוני, כלומר מרוקן אותו. ניהול זיכרון שירותי 5קן6011 לניהול הזיכרון מאפשרים ל-67ט611 660106 לנהל מיעון בזמן קבלת פסק, או בזמן ביצוע משימה. השירותים לניהול הזיכרון הם: 05 ו-פעת66קק + דעה 8% ו-א100תנז ב הכ טע ל עקת פע 5 5616007 1100607 056160007 דפעת % ו-700108681 05 ו-95ת7667/ מאפשרים ל-67ט071 060106 להקצות ולשחרר גוש נעול (שלא ניתן להעברה ולהזזה) של ז'כרון פיסי. חייב להיות מספיק זיכרון פיסי כדי להכיל את גוש הזיכרון הזה. ה-67ש0:1 860106 *כול לבקש גוש זיכרון הגדול מ-64%8 והוא *כול גם לסמן, שגוש הזיכרון *מוקם מעל 18א1, או מתחת ל-640%8. המיקום של גוש הזזיכרון יכול להיות קריטי לגבי הביצוע, במיוחד אם צריך לפנות אליו בזמן קבלת פסק. מכיון שזיכרון זה הוא ז'יכרון פיסי לחלוטין, ה-ז6ש611 6601606 מקבל כתובת פיסית בת 32 סיביות ולא ערך בורר:כתובת פיסית או סגמנט:כתובת פיסית. גוש זה לא ניתן להעברה ולהזזה. כדי להכנס לזיכרון זה, חייבים להפוך את הכתובת הפיסית לכתובת בפועל בעזרת ‏ 10/1%ַפעתת2, אשר *וצר כתובת לוגית (ערך בורר:כתובת פיסית או סגמנט:כתובת פיסית) המבוססת על המצב הנוכחי של היע"מ. אם הכתובת נמצאת מעל 1858 והיע"מ נמצאת במצב אמיתי, אז ה-+ז51001עתע משנה את הסביבה כדי לאפשר ל-ז6ט611 660166 להכנס לזיכרון בעזרת כתובת לוגית. ה-071761 660106 משתמש ב-א106% ו-א106ת(1 כדי לשנות סגמנט של תהליך, אשר מותר להזזה ולהעברה, למצב קבוע (א11 - לא ניתן להעברה ולהזזה) וחזרה, למצב חופשי. כדי להעביר נתונים, ה-ז01106 660106 ציייך לקבוע את הסגמנט של התהליך שהוא מתכוון לגשת אליו באמצעות 8כ, או בזמן קבלת פסק. 15 ה-ז8ע671 660106 משתמש ב-98ע176102[1 לאחר הנעילה של הסגמנט כדי להפוך את הכתובת הלוגית למספר פיסי בן 32 סיביות. בזמן קבלת הפסק, ה-660108 זע הופך את המספר הפיסי לכתובת לוגית זמנית בעזרת 1001:6פעחק. לאחר שהוא סיים את העבודה עם הכתובת הלוגית הזמנית, הוא משתמש ב-+510/17עת2הז. כדי לקבל אפשרות מיעון לזיכרון המסופק על-ידי מתאם (אשר נמצא בד"כ במרחב הכתובות השמור ל-3105 - 640%8 עד 188 - או מחו+ למרחב הכתובות השמור בד"כ למערכת), ה-071/67 660106 יכול להשתמש ב-+5101/17עת2 כדי ליצור מתאר 1027 לזיכרון זה. ה-ז0ש0611 660106 משתמש ב-0611/98406585 כדי לבדוק אם ליישום יש הרשאה להכנס לסגמנט. "110602075616600 מופעל כאשר מתבצע תיחול של ה-660106 67 כדי שיוכל להקצות קבוצה של ערכי בורר לטבלאות ה-227) לשימושו הפרטי. השימוש ב-51002127756166+07ע2 נחוצ כדי לכוון את אחד מערכי הבורר שלו למיקום פיסי בזיכרון, אשר מזוהה ככתובת בת 32 סיביות + אורך. מתאר ה-7'כע2) מתמלא במידע מתאים ונשאר בתוקף עד אשר מתבצעת קריאה נוספת ל-100201156166+01פעת לאותו ערך בורר. כדי להשתמש בערכי בורר אלה בזמן קבלת פסק, ה-ת6ש611 8460106 חייב לבדוק את המצב שבו נמצא המעבד. אם המעבד נמצא במצב אמיתי, ה-ז07106 660106 משתמש בשירות 8681102706 כדי לשנות את המצב הזה למצב מוגן. לאחר שהמעבד עבר למצב מוגן, אפשר להשתמש בערכי הבורר האלה כדי להביא ולעבד נתונים. אם ה-67ש6?1 660106 צריך לשנות מצב במעבד בזמן קבלת פסק, הוא חייב להעביר אותו למצב אמיתי בעזרת השירות 00108681ז2. ערכי הבורר שנוצרו על-ידי שירותי ה-5ק1ת260ע הנ"ל אינם מייצגים סגמנטים רגילים ברמת-היישום. אלה ניתנים להעברה ולהזזה במהלך הפעולה הרגיל של המערכת. סגמנטים או ערכי בורר, שנוצרו על-ידי ה-67ש611 660106 מנוהלים בצורה שונה מסגמנטים ברמת היישום. בגלל מאפיינים אלה, הם משמשים את ה-ז6ש611 660106 בלבד, ואעם ניתנים להעברה. במלים אחרות, ה-660106 זע משתמש בערכי בורר/סגמנטים אלה לאחסון נתונים. ניהול פסקים שירותי 5ק60111 לניהול פסקים מאפשרים ל-1767ז6 660106 לנהל את פסקי ההתקן: * 560180 ו-560180םנס 50%50060600 * וי [סם ו-560180ח(1 מאפשרים ל-6716 660106 לרשום לעבודה או לבטל את הרישום של שיגרה לטיפול בפסק של ההתקן. *5605%//66+0 מאפשר להבפעיל שיגרה לטיפול בפסקים של התוכנה בסביבת 205. ₪01 שולח את האות "%+10ו%611ת1-+02)-תע" (סוף פסק) לבקרי הפסקים המטפלים בפסק המתאים. שירותי שעון-עצר שירותי 60105 לשעון העצר מאפשרים ל-67ט671 660106 לבצע עיבודים הקשורים בזמן: ז 6ה56)]1 * ח6ת 6560 * +תט60א16ך 16 ה-ז07106 660166 משתמש ב-56)118061 כדי לסמן נקודת התחלה לשיגרת הטיפול בשעון העצר, שתופעל לאחר כל תקתוק בשעון. ז3656+11800 מפסיק את פעולתה של שיגרת הטיפול בשעון העצר. 54ט060א116%' משמש לקביעת מספר התקתוקים שיש להמתין לפני שהשיגרה לטיפול בשעון העצר תקרא שוב. ניהול תכניות פיקוח להתקני תו שירותי 5ק1260111 מאפשרים ל-67ש671 660166 להשתתף עם תכניות פיקוח ברמת היישום בעיבוד של זרם הנתונים להתקן. השירותים הם: )206806 * 6215008א ו-:68601800 166ט תפט[קע 6 מאתחל רשימת פיקוח להתקן, לפני הרישום של תכנית פיקוח ברמת היישום. :8621806 ו-ז12686₪19+6 מוסיפים ומוציאים תכניות פיקוח מרשימת הפיקוח להתקן. 0156 שולח את נתוני התקן לתכניות הפיקוח הנמצאות ברשימה הנ"ל. 108 שולח אות-סימון לתכניות הפיקוחה כדי להודיע להן למחוק את כל הנתונים ולאתחל את המידע על מצב העבודה הפנימי שלהן. ניהול של 8105 600ה24608 שירותי 5ק]60]1 לניהול ה-21025 006ם008 מאפשרים ל-60ט671 660106 להשתמש בשירותים שלו כאשר הם מסופקים על-ידי החומרה. במקרה זה מדובר ב-25/2 דגמים 50, 60, 70 ו-80. השירותים בקבוצה זו הם: ו עז)תתכ601) ו-עז0ת66110קק י 401050681 שז)חם תסתת 1310560 ה-ז01108 667106 משתמש ב-1+ח66+1.12 ו-ע01ת:661.12תע כדי לקבל ולשחרר מספר זיהוי לוגי להתקן הנתמך על-ידי ה-2105 0660ת8098. יש צורך להשיג מספר ז'הוי לוגי לפני שנעשית קריאה לפונקציה של ה-3105 666ת8608. 1 ו-00 3100500000 קובעות את המסגרת הדרושה למחטנית וקוראות לפונקציה של 31025 008660. מרכיבי ה-תשזח מסןעס ה-ז01106 660106 ב-05/2) מורכב ממרכיב אחד או *ותר המשתפים פעולה בניהול הק/פ להתקן. שני המרכיבים העיקריים הם: שיגרת האסטרטגיה (6ם1)טס /5018508), שתמיד נמצאת ב-6:167 660106, ושיגרת הטיפול בפסקי חומרה (:616ת118 006ת%67ת1 816ש11820), אשר נדרשת אם ההתקן *כול לספק פסק חומרה. שני מרכיבים אפשריים נוספים הם: שיגרת הטיפול בשעון העצר (:616ם118 -6מ711) ושיגרת הטיפול בפסקי תוכנה (%ק0תת66ת1 50160876 67]). תרשים 49 מראה את היחסים בין ה-ז6ט611 660166 לשאר חלקי מערכת ההפעלה. 17 2( ע6סט10ע0 600106 שיגרת האסטרטגיה שיגרת בשעון פסק שיגרת תוכנה בפסק: תרשים 49. מרכיבי 6/1006 660106 ב-005/2 שיגרת האסטרטגיה שיגרת האסטרטגיה היא המרכיב העיקרי של ה-67ש6"1 660106. היא מטפלת בבקשות הק/5 המופקות על-ידי היישום, ולמעשה - בכל חבילות הבקשה שמערכת ההפעלה שולחת ל-6ש6?1 860106. מערכת ההפעלה קובעת את נקודת הכניסה לשיגרת האסטרטגיה בשדה המוגדר בכותרת ההתקן, ובכך היא *כולה לקרוא ל-ז01100 660106 עם חבילת הבקשה של הפקודה עא1. פקודה זו מודיעה ל-61ש611 860106 לתחל את עצמו (כאשר הוא מותקן) בעת התיחול הכללי של המערכת. מערכת ההפעלה קוראת לשיגרת האסטרטגיה מטעם היישום, ובכך היא מאפשרת לה לקבל 9/0 מיישום 205 הרא בסביבת 205 ומיישומי 05/2 רבים הרצים בסביבת 2) זאת אומרת ששיגרת האסטרטגיה *כולה לרוצ+ הן במצב אמיתי והן במצב מוגן (ולכן היא דו-מצבית). האופי הדו-מצבי של ה-67ש61 660106 משפיע על האופן שבה פועלת שיגרת האסטרטגיה. עיין בבקשה בסעיף הדן בשיקולים של תפעול דו-מצבי. בעת עיבוד חבילת הבקשה, שיגרת האסטרטגיה מתבצעת בזמן-משימה. כלומר, השיגרה מתבצעת תחת ה-686זת+ של התהליך שביצע את בקשת הק/5 ובתוך המחסנית שלו. מכיון שגרעין מערכת ההפעלה קורא לשיגרת האסטרטג*ה, אפשר להגיד שהיא מתבצעת ב"מצב גרעין" (66סת 61ם:6א). המאפיין החשוב ביותר של ריצה במצב גרעין הוא, שמנתב המשימות (ת160ש5 א889%+) אינו *כול להפסיק את הביצוע של ה-686זת+ של שיגרת האסטרטגיה. במלים אחרות, ה-07686+ של שיגרת האסטרטגיה לא *פסיק להתבצע עד אשר הוא *יחסם מרצונו, יוותר ל-1:680+ אחר, או סה לגשת לסגמנט שאינו נמצא בזיכרון. מצב השגיאה "לא נוכח" במעבד יאל את מערכת ההפעלה להחזיר את הסגמנט לזיכרון| המערכת, ובאותו זמן להריצ 1:686+ אחר. הדבר נותן בידי = ה-ז0ש671 669106 את החופש להחליט מתי הוא *וותר על היע"מ. הויתור על היע"מ חשוב, מאחר והוא *כול לשנות את המצב של ההתקן. כל שעוי מצב חייב להיות לזמן קצר ביותר, או להתבצע עד הסוף כדי להבטיח שההתקן ישאר במצב ידוע. פסק בחומרה *כול להפריע לביצוע של שיגרת האסטרטגיה. לכן, אם לשיגרת האסטרטגיה ולשיגרת הטיפול בפסקי חומרה (או בפסקי שעון העצר) יש גישה משותפת אל מבני נתונים, היא חייבת לתאם את הפעולות שלה עם המרכיבים המופעלים בזמן קבלת פסק. שיגרת האסטרטגיה נכתבת כמודל של ,041 38ע (קריאה רחוקה), אא[זמת הבע (החזרה רחוקה). מערכת ההפעלה תבצע קריאה רחוקה לשיגרת האסטרטגיה, אשר חייבת לבצע החזרה רחוקה בגמר העבודה. לשיגרה זו יש גישה אוטומטית לסגמנט הנתונים (באוגר ה-25) של ה-6ט6?1 660106 ולמחסנית (באוגר ה-55), בלי קשר למצב הנוכחי של היע"מ. היא אינה צריכה לשמור ולשחזר את התוכן של האוגרים, כי מערכת ההפעלה עושה זאת עבורה. הדוגמה הבאה מתארת את הפעילויות של שיגרת האסטרטגיה. 1. מערכת ההפעלה קוראת לשיגרת האסטרטגיה עם מחוון (א85:88) לחבילת בקשה. השיגרה מתבצעת כ-1?686+ במסגרת התהליך שהפיק את קריאת המערכת, והיא משתמשת במחסנית שסופקה על-ידי התהליך הקורא. לשיגרת האסטרטגיה יש אפשרות מיעון לסגמנט הנתונים של ה-7ַ6ט071 660166 (באוגר 205). בכל פעם שהיא נמצאת במצב מוגן, היא מתבצעת ברמת הרשאה 0, הזהה לזו של גרעין מערכת ההפעלה. רמה זו מקבלת בצורה אוטומטית הרשאת 5/2 (ק10). 2. שיגרת האסטרטגיה מוודאת שחבילת הבקשה בתוקף. 3 ** אם ניתן לטפל בפונקציה המבוקשת מיד (כמו בדיקת מצב), שיגרת האסטרטגיה תבצע את הפעולה. * אם הפונקציה המבוקשת חייבת להשלח להתקן, השיגרה תוסיף את חבילת הבקשה לתור הממתינים כאשר ההתקן תפוס, או תשלת את חבילת הבקשה להתקן אם הוא פנול. 4. אם הפונקציה הרצויה הושלמה, שיגרת האסטרטגיה מציבה הודעה בחבילת הבקשה ושולחת אותה לגרעין מערכת ההפעלה. 5. אם הפונקציה הרצו*ה עדיין ממתינה, שיגרת האסטרטג*ה תמתין על-ידי חסימת הביצוע של ה-6806זת%. 6. לאחר שחסמה את ה-686זַת+, שיגרת האסטרטגיה *כולה לשחרר את היע"מ. מערכת ההפעלה תנתב אל המעבד 680זת+ אחר, שיוכל לבצע קריאת מערכת. השיגרה תוכל להקרא שוב בנקודת הכניסה שלה. שיגרת הטיפול בפסקי-חומרה שיגרת הטיפול בפסקי-חומרה היא רכיב חשוב ביותר של ה-67ש611 060106, מכיון שהינה הרכיב היחיד במערכת שרשאי לטפל בפסקי החומרה. לכן, שיגרת הטיפול בפסקי-חומרה נדרשת רק בהתקנים המפיקים פסקים. ה-ז:ַ6ט671 660166 חייב לרשום את נקודת הכניסה לשיגרה זו בעזרת שירות ה-ק60111 56%180. מכאן ואילך, מערכת ההפעלה תקרא לשיגרת הטיפול בפסקי-חומרה בכל פעם שיתרחש פסק בחומרה. התקן פועל בצורה אסינכרונית לשאר חלקי המערכת, ולכן הוא :כול להפיק פסק בלי קשר ליישום שמתבצע, ובלי קשר למצב שבו נמצא ה-[621. לדוגמה, 139 בכל פעם שיישום 2025 נמצא בחזית, ניתן לבצע ק/5 מיישום 005/2) אחר, אשר רצ ברקע. לגבי תהליך הנמצא במצב מוגן, ההתקן מסמן את סיום הק/5 על-ידי כך שהוא גורם לפסק במצב אמיתי. במלים אחרות, ביצוע 5/7 מיישום 205 הרא בחזית, *ושלם במשך תקופת הביצוע של *ישום 025/2) שברקע. לגבי תהליך הנמצא במצב אמיתי, ההתקן מסמן את סיום הק/5פ על-ידי כך שהוא גורם לפסק במצב מוגן. מאחר ופסקי החומרה *כולים להתרחש הן במצב מוגן והן במצב אמיתי, שיגרה זו חייבת להתבצע בהתאם, ולכן היא דו-מצבית. שיגרת הטיפול בפסקי-חומרה *כולה להתבצע בזמן קבלת פסק בלבד. זאת אומרת, ששיגרה זו מתבצעת תחת 080ת1)-זמן-פסק, אשר שונה מ-686זת+- זמן-משימה בכך שהוא אינו שייך לתהליך של יישום כלשהו. השיגרה מתבצעת במחטנית זמן-פסק מיוחדת, שסופקה על-ידי מערכת ההפעלה. המונח "מצב פסק" מתאר את המשמעות של הביצוע. המאפיין העיקרי של ריצה במצב פסק הוא שלביצוע בזמן פסק יש עדיפות גבוהה *ותר מאשר לביצוע בזמן משימה ולכן, מנתב המשימות (ת166ש5 א%85%) אעו *כול להפסיק ביצוע בזמן-פסק. זאת אומרת, שלצורך השגת רמת ביצועים גבוהה *ותר, חשוב ביותר לצמצם למינימום את הזמן המבוזבז על-ידי שיגרת הטיפול בפסקי-חומרה. ההשפעה של פעולות בזמן-פסק על פעולות בזמן-משימה היא מצטברת. בזמן שפסקי-חומרה עם עדיפות ביצוע גבוהה מתפרצים לביצוע של 6ַה6תת?-זמן-פסק, הוא אינו *יכול לשרת פסקי חומרה עם עדיפות ביצוע נמוכה *ותר הנכנסים למערכת. לכן חשוב, שהזמן הכולל המבוזבז על-ידי שיגרת הטיפול בפסקי-חומרה על פעילות בזמו-פסק, יהיה נמוך ככל האפשר. בדומה לשיגרת האיסטרטגיה, שיגרת הטיפול בפסקי-חומרה מחליטה מתי לוותר על היע"מ, כלומר מתי להפיק את הסימן "סוף פסק" (6קשתז660ת021-1)-6םת2) ולהעביר אותו לבקר הפסקים, ומתי לצאת מהשיגרה. הדבר מאפשר לשיגרת הטיפול בפסקי-חומרה לשמור על כך, שלא יהיו שינויים בלתי צפויים בהתקן. שיגרת הטיפול בפסקי-חומרה מקודדת כמודל ,6811 248 (קריאה רחוקה), אגע אתנזינטת (החזרה רחוקה). מערכת ההפעלה תבצע קריאהי רחוקה לשיגרת הטיפול בפסקי-חומרה, אשר חייבת לבצע החזרה רחוקה בגמר העבודה. לשיגרה יש גישה אוטומטית לסגמנט הנתונים (באוגר ה-25) של ה-6716 660106 ולמחסנית (באוגר ה-55), בלי קשר למצב הנוכחי של היע"מ. שיגרה זו אינה צריכה לשמור ולשחזר את התוכן של האוגרים, כי מערכת ההפעלה דואגת לתוכן של האוגרים השייכים ל-6806זת+-זמן-פסק. הדוגמה הבאה מתארת את הפעללויות של שיגרת הטיפול בפסקי-חומרה. 1. מערכת ההפעלה קוראת לשיגרת הטיפול בפסקי-חומרה כאשר מתרחש פסק בהתקן. השיגרה מתבצעת כ-686ע"ת+ מיוחד שאעו שייך לתהליך יישומי כלשהו, ומשתמשת במחסניתי שסופקה על-ידי מערכת ההפעלה. לשיגרת הטיפול בפסקי-חומרה יש אפשרות מיעון לסגמנט הנתונים של ה-ז6ש671 660106 (באוגר 25). בכל פעם שהשיגרה נמצאת במצב מוגן, היא מתבצעת ברמת הרשאה 0, הזהה לזו של גרעין מערכת ההפעלה. רמה זו מקבלת בצורה אוטומטית הרשאת 5/2 (פס1). 2. שיגרת הטיפול בפסקי-חומרה מוודאת שההתקן גרם לפסק תקף. שתי סיבות *כולות לגרום להתקן להפיק פסק: הראשונה - בקשה שנשלחה אליו והשניה - כתוצאה מאירוע שאינו קשור לבקשה. בכל מקרה, שיגרת הטיפול בפסקי חומרה חייבת לאתחל את מצב הפסק בהתקן. 1000 3 אם הפסק הוא תוצאה של פקודה קודמת שנשלחה להתקן, שיגרת הטיפול בפסקי-חומרה מוודאת שהפונקציה המבוקשת תושלם. = אם הפונקציה המבוקשת הושלמה, שיגרת הטיפול בפסקי-חומרה תציב את מצב הבקשה בחבילת הבקשה ותריצ את ה-686ת+ הממתין לשיגרת האסטרטגיה. * אם הפונקציה המבוקשת עדיין ממתינה (לדוגמה, באמצע ביצוע של פעולה רב-שלבית), שיגרת הטיפול בפסקי-חומרה מתחילה את השלב הבא של הפעולה. כאשר הסתיים השלב האחרון השיגרה *כולה לעורר את ה-6806ת+ של שיגרת האסטרטגיה. 4 לאחר שבוצעה הפונקציה הרשומה בחבילת הבקשה, יכולה שיגרת הטיפול בפסקי החומרה לשלוח את הבקשה הבאה להתקן. לאחר מכן היא יכולה לגשת לתור הבקשות הממתינות, ולטפל בבקשה הבאה הממתינה לביצוע. 5. לאחר ששיגרת הטיפול בפסקי-חומרה סיימה את פעולותיה לגבי התרחשות זו של פסק בחומרה, היא חוזרת אל גרעין מערכת ההפעלה שקרא לה. השיגרה תוכל להקרא שוב בנקודת הכניסה שלה בכל זמן לאחר שהודיעה לבקר הפסקים על מצב של "סוף פסק" (201). מצב סוף פסק מודיע לבקר הפסקים שניתן כעת לשרת כל פסק הממתין אצלו כדי להשלח ליע"מ. מכאן אפשר להבין, שפסק נוסף יכול להמתין בבקר הפסקים בציפיה לשירות של שיגרת: הטיפול בפסקי החומרה. זאת אומרת, שבפרק הזמן בין הודעת ה-801 לבין החזרה למערכת ההפעלה, ניתן לקרוא לשיגרה בנקודת הכניסה שלה. פעולה זו ידועה בשם קינון-פסקיס (₪ם6501ת %קנתז6+ת1). שיגרת הטיפול בשעון העצר שיגרת הטיפול בשעון העצר הינה מרכיב אופציונלי של ה-זסט6:1 106ש16. היא משמשת בעיקר לניהול פעולות התלויות בתזמון, ואפשר לדמות אותה לשעון העצר ת10 %ם1 3105 בסביבת ה-2025. אולם, שיגרה זו מופעלת בזמן אמיתי על-ידי שעון 66005 ולא על-ידי שעון המערכת. מכיון ששיגרת הטיפול בשעון העצר מופעלת על-ידי פסק בחומרה, ה-זַ6ש611 660166 יכול להשתמש בה כדי לדעת מת* לחקור התקנים שאינם מבוקרי-פסקים. ה-67ט6:1 660166 היב לרשום את נקודת הכניטה לשיגרה זו בעזרת שירות 6תט116%00' כ111ש6ע, שבו צריך לציין את מספר ה"תקתוקים" שיעברו בשעון לפני ששיגרה זו תופעל. אפשר לרשום את נקודת הכניסה גם בעזרת שירות כן120011 אחר, זסם56%1'1, שבו מרווח הזמן שווה לתקתוק אחד. לאחר שנרשמת נקודת הכניסה, מערכת ההפעלה *כולה לקרוא לשיגרה זו בכל פעם שחולף פרק הזמן הדרוש. שעון ה-6/05 עובד בצורה אסינכרונית לשאר המערכת, ולכן הוא יפיק פסקי חומרה (במקרה הזה, תקתוסי שעון) בלי קשר למצב היע"מ. פסקים בהתהן *כולים להתרחש הן במצב אמיתי והן במצב מוגן, ולכן שיגרת הטיפול בשעון העצר עובדת בשני המצבים, כלומר היא דו-מצבית. האופי הדו-מצבי של ה-071767 660106 ב-05/2 משפיע על הדרך שבה שיגרה זו פועלת. בסעיף "שיקולים בעבודה בשני מצבים" תמצא דיון על ההשלכות של עבודה בשמ מצבים. בדומה לשיגרת הטיפול בפסקי חומרה, שיגרה זו מתבצעת בזמן-פסק, תחת 6 -+-זמן-פסק במצב פסק. לכן, זמן העיבוד בתוך שיגרה זו חייב להיות מינימלי, כי יש לקחת בחשבון שיכולות לפעול במערכת מספר שגרות כאלו. 11 שלא כמו שיגרת הטיפול בפסקי חומרה, שיגרה זו אינה מפיקה הודעת "סוף פסק", כי מערכת ההפעלה מנהלת את התקן השעון. פרט לזאת, כל שאר שיקולי הביצוע לגבי שיגרה זו דומים לאלה של שיגרת הטיפול בפסקי חומרה. שיגרת הטיפול בשעון העצר מקודדת כמודל .681 בע, אתשדמתא הע. מערכת ההפעלה תבצע קריאה רחוקה לשיגרת הטיפול בשעון העצר, אשר חייבת לבצע החזרה רחוקה בגמר העבודה. לשיגרת הטיפול בשעון העצר יש גישה אוטומטית לסגמנט הנתונים (באוגר ה-25) של ה-67ש671 660106 ולמחסנית (באוגר ה-55), בלי קשר למצב הנוכחי של היע"מ. שיגרת הטיפול בשעון העצר אינה צריכה לשמור ולשחזר את התוכן של האוגרים, כי מערכת ההפעלה דואגת לתוכן של האוגרים השייכים ל-686ת+-זמן-פסק. הדוגמה הבאה מתארת את הפעילויות של שיגרת הטיפול בשעון העצר. 1. מערכת ההפעלה קוראת לשיגרת הטיפול בשעון העצר כאשר מתרחש פסק בהתקן. השיגרה הזו מתבצעת כ-176806+ מיוחד שאינו שייך לתהליך של *ישום כלשהו, ומשתמשת במחסנית שסופקה על-ידי מערכת ההפעלה. לשיגרת הטיפול בשעון העצר יש אפשרות מיעון לסגמנט הנתוניס| של ה-ז6ש011 860166 (באוגר 25). בכל פעם שהיא נמצאת במצב מוגן, היא מתבצעת ברמת הרשאה 0, הזהה לזו של גרעין מערכת ההפעלה. 2. שיגרת הטיפול בשעון העצר *כולה: * לפעול בפרקי זמן קצובים. * לטפל בק/9פ של התקנים שאינם מבוקרי-פסקים. אם יש צורך, שיגרה זו *כולה לעורר את ה-080ע1(0 ששיגרת האסטרטגיה חסמה. 3. כאשר שיגרת הטיפול בשעון העצר מסיימת את פעולותיה לגבי התרחשות זו של פסק הזמן, היא חוזרת לגרעין מערכת ההפעלה שקרא לה. שיגרת הטיפול בשעון העצר אינה מפיקה הודעת "סוף פסק" (501) לבקר פסקי החומרה, כי הבעלות על התקן השעון נמצאת בידי ה-67ש06171 860106 של השעון. שיגרת הטיפול בפסקי תוכנה שיגרת הטיפול בפסקי תוכנה הינה מרכיב אופציונלי של ה-67160 000166 והיא משמשת רק לתמיכה בסביבת 2005. תפקידה ליירט את פסקי התוכנה שהופקו על-ידי *ישום ‏ 2005. ה-67ש671 660166 חייב לרשום את נקודת הכניסה לשיגרה זו בעזרת שירות ז56%50//6060 (הידוע גם כ-ת56%800/1/6000) של ה-115ש6ס. לאחר מכן, בכל פעם שסביבת הביצוע של 205 נמצאת בחזית, *כול יישום ה-205 להפיק פסק תוכנה, אשר *פעיל בצורה ישירה את שיגרת הטיפול בפסקי התוכנה. פסקי תוכנה *כולים להתרחש אך ורק בסביבת 2025, ולכן שיגרה זו מתבצעת רק במצב אמיתי. למעשה, שיגרה זו הינה היחידה ב-67ש6:1 060106 שאינה דו-מצבית. שיגרה זו נקראת ישירות על-ידי פסק התוכנה ולכן היא מתבצעת בזמן-משימה כהרחבה של היישום. הקשר זה של הביצוע נקרא "מצב משתמש", אשר המאפיין העיקרי שלו הוא בכך שמנתב המשימות *כול להפסיק את הביצוע של משימה זו. זאת אומרת, ששיגרת הטיפול בפסקי תוכנה נחשבת כחלק מיישום ה-2025, והיא 12 יכולה להפסיד את היע"מ לתהליכי 05/2 הנמצאים ברקע. יש צורך להתחשב בתכונה זו של "מצב משתמש", אם שיגרת הטיפול בפסקי תוכנה חייבת לגשת למבני נתונים המשמשים מרכיבים אחרים של ה-61767 106ט860. לדוגמה, שיגרה זו יכולה להתחיל לעדכן מבנה (נתונים ואז "לאבד" את היע"מ לתהליך הנמצא ברקע. תהליך זה *כול לבצע בקשת ק/5, שמפעילה את שיגרת האסטרטגיה, אשר בתורה תעדכן את אותו מבנה נתונים. הביצוע של שיגרת הטיפול בפסקי תוכנה יכול להיות מופרע על-ידי פסקי חומרה בנוסף לניתוב המשימות. זאת אומרת, ששיגרת הטיפול בפסקי התוכנה חייבת לקחת בחשבון את הסיכונים כאשר היא משתמשת במבנ* (נתונים המשמשים מרכיבים אחרים של ה-01167 860166 הפועלים בזמן-פסק (השגרות לטיפול בפסקי החורה ובשעון העצר). שימוש אופייני של ה-ז6ט1ז6 6601606 בשיגרה זו הוא :ירוט של פסק תוכנה המופק על-ידי ה-8105 0/1א, אשר מספק ליישום 2025 גישה להתקן המנוהל על-ידי 6171061 660166. אחת הסיבות שבגללן 011068 660106 רוצה לדעח מה ה-8105 מנסה לעשות, היא הצורך להבטיח שההתקן ישאר במצב :דוע. במקרה זה, ה-ז6ש611 660166 מטפל בבקשות ק/פ שמופקות על-ידי תהליכי 05/2 הנמצאים ברקע. לכן הוא חייב לתאם את הגישה להתקן בעו לבין ה-3105, ולהבטיח שהגישה להתקן תהיה סידרתית. סיבה אחרת היא להגן על שירות ה-3105 מפני הפסקה לפני שהוא השלים את פעולתו, וגם כאן, ה-0001606 67 מעוניין להשאיר את ההתקן במצב *דוע. במצב זה, הבעיה היא, שהמפעיל יכול לעבור בכל רגע מיישום ה-2025 הנמצא בחזית ולהעביר לשם יישום 05/2) שהיה ברקע. כתוצאה מכך יושעה הביצוע של :ישום 2025. אם יישום 205 הפעיל פסק תוכנה והמפעיל עבר ליישום אחר, שירות 3105 לא יושלם. דבר זה *כול להיות חמור מאוד אם שירות ה-31025 היה באמצע פעולה של שינוי מצב בהתקן. כדי למנוע זאת, שיגרת הטיפול בפסקי תוכנה מסמנת בעזרת שירות ה-ק111ש20, ת810256116560%10, ששירות 31025, נמצא בשלב קריטי של ביצוע ועל-ידי כך היא מונעת מהמשתמש מלעבור באופן זמני מיישום 05. שיגרת הטיפול בפסקי תוכנה אינה נקראת על-ידי מערכת ההפעלה אלא על-ידי פסק תוכנה, לכן, היא כתובה כמודל 7ק[1תתמי'א1 (פסק), תתטדטת 6קכנתז0+ת1 דמתאן] - (החזרת פסק). פסק בתוכנה *פעיל את שיגרת הטיפול בפסקי תוכנה בעזרת הצבה מסוימת במחסנית של יישום 205 שמדובר בו. השיגרה חייבת להחזיר פסק לאחר שסיימה את פעולתה. בנקודת הכניסה, חייבת שיגרה זו לקבל הרשאת גישה לסגמנט הנתונים של ה-זַ6ש6:1 660106, בנוסף לכך, עליה לשמור ולשחזר את התוכן של האוגרים בשמו של יישום 2005 שקרא לה. הדוגמה הבאה מתארת את הפעולות של שיגרת הטיפול בפסקי תוכנה. 1. שיגרת הטיפול בפסקי תוכנה נקראת על-ידי יישום 2005, אשר הפטיל פסק בתוכנה. השיגרה מתבצעת כשלוחה של היישום ומשתמשת במחסנית של היישום שקרא לה. שיגרה זה חייבת להסדיר אפשרות מיעון לסגמנט הנתונים של ה-67ש1ז0 66106 על-ידי כךד שהיא מציבה בתוך אוגר הסגמנט 25 ערך שנשמר קודם. שיגרת הטיפול בפסקי תוכנה מתבצעת במצב אמיתי. 2. שיגרת הטיפול בפסקי תוכנה מוודאת שהפונקציה המבוקשת ניתנת לביצוע. 3 אם התקבלה הרשאה לבצע את הפונקציה הרצויה, *כולים להיות שני מצבים: 1 * ההתקן פנוי?: שיגרה זו תפעיל ת1050611%560%10 כדי שתוכל להכנס לשלב קריטי של הביצוע, ולאחר מכן היא תקרא ל-3105 כדי שיבצע את הפונקציה. לאחר שה-31025 סיים את פעולתו, היא מפעילה שוב ת1025011)560%10 כדי לצאת מהשלב הקריטי של הביצוע. * ההתקן תפוס: שיגרה זו תקבע אות-סימון שיצביע על כך שק/9פ של ה-3105 נמצא בתור להתקן ותמתין באתת ]28% בעזרת שירות 5% של ה-כ111ט126. כאשר האתת פנוי (לאחר ששיגרת האסטרטגיה או ששיגרת הטיפול בפסקי חומרה הפעילו 561061681), ימשיך הק/פ של ה-3105 להתבצע כפי שצוין לעיל. 4. שיגרת הטיפול בפסקי תוכנה חוזרת ליישום ה-205 על-ידי החזרת פסק (צמא1). בכל זמן שהוא בעת הביצוע, יכולה להיות הפסקה בפעולת השיגרה לטיפול בפסקי תוכנה, לשם קבלת פלחי זמן (11₪651166) עבור יישומים הפועלִים ברקע במצב מוגן. הביצוע של השיגרה יושעה אם המשתמש העביר את סביבת ה-2025 לרקע. הביצוע לא יושעה אם השיגרה הפעילה ב10250116560%10 כדי ששלב קריטי יבצוע ללא הפרעה. לגבי הפעלה חוזרת, שיגרת הטיפול בפסקי תוכנה לא תופעל בנקודת הכניסה עד לאחר שהיא תחזור ליישום ה-05. ולי עבודה בשני מצבים ה-5ז61100 860106 ב-005/2) הם דו-מצביים (1(0681). שלושה מתוך ארבעת המרכיבים ב-*0ט6:1 660106 מתבצעים הן במצב. אמיתי והן במצב מוגן. היכולת להתבצע בלי קשר למצב היע"מ נקראת עבודה בשני מצבים, או עבודה מעורבת. רק לגרעין ה-25/2) ול-5ת67100 0860106 יש את היכולת הזו. יש לציין שהדבר שונה מ"יישום משפחה" (ת001108610 ע28₪11) הנכתב למישק לתכנות יישומים (821) ומקושר לספריות משפחה מיוחדות, שמאפשרות ליישום המשפחה להתבצע הן ב-05/2 והן ב-205. יישום משפחה מתבצע רק במצב היע"מ שבו הוא הוטען. ביצוע במצב אמיתי פירושו, שהמרכיבים הדו-מצביים של ה-6ט611 66166 חייבים להיות מקודדים בהתאם לכללים מסוימים שמכתיבה הארכיטקטורה של 2. הכללים הט: לא לעשות חישובי סגמנטים בתוך אוגרי הסגמנט. לא להיות תלויים בסגמנטים עם אפשרות גלילה (תטסזה8ק8עש). לא לגשת לכתובות מעבר לסוף הסגמנט. להציב ערכי בורר נכונים באוגרי הסגמנט. לא לכתוב לתוך סגמנט פקודה. לא להציב פקודות ונתונים באותו סגמנט. לא להיות תלויים במהירות הביצוע של הפקודה. לאחר שמלאו אחר כללים . אלה, יוכלו הרכיבים הדו-מצביים ב-67ט071 660106 להתבצע במצב אמיתי. הדבר אפשרי, כי לא קיימות הגבלות על ביצוע פקודות במצב אמיתי. : המשוכה העיקרית העומדת בפני הרכיבים האלה כאשר הם מתבצעים במצב אמיתי, היא המיעון לזיכרון הנמצא מעל 1/]/8. כפי שבוודאי תזכור, מיעון זיכרון 14 במצב אמיתי משתמש רק ב-20 סיביות ולכן, הכתובת הגבוהה ביותר שניתן להגיע אליה היא תעקעעע, או במונחים של סגמנט:כתובת *חסית נכתוב :יע (שמתורגם ל-1%/18). הרכיבים הדו-מצביים ב-ת6ש6:1 6601606 חייבים לנקוט בפעולות מסוימות, אם הם רוצים להכנס במצב אמיתי לזיכרון הנמצא מעל 1%/18. שלבים אלה מתוארים להלן: 1. לאחר ששיגרת האסטרטגיה ב-67ש6:1 660106 קיבלה חבילת בקשה המכילה כתובת של מאגר הנמצא בסגמנט הנתונים של היישום, היא מוודאת שהמאגר נעול בזיכרון (לא ניתן להזזה ולהעברה). כתובות הנמצאות בחבילות הבקשה של כבמת ו-מ17א ננעלות על-ידי מערכת הקבצים, ולכן ה-67ט651 106ַט660 ינו צריך לנעול אותן. אולם, כתובות המועברות עם חבילת הבקשה של 10061 אינן נעולות ויש צורך לנעול אותן. שיגרת האסטרטגיה משתמשת בשירות 100% של ה-סן111ט6כ. כדי לנעול. כתובת בזיכרון (לא ניתן לנעול זיכרון בזמן-פסק ולכן רק שיגרת האסטרטגיה *כולה לנעול כתובות בזיכרון). 2. לאחר ששיגרת האסטרטגיה מצאה שהזיכרון נעול, היא חייבת להפוך את הכתובת הלוגית, כלומר ערך בורר:כתובת *חסית או סגמנט:כתובת יחסית, למספר בן 32 סיביות. היא עושה זאת בעזרת שירות 5עתק610זו0 של ה-ק1תט6כ. בגמר ביצוע פעולה זו שומרת שיגרת האסטרטגיה את המספר בן 32 הסיביות. הכתובות הנמצאות בחבילות הבקשה של כבמת ו-17₪א מיוצגות כבר כמספרים בני 32 סיביות. על-כן יש צורך להסב רק כתובות שה-67ט611 660106 צריך לנעול. 3 כאשר ה-67ש61 660166 צריך להכנס לזיכרון, הוא מסב את המספר בן 2 הסיביות לכתובת לוגית. לצורך זה הוא משתמש בשירות ה-ק60111כ, + צ, שמחזיר את המבנה של ערך בורר:כתובת יחסית או סגמנט:כתובת יחסית לגבי המקום בזיכרון. בנוסף לכך, אם היעד נמצא מעל 113 והיע"מ נמצאת במצב אמיתי, ה-10/11%ַפּעתק. משנה את מצב היע"מ, כך שה-67ש611 660106 יוכל להכנס לזיכרון. 4. כאשר ה-:6ש6:1 66106 *וצא מהזיכרון, הוא חייב להפעיל את שירות ה-1110ט6כ2], +10011פעתקת[ז. שירות זה מחזיר את מצב היע"מ לזה שהיה לפני שבוצעה הקריאה ל-10/116פעתש. בעזרת שלבים אלה, ה-67ש6:1 660106 אעו צריך לזהות את מצב היע"מ, וניתן לתכנן אותו כך שהוא לא יתחשב במצב זה. שיקולי תפעול הפעילויות בזמן משימה של ה-67ש6:1 660106 (שיגרת האסטרטגיה ושיגרת הטיפול בפסקי תוכנה, למשל) נעשות במסגרת התהליך שקרא להן, אך הן מושפעות בצורה שונה מיתר חלקי המערכת המשתתפים בביצוע רב משימות (שת1א151585טמ1). מאידך, הפעילויות בזמן-פסק הן מיוחדות, כי הן מתבצעות בצורה אסינכרונית לשאר המערכת. לאור זאת יש ל-67ש6011 660166 מספר מאפיינים *יחודיים, המשפיעים על הפעילות ההדדית של המרכיבים השונים ב-011067 660106. המאפיינים הם: מיעון לזיכרון. סינכרון. קינוו של פסקים. ביצועי מערכת. 155 מיעון לזיכרון מיעון לסגמנטים של היישום בזמן פסק חי'*ב להתחשב לא רק בעבודה בשנל מצבים, אלא גם בהקשר שבו נמצא היישום. אפילו אם נקבע שהמערכת תעבוד רק במצב מוגן, לא פתרנו את הבעיה. הסיבה לכך היא שביצוע רב-משימתי של תהליכים פירושו שהמרכיבים הפועלים בזמן-פסק יתבצעו במרחב כתובות השונה מזה שממנו נשלחה בקשת הק/5. זאת אומרת, שהמרכיבים הפועלים בזמן-פסק (שגרות הטיפול בפסקי חומרה ובשעון העצר) חייבים להשתמש בשירותי כ60111ע לניהול הזיכרון, כדי להבטיח גישה בזמן-פסק לסגמנטים של היישום. המרכיב הפועל בזמן-משימה, שיגרת האסטרטגיה, אחראית להפיכת כל כתובת לוג*ת המתקבלת מתהליכי היישום לכתובת פיסית ולאחסון של התוצאה כמספר בן 32 סיביות. המרכיבים הפועלים בזמן-פסק *כולים לאחזר את המספר בן 32 הסיביות, להפוך אותו באופן זמני לכתובת לוגית, ולהזיז נתונים פנימה והחוצה מתוך הסגמנט של היישום. יש צורך בשיקול מיוחד עבור מיעון לזיכרון פיסי הן לגבי זמן-פסק והן לגבי זמן-משימה. על-ידי שימוש בשירות 5עתק411060 של כ[1ט6כ, שיגרת האסטרטגיה מקצה גוש של זיכרוו פיסי מתוך זיכרון המערכת ומקבלת מספר בן 2 סיביות. גוש פיסי זה אעו סגמנט שניתן לטפל בו בצורה ישירה, אלא בלוק נעול של הזיכרון, שאינו ניתן להעברה ולהזזה. זהו המנגנון היחיד העומד לרשות ה-611067 660106 כדי להשיג *ותר זיכרון ממה שיש לו בסגמנטים שלו. כדי שמרכיבי ה-6ש611 660106 *וכלו להתייחס לזיכרון זה, הם חייבים להשתמש בשירות ה-ק1תט6כ, 100/1:6פעתק, כדי להסב את המספר בן 2 הסיביות לכתובת לוגית זמנית. הדרך הטובה ביותר לנצל זיכרון פיסי זה היא עבור מאגר להחזקת נתונים, ואין להכיל בו אתתי 1בא, או מבני נתונים קריטיים, מרכיבי ה-:6:100 106ַט66 *כולים לבצע מיעון לזיכרון השמור ל-8105, בתחום הנמצא בין 64088 ל-1/18. מערכת ההפעלה אינה משתמשת במרחב כתובות זה כדי לשמור *ישומים, או סגמנטים של המערכת. הדבר הראשון שה-660166 67 צריך לעשות הוא לקבל כתובת לוגית שתאפשר לו לפנות לנקודה מסוימת בזיכרון השמור. השלב הראשון בפעולה זו הוא חישוב של הכתובת הפיסית בת 32 הסיביות של היעד. לאחר מכן ה-:ז6ש611 660106 משתמש בשירות ה-ק711ש6, %ז0/1י1פעתק, כדי כקבל כתובת לוגית זמנית, שניתן להשתמש בה להזזת נתונים פנימה והחוצה מתוך שטח היעד. דוגמה לזיכרון כזה הוא המאגר (ת116טס) לתצוגת מונוכרום, אשר מתחיל ב-ת3000:0000 (או בכתובת פיסית ת00080000). דוגמה אחרת לזיכרון כזה הוא זיכרון הנמצא במתאם, אבל ממופה לתוך האיזור השמור. ה-ז6ש6?1 660106 *כול לתת ליישום, או לתת-מערכת ק/5, אפשרות מיעון לזיכרון כזה בעזרת שירות ה-ס1ש6כ, + זסיפעַת, היוצר ערך בורר לטבלת ‏ 1127. אולם, אין להשתמש בערך בורר זה בקריאות מערכת, מכיון שהוא אינו מצביע על זיכרון המערכת. סינכרוניזציה הסינכרוניזציה ב-זַ6:16 660106 ב-6)25/2 מתבטאת בשתי צורות: תיאום פעילויות בין מרכיבי ה-זַ6ש611 660106 עצמו, ותיאום פעילויות בגו לבין היישום.| הסינכרון| בין מרכיבים הפועלים בזמן משימה לבין מרכיבים הפועלים בזמן-פסק הוא *ותר שאלה של "האם" או "מת:" ה-67ש671 860106 צריך להחליט על עצירת 6806זת+ של שיגרת האסטרטגיה, ומתי עליו להתחיל אותו שוב. התשובה לשאלות אלו תלויה בד"כ בצורך של ההתקן (ושל ה-660166 1-06 ץ6) לנהל מספר חבילות בקשה שונות, ובדרך שבה היישום משתמש במישקים ל-011761 660106. באופן כללי, 61196 660106 יפעל לפי השיקולים הבאים: * אם ההתקן תפוס, יש צורך להציב רק חבילות בקשה של סבמתא ו-8דזאט בתור הממתינים. בכל זמן שההתקן תפוס, שיגרת האסטרטגיה תציב חבילות של בקשות 5/2 ברשימה מקושרת ותחסום את ה-6806זת+ שהוציא את הבקשה. 680ת1+ זה ימתין לשיגרת הטיפול בפסקי חומרה שתעבד את תור הממתינים. סוגים אחרים של חבילות בקשה מטופלים על-:די שיגרת האסטרטגיה בצורה מיידית. = בכל פעם שחבילת בקשה דורשת לקבל את מצב הק/5 להתקן, ה-660106 זו צריך לחסום את ה-17686+ בתוך שיגרת האסטרטגיה, ולהמתין לשיגרת הטיפול בפסקי חומרה שתעורר אותו לאחר שפעולת הק/פ הושלמה. בכל פעם שההתקן תפוס, הוא *כול להציב את חבילת הבקשה בתור הממתינים (כלומר ברשימה המקושרת של חבילות הבקשה). בקשות מעובדות לפי הסדר שנקבע על-ידי ה-67ט6:1 660106, כמו למשל ראשון-מגיע-ראשון-מקבל-שירות (5ע1ע), או לפי סדר אחר שנקבע על-ידי התהליך. ה-17686+ של שיגרת האסטרטגיה משתמש בשירות ה-כ60111, 3100%, כדי להפסֶיק להתבצע. בכל פעם ששיגרת הטיפול בפסקי חומרה קובעת שפעולת ק/פ הטתיימה, היא *כולה להשתמש בשירות ה-ק600כ2, מטת, כדי לעורר את ה-680זת+ שבשיגרת האסטרטגיה. לאחר מכן, שיגרת הטיפול בפסקי חומרה *כולה לקחת את הבקשה הבאה בתור ולשלוח אותה להתקן. * תהליך *כול להעביר, על-ידי בקשת 10061, כתובת של מאגר הנמצא בסגמנט הנתונים של הלשום. ה-61168 860106 צריך לשמור שה-11680+ בתוך שיגרת האסטרטגיה *משיך להתבצע, עד אשר הוא סיים להשתמש במאגר., שיגרת האסטרטגיה חייבת להשתמש בשירות ה-ס[תט6, %, כדי להבטיח שהסגמנט של היישום לא *ועבר ולא יחז לפנל שהיא קיבלה את הכתובת הפיסית. ה-ז6ט0:1 660106 צריך גם לשמור את ה-0"686+ של שיגרת האסטרטגיה בצורה כזו, שניתן יהיה לשחרר את הסגמנטים של היישום בעזרת שירות ה-ק111ש6, 106%ם[ז. שיגרת הטיפול בפסקי חומרה תוכל לעורר את ה-1686ת+ של שיגרת האסטרטגיה כאשר הגישה לסגמנט הושלמה. * אם שירותי ה-23105 נמצאים בבעלות ה-67ש611 106ט66, צריך לארגן את הגישה להתקן בצורה סידרתית. כאשר ההתקן תפוס, שיגרת הטיפול בפסקי תוכנה מסמנת שק/5 של ה-3105 ממתין בתור להתקן ושה*א ממתינה באתת, כדי לדעת מתי ניתן לבצע את הק/פ של ה-8105. הן שיגרת האסטרטגיה והן שיגרת הטיפול בּפסקי חומרה *כולות לנקות את האתת כאשר הן רואות שק/5 ממתין ב-8105. בצורה זו הן מאפשרות לשיגרת הטיפול בפסק:י תוכנה לדעת שה-81025 יכול לגשת בצורה בטוחה להתקן. אתתים הינם האמצעים העיקריים המשמשים לתקשורת בין ההתקן לבין היישום. אולם, ישנן הגבלות מסוימות שמכתיבות את הדרך שבה *כול ה-זַ6ש6:1 660166 להשתמש בהם. כפי שתזכור, יש שני סוגים של אתתים, אתת ]84% ואתת מערכת. אתת ]28% הוא מנגנון פשוט ולא מוגן המאפשר לתאם פעללויות. אתת מערכת הינו מנגנון המנוהל על-ידי מערכת ההפעלה ומוגן מפני מצבי נעילה ללא מוצא (לדוגמה, כאשר התהליך שבבעלותו נמצא האתת הפסיק לפעול מבלי לשחרר את האתת). הנקודות החשובות הקשורות לטיפול באתתים והמשפיעות על הפעילות ההדדית של ה-167ז6 660106 עם היישום הן: 17 * שסטןז 6 אנו *כול ליצור אתת מערכת, או להיות הבעלים שלו. * ז6ט 660106 יכול לטפל באתת מערכת הנמצא בבעלות התהליך. התהליך חייב להעביר ל-ז0ט611 660106 את המקשר לאתת המערכת כפקודת 1006%1. ה-011761 660106 חייב להסב את המקשר שהוא קיבל למקשר שהוא *וכל להשתמש בון הוא עושה זאת * בעזרת שירות ה-ק711ש26], 616ת562118. לאחר מכן ה-:6ש611 660166 :כול להשתמש במקשר החדש שלו לאתת המערכת באמצעות שירותי ה-סן1זט6כ, 7 ו-560021685. ג עסע 6 :יכול להגדיר אתת 411 הנמצא בסגמנט הנתונים שלו. הוא גם יכול להכנס אליו בזמן-פסק. * ה-:6ט1ת6 660106 אעו *כול להשתמש בזמן-פסק באתת ]4% הנמצא בסגמנט הנתונים של התהליך. זר 67ע1ת 660166 אינו מורשה לתת ליישום אפשרות מיעון לאתת ]גת הנמצא בסגמנט הנתונים של ה-:6ש:!61 166ַט86, מכיון שהיישום לא יוכל להשתמש בערך בורר זה לטבלת ה-ז'ס1. הכוונה בכללים אלה היא שה-:6ש01 660106 חייב להשתמש באתת 41ת, ולא באתת מערכת, כדי לתאם את הפעילויות בין המרכיבים השונים שלו. כמו כן, ה-ז6116 660166 חייב להשתמש באתת מערכת הנמצא בבעלות היישום וסופק על-ידו, כדי להתקשר ישירזת עם היישום. קינון של פסקים יש לשקול שימוש בקינון (ם65%1ת) פסקים לגבי שני המרכיבים של ה-660106 ו הפועלים בזמן-פסק, אם כי בדרך שונה לגבי כל אחד מהם. קינון של פסקים נוצר כאשר שיגרת הטיפול בפסקים מופעלת שוב בנקודת הכניסה שלה, ולפני שהיא הספיקה לחזור למי שקרא לה. נפשט ונאמר, ששיגרת הטיפול בפסקים קיבלה פסק חדש לפני שהיא סיימה את הטיפול בפסק הנוכתי. קינון של פסקים דורש עיבוד מיוחד והוא תלוי בגורמים אחדים, כמו: - מתי שיגרת הטיפול בפסקי חומרה מודיעה על סוף פסק (01מ), - מהי תדירות הפסקים בהתקן, - אילו פסקי חומרה נוספים פעילים כרגע, - מהי העדיפות היחסית של הפסק המבוקש ביחס לפסקים אחרים. שיגרת הטיפול בפסקי חומרה היא החשופה ביותר לקינון פסקים, בהשוואה לשיגרת הטיפול בשעון העצר. שיגרת הטיפול בפסקי חומרה חייבת לקחת בחשבון את מגבלת הקינון של פסקים בגלל המחסנית המופעלת בזמן-פסק, אשר אינה יכולה לתמוך במספר אינסופי של פסקים. היכן שאפשר, שיגרת הטיפול בפסקי חומרה צריכה להגביל את מספר הפעמים שניתן להפעיל אותה ברצף, כדי לשמור על רמה נמוכה של שימוש במחסנית. שיגרת הטיפול בשעון העצר חשופה גם היא לקינוןו של פסקים, אך בדרך לא ישירה בלבד. שיגרה זו פועלת בצורה *עילה לאחר שה-:0ט671 660166 של השעון שלח לשעון הודעת "סוף פסק", אשר מאפשרת פסק שעון נוסף בשעה שהשיגרה פועלת. שיגרת הטיפול בשעון רשאית להשלים את פעולתה ולחזור לתהליך שקרא לה לפני שניתן לקרוא לה שוב בנקודת הכניסה שלה. זאת אומרת, שפרק הזמן (הקבוע מראש) שמערכת ההפעלה צריכה להמתין לפני שהיא קוראת שוב לשיגרה יחלון" מספר פעמים, עד אשר היא תוכל לקבל אותה באמת. כדי לבדוק כמה זמן באמת עבר, שיגרת הטיפול בשעון יכולה להכנס למשתני 18 הזמן | בסגמנט המידע הגלובלי (הכניסה לסגמנט מושגת בעזרת שירות ה-ק111ט6כ, 026%205081). ביצועי המערכת ביצועי המערכת רגישים להתנהגות של מרכיבי ה-67ש6:1 106ש66. בגלל אופי הפעילויות שלו, ה-6167 660106 חייב לפעול באותה רמה כמו מערכת ההפעלה, וביכולתו להשפיע על הדרך שבה מערכת ההפעלה מג*בה לאירועים. כדי לעשות אופטימיזציה של ההשפעות שיש ל-ז6ט611 660106 על המערכת וכדי להעלות למקסימום את היכולת שלו להתקיים בסביבה רבת *ישומים, הוא חייב לפעול בהתאם לכללים מסוימים: * ה-:ַ67106 660106 חייב למקם בסגמנט הנתונים שלו מבני נתונים, אשר קריטיים לביצוע שלו, ומאגרים המשמשים להעברת נתונים. מרכיבי ה-68ט6"1 660106 :כולים לגשת מיידית לסגמנט הנתונים שלו, הן בזמן-פסק והן בזמן משימה. * ה-זַ86ש6"1 660106 מעביר נתונים לסגמנט הנתונים| של היישום, לסגמנט הנתונים שלו, או לגוש נתונים פיסי בזיכרון. הוא צריך לעשות זאת בבלוקים קטנים במטרה לשחרר את היע"מ מהר ככל האפשר. בזמן משימה, הוא חייב להשתמש בצורה מחזורית בשירותי ה-ס111ט6ס, 8 ו-166צ70' (בערך כל שלוש אלפיות השניה), כדי לאפשר ל-11680+ אחר להתבצע. בזמן-פסק עליו להגביל את זמן הביצוע שלו למינימום ולכן ברור, שאין זה מעשי להעביר כמוויות גדולות של נתונים. * מרכיבי ה-67ש6"1 660166 חייבים להגביל את זמן העיבוד בזמן שפסקי החומרה מנותקים. ניתוק פסקי החומרה מאפשר לשלוט בגישה למבני נתונים קריטיים המשותפים לרכיבי זמן-פסק וזמן משימה של ה-ז6ש671 660106. אולם, הדבר משפיע על השירות שיקבלו פסקים של התקנים אחרים. * ה-67ש6?1 660106 חייב להקטין למינימום את זמן הביצוע שמוקדש לעיבוד פסק. שגרות הטיפול בפסקי החומרה ובשעון העצר חייבות לבצע מספר פעולות קטן ככל האפשר. הסיבה לכך היא שפעולות בזמן פסק מעכבות את התגובה של מערכת ההפעלה לאירועים אחרים בסביבה רבת המשימות. לדוגמה, אם שירות של פסק גורם לכך ש-686ז1+ קריטי מבחינת זמן הביצוע *וכן לריצה, על מערכת ההפעלה לאפשר את הביצוע שלו. אף על פי כן, הוא לא *כול להתבצע עד שמסתיים הביצוע של הפסק המקבל כעת שירות. בנוסף לכך, שיגרת הטיפול בפסקי חומרה צריכה לשלוח הודעת "סוף פסק" להתקן שלה, קרוב ככל האפשר לסיום העיבוד הקריטי של הפסק. הדבר מאפשר לכל שאר הפסקים הנמצאים בבקר הפסקים להשלח ליע"מ לשם קבלת שירות. 1|9 תיחול של פהקטופ 06זט מערכת ההפעלה 05/2 מכירה ב-67ש6"1 660106 ובהתקנים שהוא תומך בהם רק לאחר הטעינה והתיחול שלו שנעשים בזמן העיבוד של משפטי =10₪/₪ בקובא ה-5צ16.5ע00%. כל משפט >₪0/105כ מעובד לפי הסדר שבו הוא מופיע ב-5צ10.5עא00). מערכת ההפעלה טוענת את קובף התכנית של ה-67ש071 660106 המזוהה על-ידי המשפט =105/₪כ2, וקוראת לשיגרת האסטרטגיה עם חבילת הבקשה של הפקודה 17א1. זו מודיעה ל-6167 660106 לתחל את עצמו ואת ההתקן שלו. תיחול ה-ז0ט011 660166 נעשה בתהליך מיוחד במערכת ההפעלה ולכן שלב ביצוע זה נקרא "מצב תיחול" (0686 6ם1). בתהליך מיוחד זה של מערכת ההפעלה, ה-67ש6?1 660106 מתבצע כ-680תה+ של תהליך התיחול במצב מוגן עם רמת הרשאה של *ישום. זאת אומרת, שה-6ש61 660106 רשאי להפעיל פונקציות קישור דינמי מסוימות, כמו מישקים של מערכת הקבצים, או אמצעים לטיפול בהודעות. "מצב תיחול" הענו הפעם היחידה שהוא רשאי להפעיל פונקציות מסוג זה. ה-ש6ש611 660106 *כול לבצע ק/פ לקבצים, לשם קריאה מתוך קוב המכיל גופנים (פונטים) של המסך, או מידע על התצורה של ההתקן. הוא *כול גם להשתמש באמצעים לטיפול בהודעות (6ש05)02601/10558ש, 86 וו-120500%/1689886) כדי להציג הודעות למשתמש על מצב ה-ז0116 060166 וההתקן. למרות שהתיחול של ה-6"167 860106 מתבצע ברמת הרשאה של היישום (3), יש לו רמת הרשאת 5/2 (2) ועל-כן הוא *כול לגשת לכניסות הק/5 של ההתקן. ה-ז6716 660106 נמצא בזיכרון שמתחת ל-6409% ולכן הוא תופס חלק ממרחב הכתובות השמור לסביבת 2025. כדי לצמצם את צריכת הזיכרון בתחום זה, ה-ז6716 660106 יכול להפריד את הפקודות והנתונים המשמשים לתיחול מאלה המשמשים לפעולות רגילות. בדרך זו ניתן לבטל בסיום התיחול של ה-660106 ז6ץ? את הסגמנטים המשמשים לתיחול בלבד. ה-671767 060106 *כול גם להטעין סגמנטים בגודל מקסימלי (₪א64%) ולהחזיר שטחים אלה למערכת כאשר אין לו צורך בהם. ה-ז6:16 660106 הינו מודול קטן הנמצא מתחת ל-640%3, אבל יש לזכור שביכולתו להקצות ולהשתמש בזיכרון נוסף באמצעות שירותי ה-ק260111 לניהול הזיכרון. הדוגמה הבאה מתארת את שלבי התיחול. 1. מערכת ההפעלה קוראת לשיגרת האסטרטגיה בעזרת מחוון (א26:8) לחבילת הבקשה של הפקודה '11א1. שיגרת האסטרטגיה מתבצעת כ-680ז0+ תחת תהליך התיחול ובתוך מחסנית של התהליך, ויש לה אפשרות מיעון לסגמנט הנתונים של ה-67ש01 660166 (באוגר 25). היא מתבצעת ב-01=3, אבל עם הרשאת 5/2 (1020). 2. שיגרת האסטרטגיה שומרת את המחוון למישק ה-כ111ש26] שסופק על-ידי חבילת הבקרה %17א1 למטרות של שימוש עתידי. 3. שיגרת האסטרטגיה משיגה את המשתנים שצועו במשפט -08זשאע והועברו בחבילת הבקשה 11אז. 4. שיגרת האסטרטגיה קובעת את התצורה של ההתקן ומזהה את רמת הפסק, את כניסות הק/פ ואת מרחב הכתובות שישמש את ההתקן. 5. שיגרת האסטרטגיה רושמת נקודות כניסה נוספות לתוך ה-6060106 706 למשל, עבור שיגרת הטיפול בפסקי חומרה, שיגרת הטיפול בשעון העצר ושיגרת הטיפול בפסקי תוכנה. 200 6. שיגרת האסטרטגיה מתחלת את ההתקן. אם התיחזול נכשל, ה-660106 67 ייב לבטל את הרישום של נקודות הכניסה ולשחרר זיכרון שהוקצה. 7. לאחר שסיימה את התיחול, שיגרת האסטרטגיה מציבה את קוד הסיום של הפעולה בחבילת הבקשה, מצביעה על הכתובות היחסיות המסיימות את הסגמנטים .של הפקודות והנתונים ולבסוף חוזרת למערכת ההפעלה. 5 מתקדם ושיתוף פסקים המערכת האישית 5/2ק, דגמים 50, 60, 70 ו-80 מספקת שני מאפיינים חשובים לשם ניהול ההתקן ב-05/2. מאפיינים אלה אינם קיימים ב-26-81 וב-7א-6 מודל 286. המאפיינים הם מישק 3105 מתקדם (3105 0606ת4608) וסביבה של פסקי חומרה הרגישים לרמת סיווג. ה-31005 המתקדם חשוב, מאחר והוא מספק ל-011061 660106 ב-025/2) מישק ביניים להתקן, אשר משחרר את ה-660166 ץע מתלות במאפינים מסוימים של התקן. כאשר 67ץט1ז6 660166 אינו נכתב עם מישק ביניים, הוא מכיל בתוכו את פרטי התפעול המפורטים של ההתקן, ועל כן הוא מוגבל במידת החופש לקבל שינויים בהתקן זה. הסביבה של פסקי חומרה הרגישים לרמת סיווג מתאימה *ותר לשיתוף פסקי חומרה מאשר הסביבה של פסקי חומרה מופעלי סף (6ז8ש2870| ₪1220700 0026 פטז+ת!), הקיימת במחשבים אישיים (6ק). 5 מתקדם - 48105 5 מתקסקדם (43105 - 3105 06060ם2098) הינו רובד של מישק להתקן שיש לו מספר מאפיינים המבדילים אותו מה-8105: * 43105 מופעל על-ידי קריאה רחוקה ולא על-ידי פסק חומרה. * 83106 המתקדם יכול להתבצע הן במצב אמיתי והן במצב מוגן. 5 המתקדם מקבל את הנפעולות שהוא צריך לבצע ואת הפרמטרים שהוא צריך להשתמש בהם ממבנה נתונים הנקרא גוש הבקשה (00₪656ת %). הר-657ץש671 66106 קובע את גוש הבקשה ומעביר מחוון למבנה הנתונים בכל פעם שהוא קורא ל-40105. * 40105 מזהה התקן מסוים עם מקשר הנקרא מספר מזהה לוגי (1081081 כזז - כ1) ועס מספר יחידה הנמצא באותו פז1. * 5/0 להתקן מבוצע על-ידי קריאה לאחת מנקודות הכניסה של ה-28105: נקודת הכניסה ‏ 51881 מתחילה ביצוע של פונקציה, נקודת הכניסה שפנ זאאת זא מטפלת בפעולה בזמן-פסק ונקודת הכניסה 1 ז(1/180' משמשת לעיבוד פסק-זמן. * פונקציית ק/פ *כולה להיות מסונכרנת, או מבוצעת בשלבים. בקשת ק/פ מסונכרנת חייבת לרוצ עד לסיומה לפני שהיא חוזרת לתהליך שביקש אותה. בקשת ק/5 בשלבים מחייבת סידרה של פעולות. בכל אחד מהשלבים, נדרש ה-1:686+ הקורא לבצע פעולה שתעביר את ביצוע הבקשה לשלב הבא. * העברת נ(תונים *כולה להיות מבוססת על כתובת לוגית או על כתובת פיסית. * ז6ט]ץ 6601065 נכנס למישק ה-49105 דרך שירותי ה-כ1ש6כ: עזלת 6 עזות66105דת, 431056811 ו-עז)תםתסותת 310500 201 כדי שה-:ַ0ש071 660106 יוכל להשתמש בהתקן באמצעות 48105, עליו לזהות את ההתקן באמצעות מקשר להתקן - מספר מזהה לוג* (כ11). הוא עושה זאת בעזרת שירות *ה-כ111ט6, ע/7+תכ06%11). 48105 מזהה התקנים בעזרת 1105 ו-05/2 עושה זאת בעזרת כותרות ההתקנים. לכן ה-6ש611 660106 צריך לבצע התאמה בין הדרך שההתקן מזוההּ על-ידי מערכת ההפעלה לבין הדרך שבה הוא מזוהה על-ידי מישק 88105. יש למלא אחר מספר כללים בזמן שנעשית התאמה בין ההתקן לבין מקשר 881025 להתקן, מכיון שמקשר (כ112 להלן) יכול לזהות התקן אחד או קבוצה של התקנים. הכללים הם: = ש6ט0"1 660106 להתקני תו עם כותרת התקן אחת: התקן התו ממופה ליחידה הראשונה של ה-112. אין משתמשים ביחידות אחרות ב-כ112 זה והן אינן עומדות לרשות 67106"5 660106 אחרים. ז ש6ט]6"1 660106 להתקני תו עם *ותר מכותרת התקן אחת: התקן התו הראשון ממופה ליחידה הראשונה ב-כ112, התקן התו השני ממופה ליחידה השניה ב-112, וכן הלאה. אם אין ב-112 מספיק יחידות עבור כל ההתקניסי הנתמכים על-ידי ה-67ש611 106[ט860, על ה-166ַש066 ת6 להשיג ‏ 110 נוסף ולהמשיך במיפוי של ההתקנים ליחידות ב-קז.1. א 67ט1ז0 660106 של התקן בלוקים עם *חידה אחת, או *ותר, שצוינה בכותרת ההתקן שלו, חייב למפות את היחידה הראשונה של כותרת ההתקן ליחידה הראשונה של ה-112 וכן הלאה עד אשר הוא ממפה את כל היחידות שהוא תומך בהן. מיפוי זה עלול לדרוש מה-071067 660166 להשיג יותר מ-1.12 אחד. כל 112 שלא נוצל על-ידי ז6ט061 660106 אחד יכול לעמוד לרשות אחר. כאשר 660106 :כול לשחרר את ההתקן, הוא *כול לשחרר את מקשר ה-8105 להתקן בעזרת שירות ה-ק111ט6כ, עע+ת5כ661.1עק. לאחר שה-6ש6:1 660106 השיג את ה-1120, הוא קובע אילו פרמטרים הוא צריך להעביר למישק 881025 לגבי ההתקן המסוים הזה. כדי להשיג מידע זה, עליו לקבוע מבנה נתונים באורך קבוע הנקרא גוש הבקשה. גוש זה מכיל כ11 וקוד ביצוע, והוא מחזיר את הפרמטרים של ה-112. ה-ז071/6 660106 *כול להשתמש בשירותי ה-ק11ט6כ, 410256:811 או עסתם תסתות3310500, כדי לקרוא לנקודת הכניסה 51477 המתייחסת ל-112 זה. 431025 מחזיר מידע אשר כולל: -‏ רמת הפסק שההתקן מכוון אליה. - רמת הבוררות (16061 ת01078+10ז8), אם היא ישימה. - מספר היחידות המכוסות על-ידי ה-פז/. - האורך של גוש הבקשה של פונקציות אחרות המסופקות על-:די ה-43105. - המאפיינים של מחווני הנתונים (כמו למשל, לוגי מול פיסי). ה-07161 660106 לומד ממידע זה: - איזה פסק חומרה הוא צריך לרשום שיגרה לטיפול בפסקי חומרה. - איזה סוגים של מחווני נתונים מצפה מישק 48105 לקבל. - מהו גודל השטח שצריך להשמר בסגמנט הנתונים של ה-6ש671 660166 לצורך גושי הבקשות של 40105. כדי להפעיל פונקציית 88105 מסוימת, ה-6ט1ז0 86106 חייב להכין תחילה גוש בקשה המכיל כ112 וקוד ביצוע. לאחר מכן הוא משתמש באחד משירותי ה-601110, 10256811 או עשתטתסותות310500, כדי לקרוא לאחת משלוש נקודות הכניסה ל-431025 המתאימים ל-כ112 זה. 88105 מבצע את הפעולה המבוקשת ובסיומה מציב את המצב בגוש הבקשה. כאשר שירותי 4810256411 או 202 עזזתתתסתותס10050 חוזרים ל-:6ש011 660106, הוא חייב לבדוק את גוש הבקשה כדי לקבוע מה היתה התוצאה. השתמשנו בדוגמה הבאה כדי לתאר איך ה-67ש6"1 6601606 משתמש ב-40105. הדוגמה מניחה שהוא ביצע את הפעולות הבאות: השיג את ה-1120, שמר שטחה לגושי הבקשה של 431005, זיהה את פסק החומרה ורשם את שיגרת הטפול בפסקי החומרה. להלן שלבי הביצוע: 1 .2 מערכת ההפעלה ‏ קוראת לשיגרת האסטרטגיה עם חבילת בקשה המכילה בקשת 5/0 להתקן היעד. אם ההתקן פנוי, שיגרת האסטרטגיה קובעת את גוש הבקשה עם ה-פז, את מספר הפונקציה וכל פרמטר אחר הנדרש על-ידי ה-31025, ותיחול של שדה הקוד החוזר ל-תקעעע. שיגרת האסטרטגיה משתמשת באחד משירותי ה-ק11ט6כ2, 4810256811 או עז+תם תסתות310500, כדי להפעיל את נקודת הכניסה 51821 שתתחיל את ביצוע הפונקציה. אם ההתקן תפוס, שיגרת האסטרטגיה יכולה להציב את חבילת הבקשה בתור הממתינים. שיגרת . הטיפול בפסקי חומרה תוכל להפעיל את נקודת הכניסה כדי שתתחיל את ביצוע הפונקציה. לאחר החזרה משירות 310256811 או עזשתםתסותות₪9810560, שיגרת האסטרטגיה בודקת את שדה הקוד החוזר בגוש הבקשה, כדי לקבוע מה היתה התוצאה של פונקציית ה-48105. * אם הקוד החוזר מצביע על שגיאה, שיגרת האסטרטגיה מציבה בשדה המצב שבחבילת הבקשה קוד המסמן שגיאה בהתקן, וחוזרת למערכת ההפעלה. * אם הקוד החוזר מצביע על כך שהפונקציה הסתיימה בהצלחה, שיגרת האסטרטגיה מציבה הודעה על כך בשדה המצב של חבילת הבקשה. לאחר מכן היא חוזרת למערכת ההפעלה. = אם הקוד החוזר מצביע על כך שהפונקציה מוכנה לביצוע השלב הבא (כלומר, היא ממתינה שיתרחש פסק בהתקן), שיגרת האסטרטגיה חוסמת את ביצוע ה-1:680+ בזמן שהיא ממתינה לפסק בהתקן. שיגרת האסטרטגיה חייבת לבדוק אות-סימון (1186) המשמש גם את שיגרת הטיפול בפסקי חומרה, לפני שהיא חוסמת את ה-6806עת:. הסיבה לכך היא, שהפסק בהתקן *כול להתרחש לאחר שה-248105 מעדכן את שדה הקוד החוזר בגוש הבקשה אבל לפני ששיגרת האסטרטגיה הספיקה לבדוק את הקוד החוזר. במקרה זה, שיגרת הטיפול בפסקי חומרה נקראת כתוצאה מפסק בהתקן, נותנת שירות לגוש הבקשה ומשלימה את הבקשה. לאחר מכן, אות הסימון שנקבע על-ידי שיגרת הטיפול בפסקי חומרה מודיע לשיגרת האסטרטגיה שהבקשה הושלמה כבר, ולכן עליה לשלוח את חבילת הבקשה למערכת ההפעלה ולא לחסום את ה-686ת+ של היישום. לגבי בקשה בשלבים, נקודת הכניסה ‏ 7א517 מציבה קוד חוזר בגוש הבקשה, כדי שיצביע על כך שהפעולה לא הושלמה. מספר בקשות לא גמורות (760068%8 שת01ת05%8ט0) השייכות לאותו כ11, *כולות להמתין בו-זמנית. ברגע שבקשה הותחלה היא מוכנה לשלב הבא. בשלב זה היא עדיין נחשבת לבקשה לא גמורה אפילו אם שירות 71 לא חזר ל-6ש611 660106 שקרא לו, כפי שהוצג בתרחיש שתואר קודם. 4. שיגרת הטיפול בפסקי חומרה נקראת כתוצאה מפסק בהתקן. 2083 5. שיגרת הטיפול בפסקי חומרה חייבת לעבד את כל גושי הבקשה הלא- גמורים בכל כ11 הקשור לפסק זה (יכול להטת :ותר מאחד). היא חייבת לקרוא לנקודת כניסה של 48105 כדי לקבל שירות דקנזתתתאז לכל גוש בקשה שהמתין לפסק בהתקן, במטרה לתת ל-112 שירות מלא. השיגרה חייבת להכין את עצמה למצב שבו שירות ‏ 518487 עידכן את הקוד החוזר בגוש הבקשה כדי להראות שהוא ממתין לפסק, אך לא חזר ל-61ש611 860106 שקרא לו. שיגרת הטיפול בפסקי חומרה חייבת לחפש גושי בקשה הנמצאים במצב זה ולכלול אותם ברשימה של אלה שצריכים לקבל שירות בזמן-פסק. 6. אם הפסק בהתקן נגרם על-ידי אחד מגושי הבקשות השייכים ל-מז1 מסוים, | שיגרת הטיפול בפסקי חומרה קוראת לנקודת הכניסה ד'ק[זתתתיזא], כדי לשרת את שאר גושי הבקשות השייכים לאותו כז1. 7. אם ל-110 אין אף לא גוש בקשה אחד שממתין לפסק, שיגרת הטיפול בפסקי חומרה קוראת לנקודת הכניסה דע זתתמזא1, כדי שתבצע פונקציה המספקת שירות ברירת מחדל לפסקים. שיגרת הטיפול בפסקי חומרה מודיעה לבקר הפסקים על סוף פסק, רק לאחר שהיא שירתה את כל גושי הבקשות הלא-גמורים השייכים לאותו 112 שגרם את ' הפסק בהתקן. אם השיגרה רואה שהפונקציה המבוקשת הושלמה, היא *כולה להתחיל את גוש הבקשה הבא המבוסס על חבילת הבקשה הבאה הממתינה בתור. לאחר ששיגרת הטיפול בפסקי חומרה השלימה את פעולתה, היא חוזרת למערכת ההפעלה. שיתוף בפסקי חומרה שיתוף בפסק חומרה בין מספר התקנים אפשרי רק כאשר ההתקנים תוכננו מראש לקבל שיתוף פסקים. התקן חייב לדעת אם הוא הפיק פסק, כדי שהוא :וכל לשתף התקנים אחרים בפסק שלו. הדבר מאפשר לשיגרת הטיפול בפסקי תוכנה לבדוק את ההתקן כדי לקבוע אם הוא דורש שירות. ההתקן *כול לשחרר את חסימת הפסקים, כאשר הפסק שלו מקבל שירות משיגרת הטיפול בפסקי תוכנה. בדגמים 50, 60, 70 ו-80 של 5/2ק, פסקי החומרה רגישים לרמת סיווג והם אינם מופעלי-סף. | שני המונחים, | "רגישים | לרמת סיווג" ו"מופעלי-סף", מתייחסים לשיטה שבה בקר הפסקים משתמש כדי לקבוע אם ההתקן הפיק פסק. כאשר בקר הפסקים זיהה פסק מהתקן, הוא שולח את הפסק ליע"מ, אשר משתמש בטבלת הווקטורים של הפסק כדי להפעיל את שיגרת הטיפול בפסקי תוכנה. בקר הפסקים מזהה פסקים מופעלי-סף בהתקן על-:ידי זיהוי של שנוי באות, כמו מעבר של אות ממצב נמוך לגבוה. האות יכול להשאר ברמת הגבוהה, ואז ניתן לאתחל אותו מבלי לגרום לבקר הפסקים לחשוב שהופק פסק נוסף בהתקן. השיטה של מעבר סף מסוים, היא שמודיעה לבקר הפסקים על פסק בהתקן. בקר הפסקים מזהה פסקים הרגישים לרמת טיווג בהתקן על-ידי זיהוי של רמה מסוימת, או ערך מסוים באות. כל זמן שהאות נשאר באותה רמה, בקר הפסקים מאמין שיש צורך לשרת את הפסק. רק כאשר *תבצע אתחול (26566) של האות מרמה זו, יפסיק בקר הפסקים לנסות ולהתמודד עם הפסק. במלים אחרות, לגבי פסקים הרגישים לרמת סיווג, יש לבצע את האתחול של הפסק בהתקן. בדרך זו ההתקן *אתחל את האות שלו לבקר הפסקים. שיגרת הטיפול בפסקי תוכנה חייבת להודיע על סוף פסק לאחר שהוסר מצב הפסק בהתקן. *כול לקרות מצב שבו 24 הודעת הסוף פסק נשלחה לבקר הפסקים לפני שהתבצע אתחול של מצב הפסק. במקרה כזה האות *היה עדיין ברמה שמגדירה פסק לבקר הפסקים וכתוצאה מכך בקר הפסקים ישלח שוב את הפסק ליע"מ. בתרשים 50 תמצא הסבר של השלבים בתהליך זה. בדגמים 50, 60, 70 ו-80, לכל פסקי החומרה יש אפשרות להיות משותפים למספר התקנים. עם זאת, ישנם מספר מצבים שבהם שיתוף פסקים אינו מעשי. לדוגמה, 05/2 אינה מאפשרת למספר שגרות המטפלות בפסקים להתחלק בפסק של שעון המערכת (0 סַא1) מכיון שהוא חייב לעמוד לרשות יישום 205 בסביבת 5. דבר דומה קורה כאשר ה-67ש671 669166 ב-025/2) משתמש ב-3105 בסביבת 5 כדי לבצע עיבוד בזמו-פסק שיתמוך בק/5 של יישום 2005. במקרה זה אסור ל-ז00100 6069106 לשתף אחרים בפסק, כי ה-2105 מניח שהוא הבעלים של עיבוד הפסק. בנוסף לכך ההתקן עצמו *כול למנוע שיתוף בפסק שלו. למשל, אס ההתקן מפיק פסקים לפני ששיגרת הטיפול בפסקי חומרה הותקנה, או שלא ניתן להפסיק בו את הפקת הפסקים, לא ניתן להתחלק בפסק עם התקן אחר. אם התקן מפיק פסק לפני שהשיגרה לטיפול בפסקים הותקנה, אז 05/2 חייבת למסך את הפסק הזה, כי אין שום דרך לאתחל את מצב הפסק בהתקן. אם ההתקן אינו מפסיק להפיק פסקים, אפילו אם השיגרה לטיפול בפסקים חדלה לפעול, 05/2 חייבת למסך את הפסק כי אין אף מנגנון שיכול לאתחל את ההתקן. אם ההתקן וה-:6ט011 660106 לא :היו מתוכננים לקבל שיתוף פסקים, לא ניתן יהיה לממש שיתוף פסקים בין מספר התקנים. כאשר ה-ז6ט1ז6 660166 רושם את נקודת הכניסה לשיגרת הטיפול בפסקי חומרה, הוא חייב להצהיר הן על סוג הפסק והן על היכולת להתחלק בפסק. אם ה-67ש671 660106 מציין שהוא איגו רוצה להתחלק בפסק, 05/2 נותנת לו זכויות בלעדיות על:ו. אם ה-ז07100 660106 מציין שהוא יתחלק בפסק, 05/2 מאפשרת רישום של שגרות אחרות לטיפול בפסקי חומרה המצביעות על כך שהן רוצות להתחלק בפסק. אפשר להגיד ששיתוף פסקים דורש רמה מסוימת של שיתוף פעולה מצד ה-660106 67. ניתן גם להבין שהן ה-011061 660106 2005 והן יישום ה-205 אינס יכולים להתחלק בפסקי חומרה, במיוחד מאחר שביצוע בסביבת ‏ 005 מושעה בכל פעם שהמפעיל מעביר את סביבת ה-005 לרקע. . התקן אחד או יותר מאתחלים את אות הפטק. בצורה זו הם מתכוננים להודיע לבקר הפסקים אודות פסק. התקן אחד או יותר מבצעים אות פסק ברמה שמזהה את הפסק לבקר הפסקים. בקר הפסקים שולח את הפסק ליע"מ. היע"מ גורמת לביצוע של שיגרת הטיפול בפסקים. שיגרת הטיפנל בפסקים בודקת את ההתקן כדי לקבוע אם יש בו פסק שממתין לטיפול. אם נכון הדבר, היא משרתת את ההתקן אשר מאתחל את מצב הפסק בתוכו (ועל-:די כך גורם לאתחול האות בבקר הפסקים). לאחר מכן היא שולחת הודעת סוף פסק לבקר הפסקים. לאחר קבלת "סוף פסק", בקר הפסקים שולח את הפסק ליע"מ אם אות הפסק עדיין מצביע על כך שפסק ממתי|. אם להתקן אחר יש פסק שלא קיבל שירות כאשר נשלחה הודעת "סוף פסק", ההתקן ממשיך לשלוח לבקר הפסקים את האות ברמה שמזהה פסק. תרשים 50. פסקים רגישים לרמת סיווג 205 שגרות שונות לטיפול בפסקי חומרה, הרוצות להתחלק באותו פסק, חייבות למלא אחר נהלים מסוימים. שיגרת הטיפול בפסקי חומרה אחראית לתיחקור ההתקן שלה כדי לבדוק אם הוא גרם לפסק. אם ההתקן לא גרם לפסק, שיגרת הטיפול בפסקי חומרה חייבת לחזור למערכת ההפעלה ולהצביע על כך שהפסק אינו שייך להתקן שלה. בנוסף לכך, אסור לשיגרת הטיפול בפסקי חומרה לשלוח הודעת "סוף פסק" כי היא לא נתנה שירות להתקן שלה. אם ההתקן שלה גרם את הפסק, השיגרה חייבת לבצע את הפעולות הבאות: - לשרת את ההתקן שלה. - לאתחל את מצב הפסק בהתקן. - לשלוח הודעת "סוף פסק" מהר ככל שניתן. - להודיע למערכת ההפעלה, כאשר היא חוזרת אליה, שהיא הבעלים של הפסק. מערכת ההפעלה מנהלת רשימה של שגרות לטיפול בפטסקים עבור כל פסק חומרה. מערכת ההפעלה תקרא לכל שיגרה ברשימה, עד אשר היא תמצא את זו שתטען לבעלות על הפסק. אם לא נמצאה שיגרה כזו, 05/2 תמסך את הפסק. הסיבה לכך היא שאין כל מנגנון שהוא שיכול לאתחל מצב הפסק של פסקים רגישים לרמת סיווג, וללא שימוש באמצעי קיצוני זה, בקר הפסקים היה ממשיך לשלוח את הפסק למערכת. איך ללצור תמווחם אהוס המתאים ל-05/1 תכנית ?106 669106 שונה מתכנית **שום במספר נקודות, וכוללת את המאפיינים הבאים: * אינה *כולה להיות תהליך בפנ?* עצמו. = נמצאת ברמת הרשאה של גרעין מערכת ההפעלה, ולא ברמת ההרשאה של היישום. = אינה *כולה לבצע קריאות לפונקציות קישור דינמיות. = *כולים להיות בה סגמנט נתונים אחד וסגמנט פקודות אחד. * הסגמנטים ח;*בים להיות מקושרים, ולהופיע בסדר מסו*ם בקובף ה-5א8. אינה מספקת את סגמנט המחסנית שלה. הסגמנטים חייבים להיות מקושרים כספריה ולא כיישום. יכולה לקבל סגמנטים נוספים בתנאים מסוימים. חייבת להכיל כותרת התקן אחת לפחות. כותרת ההתקן חייבת להיות האובייקט הראשון המוגדר בסגמנט הנתונים. ע6עןץ 660166 אינו יכול להיות תהליך בפני עצמו, והוא פועל בשמו של התהליך ביישום. בזמן משימה, כאשר הוא מטפל בחבילת הבקשה שהופקה על-:די בקשת הק/פ של הישום, ה-ת6ש6?1 660106 מתבצע כתת-שיגרה שלו. כאשר 7 6601606 מטפל בפסק של התקן, הוא מתבצע מחוצ לגבולות של התהליכים במערכת. פרט למאפיינים אלו יש לו מספר מאפיינים של תהליך: * יש לו אפשרות מיעון לסגמנטים של הפקודות והנתונים שלו. יש לציין שהדבר נעשה דרך טבלאות 02'7, ולא דרך טבלאות ז'כ,1. *" :כול להיות הבעלים של ז'כרון, אך זה ז'כרון פיסי ולא זיכרון המחולק לסגמנטים. 206 *" *כול להיות בעלים של אתתי 8%1ת2, כי אלה יכולים להיות מוגדרים בסגמנט הנתונים שלו. פרט למאפיינים אלה הדומים לאלה של תהליך, אפשר להגיד שה-67ש6:1 660166 דומה יותר למודול ספריה ולא לתכנית *ישום. תכנית 61167 060106 פועלת ברמת הרשאה של גרעין מערכת ההפעלה ולא של היישום, והיא מותקנת כחלק של מערכת ההפעלה בזמן התיחול הכללי של המערכת. לאחר מכן מערכת ההפעלה קוראת לתכנית ז6ט1ז0 660106 כדי שתבצע משימות 5/0 בשמו של חיישום. למעשה ניתן לראות בתכנית זו הרחבה של מערכת ההפעלה. 6 660106 אנו יכול לבצע קריאות לפונקציות קישור דינמיות. הגבלה זו מוטלת עליו כי הוא אינו תהליך ואינו נמצא ברמת הרשאה של הישום. אולם *שנו פרק זמן שבו ה-68ש611 660106 :כול לבצע קריאות לפונקציות קישור דינמיות בקבוצה מוגבלת של מישקי קישור דינמיים. דבר זה מתרחש בזמן התיחול של ה-67ש651 166ט66. בזמן שמערכת ההפעלה קוראת לו עם חבילת הבקשה %11א1, הוא מתבצע למעשה כתהליך מיוחד של המערכת. הוא מקבל מעמד זמני מיוחד הדומה ליישום, וכך הוא *כול להשתמש במישקי התכנות המאפשרים קישור דינמי. 767 660106 יכול להכיל רק סגמנט פקודות אחד וסגמנט נתונים אחד, אשר הגודל של כל אחד מהם :*כול להגיע עד ל-2א64. הטכניקה של שמירת כל הפקודות בסגמנט אחד (ושימוש בסגמנט יחיד לנתונים) ידועה בשם "המודל הקטן". במלים אחרות, ה-67ש611 660106 מבצע קריאות קרובות משיגרה אחת לאחרת. הסגמנטים של ת6ש611 660166 חייבים להיות מקושרים, .כך שהם יופיעו בסדר מסוים בקובף 8%₪. המערך של קוב 8א%₪ מתחיל בכותרת שבעקבותיה באים הסגמנטים. סגמנט הנתונים חייב להופיע ראשון ובעקבותיו בא סגמנט הפקודות. טידור זה דומה לזה הנהוג בתכנית 68ט611 869106 ב-₪05 כאשר ההבדל היחיד הוא בכך שהתכנית ב-05/2) היא קובצ ₪א58%. בתרשים 51 תמצא שרטוט של מערך קובף ה-5א2 של 0ט671 166ש66. כותרת הקובצ טא סגמנט נתונים סגמנט פקודות סגמנט נוסף סגמנט נוסף תרשים 51. מערך קוב ה-0%₪ של ה-זסט1ז6 660106 207 לתכנית :61160 106ַט660 אין סגמנט מחסנית, כי היא פועלת בדומה לתת- שיגרה: משתמשת במחסנית של התכנית שקראה לו. מערכת ההפעלה מספקת מחסניות| לפעולות הן בזמן-משימה והן בזמן-פסק. שיגרת הטיפול בפסקי תוכנה רצה במחסנית של יישום ה-205. בכל המקרים, 0:16 860166 חייב לדאוג שהשימוש במחסנית *היה מינימלי. הסגמנטים של 6ט6"1 106ַ660 חייבים להיות מקושרים כספריה ולא כיישום. תכנית 6ש61 0860106 דומה לתת-שיגרה, אשר פועלת מטעמו של ה-680זת+ שקרא לה וגם משתמשת במחסנית שלו. בהקשר זה, לתכנית ש6ש671 6860106 ב-2//) יש מאפיינים הדומים לחבילת ספריה. תכנית הקישור מכירה שני סוגים של תכניות, יישומים וספריות. ה-ז61106 660106 דומה *ותר לתכנית ספריה מאשר לתכנית *ישום. תכנית 671067 6601606 יכולה להכיל סגמנטים נוספים מלבד אלה של הפקודות והנתונים, | אבל רק בתנאים מסוימים. במקרים אלה, יש צורך למקם את הסגמנטים הנוספים בסוף קוב ה-₪א8%, לאחר סגמנט הפקודות (ראה תרשים 1 ה-67ש611 660106 *כול להתייחס לסגמנטים אלה רק בזמן התיחול שלו, כלומר רק בזמן שהוא מעבד את חבילת הבקשה תא1. לאחר שהוא חוזר מהתיחול, מערכת ההפעלה מבטלת את הסגמנטים הנוספים ושומרת רק את שנל הראשונים, | סגמנט הפקודות וסגמנט הנתונים. | ה-זַ6ש6:1 660106 משתמש בסגמנטים הנוספים כסגמנטים לנתונים, אשר מכילים בד"כ הודעות למפעיל. בזמן התיחול, ה-ז6ש011 660106 *כול להשתמש באמצעים לטיפול בהודעות כדי להציג הודעות למפעיל כדי לציין למשל אם התיחול עבר בהצלחה, או לא. בתכנית 0?1/6 660166 חייבת להיות כותרת התקן אחת לפחות, אשר מזהה את ההתקן ל-05/2. המבנה שלה דומה לכותרת ההתקן הנמצאת ב-67ש0671 660106 ב-2005. יש מספר שדות בכותרת ההתקן שיש צורך להגדיר. בתרשים 52 תראה תרשים של כותרת ההתקן ב-05/2. יש צורך לתחל את הכותרת הבאה (1168007 %א6צ1) בערך דמה (1שם) (1- או מעעתת). 7 6 5 3 2 1 כתובת חסית של מאפיין הכותרת הבאה שיגרת ההתקן האסטרטגיה .. או *חידות תרשים 52. כותרת ההתקן 208 מאפיין ההתקן (%6שכ1ז8+0 126/106) מציין את התכונות של ההתקן וכולל בין השאר: : * אם ההתקן הוא התקן בלוקים או התקן תו. * אם ההתקן הוא התקן בלוקים, -‏ האם ה-61106 660106 משתמש בפרמטר הבלוק של ה-8105, או במתאר אחר כדי לזהות את המצע המגנטי. - האם ה-67ש6"1 660106 תומך במצע נתיק. * אם ההתקן הוא התקן תו, - האם שם ההתקן מוגן על-ידי מערכת הקבצים. - האם ה-ת6ש6"1 660166 רוצה שמערכת הקבצים תעביר לו בקשות אפס ו-6058. * האם ה-6ש6"1 660166 שהוא הבעלים של ההתקן שייך ל-05/2. * האם ההתקן הוא התקן מערכת, כמו שעון, או שהוא פלט או קלט סטנדרטי. הכתובת היחסית של שיגרת האסטרטגיה (211806) ע5%078%62) הינה מתחילת סגמנט הפקודות עד לנקודת הכניסה לשיגרת האסטרטגיה. שם או יחידות (6ומתאא 8685 עס), מכיל את השם של התקן התו או התקן הבלוקים הנתמך על-:ידי ה-ז0ש611 669106. השם חייב להיות מיושר לשמאל (כלומר מתחיל בכתובת היחסית 41). שם של התקן תו חייב להיות כמו שם קובף, במחרוזת 45611 ומוגבל לשמונה תווים (לא כולל ההרחבה). אולם, לשם של ההתקן :יש עדיפות על השם שק הקובף בכל הנוגע לפתיחת אובייקט בעל שם (עם ת6ק050כ). זאת אומרת, שלא ניתן לקובצ שם זהה לשם של התקן התו, כי מערכת הקבצים תפתח תמיד את ההתקן לפני שהיא תנסה לפתוח את הקוב. כדי למנוע התנגשות בין שמות הקבצים לבין שמות התקני התו, יש לתת להתקן שם המכיל תווי 45011 שאינם שכיחים, כמו הסימן "8" למשל. כותרת ההתקן חייבת להיות מבנה הנתונים הראשון בסגמנט הנתונים. במלים אחרות, היא חייבת להתחיל בכתובת *חסית 0 בסגמנט הנתונים של ה-66166 ץ6. בזמן שתכנית 6ש6"1 860106 מוטענת, 05/2 בוחנת את כותרת ההתקן, הערוכה כמישק עבור למערכת ההפעלה. 67 660106 תומך בד"כ בהתקן אחד, אולם הוא יכול לתמוך גם במספר התקנים. התמיכה בהתקני תו רבים נעשית בעזרת טכניקה המאפשרת שימוש במספר כותרות, כאשר לכל התקן יש כותרת אחת. התמיכה בהתקני תו אחדים נעשית על-ידי ציון מספר ההתקנים בשדה שבכותרת ההתקן. במקרה של מספר כותרות, ה-6?16 860106 חייב לשרשר אותן באמצעות שדה "הכותרת הבאה", ובכותרת האחרונה להשאיר את השדה הזה ריק. כותרת ההתקן מאפשרת ל-זַ06:16 6601606 של התקן התו להוסיף התקן תו חדש לרשימת ההתקנים במערכת, או להחליף התקן קיים שהוכנס על-ידי 660166 67" שהוטען קודם. המפתח להחלפת התקן קיים נמצא בכותרות של של ה-67ש671 660106 הטוענים לבעלות על ההתקן. אם שם ההתקן ומאפיניו הנמצאים בכותרת ההתקן החדשה דומים לאלה הנמצאים בכותרת ההתקן הישנה, אז ה-68ש011 660106 שהוטען קודם מתבקש לוותר על ההתקן שלו, או להתקין אותו מחדש. זאת אומרת שהוא חייב לשחרר את כל המשאבים שהוא הקצה בשמו של ההתקן, כמו פסק בחומרה. רק לאחר שהוא עשה זאת, *וכל ה-6601606 167 החדש לקבל את הבעלות על ההתקן ועליו לתחל אותו. 209 הטכניקה של החלפת התקני תו קיימים שימושית במיוחד כאשר משפרים את התמיכה בהתקני התו הסטנדרטיים. 05/2 תומכת בצורה אוטומטית בהתקני תו סטנדרטיים כמו, המקלדת (23%א) והמדפסת ,1271(‏ 2דק, ‏ 173). התמיכה בהתקנים אלה נעשית בעזרת קבוצה בסיטית של 675ט671 060106 המג'עים יחד עם מערכת ההפעלה. 675ש071 660106 חדשים, או משופרים, *כולים להחליף את אלה המגיעים עם מערכת ההפעלה כדי לתמוך בפונקציות חדשות, או לשפר את הקיימות. מאידך, :0ט61[1 660106 התומך בהתקני בלוקים *כול רק להוסיף התקנים לרשימת ההתקנים במערכת. הסיבה לכך היא שאין שום מנגנון שיכול לאפשר ל-ז01106 660106 זה לציין איזה מבין התקני הבלוקים הוא רוצה להחליף. ץז 660106 זה מצביע על מספר ההתקנים שהוא תומך בהם בזמן התיחול שלו, ובהתאם לכך מוקצים לו אותיות כונן. הסדר שבו מופיעים ה-660166 9 בקובף ה-001%210.5%5 קובע את הסדר שבו *וקצו אותיות הכונן. התקנים סטנדרטיים ב-05/2 מספר 611088 669106 מסופקים יחד עם 05/2. ניתן לחלק אותם לשת: קבוצות: אלה שנטענים אוטומטית יחד עם מערכת ההפעלה, ואלה שהמשתמש בוחר בהם על-ידי הצבת המשפט >108/מכ בקובא ה-10.5%5עא000. בתרשים 53 תמצא רשימה של 678ט6"1 860106 אלה. שעון בזמן התיחול, מערכת 025/2) מתקינה בצורה אוטומטית את ה-ז0ש671 660166 של השעון. ה-ז61106 660106 של השעון הוא מסוג המיועד להתקני תו. הוא מנהל את שעון ה-01/05, שהוא ההתקן המתזמן פונקציות של מערכת הקשורות בזמן. ה-ז0ט671 660166 תומך בק/9 של היישום דרך שירותי השעון הפנימי של 2). יישום משתמש בד"כ במישק 20556028601'186 כדי לכתוב להתקן השעון. יישום יכול לקבל את משתני הזמן של המערכת, כמו תאריך/שעה וקצב התקתוק של השעון, על-ידי פניה לסגמנט המידע הגלובלי. :ישום *כול גם להשתמש במישקי מערכת הקבצים, כמו 2058080 ו-050/:166, כדי לבצע ק/5 "ישירות" לשעון. כתיבת נתונים לשעון וקריאה ממנו חייבים להיות מאורגנים בקבוצות של ששה בתים. דיסק/דיסקט בעת תיחול המערכת, 05/2 מתקינה בצורה אוטומטית את ה-67ש611 660106 המטפל בדיסק/דיסקט. ה-:0ט671 660106 של הדיסק/דיסקט הוא מסוג המשמש התקני בלוקים ומיועד לנהל את כונני הדיסקטים ואת הדיסקים הקשיחים. לכל אחת מהמחיצות ניתן להכנס עם אות כונן נפרדת. התמיכה בק/פ של היישום נעשית באמצעות מישקי מערכת הקבצים. 20 מסך בזמן תיחול המערכת, 025/2) מתקינה בצורה אוטומטית את ה-67ש011 660106 המטפל במסך. ה-6ט6:1 660106 של המסך הוא מסוג המשמש התקני תו. הוא מחליף אוז החלק של תוכנת 01167 660106 של 005 המטפלת בפלט. הוא תומך בק/פ של היישום באמצעות מישקי תת-מערכת 10/. מקלדת בזמן התיחול הכללי במערכת, 05/2 מתקנה בצורה אוטומטית את ה-166ש660 ע66 המטפל במקלדת. ה-67ש6?1 660106 של המקלדת העו מסוג המשמש התקני תו. הוא מחליף את החלק המטפל בפלט ב-ז6ט611 860106 המתאים של 5. ה-ז6118 660106 של המקלדת תומך בק/פ של היישום דרך מישקי תת-מערכת ה-כ5א, ומאפשר גס לתכניות פיקוח (זס%ותסות) להתקני תו לבחון את ההקשות, כך שיישום יוכל להשתמש בתכנית פיקוח כדי ליירט את נתוני המקלדת. מדפסת בזמן התיחול הכללי במערכת; 05/2 מתקינה בצורה אוטומטית את ה-660166 ץ6ץןץ המטפל במדפסת. ה-68ש611 669106 של המדפסת העו מסוג המשמש התקני תו, והוא מנהל את המדפטות המקביליות: 1דק, 72 ו-1073. ה-61106 660106 של המדפסת תומך בק/פ5 באמצעות מישסי מערכת הקבצים ובצורה לא ישירה גם דרך תת-מערכת ה-52001 %תוזק. ה-ז6ט6"1 860166 של המדפסת מאפשר גם לתכניות פיקוח (ז160תסונ) של התקני תו לבחון את הפלט הנשלח למדפסת. על כן :ישום *כול להשתמש בתכנית הפיקות הזו כדי לל*רט את נתוני ההדפסה. עסט1ע6 660106 בסיסיים| ע6ט10ע6 800106 ניתנים להתקנה שעון עכבר דיסקט/דיסקט מחוון הציור מסך תקשורת אסינכרונית מקלדת דיסק בפועל מדפסת דיסקט ח*צוגנ: 1 04 תרשים 53. ה-6:100:8 660106 הסטנדרטים של 05/2 21 עכבר ה-ז01106 | 660106 של העכבר מותקן על-ידי המשפט -₪₪0108 בקוב 0.5 ה-67ש671 660106 של העכבר הינו מסוג המשמש התקנ* תו, והוא מנהל את העכבר המקבילי או את העכבר הסידרתי, בהתאם לקביעה בקוב ה-5צ10.5עא60. ה-ז01106 660106 של העכבר תומך בק/פ5 של היישום באמצעות תת-מערכת ה-1011. *ישום 2005 *כול להשתמש במישק ת33 %ת1 2005 לצורך ביצוע ק/פ. ה-ז6ש611 669106 של העכבר תומך בתכניות פיקוח (ז160מסמ1) להתקני תו, כך שיישום יוכל להשתמש בתכנית פיקוח כדי ליירט את נתוני העכבר. מחוון הציור ה-ז106ז0 660106 של מחוון הציור מותקן על-ידי המשפט =68זשתכ בקוב 5ע א 60. ה-ז6ט671 660106 של מחוון הציור הינו מסוג המשמש התקני תו, והוא מספק מישק ל-6ט011 660106 של העכבר כדי שזה :וכל לצייר בזמו פסק סמן על המסך. מחוון זה *כול להיות ברירת מחדל, או כזה המסופק על-ידי היישום. מחוון הציור אינו התקן פיסי לצורך ביצוע ק/5 ולכן הוא אינו תומך בק/פ של היישום. תקשורת אסינכרונית ה-ז6ש0611 669106 של התקשורת האסינכרונית מותקן על-ידי המשפט =168שחס בקובצ 5צ002%210.5. ה-ז6116 669106 של התקשורת האסינכרונית הינו מסוג המשמש התקנ* תו. הוא תומך בהתקנים הסידרתיים 00/11 ו-00012 במחשבי 27 ו-1א דגם 286 ובהתקנים הסידרתיים 000/1, 00112 ו-001/3 ב-25/2 דגמים 50, 0, 70 ו-80. ץ6 660106 זה מספק ליישומים מישק 25232-6 באמצעות 106688. השירותים שהוא מספק כוללים: תורי שידור וקליטה, בקרה אוטומטית על אותות הבקרה של המודם ובקרה על זרימת זרם הנתונים לגבי שידור וקליטה. יישום יכול להשתמש גם במישקי מערכת הקבצים, כמו 2058686 ו-050/:156ש, כדי לבצע ק/9 להתקן הטסידרתי. יש להשתמש ב-07ש611 660106 זה עם תכנית השירות לטיפול בתור למדפסת, אם המדפסת הסי:דרתית היא זו שאליה מנותב התור. דיסק בפועל ה-ז0ט6:1 660106 של הדיסק בפועל מותקן על-ידי המשפט =0108מכע בקובא 5 6. ה-067ט6:1 6860106 של הדיסק בפועל הינו מסוג המשמש התקני בלוקים והוא מנהל התקן בלוקים המוגדר בזיכרון המערכת. 6ט071 660106 זה תומך בק/פ של היישום דרך מישקי מערכת הקבצים, בדומה להתקן בלוקים רגיל. 212 דיסק חיצוני ה-67ש071 660106 של הדיסק החיצוני מותקן על-ידי המשפט >220/108 בקובצ 5 והוא מגדיר התקן לוגי. התקן לוגי זה *כול להיות התקן קיים, ואז מספר אותיות כונן מתייחסות לאותו כונן דיסקטים פיסי. ניתן גם להשתמש בהתקן דיסקים חיצוני למערכת, כמו כונן לדיסקטים 3.5 אינצ'. 67 660106 זה תומך בק/5פ של היישום דרך מישקי מערכת הקבצים, כמו כל התקן בלוקים. 1 ה-67ט071 | 600106 של 8%51 מותקן על-ידי המשפט >20/108ש בקובא 85 67106 660106 זה שייך ל-2005 והוא רצ רק בסביבת 05 הפועלת ב-05/2. הוא מספק מנגנון* המרחיב את השליטה במסך ובמקלדת באמצעות הוראות מיוחדות לשליטה על מיקום הסמן, על המאפיינים של התווים המוצגים ועל ההגדרה של המקשים. פונקציות ה-81%51 משולבות בתת-מערכות ה-10/ וה-380 המוכללות ביישומי 05/2. 4 ה-ז6ט671 660106 של ה-₪08 מותקן על-ידי המשפט >מ0]06עע בקובצ 5 ש6/ש071 660106 זה שייך ל-05כ, ועל כן הוא פועל רק בסביבה זו ב-025/2). הוא תומך במישק לאוגר 208 ביישומי 005כ, והמהווה הרחבה של מישק התצוגה ת10 6ת1 8105. המישק לאוגר ₪022 מאפשר ליישומים גרפיים לרוץ בסביבת 205 בצורה כזו, ש-25/2) י*כולה לשמור ולשחזר את המסך בכל פעם שהמפעיל עובר מהיישום הגרפי ואליו. *ישום 05/2 *כול גם הוא לבצע פעולות גרפיות ע"י כך שהוא נכנס למאגר תצוגה פיסי עם +ש50עת1006%2ע. את המסך הוא יכול לשמור ולשחזר עם 1058768001880081%/. התיכה של 05/5 ב-פתמשזחם 68זעטת של 205 - כפי שראית, ניתן להשתמש במספר פז6ט1ז6 660106 של 2025 תחת 05/2, עם מספר הגבלות. כדי ש-61106 660106 השייך ל-205 *וכל לרוצ בסביבת הביצוע של 2025 תחת 05/2, הוא חייב למלא אחר הכללים הבאים: * לטפל בהתקני תווים בלבד. * לבצע ק/פ בשיטת התיחקור בלבד. * אסור שתהיה לו תלות בתזמון. * אסור לו להפעיל אפילו אחת מהקריאות 21 6ת1 2025 בזמן התיחול שלו. רק יישומי 2005 *כולים להשתמש בהתקן המנוהל על-ידי :07106 060106 השייך ל-2005. יישומי 05/2 חדשים אינם רשאים לבצע 5/2 להתקן זה. ה-ז67106 060106 השייך ל-2025 מותקן בעזרת מנגנון הזהה לזה שב-05כ, דרך המשפט =103/מ בקובצ 5צ10.5עא00. לאחר שהקובצ הוטען לזיכרון, מתבצע עליו תיחול במצב האמיתי של ה-80286. 208 פרק 7 גישות מתקדמות בתכנות בפרק זה אנו מביאים כמה מבין הגישות היותר מתקדמות בתכנות ב-05/2, ונדון בפירוט בתכנית הקישור של 05/2 (ז6אם11 05/2) שהוצגה בפרק 4. הדיון מתחיל בדרך שבה יש להשתמש בתכנית הקישור למטרות של :צירת מודולים ברי-ביצוע של היישום (מא₪). בדיון זה אנו עוסקים גם באפשרות להגדיר סגמנטים של נתונים ופקודות כנטענים מראש, או כנטענים לפי דרישה. בחלק השני, ניתנת סקירה מעמיקה על המנגנון הקרוי "קישור דינמ:" ומוצג השונ בעו לבין מנגנוני הקישור הסטטיים. אנו מתארים את הגישות של קישור דינמי בזמן טעינה ובזמן ריצה לגבי שגרות המוגדרות חיצונית, ומראים איך ניתן להשתמש בתכנית הקישור כדי לבנות ספריות פרט"לות המקושרות בצורה דינמית. בחלק השלישי אנו מביאים דוגמת תכנות המציגה כמה מבין האפשרויות שדנו בהן בפרק זה. קשור של ישום בפרק 4 הבאנו דוגמה, שבה הפעלנו את תכנית הקישור של 05/2. המקור העיקרי של קלט לתכנית הקישור הינו מודולי-יעד שנוצרו על-ידי מהדר של שפה מסוימת, או שנוצרו בשפת אסמבלר. תכנית הקישור משתמשת במודולים אלה כדי ליצור מודולים של היישום אשר מערכת ההפעלה *כולה לטעון ולבצע. אנו נתייחס להלן למודולים של היישום הניתנים לביצוע כמודולים של תכניות (1100100165 ות8*אַסעק). בהשוואה לסביבת התכנות ב-205, סביבת התכנות ב-05/2 גמישה יותר מבחנת מבנה התכנית ובזור של מרכיבים. תוך כדי תיאור הפונקציות של תכנית הקישור, אנו מכסים רבות מהאפשרויות והבקרות החשובות העומדות לרשות המתכנת כדי לבנות מודול של תכנית תוך שימוש בתכונות הגמישות של 05/2. הבה נסתכל תחילה בתחביר של שורת הפקודה המפעילה את תכנית הקישור (ראה תרשים 54). אנו רוצים לכסות נושאים נוספים שלא הובאו בדוגמה בפרק 4. ([ קפפם] ,[1116 60058016א6] ,11108 001666 אאדן [116+ מ1010םת8011 ₪06016] ,[1165? עע8עס11] [תסצ6סס/] [מסצספס/ ] ,ו[קוב> מיפוי] ,[קובצ ניתן לביצוע] ,קבצי יעד אאךן ,[קובצ הגדרת מודול] ,[קבצי ספריה] [אופציה/] [אופציה/] תרשים 54. תכנית הקישור - התחביר של שורת הפקודה 214 קבצי יעד תכנית הקישור קבצי ספריה של 05/2 קובצ ממופה קובצ הגדרת מודול עסאתצן תרשים 55. קבצי הקלט והפלט של תכנית הקישור קובצ ניתן לביצוע דנו כבר בפרמטרים של תכנית הקישור העוסקים בקבצי יעד, קבצים ברי-ביצוע וקבצי ספריה. נקודה חשובה מאוד שאינה מצוינת בדוגמה הקודמת היא, שניתן לרשום *ותר מקוב%ייעד אחד בפרמטר הראשון. תוספת זו מאפשרת לקשר מספר מודולי-יעד למודול יחיד הניתן לביצוע. ניתן להבין מכך, שניתן לא רק לפתח תכנית בצורה מודולרית, אלא שניתן גם להרכיב תכנית שחלקיה כתובים בשפות שונות. לדוגמה, החלק הגדול של היישום *כול להכתב בשפת 6, ואת השגרות הרגישות לזמן ביצוע אפשר לכתוב בשפת ע1סן550. קוב הגדרת מודול הינו מאפיין של תכנית הקישור של 05/2, אשר מכיל מידע שמשתתף בתהליך הקישור. הוא מספק קלט לתכנית הקישור בנוסף לקלט המתקבל מהפרמטרים בשורת הפקודה. קובף זה אינו חובה כאשר מבצעים קישור של מודול תכנית. הוא מאפשר למתכנת לעקוף את ברירות המחדל של תכנית הקישור לגבי מאפיינים מסוימים של סגמנטים (כמו גודל הסגמנט במחסנית). בתרשים 5 תמצא תרשים סכימטי של הקבצים המשמשים כקלט לתכנית הקישור. אנו משיגים שני דברים עיקריים בעזרת תהליך הקישור. הראשון, תכנית הקישור אחראית להמרת הכתובות בהפניות החיצוניות הנמצאות במודול היעד. והשני, תכנית הקישור חייבת להכניס מידע מתאים לתוך הקובצ הניתן לביצוע שיאפשר למטען ("10866) לטעון את התכנית לזיכרון. בסעיף הדן בקישור דינמי נראה, שב-25/2) המרת הכתובות בהפניות החיצוניות לשגרות הקישור הדינמי אינה מלאה עד אשר התכנית נטענת למעשה. אבל לפני שנתחיל בקישור דינמי, ‏ הבה ונראה את התכונה של 05/2 להגדיר סגמנטים נטענים מראש (761080ק), וסגמנטים נטענים לפי דרישה (6ת8מ6 םס 12080, או תס 1086 1)). סגמנטים הנטענים מראש כאשר תכנית 2025 מוטענת, כל הסגמנטים שלה מובאים לזיכרון. המטען (ע10806) משנה את הכתובות היחסיות בתכנית (שחושבו על-ידי המהדר ועל- ידי תכנית הקישור), לכתובות זיכרון שבהן היא תשתמש בעת הביצוע. תהליך זה מסת'ים לפני שהשליטה עוברת לנקודת הכניסה הראשית של התכנלת. סגמנטים של 05/2 שמוטענים לפני שהתכנית מקבלת את השליטה נקראים טגמנטים נטענים מראש (5)ת56₪00 6108060זק). ניתן להשתמש בשלושה סוג* משפטים בקובף להגדרת המודול כדי לציין לתכנית הקישור שיש צורך לטעון את הסגמנטים מראש. הם גורמים לתכנית הקישור לבנות את המידע הדרוש במודול הסופי שניתן לביצוע, כדי להורות למטען לטעון את הסגמנטים של הנתונים והפקודות מראש. 215 ניתן להשתמש במשפטי 6028 ו-478כ כדי להצביע על כך שיש לטעון מראש, בהתאמה, את כל הסגמנטים של הפקודות, או את כל הסגמנטים של הנתונים, הנמצאים במודול הטעינה. לדוגמה: כ 005 משפט זה מצביע על כך שיש צורך לטעון מראש את כל הסגמנטים של הפקודות במודול זה. כדי לציין מאפייני טעינה שונים לסגמנטים שונים במודול התכנית, יש צורך להשתמש במשפט 50/3%15. לדוגמה: 5 60501 0 02 0 ועכשיו, לאחר שהבנו את המשמעות של סגמנט הנטען מראש, הבה נדון במשמעות של "3206411 0/", או טעינה לפי דרישה. סגמנטים הנטענים לפי דרישה יישומים הופכים להיות מורכבים *ותר וילותר, ולכן ישנה נטיה לכלול ביישום לוגיקה שייתכן ויהיה בה צורך בתנאים מסוימים, אך אין בה צורך בפעילות *ומיומית של היישום. במערכת רבת משימות מאוד לא רצוי שהפקודות, שהן התוצאה של הלוגיקה הנ"ל, יהיו במערכת. הסיבה לכך היא שכאשר לא משתמשים בהן (וזה רוב הזמן) הן תופסות חלקים ממרחב הכתובות האמיתי, או ממרחב הכתובות בפועל של התכנית. ככל שהמערכת הופכת להיות עמוסה *ותר, אין אנו *כולים להרשות לעצמנו לבזבז את מרחב הכתובות של קוב הסגמנטים המועברים. מסיבה זו, 025/2) מאפשרת להגדיר סגמנטים כפי שראינו בדוגמה הקודמת. 1042080641 פירושו, שהמטען שומר ערך בורר לסגמנט זה בטבלת ה-1071 של היישום, אבל הוא איני טוען למעשה את הסגמנט עד אשר היישום צריך אותו. הצורך בסגמנט זה מתעורר כאשר מטעינים את ערך הבורר שלו לתוך אוגר הסגמנט. רק כאשר זה קורה, המטען מביא את הסגמנט מהדיסק אל הזיכרון ומסיים לערוך את מתאר הסגמנט שלו. כדי לשמור על משאבי מערכת ב-05/2, ברירת המחדל לטעינת סגמנטים היא , הן לגבי סגמנטים מכילי פקודות והן לגבי סגמנטיט מכילי נתונים. קשור דנמו קישור דינמי הענו אחד המרכיבים הבסיסיים של 05/2, אשר תורם לשיפורים רבים במאפיינים התפעוליים של המערכת. קודם הזכרנו שתכנית הקישור אחראית להמרת הכתובות בהפניות החיצוניות שבמודול היעד. קישור דינמי (שתואם!1 סוַמַאתע6) הוא מנגנוןו שמעכב את המרת הכתובות בהפניות חיצוניות אלה, עד לאחר תהליך חקישור ולכן הוא נקרא לפעמים קישור מעוכב (061860 אַתו0תום). למעשה, תכנית הקישור מציבה מידע אודות כל הפנ*ה חיצונית לקישור דינמי בתוך מודול התכנית, ובכך היא מאפשרת למטען המיוחד של הקישור הדינמי להמיר את הכתובות בהפניות החיצוניות בזמן מאוחר *ותר. הבה נסתכל על שני הסוגים של קישור דינמי ב-05/2. 26 קישור דינמי בזמן טעינה כפי שתצפה בוודאי, הכתובות בהפניות לשגרות המקושרות באופן דינמי להלן, שגרות דינמיות, מוסבות לכתובות אחרות, כאשר מודול התכנית נטען לזיכרון. ‏ זו דרך אופיעית לטפל בכתובות ההפניה לספריות של שגרות דינמיות, כפי שצינו בהקדמה יש מספר יתרונות למישק קישור דינמי בזמן טעינה (שתואת!1 8810תע6 6מנ) 10806). אחד היתרונות של מנגנון הקריאה הוא בכך, שמאותו רגע שבו התבצעה המרה של כתובת ההפניה, יש נקודת כניסה ישירה לתוך הפונקציה לכל מיי שרוצה בכך. ב-005)כ2, הגישה לרוב הפונקציות של מערכת ההפעלה מתבצעת על-ידי הצבה של מספר הפונקציה וכל הפרמטרים באוגרים והפעלה של פסק תוכנה 21. סוג זה של מנגנון דורש שפונקציית ניתוב תתבצע בּין בקשת היישום לבין נקודת הכניסה התחילית של הפונקציה הרצויה. כאשר משתמשים במישק הקישור הדינמי של 05/2, אין צורך בפונקציית ניתוב זו. כאשר מתבצעת טעינה של המודול שסוגו %2, המחוונים של ההפניות החיצוניות מצביעים ישירות על נקודות הכניסה של הפונקציות הרצויות ב-05/2. ביטול הצורך בפונקציית ניתוב במנגנון הקישור הדינמי, מהווה שיפור בביצועים של המערכת. יתרון נוסף של מישק הקישור הדעמי הוא בכך, ששפות עיליות :כולות להשתמש בו באופן ישיר. המהדר *כול להכנס *שירות לפונקציות של מערכת ההפעלה על-ידי דחיפת פרמטרים לתוך מחסנית וביצוע קריאה רחוקה. פעולה זו זהה לפעולה שבה שפת תכנות משתמשת כדי לקרוא לתת-שגרות בתוך היישום. ב-205, קישורים בשפות תכנות משמשים כדי להוציא פרמטרים מהמחסנית, לטעון אוגרים ולהפעיל פסקי תוכנה. אין צורך בקישורים אלה בשפות תכנות של 05/2. קל יותר להרחיב את התפקודיות של מישק תכנות המבוסס על מנגנון הקישור הדינמי. הוספה של פונקציה למישק שיש לו נקודת כניסה *חידה ופונקציית ניתוב, דורש שינוי בפונקציית הניתוב. | מאידך, ניתן להוסיף פונקציות המקושרות בצורה דינמית למערכת מבלי לפגוע בפונקציות מגירסה קודמת, ואין כל פונקציית ניתוב שצריך לעדכן אותה. יתר על כן, המחסנית הענה מנגנון גמיש ועקבי *ותר להעברת פרמטרים מאשר האוגרים השונים של המיקרו-מעבד הנתמכים על-ידי מערכת ההפעלה. קישור דינמי הופך את התמיכה בספריות של שגרות לקלה יותר. שגרות ספריה שמקושרות דינמית ניתנות לשינוי ועדכון מבלי לפגוע ביישומים שמשתמשים בהן. לעומת זה, תכניות שמשתמשות בשגרות ספריה המקושרות בצורה סטטית, חייבות לעבור קישור מחדש כאשר יש צורך להשתמש בגירסה חדשה של השיגרה. בקישור דיינמי, כל עוד מספר הפרמטרים לא השתנה, היישום הישן :וכל להשתמש בגירסה החדשה של פונקציית הספריה מבלי לקשור אותה מחדש. בגירסה החדשה *כולה להיות קבוצה חדשה של שגרות דעמיות התומכות ביישומים הקיימים בצורה תואמת לזו של השגרות הישנות. שגרות אלו גם יכולות לתמוך בפונקציות חדשות הנובעות מטווח מורחב של ערכים השייך לפרמטר אחד או יותר שהוגדר קודם. הדבר מקל על שיפור שגרות טפריה כדי שיתאימו לדרישות המשתמש. ולבסוף, במישק לתכנות *ישומים המקושר דינמית נמצא את כל היתרונות של ארכיטקטורה פתוחה. הארכיטקטורָה הפתוחה ב-25/2) מאפשרת ליישומים לקרוא לשגרות המקושרות דינמית שהוספו על-ידי מפתחי תוכנה עצמאיים באותה דרך שהם קוראים לשגרות שסופקו על-ידי מערכת ההפעלה. כאשר בידי מפתחי תוכנה 27 עצמאיים ‏ *ש פונקציות חדשות, הם *כולים לשווק אותן למשתמשי 05/2 כמודולים לקישור דינמי, ובכך להרחיב את האפשרויות והתכונות של מערכת ההפעלה. קישור דינמי בזמן ריצה קישור דינמי בזמן ריצה (שתואת!1] 16עה8תע0 116 מנת) הוא מנגנון, אשר מאפשר לדחות את הקשירה של הפניות חיצוניות במודול התכנית עד לאחר הטעינה. דוגמאות לתועלת שמביא מנגנון זה כוללות כל מצב, שבו **ישום רוצה לבצע עיבוד מסוים לפני שהוא מציין את שם המודול שהוא רוצה בו. לדוגמה, :ישום *כול לאפשר למשתמש, לבחור בין שיפור ביצועים לבין שיקולי ניצול זיכרון, לפני שהוא מפעיל פונקציה מסוימת. דוגמה אחרת יכולה להיות בחירה של שגרות בהתאם למאפיינים מסוימים של תצורת המערכת. כך ניתן להשתמש בדרכים שונות עם אותה קבוצה של קריאות לפונקציות מתוך *יישום *חיד. התמיכה של 05/2 בקישור דינמי בזמן ריצה נעשית באמצעות קבוצה מיוחדת של פונקציות. 20510801/100016 טוען מודול מקושר דנמית. 0507661/100016 משחרר מודול שהוטען קודס. 1005026+0700000 משיג את הכתובת של פרוצדורה המקושרת בצורה דינמית. 616ת12050261100118 משיג מקשר למודול המקושר בצורה דינמית (מודול דינמי). 1205026000806 מקבל את שם המודול הדינמי. פונקציות אלו מספקות מנגנונים המאפשרים לבצע בצורה דינמית איתור, טעינה וקישור של מודולים חיצונלים. כדי שתוכל להעריך את הגמישות בהפעלה המושגת באמצעות פונקציות אלו, הבה נבחן אותן מקרוב. 86 טשטוען מודול המקושר דינמית (להלן, מודול דינמי) לתוך הזיכרון. המודול הזה ניתן לביצוע (קובצ מאם.) ויש בו נקודת כניסה אחת או *ותר לפרוצדורות המקושרות דינמית. היישום מעביר למודול הדינמי מחוון למחרוזת 856112 המכילה את שם הקוב>ף. מסלול החיפוש בספריה משמש לאיתור המודול הדינמי במערכת הקבצים. אם הפונקציה מצליחה לטעון בהצלחה את המודול, היא מחזירה מקשר. ומכאן ואילך, שאר הפונקציות של 05/2 התומכות בקישור דינמי בזמן ריצה, משתמשות במקשר למודול ולא בשמו. אם לא ניתן לטעון את המודול הדינמי, משתמשים בשני פרמטרים אחרים של הפונקציה, כדי להחזיר את שם האובייקט שגרם לכשלון. 86 מודיע למערכת ההפעלה שהתהליך סיים להשתמש בהפניות חיצוניות לפרוצדורות בתוך המודול הדינמי. אם אף לא תהליך אחד במערכת משתמש במודול, הסגמנטים שלו ימחקו מהזיכרון. המקשר למודול משמש במקרה זה להצבעה על החודול הדינמי שיש לשחרר. 0506070600 מחזיר כתובת שניתן להשתמש בה לקריאה לפרוצדורה בתוך המודול הדדינמי. התהליך שקרא לפונקציה זו מעביר לה כפרמטרים את המקשר למודול ומחרוזת עם שם הפרוצדורה. ניתן להשתמש במנגנון אלטרנטיבי אחר כדי לציין את הפרוצדורה בתוך המודול, ובמקום להעביר את השם ניתן להעביר את מספר הפרוצדורה במודול. מספר זה הוא המספר הסידורי של הפרוצדורה בתוך המודול. 86 בודק אם המודול הדינמי הוטען כבר לזיכרון. התהליך 2|8 שקרא לפונקציה זו מעביר מחוון למחרוזת 8506112 המכילה את שם המודול. אס המודול הוטען כבר לזיכרון, מוחזר מקשר למודול. אם המודול עדין לא הוטען לזיכרון, מוחזרת הודעת שגיאה. 06 מאתר את המודול הדינמי בתוך מערכת הקבצים. לפונקציה זו מועברים כפרמטרים מקשר למודול ומחוון למאגר. שם הקובצ המלא הכולל את הכונן, המסלול, שם הקוב וההרחבה, מוחזר למאגר. יצירה של ספריית קישור דינמי נחזור בקצרה על מה שלמדנו עד עתה: קישור דינמי בזמן טעינה ובזמן ריצה. קישור | דינמי בזמן טעינה מציץן מצב שבו שגרות דעמיות *וטענו בעת שתכנית | היישוס מוטענת. בזמן הטעינה, מטען הקישור מציב ערכים בכל הכתובות במודול התכנית, כדי לאפשר קשר לשגרות ספריה דינמיות. קישור דינמי בזמן ריצה מציין מצב, שבו שגרות דינמיות נטענות ומקושרות לפי דרישה של היישום, המשתמש לצורך זה בקבוצה מיוחדת של פונקציות 05/2. מנגנוני הקישור הדינמיים חיוניים באותה מידה הן בזמן טעעה והן בזמן ריצה. ספריות הקישור הדינמי לזמן טעינה ולזמן ריצה נבנות באותה דרך. מא , אתססתקצא (מודול תכנית) כותרת של קובצ מאם פקודות בשפת מכונה ונתונים תרשים 56. קובצ המכיל מודול תכנית 209 תכנית הקישור של 05/2 בונה מודול תכנית עם מבנ* נתונים ההכרחיים לתמיכה בקישור דינמי. מבני הנתונים החשובים שנדון בהם, הם שם קובאצ של מודול דינמי, ושם הפונקציה (או המספר הסידורי שלה) המצביעה על פונקציה מסוימת המקושרת בצורה דינמית. תרשים סכימה של מודול התכנית המכיל את מבני הנתונים הללו נמצא בתרשים 56. תכנית הקישור של 05/2 :כולה לבנות מודול דינמי שמכיל את הספריה של השגרות שהקישור לגביהן מעוכב עד זמן טעינה, או עד זמן ריצה. אחת הדרכים לתאר מודול המקושר דינמית מוצגת בתרשים 57. כעת, אם נסתכל במודולים אלה לאחר שהם הוטענו לזיכרון ונוצר הקשר ביניהם, נגיע לדיאגרמה הנראית בתרשים 58. צתהתם דצו (מודול מקושר דינמית) כותרת של קובצ ,זע נקודת הכניסה של פונקציה 1 נקודת הכניסה של פונקציה 2 נקודת הכניסה של פונקציה 3 תרשים 57. קוב המכיל מודול המקושר דינמית 220 צתהתמד זצא מא . אהתססתקצון (מודול לקישור דינמ*) (מודול תכנית) כותרת של קובא מאם כותרת של קוב ,זכ נקודת הכניסה של פונקציה 1 פקודות בשפת מכונה ונתונים נקודת הכניסה של פונקציה 2 נקודת הכניטה של פונקציה 3 תרשים 58. התוצאות בזיכרון של קישור דינמי 6 ת1600ם12611 16טסו שעת תה חאה ,118 עס 6708%06 17 ,ו'צ צתבתמזן 'שעת ,אאהב ,118 1987 %האוזעקס60 1.0 זסש צתהתתננצואג' אסזידפותפמכ 5דתסאם 1 [תס1)סתטע 2 27תס1)סתטע 3 3תס6+1תטע תרשים 59. קובצ הגדרה של מודול לקישור דינמי 221 אנו רואים ששדות הכתובות שתכנית הקישור בנתה במודול התכנית מתמלאים עם מחוונים.| בעזרת מחוונים אלה ניתן לפנות *ש'רות לנקודות הכניסה של הפונקציות המתאימות להם. ועכשיו, לאחר שמנגנון הקישור הדינמי סידר את התאמת הכתובות, ניתן לקרוא לפונקציה הנמצאת בספריה המקושרת בצורה דינמית כאילו היתה תת-שיגרה שסופקה על-ידי התכנית המקורית. אם נשתמש במינוח אחר, נוכל לומר שתכנית היישום מייבאת בצורה *עילה פונקציות מספריה המקושרת בצורה דינמית ומשתמשת בהם כאילו היו חלק של התכנית המקורית. תכנית שירות המגיעה עם 05/2 בונה קובצ מיוחד המשמש את תכנית הקישור לבניית שדות הכתובות במודול התכנית עבור פונקציות מיובאות. קובף מיוחד זה נקרא ספריית *בוא, ותכנית השירות היוצרת את הספריה נקראת ספרנית היבוא, או תכנית השירות 1118א1. ספרנית היבוא ספרנית היבוא (118ק]1 - תפוע8זם11 6זסקת1) משמשת ליצירת קבצי ספריה מיוחדים לשגרות דינמיות, בתהליך נפרד מתהליך הקישור. ספריות של שגרות המקושרות בצורה סטטית מכילות את קוד היעד לשגרות אלו, אשר מועתקות למודול התכנית בזמן הקישור. כדי לתמוך בשגרות המקושרות בצורה דינמית, ספרנית היבוא יוצרת קבצי ספריה מיוחדים המאפשרים לתכנית הקישור לבנות בתוך מודול התכנית את השדות המיועדים לאחזקת הכתובות. ספרנית היבוא בונה ספריית *בוא על-ידי עיבוד קוב הגדרת המודול. בתרשים 59 תמצא דוגמה של קוב הגדרת מודול, המשמש לקישור מודול דינמי. אותו קוב משמש גם להפקת ספריית היבוא המכילה את השגרות הדינמיות. תכניתן היישומים *כול לציין באופן *דני מודולים של פונקציות מיובאות שיחליפו את ההפניות החיצוניות. גם תכנית הקישור יכולה להשתמש בספריית היבוא כדי להחליף בצורה אוטומטית את ההפניות החיצוניות האלו. ספריות יבוא מאפשרות למתכנת לפתח תכניות המשתמשות בשגרות דינמיות באותה קלות של פיתוח תכניות המשתמשות בשגרות המקושרות בצורה סטטית. בדוגמה זו, אנו רואים שני משפטים המאפינים קובף זה כקובף המגדיר מודול לקישור דינמי. המשפט צ11888 מכריז שהקוב% להגדרת המודול מתייחט לספריה של שגרות דינמיות. המשפט 38202275 מאפשר להגדיר: - שמות לנקודות הכניסה. - מספרים סידוריים לנקודות הכניסה. - כל מאפיין הקשור לשגרות שמעמיד לרשותנו מודול זה המקושר בצורה דינמית. אנו רואים, שהקוב%א להגדרת המודול שמשמש את תכנית הקישור ליצירת מודול המקושר דינמית מסייע גם לספרנית היבוא ליצירת קבצים דינמיים בספריית היבוא. קבצי ספריית היבוא מקלים על המתכנת לקשור :ישומים שיש להם הפניות חיצוניות לשגרות המקושרות דינמיות. 222 משפטי הקובץ להגדרת המודול כדי לקבל תמונה מלאה יותר של האופציות העומדות לרשותך, כדי ליצור מודולים של תכניות ומנדולים המקושרים דינמית, נסכם את המשפטים שניתן להשתמש בהם בקובף להגדרת המודול. מזאגא מצין שהמודול הניתן לביצוע הוא מודול תכנית. ניתו לציין במשפט זה שם למודול התכנית. 25/2) משתמשת בשם כדי לזהות את מודול התכנית לאחר שהוא הוטען. אם לא צוין שם המודול, מערכת ההפעלה משתמשת בשם הקוב של המודול כדי לזהות אותו. צמהתפזע מציין שהמודול שנוצר הוא מודול ספריה דינמי. ניתן לציין שם ספריה כדי לעקוף את ברירת המחדל המשמשת את 05/2 בזיהוי המודול, לאחר שהוא הוטען לזיכרון. בספריות דינמיות שנדרשת בהן שיגרת תיחול, ניתן לציין פרמטר נוסף במשפט צתהתםזת הגורם לתיחול הספריה. משפט צ848א1213 *כול לציין שיש לקרוא לשיגרה זו, המתחלת את הספריה, רק פעם אחת כאשר הספריה נטענת לראשונה, או שיש לקרוא לה בכל פעם שתהליך חדש מצליח להכנס לספריה. אסזיז קפסת מאפשר להכניס שורה יחידה של טקסט לתוך מודול התכנית. משפט זה מקל על ההתאמה בין מודול התכנית לבין הגירסה של קובצ תכנית המקור. ניתן להשתמש במשפט זה להכנסת משפט סטנדרטי המצהיר על זכויות יוצרים. 8 מגדיר את ברירת המחדל למאפיינים של כל הסגמנטים המכילים פקודות בתוך מודול. ניתן לציין את אופציות הטעינה 'נטען מראש - 6[080ץק" או "נטען לפי דרישה - [081ם1080600". ניתן גם לקבוע זכויות גישה לסגמנטים: ביצוע בלבד (ע1ת0 66ש60א6), או ביצוע עם קריאה (1686 60₪%6א6). ניתן גם לציין פרמטר המצביע על האפשרות שהסגמנטים של הפקודות יקבלו הרשאת ק/פ. הרשאה זו מאפשרת לשגרות בסגמנט להשתמש בפקודות המוגנות של ה-80286 כולל הוראות א1 ו-17ז0. 4 מגדיר את ברירת המחדל למאפיינים של כל הסגמנטים המכילים נתונים בתוך מודול. ניתן לציין את אופציות הטעינה "נטען מראש - 61080זק", או "נטען לפי דרישה - 681ת20800". ניתן גם לקבוע זכויות גישה לסגמנטים: קריאה בלבד (ע!תס 686ת), או קריאה/כתיבה (680//₪1156ע). פרמטר המציין את השימוש בסגמנט הנתונים האוטומטי של המודול, מוקצה לנתונים בצורה אוטומטית מבלי שהיישום נקט בפעולה כלשהי. משפט 78גס יכול לציין שלא קיים סגמנט נתונים אוטומטי. מודולים המקושרים דינמית יכולים להשתמש בפרמטר זה כדי לציין שסגמנט הנתונים האוטומטי קיים ויש להתחלק בו (הכוונה לתהליכים) בכל מצב שבו נמצא המודול המקושר דינמית. ניתן גם להשתמש בפרמטר זה כדי לציין שיש צורך ליצור סגמנט נתונים אוטומטי בכל פעם שמודול זה נטען לזיכרון. פרמטר נפרד מציין שיתוף של סגמנטים אחרים מכילי נתונים במודול. שיתוף זה מכוון לכך שכל התהליכים הנכנסים למודול *כולים להשתמש בעותק אחד של הסגמנטים מכילי הנתונים. סימון סגמנטים אלה כ"לא ניתנים לשיתוף" גורם ליצירת עותק נפרד של הסגמנטים המוגדרים לקריאה ו/או כתיבה לכל תהליך 23 המשתמש במודול זה. למשפט 478 יש פרמטר המציין אם למקם את הסגמנטים מכילי הנתונים ברמת הרשאת ק/5. +עאםאסםפ מאפשר ציון נפרד של מאפיינים לכל סגמנט נתונים או סגמנט פקודות. ניתן להשתמש באותם פרמטרים העומדים לרשות המשפטים 002₪ ו-78, ביחד עם פרמטר שם הסגמנט, המצביע על הסגמנט שמעניין אותנו. 1% ממצין את מספר הבתים שיש להקצות למחסנית הקשורה למודול התכנית. ערך זה מבטל כל מחסנית שצוינה בתכנית המקורית. 59 מספק דרך נוספת להמרת הפניות חיצוניות לשגרות ספריה דינמיות. באופן נורמלי, הפניות אלה *ומרו על-ידי ספריית היבוא. אם לא ניתן להשתמש בספריית היבוא, המתכנת *כול לציין את נקודות הכניסה עם המשפט 5דתסטו. פרמטרים למשפט זה כוללים: - שם שניתן להשתמש בו בתכנית לשם פנייה לשיגרה דינמית. - שם המודול לקישור דינמי שמכיל את השיגרה. - שם הפונקציה המבוקשת, או המספר הסידורי שלה בתוך המודול. 5 מצלין את כל נקודות הכניסה לתוך מודול דינמי, כדי לאפשר קריאה לפונקציה ממודול אחר. כאשר מתייחסים לפונקציה מתוך המודול עצמו, יש לה שם נוסף שניתן להשתמש בו במקום השם שמשמש ליצוא. ניתן להשתמש גם בפרמטר המציין את המקום של הפונקציה בטבלה של נקודות הכניסה המתייחסת למודול. הדבר מאפשר להפעיל את הפונקציה בעזרת השם המשמש ליצוא, או בעזרת המספר הסידורל. ניתן להשתמש בפרמטר נוסף לגבי פונקציות הנקראות בד"כ בשמן, גם אם משתמשים באופציה של המספר הסידורי. פרמטר זה מכוון את מערכת ההפעלה לשמור בזיכרון את המחרוזת המכילה את שם הפונקציה, ובכך להשיג ביצוע אופטימלי בזמן הפנייה לשם הפרוצדורה על-5י ההתייחסות אליה. 8 מציין את מספר הבתים שמודול התכנית צריך לשימוש עצמי. מפסואזסתע מציין שיש לבצע את המודול הזה רק במצב מוגן. משפט זה :וצר מציין במודול, אשר גורם לתכנית הקישור להשמיט מידע מהמודול שיכול לשמש את תכנית השיבות עא31 בעת בניית יישומי משפחה. 1/025כתק שומר מרחב כתובות במודולים שאינם מיועדים להכנס ליישומי משפחה. 2 עוזר לשמור על העקביות בהקצאה של מספרים סידוריים לפונקציות בכל הגירסאות שבספריה המקושרת בצורה דינמית. אם משתמשים במשפט זה, מתבצע חיפוש ברשימת השמות של נקודות הכניסה במודול החדש כדי לבדוק את התאמתן לאלה הנמצאות במודול הישן שצוין. אם נמצאה התאמה, מוסיפים כניסה בטבלת נקודות הכניסה עבור המודול החדש, ונותנים לפונקציה מספר סידורי הזהה לזה שהיה לה במודול הישן. 224 תכנית דוגמה לקישור דינמי בזמן ריצה בדוגמה זו, מוצגים כמה מהכלים של העורך ("%46ם11) המיועדים לבניית ספריה המקושרת בצורה דינמית. הדוגמה מתבססת על התכנית העוסקת במספר תהליכים, בכך שהפכנו את תהליך 2 לשיגרה המקושרת בצורה דינמית. לאחר מכן השתמשנו בקישור דינמי בעת ריצה כדי לפנות לאחת משתי הגירסאות של מודול זה. תהליך 2 בתכנית הדוגמה, העוסקת במספר תהליכים, מבצע הדמייה של תהליך לרישום של אירוע עם התאריך והזמן. נניח שהתבקשנו לבנות את תהליך הרישום הזה בצורה כללית, כך שניתן לשנות בקלות את צורת הרישום של התאריך והזמן. אנו משתמשים באמצעים העומדים לרשות הקישור הוינמי ב-025/2) כדי לפתור בעיה זו. על-ידי הפרדה של הפונקציות שבונות את התאריך והזמן משאר התכנית, לפנינו משימה פשוטה כדי לספק מספר גירסאות לפונקציות אלה, אשר עורכות את התאריך והזמן בצורה שונה. כדי לפשט את הדוגמה שלנו, אנו בונים רק שתי גירסאות של ספריות אלו, ונותנים להן את השמות "+8מ0סע 1150" ו-"+התזסע תה8סקסעטם". הבה נסתכל בשינויים הספציפיים בתהליך 1 ובתהליך 2 של הדוגמה העוסקת במספר תהל:כים. השלב הראשון בבניית הדוגמה מחייב להוסיף לתהליך 1 שיגרת ק/5 שתהיה בשליטת המשתמש. שיגרה זו נקראת ע:8זס56160%1. היא פותחת חלון במסך ומבקשת מהמשתמש לבחור את המערך הרצוי של התאריך והזמן. מכיון שיש לנו שתי אפשרויות בלבד, שיגרה זו מציגה רק אותן, ומאפשרת למשתמש לבחור באחת מהן בעזרת מקשי החצים. זכור, שניתן לתמוך במספר בלתי מוגבל של מערכים על-ידי כך שניתן למשתמש להכניס את שם הספריה המסוים. זו רק דוגמה אחת של העוצמה והגמישות של מנגנון הקישור הדינמי. הצבנו את השיגרה צז56160+110:8 בתהליך 1, כי הוא אחראי לקבלת הקלט מהמשתמש באמצעות המקלדת. תהליך 8 הוא למעשה שיגרה המשתמשת בתוצאוח של בחירת המשתמש, כדי להפעיל את הספריה הדינמית המתאימה, ולכן אנו חייבים להעביר אליו את המידע הזה כמשתנה, בזמן שהוא נוצר. השינויים | בתהליך ‏ 2 מתחילים בהוצאת הפונקציות <ת3011128%65%71 ו-קת3₪1107'165%71 | מהתכנית. את הפונקציות האלו הפכנו למודולים של ספריה המקושרים בצורה דינמית. רמז אחד שיכול להקל על ההמרה הזו הוא להדר ולקשר את המודולים האלה בעזרת מודל התכנות הרחב בשפת 6. אנו משתמשים במודל זה כאשר לתכנית יש סגמנטים רבים של פקודות וסגמנטים רבים של נתונים. לכן, המהדר משתמש בברירת מחדל המאפשרת לו לבצע מיעוו בין סגמנטים, מכיון שהוא מניח שכל מחוון, קריאה לפונקציה וחזרה ממנה עלולים לחרוג מתחום הסגמנטים. שגרות המקושרות בצורה דינמית נטענות למעשה לזיכרון בסגמנטים השונים מאלה של התכנית שקראה להן, וכתוצאה מכך הנושא של מיעון בין סגמנטים הופך להיות חשוב ביותר. כאשר תסתכל בתשומת לב בדוגמת התכנית, תוכל לראות מספר דוגמאות שבהן נקטנו בפעולות מסוימות, כדי לענות על הדרישות של תכניות עם סגמנטים רבים. יתרת השינויים בתהליך 2 כוללים את ההכרזות, האלגוריתמים ואת הפונקציות הדרושות כדי להפעיל קישור דינמי בזמן ריצה. 2205 הפונקציה עע8ע56160%15 הצג את חלון הקלט למשתמש האר את הספריה הנבחרת בצע עד אשר ילחף מקש עס6תת קרא מהמקלדת אם לחצת על אחד ממקש* החצים מעלה-מטה, אז, אם הספריה הנבחרת כרגע היא 1, אז בחר את ספריה 2 הסר הארה מספריה 1 האר ספריה 2 אחרת, בחר את ספריה 1 הסר הארה מספריה 2 האר ספריה 1 אחרת, אם נלח% מקש עססםת, אז אל תעשה דבר אחרת, השמע קול כי נלחצ מקש לא נכון מחק את חלון הקלט למשתמש חזור תרשים. 60. הלוגיקה של הפונקציה /81זפ56160/11 האפשרות של המשתמש לבחור ספריה כדי לבנות דוגמה זו, הכנו ארבעה קבצי מקור וקוב+ להגדרת המודולים של הספריה. ארבעת קבצי המקור הם תהליך 1, תהליך 2, ושת* הגירסאות של הספריות הדינמיות לפונקציות העורכות את הזמן והתאריך. במקום להעתיק את כל התיאור והתכנית של תהליך 1, אנו מראים רק את ההכרזות והאלגוריתמים הנוספים שיש צורך להוסיף לפונקציה :8זס56160+11. נסתכל תחילה בלוגיקה של /91זס.56160+1, אשר מוצגת בתרשים 60. כמו בכל הדוגמאות, הוספנו את הכרזות המשתנים לתחילת קובף המקור. הקריאה לפונקציה ע56160+110787 נמצאת בתחילת החלק הניתן לביצוע של התכנית, כך שהקלט של המשתמש *ועבר בצורה נוחה לתהליך 2. תרשימים 61 עד 3 מכילים את קוד המקור לפונקציה /ז56160%110:8. השתמשנו במספר פונקציות חדשות של 05/2 כדי לתמוך בק/5 עם המשתמש. השתמשנו ב-6כע'':ט10)026+0/ וב-6סע'1ץט1056%0/ כדי לשלוט בסמן, וב-ק05866 כדי להודיע למשתמש שהוא לחף על מקש לא נכון. 100606 ו-6קע'זז1056+0ע פונקציות אלו מחזירות וקובעות בהתאמה את הגדרת הסמן הנוכחי. ההגדרה כוללת את המיקום, הגובה, הרוחב ומאפייני התצוגה של הסמן כתו טקסט. לפונקציה זו יש שני פרמטרים. 206 +,++6 6-מ 3 אסטתג ת0ג86[1600 ץז *חנע 6 | ?) - [220810609115* 131 0981 "| 6 56160 סל 86/5 זספקטס 096 זז את1 16תגחעע .6 סל 11866 6[טסא ₪ .6 הסוא ז0פתם 6-1 658ז? (טעס. 05 פס גפס * (0ע0. 8000754) 6גתז0? ה63קסתטם * 1 7 .54 %גתזסץ גפט *" - ז95450* ז3] :008 . (50078(1.000) 935ז0? תגסקסתטם *" = ז56ה63קסתטפ* ז3] 00 | = [ג56[60%10071 יר ;961600 %הנ /או4140444103444003100000000044))))ו.))וווג))וווווווווווווו'וווווגוג*וז פס[כב1זגל אל / ץפנל */ :טח 83 557000 חר = 00ה507567000070701ז00*/ 187 6078010353 518065 :196 61 פטס ששעץ תףפתט ]ו41040444414004403004404444090000000000ו..)4ו)ווווו))).וווגוווווווווווווווווווווווווווצג) בס[סהן זב */ - תת 4תף1פתט - ה ור ]וא04044.44404404940444000:0004049ו0)39ו)00400400)ווווווו/וווו)ווו)ו/וווווווו/ווו)\וווווווווווווווווווווווווווון תרשים 61. הפונקציה /81זכ56160)11 - הכרזות על משתנים 8 הוא מחוון רחוק למבנה המכיל את הפרמטרים המרכיבים את ההגדרה של הסמן המסוים. 86 הוא מלה שמורה המכילה אפסים. מבנה הנתונים 80112818זט2) מכיל ארבעה איברים (שדות) בני מלה אחת. כאשר מצב התצוגה הוא במצב טקסט, ניתן בעזרת שני האיברים הראשונים לשלוט בגודל ובמיקום של הסמן ביחידת התו. איברים אלה נקראים 6ם78015+81011) ו-6ם01,1ת ז50זט, והם מציינים את השורה האופקית בתוך יחידת התו שבה הסמן מתחיל ומסתיים בהתאמה. המלה השלישית נקראת 2115070160 והיא מציינת את רוחב הסמן בטורים. תת-מערכת התצוגה ב-05/2 תומכת כרגע רק ברוחב | של טור אחד. המלה הרביעית במבנה (תונים זה נקראת 6 זו והיא מציעת| את מאפיין התצוגה של הסמן. בנוסף למאפייני התצוגה המתייחסים למצבי התצוגה השונים, ערך של מנוס אחד ע- -) ב-18070)4110056 מצביע על כך, שהסמן צריך להיות סמולי. סק זפפסכ פונק+ ה זו ינה מישק נוח, המאפשר להפיק צליל מהרמקול. לפונקציה שני פרמטר/:,ז; ץז הוא ערך בגודל מלה שיכול לקבל ערכים מ-37 עד 32,767. הוא מציין את תדירות הצליל ב-110702. 207 (0ץ56[600173 8 ץש 807ז6₪ 6ח6זקטס 606 06% */ : (0, 10087000717800075015628000767018167ץ = 0006ת0 זט 9 הגס 6א 50 16 5206 הב */ 3 ז607507557005086.60 = 15006 6105461 15 */ :- = 866710408 50517006076.607ז08 , ת1006 :00150 606 8386 הסתך */ : (0, %08ה10581008175)00750867000026701?. = 1070066 /* את!! ס1ת3ח07 506 עְגּוקפום */ (++ז60ת 000 ;ח0ת1000%06א:011 > 6תטס0אט ;0 = 6:תטס6סת)ז10 /* הצ ת5616010 עְז3זפ11 */ 0 - 1070066 , ((07) 2000 00%ת01001) ת16 5% = = 0+ 8 - אס - תתפט[00 "0" - %ח ; (616ת1083 ו 06% 06 ו ו 10 = 00006 ח56160%10 */ , (ז09850)ה55716 = ו .5 - 0 4 "7" - 6 : (616ת1083 תרשים 62. הפונקציה ע56160)110:81 - חלק 1 תסן)ה8זטע הוא ערך בגודל מלה המציין את משך הזמן, באלפיות שניה, שבו יש להפיק את הצליל. פונקציה זו מתבצעת בצורה מסונכרנת ליישום. כתוצאה מכך, השליטה חוזרת לאחר מספר אלפיות השניה, כפי שצוין בפרמטר. 51601 תרשים 62 מציג את ההתחלה של הפונקציה /:56160%1108. בתרשים זה העלמנו את הסמן, הצגנו את החלון המנחה, והארנו את הספריה הדינמית הנבחרת כרגע. השתמשנו ב-1706?ט10026%0 כדי לתחל את מבנה הנתונים 00750708%8 עם הגדרת הסמן הנוכחית. לפני שאנו משנים את מאפיין הסמן למינוס אחד (1-), אנו שומרים את הערך הקודם של מאפיין הסמן כדי שנוכל לשחזר את הסמן בסוף השיגרה. לאחר מכן השתמשנו ב-06קע1:זט1056%0 כדי להעלים את הסמן. לאחר שהצגנו את חלון בחירת הספריה בעזרת לולאת "ז10", הצגנו שוב את השורה המצביעה על הספריה %אמחסע 11528 עם מאפייני תצוגה אחרים. כך אנו מאירים בדרך יעילה את השורה הזו, כדי להראות למשתמש את הספריה שכרגע נבחרה. תרשים 63 הוא השארית של הפונקציה ע841*ס56160%11. הוא מכיל לולאה מסוג "6[!תש-60" (לולאת "בצע עד אשר..." . בלוגיקה של התכנית בתרשים 60) שמגיבה לקלט של המשתמש מהמקלדת. בתחילה קראנו לפונקציה ת871ת140006 המציינת שיש להמתין לתו. הקריאה חוזרת לאחר שנלח מקש ואנו בודקים את קוד התו שנלחף, כדי לראות אם זה היה הח כלפי מעלה או כלפי מטה. אס נלחץ אחד מהחצים, אנו בודקים אסו ספריה מוארת כרגע, בהתאם לערך המשתנה 2[8₪ת56160%10. לאחר מכן אנו מעדכנים את ה-ק8["ת56160+10 ומאירים את הספריה השויה, כדי להראות שכעת ספריה זו נבחרה. אם המקש שנלחצ* לא היה אחד ממקשי החצים, אנו בודקים אם היה זה מקש ז6פתת. אם נלחצ מקש ע6לתם, איננו עושים דבר במשפט ה-"11" מאחר וזה מצב הסיום של 208 הלולאה הראשית "116תש-60". משפט "6156" האחרון מתבצע אם נלחצ כל מקש אחר, והוא קורא לפונקציית ה-ק205866 כדי להודיע למשתמש על פעולה. לא נכונה. הפונקציה /ז8ז56160+110 מסתיימת במחיקת החלון של בחירת הספריה, ובהפעלה מחדש של הסמן. למרות שלא הראנו זאת, ביצענו שינוי בתהליך 1 כדי להפוך את ה-88["ת56160010 למחרוזת תוו*ם, והכנסנו אותה כמשתנה המחרוזת הראשון המועבר לתהליך 2 בביצוע הפונקציה ₪₪?60א53סס. / ש ו יי 0 קסד + ] 00 86 */ ממה ב יל" 6 =" 807070066 0 1 סל 4 - 10031% */ /י 68 %5 01373006 */ %. 7 /* זס] הת100%1 0068 ה503 000% */ ((50א0/ == 0006 ח000018.809ז075%/) | (48א0/ == 0068 ת6.803זטלסט95ע76)) ]1 /" 5 0:50 האס עס קט */ ָ ₪" -- וַ901606100913) ]1 0 1 בי , (ז80:160)005450 = ה0%ת1006+ - 0% 4 01 ,"044" = 19006ז6) ; (10031016 /* ]0 6[ 606 הסקט 0 סיו ,0 10 = 0066 תת / =1100תףנתמט .הַ7[3ה56160%10 */ זט )55168 = ה05ח1006+ /י אַתִָנַ1ַתסְגת 6ת9 ת56[60610 6הס */ ל " 7 /*י זס ₪6 */ - תתט[00 ,"17" = ו ; (016ח%1003 1 ום ב ד = 070086 , (ז50ח63ק0זט8)ת16ז55 = ה86ת1006+ 1% ו - תפט001 "044" - 106 ; (10830016 10 = 0066תסזזט , (ז05450)ח50116 = 10000015 .5 - שת . = תתט001 ,"137" = 006פ1ז366 : (616ח1083 1 / גא 6 ז0:הל %76 ][ */ ;: (0800/ == 0006 6.0031זש005ז76755) ]1 6156 % שת ?הג 60 6 ה00 */ / 8 7 זו 3 ]1 660 3 6הטס9 */ חנ 09 = 7 4 435 *] עו /י פגא /6א זסשתם ]1'קסס[ תק */ :0800 =! 6006 0050:6.6736ז16/56) 6[נתצ ( /" זז ו 0 = 00006 /* 07886 ,606[קַת00 18 ה56160%10 */ 1002 /י צס0ה1א ה56[60610 ץז3ז115 606 */ ,00 7 0 [--65ת1תטו .11100 3* ז9] ז60) : = 10830616 /י 0 606 6ז6560ת */ ה- 305719026 008 .0015075%1₪00076 :(0, 10607 8055700507670ז10501001178)00? = 0066ז0זט / ]וו4ו))))וווווווון)))ו1)).ווווו))))וון))\ווו|)אווו)ווווו/ן))ווווווווה)וה\גן)וו)))ווווו))וווווווווווווו] תרשים 63. הפונקציה עז8ז56160)110 - חלק 2 209 תהליך 2 החדש ביצענו מספר שנויים בתהליך 2 והוצאנו את הפונקציות ₪ת165071ד16נטת ו-8ת311628%65%71. הוספנו לוגיקה כדי לחפש את הערך במשתנה המחרוזת, במטרה לקבוע באסו ספריה דעמית להשתמש. ולבסוף, הוספנו הכרזות ופונקציות ההכרחיות להפעלת קישור דינמי בזמן ריצה. בחלק העליון של תרשים 64, תבתין בוודאי שהכרזנו שוב על פונקציות סטנדרטיות בשפת 6 לזמן ריצה (1008, 8601 וכו'), כדי להשתמש במחוונים רחוקים לפרמטרים של המחוון. אנו עושים זאת, מכיון שאנו בונים את התכנית תוך שימוש במודל הרחב בשפת 6. ++++++++++++- ו ווון / 2 00058ז? - [הגאהגם הר הצ 0065568זק ו 9 ]'ו,,ווג,וווווווווו.,,,,,ו.,ו3)וווווווגווגו.,וו,ווו,,,,ו.ו)וו.ווווווו ו'ווווווווווווו)ווווואוווווווו ייוווויון /יץזגזלו 1 אח11 סותהחץ6 371 05/2 */ <00503[11.7> 86ט[0ח1 /* 1!5 6186 הטז 0/] 0ז563003 0 */ <ת.56010> 06ט[6ה11 /י ץזגזפ!! סָה1ז50 6 */ ה שַת1ז56> 61006ה11 / ץְזגזס1] 03:6ת553 656תך */ :ה ,* ז3] :003 ,0ה1103)1 [0160 * זגת6 /י חספ 6בת 5ה660[3:3%10 */ ז3] :673 310160056 [0860 6ח1 /י ז6)הוסק ז3] 6א%3 60 0610164 */ ז3] ז003 5%ח00)תס[ז55 04601 % 5116 /י6ְזגן וי 6 ז0] 0%0:8ת8זק */ ז3] ז003 פתסס ,* ז3] :815080603 [0860 * זגת6 / [חנתת3זסֶסזק [008ת */ :. ,* :18 :003 6פתסס)]5ת!זק [0460 שת1 + וווווון /י .התואחן[ 6[פב3תץ6 6ת1) 080[ ת][ט 4פט 376 8ח06018:3:10 66ת616:6] [הת:10א0 6פסתך */ 2 1606 3 35 1010660 376 טל 0006 508706 106 01 ]0 866חסתמס6 ח66ל 6טגת עפחד */ יו ) 0ה1ז650ח11011ש9 [03פגק ז83] 016ץ מז6 !מש ,זג 64ה510תט ,631 66חף!פתט ,631 066ף1פת 7 ) 4ת1ז90118030650 [8503ק ז8] 016? תז0)אס ,6 66ת6ָנפתט 63 חן פתט כ זג זג /* ]וו.ו))ו)וווווווגואוו,ון)\)ו\ו\וווווו)\|וואווו,ווו|\ווו\\וןווה 0108 זז צססתנצ יי יו /* 0 66פט פסַת1ז0פ 06 זז חג */ ₪ ") - [00%]12ת71002%1* /ז87] זגח0 / 1513 [ 2:00665 608 שתג[)טס */ % 5 /" צסטתן ל */ 2 2 7 " /* 00[ 7ז0]" הן 0564 65[ל18זץ */ := ז תס 5 : = ה0%ָת00%6ת1 ה ]וו)))),,)ווווו,,וווווווווווגווווו)ווווו,וגווו;|ו))ווווו סז 6 סו %6ט - בני ה [ 0 י/ + 05/2 מסז] חזט6%ץ 0006 זסזזק */ מז ופט /," 8 חס1סתט] */ ]ווואאוווו00ו010ו9וווו)ו)וווווו/ווווווי 8 360 >לקתסזק 6686 0150137 50 04פט - 121132168 50466ז:3ת00:אס1ץ */ /י חא 8ס 50 מַת1ז50 */ 0 ]03 /* וָת[ז60 זְ66סגִַגת0 ]0 ההָה6/ */ :107 ב /י צסז - ה1610פסק (ה5%8:61 */ :0% כ /*: תפם|00 - ת510[פסק סַת5%8:%1 */ :0 פט /,י לזוג זְבּ[קפוק */ :לגי ג ]03 /," 8 ]0 תס 6567%64 */ = 10830016 4 תרשים 64. תהליך 2 - הכרזות משתנים (חלק 1) 20 לאחר מכן תראה שת הגדרות של הפניות | חיצצוניות לפונקציות שת 65תד0!וטת | ו-את028065071!וט2. | שים לב שהפכנו את ההגדרות החיצוניות האלו להערות. במהלך הניפוי הראשוני השתמשנו בפונקציות אלו בשיטת הקישור הדינמי בעת הטעינה. אף על פי שהן לא מופעלות בשיטת קישור דינמי בעת הריצה, החלטנו להשאיר אותן, כדי להראות איך ניתן לעשות זאת. ספרנית היבוא (תכנית השירות 118ק1/1) *כולה לעבד קובץ להגדרת המודול הדומה לזה הנמצא בתרשים 72 כדי ליצור ספריית יבוא. ספריית :בוא זו, יחד עם ההכרזות החיצוניות המוצגות בתרשים 64, מאפשרות להשתמש בקישור דינמי בעת טעינה, כדי לגשת לפונקציות בספריות הדינמיות המשמשות אותנו בדוגמה של קישור דינמי בעת ריצה. ]וווווהוג,)ווו,ו,ג,,),)וווגוַגוג,|.))),\,\)(ווגוןוגווו))ווגו\וו,)ווגוגהווגווווגווה 8 10500110 */ /י ץסתזסס בתגת 1606 זשקקט */ הייו חפט ו ופט /י 00 שחבת %6ף1ץ 90660 */ 0 ןח :מ חפט /* [[50:0 0ס] 68ת11 ]0 ז6סתטו[ */ ג חפט /י 8 0 ז06סגזגת0 [11ץ */ - [3:12ת1110? נדו) ]ווגגג)))ון)גווו\\,ןון),וו,,,,)ווווג,|,ג;,וג,,(,,,ה..,וג,ו,..ג.(ג,.ג,,)),)וווווגגוווגוה 5 ו */ /*(616ח03 636ז 6ק1ק)0[6תגת 116ץ */ ו חפט /" רטקה */ ] [03180567061 3 /* 1600 ז6])שע ו 09 - ה6ח9]]67100 | /י זל - 7680 8665 */ יי 4פחט ]אוו3))))ו)ואו4)))וג4)א))9)).א))\\)ווו,)ו.)ו)\ווו)ואוווווגאוווגוווווופוווצצ99* צ6[פב1זג% ₪0506103561186 */ /* 8 1156 38 066 */ יי 8 50050 /י ז66ת1סק 6זט00ש557 006/1186 */ ר-=- :00ח0]08601196201* 187 28661156 551006 ]| ווווו\ו|.).))ו))\,))ג|וווווווגון,)\)ו,\ו,\.\,\ו,וגוה.ווגו\|),,וו,אוו)ון,ווגהה 6-ל יי */ /י הס!3%זו 5186 5166 */ ;ו נֶח10 66ה16פתט ]וווו.\))))וווו\))ווווו\,)).)וו\ו\\).|,)וווגגגגגו.\ווגוגגו,)ווו\וואגוו 8 ג 6 יו /י זל גת 60%[ */ 0[ ו /*י הַַַחָת6[ ז6]]ש2 6תגת 60%(פ0 */ ו | /י 6 16ט00ת את01החץ0 */ 6 זג 003 /י 64 - 0[6חגת 0416 */ 16 וט ]'וווא)וווו\ו.)\;)))\ווו\\\))ון\)\|\ווווואו,ורגוווו\ג,,וווו)ו|\וה 8 ו י/ /" 6 6:ט0060זק את1:החץ0 */ די 0 /* 7607066 - 2041655 2:000016 */ ;0 3808 ז3]) 4016 :+ [8803ק ז3]) 4018 :3 |וט* | [503גק ז3]) 4016 ][ווו9+))410)).\,ג,.).)|.))).|)\\)).\וווווו,וווו\ו).)\ו.ווווווו\|וווווו)ווהוווווווג 8 שַת1ק)פ */ /*ת80:1 5186 6ול 116טפ ס% 0564 */ :" " - [1186]9 0 - 665ת1186701* 0 /ית1ז50 6366 606 114שפ סש 0564 */ ;"0 " - [[3316]1 זו :1 - 565ת0306201* ו /* 90214 [10 66 116טפ 60 064 */ ;5622 ו 8 ₪ - "ו יי ו ]110040444404100410040)))).))ן)))ןו\וווו.\)),ווווו\)),וגןוווווווו'ואוווווווווגוו'וו'י'ווווצו בס[ְפָב]ז3) 16אש5סק *'/ /* 8פפססתק ת1 6365תת: [[ג 16אק */ ; (-061000006 חפט / =05001/ 0] 53060 68016( */ :0 תע /]114041110010001404)))וו1)))).)))))))וו\.)..))וווו)\).\)ווווווו))\.וווו)|\,,וווווווגן.)וווווווו\ו'ו'וווווו] /י 85100ז060[3 תס61סתטץ? */ : ()3)61186770060016 ז3] 9016 ]ו4440.)40140140148))))))ו))....))))וווו).)|))וווווו\))))))))ווו))))))ווווווג))ווווווו.))ווווווווווווווווווו] תרשים 65. תהליך 2 - הכרזות משתנים (חלק 2) 21 בתרשימים הבאים אפשר לראות שנויים בהכרזות של משתנים בתהליך 2. שינויים אלה כוללים השמטה של ההכרזות המשמשות אך ורק את הפונקציות שתוז65מ107וטת ו-שת8011628%650:1, | אשר הועברו למודולים המקושרים יבצורה דינמית; תרשימים 64 עד 68 מכילים את קוד המקור של תהליך 2, הכתוב בשפת 6. לפני שנעבור על הגירסה המשופרת של תהליך 2, נסקור תחילה את פונקציות 2 החדשות המשמשות בדוגמה זו. /" 8 הוגת 0 ]0 50376 */ (קצח6 ,סז .סִמָזְבּ)הוגח יו 1 ]אזג* ז3] ז003 | ]קְאה6* זג] זגתס 6 ]ווו,.))ו.))וווווו.ו.))))וווווו\).,),וווווו.)),וווווהו))ווווווווווופו'וו'ווו'ווווא*** 68[כָ13זב) 630:ת63661ז50סק */ /י כ זו סו */ זז הט /י 530% 6936זת: צ6)( */ -:1001) 691076305030%ו זג הספת ]ו)..)וו))ו)וג),)).),)))וווג))ווווו|))וווווו,ו,\ווו\וווווווווו\וווו)וווור ג ץק 6860053516 ]0 8ז8)8 */ /*י 64פט ה80:06 ]0 3:6 [806ם */ ."2 7000855" = 1005037567 ) = 1010006 זפ /* 2 2700086 זס] */ , (ז3:50ת00ה55:16 - 6 ו - 0 .5 = תפט001 ,"032" > 15666ז66 :0 - 10830616 /* 60%ת1א/ 2 006988ז? 506 ש13ק015 */ (++ז6תנוס0אס :הִאַחַתס0000ה1 > 56 תטס0אס ;0= ז66תטססטסת) זס] 7 סו | 0210 105 = 10006 ופ , ( 07 ה00ע606]90ת21002%1)ח16-5% = 1006006 .זט אס + 7 - אסת .5 - תתט[00 ,"032" = 19006ז66א ו ל /י ה[ 385066ק ת50[60%10 ו 5] ] (1 =- ([10ַא6ז01)3)ג) 11 /% 0אזג */ מששו ‏ זג 0 = 7701006 1 0565 36תזס] 09% */ ו 0 /* 054.00 386ת116] 606 00816 */ 9 - 160386 ו (0 5600 6פחףָ1פתט) ,"סק 054" = 03567 חס 109 = 070006זזק (0031508)ת86:19 = 1000001 0 - עס * תתט[00 ,"032" = 66שפ1 !)3 : (016ח1083+ / ב שו 050000006 = 00006 ות 3 ן /י ץזגזפ11 0568 35תזס] 0 ₪ ,"800008" = 6ת16(!3 ₪ 1 6 8+ ל ו , 6 1 00ח1שתט) ,"36ז0? ה0063זש5" = ז578(110003756תה10ק100? = 0006תסזזק . (ז50ז4003ת85716 = 410000058 - 10 = חמט[00 ,"032" - 36019066 : (10830616+ תרשים 66. תהליך 2 - פונקציה ראשית (חלק 1) 22 6 פונקציה זו טוענת מודול המקושר דינמית לזיכרון ומחזירה מקשר למודול. המקשר משמש כהפניה למודול בכל אחת מפונקציות הקישור הדינמי שבאות לאחר מכן. יש לפונקציה זו ארבעה פרמטרים. ]ואט הוא מחוון רחוק למאגר תווים. אם הקריאה לפונקציה תכשל, מערכת ההפעלה תציב בו את השם של האובייקט שגרם לתקלה. אפס הוא מלה המכילה את אורך המאגר המקבל את שם האובייקט. 6 016 הוא מחוון רחוק למחרוזת תווים המכילה את השם של המודול הדינמי. מחרוזת זו יכולה להיות באורך שיכול לנוע מאחד עד שמונה תווים. ההרחבה של שם הקוב> היא ,211. והקובץ חייב להיות מאוחסן באחד המדריכים הנמצא במסלול החיפוש של הטפריה. /* 316 68[ט0סם %ה11 10מ3ח/ 5% 8 0 0066 /י 665 666 6פטח %6 806 / "0" = 386 קל /* 36( 306708868 - 1 0 / : (0ה59011071865671 (* זג הַת10 6סתף1פתט) ו 6 [[03 60 ₪804 6 */ /י 8 ו 0 = 7070066 ,"8011001891" = 306ו00זק 1 3 מָח10 64חף1פתט) 0 4 63066 07] 2 636זת7 016866 */ נצ ל 0 = 07008 6 616 *] ה 13 61חף1פתט) 7 זגת0 66חף1פתט) /*ם0] 6[6תגון 694] 6ק1ק 606 06% */ :ץז 3001 = 0[6ת68088ת /* הָת[זל8 6ה6פטףז8 860086 6ח */ / /* פ68טת!)חסס 1036 100 ]0 קסל */ /י 8סת] 00[[8 ז8600זְ3ח0 הה16961 */ 06 = 00006 . "₪" ג 611תט 16ק 06 */ 1 :ג זג00) /* 4 18 00180102 */ ,1610605 ]שת ; (88156886360(* ה 14 פתט) /* 6 ה16א אס6ת1צ 606 [50001 */ ו = 07006 /"* 6 סה */ -1 ,7 כ 68-1ח1,!פטו ,0 5 0 - 1083016 /י [מ1 80 10 196 36116 */ 99 ה [10ת1 100507 - [1ות1 005 ( 0 = 2010661 ו ד 0 - ו ",00ת0001ת1 801031050 = 10 020ה1 090 0 17010 8610300105 = 67ת1 1005100 /* (ת80:1 הָס[ צפת 506 01801 */ 05 (* שג] 1 = 1070006 , (ז06ת0201ח1005)11)ת16ש86 = ו 2 כ 1 - 66219856 : (%10880616 / /* 0 "ך" 3 תס) 686ך */ =! [116)00373066706[1/0תצ /י ץז0ת6ת מסז] ₪000[6 66קץ */ (6 68001[ 9057500 = 00066 /י ה610גת!1ם:6 01 05/2 ץ11)סון */ 6 : (686150060 1 סי‎ ---- תרשים 67. תהליך 2 - פונקציה ראשית (חלק 2) 28 ()03%01156770000076 זה] ו /י 00[ 6001685 ת96[1 */ 0 /"* 6 שח 0306 6ת% 066 */ ; (6701667ת15000703)671 050810187 = 070066ץז5 /י ה1ז696ת11071ט2 [[03 */ , זטסת. 196 0010361 1 הת 0030716 ,5600008 0070316116 : (0007ה710701(* ז3] ז3ת0) ( :50 6186 606 [18ק5ג */ 0 10 = 0066ת0זזת , (007ה6701ת011ת56716 = ה6 ו - אס .1 - חתט[00 ."7 = 019066 : (016ה1073+ /"* שַת1ז11003%650ט [081 */ ל , [63. 6ת035611 זנ 0 .06 ;(07ת0350?01(* ז3] ז008) /י טָת1ז60 0356 506 15013 */ 360 10 = 070006זות , (ז56ה603%6701ת55716 = 6 ו .5 = 0 ,0 = תתט[00 ,"032" - 00219056 ; (016ת1083? /* 6004 3 32006 107 51600 */ ;0 = 0006 שת /* חסתט פ6מבת[תז0! 630זת% 8[תך */ ) /י 8 0068%5זק 06) */ / ]9445וא)9440ו9)0)),אאוו|,)וו.)וווו)וווווו/וווווווו)!,)וווווו,\וו\וווווווו/וווווווהווו)ווהווווווווווווווווווו] תרשים 68. תהליך 2 - 8%611[6210606076כ 86 הווא מחוון רחוק למלה שבה מערכת ההפעלה מציבה את המקשר למודול. המקשר שחוזר משמש לציון המודול בכל אחת מהקריאות הבאות לפונקציות 2050260/06186 ו-5/166100016ס. 0" פונקציה זו מחזירה כתובת רחוקה לפרוצדורה מסוימת במודול הדינמי. יש לפונקציה שלושה פרמטרים. 6 הוא מלה המכילה את המקשר שחזר מהפונקציה 051.08011000016. הוא מזהה את המודול המסוים שנטען קודם לכן מהזיכרון. 06 הו מחוון רחוק למחרוזת תווים המכילה את השם של פרוצדורה בתוך המודול הדינמי. אם ערך הבורר במחוון זה מכיל אפסים (כלומר ריק), החלק של הכתובת *חסית במחוון מוגדר כך שהוא יקבל את המספר הסידורי של הפרוצדורה הרצויה. המספר הסידורי הוא מספר נקודת הכניסה בתוך המודול. 8 ההינו מחוון רחוק לכתובת רחוקה (מלה כפולה) שלתוכה מציבה מערכת ההפעלה את הכתובת של הפרוצדורה המבוקשת. כתובת זו משמשת לקריאה לפרוצדורה. 24 קישור דינמי המשתמש במספרים סידוריים במקום בשמות הפרוצדורות הוא קצת יותר ‏ יעיל, והוא גם המנגנון היחיד שמאפשר כניסה לפונקציות הנתמכות על-ידי המודול 2050681165 של 05/2. המספר הסידורי הינו מספר שלם המציין את מיקום הפרוצדורה בתוך רצף של פרוצדורות הנמצאות במודול. משתמשים במספרים הסידוריים המתאימים של פונקציות 05/2 כאשר מודול היעד של היישום מקושר עם 05081.5.118ס. 9-6 הפונקציה מודיעה למערכת ההפעלה שתהליך זה גמר להשתמש במודול הדינמי שצוין. לפונקציה זו יש פרמטר אחד. 86 הוא מלה המכילה את המקשר המוחזר עם 2051/0801/100016], אשר מזהה את המודול הדינמי המסוים שהוטען קודם לזיכרון. המקשר למודול מפסיק להתקיים לאחר שהקריאה לפונקציה זו הושלמה. אם אין לתהליכים אחרים מקשר למודול זה, שהושג דרך 16ש0520801100 או 6נ 0 אז המודול נמחק מזיכרון המערכת. תיאור של תהליך 2 תהליך 2 מתחיל במתן שם לשטח שלו במסך והעתקה של מערך המחרוזת לתצוגה שמגדירה את החלון שלו, כפי שראינו בדוגמה העוסקת במספר תהליכים. הקטע הראשון של הפקודות החדשות קובע איזו ספריה דינמית יש להטעין. כפי שהזכרנו קודם, דוגמה זו נכתבה על מנת לתמוך בשתי ספריות שונות בלבד. שים לב שהשתמשנו במחרוזת המשתנה הראשונה, כדי להעביר את בחירת המשתמש לגבי הספריה. באופן נורמלי משתנה זה, [0]ששז8, מכיל את השם המשמש להתחלת תהליך-הבן כפי שהוצג בדוגמה הקודמת. לאחר מכן שורשרו מספר משתנים למחרוזת 2490112 *חידה, ותהליך-הבן ניתח את המחרוזת כדי לחלוף את המשתנים שהוא צריך. אין אנו משתמשים במחרוזת המכילה את שם התכנית בתהליך ‏ 2. כדי לפשט, אנו מעבירים סימן במחרוזת המשתנים הראשונה, שמצביע על הספריה שאותה יש להטעין, במקום להעביר מחרוזת עם שם התכנית. מחרוזת עם התו "1" ב-[0]טשזה מצביעה על כך שיש להשתמש בספריה "58 + מסע". אם [0]טשזה אינו מכיל את המחרוזת ‏ "1", אנו מניחים שהוא מכיל את המחרוזת "2" המצביעה על כך שיש להשתמש בספריה "+8מ1ז0 ת68ססזטם". בהתאם לתוצאת הבדיקה של [0]טשזה, נטענת הספריה הדינמית המתאימה בעזרת 6.. לאחר שנבחרה הטפריה אנו מציגים מחרוזת המודיעה בצורה ברורה באיזה פורמט נשתמש. המקשר החוזר מהקריאה לפונקציה 86 משמש בשתי הקריאות הבאות ל-05026+017006001כ.. בונקציות אלו משיגות את הכתובות של נקודות הכניסה לפונקציות שמשתמשים בהן בדוגמה זו. יתרת הפקודות בתהליך 2 החדש זהות לאלו הנמצאות בדוגמה שבפרק 4. ההבדלים היחידים הם התחביר המשמש לקריאה לפונקציות את65%71מיד10וט ו-קת311608%65+71 ול-05217601/1001116ס, כדי לשחרר את המודול הדינמי כאשר התהליך מסתיים. 205 השתמשנו בפקודה ,061 הבאה כדי לבצע הידור של התכנית. 6 מש>ת/ 41/6/ 02/ 6/ 01 האופציות בשורת הפקודה מגדירות את הדברים הבאים: מבצע את שלב ההידור בדרך כזו, שלאחריו נצטרך לקרוא במפורש לתכנית הקישור. 2 מאפשר הפעלת מערכת ההוראות של ה-80286. %₪[/ | מאפשר שימוש במודל הרחב של שפת )6. ₪ *וצר תדפיס של תכנית המקור. השתמשנו בפקודה %ם11 הבאה כדי לקשור את תהליך 2. פפן11106.11 062,07002,,111565.115ז אתו[ נתקדם בלימוד ונסתכל במה שעשינו, כדי להפוך את שתי ספריה דינמי נפרד. הפונקציות למודול ספריית קישור דינמי ישנם מספר הבדלים משמעות:ים בין הפקודות המופיעות בתרשימים 69 עד 71, לבין הפקודות ששימשו אותנו בביצוע של אותם פונקציות בדוגמה הקודמת. ][ווווואו,ו4ווא,וו)ווואואוו)א3).0וו)אאוו0וו40ו308004:ו)א40א40ו44080וווו/ווווו4ווווואווווווווווווווווווווווווווון] , זג אתנן הצ 05% - 00₪. גפ */ ו[ וווואואואווווווווווווא] ו 1% !חח 01 05/2 */ מג] 186 חטש 0/] 55880376 06 */ ץזגזו1 נָת1ז50 0 */ /י ץְזבזס]] 0ז553003 56פהך */ /" 066 1396 5ת060[3:3610 */ /י ז6ה1סק ז3] 6486 60 0811164 */ /י6ז | ה)1א 6פט ש0] 8ז666ח3זגק */ 1 3 זנק [006ת */ /* הסגל0הט] תנַגת סת זס] פצס[[ */ /י 0 006 130165ז9ץ חַת1ז)8 */ /י [הנז5% 5186 6ת% 114טס */ /* 0 0ספָט 180[68ז93 חָח1ז56 */ /* ָחןז55 0356 06: 116טט */ <ת, [[60508> 6[006ת11 .656010 06ט[6ה41 <ה. אַת1ז56> 66ט1סה11 :ו. 1 7 ,%ת003)1] [0460 * 0738 ד ([0060 15 :(* ז9] ]003 00085)ה80:[6 [0060 | 5126 ;(* 131 זג(0 %פתסס ,* ז3] :9170360003 [0066 * זגת0 106 3070096 = 0 ;]זו ]3 :1160 = ז60ת1ס?זטסת6ת11* זו 1 זג 11 - ז65001060:טת1א186ך* 3 ;| 1165600008 4 ;8 = 718656000657010501* 0 מ היהית 3 ;7 - 60" זג 3 זג :360 = ב 0 05 3 0 0 - 1% ו ]ווווווו)וווווווווו))ו))וווווווו)וו.ווווווווווו0וווווווווווווווווווווווו)ו/ווווווווו)וווווווווווווווווווווווווו] תרשים 69. 154.21 - הכרזות 206 /י 6 8גתזס] הס1)סהט] פַהֶךַ */ (ז56ח1196701 ,56005 ,68)טת1א , זו80)ףת81181106551 [03פבק זג] 018ע תז6 !אס /י [3[ק618 :0] 5|30[6 שתן */ ;טס ז63 ב6חף|פתט :תג :603 6ַתִףָנפתט ;0 6 64חף!פחט 10 ז3] 8 :0% - או0גק /י זטס 6ח% 3%תזסץ */ : (82618, זסו6ת11, זטסן) 103 = ז6]ת201זטסון6 גנד )1 -= (501ת6001201ת11)ה16ז:1/)5 - [0:10שת1186701 :] ז50ה118608:701 = [1] 667ת01ל6ת גד וב 0 600ת11 = [0]ז50תנסקסתנד :1196002010 - [6:]1פת01ל6תוך /" 58 06 86תז0? */ , . :083% = [2]ז60ה16701ד : (9301, 0568ח7186%1, 665טת 150868 = ז16ת65701טת1 6 וד -- (1657010107טה118681)ת16ז:1])5 =- [50:]3ה6/01ת1ך :116 - [4]ז6ת01ל6פוך ו :01 ז10ת665701טת115681 = [61]3:ת1186701 ז60:ה6165201ת1156%1 = [00:]4ת6?01ת11 " 8 ספת )4תזס? */ / . :03 = [0:15:ת6701חו1 : 36180 1865600065 7, 1608)5600068 = 187ת65600008701ך (1 -- (ז16ה1165600008701)ת16ז1])56 = [16ז00ת6/01ת1ך ת05701ת11065600 = [7)ז66ה01ל6תגך = :]6 ת05701ה11865660 = [10:]6ת116701 ז0ת11865600006201 = [16:)7ת6201תנך 1 +++++++++,,,,,+,+,,++ון תרשים 70. .115.21 - הפונקציה 8ת1ז%+65םניד16וטת שמת לב בוודאי לכך, שהפונקציה הראשית של שפת 6 חסרה בספריה הדינמית. הפונקציה הראשית מגדירה את נקודת הכניסה הראשונה לתכנית כאשר התכנית נטענת לזיכרון. הטכניקה שאיפשרה לנו לבצע הידור וקישור מבלי להשתמש בפונקציה הראשית, היא על-ידי הגדרה של משתנה 8060711506 שהוא מספר שלם, והצבה של הערך אחד. משתנה זה הוא חלק מהתמיכה של 6/2 בזמן ריצה. הפרטים עליו הס מעבר להיקף של ספר זה. תבחין בוודאי בכך שבתרשימים 69 עד 71 הכרזנו שוב על פרמטרים של שגרות הספריה הסטנדרטיות שמשתמשים בהם בתכנית זו, הבנו*ה לפי המודל הרחב. פקודת 01 שהשתמשנו בה כדי להדר את המודול הדינמי היא: 0 58ע/ 4110/ 28)/ 02/ 0/ 01 כאשר 08)/ משמש להוצאת ה-0065תק 5680%. גם הפקודה %ת11 שונה במידה מעטה: ,ו 0 11 011,,111005. 01,058 98.0 אתו 207 /* %!] 5תזס] תס1סתט] 8[תך */ (667ח0306701: ,7637 ,03 ,תלת680חַת1ז90118036896 מ 016 תז0 לאט /* +:ג[6150 זס] 54153516 0366 */ סו 673 בסחף1פתט " 63 64הף1פהט ;1637 64ח)1פתט 3 ג % - אנ6גת /י מחסת %06 6גתזס? */ : (א301 ו .%ת0ל)1603 = -6)ת1ססת:תסא6 6ב 0% 1 = [560:]0ח28+9201 0 - [007)1ח0866701 , = :0 0 תסל ת3560 = [0] ז50ת356701ת ז6ח701תח3660 = | 60111ת366701 ; /" ץ3 6ה% 36פז0ץ */ = [12ז50ת236701 :1 0 ו = 01ת03%6037701 1% ו 1 = (50:]3ת23%6701 7 - [14ז66ה2366201 / 1 663 = [56:]3ת2306701 :בס = [66:]4ת6701גם /," 3 6ת: 36תזסץ */ ;0 - [20:15ה316701 :0 0 ,ז1603)[68 = 567ה23%6168:701 | - [56:16ת866701ע ]3061697010 = [56:17ת01ל16גם ) ]| וו)ווווווו)))))))וווו)))אווווו\וו))וווו)ו))ו)))))ו),,וווו).)\ווו))))וווווווו/ווווווווווווווווווווווווו] תרשים 71. 115.21 - הפונקציה 8ת1:ז1608+6540 ההבדל בפקודת קישור זו הוא בכך, שנתנו שם למודול המתקבל עם הסיומת עעם. אנו גם ציינו קובצ להגדרת המודול. ניתן לראות קובצ זה בתרשים 72. הקוב+ להגדרת המודול מציין שזו שיגרת ספריה, אשר מופעלת במצב מוגן. הוא כולל תיאור ומגדיר את שתי המחרוזות עם שמות הפרוצדורות שיש לייצא. השמות הם: 6א1א1פ>!/זדכ11ז ו-טא1ד5ממ דה ססות. 6 ח1510ה06]1 00016 1 ץז3פ01 אה1 "2% ו 1 ות .א ₪ עשוה / מו וי אה 21% 1987 6תף ץק 1.0 ז6) א גת19ט א" אפס 2 כ 6 תרשים 72. קוב להגדרת המודול 208 כפי שהסברנו קודם, אם אנו רוצים להשתמש בספריה הדינמית עם קישור דינמי בזמן טעינה, אנו צריכים להשתמש באותו קובף להגדרת המודול עם ספרנית היבוא כדי לייצור ספריית יבוא. משפט ה-110קמ1 *יראה במקרה זה כך: 1 98.11 11קות1 אנו ניתן לספריה שם, למשל "08%66616.150", או כל קיצור אחר. ספריית יבוא זו יכולה להיות מקושרת בצורה דינמית לכל קבוצה של מחרוזות תאריך וזמן ה*וצרות מודולים המקושרים בצורה דינמית, כל עוד נשמר נוהל ההעברה של הפרמטרים. ------------ 168 | -----7---]7-----------808פו זס) 16ס3!וצ בָחו81ז06) זס ץ!ו18 חסוז08ו!כס3 2/ה5160ץ5 8 וח 5וחה וףסזט 5 א ד 5 א פ 5 פ א 5 א 0 8 ץ / 6 צוזסוח6ו 6זוזח= 77----------] [ | 000678109 ץ0 580!6ש 15 ץווהח3! 306 6/2ז5ץ 85זפַסזכקן הסוז68/!קק3 ד-ח------;]<*--בה--------8ח0ו ---.-----/7-רבר---------60688 זס ,ץווחוגז ,₪05 5562 פַהוז8זט0) וח זףָסזק ה0וז68ו|קקבּ צם 560 ץ'זסוח6וא 52 פַחו81 סקס 0-08 ניהול הזיכרון ע"י 25/2) במצב מוגן אפשר לנצל עבור יישומים את כל הטווח של 1618 פרט לשטח השמור 209 80 תמיכה בסביבה בינלאומית בפרק 1 הצגנו את התמיכה בשפות לאומיות ואת הכלים לטיפול בהודעות של 2. מערכת ההפעלה הוצאה לאור באחת עשרה שפות, עם תמיכה התחלתית בחמישה דפי קוד ומדפסות. היא גם תומכת במידע אחר הקשור ל-17 מדינות. ברור מכל האמור לעיל, שמערכת הפעלה כזו מיועדת לטפל בצרכים של ציבור בינלאומי. האמצעים ב-025/2) שמספקים את הפונקציות הללו הם שירותי התמיכה בשפות לאומיות (15א - %זססקט5 6אַאטקת18 8%10081א). כדי לתמוך בדרישות של ציבור זה, 025/2) מספקת שירותי מערכת לטיפול בהודעות, אשר מסייעות לתרגום הודעות התוכנה לשפות שונות. בפרק זה אנו מביאים סקירה קצרה על האמצעים השונים האלה התומכים בסביבה בינלאומית. נתחיל בסקירה על התכנית לתרגום שפות ולאחר מכן נעבור ל-871 המטפלים בהודעות ולפונקציות ה-15א. התמיכה של 05/5 בשפות לאומיות 2 יצאה לאור באחת עשרה שפות שונות. מאחר ו-0025/2) פותחה באנגלית, זוהי הגירסה הראשונה שיצאה לשוק. בעשר הגירסאות האחרות המיועדות לשאר השפות, כל ההודעות המוצגות על-ידי מערכת ההפעלה, כמו גם הפרסומים שקשורים למערכת (מדריך למשתמש, ספר טכני וכו') תורגמו לאותן שפות. רשימת השפות ניתנה בפרק 1. כדי לעזור בתהליך התרגום, כל התמליל של ההודעות נשמר בנפרד ממרכיבי מערכת ההפעלה. מערכת של אמצעים לטיפול בהודעות תומכת בגיָשה של מערכת ההפעלה להודעות אלו. אמצעים אלה נכתבו בצורה כללית, והמנגנונים והמישקים שלהם פורסמו כדי להקל על מפתחי תוכנה עצמאיים להוסיף *ישומים ותת-מערכות בשפות שונות. אמצעים לטיפול בהודעות האמצעים לטיפול בהודעות מורכבים מקבוצה של תכניות שירות וקבוצה של פונקציות. ניתן להשתמש בחלק מתכניות השירות האלה רק בזמן תהליך הפיתוח של היישום והן מסופקות רק עם ערכת הכלים למתכנת ב-05/2. שאר תכניות השירות וכל מישקי הפונקציות הם מאפיינים סטנדרטיים של מערכת ההפעלה הבסיסית. האמצעים לטיפול בהודעות כוללים שלוש תכניות שירות. 150% הינה תכנית שירות להכנת הודעות, ההופכת קוב% של הודעות לצורה שבה ניתן להשתמש בו עם פונקציות ותכניות שירות אחרות לטיפול בהודעות. תכנית שירות זו היא 200 חלק מערכת הכלים למתכנת (1001816'). סא הינה תכנית שירות, אשר מוסיפה הודעות למודול של תכנית הניתן לביצוע (קובצ 8א.). תכנית שירות זו גורמת להודעות להמצא דרך קבע בזיכרון. לכן, מערכת ההפעלה אינה צריכה לעבור דרך מערכת הקבצים כדי לשלוף הודעה מהקוב. גם תכנית שירות זו מסופקת כחלק של ערכת הכלים למתכנת. 11812156 היא תכנית להודעות עזר. המשתמש מבצע אותה כדי לקבל תיאור מפורט *ותר של ההודעה הקצרה המוצגת על-ידי המערכת או היישום. בכך, היא מאפשרת למפתח היישומים לספק שתי רמות של הודעות. תכנית שירות זו מגיעה כחלק סטנדרטי של מערכת ההפעלה. יש שלוש פונקציות דינמיות התומכות בהודעות. 120502601699886 היא פונקציה דינמית שמאפשרת ליישום לשלוף הודעה. לגבי היישום מקור ההודעה שקוף לחלוטין, והוא יכול להיות הזיכרון, או קוב+ בדיסק. הפונקציה גם מציבה משתנים בהודעות, אם קיימים בה כאלה. 51055886ת12051 מכניסה משתנה לתוך הודעה שנשלפה קודם. 1655886/ו50ס מוציאה הודעה לקובצ או להתקן. הפלט כולל מאביין של גלילת שורות, אשר עורך את ההודעה כתצוגה ב-80 טורים. ועכשיו, הבה נסתכל בכל אחת מהפונקציות האלו, ונתחיל בתכניות השירות. את הופכת קובף של הודעות לצורה המאפשרת שימוש עם פונקציות ותכניות שירות אחרות לטיפול בהודעות. תכנית שירות זו היא חלק מערכת הכלים למתכנת. היא מקבלת כקלט שני -פרמטרים: שם קובצ הקלט ושם קוב הפלט. קוב הקלט מכיל הודעות בתבנית מיוחדת שניתנת לתרגום על-ידי תכנית שירות זו. קובצ הפלט מכיל את ההודעות בצורה שבה ניתן להשתמש בהן עם פונקציות ותכניות שירות אחרות לטיפול בהודעות. לקוב+ ההודעות יש שלושה חלקים: 1. מספר משתנה של שורות הערה, שניתן להשתמש בהן כדי לזהות את הקובצ ולתעד אותו. 2. מזהה בן שלושה תווים, שמזהה את היישום (או תת-מערכת) שמשתמש בקובצ הודעות זה. 3. ההודעות עצמן. מהעשסעס 2צא 6 102 2116 ₪088886 6ם% 18 18מך ענת 6 ,אה ,118 עַס 0268066 1 6 60 ס6טסס8 15 41 %, 66א1ע [שת1תעהט :1200008א 20 :1 פסץ עפסםת6 216856 :ק20001צא 1 2116 6ם1/ ס'ת08 :200028צא 2 : 0: 1 86ע1ע | 6מ8ת1.85% 5 102080 6מפא :200058צא בצ 6 260026 41 :200071צא תרשים 73. דוגמה של קוב הודעות 221 בתרשים 73 ניתן לראות דוגמה של קוב ההודעות. כל הודעה מורכבת מכותרת שבעקבותיה בא התוכן. כותרת ההודעה כוללת את קוד הזיהוי של היישום, מספר הודעה בן 4 ספרות ותו נוסף המשמש לסיווג ההודעה. קוב הודעות יחיד יכול להכיל כ-6,000 הודעות. ההודעות מסווגות לפי: - שגיאה ‏ - ₪ (תסעזם). - עזרה | - 1 (ס[116). - | מידע - 1 (תס1)הַמזזס+ת1). - הנחייה ע (6קתסזק). - אזהרה ‏ - ש (שַתגםז8/?). יש לסיים את הכותרת בנקודתיים וברווח ( :). לאחר הכותרת בא תוכן ההודעה, שיכול לכלול עד תשעה משתנים (המשתנה נקרא גם "מזהה לתוכן משתנה") לצורך תוכן משתנה של ההודעות. היכולת להשתמש בהודעות עם תוכן משתנה מאפשר לתכניות להחזיק מספר מינימלי של הודעות. התוכן של ההודעה מוכנס תוך כדי ביצוע. תשעת משתני ההודעות מאופיינים על-ידי צירופי התוולם %9 ,... ,82 ,%1. צירוף התווים %0 משמש כסוף שורת ההודעה, כדי לבטל את ההשפעה של םז760 06871886 ו-1666 6ת/1. התווים %0 מאפשרים למשתמש להכניס נתונים, בהמשך להודעה שקיבל. קובצ ההודעות שבתרשים 73 מכיל הודעות עם משתנים שניתן להחליף אותם בכל מידע אחר תוך כדי ביצוע. שים לב לתרשים 73 וראה שמספרי ההודעות חייבים להיות רציפים ושלמים. למרות שהספרות הריקות חייבות להכיל אפסים, אין המספר הראשון חייב להיות 0000. שם קובצ ההודעות חייב למלא אחר כללים מסוימים. הוא חייב להיות בן שלושה תווים ולהיות שווה לצירוף התווים המזהה את היישום. הסיומת חייבת להיות הסיומת הסטנדרטית 1565. מפתחי יישומים צריכים לנסות ולהגדיר את הזיהוי של היישום בצורה כזו, שיהיה :יחודי וקל לזכירה. כפילות בשמות של קבצי הודעות אינה מהווה בעיה, כל עוד היישומים נמצאים במדריכים נפרדים והם משתמשים בשם הקובצ (של ההודעות) המלא, כולל מסלול, כדי לשלוף הודעה מהקובף. לדוגמה, בתרשים 73 המזהה הוא 2צא, ולכן שם קוב% ההודעות יהיה 2.11562צא. פאז מוסיפה הודעות למודול הטעינה (קובצ+ ₪א8%). היא מסופקת כחלק של מערכת הכלים למתכנת. ישנם שלושה קבצים שמעורבים בתהליך הקשירה: קוב הודעות (15)02/.), קוב הניתן לביצוע (מַא₪.) וקוב+ 850611 מיוחד שמכיל את את ההנחיות לתכנית השירות לקשירת הודעות. תכנית שירות זו קוראת קוב% 1 כדי לקבוע אילו הודעות מתוך קובף ההודעות יש לקשור לאיזה מודול טעינה. בתרשים 74 תמצא דוגמה של קובא 85611 המשמש כקלט לתכנית השירות. בתרשים 74, השתמשנו בסימן "גדול מ-" (<) כדי להורות לתכנית השירות ששורה זו מכילה את השם של מודול הטעינה, שאליו יש לחבר את הודעות העוקבות. הסימן "פחות מ-" (>) מצביע על השורה שמכילה את שם קובצ ההודעות שממנו יש לשלוף את ההודעות העוקבות. ההודעות שצוינו מועתקות לאחר מכן לתוך סגמנט הודעות, אשר מסופח לקובצ ה-₪א5. 22 מאם. 21234צא ם6:6006080< . 2 צא :₪655886> 000 2 שאם. 21238צאם6:6086080< 00 2 תרשים 74. דוגמה של קוב קלט לתכנית לקשירת הודעות בהפעלה אחת של תכנית שירות זו ניתן לקשור הודעות מכמה קבצי הודעות, וניתן לחבר אותן לכמה מודולי טעינה. התהליך הזה מתקיים באמצעות קוב 1 המשמש כקוב%> קלט לתכנית השירות, ובו מופיעים שמות קבצים, שמות קבצי ההודעות ומספרי הודעות חדשים. תכנית השירות תחפש הודעות בקוב ההודעות האחרון שצוין, ותוסיף אותן לסגמנט ההודעה של מודול הטעינה האחרון שצו:ין. 156 מופעלת על-ידי המשתמש כדי לגשת להודעה מורחבת ולקבל תיאור מפורט *ותר של הודעה קצרה שהוצגה על-ידי המערכת, או על-ידי היישום. פונקציה זו מגיעה כחלק מתכניות השירות הסטנדרטיות של 05/2, והיא מאפשרת למעצב התכניות לספק למשתמש שתי רמות של הודעות שגיאה ואזהרה. דוגמה פשוטה יכולה להסביר את התועלת שבפונקציה זו. נניח שהמשתמש התקין את התכנית 21233צא שהיא מערכת הוצאה לאור שולחנית. המשתמש *ודע שהיישום דורש דיסק קשיח נוסף, אבל הוא אינו יודע מדוע. במערכת של המשתמש מותקן דיסק קשיח נוסף, ולכן נראה לו שאין בעיה. כאשר המשתמש עמד לשמור את המסמך הראשון שלו כדי לבחון את היישום, הוא קיבל את ההודעה הבאה: 1 56 60 8006 18 :12 615% קת!חזה8/ט :2020000 יישום הדוגמה שלנו מנצל את שירותי ה-11655886 ק!116, ולכן המשתמש יכול להתאושש ממצב זה מבלי לפנות למדריך למשתמש. הוא *וכל אז להקיש: 0 15₪/קו1 בנקודה' זו, תכנית השירות תשתמש במספר המזהה של ההודעה, כדי לשלוף את הודעת העזרה מקוב% הודעות העזרה של היישום. היא מציגה את ההודעה המקורית ולאחריה את הודעת העזרה. הודעות השגיאה *כולות להראות כך: 1 56 60 80046 18 %1 615% שת!חז8/ט :9920000 5 50076 0+ ה5)6ע5 116] 5260181 8 ₪565 021233 :ַחס1)החה[קאת 0 )80006 15 21234א .18865 108 600006015 600205166 6שזהן .0 0656+ 50076 ח68 )1 +ת1 50 :12 6ט6:1 1)181126ת1 6 800006 60 :2 6ט1ז0 תס 11165 שת501!א6 עתה8 עק60 :ַת0ס6+1 .קתונות1+ת 00 61076 2083 שים לב, שניתן להשתמש במשפט 1155 לשליפת הודעות לעזרה. משפט זה מאפשר להדליק או לכבות את שורת העזרה במסך, וניתן להשתמש בו גם להפעלת לצורך שליפת הודעות עזרה. קבצי הודעות העזרה (בנים באותה דרך שבה גבנים קבצי הודעות רג'לים. ההבדלים היחידים הם בכך שתו סיווג ההודעות בהודעות העזרה הוא 11, והתו האחרון בשם הקובצ הוא "ת" כדי לציין שזהו קובץ הודעות עזרה. בדוגמה שלנו שם קוב ההודעות י*היה: 66 ד צא דוגמה זו מראה גם כיצד מכניסים תוכן משתנה להודעות. אם נתבונן שוב בתרשים 73, נראה שההודעה 20000צ% אינה מכילה למעשה את אות הכונן. במקומה ישנו הסימן %1, המזהה תוכן משתנה, אשר היישום מחליף באות הכונן המתאימה, לפני שההודעה מוצגת על המסך. זו דוגמה פשוטה המראה איך מספר קטן של הודעות מקוצרות *כול להתאים למגוון רחב של הודעות ספציפיות למשתמש. ועכשיו נסתכל בשלוש הפונקציות הדינמיות, התומכות באמצעים לטיפול בהודעות של 05/2. 6 ממאפשרת ליישום לשלוף הודעות שתכנית השירות ₪1502א)חא עיבדה אותן קודם. הפונקציה מחפשת את ההודעה בזיכרון תחילה, ועוברת לחפש בקוב% ההודעות, רק אם ההודעה אינה נמצאת בסגמנט ההודעות הקשור לתכנית. זאת אומרת, שעל-ידי שימוש באמצעים לטיפול בהודעות, ‏ *וכל המתכנת לבחור את ההודעות שיוטענו עם התכנית ואת אלו שתשארנה בדיסק. ניתן לעשות זאת מבלי לשנות את קוד המקור של התכנית. בקריאה לפונקציה זו מעבירים את הפרמטרים הבאים: - שם קוב ההודעות (כולל המסלול). - מספר ההודעה. - טבלה של מחרוזות להצבה במקום המזהים לתוכן המשתנה, אם הם קיימים. - מחוונים למאגר, שבו הפונקציה תציב את ההודעה המתקבלת ואת אורכה. 6 מבצעת רק את החלפת המשתנים בפונקציה 11695886 0266 שתוארה קודם. פונקציה זו שימושית מאוד, מכיון שהיא מאפשרת לתכנית לשלוף הודעה מקובף הודעות בעזרת הפונקציה 11655886 026% לפני שהתוכן של המשתנים ידוע. כאשר החלק המשתנה של ההודעה *דוע, משתמשים בפונקציה 86 פכפדי לבנות את ההודעה המושלמת. פונקציה זו מספקת אלטרנטיבה לקשירת הודעה למודול טעינה. מעצב תכניות יכול להמנע מהקצאת זיכרון להודעה זו בזמן הביצוע של התכנית, ואז הקצאת זיכרון תתרחש כאשר ההודעה תקשר למודול הטעינה. ניתן לשלוף את ההודעה לפני שהחלק המשתנה שלה ידוע, אבל כל עוד ניתן להכנס לקובצ ההודעות. השליפה עשויה להתבצע לפני פעילות שעלולה למנוע את הגישה לקוב ההודעות. ניתן להשתמש אז ב-51655866ת12051 כדי להוסיף את התוכן המשתנה להודעה לצורך תצוגה. הפרמטרים המועברים לפונקציה זו הם בהכרח זהים לאלה של 50200/1655886ס0ע, 24 פרט לכך שהם כוללים מחוון להודעה שנמצאת כבר בזיכרון, במקום שם קוב ההודעות. 6 משמשת לביצוע פלט של הודעות. הפלט מבוסס על מקשר, ועל כן היישום *כול לבצע את הפלט להתקן פלט קריא, כמו המסך והמדפסת, או שהוא *וכל לבצע פלט לקובצ. מאחר ופונקציה זו מבוססת על מקשר, נלתן לבצע ניתוב ק/פ של ההודעות. הפרמטרים לפונקציה זו הם קוב הפלט או המקשר להתקן, מחוון למאגר המכיל את ההודעה ואורך ההודעה. סיכום של האמצעים לטיפול בהודעות אנו יכולים לראות עכשיו של-05/2 יש מערכת מקיפה מאוד של אמצעים לטיפול בהודעות. כפי שציינו קודם, אמצעים אלה הם התשובה לדרישה לספק סביבת מערכת שבה ניתן לתרגם *ישומים בקלות לשפות שונות, אך היתרינות שהם מספקים הם רבים :ותר. באמצעים אלה לטיפול בהודעות יש גמישות שמאפשרת להם לשפר את הפיתוח, וכפועל *וצא מכך - את השימושיות של היישום. מומחים להנדסת אנוש *וכלו לערוך את תוכן ההודעות מבלי לטפל בתכנות של היישום. המתכנת יוכל לשנות בקלות את המיקום של ההודעות בזמן ריצה כד* לשפר את ביצועי המערכת, והוא :וכל להמנע ממצבים ללא מוצא (כמו ניסיון לקרוא הודעת שגיאה מדיסקט, כדי להודיע למשתמש שהדיסקט אינו ניתן לקריאה). ולבסוןף, ניתן לשפר את השימושיות של היישום על-ידי הוספה של רמה נוספת של הודעות עזרה, אשר ניתן לנתב אותן להתקנים וקבצים אחרים. קביעת התצורה של המערכת למדינות שונות למוצר בינלאומי כמו 25/2) יש אתגרים טכניים שאיתם הוא צריך להתמודד. הוא צריך להתמודד עם העובדה שבמספר מדעות, יש הבדלים בין המקלדות, המסכים והמדפסות. מדינות שונות מציגות את אותו מידע בצורות שונות, כמו לדוגמה הצגה של. התאריך והזמן בצורה שונה, שימוש בסימני מטבע שונים, או שימוש בסימן אחר במקום נקודה עשרונית. כדי לסבך את הדברים, שפות במספר מדינות דורשות סימנים שאין להם כל משמעות בשפה של מדנה אחרת. ואם זה לא מספיק, אז יש מדינות המשתמשות בקודים אחרים בני 8 סיביות כדי לייצג את אותו תו! ולבסוף, מספר מדינות דורשות *ותר מ-256 סימנים (תווים), ומכאן שלא ניתן לקדד את כל הסימנים בקוד בן 8 סיביות. הגדרה מפורטת של כל הצירופים בשמונה סיביות נקראת דף קוד (ששָאק 0006). בגירסאות מוקדמות *ותר של 025 ניתן למצוא אמצעים המטפלים בחלק מהבעיות הללו. 05/2 מתבססת על הגישה הזו ואף מרחיבה אותה, מכיון שהיא עומדת בדרישות של ציבור בינלאומי גדול הרבה *ותר. ציבור גרול הינו פוטנציאל שיווקי גדול יותר ליישומי 05/2. האמצעים ב-025/2) שמתמודדים עם האתגרים האלה נקראים באופן כלכלי התמיכה בשפות לאומיות (15א - %זסקקטפ5 6קהטקת18 [8מס61גא). ניתן לחלק את האפשרויות ש-15 מספקת לשלושה תחומים: 205 1. התאריך, הזמן וסימן המטבע לפי הנהוג בכל מדינה (נקרא גם פרופיל המדינה). 2. תמיכה במספר דפי קוד. 83 ערכת תווים המבוטסת על בית כפול (- 56% 0818050 356 16סטסכ 5),, אשר מאפשרת שימוש בשפות עם *ותר מ-256 תווים (למשל, *פנית). מידע התלוי במדינה כחלק מארכיטקטורת 5אז, כל מדינה מזוהה על-ידי קוד מדינה בן שלוש ספרות. 05/2 משתמשת בפרופיל המידע התלו* במדינה כדי לציין את הדרך שבה כל מדינה משתמשת כדי להציג מידע מסוים. הטבלה המציגה את כל שבע עשרה המדינות שלגביהן יש ב-25/2) פרופיל מידע נמצאת בתרשים 75. פריטי המידע הנמצאים בפרופיל המדינה הם: צורת העריכה של התאריך (שנה, חודש, *ום). החוצצ בין מרכיבי התאריך. צורת העריכה של הזמן (שעות, דקות, שניות). החוצצ בין מרכיבי הזמן. סימן המטבע. צורת הכתיבה של ערכים כספיים. מספר המקומות אחרי הנקודה בכתיבת ערכים כספיים. החוצ* בין השלם לשבר במספר עשרוני. החוצף במספרים מעל אלף (1,000 - כאן, הפטיק הוא החוצצ). החוצ% בין נתונים ברשימה. דף קוד עיקרי. כפי שניתן לראות, המידע התלוי במדינה עונה על תהליכי עיבוד במערכת שחייבים להעשות בצורה שונה בשפות שונות ובמדינות שונות. תהליכי העיבוד של המידע התלוי במדינה משלימים את תכנית התרגום של 05/2 עבור אחת עשרה שפות. : המעבר מדף קוד אחד למשנהו דף קוד הינו הקשר בין 256 הצירופים במספר בינארי בן 8 סיביות לבין 256 סימנים גרפיים שונים שהם מייצגים. לדוגמה, בדף קוד 437 המספר הבינארי 1 מייצג את האות האנגלית 8. כפי שהזכרנו בפרק 1, 05/2 תומכת בדף קוד אמריקאי (437, 8450611 מורחב), בדף קוד פורטוגזי (860), בדף קוד קנדי-צרפתי (863), בדף קוד נורדי (865) ובדף קוד רב-שפות. המטרה בהגדרה של דף קוד רב-שפות היא להוציא את כל התווים הגרפיים שאינם הכרחיים, ולהגדיר את 256 הסימנים החשובים ביותר הדרושים לקידוד הטקסט במספר גדול ככל האפשר של שפות. על-ידי שימוש בדף קוד רב-שפות, היישום *כול להגדיל למקסימום את *כולת הניידות שלו בין מדינות שונות. הצורך בדף קוד אינו מוגבל רק לתרגום שפות. התקני תוויס מהדור החדש יכולים לתמוך בדפי קוד מתוכנתים ובהגדרות של סימנים (הנקראים גם טבלת סימנים וטבלת פונטים). תמיכה בהתקנים אלה הינה דרישה נוספת המוטלת על מערכת ההפעלה. 26 קוד דף קוד דף קוד המדינה המדינה מקלדת עיקר: משנ: ארצות הברית 1 5 37 590 אנגליה 8 אט 37 100 צרפת 3 הת 37 100 גרמניה 9 08 37 50 איטליה "39 עד 37 00 ספרד 0% ספ 37 00 דנמרק 05 אפ 55 50 פינלנד 08| טפ 37 00 הולנד 1 טא 37 0 נורווגיה 7 סא 55 100 פורטוגל 21 0 00 50 שוודיה 6 צפ 37 100 אסיה 99| -- 37 00 אוסטרליה 01 -- 37 00 בלגיה 02 58 37 0 קנדה 002 קס 3 00 אמריקה הלטינית 3 1 37 50 שוויצריה 1 6 37 50 ערבית 5 -- 1% 09 עברית 2 -- 02 00 יפו 1 -- 12 37 קוריאה 02 - 4 37 סין 6 -- 16> 37 טיוואן 08| -- 08 37 תרשים 75. תמיכת 18 - סימולים של מדינות, מקלדות ודפי קוד 2 מסטפלת בדרישות אלה על-ידי כך שהיא עורכת מעקב של דף הקוד הפעיל ביחס לכל תהליך במערכת. וכזכור, ניתן להכין ‏ רק שני דפי קוד שונים במערכת. קביעת דפי הקוד נעשית בקובצ 5צ160.5עא00% וההכנה שלהם מתבצעת בזמן העיבוד של הקובצ הזה בזמן הת:חול של המערכת. מערכת ההפעלה תעביר בצורה אוטומטית את דף הקוד המתאים לתהליך הפעיל באותו רגע. דף זה ישמש מעתה לתמיכה בק/5 להתקנים כמו המקלדת, המסך והמדפסת. דף הקוד העיקרי הוא אחד מהמאפיינים הנכללים במידע המוגדר לכל קוד מדינה. בתרשים 75 תמצא רשימה של מדנות שב-005/2) יש מידע לגביהן. הרשימה כוללת את קוד המדינה, סידור המקלדת ודף הקוד הראשי והמשנל. ערכת תווים כפולי בתים ערכת תווים כפולי בתים (2305 - 566 078:8000 66ע3 16סטסכע) מורכבת למעשה מתווים בגודל של בית אחד ומתווים בגודל של שני בתים. טווח הערכים הבינאריים בני 8 סיביות מ-0011 עד 11עע מחולק על-ידי 365 לטווחי משנה. אס הקוד של התו נמצא מחוצ לטווחי המשנה, הוא מוגדר כתו בגודל של 207 בית אחד. אס התו נמצא בתוך אחד מטווחי המשנה, הוא מוגדר כבית הראשון של תו בגודל של שני בתים. ב-025/2) הטווח שבו ניתן להגדיר טווחי משנה לבית הראשון של תו בן שני בתים מוגבל ל-818 עד 6ע (כולל). ץכ הינה פונקציה דינמית שניתן להשתמש בה כדי לקבל את טווחי הערכים של 2805 שצוין, או של ברירת המחדל של המערכת. המשפט האומר ש-2/ 25) מאפשרת 28065 פירושו, שכאשר מרכיבים של 2/ 005 מטפלים במחרוזות תווים, תווי 2205 לא *פוצלו אלא *וצגו בצורה הנכונה. תכנית התרגום של 025/2) אינה כוללת בגירסה 1.0 שפות 22305, אבל יש לה את הבסיס לכלול זאת. האמצעים של 05/2 המטפלים ב-5זא ניתן לחלק את האמצעים של 05/2 המטפלים ב-5.זא לשלוש קבוצות: 1. הוראות התיחול של המערכת הנכללים בקובצ ה-5צ10.5עא60. 2. פקודות שהמשתמש יכול להפעיל במהלך העבודה הרגיל של המערכת. 3 פונקציות דינמיות שהיישום יכול להפעיל. פקודות 15א בקובף 5צ%16.5א60% בפרק 9 נתאר את קוב 5צ10.5ע00%. שלושת המשפטים המוגדרים בקוב 0.5 שמתייחסים לתמיכה ב-5עא הם צאדצז60, 6005405 ו-סא1עזטשמס. תחת=צאדאז0) משמש לציון קוד המדינה. המערכת תשתמש במערכת מוגדרת מראש של פריטי מידע התלויים במדינה והקשורים לאותו קוד. [עָעע], אאא= 0605240 משמש להפעלה של דף קוד אחד, או שניים. =0אא1ע גורם לפקודות מסוימות להשלח להתקן תו התומך במעבר בין דפי קוד. המידע במשפט >0עא1/מכ והפקודות הנשלחות להתקן מתייחסים להתקן ספציפי. פקודות 16 למשתמש 72 מופעלת עכ-ידי המשתמש משורת הפקודה ומשמשת לקביעה (או לשאילתה) של דף הקוד ל-ת565810. תהליכים שיופעלו לאחר מכן ב-ת565810 זה ישתמשו בדף הקוד שהמשתמש קבע בפקודה זו. תת-מערכות המקלדת, המסך והמדפסת *שתמשו במידע זה, כאשר הם יבצעו 5/7 בשם התהליך. שים לב: התמיכה בחילופי קודים בתת המערכת של המדפסת מוכלת בתכנית השירות הקובעת את תור ההדפסה (:500016). לכן, כדי להנות מהיתרונות שבחילופי דפי קוד, יש לדאוג שתכנית התורים תהיה פעילה. 208 מישקי תכנות דינמיים ל-5א פונקציות 15 הבאות הן חלק אינטגרלי מהמישק לתכנות יישומים ב-058/2. 0557 קובעת את דף הקוד לתהליד זה. הפרמטרים היחידים הם המספר המזהה של דף הקוד ומלה שמורה של אפסים, אשר משמשים לקביעה של דפי הקוד של המסך והמקלדת. מערכת הקבצים משתמשת בדף הקוד של התהליך כדי לתחל את הק/פ למדפסת. אבל, יש צורך להטעין את ה-ז0016ק5 אם רוצים שלמדפסת של דף הקוד תהיה השפעה על המדפטת. קט מחזירה את מספר דף הקוד הנוכחי שנקבע לתהליך ואת רשימת דפי הקוד העומדים לרשות המערכת. 05/2 מאפשרת כרגע לשני דפי קוד בלבד להיות פעילים במערכת. 0 מכבלת את פרופיל המדינה שצוינה, או את ברירת המחדל של המערכת, הפרטים המוחזרים הם: קוד המדינה, דף הקוד הנוכחי של התהליך, וכל שאר הפרמטרים הנכללים בפרופיל המדינה שפורטו קודם לכן. 205689087 מבצעת מיפוי של גודל האות (באנגלית) במחרוזת בינארית. מיפוי לפי גודל האות פירושו מיפוי של מחרוזת מעורבת באותיות קטנות וגדולות לאותיות גדולות. 1 (י וב בי מחזירה את טווחי הערכים של ה-305כ שצוין, או של ברירת המחדל של המערכת. אלה הם טווחי ערכים של תווים המשמשים כבית הראשון בתווים של בית כפול. 209 פרק 9 שינוי ברירות המחדל: נקודת המבט של המשתמש כאשר אתה מפעיל את המחשב.האישי שלך לאחר שהתקנת את 05/2 על הדיסק הקשיח, פקודות ה-011 מבצעות בצורה אוטומטית מספר בדיקות. אם לא מתגלות שגיאות בחומרה, פקודות אלו מתחילות את ה-1ק1 (1086 התהזקסעק [1018ת1) של מערכת ההפעלה. מערכת ההפעלה מתחלת אז את עצמה, וקובעת על-ידי כך את הסביבה שבה אתה רוצה להריצ את היישומים שלך. הקביעה של הסביבה שבה יתבצעו היישומים נעשית בשלושה שלבים: = שלב הקונפיגורציה (תצורה). * שלב הביצוע האוטומטי. * שלב בחירת התכנית. בשלב הקונפיגורציה, 025/2) מחפשת קובף מיוחד המכיל מידע על הפרמטרים שנקבעו לתיחול המערכת. שם הקובף המיוחד הזה הוא 5צ916.5א00, הזהה לשם הקוב המשמש את 2025 לקביעת הקונפיגורציה של המערכת. מערכת ההפעלה קובעת את האופציות לפי הערכים שצוינו בקובצ הקונפיגורציה, ולגבי אותם פרמטרים שלא צוינו או שצועו בצורה לא נכונה, היא קובעת ברירות מחדל של ערכים ופעולות. התצורה של המערכת חשובה, מכיון שהיא קובעת איך יישומים יטופלו בזמן שהמחשב פועל. במלים אחרות, לאחר שנקבעה תצורת המערכת לא ניתן לשנות אותה בצורה דינמית. ניתן לשנות את קוב הקונפיגורציה, אבל השנויים ישפיעו רק לאחר שיתבצע אתחול (6560?) של המערכת (בעזרת צירוף המקשים 261-+6%671-41 המתחיל מחדש את תהליך התיחול), או לאחר כיבוי והדלקה. לאחר שנקבעה התצורה של המערכת, *ישומים *כולים להתבצע ואפשר לעבור לשלב הבא, שלב הביצוע האוטומטי. בשלב זה מערכת ההפעלה מחפשת קובף מיוחד המכיל פקודות שמשתמשים בהן במנחה הפקודה (%קמסזק 6תא8תות60 או, שורת הפקודה). קובצ זה נקרא כ8א5111[2.0, אשר דומה לקובף האצווה .אה המשמש ב-025)כ. כאשר מערכת ההפעלה מוצאת את קוב כעאס.קנזדתדס, מעבד הפקודות מתחיל בצורה אוטומטית ת5695910 של 05/2 ומטפל בפקודות הנמצאות בקוב זה. כך ניתן להתחיל *ישומים בצורה אוטומטית (ב-5ת565510 נפרדים מזה הנוכחי, שבו נמצא מעבד הפקודות) ללא התערבות המפעיל. כל עוד אין פקודה ב-12.0%82 5777 המורה לעבור מ-5655100 זה, ימשיך המשתמש לראות את ה-ת565510 של מעבד הפקודות. אם סיימת פקודה המורה לצאת מה-ת565510, מעבד הפקודות *פסיק את פעולתו ולמשתמש יוצג בורר התכניות עם התפריט שלו. בורר התכניות הוא שלב בחירת התכנית, אשר זמין עד אשר מכבים את המחשב, או מאתחלים אותו. בורר התכניות הוא *ישום מיוחד המציג למשתמש במחשב 200 מישק מבוקר תפריט. המישק הזה נותן את האמצעים לבצע ולשלוט בפעילויות רבות (בתרשים 76 תראה ציור של תפריט בורר התכניות כפי שהוא מוצג לפנ שהמפעיל הוסיף *ישומים, או התחיל 5655105 אחרים). בעזרת בורר התכניות ניתן לבצע את הדברים הבאים: להכנס למנחה הפקודות של 05/2. להכנס למנחה הפקודות של 05כ. להתחיל *ישומים. לעבור בין יישומים. לקבל עזרה מקוונת. כאשר בוחרים במנחה הפקודה של 05/2, המערכת בודקת אם קיים הקוב כתאס. דזאן2ס, שמכיל פקודות שניתן להשתמש בהן, בדיוק כמו בקובצ אצווה רגיל. קוב זה מאפשר לבצע פקודות שיקבעו פרטים מסוימים בסביבה של היישום, כמו מסלולי החיפוש במדריך ליישומים ולקבצי הנתונים שיתבצעו ב-ת569810 שהתחיל באותו רגע. כמובן, שאם בוחרים במנחה הפקודות של 5סכ, מערכת ההפעלה תבצע את קוב ה-05כ 6.28'7מאמסי'זה במטרה לקבוע פרמטרים לסביבת היישומים של 05כ. אופציות קונפיגורציה 02 מספקת תכנית התקנה שמסייעת בהכנת המחשב האישי להרצת 05/2, תכנית התקנה זו יוצרת את קוב הקונפיגורציה, ומאפשרת לבחור אחד מאלה: - ערכים שנקבעו מראש. - ברירות המחדל של המערכת. - ערכים שהמשתמש מכניס לאופציות השונות. 56160002 מהפשסינק .עססח 658עק ( תסתך .| פס 8 -> 6858עק ,מהעשסעק 8 5616006 סץ . ע66תנ 58 ,תסת1 .210 658עק ,026806 561606% סי' מהעפקסעת קת1תתטת סס ת6ס1שפ --ְ7---07-7777---- / %קמסעץ 6ת8ממ0ס 205 : 2 שת206061>ת1 : %קצסעץ 6תהמעס00 05/2 : מהעשסעק 8 6ע508 תרשים 76. התפריט של בורר התכניות ב-05/2, גירסה 1.0 21 לאחר ש-025/2 הותקנה, ניתן לשנות את קוב% 102.5%5א00 באמצעות כל עורך טקסט שהוא. בהמשך נדון באופציות השונות הקובעות איך 05/2 תטפל בסביבת המערכת והיישומים, ונעשה זאת על-ידי הצגת ברירות המחדל של המערכת ומשמעותן למשתמש. היכן שהדבר משמעותי, אנו גם נוקבים בערכים המדויקים שנבחרו על-ידי תכנית ההתקנה. *כול להיות שלא תרצה להשתמש בערכי ברירות המחדל של המערכת ושל תכנית ההתקנה עבור אופציות מסוימות. במקרה זה אתה חייב לכלול את האופציה ב-5צ10.5ע00 ולציין את הערך או את הפעולה שאתה רוצה. תיחול הידברותי התיחול של 05/2 *כול להיות הידברותי (6ש678061+ם1), או לא-הידברותי. תסתתתאסטפטה ברירת המחדל של המערכת: המתן לתגובת המשתמש (על- ידי הוצאת מנחה) לפני שתמשיך את תיחול המערכת. בזמן ש-05/2 קובעת את התצורה של עצמה, היא עלולה להתקל בבעיה עם אופציה שצוינה בקובצ הקונפיגורציה. כאשר היא נתקלת בבעיה, היא משתמשת בערדך של ברירת המחדל לאופציה זו, כדי לסיים את התיחול. ואז, לאחר שטיפלה באופציות של הקונפיגורציה אבל לפני שהיא מטפלת בביצוע אוטומטי, 2 תציג את הודעות השגיאה אם יש כאלו. בנקודה זו, אם בחרת בתיחול הידברותי, מערכת ההפעלה תנחה אותך ללחו> על מקש ש66ם₪ כדי לציין שאתה מוכן להמשיך. אם בחרת אחרת, מערכת ההפעלה תעבור אוטומטית לשלב הבא של התיחול. אם אין בעיה באופציות של הקונפיגורציה, 25/2) ממשיכה לשלב הבא מבלי לעצור. בדרך :ו, שבה מערכת ההפעלה ממתינה לתגובה שלך, היא מבטיחה שאתה ער לבעיות שהיא נתקלה בהן עם האופציות של הקונפיגורציה. עם זאת, ברור שמערכת ההפעלה חייבת לתחל את עצמה מבלי להעצר בגלל תקלות, כדי שתוכל לתקן את השגיאות על-ידי שעוי של קובף הקונפיגורציה, או כדי שתוכל לבדוק את החומרה. ישנם מצבים שבהם לא *היה מפעיל ליד המחשב, כמו במקרה של מחשב הממלא תפקיד של שרת קבצים ברשת. במקרה זה, תרצה שמערכת ההפעלה תבצע 121 ללא התערבות המפעיל. פעילויות של מערכת הקבצים האופציות המת'יחסות למערכת הקבצים משפיעות על ביצועי הק/פ לקבצים בלבד. הביצוע של הק/פ לאובייקטים אחרים שאליהם מערכת הקבצים *כולה להכנס, כמו התקני קבצים למשל, נשאר ללא שינול. 8% ברירת המחדל של המערכת: מערכת הקבצים תקצה ותשתמש ב-3 מאגרים (1+6:5ט) לניהול הק/5פ לקבצים. ברירת המחדל של תכנית התקנה: מערכת הקבצים תקצה ותשתמש ב-30 מאגרים לניהול הק/פ לקבצים. 202 של לש רשאת :4 מערכת הקבצים משתמשת במאגרים פנימיים כדי לנהל את תנועת נתוני הקוב בי היישום לבין הדיסק/דיסקט. היישום מציין נתוני קוב במונחים של בתים, ומערכת הקבצים מתרגמת את הבתים לסקטורים לצורך ביצוע הק/פ להתקן הבלוקים. סקטור הוא בלוק של נתונים בעל אורך קבוע של 512 בתים. נתונים בקובצ ממלאים בד"כ מספר סקטורים בצורה מלאה, והיתרה ממלאת סקטור רק בצורה חלקית (בהתחלה או בסוף הקובצ+). מערכת הקבצים משתמשת במאגרים הפנימיים כדי לנהל את הסקטורים החלקיים הללו. הגדלה של מספר המאגרים מאפשרת למערכת הקבצים לטפל בק/5 ביעילות גבוהה יותר. אולם, ישנה נקודה שמעבר לה הגדלה נוספת במספר המאגרים אעה מביאה לביצועי ק/פ טובים *ותר. למעשה *כול לקרות אפילו ההיפך. המספר המתאים ביותר למאגרים במערכת הקבצים תלוי במספר גורמים, כמו כמות הזיכרון שיש במערכת וסוג היישומים שאתה מריצ. כדי לקבוע מה המספר האופטימלי של המאגרים יש לבצע מספר ניסויים עם מספר שונה של מאגרים. כ 9 ברירת| המחדל של המערכת: אל תקצה זיכרון| מטמון (6ת680) עבור הדיסק. ברירת המחדל של תכנית בהתקנה: הקצה 6448 לזיכרון מטמון לדיסק. ה-67167 660106 של הדיסק הקשיח ב-025/2) תומך בזיכרון מטמון לגבי אותם דגמים במשפחת 5/2 שעליהם 05/2 יכולה לרו+ (דגמים 50, 60, 70 ו-80). זיכרון מטמון הינו מאגר ("1+6טס) שה-61ש011 660166 משתמש בו כדי לאחסן באופן זמני מידע שנקרא מהדיסק הקשיהח. טכניקה זו עשויה לשפר את ביצועי הק/פ לקבצים. אם המידע הנדרש נמצא בזיכרון מטמון, נחסך הזמן הדרוש להבאתו מהדיסק הקשיח. כמות הזיכרון האופטימלית שיש להקצות לזיכרון מטמון תלו*ה במספר גורמים, כמו כמות הזיכרון במערכת, ותדירות ביצוע פעולות הק/פ9 לקוב% והיקפן. כדי לקבוע את הגודל האופטימלי של זיכרון מטמון יש לערוך מספר ניסויים עם ערכים שונים. תמיכה בהתקנים כדי להשתמש בהתקן אחר מאלה שמערכת ההפעלה תומכת בהם בצורה אוטומטית, צריך לספק 6ץט6"1 660166 לאותו התקן. הדבר חשוב במיוחד בהתקן מבוקר פסקים. אופציית התמיכה בהתקן מאפשרת לגרום למערכת ההפעלה להתקין את ה-0710015 660106 לאותם התקנים. ₪ ברירת המחדל של המערכת: התקן רק את ה-0:5ט671 060166 הבסיסיים של 05/2. מערכת ההפעלה מתקינה בצורה אוטומטית 6110078 6601606 לקבוצה של התקנים הכוללת את המסך, המקלדת, המדפסת והדיסק/דיסקט. הדבר מאפשר שימוש מיידי במספר התקנים. אולם, אתה *כול להשתמש בהתקנים אחרים על-ידי כך שתזהה את ה-75ַ6:106 660166 למערכת ההפעלה. אתה יכול גם לציין 660106 5 שמחליפים 671615 660106 מגירסה קודמת במטרה להחליף אותם, או להרחיב את מגוון הפונקציות שהם תומכים ביחס להתקן. למעשה, אתה יכול גם להתקין 6110015 660106 של 205 ולהשתמש בהם בסביבת 05כ. 203 התמיכה במדינות שונות הדרך שבה מטופלים (תוני המסך, המקלדת והדפסת תלויה בתרבות ובשפה של המשתמש במערכת. מאחר ו-025/2) הינו מוצר בינלאומי, חשוב שתהיה למערכת זו האפשרות להתאים את עצמה למנהגי המדינה ולשפתה. הפריטים שתלויים במדינה כוללים את צורת ההצגה של התאריך והזמן, חוצץ עשרוני וסימני מטבע. השפה משפיעה על מערכת התווים (דף קוד), מיפוי גודל האותיות, סדרי המיון ועל סביבה של מערכת תווים כפולי בתים. בפרק 8, בחלק על המידע התלוי במדינה, תמצא תיאור מפורט *ותר של האופציות האלה ואיך להשתמש בהן. באופן כללי, בכל פעם שאתה מציין 8, אתה חייב לציין גם את סעאזעמס. 0 ברירת המחדל של המערכת: השתמש במערכת התווים המקומית לגבי המסך והמדפסת, בתנאי שההתקן תומך בפונטים המתאימים. עבור המקלדת השתמש במערכת התווים, כפי שצוינה באופציה אדא 60 צאץ 60 ברירת המחדל של המערכת: טפל במידע התלוי במדינה לפי הנהוג בארצות-הברית ובשפה האנגלית. סעאזעטטפ ברירת המחדל של המערכת: אל תכין את ההתקן להחלפת דפי קוד. היקף ההגנה המעבד 80286 מספק מנגנון הגנה הכולל רמות הרשאה לביצוע הוראות מוגנות, אבל ההגנה מתייחסת רק ליישומי 05/2. 00 ברירת המחדל של המערכת: אל תאפשר ליישומי 05/2 להפעיל הוראות ק/פ מוגנות, כלומר אל תאפשר בקרה ישירה של ההתקן. יישום 05/2 מתבצע לרוב ברמת ההרשאה הנמוכה ביותר, וכדי שהוא יוכל לבצע הוראות ק/5, עליו לקבל הרשאת ק/פ (1021) ממערכת ההפעלה. ל-660106 6 ב-05/2 יש תמיד הרשאת ק/5 כדי שיוכל לשלוט בהתקן. פקודות הק/פ המוגנות כוללות את א1 ו-01[1, אשר מעבירות פקודות ונתונים *שירות לכניסות של ההתקן ומתוכן. הן גם כוללות את הפקודות 611 ו-511, אשר מנתקות ומאפשרות בהתאמה פסקי חומרה. יישום *כול לפגוע ביכולתם של *ישומים אחרים להשתמש בהתקן. לכן 05/2 דורשת מהמשתמש לאפשר ליישום לגשת ישירות לחומרה (היישום אינו *כול לשלוט ישירות בהתקן, אלא אם ציעת ‏ את האופציה הזו בקוב הקונפיגורציה). צע0%ע0700ע ברירת המחדל של המערכת: קבע את הקונפיגורציה הן לסביבת 2005 (מצב אמיתי) והן לסביבת 05/2 (מצב מוגן). מערכת המוגנת בצורה מלאה היא זו הפועלת ללא סביבת 205, אלא במצב מוגן בלבד. בסביבת 2)0025, או במצב אמיתי, יישום 2005 יכול לבצע כל פעולה ללא כל הגבלה, כולל גישה ישירה למרחב הכתובות בין 0 ל-8א640 וגישה ישירה 24 להתקן, אפילו אם אתה קובע שסביבת ה-025 צריכה להיות קטנה מ-640%8, גם אז *כול יישום ה-205 להכנס לכל מרחב הכתובות שמתחת ל-8א640. באופן דומה, התקנים שחייבים להיות משותפים במערכת רבת משימות הינם פגיעים יותר מיישומי 005 בגלל האופי החד-משימתי שלהם. לכן אפשר לומר, שההגנה שהמערכת מספקת אינה מושלמת כאשר מתבצעות פעולות בזמן אמיתי. לעומת זאת, אם תחליט להרי+ רק יישומי 05/2, אין לך צורך בסביבת 5כ. היתרונות שתשיג הם רמה גבוהה *ותר של הגנה ומרחב זיכרון גדול יותר שיעמוד לרָשות *ישומי 05/2, מכיון שמרחב הכתובות מתחת ל-640%3 אינו מוקדש *ותר לסביבת ה-05כ. סביבת היישומים ב-05/2 כדי לעזור לך לנהל את יישומי 05/2, ישנן אופציות רבות הנוגעות לדרך שבה מערכת ההפעלה תנהל קישור דינמי ולדרך שבה אתה תציין תכניות שאתה רוצה להרל>. 3 ברירת המחדל של המערכת: השתמש במדריך הראשי של ההתקן שממנו הותחלה (121) מערכת ההפעלה (הדיסק הקשיח (:0) או דיסקט (:8)), כמקום שבו נמצאות הספריות של השגרות המקושרות בצורה דינמית. ברירת המחדל של תכנית ההתקנה: השתמש במדריכים שמכילים את קבצי המערכת, כפי שנקבעו על-ידי תכנית ההתקנה. 2 חייבת לאתר את הספריות. של המישקים הדינמיים שהיישומים משתמשים בהם, מכיון שהיא צריכה להטעין אותן ולפתור את הקישורים ביישומים. החיפוש אחר הספריות הדינמיות נעשה בצורה אוטומטית, והוא מקיף את כל ה-5ת565510 ואת כל היישומים ב-05/2, על-ידי ציון תת-מדריכים שונים לחיפוש אחר ספריות, אתה *כול לארגן את הספריות בתת-מדריכים בהתאם לקריטריוניסם שלך ולשלוט בסדר שבו *בדקו תת-המדריכים האלה. ברירת | המחדל של המערכת: השתמש ‏ במעבד בפקודות 5 ובבורר התכניות של 05/2 כמישק למשתמש. ברירת המחדל של תכנית ההתקנה: השתמש בבורר התכניות של 2 כמישק למשתמש ובמעבד הפקודות 5₪א010.8 עס הפרמטר כא6. דא התכנית של בורר התכנ*ות מתחילה לפעול מיד לאחר סיום התיחול של המערכת, והיא אחראית לניהול הגישה שלך ל-5ת505510, או ליישומים השונים. מעבד הפקודות מטפל במישק פקודת השורה במצב מוגן. אתה *כול לבחור במישק למשתמש, ו/או מעבד פקודות משלך. אשת ברירת המחדל של המערכת: אין תכנית מערכת, שיש להרי+ אותה ברקע. ברירת המחדל של תכנית ההתקנה: התחל את התכנית המטפלת בהדפסות (5000161 6)תנזק). 205 אתה *כול לבצע ברקע תכנית לא-הידברותית במשך התיחול של המערכת, ולפני שתכנית המישק למשתמש תותחל. תכנית זו אינה *כולה לבצע ק/פ למסך, למקלדת ולעכבר, אלא דרך "קט-ססס". ריבוי משימות גורמים רבים במערכת רבת משימות משפיעים על הביצועים. ניתן לכוון אותם ולהתאימם לדרישותיך. זא ברירת המחדל של המערכת: השתמש בערך של שלוש שניות עבור פסק הזמן. קָיימִים | במערכת 6805ץת+ רבים בסיווג רג'ל, בעלי רמות עדיפות ביצוע שונות. כתוצאה מכך, 680תת1 יכול להמתין זמן מסוים עד שהוא יתבצע. תופעה זו נקראת לפעמים "הרעבה של היע"מ". כדי למנוע מצב שבו אין גישה ליע"מ, מערכת ההפעלה מגבילה את זמן ההמתנה של 686עַת? רגיל, לאחר שזמן ההמתנה עבר, היא מעלה באופן זמני את רמת העדיפות של ה-6806תת+ כדי לתת לו סיכוי להתבצע למשך פרק זמן מינימלי. גורם זה משפיע על הביצוע של פעילויות הנמצאות ברמת עדיפות רגילה. הערך האופטימלי תלו* בגורמים הבאים: - | מספר ה*ישומים שאתה מרלא בו-זמנית. - סוגי הפעילויות שהיישומים מבצעים. - התדירות שבה מתבצעות הפעילויות האלו. במלים אחרות, אתה *כול לנסות ערכים שונים ביחס ליישומים שאתה בוחר להשתמש בהם. צךזתסזאץ ברירת המחדל של המערכת: התאם בצורה דינמית, את רמת העדיפות של 686ז רגיל. : כדי להגיע לאופטימטציה בביצוע של 6808ת(+ בסיווג רגיל, מערכת ההפעלה עוקבת אחר סוגים שונים של פעללויות, כמו שימוש ביע"מ, או שימוש בק/פ. לאור זאת היא משנה בצורה דינמית את העדיפות של 68065זת+ אלה. 5פהתתד ברירת המחדל של המערכת: קבע שהמספר הכולל של 100808 שיכולים לרוצ במערכת הוא 64. 22 רמת הביצועים של יישומים במערכת בעלת תצורה מסו*מת תלויה במספר ה-176805+ שאנו מאפשרים לבצע בה בו-זמנית. אם תוסיף כרטיסי הרחבה ויישומים למערכת, יתכן ותצטרך לאפשר הפעלה של 5 נוספים. אם לא תבצע זאת, תגלה שרמת הביצועים *ורדת מכיון שכרטיסי ההרחבה והיישומים נאלצים לבצע את הפעילויות שלהם בצורה סידרתית ולא בו-זמנית. ברירת המחדל של המערכת: קבע שפלח-הזמן המקסימלי הוא 8 אלפיות השניה ופלח-הזמן המינימלי הוא ‏ 32 אלפיות השניה. 206 פלח-הזמן המקסימלי מגדיר את פרק הזמן המקסימלי שבו 686זת+ יתבצע, לפנל שהוא מאפשר ל-7686+ אחר הנמצא באותה רמת עדיפות להתבצע. חלוקה לפלח: זמן לפי השיטה המחזורית מבטיחה של-6805זת+ בעלי רמת עדיפות זהה *היו סיכויים שווים להתבצע. פלח-הזמן המינימלי משמש לשליטה במצבים מיוחדים. אם יש :ישומים שמבצעים פעילויות התלויות בזמן, תצטרך להקטין את פלח- הזמן המקסימלי, כדי לאפשר להן להתבצע בתדירות גבוהה יותר. אולם, אתה צריך להמנע מערכים נמוכים מדי, כ* בנקודה מסוימת מערכת ההפעלה תבזבז יותר זמן על תזמון וניתוב ה-6805"ת+ מאשר על הביצוע שלהם. אתה צריך להמנע מערכים גדולים מדי, כי אתה *כול לגרום לבזבוז של זמן רב בהמתנה של ה-6805זת+ לביצוע. ניהול זיכרון אתה *כול לשלוט בגורמים מסוימים המשפיעים על ניהול הזיכרון במערכת שלך. אגאאטוא ברירת המחדל של המערכת: השתמש בהעברה והזזה של סגמנטים, אם התחלת מדיסק קשיהח. השתמש רק בהזזת סגמנטים, אם התחלת מדיסקט. בניהול הקצאת שטחי האחסון בדיסק/דיסקט נמצא שני גורמים המשפיעים על ביצועי המערכת: העברה והזזה של סגמנטים. העברה של סגמנטים מאפשרת למערכת ההפעלה לשמור באופן זמני סגמנטים של נתונים על הדיסק במטרה לשחרר זיכרון פיסי לשימושים אחרים (אין צורך לשמור סגמנטים של פקודות, אלא רק לבטל אותם בזיכרון ולשלוף אותם שוב בעת הצורך מהדיסק). הזזת סגמנטים מאפשרת למערכת ההפעלה להזיז סגמנטים בזיכרון הפיסי כדי לצרף יחד חלקים פנויים בזיכרון לגוש רציף גדול יותר. העברה וזזה של סגמנטים מאפשרים ליישומים לתמוך בזיכרון-יתר. הזזת סגמנטים בלבד מאפשרת שימוש יעיל יותר בזיכרון הפיסי. אם יש יישום או כרטיס הרחבה שתלוי מאוד בתזמון, תצטרך למנוע העברות והזזות כדי להבטיח את מהירות התגובה הדרושה. אולם, הביצועים :יבואו על חשבון נלצול הזיכרון. במלים אחרות, לא תוכל להריצ אותו מספר יישומים כמקודם, וגם היישומים שתריצ *היו מוגבלים לכמות הזיכרון שבמערכת. ד ברירת המחדל של המערכת: קובצ הסגמנטים המועברים של המערכת נמצא במדריך הראשי שבהתקן המשמש לתיחול (,1ק1) מערכת ההפעלה - הדיסק הקשיח (:0) או דיסקט (:8). קובצ הסגמנטים המועברים (1116 ק8ש5) משמש לאחסון זמני של סגמנטים של נתונים שהוצאו מהזיכרון כאשר התקבלה בקשה להקצאת זיכרון שאי אפשר היה למלא אותה. אתה יכול לבודד קובצ זה בתת-מדריך או במחיצה נפרדת בדיסק הקשיח. רצוי יותר להשתמש במחיצה, כי הקוב *כול להגיע לממדים גדולים. 207 סביבת 5סכ אתה *כול לשלוט בגודל של סביבת 025 ב-05/2. 8 ברירת המחדל של המערכת: קבע את גודל סביבת 005 לפי כמות הזיכרון הכולל במערכת מינוס 8א512, או לפי הכתובת הגבוהה ביותר הנמצאת מתחת ל-640%8 (כלומר, 512%8 או 640%8). במונחים כלליים, 05/2 מעמידה לרשות, סביבת 205 את כמות הזיכרון הגדולה ביותר האפשרית מתחת ל-640%8. בחישוב זה היא לוקחת בחשבון את הזיכרון הדרוש לפעילויות במצב מוגן. אולם, אם אתה לא צריך כמות כזו של זיכרון ליישומי ₪205 שאתה מריף, אתה *כול לציין ערך קטן *ותר. כל כמות זיכרון שלא תשתמש בה עבור יישומי 2005 תשמש לפעילויות במצב מוגן. 02 תומכת במספר אופציות ש-22025 משתמשת בהן: א4מת, 085 ו-551. אופציות אלו משפיעות על סביבת 2005 בלבד. ברירות המחדל ש-0025/2) קובעת לאופציות אלו הן כדלהלן: אהמאהת ברירת המחדל של המערכת: אל תבדוק את צירוף המקשים 68%ז2011-2) בסביבת 26025, פרט למקרים בהם מתבצעות פעולות סטנדרטיות בהתקן. 5 ברירת המחדל של המערכת: אפשר ל-16 גושי בקרה של קבצים (03ע2) להפתח בו-זמנית. אל תאפשר שימוש חוזר ב-8 הראשונים, כאשר יש צורך ביותר מ-16 0605ע. 8 ברירת המחדל של המערכת: השתמש במעבד הפקודות של 25/2) התואם את סביבת ה-2005 שהוא ‏ 00%. את 60. ביצוץ אוטומטי 2 מספקת אמצעי לתיחול אוטומטי בקובצ האצווה כ]51471[2.0% הדומה מבחינות רבות לקובצ 56.887א105ז8 ב-005. אם קוב כ[2.0%8[ז1ת5178 נמצא במערכת, 05/2 תתחיל את ה-ם565510 הראשון עם מעבד הפקודות של 025/2) כדי שיתרגם את הקובף. כאשר אתה משתמש במנגנון זה אענך חייב לעבור דרך המישק למשתמש כדי להריצ *ישומים. ‏ אם לא ניתן למצוא ‏ את קוב כא6.פנזידאבי5, מערכת ההפעלה מריצה את התכנית המשמשת כמישק למשתמש. בתרשים 77 תמצא דוגמה של קוב> כ]זא.פש[זדתבד1ס. פקודת המפתח בקוב+ כ]/5'41115.6 היא הפקודה ‏ 7א5'78. אתה יכול להשתמש בפקודה זו במנחה הפקודות של 025/2), אך היא יעילה הרבה יותר אם נשתמש בה בשיתוף עם מנגנון התיחול האוטומטי. תכנית או קובף אצווה המזוהים על- ידי פקודת ‏ 51887 מוכנסים לתוך ת5655910 נפרד ומבוצעים בו. ישנה פקודה דומה, הנקראת אזזא, שמשתמשים בה בקובא ה-5צ2)2/162.5). אולם, ניתן להשתמש בפקודת א1ז3 רק להרצת תכניות לא-הידברותיות, אשר מתבצעות בעיקר ברקע. ציוו פרמטרים של הסביבה באמצעות הפקודות צעדגק, ז1דהקכ, דקואסתע ו-551 משפיע ‏ רק על היישומים שפועלים באותו ת565910 שבו מתבצע הקובף כא.שנזדת51. אפשר לגרום לקוב+ אצווה אחר להתבצע ב-ם565510 אחר על-יד: שימוש בפקודת 518871, ואז הוא :וכל לבצע פקודות שיקבעו את הטביבה. פקודות אלו תתבצענה לפני שיבוצע היישום. 208 ;ת052;6:800ס:6:;6 צדאק סה 507 661605 1ת4ס %תנססקה 14871פ דזאם קובע את מסלול החיפוש במדריך כדי לאתר תכניות. מתחיל ת5095910 אחר המרי את תכנית התקשורת האסינכרונית - ממססה. מתחיל ת565510 אחר המרי%> את תכנית העריכה - 6816058. מתחיל מ865910 אחר המרי% את תכנית טסידור הפגישות - סתנססקה. מפסיק את פעולת ה-ם869810 הנוכתח'. תרשים 77. דוגמה של קוב האצווה ]115.60 בחירת תכניות בחירת תכניות הוא השלב שבו מתבצעות כל הפעולות של המפעיל, עד אשר מכבים את המחשב או מאתחלים אותו שוב. ברירת המחדל של 05/2 לתכנית המישק למשתמש היא בורר התכניות (56160%02 מ8זשסעע). תכנית זו מאפשרת לנהל את היישומים הרצים במערכת באמצעות מישק מבוקר תפריט. כמובן שאתה יכול תמיד לבחור במנחה הפקודות ולהשתמש במנחה הפקודות של 05/2, או של 5. ממנחה זה תוכל להתחיל יישומים ו-5ח568510 שונים. אם אינך מעוניין להשתמש בתפריט של בורר התכניות כדי לעבור ת565810, תוכל להשתמש בצירוף מקשים. (16-350) כ-"מקשים חמים", שבעזרתם תוכל לעבור מ-ם5655810 פע:ל אחד למשנהו. אם החלטת בנקודה מסוימת להפעיל את התפריט של בורר התכניות, תוכל להשתמש בצירוף מקשים אחר (50ם-6071), כדי שיעבירו אותך לבורר התכניות. כל יישום 05/2 שאתה עובר ממנו ממָשיך להתבצע ברקע. אולם אם אתה עובר מסביבת 2005, הביצוע בה מושעה עד אשר אתה חוזר אליה. פקודות וקבצ' אצווה קבצי אצווה משרתים את אותה מטרה כפי שנעשה ב-205: הם מאפשרים לבצע בצורה אוטומטית רצף של פקודות ממנחה הפקודות מבלי שתצטרך להקיש את הפקודות בעצמך. פגשנו כבר מספר קבצי אצווה מיוחדים כמו כזא1.6זא21ס, אס פנזדת 51 ו-6.847מאמסדטה. קבצי האצווה ב-05/2 מזוהים בעזרת ההרחבה כ]/6., בניגוד להרחבה 27., המשמשת את קבצי האצווה של 05כ. קובצ אצווה עם ההרחבה ‏ 8₪71. לא *וכל להתבצע בשורת הפקודה של 05/2 וגם להיפך, קובא אצווה עם הסיומת כ6/8. לא יוכל להתבצע בשורת הפקודה של 09. הבדל זה עוזר לך להמנע מלהריץ קוב 209 ב ======== ו - אצווה בסביבה לא נכונה. הדבר חשוב, כי אתה עלול להריץ קובף אצווה שישנה את הסביבה באופן "קבוע" (על-ידי מחיקת קבצים, למשל). כתוצאה מכך אתה עלול לגלות מאוחר מדי, שהיישום שקובץ האצווה התחיל אותו אינו י*כול לרוצ+ במצב הנוכחי של המעבד, ושאין לך אפשרות להתאושש מהשינויים. כמו ב-2005, קובצ אצווה ב-025/2) לא רק מטפל בפקודות, אלא גם מספק מספר פקודות שניתן לשלוט בעזרתן על הדרך שבה מתבצע קוב האצווה. פקודות אלו כוללות: - אפשרות לקרוא לקבצי אצווה אחרים. - החלפת פרמטרים בפקודות. - שליטה בתצוגה של פקודות קובא האצווה. - הסתעפות לקטעים אחרים של קובא האצווה. - לולאה לביצוע חוזר של פקודות. - בחינה של מצבי שגיאה. בתרשים 78 תמצא רשימה של פקודות האצווה. ו 0-10 תרשים 78. פקודות אצווה ןכ ו ששזהס 200 פרק 10 להיכן מתקדמים מכאן? המהדורה הסטנדרטית של 025/2) מאפשרת ליישומים לנצל בצורה מלאה את הסביבה התפעולית של המיקרו-מעבד 80286, הן במונחים של הגנה וזיכרון פיסי גדול והן במונחים של ביצוע רב משימות וקישור דינמי. זאת באשר ליישומים, "הנהנים" משימוש ב-05/2. אך גם למשתמש במחשב האישי *תרונות בנושאים הבאים: - אפשרות להריצ מספר יישומים במקביל. - תהליך התקנה הידברותי. - תאימות עם 05כ. - בורר תכניות קל לשימוש. מפתח היישומים *הנה גם הוא מהארכיטקטורה הפתוחה ומהעזרים הנמצאים בערכת הכלים למתכנת. המחדורה הסטנדרטית של 05/2 הינה הגרעין שישמש בסיס לצמיחה עתידית. המהדורה הסטנדרטית של 05/2 מוצגת (בעת כתיבת הספר) בשתי גירסאות (ראה תרשים 79). גירסה 1.1 משלימה את גרעין מערכת ההפעלה עם מישקים לביצוע חלונות וגרפיקה ועם שיפורים במישק למשתמש המשולבים עם מנהל התצוגה. השלב הבא ב-05/2 הוא המהדורה המורחבת - ם201010 660ת90א₪ 05/2 - או: ₪ 05/2. מהדורה זו מוסיפה שירותים לניהול תקשורת ובסיס נתונים (ראה תרשים 80), והינה פתרון *חיד לאלה הדורשים שירותים אלה. המהדורה המורחבת היא גמישה: אתה יכול לבחור ולהתקין את השירותים שאתה זקוק להם. התמיכה בתקשורת מכסה מגוון רחב של חיבורים ‏ ופרוטוקולים, עם הדמייה של מספר רב של מסופים ופרוטוקולים להעברת קבצים. התמיכה בבסיס הנתונים הינה באמצעות המודל של בסיס הנתונים הטבלאי, שבו הניהול של הנתונים מתבצע בעזרת שפת הניהול והשאילתות הידועה בשם 50. גירסה 1.1 חלונות גירסה 1 הגנה זיכרון פיסי גדול זיכרון בפועל ביצוע רב משימות מערכת רבת-תכניות קישור דינמי תאימות ל-505 גרפיקה הגנה זיכרון פיסי גדול זיכרון בפועל ביצוע רב משימות מערכת רבת-תכניות קישור דינמ:י תאימות ל-505 תרשים 79. המהדורה ‏ הסטנדרטית של 05/2 21 * בסיס נתונ*ם * תקשורת המהדורה הסטנדרטית של 05/2 תרשים 80. המהדורה המורחבת של 05/2 מנהל התצוגה מנהל התצוגה (ז866ת8][ ת%8%10ת27656) מספק תמיכה לביצוע חלונות וגרפיקה. חלונות מאפשרים "להסתכל" במספר *ישומים בצורה סימולטנית, ויש אפשרות ליישום אחד להיות בעלים של :ותר מחלון אחד. אתה *כול לשלוט בגודל החלון ובמיקומו, ליצור ולבטל חלונות. ניתן להעביר נתונים מחלון אחד לחלון אחר, ופירושו של דבר, שאפשר להעביר נתונים מיישום אחד לחברו. הגרפיקה מאפשרת ליישומים לנצל מסכים התומכים במצב שבו כל הנקודות במסך ניתנות למיעון (42 - 4076558016 %5ת01ק [41). המישקים תומכים בפעולות בווקטורים, בפעולות ב-188%68 ובמגוון רחב של סוגים וגדלים של פונטים. מנהל בסיס הנתונים מנהל בסיס הנתונים (ז886ת118 128+80856) מספק מודל יחסי של נתונים הדומה ל-282 ול-561/05 של ]/19. ההגדרה, השליפה, השינוי והבקרה של הנתונים. מתבצעים באמצעות ,561. .561 היא שפה עילית לניהול נתונים, שהן המשתמשים (בדרך הידברותית) והן היישומים (באמצעות תכנות), יכולים להשתמש בה. הנתונים מאורגנים במבנה של טבלאות פשוטות בעלות רשומות ושדות. אתה מגדיר נתונים ופועל עליהם במונחים של טבלאות, ואינך חייב להיות מומחה במבני נתונים מסובכים כדי לנהל את מאגר הנתונים שלך. השפה .561 מאפשרת לך להצביע על מה שאתה רוצה לעשות, והיא תדאג לביצוע. אתה *כול לבצע פעולות אריתמטיות על נתונים, לאחזר נתונים בצורה סלקטיבית, למיין נתונים בצורה דינמית ולהכין דוחות המותאמים לצרכיך. מנהל בסיס הנתונים מספק גם פונקציות המשמשות ליבוא/יצוא של נתונים. פונקציות אלו משמשות להחלפת נתונים עם יישומים אחרים המבוססים על בסיסי נתונים אחרים הפועלים על 6ק. 202 מנהל התקשורת מנהל התקשורת (886%ת118 08 תת ס)) במהדורה המורחבת משרת הן את משתמש הקצה והן יישומים שצריכים תמיכה בתקשורת. באמצעות מנהל התקשורת ניתן לבצע תקשורת בין מחשבים אישיים, ובין מחשב אישי לבין מחשב מארח. מנהל התקשורת תומך בסוגים רבים של חיבורים, וביניהם: .570 - - | 7קכ (81ת1ז76 תס1)סתט 150100666כ) ל-3174 131 או ל-3274. - רשת טבעת הסמן (שת1ת-ת70%6') של ]18. - רשת 6 של 18%88. ' - | ערוצים אסינכרוניים. מנהל התקשורת משתמש בפרוטוקול המתאים לכל קישור: 1116.2, 1812 עבור ,0‏ פרוטוקולים אסינכרוניים ואחרים. המערכת כוללת תוכנה להדמייה בו-זמנית של סוגים שונים של מסופים כמו 3270 ]18%, 3101 ]18% ומסופי 1 אחרים. יש תמיכה בהעברת קבצים בתקשורת. כדי לספק יותר גמישות, ניתן לבחור ולהתקין בצורה דינמית את תכניות השירות השונות לפי צרכי המערכת. מנהל התצוגה מספק התראות לניהול הרשת, פונקציות לאיתור בעיות ובקרות שונות אחרות. מנהל התקשורת משפר את ביצועי היישום בעזרת מספר מישקי תכנות, אשר כוללים: * תקשורת מתקדמת בין תכנית לתכנית (ת8זקסז-811-50ז08ע 660ת4008 0ב - ם108010תטנתו601). ארכיטקטורת 1116.2 מציינת את הפונקציות שיישומים יכולים להשתמש בה לצורך 22002 בערוצי נתונים. עומדות לרשותך פונקציות התלויות בזרם הנתונים וכאלו שאינן תלויות בזרם הנתונים. * מישק לתכנות ז00₪6560ת-:561/6 (שת1ותתז8 קז 501061-860165501 ]עתפ - 60:1806ת1). *ישומים מבקשים *וכלו לקבל שירותים מיישומים מארחים בעזרת הפרוטוקול 1112. * מישק של תקשורת אסינכרונית (ת8%10ס1תטותות0) פטסתסזתסתהעפ5ה 1 - %0:1806ת1 2260166). *ישומים *כולים לנהל נתונים בערוצים אסינכרונלים, ולשלוט במאפיינים של קו התקשורת עם 4001. מישקים אחרים במערכת הם: מישק לתכנות 3270, מישק ל-6%8105א 18/1, מישק ל-802.2 18₪5. קרש קפצה מהדורה 1.0 של 05/2 מאפשרת לך להתחיל את שני השלבים הראשונים בתהליך מעבר רב-שלבי לתחנת העבודה של העתיד. השלבים הראשונים הם כדלהלן: א כתיבה מחדש של *ישומי 2005 קיימים, כדי שיוכלו לפעול בסביבת הביצוע של 05/2. לרשותם יעמדו מספר 5ת5865510 ש-025/2) מספקת, אך רק ת585510 אחד של 05כ. 203 * תכנון של יישומים חדשים, וכתיבה מחדש של *ישומים קיימים כדי שינצלו את הפונקציות והמאפיינים החדשים של 05/2. לרשות המתכננים יעמדו התמיכה בזיכרון פיסי גדול וביצוע רב משימות. השלבים הבאים המתוכננים הם כדלהלן: *" ניצול הגרפיקה וסביבת החלונות שמאפשר מנהל התצוגה ב-025/2) גירסה 141 * שילוב האמצעים המסופקים על-ידי מנהל בסיס הנתונים ומנהל התקשורת לתוך יישומים חדשים וקיימים. 24 נספח א מנהל התצוגה מנהל התצוגה (1ק - 8₪67ח18 ת%8%10ת27650) הינו המישק למשתמש, ב-005/2 גירסה 1.1 ובגירסה המורחבת. מנהל התצוגה מספק למשתמש מישק גרפי המבוסס על חלונות מסך לשס הצגת פקודות ומאפשר לו לתפעל את המערכת בצורה יעילה יותר לעומת מישק מסורתי המבוסס על שורת פקודה. פרק זה מציג את הגישות הבסיסיות המיושמות על-ידי מנהל התצוגה ומדגים תהליך בנייה של שלד של יישום. מהו מנהל התצוגה? התשובה לשאלה זו תלויה בשואל, כלומר האם הוא משתמש הקצה או המתכנת. מנקודת המבט של המשתמש, מנהל התצוגה הינו הקליפה ([61ת5) שבעזרתה הוא מפעיל יישומים בצורה הידברותית. מנקודת המבט של המתכנת, מנהל התצוגה הינו אוסף של שירותי 821 נוספים, הקשורים לפילוסופיה כללית לתכנון יישומים. מנקודת מבטו, מנהל התצוגה הינו ערכת כלים של פונקציות רבות הקשורות זו בזו. אם נשתמש בפונקציות אלו באופן נכון, הן תאפשרנה לתכניות יישום שונות להשתמש במישק משותף. המטרה של מנהל התצוגה היא לאפשר למי שיש לו ידע בסיסי על המערכת להריי כל יישום ללא הדרכה מוקדמת. כלומר, מי שיודע להריצ תכנית אחת המתאימה למנהל התצוגה, ידע להרי את כולן. אולם, במציאות יש צורך בהדרכה מסוימת, אשר מת:יחסת למה שהתכנית עושה ולא לדרך שבה יש להפעיל אותה. בנקודה זו חשוב מאד להבין, שלא כל תכנית התואמת למנהל התצוגה מציגה למשתמש מישק הדומה לזה של מנהל התצוגה. אפשר לעקוף את התפישה הבסיסית של מנהל התצוגה, אבל צריכה להיות סיבה טובה לכך, כי הדבר יפריע למשתמשים אחרים בתכניות, מי שמפתח תוכנה ורוצה למכור אותה, צריך לדאוג לכך שהתכניות יתאימו לתפישה הכללית של המישק לתכנות יישומים של מנהל התצוגה, אשר תואם את ארכיטקטורת היישומים הבין מערכתית (588). ערכת כלים למתכנת ערכת כלים למתכנת (16א1001' 5'זסותו8זקסזק) הינה אוסף של שגרות וכלי עזר אחרים המיועדים לשרת את המתכנת ב-25/2) ואת מי שמשתמש במערכת. המגוון מכסה תחומים רבים, אך הוא משרת במיוחד את מנהל התצוגה: 5 1168665 6ם8 66ט[סת] ‏ + אלה הם קבצי כותרת המיועדים למתכנת בשפת 6, ותכניות מקור שונות עבור 205 המתכנתים בשפת אסמבלר. הם כוללים הגדרות והכרזות לשם שילוב עם מנהל התצוגה ומישקי תכנות (821). המשתמש *כול לבחור חלק מן ההגדרות והשגרות בהתאם לצרכים שלו: שירותי מנהל התצוגה, הגדרות של קבועים וסוג'י משתנים, הודעות שגיאה, שגרות 801 ועוד. השימוש בקבצים ובשגרות *וסבר בתכנית לדוגמה. 8 5826 :880ת8] ם18010ת056זק ‏ : המערכת כוללת מספר תכניות שלד המדגימות שירותים ושימושים שונים של מנהל התצוגה ואת טכנולוגיית החלונות. ניתן להפעיל תכניות אלו לשם לימוד וכדי להפיק תכניות המותאמות לצרכי היישומים: שרטוט מסך לשם קליטה והפקה של נתונים, תכניות הידברות, גרפיקה, שילוב טכסט וגרפיקה ועוד. 5 סש סהתה] ת8)010+ת656זק ‏ + קבוצה זו כוללת שגרות שונות של העורכים (66160:8) הכלולים בערכת מנהל התצוגה, ספריות יבוא שונות, תכניות קישור ועוד. 838 ש6ש16קות58 38586 ז תכניות המדגימות טכניקות תכנות שונות ב-05/2, בשפת 6 ובאסמבלר. המשתמש יכול לנצל דוגמאות אלו כדי לפתח תכניות המותאמות לצרכיו. 68 110558866 3886 ! שגרות שירות לבניית קובץ הודעות שגיאה המופרד מתכנית היישום, אך מקושר אליו בעזרת אינדקס. חלונות על פנ' המסך חלון (שס6מוש) הינו צורה מלבנית על פני המסך, אשר מכסה את כולו או את חלקו. :ישוס בבקרת מנהל התצוגה *כול ליצור חלון אחד או *ותר, ולהשתמש בהם כמו בדפי נייר על שולחן העבודה. לעתים כולם גלויים ולעתים כמה מהם מוסתרים, כפי שמוצג בתרשים 1. החלון העליון החשוף, או אחד מהחלונות הגלויים על פני המסך מייצג את התכנית הפעילה באותו זמן במחשב. המשתמש :*כול לבחור כל חלון כדי שיהיה פעיל, כלומר, להציב אותו מעל כל החלונות. ניתן להקטין או להגדיל את שטח החלון הפעיל ולהזיז אותו לכל מקום על פני המסך. החלונות מסודרים בצורה היררכית. החלון העליון הוא חלון שולחן העבודה (שססמוש 665%600), אשר מקביל למסך השלם. אחר-כך אנו *כולים לראות חלונות אשר מכסים חלק מהמסך ומוסתרים בחלקם, או כולם על-ידי חלונות שנמצאים מעליהם. החלונות ברמה הגבוהה ביותר הם חלונות ראשיים (תנַאת), או עליונים ([1606 ק60), אשר בעזרתם מזהים את היישום. חלון שולחן העבודה הוא חלון אב (%ם86ק) וכל חלון ראשי של :ישום הוא בו (110ת0). כך גם חלון היישום *כול להיות אב של חלונות בנים הנוצרים תחתיו, | ואשר מייצגים פעילויות | או נתונים שונים ביישום. היררכיה זו מוצגת בתרשים 2. 206 יישום 1 1 הסוז8סו!קקת 2 חסו+8סו!כקת י'ישום 2 3 הסוז8ס:וכטקת תרשים 1. חלונות של יישומים על פני המסך מנהל התצוגה מספק חלונות למטרות מיוחדות. הנפוצים ביותר מבין אלה הם התפריט (טתסות) ותיבות ההידברות (65א00 618108). תפריט הוא חלון שמכיל אפשרויות פעולה הניתנות לבחירת המשתמש. במקום לספק את הפונקציות המאפשרות בחירה מתפריט בתכנית המשתמש, ניתן ליצור חלון תפריט סטנדרטי על-ידי שירותי מנהל התצוגה. תיבת הידברות היא חלון שמאפשר הידברות יותר מורכבת עם היישום מאשר התפריט. מנהל התצוגה משתמש בדרך זו כדי לקבל קלט שאינו מגיע מהתפריט, כמו למשל שם של קוב שיש להפעיל. עכבר: העכבר הוא כלי חשוב בתפעול חלונות תצוגה. מנהל התצוגה מאפשר להשתמש בעכבר כמעט לכל פעילות של בקרה, בחירה ושרטוט, הרבה מעבר לאפשרויות שב-20025 ובגירסה המקורית של 05/2. ניתן לקבל קלט מהעכבר כשם שניתן לקבל אותו מהמקלדת. תכנית *ישום יכולה להתעלם מהעכבר, אך זה יהיה בניגוד לעקרון בסיסי שעל פיו תוכנן מנהל התצוגה. צשסחו/צ קסד 85% צצסצח/:צ קסד 65% 2 עשסשח:;צ חופו 1 עשסטח:/ חו3ו 1 שספחו/ חופו וס 4 2 עשסטחו/ ‏ 1.1 שסטחוצצ 4 1 שצלטסשחועש תרשים 2. מערך היררכי של חלונות במסך 207 כדי להפעיל בחירה מסוימת, מזיזים את מחוון העכבר למקום הנבחר ולוחצים פעמיים (6110% 60%0016) ברצף מהיר על הלחצן השמאלי. אפשר להזס אובייקטים במסך על-ידי הזזת מחוון העכבר אל האובייקט, לחיצה קבועה על הלחצן השמאלי, הזזת מחוון העכבר למקום החדש ושחרור הלחצן. סמלים וצורות: מנהל התצוגה מאפשר (אין זה חובה) להשתמש בטמלים (1005) ובמיפוי סיביות (פקאת-פ) לשם העברת מידע למשתמש. השימוש בסמלים ובצורות גרפיות מוסבר על-ידי פתגם האומר, כי "תמונה שווה אלף מלים". סמל ב-05/2) הוא סימן קטן שמייצג פונקציה, או תכנית, שניתן להפעיל אותה על-ידי הזזת העכבר לסמל ולחיצה כפולה עליו. צורה גרפית (ס1ַת80:₪ 86) משמשת בדרך-כלל להצגת מידע. בקרת ק/5: מנהל התצוגה חייב לשלוט בכל הקלט והפלט, ולכן לא ניתן להשתמש ברבות מפונקציות הספריה הסטנדרטיות בשפת ‏ 6, כמו ()1)תנזק ו-()50801, כאשר התכניות פועלות בבקרת מנהל התצוגה. למעשה, אחת הסיבות שיש למנהל התצוגה שירותים רבים כל כך היא, שהם חייבים להחליף מספר גדול של פונקציות סטנדרטיות בשפת 6. 'שם בבקרת מנהל התצוגה מהלך הביצוע של *ישום הפועל תחת מנהל התצוגה שונה באופן בסיסי מזה של יישום רגיל. המושגים המקובלים לגבי הזרימה של מידע פנימה והחוצה מהתכנית ולגבי מהות הלולאה הראשית בתכנית אינם תואמים לשיטת עבודה זו. הבה נבחן את המבנה של תכניות התואמות למנהל התצוגה. תכנית כזו כוללת שני חלקים מרכזיים: * תהליך עיקר: (6ע660ססע ת81ם). * תהליך החלון (68עט606ס6סעס שסשמדש). לכל התכניות התואמות למנהל התצוגה יש מבנה זהה. כאשר תכנית כזו מתחילה להתבצע, היא עושה את הדברים הבאים: 1. מאתחלת את מנהל התצוגה. 2. קובעת תור הודעות. 3. מפעילה פונקציית חלון (ת6+10תט1 שססםנש) אשר מבצעת הודעות עבור החלון העליון של היישום. 4. *וצרת חלון ברמה הנדרשת. 5. מבצעת לולאה שקוראת הודעות מהתור ומנתבת אותן לפונקציית החלון. פונקציית -חלון יכולה להקרא רק על-ידי מנהל התצוגה. היא מקבלת בפרמטרים שלה הודעה מתור ההודעות ולאחר מכן מבצעת פעולה כלשהי שתלויה בערך של כל הודעה. 268 | הפונקציה ()ת81 מקבלת הודעות ומנתבת אותן בדרך המתוארת להלן: 48 1585 ₪089886 ת10ס8ת1ם02ט 8 11סתט 100 ; 055886 סאסת 66 066 ; 10ו60ססיק שסתדש 6תס סס 1% ב860ק15ע בצע לולאה עד אשר מתקבלת הודעת סיום קרא הודעה מהתור; שלח את ההודעה אל תהליך החלון; מנהל התצוגה מתקשר עם התכנית של המשתמש על-ידי העברת הודעה לתור ההודעות. התכנית מוציאה את ההודעה מהתור ושולחת אותה לחלון המתאים על- ידי:- קריאה לשירות אחר של מנהל התצוגה. תהליך זה ממשיך עד אשר התכנית מסתיימת. אפשר לומר, שברוב הזמן הודעות הנן הדרך היחידה שבה התכנית מקבלת קלט. המבנה של ההודעה שונה לפי הסוג, אך כל ההודעות הן מספרים שלמים (%6861ת1). כאשר יישום הפועל תחת מנהל התצוגה מסתיים, הוא חייב לבצע שלוש פעולות: 1. להרוס את החלון. 2. להרוס את תור הודעות. 3. להפסיק את פעולת סביבת החלון המתייחסת ליישום. מבט מקרוב על החלן חלון של מנהל התצוגה הוא תבנית (1:8[66) בצורת מלבן, אשר כוללת מאפיינים שונים. החלק החשוב בחלון הינו גוף החלון (81708 06 |6תהק), או שטח העבודה של המשתמש (8:68 0ת0116). בשטח עבודה זה מתבצעות הפעולות הנדרשות על-ידי היישום, כמו הצגת (תונים או ביצוע שגרות. אל החלון אפשר לקשור חלונות בנים כפי שנדרש על-ידי היישום. כל מרכיבי החלון הם בנים של החלון הראשי. הם משמשים לבקרה על פעולות שונות שניתן לבצע בחלון. מאפיין אחד בתבנית החלון היא המסגרת ("00:66), אשר קובעת למעשה את גודלו. המסגרת מאפשרת למשתמש להזיז את החלון או לשנות את גודלו בעזרת העכבר. מאפיין אחר הינו תפריט המערכת (טתסות 55%6). זהו תפריט סטנדרטי, אשר מאפשר למשתמש לבצע את הפעילויות הבאות: לשחזר את החלון לגודלו המקורי, להזט את החלון, לשנות את גודלו, להקטין את החלון למינימום, להגדיל אותו למקסימום, או לסגור אותו. למרות שהמסגרת מאפשרת להשתמש בשיטה *ותר נוחה להזזה או לשינוי של גודל החלון, ניתן לבצע פעילויות אלו גם מתוך תפריט המערכת. כאשר חלון מוקטן למינימום, הוא הופך להיות סמל. כאשר מגדילים חלון לגודל מקסימלי, הוא מכסה את כל פני המסך. סגירה של חלון מוציאה אותו מהמסך, ואם חלון זה הינו חלון עליון (ש60ם1ש %00-16061), יתבצע גם המהלך של הפסקת התכנית. 09 סמל שם החלון חברים המערכבת סמלים ל : להגדלה/הקטנה את 7 06[]*7ו אסנתוא] סו %וא5 >חסו:ק0 בם הבעולות 60166 1 בם גלילה 01662 אנב'י גוך החלון, חבריט נמשך שמח העבודה בּם גלילה אובקי מפגרת תרשים 3. מערך של חלון סטנדרטי ברוב החלונות ישנ מאפיינים נוספים: סמלים המאפשרים הקטנה למינימום והגדלה למקסימום של החלון ושם שמזהה את החלון. למרות שניתן לשנות את גודל החלון בעזרת תפריט המערכת, *ותר מהר לבצע זאת בעזרת סמלים המיועדים לכך, כי המשתמש *כול להפעיל אותם בעזרת העכבר. השמות מאבשרים את זיהוי החלונות במצבים שבהם יש *ותר מאשר חלון אחד במסך. אם התכנית תצטרך זאת, אפשר להוסיף פס גלילה (ת28 011ת80) אנכי ואופקי. על-ידי לחיצה (בעכבר) בנקודות המתאימות על גבי פסים אלה ניתן לבצע גלילה של תוכן החלונות כלפי מעלה, מטה, שמאלה וימינה. מבנה של חלון סטנדרטי במנהל התצוגה נראה בתרשים 3 (זכור, כי אין צורך להשתמש בכל האופציות לגבי כל חלון). כל תכנית התואמת למנהל התצוגה יוצרת חלון ראשי (ש60ם1ש תוא), אשר נמצא ברמה הגבוהה ביותר ובעזרתו המשתמש מזהה את התכנית. סגירה של החלון הראשי מפסיקה את פעולת התכנית. אפשר לסווג חלונות בשתי קטגוריות כלליות: אבות ובנים. כאשר :ישום מתחיל לרו>, הוא יוצר חלון ראשי אחד או *ותר. אם הוא *וצר *ותר מחלון ראשי אחד, אז כל החלונות חופפים זה לזה. .אולם ישנה אפשרות ליצור חלון אחד בתוך חלון אחר. במקרה זה החלון החדש הוא הבן של החלון הראשי והוא כלול בתוכו. חלון בן יכול בתורו ליצור בן משלו וכן הלאה, עד למגבלה הנכפית בגלל גודל המסך. כל חלון מסווג לקבוצה כלשהי כללית. חלון המשתייך לקבוצה מסוימת משתמש בתהליכים (06600165תק) המיועדים לשרת את אותה הקבוצה., ישנם שתי משפחות עיקריות של חלונות: חלונות לשירות הכלל וחלונות פרטיים. 200 ניתן להשתמש בחלון כללי מכל :ישום שהוא. החלונות הסטנדרטיים לשירות הכלל מרכיבים את חלון המשתמש. יש בהם תפריטים, מסגרות, פסי גלילה ועוד. חלון פרטי נוצר על-ידי היישום לשימושו ונמצא בבעלותו בלבד. כל החלונות מוגדרים ביחס לפינה השמאלית התחתונה (קואורדינטות 0,0). גודלי א ו-צ המקסימליים מוגדרים לכל חלון בצורה דעמית, והם משתנים ביחס לגודל החלון וצורתו, ולפי הרזולוציה של המסך. צר חלון בתכניה אפשר ליצור חלון בכמה דרכים: כחלון סטנדרטי וכחלון משתמש גמיש, הניתן להתאמה לדרישות מיוחדות. נעמוד תחילה על מספר פעולות מכינות הנדרשות לפני יצירת חלון. קבלת עוגן מנהל התצוגה משיג מקשר לעוגן (616ת28 2100% תסתסםת8) על-ידי קריאה לפונקציה 1)141126ח1ת1/?. שירותי מנהל התצוגה מחזירים את הערך ‏ 0 (11זא) במקרה של כשלון, בניגוד לשירותי ה-871 הבסיסיים, אשר מחזירים את הערך 0 במקרה של הצלחה. המקשר חייב להיות ריק (11[זא). הפונקציה מחזירה מחוון (מסוג "רחוק"), אשר מצביע על המקום בזיכרון המשמש את מנהל התצוגה לשם אחסון מידע על סביבת החלון המתייחסת לתכנית היישום. מקום זה בזיכרון הוא העוגן, והמחוון אליו הוא המקשר לעוגן. אם לא ניתן לאתחל את המערכת, מוחזר מקשר ריק. המקשר לעוגן נדרש כפרמטר על- *די רבים משירותי מנהל התצוגה. יצירת תור הודעות לאחר אתחול מערכת החלון, חייבים *ישומי מנהל התצוגה ליצור תור הודעות (1616[) 110558806) בעזרת הפונקציה 6ש6:268+61520006תג/ט. פונקציה זו מחזירה מקשר לתור ההודעות, או 11]זא אם הבקשה נכשלת. מן הראו* להדגיש ש"הודעה" היא מספר שלם ולא מלל, אולם ניתן לפענח מספר זה ולהציג מלל כפי שרצוי. כל מרכיב של תור ההודעות מוכל בתוך מבנה נתונים (הנקרא 9/1506) אשר מכיל את הרכיבים הבאים: מקשר של החלון המקבל, ההודעה, מידע נוסף על ההודעה, הזמן שבו הופקה ההודעה, המיקום של מחוון העכבר. שיוך חלון לקבוצה לפני שיוצרים חלון, חייבים לרשום את הקבוצה שאליה הוא שייך. עושים זאת בעזרת הפונקציה 681500708858את1/?. פונקציה זו מחזירה ערך השונה מאפס במקרה של הצלחה, ואפס במקרה של כשלון. הפרמטרים של הפונקציה הם: מחוון לעוגן, המחרוזת של שם הקבוצה שיש צורך 201 לרשום, הכתובת של פונקציית החלון, צורת החלון (50/16). אפשר לבקש הקצאת שטח בזיכרון מעבר להקצאה הסטנדרטית, או להשאיר את ברירת המחדל. יצירת חלון סטנדרטי (עבור עתה ליצירת חלון. נעשה זאת בפקודה 0"68%6. הדרך הקלה בייתר ליצור חלון היא להשתמש בפונקציה ש60ת68+65+60/1ש00ת1/ט, אשר יוצרת חלון סטנדרטי. היא כוללת פרמטרים אחדים, ביניהם: מקשר לעוגן, מקשר לחלון האב, שיוך לקבוצה, שם החלון, צורת החלון, זיהוי מודול המקור ועוד. הפונקציה מחזירוז מקשר לחלון. במקרה של כשלון מוחזר הערך .1 זא. כאשר תכנית מתחילה להתבצע, המסך משמש לה כאב, עם ערך מקשר שווה 1. ערך זה מוגדר בעזרת המקרו 55702 פאשזת. אנו נשתמש בערך זה *ותר מאוחר, כאשר נציג דוגמאות שונות. הערך של 56/18 (צורה) קובע מספר מאפיינים של החלון. שמות המקרו הנפוצים רשומים בטבלה בתרשים 4. לולאת הודעות כדי שהתכנית תוכל לקבל הודעות היא צריכה להשתמש ב-06)008ת1/ל, אשר יש לה מספר פרמטרים. פונקציה זו מעבירה באופן אוטומטי את ההודעה לפונקציית החלון המתאימה. ש15ת8+6ק015ת0/1 מחזירה את הערך שקיבלה מפונקציית החלון. ההודעה שנשלפת מהתור מוכנסת למבנה נתונים המוגדר כפרמטר, פרמטר אחר גורם לשלוף הודעות המכוונות לחלון מסוים בלבד. *ישום *כול לקבל את כל ההודעות, או תחום הודעות מוגדר. הפונקציה מחזירה אישור ביצוע. כאשר מתקבלת הודעה על הפסקת פעולה, היא מחזירה הודעת אי-ביצוע. שם המקרו משמעות 8 5 קבע חלון שניתן לראות אותו 2זאזאזא ₪5 הקטן את החלון למינימום 200זא1אהא ₪5 הגדל את החלון למקסימום פע כלול פס כותרת טאמאפצס 5ע כלול תפריט מערכת 0 פת כלול פס גלילה אנכ:* 20 פת כלול פס גלילה אופק: 2 6ע כלול גבולות השוליים תמסתסת פע השתמש בשוליים דקים אסדדטפאזא פע כלול סמל המקטין למינימום אסדדדטפאא פע כלול סמל המגדיל למקסימום א4אאזא פע כלול סמל מקטין וסמל מגדיל תרשים 4. המקרו הנפוצים ביותר לפרמטר 50/16 בפונקציה ש60ת68+65+067/1ע)חגל 202 סיום הפעולה של התכנית לפני שהתכנית מסתיימת, היא צריכה לבצע שלושה דברים: לסגור את כל החלונות הפעילים, לסגור את תור ההודעות ולהפסיק את הפעולה של מישק מערכת החלון שנוצר. | פעולות | אלו | נעשות - על-די הפונקציות ש00ת1ע1265110ת1/ט, 06כ98תעסז655כותנ/ל ו-866ת1חדו6ד'ת1/ט. בפונקציה הראשונה, אחד מהפרמטרים הוא המקשר לחלון שיש לסגור אותו. בשניה - פרמטר מציין את המקשר לתור ההודעות שיש להרוס. ולבסוף, מערכת החלון מתנתקת על-ידי קריאה ל-86ת81ז16'ת0/1 עם המקשר לעוגן, המציין את כתובת החלון בזיכרון. פונקציית החלון כל התכניות התואמות למנהל התצוגה חייבות להעביר לו את הכתובת של פונקציית החלון שתקבל את ההודעות, והיא אשר מעבירה אותן לתכנית. המתכנת מכרלז, נותן לפונקציה את השס מזשק שססתנש למשל, ומגדיר אותה עם מספר פרמטרים: מקשר לחלון שצריך לקבל את ההודעה ומספר שלם המכיל את ההודעה עצמה. אפשר להעביר מידע נוסף באמצעות אחד או שני פרמטרים אפשריים. מנהל התצוגה *כול להפיק סוגים שונים של הודעות. ההודעות השכיחות *ותר מופיעות בטבלה שבתרשים 5. פונקציית החלון אינה צריכה לטפל בכל ההודעות שהיא מקבלת. עליה לעסוק רק באלה אשר חשובים לתפעול תקין של היישום. שאר ההודעות שפונקציית החלון אינה מטפלת בהן נשלחות חזרה למנהל התצוגה בעזרת 06ז2ש60ת6]0/1כתנ/ץ לשם ביצוע ברירות המחדל של המערכת. למעשה, הפונקציה מחזירה למנהל התצוגה את הפרמטרים שהועברו אליה קודם לכן. שם המקרו משמעות א120₪אסנדטם אש ס10אסצדטם אא אפפ 1אסדדטם אש ההזוס א מזמתס אא צסתדפמ אא פא0800א45840הם אש 0 אוו סו ו מטסאפפטסו. ואו צאדגק א 50 אש 8 אש 7 דט א לחצן 1 לחו% לחצן 1 שוחרר לחיצה כפולה על לחצן 1 4 לחצנים 2, 45:39 נלח+ מקש במקלדת נוצר חלון מתבצעת הר*סה של החלון אישור למחיקת בקשת רקע גלילה אופקית מתבצעת הזזה של החלון היתה תנועה בעכבר חידוש תצוגת החלון הצגה של החלון, או הסרה מהמסך מתבצע שינוי גודל בחלון גלילה אנכית החלון מופסק תרשים 5. ההודעות השכיחות 203 מודול תכנית החלון שלא כמו תכניות 025/2) רגילות, תכניות התואמות למנהל התציגה חייבות לכלול קובצ להגדרת המודול (ע12/) בשורת הפקודה המפעילה את תכנית הקישור. הסיבה העיקרית לכך היא, שיישום התואם למנהל התצוגה דורש שטת מחסנית (5%80%5126) גדול *ותר מזה הניתן לו על-ידי ברירת המחדל של המערכת. הדוגמה בפרק זה מקצה 4096 בתים, אך סביר להניח שתכניות אמיתיות יצטרכו מעבר לכך. כדאי גם לציין את מספר הבתים שהתכנית צורכת לשימוש עצמי (68058126ת). תכנית הדוגמה מקצה 1024 למטרה זו, אבל יש להקצות בהתאם לגודל התכניות. צריך לכלול את המשפט 382075 שמציין את השם של פונקציית החלון. הקוב להגדרת המודול של שלד תכנית הדוגמה נראה כך: 1 סא 1101סת טאגא 128 ₪ 6 85128א5740 06 קשס6ת בע 5סא בשלב ההידור של תכנית תצוגה, יש לציין למהדר אופציות השונות מאלו של תכנית סטנדרטית. יש לקרוא בעיון את ההוראות בספר ההדרכה של המהדר שבו כותבים את התכנית (שפת 6 או אסמבלר). תכנית דוגמה לתכנות חלונות ראינו עד עתה את השירותים הדרושים לאתחול ולהרצה של *ישום פשוט המבוסס על חלונות, ועתה נראה תכנית שלמה, אשר נכנה אותה 151.01 התכנית 11811001 מדגימה כמה מהעקרונות והמרכיבים של תכנית יישום בבקרת מנהל התצוגה (ם01108%10ק8 ]אק): 1. תכנית מקור, אשר המבנה הכללי שלה זהה בכל :ישומי מנהל התצוגה (ואשר תואמת את מישק התצוגה המוגדר על-ידי 584). 2. תקשורת עם 05/2, עם *ישומי תצוגה אחרים ועם היישום עצמו. 3. היענות וידידותיות למשתמש. למעשה, לפנינו שלד של תכנית, אשר ניתן להפעילה כפי שהיא, לשם הדגמה ותרגול. אפשר גם להכניס בה שנויים ולהתאים אותה לדרישות של *ישום ספציפי כלשהו. התכנית כתובה בשפת 6/2. ההערות בשולי כל הוראה ניתנו לשם הסבר. כפי שניתן לראות, חלק גדול מהתכנית מוקדש לקריאה והפעלה של שגרות סטנדרטיות של המערכת. התכנית יוצרת חלון על פני המסך ומציגה בו מלל בתווים לבנים על רקע אדום. ראה תרשים 6. כאשר המשתמש מציב את המחוון בחלון ומקיש על לחצן 1 בעכבר (בד"כ זהו הלחצן השמאלי), צבע הרקע בחלון מוחלף בין אדום לכחול. אם יש חלון שמוצג במסך וחלון אחר שמוצג עליו, אז כאשר מסירים את החלון העליון, החלון התחתון *ופיע מחדש. המקש היחיד במקלדת שנשתמש בו הוא 8, כדי להפסיק את התכנית. 204 10 6 פסשתהתס 1 מסספטס 56נגוס1 שסבת1ש 18תס 0% ע0ס1סס ההעקסעק 06 8%665ת66201 3ע תרשים 6. תמונת החלון ביישום 1101 תכנית הדוגמה מוצגת ב-2 עמודים בתרשימים 1(7), 2(7). בראש התכנית אנו מוצאים את ההוראה 21201066, אשר מציינת שיש להשתמש בקוב .0252 כקובצ כותרת. הוא כולל הגדרות של מבני נתונים וקריאות לשגרות 821 רבות, ולכן אנו מבקשים לשלב בתכנית רק את הקטעים הנחוצים. זאת אנו עושים בהוראה זנזתא]אזש 6א1 6מ6681/. ההוראה'255 שטסכשאזש כ1 6ם:86611 מציבה את הערך 255 במשתנה. בתכנית מעשית יש הוראות רבות מסוגים אלה ומקובל להכילן בקובצ סטנדרטי, אשר ישמש אחר-כך יישומים רבים. הפונקציה 6סעקשססתנשע11 הינה פונקציית החלון. היא מטפלת בקלט, בפלט ובתצוגה, ומהווה למעשה את הקשר עם המשתמש. כאן מוצגת התבנית שלה. הפונקציה המרכזית של התכנית (בשפת 6) הינה תנגת. זוהי נקודת הכניסה אל תכנית יישום הפועלת בבקרת מנהל התצוגה. כל תכנית הפועלת בחלון חייבת לכלול אותה. שתי ההוראות שלפניה ו-5 ההוראות שאחריה הן הגדרות של משתנים, אשר תואמים להגדרות שבקובף המוכלל (01066ם1). הפונקציה ()ת81ח1 מבצעת את הדברים הבאים: *וזמת את הקשר בין מנהל התצוגה לבין התכנית. רושמת את קבוצת החלונות החדשה. יוצרת חלון. מבצעת את לולאת ההודעות. הפונקציה 1%181126ת1תנ/ט מכינה את סביבת העבודה ומשאירה מקשר לעוגן המתייחס ל-6806זת+ המופעל. מקשר זה דרוש כפרמטר גם לפונקציות אחרות. השלב הבא הוא יצירה של תור הודעות על-ידי הפונקציה 6768%66/15800606תגשט. הפונקציה מחזירה את המקשר לתור. לכל 686זת+ חייב להיות תור הודעות נפרד, שבו הוא יוכל לקבל קלט חיצוני. הפונקציה 01855ז681500(ת1/ רושמת את סיווג החלון. ברירת המחדל היא "פרט:". הפונקציה מעבירה ל-05/2 את שם קבוצת החלון 01560%ע11 ואת שם פונקציית החלון של המשתמש 06תש ס6תנטע/. 205 /* 68061 1 ]חק 56!66% */ זטקא זז וסאז 0 /* 6] 68060 אל */ <052.8> 1161006 255 אססאזא סן 06 /* 5 וז חסו+סהט] */ -₪ ירט יי ; ( 2קח חקו , 1קח אהחהתו! ,59 זחסוופט ,שחת סאאו! )106 אע ץחדאקא= ד ו650חו ; ( וסט )!3 [6 6וסע 7 8 על 5ז6:6חב"בק 86 */ /י 6 0% "600חג את */ ;ה ןה /* 60[0% אסטתוא */ ;0 008 = שהאזס!60 60108 גא4פ+94אא93א++4יצ*י***]/ הוה ויוי הוח 01 ]5 ) )הו [6066 0ו0צ ש 6 0606 86 *)/ ו 0 6 אס0ח1א 8 016% */ ; 1606 [66חאת סאוו /* 6 א60ה1 זז */ הבז חאו סוזווור /* 6ט6ט) 0655806 חסז] 055306! */ 156 /*פסָן] [600500 67080100 אסשהוא */ ; 1070866 1086 /* אק 26ו31ו%וה1 */ 1 )81126!:ו1ה[תוא = מ /י 86 8558986 8 000806 */ ( 0 ,980 )668050006 ה = שחת /% 5 תוא 6015008ה */ ו /* 6 0% "סשתה */ ,הת /* בה 61855 אססה!9 */ , "א00ה1אע" /*+ 0666076" אסשה|א ]0 8607655 */ 0006 עו / 8 5 5266181 ₪0 */ 0 7 5 0הוא 69178 סן! */ 0 % /י פָ וז [ 00 6חהזז 50% */ ; דפ |א5ז ז0ז = 10768%6] )60100 65 ה = 6חהז ]הזת /* ]חסזהק 15 אססה!א ק065%%0 */ , 0658107 סאוו /* 56 5 סו */ 0 /* פָּוז [600 6תפט] */ , 616846 811 701.06 ) 0 זגה 5 א00ח1א 011608 */ , "אסטה !אע" 0 , )6 אס0ה1א ס|₪ */ 7 / 56 5 5066181 סו */ 0 /* 6 6 תו 15 66חט50סם */ ו /* 10016 אסשת!א שחפח] */ 100% 10 /י 6 אסהה!א 011608 */ ה 61 סחאוח₪ !וזו ) : /* ]0 הסו%!5סק 6 5126 %06 56% */ , 6חה-ז 01 ח/ות ) 1000%705 105616 /* .פַת|אסה5 0606 אס0הזא סול */ 0ד סאוו 0 0 ,100 ,100 אסוו5 ח59 | 5זהץ1ז0א קא5 | פטטון 5% | 5126 קאפ 2 יי / 86 655875 ה68%10!!קקג 106 הסז] 6558965 ה8%6ק5ו 6 666 */ / 6 001 ות 8 הַת!0!68%ה1 5 5חזט )6 06%0150ה1) [!)חט */ בוט ד יו ) ( 0 ,0 , 1 וטו (סוזאוו) ,55 (201156) ,פגת )16 ; ( 50059 (000150) ,₪35 )ח0158%6085הוא 2 .ב ע10 */ : 06 01 10065 / 4 */ ; ( סחת ) 0506 10065 /* הסו68%!!קקה 6 %6הה01ה6: */ ; ( ₪85 )8)6ה!הח6זהוא ]*515555+44%544445489%%++ 6 חוגָּח ]0 60ה] ,א9999944ייייוייי'יי] 206 %55555%485+8%5545444%ת 6-ו אס0הוא ]0 )זה:6 - *4+4+45+3%555++44+4344+ ( 2ק ה\תתקו , [קוה תו ,5 051101 , טחאת סאאו! ) 6סקאיסשהואעא צתזאםקאם ז 50שחו | /ש 8 508665 ת77650008:!0 */ היו ו /י 5 5ְ91ה₪66)8 */ "זספת /.* 5 5066 פַהו"5% */ ות ( ₪59 )ה16וא5 | :זןק אא 0856 0 ו ה וו ו ו 0 ו ו ו ו 0 ו ו /% .סֶת60551סזק ]71% % ה! 6חשת הא8ז₪ 6ז8 %5ה%6ה60 אסשהוא */ 1 / 5 0ז0)6 86868000 ה!00%3 */ ; ( 876 !001 ,0האת )תַהובּהופָ6הה!א = פקת /י 86 116בשה1 |!1] */;( שהאזס!60 ,876 ,פקת )666הוו|]הוא /* 3% אמא 6א6: 6 56% */ ;90 = ע.%ם ן10 = א.6ק /* 6% פו|] ]ס חס|60 56% */ ; ( 6ז1!וו 018 ,קת )זס!60156%00 /* 6%ז אבזס */ ;( "ס|ו6|ו"(52ק) ,51 ,%ק8 ,פקה ):ַפַהוּח55ז1008ק0 ;1 > ע.%ק ; ( "6ה% פפַפַה3ת6 1 חס%%טפ 56ט757("0) ,261 ,8% ,קה )תפַתוז56זב3ה16ק6 = צ.0ם ;]( "אס0הוא 5ות% ]0 חס[057("60) ,201 ,80% ,פקו[ )תפָהוּז5זא8ת0016 = ץק ; ( "חהזהַָסזק 6ת+ %65ה01ז%6 757("]3) ,251 ,%ק8 ,פקה )%פַהוּח5ז8ת0010 /* 6000|6%6 15 פַתואהזם */ ;( 5קה )%ה6/81התהוא :וז :0 א 6856 [4%%543%4%849%4%%84+הפהת.והפ/ההפה..ווופהו.ותווווו.ווזר.''ו'ווורוי /]* 06) 6צהַה 96 6זטפהס 55ז1] 50 ,₪116%60 השסט פַהַה 1 הס>:טם ₪56 */ /* 6ח8 ₪60 ה26%966 חס[60 אס0ה|א %06 6ופָפָס] ה6ה+ שתב 5ט06] %טקהו| */ .* .הא6078ץ 06 50 א00ה!א שה% 56טב6 שה8 8106 */ הלת +ויי3כ)-יוו+,וורקרכי ריווערוווווווו,לוכ יירו ריווווויכיה ; ( חא ,0558107 פואא!! ) פט565]06ח1 ;( ₪ הו6) : ( 8106 | ) ? ( 60 !60 == שהאזס[60 ) = שהאזסו60 ; ( 1806 011!! (ההאת )0356066 [גצה[הוא ;08% :ו א 0856 | כ 0 ו /* .6 00665560 15 בטקה! 8780%67ת6 */ /* ה600081 2 "%6שהגזהק 0655896 ]0 %65עכ סאם 756!! 6תז */ .6 608786065 %06 */ 0 0 ב ב | /*,3] 15 65566זק ע6א 6+ ]1 */ | ( 3ז אצ == ( 2קח )קוטאסת ז2 זחהסוו5 )זו /* 0) 0655806 וטף 3 05%ק */;( ,01 ,ז]00 אא ,שחת )5559סקהוא 0 .הסו63%||קק 6ה+ 60 */ 0% :1 6 6856 0 ב /* 5 ח8510ה01ז6+ חטסץ 6טק 0 1866ק 6ת6 15 פותז */ ] %8%%433+5א43344444444444455+4544+44444%5444444434%%%44י4434444443++4. /* חסןבה!הה6+ 6856 /*‏ ;( )0 ,01 ,זזע) ₪4 ,ההאת )5:59סקהוא ]% :1-1 7 /י 5% זט [!68 5ו|ת] ‏ .6ח6ת 60065 6!56 פַָתוּה)ץזטצם */ , .6ז6600סזק אס6הוא חטסץ הו */ 444440444464485%6%45%%48655058%58458%ה1+ה15414ה94+595344ו+ו)5):פת] ; ( ₪2 ,[קה ,₪59 ,6האת )06ז7ס0ה!)6סה!א הזט6%ץ ]) 1 חחשל6ץ ]) ] +4444+43144443334494%%א 6זט060זק אסשה|א ]0 56 ו 207 בשלב הבא יש ליצור חלון סטנדרטי על-ידי הפונקציה ש00ם02268+65+10/1ת0/1,* אשר שם הקבוצה שלו הוא שסתנטע1/. אנו מציינים את שסססשאזש כ1, אשר משמש כמזהה לחלון (מספר 255). בדוגמה זו אין מכניסים טכסט עבור שם החלון. את החלון מציבים על פני המסך על-:די הפונקציה 00%₪205ם//565תנ/ט. אנו מציינים שהחלון הזה *היה העליון (פסד פאשת). הפרמטר הבא כולל של זוגות של מספרים (פ61ק) המציינים את הקואורדינטות של נקודת ההתחלה ואת הגודל של החלון. פרמטרים אחרים מציינים שהחלון *ופעל וגם *יראה. הלולאה הפעילה של התכנית המרכזית היא קבלת הודעות (026%88מ0/1) והעברתן (1/157ת1508+0 ת1/ל) לפונקציית החלון 206 שס0ת1/טע1, אשר מוגדרת ב-58ף. בדוגמה זו יש חלון אחד בלבד, אך בתכניות מורכבות *ותר *כול להיות *ותר מחלון אחד, ובהתאם - *ותר מפונקציית חלון אחת. לולאת ההודעות מפסיקה לפעול כאשר מתקבלת הודעה 61117 ואש מהתכנית, או כאשר המשתמש מקיש 3ע. את התכנית מסיימים בשלבים, על-ידי שלוש פונקציות: הריסת המקשר לחלון, הריסת המקשר לתור ההודעות ולבסוף - סיום התכנית. הפונקציה החשובה ביותר הנה פונקציית החלון. היא מקבלת הודעות שנשלחו על-ידי מנהל התצוגה ומבצעת לפיהן את הפעולות המתאימות. ניתן לראות במשפט 510 את ההודעות שמנהל התצוגה יטפל בהן. בזמן שהחלון נוצר, אפשר להפיק את ההודעה 028478 [אט לפונקציית החלון. דבר זה מאפשר לתכנית לאתחל ערכים, או לבצע פעולות ראשוניות. מנהל התצוגה מאפשר למשתמש להזיז את החלון +ולשנות את גודלו, או לכסות חלק ממנו על-ידי חלון אחר. המשמעות של הפעולה האחרונה היא, שבשלב מסוים יהיה צורך לצייר מחדש את החלון המקורי, או את חלקו. בתכנית זו לא הגדרנו פעולה באפשרות זו. מנהל התצוגה מפיק את ההודעה ‏ 7א241 ]אש בכל פעם שיש צורך לחדש את תוכן החלון. הפעולות שיש לעשות במקרה זה מתוארות בהרחבה ומדגימות כיצד (נכתב הטכסט בחלון. ההודעה אטסש1אסיידנז₪ ]זט גורמת לפעולה הנובעת מלחיצה על כפתור 1 בעכבר. ההודעה 048 ]אק מגיבה ללחיצה של המשתמש על 3, כדי להורות על הפסקת התכנית. הודעה זו מופקת בכל הקשה שהיא במקלדת. כאשר המשתמש מסיים את התכנית מתפריט המערכת במסך, הוא גורם לכך ש-25/2) תשגר הודעה 61058 1// אל היישום, אשר מתרגם אותה להודעת 01117 1ט, אשר תגרום להפסקת התכנית. כל הודעה שהתכנית אינה רוצה לעבד, כמו הוראת גלגול למשל, מוחזרת למנהל התצוגה דרך השירות 2106ש00ת2610/1םת1/ט. הודעות אלו תטופלנה בהתאם לברירות המחדל של המערכת. מנהל התצוגה מול שירותי גרעין במהלך הסבר זה ניתן לראות שיש חפיפה מסוימת בין שירותי מנהל התצוגה לבין שירותי הגרעין (501%1008 [6ם6076/861) של 05/2). כאשר כותבים בתכנית התואמת למנהל התצוגה יש להמנע משימוש בשירותי ה-10/, ה-4006 וה-1100. במקום זאת רצוי להשתמש בשירותים המתאימים של מנהל התצוגה. עם 208 +את, מותר להשתמש בשירות* הגרעין של 5סכ, ובמיוחד באלה התומכים בתקשורת בין תהליכים ובאלה התומכים בבקרה על התקנים. אם תכנית משתמשת בשירותי 010 4 ו-טסו, היא תרו+ בקבוצת מסך משלה, ולא בחלון של מנהל התצוגה. השימוש העיקרי בשירותים אלה בסביבת מנהל התצוגה הוא בתכניות שירות, ובמיוחד באלו שאינן דורשות תמיכה של עבודה בחלונות. וי | .0 ו ססזק הועצעות ו [ ה ו | 5 וע ו . ו ו חזט+ 6 ו דוה וע סגו תועש ופוס חו/צ תרשים 7. התהליך הרקורסיבי של ביצוע החלונות בתכנית 1סזמת 6856 %% 5060011 ( (2קוד ) זחסוופטזוו 7 [ :11000 58 0856 1 אסתסאא ,0 )!01ת56 ;8% :ק0:א]] 58 6856 ; ( אסחסון- 6 ; 0% : 7650008 58 6856 ; ( 0060+8-2חא 7 ;זט :07 98 0856 ; (( 2-ה1ק006ח₪ )- 0 5600110 ;%זם 5105005110 58 6856 ( ע.פַזס - ( ₪02 1 ,0 )011ת56 הרי :1 ;זט תרשים 8. תהליך גילגול של חלון במסך 209 נספח ב מנהל בסיס הנתונים העלאת העוצמה של מערכות מחשב אישיות, גרמה לדרישה של המשתמשים למערכות ניהול של בסיסי נתונים. כמות הנתונים שניתן לאחסן ולנהל במחשבים אישיים | גדלה בצורה מהירה והמורכבות של הנתונים ומגוון | היישומים המבוסטים עליהם גדלים בצעדי ענק. משתמשים שפעם היו מרוצים מתכניות פשוטות לניהול קבצים חיפשו מערכת חזקה לניהול בסיס נתונים, שבאמצעותה יוכלו לנהל ולשלוט בנתונים שלהם. מפתחי יישומים דורשים גם הם את המאפיינים של מערכות לניהול בסיס נתונים, אשר פועלות במערכות גדולות. מנהל בסיס הנתונים (8867ת118 128%80856), הנכלל בגירסה המורחבת של 05/2, הינו חבילת תוכנה אשר נועדה הן עבור משתמשים והן עבור מפתחי *ישומים. מנהל בסיס הנתונים הטבלאי/יחסי (ע6אַאַת1]8 28%80856 [2618%1008) מכיל את הפונקציות הדרושות לניהול בסיסי נתונים ותומך בשפת השאילתות המובנית של *יבמ. הטכנולוגיה והארכיטקטורה של מנהל בסיס הנתונים מספקות את הדברים הבאים: רמת ביצועים גבוהה. גישה למשתמש אחד וגישה בו-זמנית למספר משתמשים. שלמות של הנתונ*ם. אמצעים להגנת הנתונים. מנהל בסיס הנתונים מבוסס על שפת השאילתות .501 ועל מודל בסיס הנתונים הטבלאי שפותח על-ידי 0006 .9. במרכז המחקר של יבמ בסאן-חוזה, ארה"ב. היתרון העיקרי שלו הוא בהפרדה הברורה בין תפיסת המשתמש לגבי הנתונים, לבין הצורה שהם מאוחסנים באמת. בסביבת המחשב האישי, *דידותיות של היישום הינה הדגש העיקרי. ואמנם, המודל הטבלאי של הנתונים פשוט וקל להבנה ולשימוש גם על-ידי מי שאינו מתמחה במחשבים: המשתמש עוסק בהיבט של השימוש בנתונים ומנהל בסיס הנתונים עוסק בהיבט של האחסנה, העדכון והאחזור של הנתונים. התוכנה מפעילה מנגנוני גישה *עילים כדי להג':ע לביצוע אופטימלי של איחזור המידע. שפת ‏ 569, שפותחה כעבודת מחקר בנושא בסיסי נתונים, הפכה לסטנדרט בתעשייה. השפה קלה ללמידה, אך בעלת עוצמה רבה בביטוי שאילתות מורכבות. משפט יחיד ב-501 :*כול לבצע את אותן פעולות, שיכולות לבצע שורות רבות של פקודות בשפת תכנות מקובלת. שפה זו נתמכת על-ידי מוצרי תוכנה של יבמ למחשבים בארכיטקטורת 370 ומחשבי 45/400: (282) 2 80940856 ]18% (501/25) 6₪ל5ע5 886/228%8הַה13 עזסם) 66זט06נר50 ]מז 0 :אמ 200 מנהל בסיס הנתונים ב-05/2 תומך במישק בסיס הנתונים ‏ 501 של 688 - ארכיטקטורת היישומים הבין-מערכתית של יבמ. 548 מספקת מישק סטנדרטי לשלוש סביבות המיחש ב העיקריות של יבמ: מחשבים בארכיטקטורת 370, מערכות בינוניות ומחשבים אישיים. הכלי ההידברותי למשתמש הקצה הוא מנהל השאילתות (זַסִפַהַחם1/1 עז6כ)). כלי זה מאפשר הכנסת (תונים, עריכה, ביצוע שאילתות, יצירת דו"חות ותמיכה בהתאמת יישומים לצורכי הלקוח (ם00550128%10). מנהל השאילתות ב-05/2 תומך במישק השאילתות של 544 ותואם למערכות התומכות בארכיטקטורה זו. פרק זה מתאר את הפונקציות של מנהל בסיס הנתונים ב-05/2. המודל הטבלא' של ימז לאחר שפותחה התיאוריה הבסיסית על המודל הטבלאי (יחסי - [8ת618010ת), יבמ פיתחה מספר אבות טיפוס המבוססים על המודל. אב הטיפוס הידוע ביותר נקרא א 5606ַע5, אשר פותח במעבדת המחקר בסאן-חוזה ושפת ,501 פותחה כחלק מעבודה זו. פותחו גם טכניקות אופטימיזציה והידור של שאילתות, בקרת גישה במקביל (201+ת60 עסת6עזטסתס6), ופרוטוקולים לנעילה ורישום. אב הטיפוס 8 5550 סיפק את הבסיס למחקר ולפיתוח של מערכות לניהול בסיס נתונים מבוזר (5וופככ - 5/5068 %ת80000ה114 128%82856 666ט15010כ). המוצרים 501/25 ו-82כ פועלים מאז ראשית שנות ה-80. מנהל בסיס הנתונים ב-₪5 05/2 נהנה מכל הטכנולוגיות, ממאמצי המחקר, ומכל הניסיון שנצבר במוצרים שכבר קיימים. הוא תוכנן במיוחד לרוצ בסביבת 05/2 ומנצל טכנולוגיות חדישות, כדי להשיג את הביצועים הטובים ביותר האפשריים. היתרונות של מנהל בסיס הנתונים ב-₪₪ 05/2 בולטים בנושאים הבאים: ביצועים: רמת ביצועים גבוהה היתה :עד תכנון עיקרי של מנהל בסיס הנתונים. כדי להשיג יעד זה השתמשו בטכנולוגיות חדשות לאופטימיזציה של ביצועים, | אלגוריתמים משותפים (פממת8180116 תנס[), | וטכניקות | מתאימות לניהול מאגרים. השיטות למיעון לפי אינדקס ולנעילה סיפקו רמה גבוהה של גישה במקביל תוך שמירה על רמה גבוהה של ביצועים. ארכיטקטורת יישומים בין מערכתית (588): היתרונות של 588 הם חלק ממנהל בסיס הנתונים של ₪8 05/2. התחביר, הסמנטיקה והארכיטקטורה של פונקציות מישק בסיס הנתונים תוכננו כדי שיהיו זהים לאלה הנמצאים במוצרים אחרים. שמירה על שלמות הנתוגים: השתמשו בטכניקות חדשות לניהול תנועות ולרישום (אַת1שַ8ַ10) כדי להבטיח את שלמות הנתונים (ע608116ת1 68%8) בעת תקלה. מערכות לניהול בסיס נתונים מבוזר (5]אמסכ): רוב הפונקציות אינן כלולות בגירסה הראשונה, אך המוצר עצמו תוכנן בצורה כזו שניתן לשלב בו פונקציות אלו בשלב מאוחר *ותר. ההתאמה בארכיטקטורות של מערכות בסיסי הנתונים הטבלאיים של יבמ,. מאפשרת את הביזור של בסיס הנתונים בין מוצרי תוכנה הפועלים במחשבים שונים. 21 מבנה המערכת המשתמש יכול להפעיל את הפונקציות של מנהל בסיס הנתונים בשלוש דרכים: להשתמש במישק ההידברותי הנקרא מנהל השאילתות, כדי לבצע :3 ניתן שאילתות, | הכנסת (תונים,| עדכון,| הגדרת נתונים באופו מזדמן ויישומי דו"חות. * ניתן להשתמש בפונקציות של מנהל השאילתות כדי ליצור :ישומים עם טפסים,| תפריטים, שאילתות, דו"חות ופרוצדורות,| אשר מותאמים למשתמש הסופי. המשתמש *כול לבצע יישומים אלה שוב ושוב, על-ידי הזנת פרמטרים מתאימים. = ניתן להשתמש בשפות תכנות מקובלות כמו ‏ 6, כדי לקבל שירותים ישירים מפונקציות שונות של מנהל בסיס הנתונים. קדם מהדרים (9ע00116ת600זק) ותכניות קשירה (60:5ת01) משמשים ליצירת קשר בין תכניות המשתמש לבין שירותי בסיס הנתונים. כל הגישות לבסיס הנתונים עצמו מבוצעות על-ידי מרכיב של מנהל בסיס הנתונים הנקרא שירותי בסיס הנתונים (56"01065 28%80856). זהו המנוע של מנהל בסיס הנתונים, | אשר מטפל בנתונים המאוחסנים| בבסיס הנתונים ובפונקציות של .561 המגיעות דרך מישק בסיס הנתונים. הוא מפיק תכניות לגישה אופטימלית ותומך בפונקציות המאפשרות הזנת תנועות, גישה בו- זמנית, | אחסון של נתונים וניהול של מאגרים. באמצעות שגרות 821 הוא גם מטפל בשירותים כמו *בוא, *צוא, ג'בוי, אישוש, ארגון| מחדש ורישום סטטיסטיקה של הרצות. אם בסיס הנתונים הינו מרוחק ונמצא ברשת תקשורת מקומית (אג1), יקראו שירותי בסיס הנתונים למרכיב שירותים מרוחקים (56:01005 260%6), שאינו זמין עדיין, כדי שיטפל בגישה מרחוק. מרכיב השירותים המרוחקים משתמש בפרוטוקול "תקשורת מתקדמת בין תכניות" (226ב) של רשת ה-ב5% כדי ליצור קשר עם בסיט נתונים מרוחק. 4220 נתמך על-ידי מנהל התקשורת של ₪5 05/2, שהינו מרכיב נוסף הנכלל במהדורה המורחבת של 05/2. בהמשך נתאר פונקציות עיקריות המסופקות עם מישק בסיס הנתונים. מישק בסיס הנתונים טבלאות נתונים שפת .561 מאפשרת להגדיר בדרך פשוטה את הטבלאות המרכיבות את בסיס הנתונים. פשטות זו נובעת מהעובדה שמבנה הנתונ*ס אינו מכיל מצביעים, אינדקסים, או מסלולי גישה כלשהם מוגדרים. בסיס הנתונים במודל הטבלאי מורכב מטבלאות, אשר יש להגדיר בעת בניית בסיס הנתונים או לאחר מכן, כאשר רוצים להוסיף טבלה חדשה. הגדרת טבלה כוללת את שמה, את שמות השדות (עמודות) המרכיבות אותה ואת התכונות של השדות. בתרשים מוצג מבנה של טבלאות שעל פיהן נוכל לרשום את הסכימה הטבלאית של בסיס הנתונים. לשם דוגמה נניח שקיימות במערכת שתי טבלאות 22 המתייחטות למחברים ולספרים שהם כתבו. נערוך רשימות לפי חתכים ומיונים שונים ונערוך סיכומים שונים על-פי הנתונים הכלולים בהם. (1/11₪5ה צסת , טאהאדסהדע ‏ מאהא5 1 , פדתסגודטה ) פתסצדטה 5 שאראדפתע פא א דט תמלוגים שם פרט: שם משפחה זיהוי המחבר ו :0 מש זיהוי המחבר מס' עותקים שנמכרו כותר (שם הספר) שפה לטיפול בנתונים ב-561 קיימות ‏ 4 פונקציות עיקריות לצורך הטיפול בנתונים: | 5010077, שה ספט, צתתפאז, מדק וס הפונקציה ‏ 522801 היא החשובה והשימושית בכולן. היא משמשת לאיחזור נתונים ולשם הצגת ש15/. המבנה הכללי של ההוראה ‏ 551607: שמות שדות לשליפה (או * עבור כל השדות) 118% שסגסנעססה 0 שם טבלה, או טבלאות, שמתוכן יש לשלוף 58 68016 אסתק תנאי שליפה [8112108%6105ט שתמז] סדר מיון [ 8₪0ת-0066 86623 צם המפאס] [ ] מסמן משפט אופציונלי המשתמש במערכת מעוניין לעתים רק בחלק מהנתונים הכלולים בטבלאות השונות ולרוב הוא משתמש במספר טבלאות לשם הצגת השאילתות. בדרך המקובלת היה עליו להגדיר מדי פעם מחדש את אוסף הנתונים (טבלאות, שדות ותנאי שליפה) או ליצור לעצמו טבלה ממשית נפרדת. כדי להקל עליו, מאפשרת המערכת להציג לו טבלה לוגית, שהיא תצפית קבועה ((ש018) של הנתונים שנדרשים על :דו. טבלה לוגית אינה קיימת באופן ממשי בבסיס הנתונים, אלא מוגדרת על פי הטבלאות הממשיות, והמשתמש פועל בה כאילו היתה טבלה ממשית. שיטה זו 23 מגדילה ‏ את אי התלות בנתוניָם ואת *עילות העבודה. השיטה תורמת גם לבטיחות הנתונים בכך "שהיא מאפשרת להציג למשתמש רק את הנתונים המותרים לו ומסתירה מפניו את השאר. ההוראה 51,207 מאופיינת בכך שהיא שולפת מספר שורות (רשומות) בבת-אחת ומפיקה כפלט רשימה או דו"ח שלם. בשפות אחרות יעד השליפה הוא רשומה בודדת, והפקת דו"ח נוצרת על-ידי איחזור בתהליך חוזר (לולאה). נציג מספר דוגמאות: א. עריכת דו"ח מטבלת המחברים, הכולל את שם המשפחה והשם הפרטי של המחבר. המיון לפי שם משפחה ושם פרטי בסדר עולה (8ת01ת2506): טאאצפתדע, פאהאד 1 07 טס ץנ אסתק 6 מאהאעפתזע ,450 מאגא15 צם תמסחס כאשר נרצה לקבל רשימה לא ממוענת של המחברים ששמם הפרטי הוא 'ם7ז5', נכתוב: מאגאצפתדע ,מאבא157 | ₪07 מס 5 אסתע 'אצזאפ' = טאגבאנפתנעק מתפחט ב. נשתמש באופטור קבוצתי הפועל על קבוצת הרשומות שנבחרה מתוך טבלה אחת או יותר. נוכל להשתמש באופרטורים שונים, כמו: אזא ,אגא ,470 ,508 , לאטסס לדוגמה, נחשב עבור כל המחברים את ממוצע התמלוגים ונכפול ב-1/2. 5 * (411185צ0ת)200 - 5007 5 אסתע ג. אפשר לקבל סיכומי ביניים לפי קריטריון של סוג, למשל: (000185)א50 , מקצך ד 0005 אסמת הקעצ | עם סססתס '1ע'=מקצץך 03 'קפ'=מקצך סאדטגע ד. אפשר לרכז נתונים ממספר טבלאות, עד 15. הקשר בין הרשומות *יעשה באמצעות שדה (עמודה) מזהה הנמצא בשתי הטבלאות, אשר במקרה שלפנינו הוא כ1אסתדזה. ₪ ,מאאד5 1 | 50007 8 20085 ,4 פהסחדטה אסתע פנתסהדטה.3 = פ1הסאדט. ג מתמתט 'עם' = מקצך | פאגב 'אחסנ' = מאהאצפתנע | פאג 24 ה. במערכת ‏ 901 אפשר לבנות שאילתות מורכבות מאוד תוך שימוש בתת-שאילתות (עעגוסטו5). הפלט של תת-השאילתה, שהינו למעשה טבלה, נמסר כקלט לשאילתה הראשית. לציג את השימוש בטכניקה זו. מאהאד 5 ,מאהאדפתנע | ₪07 50 5 אסקע < 1/1105 צסת מתסצט (11185צסת) 2006 007 51) סתסנדטה אסגק פאג ספנתסנטה ₪07מ5) צאה = פדתסממדטה 0% אסחק (('עפ' = מקצך מהמחט משפטי מ7הספנז, דאמפאז ו-21875כ יכולים להכיל את הביטוי אתמצחט. לדוגמה, משפט מדהקקנז: כל המחברים שמחברים ספרים מסוג 50, יקבלו תוספת תמלוגים של 10%. 5 8 מצהפסטס 1 * פם11 1 צסת = פמדץ וה צסת זספ סט 55₪07) צאה = פצתסמדטה מתסחט 5 אסאע ('עפ' = מקצך מהחחט מישק התכנות ההוראה 500207 מפיקה לעתים *ותר משורה אחת. כדי להקצות את הזיכרון הדרוש לאחסנת הפלט הזה, יש לרשום את ההוראה 61185008 אמכ לפני הוראת 7 הוראת 101ע מאפשרת לטפל בשורה אחת מדי פעם. היא מעבירה את הנתונים אל התכנית בהתאם לשמות המשתנים המוגדרים בה. לדוגמה, משפטי .501 בתכנית בשפת 6, המעבירים פלט למשתנים: ו ספא 595: , ס6מהתאססס: 0 6001085 ,61016 7 5 סט אסתק '/4₪1ת15' = 61016 מתתוה איו זו הדרך היחידה להעברת נתונים, אלא הפשוטה שבהן. השיטות להעברת נתונים במהדורה המורחבת של 05/2 תואמות את השיטות במערכות אחרות. תמיכה סטטית ודינמית כל משפט 502 עובר הידור לפנ הביצוע, ההבדל הוא במועד שפעולה זו נעשית. במצב סטטי, ההידור נעשה פעם אחת בלבד בעת עריכת התכנית אשר משתמשים בה פעמים רבות. במצב דינמי, ההידור נעשה בעת הביצוע של שאילתות מזדמנות אקראיות בלתי מתוכננות מראש. יעילות הביצוע של 500 סטטי גבוהה יותר. 205 שפה להגדרת נתונים הגדרת טבלה נעשית בפקודה 71431.6 08287'6. השמות של השדות בטבלאות השונות יכולים להיות שונים, או שהם *כולים להיות שווים. במקרה האחרון יהיה צורך לרשום את שם הטבלה כמציין לשם השדה. נכתוב למשל אחמנו זא.]א5ד] או אפתאזא.פ5ת5כתס, כאשר "מספר-פריט" הוא 888]נזא בשתי טבלאות שונות. לדוגמה הגדרה של טבלת ‏ 78%ד1: ,11טא דסא תפסטעאד הממאטא 1) אמעז םתד טדהמתס ((85) 8 א10ע1ת טע 1 בכל שורה בכל טבלה חייב שדה אחד לפחות להיות שדה-זיהוי או שדה-מפתח, ולכן הוא חייב להכיל ערך כלשהו "לא אפס" (עעטא דסא). סוגי נתונים אפשריים הם לדוגמה: 61188, אהת הש, הממ דצנ, עבעזספכ, מדבת, זהסות. סוג נתון מיוחד יכול להכיל מחרוזות עד 32000 תווים, והוא מיועד לאחסנת נתונים גרפיים ותמונות ווידאו. מערכת .561 מאפשרת להוסיף עמודות חדשות לטבלאות קיימות באמצעות הפקודה ד אטעעה. הרחבת טבלה נעשית באופן דינמי במהלך העבודה, ואפשר להשתמש בה מיד. השדות בעמודוּת שנוספו -הם ריקים (11טצ:). לדוגמה, אם יש להוסיף לטבלת הפריטים עמודה חדשה, אשר מכילה את סוג הפריט (תו אחד אלפנומרי), נרשום: אמצ םעפה המד ]ה (1) הגאס טפצך 1 פפג מבטלים טבלה בהוראת 378הד עספס. אפשר ללצור ולבטל אינדקסים, כדי לשפר את ביצועי המערכת. לכן רצןי לבנות אותם עבור שדות (עמודות) שההתייחסות אליהם היא רבה. השימוש באינדקסים הוא אוטומטי. התוכנה כוללת קטלוג המשמש לשמירת הגדרות הנתונים. הקטלוג בנוי במבנה של טבלאות ועל-כן ניתן לשלוף ממנו מידע באמצעות הוראות המערכת הרגילות. הגדרת הנתונים והטיפול בהם פשוטים ומותאמים למשתמש, שאינו מנהלן בסיס נתונים כמקובל במערכות גדולות. תכניות שירות ומישקים לתכניות יישומים התוכנה כוללת פונקציות שהן מישקים לתכניות :ישומים (ם1108%10סק 1 - 60:1806ם1 מתהזקסזקע). תכניות השירות מאפשרות ליצור בסיסי נתונים, לבטל, לשלב ולהפריד בסיסי נתונים, לקבל מידע אודות בסיסי נתונים ולשנות פרמטרים הקשורים בהם. תכנלות שירות מסוג אחר *כולות לקלוט נתונים לתוך טבלה (1אספו/1), או להפיק נתונים מתוך טבלה (דַתַסקאת), לבצע גיבוי, שחזור וארגון מחדש. פונקציית השירות 51415אזת מיועדת לעדכון הרישומים הסטטיסטיים הדרושים לבקרה ושיפור הביצועים (66ת08תס1ז6ק מק ). הידור מראש וקישור הידור וקישור מיועדים למקרים שבהם משפטי ,501 כלולים בתכנית *ישום, כמו 206 למשל בתכנית הכתובה בשפת ‏ 6. משפטי ‏ 501 אינם משפטים "חוקיים" בשפת 62 ועל-כן יש צורך לערוך את התכנית המשולבת באמצעות קדם-מהדר, כדי שיהיו בה רק משפטים חוקיים בשפה זו. לאחר מכן התכנית עוברת הידור כדי להפיק תכנית הנ*תנת לביצוע. בזמן העריכה של קדם-המהדר נבדקים משפטי .561 ונקראות השגרות המשרתות את הפונקציות הכלולות בהם. באותה עת גם נקבעים מסלולי הגישה לטבלאות כדי להבטיח ביצוע *עיל. הדיון הזה מתייחס להפעלה סטטית של 501, כי בהפעלה דינמית משתמשים במשפטי .591 בלבד. שירותי בסיס הנתונים עיבוד מרובב ושירות למשתמשים רבים במערכת 8ם-05/2 ניתן להפעיל מספר תהליכים (0668585ת2) בו-זמנית. מנהל בסיס הנתונים מנצל תכונה זו כדי לתמוך בגישה בו-זמנית של מספר תכניות אל אותו בסיס הנתונים. כדי לשמור על עקביות ושלמות בסיס הנתונים בעת ביצוע פעולות/תנועות, הוא מפעיל שירותים של חסימה ושחרור, אשר מונעים עדכון בו-זמני על-ידי משתמשים אחדים. המשתמשים יכולים לנצל מגוון שירותים זה כדי להשתמש בעת ובעונה אחת במספר בסיסי נתונים. לדוגמה, ניתן להפעיל תכנית דיווח ברקע, ובאותו זמן להפעיל גם תכניות לקליטת תנועות ועדכון, אשר משתמשות כולן באותו בסיס הנתונים. התמיכה בעיבוד מרובב ושירות למשתמשים רבים העה הבסיס של השירותים מרחוק (אשר אינם זמינים בעת כתיבת הספר). מרכיב זה של מנהל בסיס הנתונים מאפשר תמיכה בתחנות עבודה רבות הקשורות ב-1.4 ומקבלות שירותים משרת (ז50176) אחד שהם "לקוחותיו". תמיכה בתנועות תנועה הינה *חידת עבודה אטומית, כמו למשל עדכון לקוב, או שחזור המצב הקודם לאחר תקלה. בסיס הנתונים אינו שלם כאשר רק חלק של התנועה מוצג בשדות הרשומה במהלך העדכון. יש צורך לוודא שהפעולה תושלם תמיד, או שהמצב הקודם ישוחזר, כדי שהתהליך לא ישאר במצב של "ביצוע חלקי/לא מושלם". תנועה נועלת את בסיס הנתונים מפני גישה של תנועה אחרת בשעה שהיא פועלת לעדכון או שחזור. המערכת משתמשת לשם שחזור בקוב הרישום הכרונולוג* (1116 ַ10), אשר מציין נקודות בקרה. הוא מאפשר לשחזר מצב מנקודת בקרה כלשהי, בהתאם לדרישת המשתמש, ולאו דווקא מתחילת תהליך העיבוד. גישה בו-זמנית מנהל בסיס הנתונים מאפשר לתהליכים רבים גישה בו-זמנית (%ת6ץזטסתטס 8 אל בסיס הנתונים. המערכת משתמשת במנגנון נעילה, באמצעות 207 פקודות נעילה המופקות באופן אוטומטי בעת העדכון, או במהלך העבודה, בפקודה 7818 א120. מנגנון השליטה של מנהל בסיס הנתונים משתדל לנעול פחות ככל האפשר, כדי לאפשר *ותר זמן חופשי לשירות של המשתמשים ולמנוע היווצרות תור. נעילה יכולה להתבצע ברמה של טבלה, או ברמה של רשומה בודדת. העדיפות היא כמובן לנעילה לפי רשומה, כדי לאפשר גישה של משתמשים אחרים לרשומות אחרות בטבלה. ניתן לבצע נעילה מוחלטת, או נעילה שתאפשר קריאה בלבד, אך לא כתיבה. משתמשים שונים יכולים לגשת אל האינדקס באותו זמן. במערכת פעילה ודינמית *כולים להיווצר מצבים של נעילה ללא מוצא (0680 5), אשר :כולים לגרום לחסימה והפסקת פעולה. מצב חמור זה נמנע באופן אוטומטי על-ידי מנהל בסיס הנתונים, אשר *ודע לגלות מצבים אלה ולהשתחרר מהם כדי להמשיך את הפעילות התקינה. הידור ואופטימיזציה משפטי .501 סטטיים עוברים הידור וקישור. אפשר לעשות זאת ל"תכנית" .561 עצמאית, אך חייבים לעשות זאת כאשר משפטי ‏ 5601 משולבים בתכנית אחרת, כגון תכנית בשפת 0. מהלכי ההידור והקישור דומים לאלה שנעשים בכל שפת תכנות שהיא. תכנות מראש מכוון לביצוע שאילתות קבועות, אשר *כולות לקבל בכל הרצה פרמטרים שונים מן המשתמש, כמו למשל טווח ערכים לחיפוש, קריטריון השוואה שונה לאחד הערכים וכו'. רכיב האופטימיזציה של מנהל בסיס הנתונים בוחן את משפטי .561 המרכיבים את השאילתה ובודק אם קיים אינדקס, מהן הטבלאות שיש לחפש בהן ומה גודלן ועוד. על-5י נתונים אלה ועל-פי אלגוריתם הבנוי בו, נקבע מסלול הגישה (ה+אק 58) לחיפוש הנתונים הדרושים, ובכלל זה סדר החיפוש בטבלאות והשימוש באינדקס. ניהול האחסנה שירותי מנהל בסיס הנתונים מנצלים את מערכת הקבצים האינטגרלית של 05/2, כדי להכןים ולאחסן את הטבלאות המרכיבות את בסיס הנתונים. כל טבלה נשמרת בקובצ נפרד. כל קוב%א מחולק פנימית לדפים בני 4% בתים כל אחד, המהוו*ם יחידות קריאה/כתיבה של 05/2. חלוקה זו הענה לצורך פעולות קלט/פלט ואנה קשורה למבנה הלוגי של הקבצים, אשר *כולים להחזיק רשומות שאורכן עד 32,000 בתים. לכל בסיס (תונים פעיל מוקצה מאגר פעולה ("116טם) בזיכרון, אשר גודלו לפחות 8א4%. מאגר זה מנוהל כזיכרון מטמון (68086), שבו נוהל הפעילות הוא 1711 (128560 ע61ת2606 1685%). כלומר, כאשר צריך לקרוא דף מן הדיסס, משתמשים בשטח המאגר שבו נמצא הדף "הזקן" ביותר, או הדף שנעשה בו שימוש בזמן הרחוק ביותר. דפים של אינדקסים ודפים דרושים (כפי שנקבע), נמצאים כל הזמן במאגר ואינם מוחלפים. . בעת כתיבה לקוב>, הרשומות נאגרות במאגר ורק כאשר יש דף שלם הוא נרשם בדיסק. הרשומות הנשלחות אל קובף הרישום הכרונולוגי נרשמות תחילה אל הדיסק, לפני שהדף השלם המכיל אותן נכתב לדיסק. 28 אבטחה מנהל בסיס הנתונים מספק אפשרות לסיסמאות גישה ברמה של בסיסי הנתונים. כלומר, משתמש מורשה לטפל בבסיס הנתונים רק לאחר שהוא מוסר למערכת את סיסמת הגישה שלו. הסיסמה נקבעת בעת יצירת הקוב, וניתן לעדכן אותה. האחראי למערכת יכול לציין שאינו רוצה בסיסמאות להרשאת הגישה. תצפית הנתונים ‏ 186₪/, העה אמצעי נוסף חשוב לאבטחת נתונים על-ידי מניעת גישה אל חלקי טבלאות. תמיכה בשפות לאומיות התמיכה של מנהל בסיס הנתונים בשפות לאומיות מתאפשר על-ידי שמירה של ההנחיות למשתמש, הכוללות הודעות ותפריטים הנמצאים בקבצים נפרדים. הפרדה זו מאפשרת לתרגם נתונים אלה בהתאם לדרישות של כל שפה. התאמות נוספות לדרישות של ארצות שונות קשורות לצורת ההצגה של תאריך וזמן, סדר מיון של נתונים (א"ב, ספרות וסימנים), סימון מספר עשרוני ועוד. שירותים למרחק שירותים אלה (אעם זמינים עדדיץן) תומכים בעיבוד של בסיסי נתוניםס מבוזרים ברשתות (18%). הם מאפשרים למשתמש להוציא הוראת ‏ 501 לבסיס נתונים שאינו נמצא במחשב שלו, אלא במחשב אחר הקשור לרשת. כדי לאפשר שירות זה, יש רישוס של בסיסי הנתונים השונים בקטלוג המערכת. נערכת בדיקה בקטלוג היכן נמצא הקובף המכיל את הנתונים הדרושים. אם הקוב נמצא במחשב מרוחק, מעבירים אליו את ההוראות של ,501 באמצעות רכיב ה של מנהל התקשורת ב-025/2). ההוראות מתבצעות במחשב המרוחק והתוצאה של העיבוד מוחזרת אל התכנית המבקשת, כאילו העיבוד נעשה בפיקוח ישיר שלה במחשב שבו היא נמצאת. פעילות זו שקופה לתכנית היישום ולמשתמש. נוהלי אבטחת המידע נשמרים במערך המבוזר, כמו במחשב יחיד. סיכום תוכנת מנהל בסיס הנתונים בגירסת 025/2-2₪) משתמשת בטכנולוגיות *יחודיות רבות של יבמ. היא פותחה במקביל לפיתוח מערכת ההפעלה:05/2, ולפיכך היא מותאמת לעבוד בסביבה זו ומנצלת את כל האפשרויות שלה. התוכנה מספקת ביצועים משופרים ופונקציות לאבטחת שלמות נתונים (68%8 6חן). היא תואמת בפונקציות שלה לתוכנות יבמ האחרות לניהול בסיסי נתונים טבלאיים, ובכך היא תאפשר עבודה במערכת מבוזרת. תוכנת מנהל בסיס הנתונים והפונקציות הכלולות ב-05/2-85₪ הינם תשתית לפיתוח יישומים מקיפים בתחומים שונים על-ידי משתמשי המערכת. 209 נספת ג מערכת אישית יבמ/2 - 05/2 מבוא מערכת אישית יבמ/2 היא משפחה של מחשבים אישיים בארכיטקטורה חדשה, אשר מהווה את הצעד הראשון במסלול גידול ארוך טווח. ארכיטקטורה זו מבטיחה את עקרון העתיד במיחשוב: אחידות פיתוח ושימוש ביישומים לכל אורך קו המוצרים של יבמ. המערכת האישית 25/2 העה בעלת תכונות טכניות משופרות לעומת המחשב האישי, במהירות. עיבוד וביכולת אחסון נתונים. כושר ביצוע של 5.2 מיליון פקודות בשניה, 6 מיליון בתים של זזיכרון מרכזי, | 628 מיליון בתים בדיסקים קשיחים ובתוספת של ער 1.6 מיליארד בתים בתקליט אופטי חדיש, עושים את הדגם הגדול, במשפחה לאחד המחשבים האישיים החזקים בעולם. המערכת האישית יבמ/2 מהווה המשך ושכלול של המחשב האישי של יבמ. היא מאפשרת למשתמש לנצל את השקעותיו הנוכחיות בציוד ובתוכנה, להמשיך להשתמש בתוכנה הקיימת, להפעיל יחידות חדשות בצד יחידות קיימות ולהעביר מידע בין מחשבים משני הסוגים. הטכנולוגיה המתקדמת של המערכת כוללת חלק ניכר מהאבזרים הדרושים פפעילויות שונות, כחלק תקני ממנה. כרטיסים ואביזרים לתקשורת, למדפסת, למצגים ולעכבר בנויים על "לוה האם" של כל מחשב ועוד נותר מקום לכרטיסים אחרים, לצורך גידול בעתיד. כל הדגמים של המערכת האישית יבמ/2, הם בעלי עוצמה גדולה בהרבה מהמחשבים האישיים הקיימים וקטנים מהם במימדים. ארכיטקטורה וטכנולוגיה חדישות המערכת האישית *במ/2 בנויה בארכיטקטורה *יחודית האופיינית למחשבים בינוניים וגדולים של יבמ, 6:ט10606ת70 [6תת8ת(0 11070/, אשר מאפשרת ביצוע של מספר משימות קלט/פלט במקביל. מבנה זה מעניק למחשבי המשפחה עוצמה רבה ואפשרויות גידול נרחבות (פרט לדגמים 25 ו-30). כל דגמי המערכת בנויים בטכנולוגיה חדישה של מיזעור ואינטגרציה, ובחלק מהם אף שולבו רכיבים זהים לאלה שבמחשבי הענק של *במ. חידושים אלה איפשרו שיפור רב ביחס עלות/ביצוע של המערכת האישית יבמ/2 ופתחו אפשרויות| חדשות רבות בפני המעוניינים לפתח *ישומים חדשים, לעסוק בעבודות הדורשות משאבי מחשב רְבִים, לשלב מחשבים ברשתות תקשורת ועוד. על גבי המצגים החדשים אפשר לקבל תמונות ותמלילים חדים וברורים, באיכות דומה לתמונות ודפים מודפסים. מגוון הצבעים שניתן להציג בו-זמנית רחב 200 ו ביותר ומגיע ל-256 מתוך 262,144 אפשרויות! תקשורת רב תכליתית גורם חשוב הוא הפתיחות: פתיחות לחידושים טכנולוגיים ולתקשורת מסוגים שונים. המערכת האישית יבמ/2 מתקשרת למחשבים מרכזיים גדולים *ותר, למחשבים אישיים קיימים, והיא תאפשר להתקשר עם מחשבי העתיד של יבמ ועם מקורות מידע אחרים. אין אלה מחשבים ליישום בודד, אלא מערכות אישיות מקיפות, שניתן לחברן זו עם זו, להשתמש בהן לצרכים רבים ולבצע בעזרתן משימות רבות בו-זמנית. עברית יבמ פיתחה עבור המערכת החדשה תמיכה מקיפה בעברית, התואמת את התמיכה העברית במחשבים האישיים של *במ. היא מאפשרת למשתמשים בישראל להנות מהיתרונות הנובעים מתכונותיה של המערכת החדשה. מאפינים וש'מושים ע'קריים דגמים 25, 30 מחשבים שולחניים קטנים לשימוש כללי, אשר נועדו למיחשוב אישי, לכתת לימוד, לעסק קטן, כתחנת עבודה בודדת או משולבת ברשת. בדגם 25 המצג בנוי כחלק מן היחידה. שימושים: * תחנת עבודה עצמאית ליישומים נפוצים, כמו גיליון עבודה אלקטרונל, עיבוד תמלילים, גרפיקה, הנהלת חשבונות, לומדה וכו'. * תחנת עבודה ברשת תקשורת מקומית לביצוע *ישומים עצמאיים. *ישומים מחלקתיים (למשל, דואר אלקטרוני) ויישומים עסקיים הדורשים שטת? אחטון גדולים יותר. * תחנת עבודה אינטליגנטית בתקשורת למחשב מארח. * תחנת עבודה משופרת להפעלת מתאמים ויחידות קיימות ממשפחת ה-06. המחשבים מתאימים למי שמעוניינים בכניסה בעלות נמוכה לתחום המיחשוב האישי. דגם 90 מחשב שולחני בעל עוצמת חישוב רבה להפעלת :ישומים מתוחכמים. דגם זה עוצב בארכיטקטורה החדישה של [6תתאת6 סעסוא. 21 שימושים: * תחנת עבודה עצמאית ליישומים הדורשים כוח חישוב ופונקציות מתקדמות: * ריבוי משימות, ‏ ניהול חלונות, | גיליונות עבודה אלקטרוניים גדולים, עיבוד תמלילים ושימוש משרד אחרים, וכן תכניות חישובים מדעיים והנדסיים. * תחנת עבודה ברשת תקשורת מקומית, או למחשב מרכזי, לשילוב *ישומים עצמאיים עם אמצעי אחסון גדולים, תקשורת מורכבת ויישומים מחלקתיים רבי-משתמשים. כוח החישוב והגרפיקה של המחשב בשילוב עם אמצעי אחסון שברשת תקשורת מאפשרים הפעלת יישומי תיב"מ. המחשב מתאים לכל המעוניין בתחנה עצמאית בעלת עוצמת חישוב רבה, או במחשב חזק כמרכיב ברשת תקשורת. דגם 60 מחשב בעל עוצמת חישוב ואמצעי אחסון רבים להפעלת יישומים מתוחכמים ועיבוד כמויות גדולות של נתונים. מעוצב בארכיטקטורת [6תתאת6 ₪6-0/, ונועד להצבה על הרצפה. שימושים: * תחנת עבודה עצמאית, או משולבת ברשתות תקשורת מורכבות, לביצוע מגוון רחב של פונקציות ויישומים: ריבוי משימות, ניהול חלונות, עבודה על גיליונות עבודה אלקטרוניים ומאגרי נתונים גדולים, ‏ יישומים גרפיים מסוג | תיב"מ, עיבודים ‏ מדעיים והנדסיים ועיבודים מסחריים עסקיים הדרושים משאבים רבים. * שרת ברשתות תקשורת מקומיות קטנות ובינוניות. המחשב מתאים לעסקים הדורשים עוצמת עיבוד, אמצעי אחסון ואפשרויות גידול נרחבות. דגמים 70, 80 מחשבים רבי-עוצמה ורבי-משאבים, אשר עוצבו בארכיטקטורה של 11:00 1 תהתס. דגם 70 הוא מחשב שולחני, ואילו דגם 80 נועד. להצבה על הרצפה. שימושים: * תחנת עבודה עצמאית, או משולבת ברשתות תקשורת מורכבות, לביצוע מגוון רחב של פונקציות ויישומים: ריבוי משימות, ניהול חלונות, | מאגרי נתונים | גדולים, :ישומי תיב"מ מורכבים, עיבודים מדעיים והנדסיים ועיבודים עסקיים בהיקף גדול. למודל 80 אפשרויות רבות *ותר לאחסנת נתונים. * שרת ברשתות תקשורת מקומיות בינוניות וגדולות. המחשבים מתאימים לעסקים הדורשים עוצמת עיבוד ואמצעי אחסון לטיפול במשימות רבות היקף ואפשרויות גידול נרחבות. 222 נתונים טכניים - 25/2 1891 הספן. - שא.. | אא | 2 6 זיכרון אה מוכלל (מַא) זיכרון אאת מכסימלי על לוח המערכת. (₪8) זיכרון א4 מכסימלי (סא) מהירות גיטה לזיכרון 06פח כונן תקליסון "3.5 (88) תקליט קסיה (8א) תקליט קטיתה נוסף (8א) כניסות קלט/פלט מעבד (אינטל) מהירות (;זוא) מעבד מתימסי מערכות הפעלח ויכרון אסת (8א) זיכרון את מוכלל (8א) זיכרון אהת מכסימלי על לוח המערכח [88) ויכרון את מכסימלי (₪8) מהירות גיטה לזיכרון 6ספת כונן תקליטון "3.5 (פא) חקליט קטיה (מא) - 0 2 מופיע במספר דגמים. *** עם מעבר מיוחד - 82385 וזיכרון מטמון שיפור בדגם קיים. (צאָסואפוא 0!111₪) בגודל 6488. 2083 חידות ה'קפיות מצגים משפחת המערכת האישית יבמ/2 כוללת חמישה מצגים גרפיים המאפשרים הצגה באיכות גבוהה של טקסט, גרפיקה ותמונות. המצגים מבוקרים על-ידי מתאם הבנוי בתוך יחידת המערכת. מצג יבמ 8503 הוא מצג גרפי חד-צבע עם מרקע בגודל "12, עליו ניתן להציג מידע ב-64 גוונים של אפור. מצג אחר תואם, הוא בגודל "9. מצגים יבמ 8512, יבמ 8513 ו-יבמ 8514 הינם מצגים צבעוניים גרפיים בעלי מרקעים "12, "14 ו-"16 בהתאמה, שניתן להציג בהם טקסט ותמונות ב-256 צבעים מתוך מבחר של 262 אלף צבעים. תקשורת למחשבי המערכת האישית אפשרויות רבות לשילוב ברשתות תקשורת מרכזיות או מקומיות. * בתחום התקשורת למחשב מרכזי מארח - מתאמים שונים מרחיבים את אפשרויות החיבור: מתאם אסינכרוני במהירות 19.2405 המוכלל בכל אחד מדגמי המערכת. מתאם בעל שתי יציאות לתקשורת אסינכרונית ומתאם המשלב בכרטיס אחד את פרוטוקולי התקשורת: אסינכרוני, 850, 6 ו-6כ. * בתחום רשתות התקשורת המקומיות - מתאמים ותוכנה המאפשרים בניית רשתות במגוון פונקציות: -‏ רשת פס-בסיס (6ת2385008) - לכניסה נוחה ובעלות נמוכה לתחום הרשתות המקומיות. - רשת מקומית (אזסש 6%‏ 26) - לשילוב סוגי אותות נוספים (אודיו, וידאו..) במקביל לתקשורת מחשבים. -‏ רשת טבעת הסמן (ַת1ת ם10%86) - בעלת קיבולת העברת נתונים גבוהה ואפשרות שילוב מחשבים מסוגים שונים. מוצרי התקשורת האלה מאפשרים שילוב ברשת אחת של מחשבים אישיים, מחשבי מערכת| אישית/2, וחיבור רשתות מקומיות למחשבים מארחים באמצעות 0 יחידות נלוות למערכת האישית מגוון של יחידות נלוות. הבולטות ביניהן: * כונן תקליט אופטי ‏ - כונן יבמ 3363 המאחסן נתונים על-גבי תקליטים אופטיים ניידים שתכולת כל אחד 200%/0. התקליט האופטי מיועד לשימוש ביישומים הדורשים כמות גדולה במיוחד של נתונים וכשיש צורך להעביר נתונים ממקום למקום, או לשמרם במקום נפרד מסיבות בטיחות. . 204 * אבזרי קישור - מטרת אבזרים אלה לאפשר העברת נתונים ותכניות בין המערכת האישית למחשבים האישיים של יבמ. האביזרים כוללים כונני תקליטונים ,5.25"‏ "3.5 ומתאם לחיבור ישיר בין מחשבים משת* המשפחות. מדפסות המדפסות של מערכות המחשב האישי מתאימות גם למערכת יבמ/2. הן מאפשרות למשתמש לבחור במדפסת המתאימה לצרכיו הייחודיים: הדפסת טקסט ותמונות באיכות גבוהה, מהירות הדפסה, צורות הזנת נייר שונות ועוד. *‏ 4201 - ]1 %6ת1זקסזק ](13: מרכב צר, פונקציות משופרות. * 4207 - 24א שס66ת!זקסזק 181: מרכב צר, ראש הדפסה בן 24 סיכות להדפסות איכות וגרפיקה ברמה גבוהה. * 4208 - 124א ז66ת!ץקסזק 131: מרכב רחב, ראש הדפסה בן 24 סיכות להדפסת איכות, גרפיקה ברמה גבוהה. * 5202 - 11] 166זש160ש) 18%1: מדפסת איכות חרישית. תהליך ההדפסה נעשה בטכנולוגיה חדשנית המבוססת על השחרת הנ*יר באמצעות חימום סרט ההדפסה. מהירות ההדפסה עד 274 תווים לשנייה, גרפיקה ברזולוציה של עד 240*240 נקודות לאינצ'. * 4216 - 66ת!זק6ש8ק 128%8 - מדפסת דפים שולחנית בטכנולוגיית לייזר. קצב הדפסה מירבי של 6 דפים לדקה ורזולוציה של 300*300 נקודות לאינצ'. המדפסת תואמת לסטנדרט 50507]05סק ומתאימה גם ליישומי הוצאה לאור שולחנית (קז'כ). תוכנה למערכת האישית מגוון רחב של תוכנה המביאה לידי ביטוי את תכונות החומרה המתקדמות שלה. ניתן להפעיל במערכת שלוש מערכות הפעלה: 3 205 206 - (או גירסה מתקדמת *ותר) תומכת בכל דגמי המחשב האישי ובמערכת האישית, גירסה זו תואמת את הפונקציות של 3.2 05 6, מאפשרת שיפורים בביצועים של פעולות קלט/פלט ומוסיפה פקודות חדשות. 3.3 205 26 מאפשרת להפעיל במערכת האישית יבמ/2 את המגוון הגדול של תוכנה למחשבים אישיים של יבמ, תוך ניצול הביצועים המשופרים והאפשרויות הגלומות בה. 2 (556/2ע5 שת8%1ז6ק00) - מערכת חדשנית, אשר נועדה לנצל את הביצועים המתקדמים של המעבדים אינטל 80286 ו-80386, תוך שמירה על תאימות למגוון התוכנות שפותחו עבור מערכת ההפעלה 205 6ק. מערכת זו מאפשרת - ריבוי | משימות (8ת0581+-51[טגת), - ריבוי | תכמות | (-6וטות שתנתות8זקסזק), ניצול מרחב זיכרון של עד 16%5, בסיס נתונים טבלאי, יישומי תקשורת מוכללים והשתלבות בארכיטקטורת *ישומים בין-מערכתית של יבמ (588). 2 418 (60116106א2 67800106+ת1 006ח8ש80) - מערכת הפעלה רבת משתמשים (ז61-050[מז) לדגמים 70, 80. מערכת ההפעלה תומכת בזיכרון בפועל וב-16 משתמשים בו-זמנית. היא מספקת סביבת עבודה מבוססת א1א1ז במגוון רחב של תחנות עבודה. 205 מו ו | אינדקס האינדקס ערוך במיון של המונחים באנגלית והוא כולל תרגום, או הסבר קצר של המונח, כפי שהשתמשנו בו בספר. מראי המקום מצ'יינים את המקומות החשובים שבהם הסברנו את המונח או שדנו בו בהקשר כלשהו. לרוב ציינו את טווח העמודים, ולעתים רק את העמוד המציין את תחילת הטיפול בנושא. הפירוט של מראי המקום ניתן תחת המונח בשמו המלא, ולעתים תחת הצורה המקובלת של ראשי התיבות (כמו, 1/0). במקרים רבים ניתן פירוט המונחים תחת כותרת הנושא (כמו למשל, עעסשסא, או עסטנעע 106ט6כ2). פקודות, מישקי תכנות ופרמטרים (*תנו תחת שם הנושא (כמו למשל פקודות 1ַק), אם כ:י לפעמים רשמנו אותם גם לפי הסדר המילונ'. אנו מקווים שהשימוש באינדקס, במשולב עם תוכן העניינים המפורט, יסייע לך בלימוד ובעין בספר זה. 5 מתקדם 4 ,187 ,32 (48105) 8105 666ת28608 מספר מזהה לוג: 18 ((סזע) כ1 1081081 עוגן 1 סססתב סביבת היישומים 8 ,255-6 ,32-3 ,27-9 ,25 6תסמתסע1טת6 ת1168010ססה פרמטר בקובף 5צ10.5קא00 5 הךהסמדן סביבה רבת יישומים 6 ,72 ,71 ,69 ,39 ,32 ,28 ,27 ,23 151016טם סביבת היישומים ב-05/2 5 ,251 05/2 פרמטר בקובף 5צ10.5עא00 5 .תע פרמטר בקובף 8צ16.5קא00 5 אשת מישק לתכנות יישומים שת1ממהעקסעק ת1108010קק 6 ,265 ,63 ,35 ,23 (221) 1866ע6סת1 דוגמאות 9 ,92 165ק8₪אס אפשרות הרחבה של המישק 6 ,313 ע6801116ת06א6 ספריה של מישקים 5 ,99 צע82ע2מ11 מחרוזת משתנים 6 שת1ת80 סתסשגקץב מחרוזת 450112 8 ,180 ,101 שת1ע56 450112 שפת אסמבלי 2 6אשפנושת18 255001 ביצוע אסינכרו(: 8 ,75-6 ,70 מ010ט60א6 פטסתסעתסתץ39 קובצ לביצוע אוטומטי של פקודות ב-205 9 ,250-551 7גם.6מאמסדטב שלב הביצוע האוטומט: 9 ,250-551 856תק ת600510א6 8616ם60גוב מהלך עבודה (ריצה) ברקע 8, 0ס149-5, 185, 71-8, 28 מ565510 6תטסעשסהם קבצי אצווה 2 011685 ת88%0 הרחבה של קבצי אצווה ב-205 9 *אם. הרחבה של קבצי אצווה ב-05/2 9 סאס. פקודות אצווה 0 00885 הרחבה של קבצי אצווה 9 ת910ת06א6 עיבוד באצווה 0 ,19 שת608991ס0עק ת8860 דו-מצב: 8% ,28 810681 התמיכה של החומרה בקלט/פלט 1 ,165 ,97 ,42 8105 פרמטר בקובף 5צ106.5קא00 8 אגתחם פרמטר בקובף 016.5%5א00 2 פתתמקקטם אפיק 2 808 שפת 0 % ,92-3 6ש8טשת16 0 פונקציות סטנדרטיות לריצה בשפת 0 6 2 פתס1ססתט] 61₪6 מטע 6826ת5%8 ,0 207 פקודה לביצוע הידור לתכנית בשפת 0 התקן תו ק/פ להתקנ* תו אופן השיתוף של יישומים אחרים בהתקן תכנית פיקוח להתקן תו שמות התקנ* תו פקודה של 05/2 להחלפת דפי קוד פקודה לקישור והידור תכנית בשפת 0 דף קוד החלפת דף קוד מעבד פקודות מעבד הפקודות ב-05/2 מעבד הפקודות ב-205 מנחה הפקודות מנהל התקשורת מהדר קדם מהדר קובץ המערכת 10.5%5קא00 שלב הקונפיגורציה קונסולה עיבוד משותף מידע התלוי במדינה תמיכה בסביבה לאומית פרמטר בקובף 8106.5%9א00 (דף קוד) פרמטר בקוב 10.9%89קא00 (מדינה) פרמטר בקובץ 916.5%8א00 (התקן) הרעבת ה-020 רמת הרשאה נוכחית סמן הגדרת הסמן מיקום הסמן בסיס נתונים (מסד נתונים) בסיס נתונים טבלא: מנהל בסיס הנתונים שירותי בסיס הנתונים מישק בסיס הנתונים שינו: יצירה ביטול בחירה עדכון תצפית שלמות הנתונים קשירה מעוכבת רמת הרשאת המתאר שגרות העזרה ל-ע6ט1ע8 106ש66 שגרות לניהול ה-28105 שגרות לניהול הפיקוח על התקני תו שגרות לניהול תור התוו:ים שגרות לניהול פסקים שגרות לניהול זיכרון שגרות לניהול תהליכים שגרות לניהול תור הבקשות שגרות לניהול האתתים שגרות לניהול השעון פרמטר בקובף 10.5%5עא00 208 3 6ת₪8ם60 00 8 ,133 600106 ססססהע8ת0 6 ,133 ,128 1/0 1 ₪066 שתנעהת8 1/0 8 ,165-8 ,127-8 פסט1תסם 1 ,133 פסתאת 8 005 6 ,95 תמש 60 00 81 ,215-6 ,38 886ק 0066 8 שת1ת80160 2 605502סע 6ת8מ0₪ס0 2 אאם. פאס 2 006ס. פא 00 2 סקשסעס 6תהמ00₪ 3 מסשהת8א ם168%10תטממ 00 8 ,95 ,92-3 00001165 6 ,282 ,99 600201160עק 0 ,71 ,28 10.55קא00 0 0856 ב91₪028%10ת00 313 ,1354 ,127 0008016 6 שת0608991ע0 00000280106 6 גס02₪8610+ת1 6ת00מ6600-עע6תטסס 4 ,280 ,38 ,27 סעסססט5 עעפתט00 14 ,288 0000040 84 ,2108 צתדאט0ס 18 ,288 ס0סאדטמת 6 תס801ט5682 000 184 (0ק0) 160861 11086ט1עק סתסעעטס0 0ס5פט0 8 ת1630ת1+66% 1 ת0ס51010סק 6 0 286080856 81ת618610ת 0 ,261-2 מסקהחה₪8 28580856 2 9620100985 28580856 2 6020/806ת1 28080856 6 תמךן 6 ₪>שדמתס 6 שש טע 3 50 6 מךהפסט 3 ששמנט 9 ,281 עס1עשססת1 8%8כ 6 שת61ת1ס 261866 8% (200) 16061 11686ט1ע עססכ1ע680ם 17 2611 7 >6תסשסש8תבפ₪ 201085 7 5מ0מסקפתה₪ ע0ס16תסם ע66סהעבת0 5 סםסשמס6שתהע 60686 08280662 6 5ם6₪0קהת₪8 סקטעעססת1 5 סתסמסשהת8ם עעסשסם 3 05900ק8ת₪8 0685סע2 8 סמסמסקבתהם 6ט606 2000696 18 ףקתה פ6עסתק8ם86 6 סת60מ6שבת8ם 6162 3 ,171 ,134 מסנעשמסת עסט61 106ש46 8 ,37. | עשש6ט1ע6 260106 2051 3 ביצוע ק/5 ליישומים 6 1/00 מ1168610סס8 תקשורת אסינרונית 2 תס10801תטממסס פוסתספתסמצפ8 9 8600106 בסיסיים 3 ,211-12 ,171 0856 פעולה בשני מצבים 5 ,173 5ת628610ק0ס 1₪08681ס 621069 860106 להתקנ* בלוקים 1 ,172 ,53 100% ע6ט1ע0 660106 להתקני תווים 1 ,172 ,133 ע6ססעהת0 060גע0 600106 לשעון 8 01068 פקודות של ע6ט1ע6 660166 1 פ6תפמשסס 8 91008 ע8₪600ע8ק 8105 116טם 1 0811פ5ת261 60106 010856 173, 1 1, 173 ת6ק00 260166 1 ,178 10001 16ע6ת66 8 16ת0 218%/10₪1081 866א1ע 666 8[ ספא 6ט1עע 1081081 606 0 ,180 ,177 16181126ת1 0 ת01085 סטסתד 0 558005 סטסתד 6818 0608 7 0 105ת סטססט0 0 558008 6טס6ט0 0 א66ק 08| 215%8% 06א01 8016ת61510ע8ע עעסטם 0 ,78 ,173 66ת 8 >6סססקט5 868618 16סהטסמסת 8 86018 6506 7 סא 6ט1עע 1081081 56% 8 3 =>סצסט 8 ץ0601% ת₪016 %6בצסש מרכיב' ע6טש621 601606 0% ,פפסתסמסקטסס גישה בו-זמנית (לנתונים) 7 86068585 סתסעעטסתסס יצירת ע62106 600106 9 ש<שת6801עס הגדרת ע8ט1ע62 600106 0 מס161ת60+1 שגרות עזרה ב-ע62106 660106 17 פנ1טסע פרמטר בקובף 5צ10.5עא00 להטענת ע6ט1ע0 660106 3 מסעעמת מאפיין של ההתקן 9 866010006 600106 כותרת ההתקן 8 ,175 168660 260106 עסט1םה 680106 של הדיסק 3 ,210 615% 106% 800106 של הדיסקט 0 815%60066 פסט1ס 860106 של 205 3 505 0ע6ט10ע0 860106 של אביזר ₪04 (גרפיקה) 3 0 תבנית קוב ₪אם של ה-ע8ט6010 660166 % ,207 סהםתס] 6116 מאם דיסק חיצו(: 3 815% 81תע062א6 שיגרה לטיפול בפסקי חומרה -89 ,186 ,00 ע616ת18 6קטתע60ת1 6ע008עב 2 ,196-9 ,191 תיחול של ע6ט8210 660106 1 ,175 ב1%181128010ת1 התקנה של ע6ט1ע6 600106 3 ,171 ב6868118610ת1 הרשאת 5/0 1 ,55 ,29 1020 621060 860106 של המקלדת 1 6ש8ססע6: אפשרות מיעון לזיכרון 6 ,185-6 ,68 ע862685801110 עעסמסם 069ע1ע6 8001086 של העכבר 2 6פגסמ שמות של ע6ט1ע6 600106 1 פפסמת 601062 809106 של מחוון הציור 2 608₪ ע6סת1סק 6010620 660108 של המדפסת 1 אססתנעס רמת הרשאה של ע6ש1ע6 600106 1 1606 11686ט1עם 209 חבילת הבקשה 2ע106ע6 800106 של המסך השיגרה לטיפול בפסקי תוכנה שיגרת האסטרטגיה סינכרוניזציה ביצועי המערכת שיגרה לטיפול בשעון עסטש1ע6 600106 של הדיסק בפועל מקשר להתקן תיבת הידברות גישה ישירה לזיכרון פרמטר בקובף ה-910.55א00 תצוגה הגדרה של הסמן גרפיקה גלילה מחרוזות תווים מחרוזות עם מאפיינים שירות ניהול בסיסי נתונים מבוזרים 41, 83-8, 68, 2 6 ,109 6תסמספתה!/ 28682856 666ט100ע15%ע 17 80665 60065%ע 1 ת902060 7 ,192-8 ת616ת1188 6קטעע60ת1 6ע009698 9 ,1 ,194-7 9 פתנטטסת /800₪ע5% 6 ת128610תסעםסחעץ5 9 6ס2ת02₪8+?ע6ק 500₪צ9 0 ,98 ,196 ,191 6160ת788 7160 2 ,30 615% 1הטסע1ש 139 ,7 ,135 ,133 616תאת 260166 7 אסס 218108 (8א2) 800055 עעסשסש 06ס6סנע 3 0000₪א15ע 2 ,133 ,41-2 ,30 ,20 ,20 215018 7 ,187 מ10ס1ת00/1 עס8עגס 1 ,1435 ,28 080105 6 800011 6 ,109 ,99 פשת1ע6פ 685 גס1ש 88ת1ע5% 50201088 )228%88( 1 מערכת הפעלה 205 יישום 05 סביבת 205 פרמטר בקובף 010.5%8א00 פרמטר בקובף 5צ16.5עא00 פרמטר בקובף 10.5%8עא00 פרמטר בקובף 016.5%5א00 קובץ מוכלל המסופק כחלק של עבכת הכלים למתכנת מישקים לתכנות יישומים (401) 2 0801160065 1 601056%ת208%1 1 56ע6012ת20571ע 1 66א866א6ם1תפסע 6 08018802060585 5 ,218 057260%00016 8 080260508 9 2080600 9 ס%ת1עע2050660%6 0 08066080011₪6 288-9 ש20306%29058 6 1%6ת20506%10805 1 ₪ש%056ת0806%1 8 ,200 205065%8055888 8 616ת205060806078 9 8806א2050058000% 8 ,218 20506022004662 1 /20506%020 5 0580609586 6 2050605225658 5 2080106568 6 81ת581016518ס 8 ,200 8%655886ם2051 8 205%1110000688% 3 ,218 051086%06016 1200 8, 70, 72, 75, 258, 3 ,97 ,69 ,60 9 ,6 ,33 ,26-9 ,28 ,21 205 9 ,129 ,126-7 ,29 ,22 ת1168010סק8 05 -32 ,25-9 ,22 6תסשסע1טתס 205 8 אגמהם 8 0088 8 סאפ 8 128פאת 05015.8 (9 6 41100108₪6פסס 3 ,681 0541106508 6 968₪עת05411005ם 7 20858600 2 >20880186569 9 205085088 3 ת201ג20580 2 8%11600ת50ס2 8 20801.14606855 7 ,82 20801056 14 205010500606 8 2050108656 5 0302680605841185 3 2080268600(1006 7 20580208605990₪ 5 ,79 680עת050268%601 8 0500816 1 2080816066%6 205060100%1 137, 163, 178, 1 7 616ת18קכ5סכ 9 66202168560ת058סע 5 ,77 ששפססאטפסם 0 ,78 205416 9 10560ע1002א050סכ 8 81%60156א088ע 4 205561606215%% 3 ת205561606969510 3 ,89 "2055000108 84 ,88 36006056מ0550 3 ,89 20550565 9 0356₪56%50816 9 055000816 6 8[1ת6518ת356ס 9 20356600 0 05560286011₪6 60 6560806ת8ת20896%7 3 סת20396671161 2 20856%71168066 4 ס6ת09565751 0 1תא8א5560סכ 90 ץ6ע2055067 3 ת2039560505810 5 616ת05856%518₪8 84 ץצ2055660621% 0 ,119 ,90 20551600 2 ת205508205085810 8 2085%00565510 7 0550041106 8 085008266 7 208500565 9 686עת061ת205590906 08 סתץ87160045ס2 0 ,91 60ע508ע60ם71פסכ 1 ס60500ם511סכ 5 106%56₪ת2050 84 ץצ11%ע0506כ 0 ,113 ,82 08502166 0 סתע205%21%6625 8 15900006ע88סכ ערכת תווים המבוטסת על בית כפול 5 0810085656 2 ,82 6כ0001א20588% 3 05880015 7 166עשתסאפסע 7 205%001056% 7 מסספס0תסאפסת 7 8ס6התסא5ס2 7 שסתחתסאפסע 1 פטסא5סע 9 816 ₪מטפאטו/פסת 2 609126א205 8 ת205000 3 006:ו0ת205006 868 20500050 8 205260%00006 68 205000%20008585 8 600:006שפטספסע 5 ,200 205000%8655886 3 205000261 3 2050000015%% 9 ₪56866ת20850788 3 2050011610 1 20800116%0866 3 ס%5ם2050%81 9 06ץ87ת5088סס 83 000146ע3062ס2 84 צ2050/601% 9, 11% ,82 2058686 9 סתעצ050686425 14 208868000606 17 8₪6ַ5₪6811060ס2 18 2058681100568₪ 9 686עת058680₪61סכ 3 זנכמתפסת 205568060280 1 (2805) 866 ע8006ע8ת0 66עס 16סטסת קישור דינמי 8 ,216 ,218 ,39 ,31-5 ,27 ,25 ,23 >%ת11 16שהתצק ספריה המקושרת בצורה דינמית 6 ,181 עספעס11 קיטור דינמי בזמן טעינה 7 =םת1טס 1086 מודול המקושר בצורה דינמית 8 08016ם קישור דינמי בזמן ריצה 8 16₪ס תטע דוגמה 5 16קתה8אס שחרור המודול קבלת השם של המודול קבלת מקשר למודול קבלת הכתובת של הפרוצדורה טעינה של מודול המקושר בצורה דינמית מחרוזת הסביבה 6 שתצע56 6תסמסענטתם חריגה 2 ,59 ,56 ,53 ת0ס1ססססאם שיגרת יציאה 58 16115>6אם מהדורה מורחבת (של 05/2) 1 ,261-5 ת61610ע 666ת66אם 5 ,218 ₪06016 8 שת12601 9 65תהת ₪06016 שת₪6001 8 616תפת ₪08016 שת₪6001 4 ,218 6חמפת 6עט0066עק שת₪0001 3 ,218 ₪086016 %ת11 16םהתץ0 8 8ַת10861 יישום משפחה מישק לתכנות יישומי משפחה 8% ,92 ,31 מ1108610קק8 צע11שפק 3 שת1ששהתשסעס ת1168610ק80 צ11שפת (1ק4ת) 62/806סת1 101 פרמטר בקובף 106.5%5עא00 קובצ טבלה להקצאת קבצים בדיסקט התקן המטפל בקבצים מקשר לקבצים ק/פ לקבצים שם קובף מערכת הקבצים אופן הגישה פרמטר בקובף 10.5%5קא00 ק/פ מבוסס על מקשרים מחוון ק/פ תאימות קבצים עם 205 מצעים נתיקים סקטור שיתוף קבציס ניהול אמצעי אחסון נתיקים גופן, פונט מהלך עבודה (ר*צה) בחזית הכרזות על פונקציות (בשפת 0) שער טבלת מתאר*ם גלובליים גרפיקה מקשר מגבלת מערכת של מקשרים קבלת עזרה במקוון תכנית שירות ב-05/2 /פ ק/פ אסינכרו(י ק/פ להתקני תו ק/פ ישיר ק/פ מבוסס על מקשרים ק/פ מבוקר פסקים ק/פ ממופה זיכרון ק/פ בְשִיטֶת החקירה ק/פ אקרא: ניתוב ק/פ ק/פ סידרת:* מישק בקרת ק/פ תכנית שירות של 05/2 ספרנית היבוא קבצים מוכללים סגמנט מידע סגמנט מידע גלובלי סגמנט מידע מקומ* ירושה תכנית ההתקנה תקשורת בין תהליכים פסק פסקים מופעלי סף פסקי חומרה קינון של פסקים פסקים שלא ניתנים למיסוך שיתוף פסקים 12 8 085ק 3 ,785 16נת 19 ,6 (417ת) 68016 ם811068010 116ע 3 680106 116ע 3 ,137 ,129-133 ,78 616תפת 116ע 3 ,128-133 1/0 116ע 0 ,139 ,129 ,77 6עבת 116ק 2 ,173 ,103 ,127 ,36 ,27 ש806ע8 16גת 8 ,132 ,130 ₪086 800055 2 פתמתתעם 9 1/0 שנ6ֶתהת 29 ,132 עססמנסק 1/0 9 8610111%ק₪ס6 ₪0018 29 ₪6018 8016ט60₪0ע 3 ,171 580005 8 ,129 ₪086 שתנסעהת9 19 6מסמסקהתאם ס6תט1סעט 9 ,38 סחסק 8, 0ס149-5, 185, 71-8, 28 ת565510 4תטספשסעסע 8 ,93 5ת6601828610 ת0ס1פסתטק 2 ,55 08065 33 ,1 ((027) 68016 ע60ס805021 010081 2 ,145 ,28 028021085 7 6נתפת3 0 ,135 ,133 16ש11 מ6ס5צַ5 1 ס6ת:11-תס ,ק1101 3 6פקת 6 ,283 ,80 1/0 1 פטסת0עת0תצ85 3 ,137-100 ,133-5 ,128 ,43 000106 ת6ס0ע8ת0 1 ,167-8 ,128 ,126 610666 60 ,130 016-088588ַתהת 0 ,37 ,27 תס6ט601 6קטפעססת1 7 ,58 ,42 ,30 ,24 80206ם עמסמסם 9090 ,37 ,29 01160ק 1 02060 שס6תאע 3 ת601260610ע 1 660ע0 6181ת80006 11% (163-8 ,126 (10001) 1סעסתס6 1/0 2 18 סוד 2 ת18ע8ת0ס1] סעסקםמ1 5 ,95 11685/ 66ט610ת1 1 105986םת1 1 810081 1 10081 8 ,77 06ב168ע62תת1 201 מהעשסעס ת5%8118610ת1 7 ,102 ,75 (120) מ108%10תט₪ש0ס 6600000058ת1 205 , 208 ,66 ,48 ,37 ,29 ,26 שקטפעססתד 1 ,05 1886206ע% 0686 7 ,26 6ת8ש6סאת 8 שת61פסת 55 (1אא) ₪88%8016-תסת 4 שתנתפת5 פסקי תוכנה מישק בקרת ק/פ הרשאת ק/פ סגמנט פקודה עם הרשאת ק/5 תיחול המערכת תת-מעוכת המקלדת מישקי תת-מערכת המקלדת - ספא 5 א08₪206א 7 0680081500 6 4065600 6 >8א%085600050 6 4856655808 5 ,100 ת1שת1ע656סא 7 תסתעפהסא 5 1806₪א%06% מקלדת רשומת נתוני מקלדת דוגמה קלט מהמקלדת מקלדת לוגית מקלדת פיסית קשירות של שפות עיליות הכי פחות בשימוש לאחרונה פונקציות ספריה תכנית הקישור רשת תקשורת מקומית סבלת מתארים מקומית התקן לוגי של דיסק/דיסקט חיפוש לוג: מאגר תצוגה לוג: צמידות רופפת (בין יישויות במערכת ההפעלה): פרמטר בקובף 16.5%5קא00 תאימות בין מצעים מגנטיים פרמטר בקובף 10.5%5קא00 (זיכרון) 8 ,207 ,63-68 ,57 ,12 ,30-32 ,23 ,20 עעסמסא זיכרון כתובת בזיכרון הקצאת זיכרון זיכרון מטמון דוגמה פרמטר בהתקנת המערכת (זיכרון) תמיכה בזיכרון-יתר הגנת הזיכרון זיכרון גישה אקראית זיכרון לקריאה בלבד זיכרון משותף זיכרון בפועל התוכנה להקצאות משנה בז:*כרון אמצעים לטיפול בהודעות הודעה (מסר) קשירת הודעה הצגת הודעה 7 ,39 6ע82ש80%0 18 ,163-8 ,126 10061 8 סד 1 ,167-8 ,127-8 6ת508₪6 6066 102 1 ,250 (ת10181128%10ת1 ם566צ5) עס 17 ,127 506₪ע5005 כמא 8 ,105 מ1עפת60סא 6 30601056 7 681850605ע6062סא 84 %%60ש2ת5ט06710< 6 060560006008א 5 ס060660א 7 0006600895 5 0006050805 7 תם86ס60סא 5 ,153-7 ,132 0826סץ%0 5 660026ע 0868 7 16קתהאס 5 ,100 6טקתב 17 108168 5 108פעתס 6 פשת61ת1ס 6שגות1.8 9 (1280) ₪506 צ61ת606ע2 16855 6 ,228 8ת6510ת%0 צַפ8עס1ן 5 ,218 ,92 ע6>ם11 9 ,282 (א14) אעסא65א 2268 10081 5 ,71 ,50 (1217) 68016 ע60ס1ע8650 10681 3 600166 815%/615%6606 1081081 . 1 560% 1061081 5 ,71 %60+טס 1460ט 1081681 1 6000166 100561 6 האג 9 לץס6801110הקמסס 6018 257 ,122 אגמאסא 3 ,48 ,86 ,42 860620558 2 תס81100801 08026 61, 253, 8 1 16כם8א0 7 אבהגאאש 2 ,58 ,31 6ת160ממססעסטס 8 ,60 ,57 ,53-55 ם660010סלסם 2 ,25, 24 (א46ת) עַעסמסם 800655 מס6תפע 0 ,22 ,28 (א206) עעסשפש צע1תס 686ע 1 ,32 6ַסִתַ8ת5 7 ,5 ,58 ,30 ,30-32 ,28 [הנסעבט 6 ת0ס500811068610 עעסמסו 8 1801116108 658880 1 ,107 6585886א 2 ,281 שת61ת1ס 5 ש618018 06 קבלת הודעה 8 שת:סססם הודעות עזרה 3 ,281 ₪655886 ס[פת לולאה 2 ססס1 יצירת קובצ הודעות 1 7116 ₪055886 8%6ת תור 1 60616 הכנסת משתנים בהודעה 4 תס1סעספת1 18016תאש מיקרו-ערו 3 ,290 ,842 [6תת8ת810200 מיקרו-מעבד 0 1600020065502א מעבד 80286 8 ,96 ,57 ,36 ,30 ,30-32 80286 מעבד 80386 0 80386 מעבד 8086 7 8086 מעבד 8088 0 8088 הגירה של יישומים 3 ,129 ,39 מסנסהטשוא תכנית שירות בערכת הכלים למתכנת 1 ,280 סספאאא קובץ להגדרת המודול 1 ,215 ,61 (סכא) 2/116 ם1610ת86+1 16ט6סא משפט* הקובא 3 5 5ס0ת8%580000 תכנית פיקוח (ניטור) 3 ,165 ,127-8 ע0ס16תסא תת-מערכת העכהר 3 ,128 5060₪צ5סש5 טסא מישקי תת-מערכת העכבר - 800 2 0006656816"800 9 01056%5טסא% 9 תססססו 2 606815600כגס 9 6006ם6ע6808תטסא 0 תם><שהפכפטסא 2 81500ס6הטסא 9 006ת5ט1קטסא 1 <ס6ספטסמ6הטסא 1 06626050800(85טסא 2 56606508008טס 1 >6%85ת6ש06%68טסא 2 %>66885ת6ע5660טס 1 ע066806%6טסא 1 566062005גו0ס 2 פתס66טםמטא66ס0טסא 1 56006292806₪וס 2 45ע1666אשטא06%6טסו 2 5665081678600טסא 9 [מסט0שטאסססטסא 3 תסתעפטסא 0 666%62205טסא 0 06626257826טסא 7 ,157-163 6פטסא רשומת נתוני העכבר 8 260026 6868 אירוע בעכבר 9 ,158 6ת6ט6 מיקי - יחידת מידה לתנועת העכבר במסך 8 צ16%6ם תכנית שירות בערכת הכלים למתכנת 2 פפאנסמספא ביצוע רב משימת: 7 ,256 ,106 ,23 שת1%61%858%1טא עכבר: פרמטר בקובף 10.5%5א00 6 הצגטאהא פרמטר בקובא 5צ10.5עא00 6 עתעתתסנתק פרמטר בקובף 5צ010.8א0600 6 פסהממחך פרמטר בקובף 5צ106.5:א00 6 10₪פטאד1ץ תמיכה בשפות לאומיות 3, 215, 200, 38, 27| (5א) שמסקקט5 6קהטשת8] [התס1סבפא מעבד מתמט:י 5 ,11 000550סק 16ססמטא יישום 05/2 8 ,127 ת1168010קק8 05/2 6 ,0 09718566 7 76ע100001ת820 ת006 8 ,251 8א17.0א0521 כתובת יחסית ארכיטקטורה פתוחה קובצ אצווה להתחלה אוטומטית של פקודות פרמטר בהתקנת המערכת (תיחול הידברותי) 2 תסתתמא0טפטהס ביצועים (של המערכת) 6 ,281 ,256 ,252 ,199 ,62 ,59 06ת0₪8+ע6ק אופטימיזציה של ביצועים 6 "01₪120ק0 124 מערכת אישית/2 תקשורת דגמים 25, 30 דגם 50 דגם 60 דגמים 70, 80 מצגיס תוכנה מיקרו-ערו מאגר תצוגה פיס: צינור יצירת הצינור דוגמה מקשר לצינור מחוון מחוון רחוק מחוון קרוב ק/פ בצורת התיחקור, תשאול מנהל התצוגה מדפסת עדיפות ביצוע רמת עדיפות הביצוע אין חשיבות מבחינת זמן ביצוע עדיפות ביצוע רגילה קריטית מבחינת זמן ביצוע תת-רמה של עדיפות הביצוע פרמטר בקוב% 5צ2106.5א00 הרשאה הרשאת ק/פ פרוצדורה (בתכנית) פרוצדורה ראשית פרוצדורת החלון תהליך סיום לא רגיל תהליך בן יצירת תהליך המספר המזהה של התהליך תהליך אב מודול התכנית שלב בחירת התכניות בורר התכניות מצב מוגן פרמטר בהתקנה (הגנה והרשאה) פרמטר בהתקנה (סביבת היישומים) תור מנהל השאילתות מצב אמיתי זמן אמית: ניתוב ק/פ אוגר בסיס נתונים טבלאי מצעים נתיקים תזמון בשיטה המחזורית 3 ,290 (5/2ק) 2/מ560ע5 [ַתס5ע6ק 294 ,291 ב168610תטמשסס 3 ,291 - 30 ,25 00861ם 3 ,291 - 9 ₪0661 3 ,292 - 0 0861ם 3 ,292 - 80 ,70 ₪0661 4 פע618018 5 8010806 3 ,290 ,842 61תתפת0 1600ם 5 :%560טט 01660 081בפעתק 7 ,136 ,2 ,31 6סנק 2 ,82 0068610 9 ,106 8₪016א0 80 ס6נבַתהַת 7 מפסתנסק 8% ,106 ,101 ,96 עם? 1 פפפ6ת 9 ,70 ,37 1/0 01188ק 5 ,261-2 ,106 ,25 >886ת88 ת68010ת650קק 6 ,138 עס6סתנתק 9 ,080 330 ,32 עס1עסנעס 90 0188585 90 1616 6 ,80 ע18שסע 90 02161081 %1₪6 6 ,80 16081 6 צך108תק 8 ,3 ,51 ,89 ,32 11086ט1עק 4 ,170 ,167 ,60 ,58 ,53 ,28 11686ט1עס 1/0 8 6עג066סמק 8 תנהם 8 שסהת1שט 7 ,7 ,71 ,63 .33 0658סעס 8 ת10ס8ת₪1ע66 81שעסתסם 14 ,115 ,76-78 01186 5 ,77 0268010 7 פב 3 ,117 ,76-8 >תססהק 8 ₪08016 םפסשספס 9 ,251 6פת0 מ56160610 שהפשסעק 9 ,251 ,72 ,28 86100000 םמהעשסצק 4 ,88 ,28 ,20 ₪066 660%סלק 8 | א 0ד0מדסתת 55| דסתת 1 ,83 ,82 ,32 00006 1 תסשהת₪8 צעסטף (עעסמסם 8566) אגת 1 ,258 ,53 ,48 ,82 ,32 ,28 ,20 ₪066 1הסת ְ 3681 ?1₪6 25, 28, 3 3601260010 7 6 ,00 ש1806ש6ע 0 ,262 88680856 81ת3618%610 9 ₪60188 16סה8טסמסת3 (צעסשסעם 366) 30% 0 ₪שח600611ת86 ת1פסע-6תטסת 5 פרמטר בקוב 916.5%8א00 8 2₪זפאת 5 אטת גלילה 0 ,107 500011 סקטור 23 ,2 960005 סגמנט 0 ,37 ,31 50006 מתאר הסגמנט 9 ,50-53 05סק1ע0680 ביטול סגמנטים 0 9 ,31 6150826 סגמנט ענק 6 >שפטת טעינת סגמנטים לפי דרישה 6 ,60 6ת80₪8 םס 1080 הזזת סגמנטים 9 ,31 תסנססם סגמנטים עם שם משותף 0 8208ת6-5חהת טעינת סגמנטים מראש 5 ,60 6-1086סעס אוגר הסגמנט 6 ת15089ש6ע ערך בורר 6 ,57 ,49-50 ,40 56166508 אתת 6 2 ,76 ,38 6ע0מק50₪8 מחיקת תוכן האתת 3 ,89 ,88 01080 אתת בלעד: 8 ,87 06ט01₪051א6 אתת את 18 6 7 אות קביעת אתת 3 ,90 585 אתת מערכת 8 ,87-89 מ5600ע5 שירותים 8 שירותי גרעין 8 00868 שירותי גרעין 8 [6ת60 שירותי בסיס נתונים 2 685808565 שירותים מרוחקים 9 ,282 006ש8ע מהלך עבודה (ריצה) 0 ,158 ,153 ,71-78,:185 ת505810 מנהל ה-ת565510 1 ,1 שסשַת8ם מ968910 קליפה 5 50611 פרמטר בקובף 710.5%5א00 8 חפ אות 8 ,85 ,82 81ת918 5 א51088084 5[ 78א510 |55 91078₪ 5 51008 5 5 510000 פלט הרמקול 17 סטספטס ע5068%6 שפת ,501 (לבסיס נתונים טבלא') 0 .50 מחסנית 1 ,75 ,37 ,40 5680% התקנים חיצוניים סטנדרטיים 146 צם 0 6826ת558 התקן סטנדרט: 90 ,136 ,129 260106 6ע68ת558 מהדורה סטנדרטית 5 ,261 661610 6ע08ת508 שגיאה סטנדרטית 6 580₪0₪ 6ע68ת5%8 קלט סטנדרט: 6 עקא1 6ע68ת5%68 פלט סטנדרטי 6 0ק001 6ע68ת568 מדפסת סטנדרטית 137 תתדאזתק 6ע0682ת568 פקודה בקובף פאס. קט1ת14פ / 8 570 קובצ לביצוע אוטומטי של פקודות 05/2 8 ,250 סאס.סטצתה1פ תת-מערכת גד ,108 ,128 ,127 560₪ע5סט5 פרמטר בקוב 010.5%5א00 7 .| 1 קובצ סגמנטים מועברים 9 7116 סהשפ העברת סגמנטים 7 ,122 ,60 ,59 ,31 שתנקקהטפ ביצוע מסונכרן 6 ,78 ,70 ת600610א6 פטסתסעתסתע5 ארכיטקטורת *ישומים בין-מערכתית 4260166606 ת1168%610קק1 מ560ע5 )54( 35, 265, 4 156 תצורת המערכת קובצ שעל פיו תמיכה בשפות לאומיות תמיכה בהתקנים סביבת 205 מערכת הקבצים תהליך קונפיגורציה הידברות: ניהול זיכרון בצוע רב-משימת:י תהליך קונפיגורציה לא-הידברות: סביבת היישומים ב-05/2 פרמטרים בקובצ 10.5%58תא00 57 אגאיסא 2 תסמהתמאסמפטגק 6 צתצתסזתק 8 + א 0ד0דסתק 5 ד0ק 8 2₪צפאת 5 אסשת 8 החפ 7 ודהקקהטם 6 פספגמתוך 6 ,80 108פמאדך תיחול המערכת משימה התכנית המסיימת את ה*ישום תכנית קבועה בזיכרון יחידת ביצוע ("חוט" - יישות ב-05/2) הצמדה (קישור) בין 6869עת6 שונים יצירה של 86סעתס מספר מזהה של 686עת0 הפסקת פעולה של 686עתס ויתור על שירות המעבד מצד ה-66עתס הצמדה (קישור) בצורה הדוקה שירותי שעון פנימי תקתוק השעון ערכת הכלים למתכנת תנועה תצוגה פונקציות, דוגמה פלט תת-מערכת התצוגה מישקי תת-מערכת התצוגה - 710 0 580%עת100652/ 9 1006650806 1 ס6)0ת1060860/ 1 ס660816סאסנל 9 סעטססקסגש 6 0108686061150 6 8290ת0108₪0860 2 0108081906 1 0 680מ010580(06280 1 0810ש1058080028/ נקבעת התצורה של המערכת 0 תמס102801?תסס ש560צַ5 2 ,250 16.5%5קא00 8% ססססקטפ עע6תטסס 3 סמסעססקטפ 106ט66 8 טתסמסעצטתם 205 2 מסספע8 116? 2 06ט%0208061ת1 7 סתסמסקהתם עעסמסם 6 שת161088%>1טם 2 6גט8001ע662ת1חסת 5 סמסעתסע1טתס ב1108%610סקה 05/2 8 אהגתתת 2 פהמסעטם 00.58 134 עתתאטסס 3 מסתטספ 8 ססא1טמת 3 15%80401₪כ 8 5מ0ק 208 ד 5 ךהסמדן 6 ,80 דדהטאאגא 1 ,250 ת15181128610נת1 מס6פ5צַפ 8 ,70 ,23 788% 0 מהתשסעק 866ת62₪1ך 7 ,126 מהעשסעס ס6ת68160ת-ע6-508ת866-4ת62₪1ך 9 ,71 ,33 686עםך 6 ,102 שת11קטסס 5 ,79 שת6861ע0 9 פ<ך1 1 ,107 ,102 ,79 ת8610ת1שת66 9 שת1161פעץ 6 ,2 ,79 1668פט600 ע1סתשגץך 00 80201008 ע6ם1ך 90 6108 ע6מצך 5 ,251 ,99 ,96 ,92 16א7001 7 תס86001פתפתך 00 1 ,97 8016א0 ,פת0ס61סתט1 5 ,119 ,99 סטססטס 8 מסספעְֶס80 410 2 1020868180 9 סטס0סק6תמס01 8 81ת01006%42 9 0100652 8 ש1006000/1₪/ 8 7100660 7 2008%5ע2ט0100600 6 ,137 17706עט01006%60 8 ס6ת0100600 0100604066 8 17 0105000008 1 0105806066 9 9 01056055806₪6 8 תפ010502011 0 *טפשסת05ס1/ 8 0105020110 7 6061150ע0108 8 1050201185 7 ,109 עספעהת60עאסג/ 8 ,107 0105020110 7 ,109 466ע56עה8ת60עקס1ש 2 00%ת0ע1056/ 7 תסספהאספאסנט 9 51ת01056%4 7 0611א6תש0ס01 9 0105600 7 פפתסאספאסגל 7 ,1 85סקעט0105660 7 ,99 ע611פאסנט 6 ,187 6סצע'עט1056%0/ 9 ס6ת105600? בפועל 1טטסעג כתובת בפועל 7 8002655 דיסק בפועל 0 >615 זיכרון בפועל 0 עססשסם זיכרון בפועל 0 5000886 ניהול מצעים נתיקים 9 סתסשמסשאתהם 6מט01ס? חלון : שססת: מיפוי סיביות (בחלון) 8 סתם ס1ס חלון בן 6 0116 חלון שולחן העבודה 6 ססס 668% פונקציית החלון 3 ,268 תס1פסתט+ צורה גרפית 8 12886 16תק8סש סמל (בחלון) 8 1600 חלון ראשי 6 ת1פם חלון אב 6 טתסעהפק חלון סטנדרטי 2 850806820 חלון עליון 6 1660 ססס עבודה בחלונות 9 ,266 ,262 ,185 ,25 שתבשסהתצט שרת תחנות עבודה (ברשת תקשורת) 7 ססעטע560 ב%508%610עס₪ 108 מערכת ההפעלה 05/2 יועדה על ידי מתכנניה לשנות את פני המיחשוב האישי. בעזרת ספר זה תיווכח שהיא עתירת פונקציות וקלה יותר לשימוש מאשר 205, גם תלמד כיצד תוכל לרתום לשירותך את עוצמת התכנות חסרת התקדים שהיא מאפשרת. לפניך מדריך להכרה מעמיקה של 05/2, אשר יאפשר לך להשיג את היתרונות שבהכרת מערכת ההפעלה המתקדמת, על עוצמתה, תכונותיה ואפשרותיה המגוונות. בפרק הראשון ניתנת סקירה מקיפה על המאפיינים, הפונקציות והיישומים, אשר מייחדים את 005/2 בתחום המיחשוב האישי. תלמד כיצד התאפשר התפעול של 08/2 בעזרת המיקרו-מעבד 80286, ליבה של מערכת החומרה. בהמשך אנו דנים בהרחבה בנושאים הבאים: + סביבה של ריבוי משימות (8חוא10185טא) וישומים: מה זה, איך זה מתפקד, איך צריך וניתן לנצל תכונות אלו ביעילות בעת הפעלה של תחנת עבודה אינטליגנטית בפיקוח של 05/2 בלבד, או בשילוב 5ספ. + עקרונות הפעולה של 05/2: ניהול זכרון ותמיכה בזכרון יתר, קישור דינמי בעת טעינה ובעת ריצה, טעינת סגמנטים, הפעלת יחידות קלט/פלט, ניהול התקנים מבוקרי-פסקים, ביצוע של יישומים במקביל, תקשורת בין תהליכי עיבוד, שקולי תפעול, תצורות, תמיכה בשפות לאומיות, ועוד. + מנהל התצוגה (826ח8] ה0ו]04ח650ז/): אוסף השירותים לשם פיתוח והרצה של יישומים בצורה הידברותית במסכי תצוגה. עקרונות תכנות באמצעות מנהל התצוגה והדגמת תהליך לבניית ישום בשיטות מתקדמות. + מנהל בסיס הנתונים (ז486ח3]/ 1023140956): ניהול של מאגרי נתונים בשיטת בסיס הנתונים הטבלאי (128 [9ח0ו86180). תיאור של שפת ,501 לניהול הנתונים, ביצוע שאילתות והפקת דו"חות, אשר תואמת למערכות בסיסי הנתונים האחרות של יבמ. + ועוד - דוגמאות תכנות מוסברות, אשר יאפשרו למי שמעוניין בכך, ללמוד כיצד לפתח מערכי תוכנה מתקדמים ב-05/2 וכיצד לנצל כראוי את תכונותיה ואת עוצמתה. מידע על המאפיינים והשימושים העיקרים של המערכות האישיות יבמ/2 (28/2) - התשתית להשגת היתרונות של 2 הספר מיועד למי שמעוניין להכיר את מערכת ההפעלה והשירותים שהיא מספקת למשתמש בה, עבור המתמחים במערכות מיחשוב אישי, מנתחי מערכות, מתכננים ומפתחי יישומים. הספר פותח בפניהם עולם חדש ומופלא, רב מימדים ואתגרים, באמצעות הצגה ותיאור של הפונקציות המתקדמות ביותר של 05/2. מסת"ב א-956-361-004 א158