NodeJS come gestori di interrupt?

0

Ho iniziato a programmare di nuovo nei giorni DOS. Uno dei miei primi progetti riguardava l'override della routine di interrupt di tastiera con la mia. Ora sto provando NodeJS per aggiornarmi, e sento che c'è una somiglianza tra il design non bloccante di NodeJS e la mia vecchia esperienza con le routine di servizio di interrupt (ISR). La mia ipotesi è che la somiglianza sarebbe l'ISR della tastiera che aspetterebbe un segnale di input da tastiera premuto dalla tastiera, mentre NodeJS attende una richiesta web. Quando arriva l'input, sia NodeJS che ISR devono affrettarsi a gestire la richiesta e dire che sono fatti nel caso in cui arrivi un nuovo input. Cioè, c'è una penalità per un compito legato alla CPU che rallenta la successiva risposta web o il prossimo input da tastiera. Questa osservazione è una comprensione ragionevole? Sono nuovo di NodeJS quindi forse mi manca una differenza importante o semplicemente errata in qualche modo fondamentale.

    
posta jlim 29.09.2015 - 00:14
fonte

1 risposta

2

Sort of.

Le routine di servizio di interruzione sono in realtà solo ganci hardware in modo che la tastiera o un altro dispositivo hardware possa effettuare una chiamata di subroutine al sistema operativo mantenendo un grado di isolamento. C'è molto di più, ovviamente, e se il metodo sembra essere asincrono, è solo perché i sistemi operativi allora erano in grado di eseguire attività di switching, o persino multitasking cooperativo

Il meccanismo di funzionamento di Node.JS è leggermente diverso. Node.JS ha un ciclo di eventi che riceve richieste, ognuna delle quali assegna a un nuovo thread sotto le copertine. Un gestore asincrono è registrato per ricevere il risultato finale delle richieste. Tutto accade a un livello molto più alto di astrazione.

    
risposta data 29.09.2015 - 03:29
fonte

Leggi altre domande sui tag