Informazioni sul documento
- Università
- Politecnico di Milano
- Corso di laurea
- Computer Engineering
- Materia
- Architettura dei Calcolatori e Sistemi Operativi
- Classificazione
- Esercizi · Divisi per argomento
- Formato originale
- Testo
- Testo ricercabile
Divisi per argomento di Architettura dei Calcolatori e Sistemi Operativi per il corso di Computer Engineering presso Politecnico di Milano. Materiale proveniente dall’archivio storico Studwiz e classificato per la consultazione online.
Divisi per argomento di Architettura dei Calcolatori e Sistemi Operativi per il corso di Computer Engineering presso Politecnico di Milano. Materiale proveniente dall’archivio storico Studwiz e classificato per la consultazione online.
Qualità dell’importazione: il testo è stato estratto direttamente dal documento originale.
Passaggi rappresentativi riconosciuti nelle diverse parti del materiale. Il testo completo resta presente nella pagina per la ricerca, mentre l’anteprima compatta rende più semplice la lettura.
Temi AXO su thread e programmazione concorrente pp. 1 / 25 RACCOLTA DI ESERCIZI SU THREAD E PROGRAMMAZIONE CONCORRENTE I docenti di AXO A.A. 2015-16 Temi AXO su thread e programmazione concorrente pp. 2 / 25 esercizio su thread e parallelismo – mercoledì 21 novembre 2012 Si consideri il programma C seguente (gli “#include” sono omessi): pthread_mutex_t law = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t order = PTHREAD_MUTEX_INITIALIZER; sem_t mess; int global = 0; void one (void arg) { int local = 0; pthread_mutex_lock (&law); sem_post (&mess); local = 1; / statement A / pthread_mutex_unlock (&law); global = 1; pthread_mutex_lock (&order); local = 3; / statement B / pthread_mutex_unlock (&order); return (void ) global; } / end one / void two (void arg) { int local = 0; pthread_mutex_lock (&order); global = 2; pthread_mutex_lock (&law); sem_wait (&mess); / statement C / local = (int) arg; pthread_mutex_unlock (&law); pthread_mutex_unlock (&order); return NULL; } / end two / void main ( ) { pthread_t th_1, th_2; sem_init (&mess, 0, 0); pthread_create (&th_2, NULL, two, (void ) 2); pthread_create (&th_1, NULL, one, NULL); pthread_join (th_1, &global); / statement D / pthread_join (th_2, NULL); return; / end main / Temi AXO su thread e programmazione concorrente pp. 3 / 25 Si completi la tabella qui sotto indicando lo stato di esistenza della variabile locale nell’istante di tempo specificato da ciascuna condizione, così: se la variabile esiste, si scriva ESISTE; se non esiste, si scriva NON ESISTE; e se può essere esistente o inesistente, si scriva PUÒ ESISTERE. Ogni casella della tabella va riempita in uno dei tre modi (non va lasciata vuota). Si badi bene alla colonna condizione: con subito dopo statement X si chiede lo stato che la variabile…
Prima pagina del documento.