Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max mette un pannello IPS da 13 pollici con risoluzione 2,5K e refresh a 120 Hz davanti a una batteria da 10.100 mAh e a quattro altoparlanti. Il listino parte da 399,90 euro, per un progetto molto chiaro e ambizioso: schermo ampio, buon audio e giornate lontano dalla presa, a un prezzo che non pesa sul portafoglio
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-03-2003, 17:38   #1
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
context switch tra thread

Se è la sezione sbagliata spostatemi pure...
Mi chiedevo di preciso cosa succede nel context switching tra thread...
Tra processi si salva (e si carica) PC, registri e PSW... Tra threads solo un sottoinsieme (tipo PC, SP e PSW) ???

Grazie e ciao...
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 00:30   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Fra thread si dovrebbe fare allo stesso modo di come si fa fra i processi...
L'unica differenza dovrebbe stare nel fatto che non si invalidano i dati presenti in cache...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 12:48   #3
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Anch'io pensavo qualcosa di simile ma.... il fatto che condividano segmento dati e segmento codice magari fa sì che non debbano essere caricati il registro base e limite per questi due segmenti....
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 13:01   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
A parte che la segmentazione con i processori a 32 bit non viene più usata, ma in ogni caso l'indirizzo di un registro segmento potrebbe venire cambiato da uno dei thread del processo e quindi andrebbe comunque salvato e ricaricato...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 13:05   #5
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Quote:
Originally posted by "cionci"

A parte che la segmentazione con i processori a 32 bit non viene più usata
Come???
Non so nulla a riguardo spiegati meglio...
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 13:06   #6
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Quote:
Originally posted by "cionci"

ma in ogni caso l'indirizzo di un registro segmento potrebbe venire cambiato da uno dei thread del processo e quindi andrebbe comunque salvato e ricaricato...
Domanda: per modificare la base di un segmento non bisogna essere in kernel mode???
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 13:39   #7
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originally posted by "cionci"


L'unica differenza dovrebbe stare nel fatto che non si invalidano i dati presenti in cache...
mmm no, la cache _può_ anche contenere pagine di altri _processi_ (non thread), se l'accesso in memoria del thread corrente non si "succhia" tutta la cache. Ovviamente c'è una maggiore possibilità che due thread trovino in cache la stessa cacheline di memoria alla quale ambedue stanno accedendo, ma questa non è sempre una buona cosa (*)
La vera grande differenza è che più thread condividono le stesse tabelle di paginazione, e...ti sembra poco



(*) Nei sistemi SMP, l'accesso in scrittura su una cacheline da parte di un processore forza gli altri a invalidare una eventuale memoria in cache coincidente fisicamente con la cacheline toccata. Anche se le variabili cui accedono i diversi thread sono diverse tra loro, è buona norma allinearle alla dimensione della cacheline, per lo stesso motivo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 14:03   #8
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Quote:
Originally posted by "ilsensine"


La vera grande differenza è che più thread condividono le stesse tabelle di paginazione, e...ti sembra poco
Solo il segmento stack è diverso per i thread?
Il fatto che condividano le stesse tabelle di paginazione, significa che il vantaggio sta appunto nella presenza in cache delle stesse tabelle o altro?
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 14:39   #9
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originally posted by "soalle"


Solo il segmento stack è diverso per i thread?
No è lo stesso, solo esp punta a due zone differenti. Un thread può accedere alla zona di memoria stack dell'altro, senza alcun problema.

Quote:
Il fatto che condividano le stesse tabelle di paginazione, significa che il vantaggio sta appunto nella presenza in cache delle stesse tabelle o altro?
Caricare le tabelle di paginazione è una operazione molto costosa, che implica il flush del tlb, cambio del tss e altre cose. Molto più rapido e "indolore" passare da un thread all'altro, principalmente devi solo salvarti lo "stato" (registri) di ogni singolo thread (ci sono altre operazioni, ma non costose come il cambio delle tabelle).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 15:33   #10
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Quote:
Originally posted by "ilsensine"


No è lo stesso, solo esp punta a due zone differenti. Un thread può accedere alla zona di memoria stack dell'altro, senza alcun problema.
Ma allora cosa mi garantisce che lo stack di un thread non vada ad invadere lo stack di un altro thread (involontariamente intendo... tipo un sacco di chiamate innestate o la richiesta di molta memoria allocata dinamicamente)

Quote:
(ci sono altre operazioni, ma non costose come il cambio delle tabelle).
Cosa intendi???
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 16:07   #11
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originally posted by "soalle"


Ma allora cosa mi garantisce che lo stack di un thread non vada ad invadere lo stack di un altro thread (involontariamente intendo... tipo un sacco di chiamate innestate o la richiesta di molta memoria allocata dinamicamente)
Infatti c'è una dimensione massima che gli stack possono allocare

Quote:
Cosa intendi???
Ad es. in linux ogni thread ha un "contesto" differente dagli altri (signal handler, ecc.) che deve comunque essere cambiato quando passi da un thread all'altro.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 16:08   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "ilsensine"

Caricare le tabelle di paginazione è una operazione molto costosa, che implica il flush del tlb, cambio del tss e altre cose. Molto più rapido e "indolore" passare da un thread all'altro, principalmente devi solo salvarti lo "stato" (registri) di ogni singolo thread (ci sono altre operazioni, ma non costose come il cambio delle tabelle).
Chiaro, ma io credevo che volesse parlare solo dello stato del processore, non dele tabelle del sistema operativo... E' chiaro che due thread facendo parte dello stesso processo ne condividono parte delle informazioni all'interno del sistema operativo...ed in particolar modo le tabelle della paginazione...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 16:21   #13
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Infatti cr0 (che contiene la base per le tabelle di paginazione) fa parte dello stato del processore
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 16:29   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "ilsensine"

Infatti cr0 (che contiene la base per le tabelle di paginazione) fa parte dello stato del processore
Mmmmhh... E' un rigestro della CPU ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 16:32   #15
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Sì, controlla varie cose, tra cui la base della page directory
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 16:40   #16
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
(...errata corrige: cr3)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2003, 16:42   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Bene a sapersi...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2003, 12:06   #18
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Quote:
Originally posted by "cionci"

A parte che la segmentazione con i processori a 32 bit non viene più usata
Cosa intendevi con questo???
Che usano segmentazione paginata o altro???
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2003, 12:11   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Che di fatto i programmi vedono l'intera memoria a 32 bit come se fosse lineare...anche se in realtà c'è la paginazione...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2003, 12:32   #20
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Ma allora il cosidetto "segmentation fault" che viene fuori nei miei programmi sotto linux che signifaicato ha???
soalle è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
Nuova Vespa Elettrica 2027: stesso look,...
Samsung Galaxy in difficoltà: la One UI ...
DAZN MyClubPass, Netflix e HBO Max a 23 ...
Amazon Seconda Mano, è partito lo...
Musk sgancia la bomba su Tesla: pochi mo...
Black Friday Amazon, le offerte sono par...
Synaptics minaccia uno sviluppatore: con...
Polestar: nuovo partner a Milano, showro...
Amazon, crolla il prezzo della Blink Arc...
LG annuncia i nuovi MRGB9M: i primi TV M...
HUAWEI lancia le FreeBuds SE 5 MAX: canc...
Broadcom aggiorna VCF con nuove funziona...
Polestar Formula 2030: ecco la sportiva ...
Appuntamento a mezzanotte: coupon fino a...
Infineon produce i primi chip in Carburo...
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: 13:51.


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