Estratto del documento

Si occupa del controllo della memoria principale, decidendo quali processi devono essere

temporaneamente sospesi (swapping) per ottimizzare l’uso delle risorse.

3. Scheduling a breve termine (CPU Scheduling)

Il più critico, decide quale processo nello stato "Ready" deve essere eseguito dalla CPU. Questo

scheduling è attivato frequentemente ed è responsabile dell’efficienza globale del sistema.

Stati dei Processi e Scheduling

Un processo può trovarsi in diversi stati:

• New: Il processo è stato creato ma non è ancora pronto per l’esecuzione.

• Ready: Il processo è pronto per essere eseguito e attende l’assegnazione della CPU.

• Running: Il processo è in esecuzione sulla CPU.

• Blocked: Il processo attende il completamento di un’operazione I/O.

• Exit: Il processo ha terminato la sua esecuzione.

Criteri di Scheduling

Le decisioni dello scheduler possono essere basate su diversi criteri:

• Throughput: Numero di processi completati per unità di tempo.

• Utilizzo della CPU: Percentuale di tempo in cui la CPU è attiva.

• Tempo di attesa (W): Tempo totale trascorso da un processo nello stato "Ready".

• Tempo di turnaround (TAT): Tempo totale trascorso dalla creazione al completamento del

processo.

• Tempo di risposta (RT): Tempo che intercorre tra la sottomissione del processo e l'inizio

della sua esecuzione.

Algoritmi di Scheduling

Gli algoritmi determinano l’ordine di esecuzione dei processi. I principali sono:

1. First Come First Served (FCFS)

• Esegue i processi nell’ordine di arrivo.

• Formula per il tempo di attesa: Wi=∑j=1i−1TjW_i = \sum_{j=1}^{i-1} T_j dove TjT_j è il

tempo di esecuzione dei processi precedenti.

• Svantaggi: Effetto "convoglio", i processi lunghi bloccano quelli successivi.

2. Round-Robin (RR)

• Ogni processo riceve un quanto di tempo qq, al termine del quale viene posto in coda.

• Formula per il tempo di turnaround: TAT=W+STAT = W + S dove SS è il tempo di esecuzione

del processo.

• Criticità: La scelta del time-slice qq influenza l’efficienza dello scheduling.

3. Shortest Process Next (SPN) e Shortest Remaining Time Next (SRTN)

• Seleziona il processo con il minor tempo di esecuzione previsto.

• Svantaggio: Può causare starvation per processi lunghi.

4. Highest Response Ratio Next (HRRN)

• Considera il rapporto di risposta: RR=W+SSRR = \frac{W + S}{S}

• Vantaggi: Bilancia efficienza e equità, riducendo la starvation.

5. Multi-Level Feedback Queue

• Utilizza più code di priorità, promuovendo o degradando processi in base al loro

comportamento.

• Vantaggi: Adatta dinamicamente l’allocazione delle risorse.

Scheduling nei Sistemi Multiprocessore

Nei sistemi con più CPU, le strategie principali sono:

• Assegnazione statica: Ogni processo viene assegnato a una CPU specifica.

• Assegnazione dinamica: I processi possono essere riassegnati per bilanciare il carico.

• Master/Slave: Un processore gestisce il kernel, gli altri eseguono solo processi utente.

• Approccio Peer: Tutti i processori eseguono sia kernel che processi utente.

Scheduling nei Sistemi UNIX e Windows

UNIX

• Basato su code multiple con feedback.

• Le priorità variano dinamicamente.

• Utilizza la system call nice() per modificare la priorità dei processi (valori da -20 a 19).

Windows

• Due classi di priorità: Real-Time (16-31) e Variable (0-15).

• La priorità dei thread è dinamica e basata sul comportamento del processo.

Affinità della CPU

L’affinità della CPU è la capacità di vincolare un processo a specifiche CPU per:

• Migliorare la località della cache.

• Riservare risorse per processi critici.

• Implementata in Linux (taskset) e Windows (API specifiche).

Conclusione

Lo scheduling della CPU è un elemento chiave nei sistemi operativi moderni. La scelta

dell’algoritmo di scheduling influisce direttamente sull’efficienza del sistema e sulla percezione

dell’utente. Con l’evoluzione dei sistemi multiprocessore e multi-thread, le strategie di scheduling

si sono adattate per ottimizzare l’uso delle risorse e bilanciare equità e prestazioni.

Gestione della Memoria nei Sistemi Operativi

Introduzione

La gestione della memoria è una componente fondamentale dei sistemi operativi, in quanto

determina come i processi accedono e utilizzano la memoria principale. Una gestione efficiente

consente di ottimizzare l’uso delle risorse, migliorare le prestazioni del sistema e garantire che più

processi possano coesistere senza interferenze.

Struttura della Memoria

Nei sistemi operativi moderni, la memoria è suddivisa in diversi livelli:

• Memoria principale (RAM): utilizzata per l’esecuzione immediata dei processi.

• Memoria secondaria (disco): usata per memorizzare processi non attualmente in

esecuzione.

• Cache: velocizza l’accesso ai dati utilizzati di frequente.

• Registri della CPU: memoria ad accesso più rapido per le operazioni immediate.

Allocazione della Memoria

Anteprima
Vedrai una selezione di 1 pagina su 5
Processi e memoria Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher laura200222 di informazioni apprese con la frequenza delle lezioni di Elementi di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma Tor Vergata o del prof Quaglia Francesco.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community