No, decisamente concomitante è diverso dal parallelo. ecco esattamente come
La concorrenza si riferisce alla condivisione di risorse nello stesso intervallo di tempo. Ad esempio, diversi processi potrebbero condividere la stessa CPU o condividere la memoria o un dispositivo I/O.
Ora, per definizione, due processi sono concomitanti se uno solo se il secondo inizia l'esecuzione prima che il primo sia terminato (sulla stessa CPU). Se i due processi vengono entrambi eseguiti sulla stessa CPU, ad esempio per CPU single-core, i processi sono concomitanti ma non paralleli: in questo caso, il parallelismo è solo virtuale e si riferisce al sistema operativo che esegue la condivisione dell'ora. Il sistema operativo sembra eseguire diversi processi contemporaneamente. Se è presente una sola CPU single-core, è possibile eseguire solo un'istruzione da un solo processo in un determinato momento.Poiché la scala temporale umana è miliardi di volte più lenta di quella dei computer moderni, il sistema operativo può passare rapidamente da un processo all'altro per dare l'aspetto di diversi processi in esecuzione contemporaneamente.
Se si eseguono i due processi su due diverse CPU, i processi sono paralleli: non c'è condivisione nello stesso intervallo di tempo, poiché ogni processo viene eseguito sulla propria CPU. Il parallelismo in questo caso non è virtuale ma fisico. Vale la pena notare che l'esecuzione su core diversi della stessa CPU multi-core non può ancora essere classificata come completamente parallela, poiché i processi condivideranno gli stessi cache della CPU e li contesteranno.
fonte
2011-03-14 16:43:20
+1 Ottima domanda. Potrebbe essere meglio esistere su http://programmers.stackexchange.com/? 'Programmatori - Stack Exchange è per programmatori esperti interessati a discussioni soggettive sullo sviluppo del software. –
@JohnK Non penso che queste definizioni siano soggettive. –