29Jul
כאשר לומדים על שרתי אינטרנט וכיצד הם עובדים, אתה עשוי להיות סקרן אם הם כל הזמן מקשיב לבקשות או אם הם מחכים עד שהם מקבלים בקשה להיכנס לפעולה.עם זאת, היום של SuperUser Q & פוסט יש את התשובות כדי לספק את הקורא של סקרנות.
השאלה של היום &מפגש תשובה מגיע אלינו באדיבות SuperUser - חלוקה של סטאק שערי, קהילה מונחה קיבוץ של Q & אתרי אינטרנט.
מסך באדיבות xmodulo / לינוקס צילומי מסך( Flickr).
השאלה
SuperUser הקורא user2202911 רוצה לדעת איך שרתי אינטרנט להקשיב לבקשות חדשות:
אני מנסה להבין את 'ברמה עמוקה יותר' פרטים של איך שרתי אינטרנט לעבוד.אני רוצה לדעת אם שרת, אומר אפאצ 'י, למשל, הוא סקר שוטף עבור בקשות חדשות או אם זה עובד על ידי איזושהי מערכת פסיקה.אם זה קטע, מה מעורר את ההפרעה?האם זהו מנהל ההתקן של כרטיס הרשת?
כיצד שרת אינטרנט מקשיב לבקשות חדשות?
תשובה
SuperUser תורם גרג Bowser יש את התשובה עבורנו:
התשובה הקצרה היא איזה סוג של מערכת פסיקה.בעיקרו של דבר, הם משתמשים בחסימת I / O, כלומר הם ישנים( בלוק) בזמן ההמתנה לנתונים חדשים.
- השרת יוצר שקע האזנה ולאחר מכן חוסם בזמן ההמתנה לחיבורים חדשים.במהלך הזמן הזה, הקרנל מעביר את התהליך למצב שינה שינה לישון ומפעיל תהליכים אחרים.זו נקודה חשובה;לאחר סקר התהליך ברציפות יבזבז משאבי CPU.הקרנל הוא מסוגל להשתמש במשאבי המערכת בצורה יעילה יותר על ידי חסימת התהליך עד שיש עבודה לעשות את זה.
- כאשר נתונים חדשים מגיעים לרשת, כרטיס הרשת גורם לקטע.
- ראה כי קיימת הפרעה מכרטיס הרשת, הקרנל, באמצעות מנהל ההתקן של כרטיס הרשת, קורא את הנתונים החדשים מכרטיס הרשת ומאחסן אותו בזיכרון.(זה חייב להיעשות במהירות והוא מטופל בדרך כלל בתוך המטפל interrupt.)
- הקרנל מעבד את הנתונים שזה עתה הגיע ומקשר אותו עם שקע.תהליך זה חוסם על שקע זה יהיה מסומן runnable, כלומר, היא זכאית כעת לרוץ.זה לא בהכרח לרוץ מיד( הקרנל עשוי להחליט להפעיל תהליכים אחרים עדיין).
- בזמן הפנאי, הקרנל יעיר את תהליך שרת האינטרנט החסום.(מאז זה עכשיו runnable.)
- תהליך שרת האינטרנט ממשיך לבצע כאילו לא חלף זמן.מערכת החסימה שלו חוזרת ומחזירה נתונים חדשים.לאחר מכן עבור לשלב 1.
יש משהו להוסיף להסבר?נשמע את ההערות.רוצה לקרוא תשובות נוספות ממשתמשים אחרים בעלי ידע טכנולוגי?בדוק את נושא הדיון המלא כאן.