מעבד מפעיל תוכניות במצב משתמש או במצב ליבה. וכאשר אתה משתמש במחשב שלך, המעבד שלך עובר באופן קבוע בין השניים בהתאם למה שהוא עושה. אבל מה זה מצב משתמש ומצב ליבה, ומה ההבדל בין השניים?
בואו נראה מה הם המצבים האלה ולמה צריך מעבד לעבור בין המצבים האלה.
מהו "מצב משתמש" ב-Windows?
כאשר אתה מאתחל תוכנית ב-Windows, היא מופעלת במצב משתמש. בכל פעם שתוכנית במצב משתמש רוצה לפעול, Windows יוצר עבורה תהליך. תהליך הוא רק תוכנית שמעבד מבצע או כזו ש-Windows תזמן להפעיל. ובכל פעם ש-Windows יוצר תהליך, הוא יוצר גם מרחב כתובות וירטואלי עבור התהליך הזה.
א מרחב כתובות וירטואלי הוא אוסף הכתובות הלוגיות (לא פיזיות) ש-Windows מקצה לתהליך. תהליכים יכולים להשתמש בכתובות אלה כדי לאחסן נתונים בזיכרון הפיזי.
בנוסף, מרחבי כתובות וירטואליים מבודדים. לכן, מרחב הכתובות הווירטואלי של תהליך אחד אינו מפריע למרחב הכתובות של תהליך אחר. ומכיוון שלתוכניות במצב משתמש יש מרחבי כתובות נפרדים, אם תוכנית אחת קורסת, היא קורסת לבדה ולא מורידה איתה תוכניות אחרות או את כל מערכת ההפעלה.
קָשׁוּר: טיפים שיעזרו לך לתקן את שגיאת המסך הכחול של Windows 10
דרך נוספת לתאר יישומים במצב משתמש היא להשתמש במונח "פחות מיוחס". Windows מגביל ליישומים במצב משתמש לגשת ישירות למשאבי מערכת קריטיים ובכך הופכים אותם לפחות זכויות יתר. לדוגמה, אם יישום רוצה גישה לחומרה, עליו לעבור דרך ליבת מערכת ההפעלה באמצעות קריאות מערכת.
במילים פשוטות, תוכניות יישומים כמו משחקי וידאו פועלות במצב משתמש. הם פחות מיוחסים, אז אין להם גישה בלתי מוגבלת למשאבי המערכת. לכל אפליקציה במצב משתמש יש מרחב כתובות משלו. יישום לא יכול לשנות את מרחב הכתובות של יישום אחר. כתוצאה מכך, אם יישום אחד קורס, זה לא משפיע על תוכניות אחרות הפועלות במחשב.
קָשׁוּר: סימני אזהרה שהמחשב שלך עומד להתרסק (ומה לעשות)
מהו "מצב ליבה" ב-Windows?
לפני שנדון במצב Kernel, אנחנו צריכים קודם כל מה זה "קרנל" וכיצד הוא עובד עם Windows.
הקרנל הוא המוח של מערכת הפעלה. זהו רכיב התוכנה המרכזי שכל שאר הרכיבים במערכת ההפעלה מסתמכים עליו. הקרנל מנהל את חומרת המחשב, מתזמן אילו תהליכים פועלים במחשב ומתי, ומטפל באינטראקציות בין החומרה לתוכנת האפליקציה.
בקיצור, הקרנל הוא פיסת הקוד המועדפת ביותר שפועלת במערכת. זה בגלל שזה הקוד שמקיים אינטראקציה ישירה עם החומרה. כל תוכנה אחרת שרוצה להשתמש במשאבי החומרה צריכה לבקש גישה דרך הקרנל.
כאשר תוכנית אפליקציה פועלת במצב משתמש ורוצה גישה לחומרה כמו מצלמת האינטרנט, עליה לבקש את הליבה באמצעות קריאת מערכת. כדי לתת שירות לבקשות אלו, ה-CPU, בזמן ביצוע התוכנית, עובר ממצב משתמש למצב ליבה.
לאחר השלמת ביצוע תהליך, המעבד עובר חזרה למצב משתמש ומתחיל לבצע את התהליך המתוזמן הבא. זה נקרא "החלפת הקשר".
מה ההבדל בין מצב משתמש למצב ליבה?
ההבדל העיקרי בין מצב משתמש ומצב ליבה הוא רמת ההרשאות שכל מצב מציע. במצב משתמש, ליישומים יש פחות הרשאות. אין להם גישה ישירה למשאבי חומרה וגם לא יכולים לכתוב למרחבי הכתובות של יישומים אחרים.
קָשׁוּר: כיצד להשתמש במנהל ההתקנים כדי לפתור בעיות של Windows 10
לקוד שפועל במצב Kernel יש הרשאות מוגברות. יש לו לא רק גישה ישירה לחומרת המחשב, אלא שכל התוכניות הפועלות במצב Kernel, כולל מערכת ההפעלה, חולקות גם מרחב כתובות אחד. אז, אם תוכנית נכנסת מצב ליבה קורס, זה יכול להוריד את כל מערכת ההפעלה איתו. כדי להבטיח קריסות כאלה לא יתרחשו, Windows מאפשר רק לכמה תהליכים לפעול במצב ליבה.
Windows מאמצת גישה שכבתית להפרדת תוכניות משתמש ממשאבי מערכת
Windows משתמש במודל שכבות כדי לקבוע את רמת ההרשאות של תהליכים. אפליקציות השוכנות בשכבה החיצונית ביותר הן אלו עם הרשאת החכירה. בליבת השכבות הללו נמצא הגרעין. כתוצאה מכך, לקרנל יש גישה בלתי מוגבלת למשאבי מערכת ההפעלה.
גישת השכבות מגנה גם על פונקציונליות חיונית של מערכת ההפעלה. כאשר תוכניות בשכבה העליונה קורסות באופן אקראי, זה לא משפיע על מערכת ההפעלה. מצד שני, כאשר הקרנל קורס, מערכת ההפעלה כולה יורדת.
מדוע Windows ממשיך לקרוס? להלן הסיבות הנפוצות ביותר לקריסות של Windows ומספר עצות לתיקון אותן.
קרא הבא
- חלונות
- חלונות
פאואד הוא סופר עצמאי במשרה מלאה. הוא אוהב טכנולוגיה ואוכל. כשהוא לא אוכל או כותב על Windows, הוא משחק במשחקי וידאו או חולם בהקיץ על טיולים.
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
לחץ כאן כדי להירשם