














Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Slide utili per capire la programmazione multithreading in java
Tipologia: Slide
1 / 22
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!















^ È lÈl’’ unitàunità di esecuzionedi esecuzione^ all’all’interno del SOinterno del SO
^ Solitamente, esecuzioneSolitamente, esecuzione^ sequenzialesequenziale^ (istruzioni(istruzioni vengono eseguite in sequenza, secondo l’vengono eseguite in sequenza, secondo l’ordineordine specificato nel testo del programma)specificato nel testo del programma)
^ SO multiprogrammato consenteSO multiprogrammato consente^ l’l’esecuzioneesecuzione concorrente di piconcorrentedi piùù processiprocessi
D’ D’ora in poi faremo implicitamente riferimentoora in poi faremo implicitamente riferimento sempre al caso di SO multiprogrammatisempre al caso di SOmultiprogrammati
Sistemi Operativi L-A: Processi e thread 3
Programma = entitProgramma = entitàà passivapassiva Processo = entitProcesso = entitàà attivaattiva
Il processo è Il processoè rappresentato da:rappresentato da:
codicecodice (( texttext ) del programma eseguito) del programma eseguito
dati:dati: variabili globali
program counter
alcuni registri di CPU
^ stackstack :^ parametri, variabili locali a funzioni/procedure
Processo = {PC, registri,Processo = {PC, registri, stackstack,, text, dati}text, dati}
Inoltre, a un processo possono essere associate Inoltre, a un processo possono essere associate delledelle risorse di SOrisorse di SO. Ad esempio:. Ad esempio:
file apertifile aperti
connessioni di reteconnessioni di rete
altri dispositivi di I/O in usoaltri dispositivi di I/O in uso
......
Sistemi Operativi L-A: Processi e thread 7
Transizioni di stato:Transizioni di stato:
init
ready running
waiting
terminated
Assegnazione CPU
Revoca CPU Attesa di evento un evento
terminazione
creazione
processo attivo
un solo processo (al massimo) si trova nello stato running più processi possono trovarsi negli stati ready e waiting necessità di strutture dati per mantenere in memoria le informazioni su processi in attesa
Sistemi Operativi L-A: Processi e thread 9
^ Ad ogni processo viene associata una struttura datiAd ogni processo viene associata una struttura dati (descrittore):(descrittore): Process Control BlockProcessControl Block (^) (( PCBPCB )) PCBPCB contiene tutte lecontiene tutte le informazioni relative alinformazionirelative al processoprocesso ::
stato del processo identificatore del processo PC
registri
limiti di memoria file aperti ...
Il sistema operativoIl sistema operativo gestisce i PCB di tutti igestisce i PCB di tutti i processi, organizzandoli inprocessi, organizzandoli in opportune strutture datiopportune strutture dati (ad(ad esempioesempio codecode di processi)di processi)
Sistemi Operativi L-A: Processi e thread 13
quantità di memoria fisica può essere minore della somma delle dimensioni degli spazi logici di indirizzi da allocare a ciascun processo grado di multiprogrammazione non è, in generale, vincolato dalle esigenze di spazio dei processi
in modo da consentire l’esecuzione di altri processi
decidedecide a quale processoa quale processo (^) assegnare la CPUassegnare la CPU (scheduling di CPU)(scheduling di CPU) effettua ileffettua il cambio di contesto (contextcambio di contesto(context switchswitch))
Sistemi Operativi L-A: Processi e thread 15
Quando avviene un Quando avviene un cambio di contestocambio di contesto tra un processo Ptra un processo P (^) ii ad unad un processo Pprocesso P^ i+1i+1 (ovvero, P(ovvero, P^ ii cede l’cede l’uso della CPU a Puso della CPU a P^ i+1i+1 ):):
Sistemi Operativi L-A: Processi e thread 19
strategia di gestione dellastrategia di gestione della ready queuereadyqueue dipende dalledipende dalle politiche (algoritmi) di politiche(algoritmi) di schedulingscheduling adottate dal SOadottate dal SO (parleremo di algoritmi di scheduling nelle prossime lezioni)
primo ultimo
PCB (^) i PCB^ j PCB^ k
Sistemi Operativi L-A: Processi e thread 21
Sistemi Operativi L-A: Processi e thread 25
padre
figlio
creazione ( fork )
...
init
shell (^) shell
Processo 1
Processo 2
Processo 3
Sistemi Operativi L-A: Processi e thread 27
concorrenza
è figlio di un altro processo può essere a sua volta padre di processi
il padre può rilevare il suo stato di terminazione tutti i figli terminano
Sistemi Operativi L-A: Processi e thread 31
: cambio di contesto fra thread dello stesso task ha un costo notevolmente inferiore al caso dei processi pesanti
Sistemi Operativi L-A: Processi e thread 33
SO gestisce direttamente i cambi di contesto
thread realizzati a entrambi i livelli contemporan.
Sistemi Operativi L-A: Processi e thread 37
concorrenza -> velocità suddivisione dei compiti tra processi -> modularità condivisione di informazioni
Sistemi Operativi L-A: Processi e thread 39
un processo svolge il ruolo di produttore di informazioni che verranno prelevate dall’altro processo ( consumatore ) buffer rappresenta un deposito di informazioni condiviso
msg
produttore consumatore
buffer