Z/OS

היסטוריה

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

מערכת ההפעלה MFT

MFT הן ראשי תיבות של Multitasking with a Fixed number of Tasks (ריבוי משימות במספר קבוע של משימות). במערכת ההפעלה MFT פוצל הזיכרון המרכזי של המחשב לחלק של מערכת ההפעלה ולחלק של עבודות היישומים. האות F בראשי התיבות של שם המערכת נגזרה מהמילה Fixed, בעברית: "קבוע". המשמעות הייתה שחלק הזיכרון שיועד לביצוע עבודות יישומיות, חולק למחיצות (באנגלית: Partitions) בגודל קבוע, שבכל אחת מהן התבצעה אחת מעבודות היישום. האות M נגזרה מהמילה Multiple, "מרובה" בעברית, על מנת לציין שמערכת ההפעלה מנהלת מספר עבודות יישום המתבצעות בו זמנית. מרחב הכתובות בזיכרון המרכזי היה 24 סיביות.
כפי שניתן לראות באיור המתאר מבנה סכמטי של הזיכרון האמיתי במערכת ההפעלה MFT, חיסרון בולט של מערכת הפעלה זו, היה הניצול הלא יעיל של הזיכרון המרכזי של המחשב. לכל אחת מהעבודות המתבצעות בו-זמנית הוקצתה מחיצה בזיכרון המרכזי, שלתוכה נטענו תוכניות ונתונים. גודל כל מחיצה נקבע על פי גודל הזיכרון שנדרש לעבודה הצורכת את הזיכרון הגדול ביותר שתוכננה להתבצע במחיצה זו. עבודות אחרות, הצורכות למשל מחצית או רבע מהזיכרון שבמחיצה והתבצעו בה, ניצלו רק מחצית או רבע מהזיכרון שעמד לרשותן. לניצול יעיל של הזיכרון הוגדרו מחיצות בגדלים שונים, אכן גם בדרך זה חלק מהזיכרון לא נוצל.
דוגמה: המחשב העיקרי של ממר"ם בסוף שנות ה-60, מדגם IBM 360/65, היה מצויד בזיכרון בגודל 512K, שחולק למחיצות בגודל 108K ו-54K. למטרות מיוחדות יכול היה מפעיל המחשב לאחד מחיצות אחדות למחיצה גדולה של 256K.

מערכת ההפעלה MVT

MVT הן ראשי תיבות של Multitasking with a Variable number of Tasks (ריבוי משימות במספר משתנה של משימות). השינוי המהותי במעבר ממערכת ההפעלה MFT למערכת ההפעלה MVT, היה גמישות בניהול מחיצות הזיכרון. האות V בראשי התיבות, נגזרה מהמילה Variable, בעברית: "משתנה". גודל המחיצות בזיכרון המרכזי לא היה אחיד וקבוע, אלא כל עבודה ציינה את גודל הזיכרון הנחוץ לה, כך שניתן היה לחסוך חלק מבזבוז הזיכרון במערכת ההפעלה MFT. כאשר העבודות דרשו פחות מקום בזיכרון, ניתן היה להוסיף עוד מחיצות פעילות. כאשר פעלו עבודות שתפוסת הזיכרון שלהן גדולה יחסית, ניתן היה להפחית את מספר המחיצות.

HASP

חידוש מהותי נוסף במערכות ההפעלה MFT ו-MVT היה מערכת ניהול תורים ו-Spooling. המערכת שנקראה HASP‏ (Houston Automatic Spooling Priority) פותחה על ידי קבוצת אנשים שאינם עובדי IBM ונרכשה על ידי החברה. מספר שנים מאוחר יותר הורחבה למערכת הנוכחית המטפלת באותה פונקציונליות. המערכת שהחליפה את HASP נקראת Job Entry SubSystem או בראשי תיבות JES.

מערכות ההפעלה MVS

