OS - IO Flashcards
כיצד מתבצע מתן פקודות להתקני קלט/פלט
על ידי כתיבה לאוגרים של בקר או לחוצצים מיוחדים שיכולים להכיל נתונים
3 שיטות מיעון של אוגרים וחוצצים
לבקרי התקנים קיים מרחב כתובות נפרד ממרחב הכתובות
של הזיכרון הראשי.
בקרי התקנים משתמשים במרחב כתובות המשותף לזיכרון הראשי. לשיטה זו קוראים memory mapped I/O.
השיטה המעורבת שבה למרחב השל הזיכרון הראשי ממופים החוצצים ואילו הכתובות של אוגרי הבקרה ממופים למרחב נפרד.
Direct Memory Access-DMA
העתקות אל הזיכרון ובחזרה לדיסק דורשות זמן CPU, אלא אם כן הבקר של התקן הקלט/פלט תומך באפשרות של DMA. העתקה של נתונים מזיכרון ראשי להתקן מבוצעת על ידי בקר DMA ובמקרה של הבאת נתונים מהתקן קלט/פלט לזיכרון הראשי, הבקר דואג לשכנם בזיכרון לפי הכתובת שהופקדה עליו, וכל זאת מבלי להזדקק ל-CPU.
מטרות תוכנת הקלט/פלט
אי תלות בהתקנים- מערכת ההפעלה צריכה לספק ממשק אחיד לעבודה עם התקנים שונים ולהסתיר את ההבדלים הנובעים מייחודם של ההתקנים השונים.
כינוי אחד- מערכת ההפעלה צריכה לספק כינוי אחיד להתקנים שונים.
טיפול בשגיאות- הן בחומרת הקלט/פלט והן בכל רמות התוכנה.
העברת נתונים בצורה אסינכרונית- המעבד נותן לבקר הוראה לבקר לבצע העברת נתונים, ועד אשר יגיעו הנתונים הוא עובר לבצע משימות אחרות. עם סיום העברת הנתונים המעבד מקבל פסיקה. מערכת ההפעלה צריכה לגרום לכך שהעברת הנתונים תיראה כסינכרונית.
הטמנה- הביצועים של פעולות הקלט/פלט יכולים להיות מושפעים מהטמנה של נתונים בזיכרון הראשי כדי לחסוך זמן גישה לדיסק.
מערכת ההפעלה צריכה לאפשר שיתוף של התקני קלט/פלט אם הדבר ניתן. לחילופין, יש לתת אפשרות של שימוש בלעדי בצורה שתמזער סיכוי לקיפאון.
3 שיטות כתיבה להתקן קלט/פלט:
קלט/פלט באמצעות המעבד הראשי:
כל פעם נכתב תו אחד ל-RAM. תו זה עובר להתקן הקלט/פלט שמדפיס אותו. חיסרון: עלולה להתבצע המתנה פעילה.
קלט/פלט מונחה אירועים:
המעבד אינו נמצא בלולאת המתנה פעיל לאחר העתקה של חוצץ נתונים לגרעין. לעומת זאת, מערכת ההפעלה מעבירה את התהליך שביקש קלט/פלט למצב חסום, המעבד מבקש מבקר לבצע פעולת קלט/פלט ומתפנה. בתום פעולת הקלט/פלט, הבקר שולח אל המעבד פסיקה. חיסרון: תקורה גבוהה.
קלט/פלט באמצעות DMA:
המעבד נותן פקודה לבקר, מציין מהיכן להיכן לבצע את ההעברה ומתפנה לעיסוקיו. בתום העברת כל הנתונים, הבקר שולח למעבד פסיקה ומערכת ההפעלה מטפלת בה. שיטה זו מתגברת על החסרונות של השיטות הקודמות.
מערך דיסקים (RAID)
שיטה לאחסון נתונים במספר דיסקים במקביל המיועדת להגביר את שרידותם ושלמותם של הנתונים, ולספק קצבים גבוהים של העברת נתונים ושל טיפול בבקשות, כאשר מבחינתה של מערכת ההפעלה מערך הדיסקים נראה כדיסק לוגי יחיד
RAID level 0
בשיטה זו נתונים פזורים על פני דיסקים של מערך בפיסות (strips) בגודל קבוע. יתרון: גישה לנתונים בדיסק הלוגי מתורגמת למספר גישות מקביליות לדיסקים של המערך שבהם שוכנות הפיסות שמרכיבות את הנתונים המבוקשים. חסרון: הקטנת השרידות (אם אחת הפיסות נהרסת, כל ה-RAID נהרס).
RAID level 1
הכפלת מספר הדיסקים שהיו ב-RAID level 0 לשם גיבוי. גם מהירות הגישה לנתונים עולה כיוון שאפשר לספק בקשות במקביל גם מדיסקים של גיבוי. חיסרון: העלות של שכפול הדיסקים.
RAID level 2
שיטה המשתמשת בסנכרון הדיסקים על מנת לשמור על פני פיסות אחרות קוד לתיקון שגיאות, בדרך כלל קוד המינג, שיכול לתקן שגיאה אחת ולזהות 2. קצב העברת הנתונים גבוה מאוד מכיוון שפיסות המידע הן קטנות והמקביליות עדיין עובדת. בנוסף, למרות ש-RAID level 2 בזבזנית יחסית במונחים של חומרה, היא עדיין משתמשת במספר מינימלי של דיסקים לשם תיקון שגיאה (log(n)).
RAID level 3
שיטה הדומה ל-RAID level 2, רק שהקוד שבו משתמשים כאן הוא קוד זוגיות. גם כאן נדרש סנכרון בין הדיסקים. קוד זה משתמש בדיסק אחד נוסף בלבד. השרידות כאן אמנם קטנה מב-RAID level 2, אך היא עדיין גבוהה מאוד יחסית, והיא יעילה וחסכונית יותר.
RAID level 4
בשיטה זו הדיסקים פועלים בצורה עצמאית (ללא סנכרון). לכל פיסה יש סיבית זוגיות משלה, מה שמגדיל את השרידות. למרות זאת, קצב ההעברה יהיה נמוך יחסית, וישנה תקורה גבוהה.
RAID level 5
בניגוד ל-RAID level 4, בו יש רק דיסק אחד המחזיק את פיסות הזוגיות, כאן הן מפוזרות על פני כל הדיסקים שבמערך. כך, העדכונים פחות יקרים.
RAID level 6
דומה ל-RAID level 5, רק שכאן פיסת הזוגיות מחושבת פעמיים לצורך הגדלת השרידות, למרות שהכתיבה תהיה יקרה יותר.
4 אלגוריתמים לתזמון זרוע הדיסק
First Come First Served-FCFS
Shortest Seek First-SSF
Elevator
Circular Scan
אלגוריתמים לתזמון זרוע הדיסק First Come First Served
האלגוריתם פועל כל המסלולים בהתאם לסדר הבקשות. זהו האלגוריתם ההוגן ביותר, אך הוא אינו יעיל בכלל.