Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Benvenuti al blog elettrico di pepy91. Visita il suo
Foto Utente

Elettronica & Informatica

Nozioni imparate nel corso di Elettronica e Informatica


Gli ultimi articoli di pepy91

pubblicato 11 anni fa, 429 visualizzazioni

Salve amici di Electroyou. Poiché in questi mesi sono stato parecchio impegnato dall'università, tra esami e professori, non ho potuto concludere la serie di articoli riguardante l'argomento specificato dal titolo. Finalmente oggi ho trovato un po' di tempo da dedicare a questo sito meraviglioso, che, ripeto, tanto mi ha aiutato e spero continuerà a farlo. Buona lettura!

I SEMAFORI GENERALIZZATI

Se i thread lavorano troppo velocemente, la coda dei processi sarà vuota e i thread usciranno. Se nuovi processi vengono messi in coda più tardi, non ci saranno thread per trattarli.Abbiamo bisogno dunque di un meccanismo per bloccare i thread quando la coda è vuota finché nuovi processi sono disponibili. I semafori sono la soluzione. Un semaforo è un contatore che può essere usato per sincronizzare più thread. Cosi come per un mutex, GNU/Linux garantisce che verificare o modificare il valore di un semaforo può essere fatto senza pericolo, senza creare cioè una race condition.

[...]

pubblicato 13 anni fa, 442 visualizzazioni

I SEMAFORI

La causa della maggior parte dei bugs che coinvolgono i threads è che i threads accedono agli stessi dati. Spesso i programmi pieni di bug contengono un codice che agirà solo se un thread viene schedulato più spesso, o prima, di un altro thread. Questi bug sono chiamati race conditions. Supponiamo che un programma abbia una serie di processi in coda che sono trattati da numerosi thread concorrenti. La coda dei processi è rappresentata da una lista di oggetti di tipo struct job. Dopo che ogni thread termina un'operazione, controlla la coda per vedere se è disponibile un altro processo. Se la coda dei processi (job_queue) è non-nulla, il thread rimuove la testa di quella lista e imposta job_queue per il prossimo processo sulla lista. Vediamo il codice della FUNZIONE THREAD PER TRATTARE PROCESSI DALLA CODA

[...]

pubblicato 13 anni fa, 908 visualizzazioni

I THREADS

I threads, come i processi, sono un meccanismo che permette ad un programma di fare più di una cosa nello stesso momento. Concettualmente, un thread esiste dentro un processo. Quando invochiamo un programma, Linux crea un nuovo processo e in quel processo crea un singolo thread, che esegue il programma sequenzialmente. Quel thread può creare altri threads, e, insieme, eseguono lo stesso programma nello stesso processo, ma ogni thread esegue una parte diversa del programma nel tempo dato. Quando un programma crea un altro thread, non viene copiato nulla (a differenza di quanto avviene nei processi). Il thread creante e quello creato condividono lo stesso spazio di memoria, i file descrittori e altre risorse del sistema. Se un thread cambia il valore di una variabile, per esempio, l'altro thread in seguito vedrà il valore modificato.

[...]

pubblicato 13 anni fa, 698 visualizzazioni

Salve amici di ElectroYou. Poichè molti di voi mi stanno aiutando a comprendere meglio il mondo dell'elettronica, tra componenti e circuiti che a me non stanno molto simpatici, ho deciso di "ripagare" questo fantastico sito con delle "lezioni" riguardo la gestione dei processi e dei thread in un sistema Linux, argomento che a me piace parecchio. Non so quanti di voi ne faranno uso, però qualora ne abbiate bisogno, posso garantirvi che a me sono servite parecchio. Buona Lettura.

Un programma in esecuzione è chiamato processo. Quando viene invocato un comando in una shell (durante quindi un processo), il programma corrispondente viene eseguito in un nuovo processo. Molte delle funzioni che manipolano processi sono dichiarate negli header file <sys/types.h> e <unistd.h>. Ogni programma in esecuzione usa uno o più processi. Ogni processo in un sistema Linux è identificato dal suo unico Process ID, cioè il pid. Il pid viene assegnato sequenzialmente da Linux quando viene creato un nuovo processo. Ogni processo inoltre ha un processo genitore, identificato dal suo Parent Process ID, o ppid.

[...]
1

Chi sono

pepy91 - profilo

Nome: Pietro Pino

Reputation: 765 2 10

Bio: Dottore in Ingegneria Elettronica e Informatica presso l'Università degli Studi di Messina.

I miei ultimi post dal forum

Vai al Forum


Cerca nel blog di pepy91