29Jul

Hogyan járulnak hozzá a webkiszolgálók az új kérelmekhez?

click fraud protection

Amikor megismerkednek a webkiszolgálókkal és hogyan működnek, lehet, hogy kíváncsi vagy, ha folyamatosan hallgatják a kéréseket, vagy ha várakoznak, amíg megkapják a cselekvésre irányuló kérelmet. Ennek szem előtt tartásával a mai SuperUser Q & A poszt válaszai kielégítik az olvasó kíváncsiságát.

A mai kérdés &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.

Pillanatkép xmodulo / Linux képekkel( Flickr).

Kérdés

SuperUser olvasó user2202911 szeretné tudni, hogy a webszerverek hogyan hallgatják meg az új kéréseket:

Megpróbálom megérteni a "mélyebb szint" részleteit, hogy a webszerverek hogyan működnek. Azt akarom tudni, hogy egy kiszolgáló például azt mondja-e Apache, hogy folyamatosan kérdezősködik az új kérelmekért, vagy ha valamilyen megszakítási rendszer működik. Ha megszakítás, mi okozza a megszakítást? Ez a hálózati kártya meghajtó?

Hogyan kezeli a webszerver az új kéréseket?

instagram viewer

A válasz

A SuperUser beszállítója, Greg Bowser válaszol számunkra:

A rövid válasz valamilyen megszakítási rendszer. Lényegében blokkoló I / O blokkot használnak, azaz alvás( blokk), miközben új adatokat várnak.

  1. A kiszolgáló létrehoz egy hallgatócsatlakozót, majd blokkolja az új kapcsolatok várakozásait. Ez alatt az idő alatt a kernel megszakítható alvás állapotba kerül, és más folyamatokat futtat. Ez egy fontos pont;mivel a folyamatfelmérés folyamatosan a CPU erőforrásait veszíti. A rendszermag hatékonyabban tudja használni a rendszer erőforrásait azáltal, hogy blokkolja a folyamatot addig, amíg nincs munkája.
  2. Amikor új adatok érkeznek a hálózathoz, a hálózati kártya megszakítást bocsát ki.
  3. Mivel a hálózati kártya megszakad, a rendszermag a hálózati kártya meghajtó segítségével olvassa le az új adatokat a hálózati kártyáról, és tárolja a memóriában.(Ezt gyorsan kell elvégezni, és általában a megszakításkezelőben kell kezelni.)
  4. A rendszermag az újonnan érkezett adatokat feldolgozza és egy aljzathoz csatlakozik. Az a rendszer, amely blokkolja az adott aljzatot, runnable lesz kijelölve, ami azt jelenti, hogy most jogosult futtatni. Nem feltétlenül fut el azonnal( a rendszermag eldöntheti, hogy más folyamatokat is futtat).
  5. A rendszermag felszabadítja a blokkolt webszerver folyamatot.(Mivel most már futható.)
  6. A webszerver folyamat továbbra is végrehajtja, mintha nincs idő telt el. A blokkoló rendszer hívja vissza és feldolgozza az új adatokat. Ezután folytassa az 1. lépést.

Van valami, amit hozzá lehet adni a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.