Sei sulla pagina 1di 2

TPSI

Differenza tra programma e processo:

- Un PROGRAMMA è costituito dall’insieme delle istruzioni, memorizzato sulla memoria di


massa (entità statica)
- Un PROCESSO è un’istanza di un programma in evoluzione, cioè che è eseguito dal
processore; quindi, deve essere residente in memoria RAM. (entità dinamica)

Differenza tra scheduling dei job e scheduling della CPU:

- Lo SCHEDULING DEI JOB è un insieme di meccanismi utilizzati per la scelta dei programmi
che dal disco devono essere caricati in RAM.
- Lo SCHEDULING DELLA CPU è un insieme di meccanismi che permettono di assegnare e
sospendere l’utilizzo della CPU da parte dei vari programmi

Differenza tra multitasking e multiprocessing:

- MULTITASKING è l’esecuzione di programmi indipendenti sulla CPU e sul processore di I\O.


- MULTIPROCESSING è la multiprogrammazione estesa a elaboratori dotati di più CPU e
processori di I\O.

Un processo è costituito da:

- Il CODICE
- I DATI DEL PROGRAMMA, a loro volta costituiti da:
- variabili globali;
- variabili locali e non locali;
- variabili temporanee introdotte dal compilatore;
- variabili allocate dinamicamente;

Inoltre, i processi possono essere:

- INDIPENDENTI, quando un processo evolve in modo autonomo;


- COOPERANTI, quando due processi, hanno bisogno di scambiarsi informazioni
- IN COMPETIZIONE, quando due processi si ostacolano compromettendo le elaborazioni.

Con STATO DI UN PROCESSO si intende una situazione nella quale un processo può trovarsi.
Un processo può trovarsi in:

- NUOVO (new): stato in cui si trova un processo appena è stato creato


- ESECUZIONE (running): il processo sta evolvendo e la CPU sta eseguendo le sue istruzioni
- ATTESA (waiting): il processo è in mancanza di una risorsa per poter evolvere quindi aspetta
che si verifichi un evento
- PRONTO (ready-to-run): il processo ha tutte le risorse necessarie alla sua evoluzione
- FINITO (terminated): il codice del processo è stato eseguito e ha terminato l’esecuzione

Il PCB è il descrittore del processo, e al suo interno possiamo trovare elementi come il PID, Program
Counter, registri ecc.

Il JOB SCHEDULER è una componente che si occupa della gestione delle politiche di scheduling.

Le code nei processi si dividono in:

- CODA DEI PROCESSI PRONTI (RL), dove ci sono i processi caricati in memoria centrale
- CODA DI ATTESA DI UN EVENTO (WL), dove ci sono i processi in attesa di una particolare
risorsa

Il CAMBIO DI CONTESTO è quando si sospende un processo per prenderne un altro dalla RL.

La parte del SO che effettua il cambio di contesto si chiama DISPATCHER.

Un processo che può essere interrotto prende il nome di PRE-EMPTIVE, al contrario, un processo che
non può essere interrotto prende il nome di NON PRE-EMPTIVE.

Differenza tra user mode e kernel mode:

- Il livello USER MODE è quello di “normale stato di esecuzione” dei programmi applicativi;
- Il livello KERNEL MODE detto anche “supervisore”, è quello dove sono in esecuzione i servizi
del kernel

Gli obiettivi delle politiche di scheduling sono:

- Massimizzare la percentuale di utilizzo della CPU


- Massimizzare il throughput del sistema (numero di processi completati in tot tempo)
- Ridurre al minimo i tempi di risposta del sistema quando un programma viene eseguito
- Minimizzare i tempi d’attesa tra un'esecuzione e l’altra

L’algoritmo FCFS è un algoritmo in base al quale i processi vengono messi in coda secondo l’ordine
d’arrivo, quindi FIFO.

L’algoritmo SJF sceglie tra la lista dei processi quello che occuperà meno tempo.

L’algoritmo di scheduling con priorità manderà in esecuzione il processo con la priorità più alta.

Se continuano ad arrivare processi con alta priorità si può verificare la STARVATION, ovvero che i
processi ad alta priorità vengono sempre eseguiti a scapito di quelli con bassa priorità.

Se un processo è in coda da tanto tempo, quindi è invecchiato (AGING), gli viene alzato il livello di
priorità.

L'algoritmo Round Robin è un algoritmo dove i processi vengono inseriti in una coda circolare, e ad
ognuno viene assegnato un TIME SLICE.

L’algoritmo MLFQ è un FCFS con priorità.

Potrebbero piacerti anche