Torna indietro   Hardware Upgrade Forum > Componenti Hardware > Processori

Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart
Mentre Ubisoft vorrebbe chiedere agli utenti, all'occorrenza, di distruggere perfino le copie fisiche dei propri giochi, il movimento Stop Killing Games si sta battendo per preservare quella che l'Unione Europea ha già riconosciuto come una forma d'arte. Abbiamo avuto modo di parlare con Daniel Ondruska, portavoce dell'Iniziativa Europa volta a preservare la conservazione dei videogiochi
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Abbiamo provato il nuovo Galaxy S25 Edge, uno smartphone unico per il suo spessore di soli 5,8 mm e un peso super piuma. Parliamo di un device che ha pro e contro, ma sicuramente si differenzia dalla massa per la sua portabilità, ma non senza qualche compromesso. Ecco la nostra prova completa.
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-08-2010, 15:09   #1
Walkingcontradiction
Member
 
Iscritto dal: Oct 2007
Messaggi: 84
multi-core = multi-thread != multi-task giusto?

A chi sostiene che gli esacore (o i prossimi 8 core) purtroppo non vengono sfruttati come si deve dagli applicativi attuali, viene risposto spesso con frasi del tipo: "ma con tutti i processi aperti in windows più core si hanno meglio è", "se hai tanti processi aperti riesci a sfruttare meglio tutti i core", ecc.
Io nel mio piccolo penso che queste affermazioni siano assolutamente erronee.
Sbaglio?
Mi spiego (scusate la terminologia non proprio forbita):
Un processo in esecuzione ha un proprio spazio di memoria (una propria tabella delle pagine, ecc), oltre ad una serie di altre informazioni/risorse associate/allocate. Per brevità si dice che un processo è associato ad un proprio contesto. Quando lo scheduler (anzi più precisamente il dispatcher) mette in esecuzione un altro processo (sospendendo temporaneamente il prcedente) effettua un cambio di contesto. In particolare associa una nuova tabella delle pagine con conseguente cambio dello spazio di memoria (sto parlando di memoria virtuale non è il caso di addentrarmi troppo). Ora, secondo me, ad ogni istante può esserci un solo processo in esecuzione in quanto il sistema operativo, ma anche l'hw, non sono predisposti a gestire più contesti contemporaneamente. Come si suol dire, ad ogni istante un solo processo ha il possesso del processore. I multi-core diventano utili nel momento in cui tali processi possiedono più di un flusso di esecuzione (threads). In questo caso i flussi eseguiti in maniera concorente vengono eseguiti in maniera realmente parallela e non a divisione di tempo come avviene nel caso di un normale single-core. Questo è senza dubbio un vantaggio in termini di tempo di esecuzione, ma sempre nell'ambito dell'esecuzione di un singolo processo. Da qui discende la mia obiezione a chi pensa che i vari processi attivi sulla macchina vengano assegnati ai vari core disponibili. Non mi pare proprio possibile.
Che ne pensate?
Walkingcontradiction è offline   Rispondi citando il messaggio o parte di esso
Old 15-08-2010, 16:22   #2
Jo3
Senior Member
 
L'Avatar di Jo3
 
Iscritto dal: Jun 2001
Messaggi: 1299
Quote:
Ora, secondo me, ad ogni istante può esserci un solo processo in esecuzione in quanto il sistema operativo, ma anche l'hw, non sono predisposti a gestire più contesti contemporaneamente.
Non fare l'errore di pensare che tutti i processi siano sempre in stato di pronto per essere eseguiti dalla CPU.

E' vero : alla fin fine, la cpu (single core) esegue un processo fisico per volta : PERO' :

