29Jul

Kako spletni strežniki poslušajo nove zahteve?

Ko se učite o spletnih strežnikih in kako delujejo, vas morda zanima, če nenehno poslušate zahteve ali če čakajo, da prejmejo zahtevo za ukrepanje. S tem v mislih, današnji SuperUser Q & A post ima odgovore, ki zadovoljujejo radovednost bralca.

Današnje vprašanje &S sejo odgovora prihaja uporaba SuperUserja, ki je razdeljena na Stack Exchange, skupinsko spletno stran Q & A.

Posnetek zaslona z xmodulo / Linux Screenshots( Flickr).

Vprašanje

bralec SuperUser bralca user2202911 želi vedeti, kako spletni strežniki poslušajo nove zahteve:

Poskušam razumeti podrobnosti o "globlji ravni" delovanja spletnih strežnikov.Želim vedeti, ali strežnik, recimo Apache, na primer, stalno polaga za nove zahteve ali če deluje na nek način prekinitveni sistem.Če gre za prekinitev, kaj povzroča prekinitev? Je gonilnik omrežne kartice?

Kako spletni strežnik posluša nove zahteve?

Odgovor Odgovor

SuperUser prispevek Greg Bowser ima odgovor za nas:

Kratek odgovor je nekakšen sistem prekinitve. V bistvu uporabljajo blokiranje I / O, kar pomeni, da spijo( blok), medtem ko čakajo na nove podatke.

  1. Strežnik ustvari vtičnico za poslušanje in blokira med čakanjem na nove povezave. V tem času jedro postavi proces v stanje prekinljivega stanja spanja in izvaja druge procese. To je pomembna točka;ob procesu ankete neprekinjeno bi zapravili vire CPU-jev. Jedro lahko učinkoviteje uporabi sistemske vire tako, da blokira proces, dokler ni dela za to.
  2. Ko pridejo novi podatki v omrežje, omrežna kartica izda prekinitev.
  3. Videti, da obstaja prekinitev z omrežne kartice, jedro preko gonilnika omrežne kartice bere nove podatke z omrežne kartice in jih shrani v pomnilnik.(To je treba narediti hitro in se običajno obravnava znotraj orodja za prekinitev.)
  4. Jedro obdeluje novo prispene podatke in ga povezuje z vtičnico. Proces, ki blokira to vtičnico, bo označen kot runnable, kar pomeni, da je zdaj primeren za zagon. To ni nujno takoj za zagon( jedro se lahko odloči za zagon drugih procesov še vedno).
  5. V prostem času bo jedro zbudilo proces blokiranega spletnega strežnika.(Ker se zdaj izvaja.)
  6. Postopek spletnega strežnika se nadaljuje, kot da ni minilo nobenega časa. Sistem blokiranja klicev vrne in obdeluje vse nove podatke. Nato pojdite na 1. korak.

Ali želite dodati nekaj pojasnila? Zvok v komentarjih.Želite prebrati več odgovorov od drugih uporabniških članov stack Exchange? Oglejte si celotno temo za razpravo tukaj.