processore
Prof. Mariana Esposito
Introduzione
Uno degli obiettivi principali da raggiungere per la progettazione dei
sistemi operativi è l’ottimizzazione dell’utilizzo della CPU.
minimizzare i tempi di risposta
aumentare il throughput del sistema: numero di programmi eseguiti per unità
di tempo.
Definizioni
Programma insieme delle istruzioni, memorizzato su memoria di massa (è
un’entità statica);
Processo istanza di un programma in evoluzione, cioè che è eseguito dal
processore,quindi deve essere residente in memoria RAM (è un’entità
dinamica);
Task è sinonimo di “processo” (letteralmente “compito”).
Multiprogrammazione
Una tecnica di ottimizzazione del tempo della CPU:
contemporanea presenza di più programmi in memoria
Obiettivo è migliorare la gestione:
dello scheduling dei job, che consiste nell’insieme delle strategie e dei meccanismi
utilizzatiper la scelta dei programmi che dal disco devono essere caricati in RAM;
dello scheduling della CPU, che consiste nell’insieme delle strategie e dei meccanismi che
permettono di assegnare e sospendere l’utilizzo della CPU da parte dei vari programmi.
Il multitasking
L’esecuzione di un programma, quindi un processo, è costituita da una
successione di fasi:
elaborazione sulla CPU
fasi di attesa per l’esecuzione di operazioni su altre risorse del sistema (operazioni di
I/O, di caricamento dati, colloquio con periferiche ecc.) che di fatto lasciano inattiva
la CPU.
Gli stati di un processo sono associati alla sia evoluzione e alla sua
“situazione” rispetto alla CPU.
Gli stati di un processo
La schedulazione dei processi
Tra le operazioni che il sistema operativo deve effettuare rientra
l’assegnazione della CPU ai processi che sono nella ready list, cioè
nella lista dei processi pronti.
I meccanismi con i quali i processi vengono scelti prendono il nome di
politiche di gestione o di schedulazione (scheduling)
il componente del SO che si occupa di questa gestione si chiama job
scheduler
Gli stati
nuovo (new): è lo stato in cui si trova un processo appena è stato creato,
cioè l’utente richiede l’esecuzione di un programma che risiede sul disco;
esecuzione (running): il processo sta evolvendo, nel senso che la CPU sta
eseguendo le sue istruzioni, e quindi ad esso è assegnato il processore.
attesa (waiting): un processo è nello stato di attesa quando gli manca una
risorsa per poter evolvere e quindi sta aspettando che si verifichi un evento
pronto (ready-to-run): un processo è nello stato di pronto se ha tutte le
risorse necessarie alla sua evoluzione tranne la CPU
finito (terminated): siamo nella situazione in cui tutto il codice del
processo è stato eseguito e quindi ha terminato l’esecuzione; il sistema
operativo deve ora rilasciare le risorse che utilizzava.