2. Uno dei compiti del sistema operativo è la gestione dei processi
GESTIONE DEI PROCESSI
parte statica
[il programma]
parte dinamica
[informazioni sullo stato di
esecuzione del programma]
Stato del processo = Stato dell'attività associata al processo. Può essere:
in esecuzione
quando sta utilizzando
il processore
in attesa
quando è in attesa
del verificarsi di un
evento esterno
pronto
quando il suo progresso
può continuare
Processo
Programma in esecuzione
3. Sistemi di tipo monotasking
eseguono un processo alla volta
Esempio: Il barista
GESTIONE DEI PROCESSI
Cliente 1
ordine Attesa pagaconsuma
Cliente 2 Cliente 3
ordine Attesa pagaconsuma ordine Attesa pagaconsuma
Barista
Attesa
ordine
Attesa Risp.Prepara
Attesa
ordine
Attesa Risp.Prepara
Attesa
ordine
Attesa Risp.Prepara
4. Sistemi multitasking: eseguono più programmi contemporaneamente
GESTIONE DEI PROCESSI
Cliente 1
ordine Attesa pagaconsuma
Barista
Attesa
ordine
Cliente
1
Attesa
ordine
Cliente
2
Prepara
ordine
Cliente
2
Prepara
ordine
Cliente 1
Attesa
ordine
Cliente
3
Attesa
ordine
Cliente
4
Prepara
ordine
Cliente
4
Prepara
ordine
Cliente 3
Riceve pagamento
Cliente 1
Cliente 2
ordine Attesa consuma
Cliente 3
ordine Attesa consuma
Attesa
ordine
Cliente
5
Prepara
ordine
Cliente
5
5. Scheduler
• Registra i processi presenti nel computer (process table)
• Introduce nuovi processi
• Rimuove i processi completati
• Quando si richiede l'esecuzione di un programma, crea una nuova
entrata nella process table (informazioni su area di memoria assegnata,
priorità del processo, stato)
Dispatcher
Componente del kernel che sorveglia l'esecuzione dei processi schedati
GESTIONE DEI PROCESSI
6. Multiprogrammazione
• Divide il tempo in brevissimi intervalli detti time slice
• Il dispatcher assegna un time slice al processo e parte il timer
• Alla fine del time slice si genera una interruzione - interrupt
CPU PERSONA
Reagisce all'interruzione Disturbata
Completa il ciclo corrente Interrompe quello che sta facendo
Salva la sua posizione nel processo corrente Memorizza il punto a cui è arrivata
GESTIONE DEI PROCESSI
7. La CPU inizia ad eseguire un programma interrupt handler
(parte del dispatcher che descrive come
questo deve rispondere all'interruzione)
GESTIONE DEI PROCESSI
Il dispatcher seleziona il processo con la massima priorità
tra quelli pronti nella process table (determinato dallo scheduler)
Parte il timer e il processo selezionato inizia nel suo time slice
8. Osservazioni sui sistemi multitasking
• Capacità di fermare un processo per poi riprenderlo. La CPU deve essere
in grado di ricreare l'ambiente presente immediatamente prima
dell'interruzione
• Efficienza
PRO CONTRO
Utilizza il tempo che invece
verrebbe sprecato nei sistemi
sequenziali
Introduce risorse accessorie
GESTIONE DEI PROCESSI
9. SICUREZZA
ATTACCHI DALL’ESTERNO
Uno dei compiti svolti dal sistema operativo è quello di proteggere le risorse
del computer da accessi non autorizzati.
Si ricorre alla creazione di più accounts in computer accessibili a diversi utenti
che si autenticano tramite procedure di login.
Un amministratore o super user deve controllare il tutto, anche tramite
l’aiuto di auditing software, per monitorare l’attività del sistema.
Problematiche
Trascuratezza e ingenuità dell'utente (password facili, non cambiate, condivise
con altre persone)
10. ATTACCHI DALL'INTERNO
L'intruso cerca di trovare informazioni interessanti o inserire software dannosi
Le CPU sono progettate per sventare questi tentativi, infatti:
• la CPU opera su diversi livelli privilegiati o meno (a seconda delle istruzioni
possibili);
• Se la CPU è in modalità non privilegiata il tentativo di eseguire un'istruzione
privilegiata causa un'interruzione e il controllo viene trasferito all'interrupt
handler nel sistema operativo;
• La CPU è inizialmente in modalità privilegiata finché non parte un processo.
SICUREZZA