ההבדל בין שיחת מערכת לפסיקה

Anonim

System Call לעומת Interrupt

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

-> ->

מהי שיחת מערכת?

שיחות מערכת מציעות תוכניות שפועלות במחשב כדי לדבר עם מערכת ההפעלה. כאשר תוכנית צריכה לבקש שירות (עבורו אין לה הרשאה עצמה) מהקרנל של מערכת ההפעלה היא משתמשת בשיחת מערכת. לתהליכי רמת המשתמש אין הרשאות זהות לתהליכים המקיימים אינטראקציה ישירה עם מערכת ההפעלה. לדוגמה, כדי לתקשר עם התקן I / O חיצוני או לקיים אינטראקציה עם תהליכים אחרים, תוכנית צריכה להשתמש בשיחות מערכת.

-> ->

מה זה פסיקה?

במהלך ביצוע תקין של תוכנית מחשב, יכולים להיות אירועים שיכולים לגרום למעבד להפסיק זמנית. אירועים כמו זה נקראים interrupts. הפרעות יכולות להיגרם על ידי תקלות בתוכנה או בחומרה. Interrupts חומרה נקראים (פשוט) interrupts, בעוד interrupts תוכנה נקראים חריגים או מלכודות. לאחר הפסקות (תוכנה או חומרה) עולה, השליטה מועברת לשגרה מיוחדת שנקראת ISR (Interrupt Service Routing), אשר יכולה לטפל בתנאים המועלים על ידי ההפרעה.

כאמור, המונח "פסיקה" שמור בדרך כלל לפסיקות חומרה . הן הפרעות של בקרת תוכניות הנגרמות על ידי אירועי חומרה חיצוניים. כאן, חיצוני פירושו חיצוני למעבד . הפרעות בחומרה בדרך כלל מגיעות ממקורות רבים ושונים כגון שבב קוצב זמן, מכשירים היקפיים (מקלדות, עכבר וכו '), יציאות קלט / פלט (טורי, מקבילי וכו'), כונני דיסקים, שעון CMOS, כרטיסי הרחבה כרטיס, כרטיס וידאו, וכו '). פירוש הדבר שקטעי חומרה כמעט לעולם אינם מתרחשים עקב אירוע הקשור לתוכנית הביצוע. לדוגמה, אירוע כמו לוחץ על המקלדת על ידי המשתמש, או תזמון שעון עצר פנימי יכול להעלות סוג זה של פסיקה ויכול להודיע ​​למעבד כי מכשיר מסוים צריך קצת תשומת לב. במצב כזה המעבד יפסיק מה שהוא עושה (i משהה את התוכנית הנוכחית), מספק את השירות הנדרש על ידי המכשיר יחזור התוכנית הרגילה.

מה ההבדל בין System Call ו Interrupt?

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