29Jul

Kako web poslužitelji slušaju nove zahtjeve?

Kad saznate o web poslužiteljima i kako rade, možda ćete biti znatiželjni ako stalno slušaju zahtjeve ili ako pričekaju da dobiju zahtjev za pokretanje postupka. Imajući to na umu, današnji SuperUser Q & A post ima odgovore da zadovolji čitateljeve znatiželje.

Današnje pitanje &Sesija odgovora nam dolazi zahvaljujući SuperUseru - podjele Stack Exchange, grupiranjem zajednice Q & A web stranica.

Screenshot zbog xmodulo / Linux Slike( Flickr).

Pitanje

čitač SuperUser user2202911 želi znati kako web poslužitelji slušaju nove zahtjeve:

Pokušavam razumjeti detaljnije podatke o tome kako web poslužitelji rade.Želim znati je li poslužitelj, recimo, Apache, na primjer, kontinuirano glasuje za nove zahtjeve ili funkcionira nekim sustavom prekida. Ako je prekid, što izaziva prekid? Je li vozač mrežne kartice?

Kako web poslužitelj sluša nove zahtjeve?

Odgovor

SuperUser suradnik Greg Bowser ima odgovor za nas:

Kratak odgovor je neka vrsta prekida sustava. U osnovi, oni koriste blokiranje I / O, što znači da spavaju( blokiraju) dok čekaju nove podatke.

  1. Poslužitelj stvara utičnicu za slušanje, a zatim blokira dok čeka nove veze. Tijekom tog vremena, kernel stavlja proces u interruptible sleep stanje i pokreće druge procese. Ovo je važna točka;nakon što procesna anketa kontinuirano otpada CPU resursa. Kernel je u stanju učinkovitije koristiti resurse sustava blokiranjem procesa sve dok ne bude posla za to.
  2. Kad novi podatci stignu na mrežu, mrežna kartica izdaje prekid.
  3. Budući da postoji prekid s mrežne kartice, kernel, putem upravljačkog programa mrežnog čipa, čita nove podatke iz mrežne kartice i pohranjuje u memoriju.(To se mora učiniti brzo i općenito se obrađuje unutar rukovatelja prekida.)
  4. Kernel obrađuje novouređene podatke i povezuje ih s utičnicom. Postupak koji blokiraju tu utičnicu bit će označen pokretljivim, što znači da sada ispunjava uvjete za pokretanje. To ne mora nužno pokrenuti odmah( kernel može odlučiti pokrenuti ostale procese).
  5. U svojoj slobodno vrijeme, jezgra će probuditi blokirani proces web poslužitelja.(Budući da je sada moguće izvoditi.)
  6. Proces web poslužitelja nastavlja se izvršavati kao da nema vremena. Njegov blokirajući sustav naziva vraća i obrađuje sve nove podatke. Zatim idite na korak 1.

Imate li nešto za objašnjenje? Zvuči u komentarima.Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.