Csdrive Flashcards
איך הדיסק מורכב
סקטורים בגודל 512 בתים
זמן גישה טיפוסי
מעבד
זיכרון
דיסק
3 ננו
100 ננו
1 מילי
מהם המצבים של תהליך
כל האפשרויות
Reay
Waiting
Running
Zombie
Ready מצב
בתהליך
ואיזה פקודה מכניסה אותו למצב הזה
התהליך נטען לזיכרון ומחכה לרוץ
אם היה בwaiting
When IO is done
אפ היה בrunning
אז descheduled
כלומר ההקשר הוחלף ממנו
איך אפשר להגיע למצב waiting בתהליך
להפעיל פקודה חוסמת במהלך ריצה לדוגמה read
איך מגיעים למצב running
מה הפקודה?
אם היינו בwaiting
ועשו עלינו schedule d
כלומר ההקשר עבר לתהליך
מה זה cpl
גם מה הראשיתיבות
Current privilage level
User 3
Kernel 0
תאר שדות בpcb
Real parent האב המקורי
Parent האב בפועל
2 למעלה הם מצביעים
Children מצביע לרשימה מקושרת של בנים
Siblings מצביע לרשימה מקושרת של אחים
Pid מזהה התהליך
קריאת מערכת
Getppid
מחזירה את המזהה של תהליך האב
Fd
File descriptor
מזה אי שלילי
שמקבלים מopen ואיתו עושים מניפולציות לקובץ
Pipe
זוג שלFD
אחד לקריאה ואחד לכתיבה
FIFO
Pipe ציבורי
שכל התהליכים יכולים לגשת אליו
Fdt
לכל תהליך יש כזה משלו
מערך של מצביעים לfile object של כל הקבצים הפתוחים עי התהליך
Gdft
Global fdt
כל הקבצים הפתוחים עי כל התהליכים במערכת נשמרים שם
מהם מצבי הפתיחה שאפשר לפתוח את קבצים
O_RDONLY
O_WRONLY
O_RDWR
אפשר גם להוסיף עם | עוד תכונות
O_CREAT יצירת הקובץ אם לא קיים
O_APPEND שרשור לסוף הקובץ
מודל
מתי אפשר לטעון
ומה היתרון
קוד שאפשר לטעון בזמן ריצה לגרעין
לא מצריך קימפול מחדש של הגרעין
MBR
Master boot recored
הסקטור הראשון של הדיסק
מנהל את האתחול
Boot loader
איפה נשמרים ההתקנים
תחת תקיית
Dev/
איזה פקודה באסמבלי חוזרת מקריאת מערכת
Sysret
מתי המעבד בודק אם הגיע פסיקת חומרה?
בין פקודה לפקודה
Idt
מה זה
מה גודלו
איך יודעים איך להגיע אליה?
מתי נטען?
Interrupt descriptor table
בx64 תומך בגודל של 256 אחד לכל פסיקה
כל רשומה בטבלה היא בגודל 16 בתים
יש רגיסטר מיוחד idtr שמצביע עליה
הוא נטען עוד בbios כי יכול להיות שנצטרך להשתמש בפסיקות עוד לפני שמערכת ההפעלה עלתה לדוגמה שימוש במקלדת בביוס
מה נשמר ב
idtr
כתובת הidt
32 ביט
גודל הidt
16 ביט
איזה שני סוגים של פסיקות חומרה יש
ואיך הן מחוברות למעבד
לאיזה רשומות הן ממופות בidt
איך אפשר לכבות אותן
פסיקות חומרה
Muskable
מחוברות למעבד דרך התקן מיוחד בשם
Apic
לכניסת intr במעבד
רק אותן אפשר לכבות עי כיבוי דגל IF ברגיסטר הדגלים
Unmaskable
אי אפשר למסך
משמש לדיווח בעיות קריטיות כמו נפילת מתח
מחוברות דרך כניסה nmi במעבד
כניסה 2 בidt
איך נוצרות פסיקות תוכנה או חריגות
כתגובה לביצוע של פקודות תוכנה כלשהן
איזה סוגים של פסיקות תוכנה יש
ומה המעבד עושה לאחר שגרת הטיפול שלהן
ודוגמה לכל אחת
Fault
ניתנות לטיפול
כמו חלוקה ב0 או page fault
בסיום הטיפול המעבד יחזור לבצע את הפעולה
Abort
תקלות חמורות
לדוגמה שיבוש בזיכרון
Traps
נגרמות באופן מכוון
כדי להפעיל קוד טיפול בפסיקה breakpoint
בסיום הטיפול המעבד ימשיך לפקודה הבאה
Apic
רכיב חומרה
מנוהל עי מה
בעל 16-24 כניסות
רכיבי החומרה שולחים אליו בקשה לפסיקה
Maskuable inturraptes
איך המעבד חוזר משגרת טיפול בפסיקה
מה הפקודה
Iret
איפה fifo נשמר
קובץ שלא נשמר על הדיסק
מה קורה להתליך שפותח את ה
Fifo
לקריאה בלבד
או לכתיבה
הוא יחסם עד שתהליך אחר יפתח אותו באופן המשלים
כמו תור בבעיית המייצר והצרכן
כתיבה בלבד או קריאה בלבד
האם פתיחת הfifo לקיראה וגם לכתיבה זה חוסם?
לא
מה קורה אם חוט מסויים
מבצע exit
או מבצע פעולה לא חוקית כמו חלוקה ב0
זה יסיים את ריצת כל הקבוצה ולא רק את שלו