GNU/Linux >> Znalost Linux >  >> Linux

Událostí řízený model v C se zásuvkami

"jaká je filozofie tohoto modelu"

Událost řízená znamená, že neexistuje žádné „monitorování“, ale událost sama iniciuje akci.

Obvykle je to iniciováno přerušením, což je signál do systému z externího zařízení, nebo (v případě softwarového přerušení) asynchronní proces.

https://cs.wikipedia.org/wiki/Interrupt

Zdá se, že další čtení je zde:

https://docs.oracle.com/cd/E19455-01/806-1017/6jab5di2m/index.html#sockets-40- "Interrupt-Driven Socket I/O"

Také http://cs.baylor.edu/~donahoo/practical/CSockets/textcode.html obsahuje některé příklady Sockets řízených přerušením a další příklady programování soketů.


Určitě si musíte přečíst následující:http://www.kegel.com/c10k.html. Tato stránka je dokonalým přehledem událostí řízených a asynchronních technik.

Nicméně rychlá a špinavá odpověď :událostmi řízený není ani neblokující, ani asynchronní.

Událostí řízený znamená, že proces bude monitorovat své deskriptory souborů (a sokety) a bude jednat pouze tehdy, když na nějakém deskriptoru nastane nějaká událost (události jsou:přijatá data, chyba, stalo se zapisovatelným, ...).

BSD zásuvky mají funkci "select()". Při volání bude operační systém monitorovat deskriptory a vrátí se do procesu, jakmile dojde k nějaké události na jednom z deskriptorů.

Výše uvedené webové stránky však mají mnohem lepší popisy (a podrobnosti o různých rozhraních API).


Linux
  1. Proč substituce procesu Bash nefunguje s některými příkazy?

  2. Oprava binárního kódu pomocí Dd?

  3. Podivná složka v /tmp s názvem Ssh-*?

  1. Přepnout rozložení klávesnice pomocí I3?

  2. Rozbočovač USB 3.0 nefunguje s některými zařízeními na Ubuntu 18.04?

  3. jak zakázat přihlášení SSH pomocí hesla pro některé uživatele?

  1. Jak nainstalovat AWStats s některými pluginy na server s ISPConfig

  2. Jak nastavit Apache pomocí události MPM a PHP-FPM na Ubuntu 20.04

  3. Plánovač událostí MySQL