Please enable JavaScript.
Coggle requires JavaScript to display documents.
Il Sistema Operativo, Un processo è un’entità logica in evoluzione., Il…
Il Sistema Operativo
Schedulazione 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) e il componente del SO che si occupa di questa gestione si chiama job scheduler.
In un SO con partizione del tempo un solo processo è in esecuzione e tutti gli altri sono posizionati in code, delle quali le due principali:
la coda dei processi pronti (RL), in cui risiedono i processi caricati in memoria centrale che si trovano nello stato ready;
la coda di attesa di un evento (WL), dove vengono inseriti i processi in attesa di una particolare risorsa.
Contesto di un processo
Il contesto di un processo è composto da alcune informazioni contenute nel suo specifico PCB, come il valore dei registri, il suo stato, il program counter, lo stack pointer ecc.
Il processo che viene sospeso dovrà successivamente essere ripristinato senza che rimanga traccia di quanto è successo
-
il SO deve fare una “fotografia” di tutto quello che utilizza il processo, salvarlo e poi ripristinarlo.
lo stack e la memoria heap non devono essere salvati, in quanto sarà lo stesso sistema operativo a preoccuparsi di NON modificarne i contenuti;
sicuramente il contenuto dei registri verrà modificato dall’esecuzione del nuovo processo e quindi tutti questi devono essere salvati;
-
Quando la CPU riattiva un processo che è stato sospeso, per prima cosa analizza il suo PCB per individuare il suo stack pointer e quindi da lì recupererà i valori dei registri e del program counter da ripristinare per poter riprendere l’esecuzione proprio dall’istruzione che era stata sospesa.
-
-
Questi processi vengono chiamati non pre-emptive, a differenza di quelli che possono essere interrotti che sono i processi pre-emptive.
-
Processi
è diviso in
-
I dati del programma
i dati del programma, a loro volta suddivisi in:
-
variabili locali e non locali delle procedure del programma, memorizzate in uno stack;
-
variabili allocate dinamicamente durante l’esecuzione, memorizzate in un heap
L’insieme di tutti i dati di un processo prende anche il nome di contesto del processo
varia istante per istante, a partire dal valore contenuto nel program counter
Inoltre i processi possono essere indipendenti oppure cooperare per raggiungere un medesimo obiettivo:
nel primo caso, cioè di processi indipendenti, un processo evolve in modo autonomo
nel secondo caso, due (o più) processi hanno la necessità di cooperare in quanto, per poter evolvere, necessitano di scambiarsi informazioni
Oltre alla cooperazione esiste un’altra forma di interazione tra processi
Due (o più) processi possono ostacolarsi a vicenda compromettendo il buon fine delle loro elaborazioni.
Stato dei processi
Con stato di un processo intendiamo quindi una tra le cinque possibili situazioni in cui un processo in esecuzione può trovarsi
può assumere una sola volta lo stato di nuovo e di terminato, mentre può essere per più volte negli altri tre stati.
-
Gestione Processore
Multitasking:
-
Tutti i moderni SO cercano di sfruttare al massimo le potenzialità di parallelismo fisico dell’hardware per minimizzare i tempi di risposta e aumentare il throughput del sistema, ossia il numero di programmi eseguiti per unità di tempo
-
-
Un processo è costituito da una successione di fasi di elaborazione sulla CPU e fasi di attesa per l’esecuzione di operazioni su altre risorse del sistema
I sistemi operativi multitasking durante le fasi di attesa mandano in esecuzione sulla CPU altri programmi tra quelli caricati in memoria portano avanti in parallelo più processi, riducendo al minimo l’inattività della CPU e migliorando così l’efficienza del sistema
Il parallelismo che si ottiene è virtuale (e non fisico) dato che il processore è uno solo
-
-
Il program counter (PC) è unico nel processore e contiene l’indirizzo di un’istruzione del processo che in quel momento è in esecuzione