ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Xinu – ויקיפדיה

Xinu

מתוך ויקיפדיה, האנציקלופדיה החופשית

Xinu היא מערכת הפעלה המשמשת לצרכי לימוד. השם Xinu הוא גם ראשי תיבות של "Xinu Is Not Unix" (זינו היא לא יוניקס) וגם היפוך סדר האותיות בשם Unix.

Xinu פותחה על ידי דגלאס קומר מאוניברסיטת Purdue ב-1980.

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

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

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

[עריכה] Xinu מדגימה מספר עקרונות חשובים במערכות הפעלה:

  1. כמערכת רב-תהליכית, קיים בה מנגנון time sharing. מנגנון זה מאפשר למעבד היחיד של המחשב להריץ מספר תהליכים במקביל. למעשה ההרצה אינה באמת במקביל, שכן בכל נקודת זמן המעבד יכול להריץ קוד של תהליך אחד בלבד, אך על ידי העברת השליטה במעבד מתהליך לתהליך במרווחי זמן קצרים מאוד (לפחות במושגים אנושיים) מושגת האשלייה שהתהליכים רצים במקביל. כלומר ייתכן מצב שבו תהליך נוצר, החל להריץ את הקוד שלו ולפתע פתאום, תוך כדי ריצתו, מערכת ההפעלה לוקחת ממנו את המעבד ומעבירה את השליטה בו לתהליך אחר. זה נקרא Preemption.
  2. מנגנוני סינכרון. כיוון שהתהליכים רצים במקביל זה לזה, ללא מנגנוני סינכרון לא היה אפשר להעביר כל אינפורמציה ביניהם. נניח למשל, שתהליך אחד צריך לחשב משתנה מסוים שערכו משתנה כל הזמן ותהליך אחר צריך להדפיס את המשתנה לאחר כל שינוי. ללא מנגנון סינכרון, התהליך המדפיס לא היה יודע מתי השתנה הערך וייתכן שאותו ערך היה מודפס כמה פעמים וערך אחר לא היה מודפס כלל. Xinu מציעה שני מנגנוני סינכרון שונים.
  3. תמיכה בפסיקות. Xinu "לוקחת" כמה פסיקות, במובן זה שהיא מכילה עבורן interrupt service routine, ISR כלומר שגרת טיפול בפסיקה, שזהו למעשה קוד שמורץ בכל פעם שהפסיקה מתרחשת. למשל בכל פעם שמתרחשת פסיקת שעון, Xinu מריצה את ה-ISR המתאים, שמצידו דואג לעדכן את מבני הנתונים הגלובליים של Xinu, ביניהם ערך ה-preemption. כך המערכת יודעת כמה זמן המעבד כבר נמצא אצל התהליך שרץ כרגע.

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


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -