Quando eseguire un codice in un processo separato

0

Sto cercando di elencare le volte in cui è utile eseguire codice in un processo separato. La seguente breve lista lo copre?

  1. Velocità : l'ovvio.

    • Multiprocesso / parallelismo distribuito
    • Processo di lavoro, processo di GUI per reattività dell'interfaccia utente ecc.
  2. Sicurezza :

    • Nessuno spazio di memoria condivisa diminuisce i vettori di attacco
    • Parte del (ma non tutto) sandboxing
  3. Possibilità di interrompere in timeout : questo è un po 'un hack

    • Piuttosto che riempire tutto il codice con i controlli per vedere se hanno raggiunto una condizione di timeout, eseguirlo nel suo stesso processo e avere un timer watch dog nel processo principale, che attiverà e interromperà SIGINT o non riuscirà a SIGKILL su il processo che esegue il lavoro dopo un timeout.
  4. Librerie non affidabili

    • A volte ti capita di dover utilizzare una libreria che non è affidabile.
    • Puoi racchiudere quella libreria nel suo processo (attore)
    • Ad esempio:
      • potrebbe perdere memoria internamente: risolvibile riavviando il processo c
      • Potrebbe, in certi casi d'angolo, solo segfault. L'esecuzione nel proprio processo lo fa arrestare senza interrompere l'intero processo. Quindi puoi fallire con garbo o riavviare il processo di wrapper.
    • Ovviamente si vorrebbe evitarlo sostituendo la libreria. Ma non si può sempre farlo immediatamente. E a volte come decisione aziendale potrebbe non valerne la pena.
  5. Strumenti esterni

    • alcuni strumenti sono interi programmi che vengono eseguiti sulla riga di comando tramite. Ovviamente corrono nel loro stesso processo

Copre tutti i casi?

    
posta Lyndon White 11.05.2017 - 04:53
fonte

1 risposta

1

Aggiungi all'elenco:

  1. Incompatibilità linguistica di programmazione

    È necessario utilizzare una libreria di terze parti per un'attività specifica che ha solo un'interfaccia C mentre il resto del programma è in Java.

  2. Incompatibilità della versione del compilatore

    È necessario utilizzare una libreria di terze parti per un'attività specifica disponibile solo con una build VS2010 mentre il resto del programma si trova in VS2015.

  3. Distribuzione indipendente

    Potresti trovare un valore nella distribuzione / vendita dei due programmi in modo indipendente.

risposta data 11.05.2017 - 05:56
fonte

Leggi altre domande sui tag