Anteprima
Vedrai una selezione di 1 pagina su 5
Processi e memoria Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
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

Dettagli
Publisher
A.A. 2024-2025
5 pagine
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.