Introduzione al Multitasking e Sistemi Operativi: Stati e Schedulazione dei Processi, Study notes of Mathematics

Una introduzione al concetto di multitasking e ai concetti fondamentali di gestione dei processi in un sistema operativo. Viene descritto come il multitasking migliori la gestione del tempo CPU attraverso la contemporanea presenza di più programmi in memoria. Il documento copre il concetto di processo, lo stato dei processi, la schedulazione dei processi e i criteri di scheduling. Vengono presentate varie politiche di scheduling come FCFS, SJF e Round Robin.

Typology: Study notes

2020/2021

Uploaded on 05/26/2021

ricci-lorenzo
ricci-lorenzo 🇧🇮

1 / 57

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Unità di apprendimento 4
Il sistema
operativo
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39

Partial preview of the text

Download Introduzione al Multitasking e Sistemi Operativi: Stati e Schedulazione dei Processi and more Study notes Mathematics in PDF only on Docsity!

Unità di apprendimento 4

Il sistema operativo

Unità di apprendimento 4

Lezione 3

La gestione del processore

Programma e processo

Un programma è un insieme di file che contengono le istruzioni che un elaboratore deve eseguire per ottenere determinati risultati Un processo , invece, è un programma in esecuzione su un determinato elaboratore

Introduzione al multitasking

l’ottimizzazione del tempo di CPU (ovvero il tempo speso dalla CPU nell’eseguire un determinato programma) avviene grazie alla multiprogrammazione cioè alla contemporanea presenza di più programmi in memoria

Introduzione al multitasking

 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 (operazioni di I/O, di caricamento dati, colloquio con periferiche ecc.) che di fatto lasciano inattiva la CPU. Un processo è un’entità logica in evoluzione.

Introduzione al multitasking

 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 (nr di programmi eseguiti per unità di tempo).  Il parallelismo che si ottiene è virtuale (e non fisico) dato che il processore è uno solo

I processi

 Noi prenderemo il singolo processo che possiamo dire essere costituiti da due parti:

  • (^) il codice (composto dalle istruzioni);
  • (^) i dati del programma, a loro volta suddivisi in:
    • (^) variabili globali
    • (^) variabili locali e non locali delle procedure del programma, memorizzate in uno stack;
    • (^) variabili temporanee introdotte dal compilatore caricate nei registri del processore;
    • (^) variabili allocate dinamicamente durante l’esecuzione, memorizzate in un heap.

I processi

 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

  • (^) un registro che specifica l’istruzione successiva che la CPU deve eseguire.

I processi

 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.

I processi

 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.

I processi

Stato dei processi

Stato di un processo  Durante il ciclo di vita di un processo è possibile individuare un insieme di situazioni in cui il processo può trovarsi, che definiremo come gli stati di un processo associati alla sua evoluzione e alla sua “situazione” rispetto alla CPU  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.

Stato dei processi

• 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 (per esempio che si liberi la risorsa che gli serve e che il processore gliela assegni)

• Pronto (ready-to-run): un processo è nello stato di

pronto se ha tutte le risorse necessarie alla sua evoluzione tranne la CPU (cioè è il caso in cui sta aspettando che gli venga assegnato il suo time-slice di 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.

I processi

 il diagramma degli stati.