מערכות ההפעלה Multiple Virtual Storage, בראשי תיבות MVS, החליפו את מערכת ההפעלה SVS. מערכת ההפעלה z/OS היא למעשה מערכת MVS עם הרחבות ושיפורים. מערכת MVS הייתה מערכת עם ריבוי מרחבי כתובות, שבגרסאות הראשונות כל אחד מהם היה בגודל של 16MB, כמתואר בתרשים. במערכת ההפעלה SVS מרחב כתובות וירטואלי אחד שימש את כל העבודות. ב-MVS לכל עבודה היה מרחב כתובות וירטואלי בגודל של מרחב הכתובות הווירטואלי של כל העבודות ב-SVS. חלקו של מרחב הכתובות ב-MVS יועד למערכת ההפעלה, חלקו יועד להחלפת מידע בין מרחבי כתובות שונים (מסומן כ-Common בתרשים). החלק השלישי (מסומן כ-Private) יועד לעבודה בודדת המנוהלת תחת מערכת ההפעלה. החלק של מערכת ההפעלה והחלק המשותף זהים בכל מרחב כתובות ולכן קיים רק העתק אחד שלהם בזיכרון החיצוני (על דיסק). החלק הפרטי שונה בכל מרחב כתובות. ניהול ריבוי מרחבי כתובות במקום אחד דרש פיתוחי חומרה, תוכנה ומיקרוקוד, המאפשרים התייחסות למרחב הכתובות הווירטואלי הפעיל באותו רגע.
הצורך במערכת הפעלה עם ריבוי מרחבי כתובות נבע מזיכרון וירטואלי קטן מדי על מנת לענות על הצרכים. הפתרון היה שמירה על מרחב כתובות של 24 סיביות ושכפולו במספר רב של העתקים בהם תוכנו של החלק המיועד למערכת ההפעלה זהה בכולם והחלק המיועד לכל עבודה, שונה בין העבודות השונות.

מערכת ההפעלה MVS/XA

גרסה זו של מערכת ההפעלה MVS הופיעה באמצע שנות ה-80 של המאה העשרים. האותיות XA מייצגות את הביטוי Extended Architecture. השינוי המהותי היה הגדלת מרחב הכתובות, שכבר לא ענה על הצרכים ההולכים וגדלים בזיכרון וירטואלי, למרחב כתובות של 31 סיביות (כלומר הגדלת הזיכרון המרבי פי 128).
הסיבית ה-32 תיארה את אופי מרחב הכתובות של אותה תוכנית מחשב: 31 סיביות או 24 סיביות. חלק גדול מהקוד של מערכת ההפעלה עדיין עבד ב-24 סיביות, כלומר: לא היה באפשרותו להתייחס לנתונים או פקודות מכונה הממוקמים מעל לקו של 16 מיליון בתים (שהוא גודל הזיכרון המרבי ב-24 סיביות). מבנה הזיכרון הווירטואלי מתחת לקו ה-16 מיליון בתים זהה למבנה הזיכרון הווירטואלי במערכת ההפעלה MVS כפי שתואר בתרשים. מעל לקו ה-16 מיליון בתים הייתה חלוקה דומה לשלושה מרחבי כתובות: Extended Common, Extended System ומרחב כתובות גדול של Extended Private.

מערכת ההפעלה MVS/ESA

MVS/ESA הייתה מערכת ההפעלה שפותחה אחרי מערכת ההפעלה MVS/XA. ראשי התיבות ESA מייצגות את המילים: Enterprise System Architecture . היא שוחררה לזמינות כללית בפברואר 1988. גרסה שלה ששוחררה בפברואר 1993 נקראה MVS/ESA OpenEdition. גרסה זו תמכה בסטנדרטים של מערכות פתוחות, שהבולט בהם הוא POSIX. התמיכה בסטנדרטים נועדה לשפר את העבודה בשיתוף עם מערכות הפעלה אחרות על פלטפורמות חומרה אחרות. במערכת הפעלה זו התווספה הרחבת הזיכרון הווירטואלי של עבודה למספר מרחבי כתובות של 31 סיביות כל אחד. מנגנון חדש שנקרא Cross Memory Services, תמך בשילוב מידע בין מרחבי כתובות שונים השייכים לאותה עבודה.

מאפייני המערכת

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

ניהול המערכת

