מאמר של מוטי על מערכות הפעלה:
דוגמית:
מבוא
מערכת מחשב
מערכת מחשב מתחלקת לארבעה חלקים :
- השכבה "הנמוכה" , זו החומרה HARDWARE . החמרה מכילה: דיסק
קשיח, ספק כוח, מקלדת, עכבר, מסך, מדפסת, מעבד, חיווט, כרטיסי מחשב, זכרון,
מודם ועוד .
- מעל החמרה, נמצאת מערכת ההפעלה OPERATING
SYSTEM . זו תכנה, גדולה
יחסית ומורכבת, המתווכת בין החמרה לתכניות היישום והמשתמשים השונים . היא
מאפשרת שימוש מקבילי יעיל של רכיבי המחשב, ע"י ביצוע תאום בין צרכי
התכנה, משאבי המחשב והנחיות המשתמשים .
- מעל מערכת ההפעלה, נמצאת שכבת האפליקציות (יישומים) ,
APPLICATION PROGRAMS . הכוונה לקומפיילרים, מסדי נתונים, משחקים, תכנה לחישוב משכורות, לוח טיסות ועוד.
- המשתמשים USERS, הם האנשים, המכונות, מחשבים אחרים וכד' , המשתמשים במערכת המחשב .
מהי מערכת הפעלה?
בעולם המחשבים אין כיום הגדרה אחת מוסכמת למושג מערכת הפעלה אך בגדול מערכת הפעלה היא תוכנה המשמשת מתווך בין משתמש במחשב לחומרה של המחשב. או במילים אחרות, שכבת תכנה לניהול והסתרת פרטים של חומרת המחשב.
יותר פשוט להגדיר מערכת הפעלה לפי מה עליה לבצע מאשר מהי .
שתי מטרות של מערכת ההפעלה שלעיתים מנוגדות זו לזו :
v נוחות – שיפור בביצועי המחשב
מבחינת נוחות השימוש בו . ( נכון למחשבים
אישיים) .
v יעילות – מערכת
ההפעלה משפרת את יעילות המחשב. לשם כך דרושה מערכת
הפעלה מורכבת יותר ויקרה . (נכון
למערכות גדולות) .
מה מבצעת
מערכת ההפעלה ?
v הקצאת / שיתוף משאבים – למערכת
ההפעלה יש מקורות רבים, חמרה ותכנה, הנדרשים לפתרון בעיה : זמן CPU
(מעבד) , מקום בזכרון, מקום לאיחסון קבצים, התקני ק/פ וכד' . אפליקציה רוצה את כל
המשאבים ומערכת ההפעלה היא זו שמחליטה אילו משאבים להקצות לאילו דרישות, כך שיהיה
יעיל והוגן . מערכת ההפעלה נותנת לכל אפליקציה אשליה שכל המערכת
היא שלה .
v הגנה על החמרה – מערכת
ההפעלה משמשת כתכנית בקרה המבקרת את ביצועי תכניות המשתמשים כדי למנוע שגיאות .
למשל, מונעת כתיבה למקום אסור בזכרון וע"י כך מונעת הרס מבני נתונים . או
למשל דואגת לכך שאם תכנית נכנסת ללולאה אינסופית, תכניות אחרות יוכלו להמשיך לרוץ
ללא בעיה ומבלי שייגרם להן נזק . מערכת ההפעלה מגינה על שטחי תכניות, זו מפני זו .
v הגנה על המעבד - מבוססת על ההבחנה בין שני מצבי ריצה:
מצב משתמש – USER MODE ומצב מיוחס KERNEL MODE או PRIVILEGED MODE . המעבד תמיד נמצא באחד משני המצבים האלה .
- במצב המיוחס (גרעין) KERNEL – המעבד מבצע כל פקודה בתכנית .
מצב משתמש – USER MODE ומצב מיוחס KERNEL MODE או PRIVILEGED MODE . המעבד תמיד נמצא באחד משני המצבים האלה .
- במצב המיוחס (גרעין) KERNEL – המעבד מבצע כל פקודה בתכנית .
מערכת ההפעלה עובדת והמשתמש אינו יכול לבצע דבר
.
- במצב משתמש USER
– המעבד לא יבצע פקודות מסוימות .
מערכת ההפעלה בוחנת למעשה, כל פעולה של תכנית ומחליטה לפי הנ"ל אם המעבד צריך
לבצע או לא .
כמו כן, דואגת שכל התכניות ישתמשו במעבד עפ"י תור מסוים .
מערכת ההפעלה נקראת גם MONITOR
.
סוגי
מחשבים:
PC - מחשב בודד למשתמש בודד, דגש על נוחות שימוש וביצועים סבירים.
MAINFRAME
/ MINICOMPUTER – משתמשים רבים על אותה
חומרה דרך מסופים –
TERMINALS
. הדגש הוא על ניצול
משאבים ואבטחה .
WORKSTATION – מחשב עם חומרה למשתמש
אחד המחובר ומתקשר ברשת עם מחשבים
נוספים.
יש איזון בין ניצול משאבים ונוחות שימוש .
v תפקיד מערכת ההפעלה בהקשר הנ"ל הוא לנהל את השימוש בחומרה
באמצעות התוכנות.
התפתחות מערכות הפעלה
v חומרה יקרה ואיטית, כוח-אדם זול
Batch
jobs , ניצול החומרה 24x7: IBM S/360
v חומרה יקרה ומהירה, כוח-אדם
זול
Interactive
time-sharing :
Unix
v
חומרה
זולה ואיטית, כוח-אדם יקר
מחשב אישי לכל משתמש: MS-DOS
v
חומרה
זולה מאוד, כוח חישוב רב.
ריבוי משימות: Windows
NT, OS/2,
v
ריבוי
מעבדים וריבוי ליבות (multi-core)
שיתוף משאבים בסיסי:
דיסקים, מדפסות, ...
v
רשתות
מהירות.
הרשת היא המחשב: SETI@home,
Grid Computing
הרשת היא אמצעי אחסון: SAN, Web
storage
מנגנוני חמרה לתמיכה במערכת
ההפעלה
-
שעון חמרה
.
-
פעולות
סנכרון אטומיות .
-
פסיקות .
-
קריאות
מערכת הפעלה .
-
פעולות
בקרת קלט / פלט .
-
הגנת
זכרון .
-
אופן
עבודה מוגן .
-
פעולות
מוגנות .
החיים ללא מערכת הפעלה
v
כל מתכנת היה חייב:
1.
להכיר את החומרה אותה הפעיל לעומק.
2. להיות
מסוגל להגיע לחומרה ולנהל אותה פיזית.
v
כל תוכנית
הייתה:
1. צריכה
להכיל קוד עבור ביצוע כל תהליך.
2. מבצעת
טעות אחת או יותר בעת הריצה.
UNIX high-level architecture
הגדרות
מושגי יסוד
KERNEL (גרעין מערכת) – התכנית
הראשית של כל מערכת הפעלה. מכילה רשימות קוד לכל שימושי המערכת. תמיד נמצאת
בזכרון הראשי .
BATCH FILE (קובץ
אצווה) – קובץ המכיל שורות טקסט של פקודות למערכת ההפעלה, לשם הפעלתן של תכניות שונות.
BATCH PROCESSING (עיבוד
באצווה) – שיטת עבודה במערכות מחשוב שבמסגרתה
מתבצעות עבודות לא מקוונות
באופן שנקבע מראש, ללא
עבודה אינטראקטיבית . אופן הפעלת מערכת
האצווה נקבע באמצעות קבצי
אצווה הכוללים פקודות בשפת תסריט . אלו מערכות שבד"כ
עתירות במשאבים ומשך הרצתן ארוך. הזמן בו מורצים
עיבודי האצווה
העיקריים נקרא חלון אצווה ובדרך כלל הוא בשעות הלילה (למשל
גיבויים, עדכון חשבונות בנק וכד') .
Scripting
language (שפת
תסריט) – זו שפת תכנות לכתיבת תסריטים (SCRIPTS).
תסריט זו תכנית מחשב הנכתבת כדי למכן ביצוע משימות. הן נכתבות ומורצות מיד ללא
צורך במהדר או מקשר . התכנה המריצה תסריטים נקראת מפרש .
PROGRAM (תכנית) – קובץ ממשי בשפת מכונה
הנמצא על רכיב פיזי , למשל בדיסק .
(אפליקציה היא מקרה פרטי של program).
PROCESS או JOB (תהליך) – תכנית בעת ביצוע. כאשר תכנית שנמצאת על
הדיסק נכנסת
לריצה היא הופכת ל-Process.
רכיבי התהליך
1. התכנה שרצה .
2. הנתונים עליהם רצה התכנית .
3. המשאבים שהתהליך צורך (זיכרון, קבצים וכד') .
4. מצב התהליך (ריצה, המתנה וכד') .
TIME SHARING (חלוקת זמן) - כל תהליך מקבל ממערכת ההפעלה הזדמנות לרוץ.
MULTIPROGRAMMING (תכנות מרובב) – מחשב שבו רצות מספר תוכניות
על אותה מערכת. התכניות לא רצות במקביל, אלא זמן ה-CPU
מתחלק בין כל התכניות.
מאפיינים:
1. מערכת ההפעלה מספקת טיפול בהתקני ק/פ .
2. ניהול זכרון – מערכת ההפעלה צריכה למקם מספר תהליכים
בזכרון .
3. תזמון ה – CPU (המעבד) –מערכת ההפעלה
צריכה לבחור תהליך אחד מבין מספר תהליכים שמוכנים לריצה.
4. מיקום התקנים .
MULTITASKING – מערכות של Time-sharing. המחשב יודע לחלק את הזמן בין התהליכים בצורה מהירה מאוד. בנוסף הוא
יודע לחלק כל תהליך למשימות. הדבר מאפשר לעבוד עם מספר משתמשים במקביל. זהו מקרה
פרטי של Multiprogramming.
האחרים.
תהליך וחוט דומים .
בעיני מערכת ההפעלה , כל אחת מהתכניות הרצות היא Process
(תהליך).
מערכות הפעלה
מודרניות מאפשרות לנהל במסגרת ריצה של תהליך
(Process)
מספר תהליכונים הרצים במקביל במרחב כתובות אחד.
במערכות אלו כל תהליך חדש מתחיל את ביצועו
באמצעות 'תהליכון
ראשי' אשר עשוי בהמשך ליצור
תהליכונים נוספים (כמו למשל בזמן
קריאת קובץ או הדפסה). מנגנון הריצה באמצעות תהליכונים
מאפשר לספק למשתמש במערכת ההפעלה מהירות תגובה ורציפות
פעולה כאשר התהליך (יישום) מבצע מספר משימות במקביל .
MULTITHREADING (ריבוי
חוטים) – מערכת הפעלה בה חלקי
ההליכונים (Threads)
יכולים
לרוץ בו זמנית . למשל, תכנה אחת המאפשרת טיפול בריבוי
משתמשים
בו-זמנית , שרת web ועוד.
אם משתמשים רבים משתמשים בתכנה
בו-זמנית, נוצר ומנוהל Thread
עבור
כל אחד מהמשתמשים . ה – Thread מאפשר לתכנית לדעת איזה
משתמש
מקבל שירות .
הערה : THREADS יכולים להיות ממומשים גם ברמת המשתמש (USER) אבל אז מערכת ההפעלה
לא מודעת אליהם . מבחינת מערכת ההפעלה התהליכים הם Single threaded .
מושגים
בשיטת עבודה
INTERACTIVE (עבודה אינטראקטיבית ) - התכנה מגיבה לקלט
מהמשתמש .
למשל, באמצעות הוראות או נתונים. ( עבודה לא אינטראקטיבית,
שאינה מגיבה לפקודות משתמש, היא
למשל מהדר (Compiler) או
עבודה באצווה (Batch) .
OFFLINE (עיבוד בלתי מקוון) – עיבוד נתונים באמצעות התקן שאינו מחובר אל המעבד
המרכזי ישירות, כך שהוא אינו מצוי תחת תכנית בקרה.
ONLINE (עיבוד מקוון) – עיבוד המתבצע
ע"י משתמשים העובדים בעבודה אינטראקטיבית
מול המערכת. עיבוד תנועות מקוון מאופיין
במספר רב של
משתשמשים
העובדים במקביל.
וסוג העבודה אינם צפויים
מראש.
בעיבוד מקוון, יצירת הקלט מתבצעת במקביל להזנתו. כל תנועה
שמתרחשת, עוברת מיד
למחשב המרכזי .
דוגמא – מקסימום משיכות ליום בכספומט. עבודה ישירה
עם קבצי
הנתונים האמיתיים וביצוע בקרות בעת
הזנת עדכון או שליפת
המידע.
Real Time Systems
לרוב
משתמשים במערכות אלו כאשר ישנו זמן מוגבל לביצוע פעולה. כאשר מגיע זרם הנתונים יש
לעבד אותו במהירות. למערכת כזאת יש מערכת תזמון מאורגנת.כל הזכויות שמורות למוטי.
אין תגובות:
הוסף רשומת תגובה