29Jul
Když se učíte o webových serverech a jak fungují, možná budete zvědaví, pokud neustále poslouchají o požadavky nebo čekají, až obdrží požadavek na akci. S ohledem na to má dnešní příspěvek SuperUser Q & A odpovědi na uspokojení zvědavosti čtenáře.
dnešní otázka &Odpověď na zasedání se k nám dostala s laskavým svolením SuperUser - podřízenou výměnou Stack Exchange, skupině webů Q & A založených na komunitě.
Screenshot s laskavým svolením screenshotů xmodulo / Linux( Flickr).
Otázka Otázka
Reader user2202911 chce vědět, jak webové servery naslouchají novým požadavkům:
Snažím se pochopit podrobnější informace o tom, jak fungují webové servery. Chci vědět, jestli server, například Apache, neustále vyhledává nové žádosti nebo funguje nějakým systémem přerušení.Je-li to přerušení, co způsobuje přerušení?Je to ovladač síťové karty?
Jak webový server naslouchá novým požadavkům?
Odpovědí odpověď
přispěvatele SuperUser Greg Bowser má pro nás odpověď:
Krátká odpověď je nějaký systém přerušení.V podstatě používají blokování I / O, což znamená, že spí( blokují) při čekání na nová data.
- Server vytvoří sluchátkový soket a při čekání na nová připojení blokuje blokování.Během této doby jádro přenáší proces do stavu přerušení spánku a spouští další procesy. To je důležitý bod;nepřetržitý průběh průzkumu procesu by způsobil ztrátu zdrojů CPU.Jádro je schopno efektivněji využívat systémové prostředky tím, že zablokuje proces, dokud nebude pracovat.
- Když do sítě přicházejí nová data, síťová karta vydá přerušení.
- Vidí-li síťová karta přerušení, jádro prostřednictvím ovladače síťové karty čte nová data ze síťové karty a ukládá je do paměti.(Toto musí být provedeno rychle a je obecně řešeno uvnitř obslužného programu přerušení.)
- Jádro zpracovává nově přijímaná data a sdružuje je s konektorem. Proces blokující tento soket bude označen jako spustitelný, což znamená, že je nyní možné spustit. Není nutně okamžitě spuštěn( jádro se může rozhodnout, že další procesy budou spuštěny).
- Ve svém volném čase jádro probudí blokovaný proces webového serveru.(Protože je nyní spuštěn.)
- Proces webového serveru pokračuje v provádění, jako kdyby uplynul žádný čas. Jeho blokovací systémový hovor se vrátí a zpracovává všechna nová data. Pak přejděte ke kroku 1.
Musíte přidat něco k vysvětlení?Zní to v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.