If-Koubou

Miten Web-palvelimet kuuntelevat uusia pyyntöjä?

Miten Web-palvelimet kuuntelevat uusia pyyntöjä? (Miten)

Kun tiedät verkkopalvelimista ja miten he työskentelevät, saatat olla utelias, jos he jatkuvasti kuuntelevat pyyntöjä tai odottavat, kunnes he saavat pyynnön toimia. Tämän vuoksi tämän päivän SuperUser Q & A -julkaisussa on vastauksia tyydyttämään lukijan uteliaisuutta.

Tämän päivän kysymys- ja vastausistunto tulee meihin SuperUserin hyväksi - Stack Exchangein alaosasto, joka on yhteisöllinen Q & A-sivustojen ryhmittely.

Kuvakaappaus xmodulo / Linux Screenshots (Flickr).

Kysymys

SuperUser-lukija user2202911 haluaa tietää, miten web-palvelimet kuuntelevat uusia pyyntöjä:

Yritän ymmärtää "syvemmän tason" yksityiskohtia siitä, miten web-palvelimet toimivat. Haluan tietää, onko palvelin, esimerkiksi Apache, jatkuvasti pyytänyt uusia pyyntöjä tai jos se toimii jonkinlaisen keskeytysjärjestelmän avulla. Jos se on keskeytys, mikä aiheuttaa keskeytyksen? Onko verkkokortin ajuri?

Kuinka web-palvelin kuuntelee uusia pyyntöjä?

Vastaus

SuperUser-avustaja Greg Bowserilla on meille vastaus:

Lyhyt vastaus on jonkinlainen keskeytysjärjestelmä. Pohjimmiltaan he käyttävät estää I / O: tä, eli he nukkuvat (estävät) odottamassa uusia tietoja.

  1. Palvelin luo kuuntelupistokkeen ja estää sitten uusia yhteyksiä odotettaessa. Tänä aikana ydin laittaa prosessin osaksi keskeytettävä unta tilaa ja käyttää muita prosesseja. Tämä on tärkeä asia; prosessin kysely jatkuvasti tuhlaisi CPU-resursseja. Järjestelmä pystyy käyttämään järjestelmän resursseja tehokkaammin estämällä prosessin, kunnes siihen on tehtävä töitä.
  2. Kun uusi tieto saapuu verkkoon, verkkokortti antaa keskeytyksen.
  3. Koska verkkokortilta on keskeytys, ydin lukee verkkokortin kautta uuden datan verkkokortin ohjaimesta ja tallentaa sen muistiin. (Tämä on tehtävä nopeasti ja sitä käsitellään yleensä keskeytyskäsittelijän sisällä.)
  4. Järjestelmä käsittelee vasta saapuneet tiedot ja yhdistää sen pistorasiaan. Prosessi, joka estää kyseisestä liittymästä, on merkitty ajettavaksi, mikä tarkoittaa, että se on nyt oikeutettu suorittamaan. Se ei välttämättä suoriteta välittömästi (ytimen voi päättää suorittaa muita prosesseja vielä).
  5. Sen ytimessä herätetään estetty web-palvelimen prosessi. (Koska se on nyt ajettavissa.)
  6. Verkkopalvelimen prosessi jatkuu suorana ikään kuin aikaa ei ole kulunut. Sen estojärjestelmä soittaa paluu ja käsittelee kaikki uudet tiedot. Siirry sitten vaiheeseen 1.

Onko jokin asia lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä? Katso koko keskusteluketju täältä.