ניהול המערכת צריך לענות על הצרכים הנובעים מאופי והיקף העיבודים. במערכת ההפעלה z/OS מתבצעות במקביל הרבה עבודות מקוונות עם אלפי משתמשים או עשרות אלפי משתמשים תחת שרתי יישומים כמו CICS, IMS/DC ו-WebSphere Application Server, עבודות אצווה גדולות עתירות קלט ופלט ליחידות היקפיות, עבודות פיתוח תוכנה, ניסויי תוכנה ועבודות מסוגים אחרים, למשל: חישובים מורכבים עתירי משאבי מעבד. במערכת ההפעלה z/OS קיימים רכיבים ייחודיים המטפלים בוויסות כמות העבודות ובחלוקת משאבי המחשב בין העבודות על פי סדרי עדיפות מוגדרים מראש באמצעות פרמטרים במערכת. הרכיב המטפל בחלוקת המשאבים נקרא: (Work Load Manager (WLM.
אופי והיקף העבודות דורשים מנגנונים להבטחת זמינות גבוהה ושרידות גבוהה של המערכת. ריבוי המשתמשים וחשיבותם של העיבודים והנתונים, חייב מנגנוני אבטחת מידע אמינים. ב z/OS, מוצר אבטחת המידע העיקרי של חברת IBM הוא RACF - Resource Access Control Facility. קיימים גם מוצרי אבטחת מידע של יצרני תוכנה אחרים כמו CA Top Secret, המשתמשים באותו מנגנון של מערכת ההפעלה המאפשר ממשק של מוצרי אבטחת מידע ומערכת ההפעלה.
מורכבות וגודל המערכת מחייבים מנגנוני רישום הפעילות במערכת ומוצרים למדידת הפעילויות שהתבצעו במערכת ההפעלה.

סביבות פיתוח

שפת פיתוח תוכנה שהשימוש בה הוא השכיח ביותר במערכות z/OS היא COBOL. נתמכות שפות תכנות רבות אחרות כמו: C ,C++ ,PL/I ו-Assembler. נעשה שימוש בשפות פיתוח תוכנה קנייניות של יצרני תוכנה אחרים.

סביבת פיתוח ב Java

החל משנת 2000 השקיעה חברת IBM מאמץ מיוחד בתמיכה במערכות בשפת Java תחת מערכת ההפעלה z/OS. התמיכה ב-Java התבטאה ב-Porting של שרת יישומים WebSphere Application Server, שפותח עבור מערכות הפעלה אחרות, גם למיינפריים. גם בשרתי יישומים ותיקים, כמו CICS, התווספה יכולת של פיתוח מערכות ב-Java וממשק למערכות Java במערכות הפעלה אחרות.
התמיכה ב-Java התבטאה גם במנגנונים ייחודיים במערכת ההפעלה להתאמתה למנגנונים הייחודיים של z/OS ולשילובה בהם. כך למשל פותח מנגנון ייחודי, המותאם למיינפריים, לטיפול באיסוף זבל של Java Virtual Machine לצורך שיפור ביצועים ושילוב סביבת הריצה של Java עם מערכת ההפעלה.
דוגמה אחרת לשיפור ביצועים ב-Java היא עיצוב מעבדי מחשבי zEnterprise באופן מותאם לסביבת פיתוח זו. ביחד עם הקוד במערכת ההפעלה z/OS המנצל תכונות מעבדים אלו.

שילוב הומוגני

אשכול מחשבים הפועלים תחת מערכת הפעלה z/OS ונמצאים באותו מרכז מחשבים, נקרא Sysplex. בשנת 1994, תחת מערכת ההפעלה MVS/ESA V5.1, הורחבה הפונקציונליות שלו באמצעות מעבד ייעודי ורכיבי חומרה נוספים לניהול האשכול. ביחד עם הרחבת הפונקציונליות, שונה גם השם ל-Parallel Sysplex. מנגנוני ה-Parallel Sysplex מאפשרים שיתוף עבודה ושיתוף נתונים בין מערכות z/OS.
המנגנונים מטפלים בניהול משותף של משאבי מערכת הפעלה, למשל: קבצים ומשאבי מחשב. בסיסי נתונים DB2 ו-IMS של IBM, משתמשים במנגנוני Parallel Sysplex על מנת לקרוא, לכתוב ולעדכן את אותו בסיס נתונים ממספר מחשבים באשכול במקביל. גם בסיסי נתונים של חברות אחרות, העובדים תחת z/OS, כגון: Datacom/DB, IDMS ו Adabas, משתמשים ב-Parallel Sysplex לאותו צורך.
ניתן לשלב באותו אשכול גם מחשבים מרוחקים. המנגנון המורחב התומך גם בשילוב מחשבים מרוחקים, נקרא: (GPDS Geographically Dispersed Parallel Sysplex (GPDS.
אפשרות נוספת לאשכול מחשבים היא חלוקה לוגית של מחשב מרכזי אחד למספר מכונות וירטואליות. החלוקה אפשרית תחת מערכת ההפעלה z/VM או באמצעות מנגנון חומרה הנקרא: Logical Partitioning או LPAR. המנגנון מאפשר חלוקה של המחשב הפיזי למספר מכונות וירטואליות, המריצות כל אחת מערכת הפעלה. השימוש השכיח במחשב אחד המחולק למספר מופעים של מערכת ההפעלה z/OS הוא באמצעות LPAR. את המכונות הווירטואליות אפשר לנהל כ-Parallel Sysplex. קיימות גם תצורות בהן מספר מחשבים מחולקים למכונות וירטואליות, המופעלות באמצעות מערכת ההפעלה z/OS, ומופעי מערכת ההפעלה מאוגדים לאשכול מחשבים אחד באמצעות Parallel Sysplex.