I processi in esecuzione a volte rimangono in attesa (coda processi in attesa) proprio perche' la CPU e' molto piu veloce rispetto ai tempi di attesa delle periferiche (prova ad immaginare il tempo-uomo paragonato al tempo-macchina : una persona impega SECONDI per premere un solo tasto e nel frattempo la cpu e' andata avanti di miliardi di istruzioni).
Quel tempo che la cpu spreca per attendere che il processo si svegli e' un tempo morto per la cpu : per questo motivo alla fine la resa su un sistema multi processo e' molto piu elevata

Molto meglio mandare il processo "a nanna" (nella coda dei processi in attesa

Pertanto il fatto che in un singolo processore ci sia un solo processo "REALE" non vuol dire che sia un collo di bottiglia : anzi : molti processi rimangono nella coda dei processi in attesa proprio perche' stanno attendendo l'input da periferiche esterne.

Pertanto avere piu cpu significa avere piu' possibilità nel momento in cui alcuni processi che erano in attesa vengono spostati nella coda dei processi pronti dallo scheduler.

INOLTRE

Un processo non e' detto che quando va in esecuzione debba per forza interessare le periferiche "piu lente" : ovvero quelle che hanno un solo controller e non puo essere virtualizzato. (es : il disco fisso e' unico, pertanto il controller viene utilizzato da uno e un solo processo).

A volte il processo esegue solo delle operazioni in memoria, pertanto non esiste collo di bottiglia.


P.S :
Non a caso, i multi core aumentano la frequenza quando capita una situazione simile, consentendo nei "Burst" di processi pronti di smaltire prima i processi.
__________________

Referenti in Compravendite Ognuno sceglie le cause per cui combattere in base alla propria statura.

Ultima modifica di Jo3 : 15-08-2010 alle 16:29.
Jo3 è offline   Rispondi citando il messaggio o parte di esso
Old 15-08-2010, 16:29   #3
calabar
Senior Member
 
L'Avatar di calabar
 
Iscritto dal: Oct 2001
Messaggi: 14734
Mi chiedo su quale base tu affermi questo:
Quote:
Originariamente inviato da Walkingcontradiction Guarda i messaggi
Ora, secondo me, ad ogni istante può esserci un solo processo in esecuzione in quanto il sistema operativo, ma anche l'hw, non sono predisposti a gestire più contesti contemporaneamente.
Sinceramente credo che i sistemi operativi attuali siano perfettamente in gradi di gestire, su core differenti, più processi in contemporanea.
Certamente alcune risorse hardware rimarranno condivise, ma se il loro accesso non è limitante, questo non dovrebbe creare problemi.

Del resto il passaggio tra "thread" e "processi" non è così definito.
Per semplicità diciamo che possiamo definire thread le varie istanze fino a quando esse hanno delle risorse in comune. Insomma, a seconda degli elementi in comune, potremmo avere un'entità che più si avvicina al concetto di thread o di processo ""puro".
Oltretutto la gestione dei thread da parte dei sistemi operativi può essere molto differente: linux per esempio non distingue tra thread e processi (i thread vengono gestiti da funzioni di libreria), quindi in che modo potrebe esserci una differenza sostanziale?

Rifletti su questa prova:
prendiamo per esempio un programma assolutamente monocore come il SuperPI.
Cosa succede se su una macchina dotata di processore quadcore esegui 4 istanze del programma?
Se il sistema o l'hardware non fossero in grado gestire simultaneamente più processi su più core, allora avresti un netto rallentamento nell'esecuzione delle istanze di SuperPI rispetto all'esecuzione di un'istanza singola.
In caso contrario, invece, la velocità di esecuzione di ogni istanza dovrebbe essere abbastanza simile all'esecuzione di una sola istanza sulla macchina.
calabar è offline   Rispondi citando il messaggio o parte di esso
Old 15-08-2010, 16:35   #4
Jo3
Senior Member
 
L'Avatar di Jo3
 
Iscritto dal: Jun 2001
Messaggi: 1299
Ti faccio un esempio molto piu pratico : prova ad immaginare un cuoco che sta curando n cibi in cottura in n pentole : ogni cibo viene posto a cuocere e quando e' pronto la pentola in cui e' viene tolta dal fuoco e il suo posto viene preso da un'altro cibo (e un'altra pentola).

Il cuoco si aggira tra i fornelli controllando ciclicamente tutte le pentole : quelle pronte, le tira giu dal fuoco, le processa (nel senso che valuta se il cibo e' mangiabile) e poi le manda alla mensa.

Prova ora ad immaginare lo stesso cuoco che rimane in attesa sulla prima pentola, fino a che il cibo al suo interno e' cotto, e poi passa alla seconda pentola, fino a che il cibo è cotto .

Mi pare ovvio che il primo sistema (multi task) e' molto piu efficace.

Prova ora ad immaginare di avere non un cuoco, ma4 4/6 cuochi : mi sembra che il processo di valutare quale cibo è pronto e processarlo, sia molto piu veloce.


la cpu in realtà non fa nient'altro che aspettare che i "cibi" siano Pronti, (pescandoli dalla coda dei processi pronti) per poi processarli

avere piu cpu (piu cuochi) significa processare molto piu velocemente i cibi.


Ovviamente la porta d'uscita alla mensa e' unica : ma visto che i cibi impiegano dai 10 ai 20 minuti per essere cotti, contro i 2/3 secondi di processo, il rischio di imbottigliamento sulla porta che da alla mensa (= le risorse quali il disco fisso) e' molto basso (statisticamente).
__________________

Referenti in Compravendite Ognuno sceglie le cause per cui combattere in base alla propria statura.
Jo3 è offline   Rispondi citando il messaggio o parte di esso
Old 15-08-2010, 16:43   #5
Jo3
Senior Member
 
L'Avatar di Jo3
 
Iscritto dal: Jun 2001
Messaggi: 1299
Quote:
I multi-core diventano utili nel momento in cui tali processi possiedono più di un flusso di esecuzione (threads). In questo caso i flussi eseguiti in maniera concorente vengono eseguiti in maniera realmente parallela e non a divisione di tempo come avviene nel caso di un normale single-core.
P.S : questa affermazione e' errata : i processi MONO-CORE sfruttano al meglio il multi threading (se il programma e' stato studiato pre sfruttare le caratteristiche multi threading della macchina), poiche sfruttano al meglio l'unica CPU.

I sistemi multi core invece hanno piu cpu pertanto il sistema multi thread non e' piu efficiente, visto che il multi thread e' stato pensato per sfruttare in parallelo e al meglio l'unica CPU : una volta che hai piu core, questo sistema decade.

http://it.wikipedia.org/wiki/Multithreading

Io direi che l'equazione a titolo di questa discussione vada riscritta cosi :

Multi Core = Multi Task != Multi Thread.
Mono Core = Multi Task = Multi Thread
__________________

Referenti in Compravendite Ognuno sceglie le cause per cui combattere in base alla propria statura.

Ultima modifica di Jo3 : 15-08-2010 alle 16:47.
Jo3 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Intervista a Stop Killing Games: distruggere videogiochi è come bruciare la musica di Mozart Intervista a Stop Killing Games: distruggere vid...
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione Samsung Galaxy S25 Edge: il top di gamma ultraso...
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
La Corea del Sud vorrebbe costruire una ...
Rilasciati i primi risultati delle anali...
Robot umanoidi low cost? Unitree ci prov...
Non solo Rocket Lab, anche Avio potrebbe...
Chips Act UE: 41,5 milioni di euro a Eph...
Ryzen Threadripper 9000 al debutto il 31...
Nuovi coupon nascosti Amazon (aggiorname...
Chatbot e salute mentale: nascono i prim...
Prezzi in ribasso su Amazon su tante com...
Eureka J15 Ultra spiazza la concorrenza ...
Stufi di tagliare il prato? Questi robot...
Anche Dyson si adegua: sconti fino a 200...
Mi sono rotto un dito, e le avventure gr...
Tutto vero: costa solo 899€ il portatile...
Lefant M330Pro da 5.000Pa a 104€ o i due...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v