Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Round Robin con Priorità
Utilizza il turnaround normalizzato, prende quello con il valore più alto, ovvero quello più penalizzato fino a quel momento. Response ratio → R come (w+s)/s. La strategia non è preemptive. Esempio slide 21/22 Anche qui si fa una stima di s guardando il passato Processor Scheduling 4 Feedback I processi quando arrivano vengono messi in code ready di diversa priorità in base all'arrivo (i più recenti sono messi nella coda di priorità più alta). Quando un processo viene eseguito (e schedulato con la politica FCFS), non viene più messo nella stessa coda, ma in quella di priorità immediatamente inferiore. Quando la coda con priorità più alta si svuota, il processore viene allocato alla coda successiva (priorità inferiore) e si continua il procedimento. Quando il controllo passa al dispatcher (a seguito di operazione bloccante o simili) se vi sono processi nella coda precedente il processore vieneallocato di nuovo allacoda precedente, se no continua in quella attuale.Se si arriva all'ultima coda i processi vengono riaccodati lì.L'idea è che i processi appena inseriti sono preferiti, una volta iniziati adeseguire vengono spostati in code inferiori. Il rischio è che i processi in bassonon vengano serviti a lungo. Si ha un problema di fairness.Questo approccio è preemptive e utilizza i quanti.Esempio slide 21 con probabile errore: al quanto 4 si esegue B e non A perchèha ancora priorità maggiore. Lezione del 14 maggio.Per risolvere il problema di fairness si dà un quanto di tempo maggiore aiprocessi in code più in basso un modo esponenziale: quelli nella coda 0 avràun quanto di 2^0, nella 1 il quanto sarà di 2^1 e così via.Scheduling in UNIXL'obiettivo di UNIX è dare tempi di risposta buoni. Si usa un multi levelfeedback, con un RR all'interno delle singole code. La preemption
viene fatta ogni secondo. La priorità viene anche stimata in base al tipo di processo. Formula per lo scheduling slide 39. Definizione variabili su slide. Il valore Basej è dato a ogni processo in base al tipo di processo a priori. Nicej può essere specificato dall'utente in base alle esigenze: se metto nice>0 allora dico che quel processo avrà priorità più bassa di quella che il sistema gli avrebbe dato; se invece nice<0 allora dico che un processo deve essere schedulato con maggiore priorità del normale (serve però che l'operazione venga fatta dall'amministratore). Esempio slide 40 - ad ogni quanto si ricalcolano sia CPUj che Pj. nicej ≥ 0 qui. Processor Scheduling 5 - Decay factor: 1/2 davanti al calcolo di CPUj (i) prima. Nel tempo si è arrivati a impostare il valore di decadimento in base al carico del processore, per evitare che nei carichi pesanti avvenga che il CPUj diventi sempre più basso, di fatto.assottigliando la differenza di priorità tra i vari processi e facendo diventare il valore CPUj inutile; inoltre non si terrebbe più conto della storia del processo. Per impostare il decay factor si guarda il load_average (media dei processi ready in coda).
Fair-share scheduling
Può aver senso aggregare i processi considerando nel calcolo della priorità (ad esempio considerando come gruppo l'insieme di processi figli o threads di un processo padre), l'utilizzo medio di CPU del gruppo di cui fanno parte. Per esempio può succedere che un gruppo di piccoli processi (o threads) abbia poco utilizzo di cpu per ogni processo, ma tanto nell'insieme: aggiungendo al calcolo della priorità l'utilizzo di CPU del gruppo non si rischia che ogni processo singolo abbia priorità alta a discapito di processi singoli ma grossi che richiedono molto tempo di CPU.
Processor Scheduling 6SO Overview
Sistema operativo: programma che controlla
- L'esecuzione di altri programmi è un intermediario tra hardware e software
- Caratteristiche:
- Comodo da usare
- Efficiente nell'utilizzo delle risorse
- Capace di evolvere in caso di cambiamenti hardware e software
- Programma eseguito dal processore
- Richiede di riprendere il controllo durante l'esecuzione di altri programmi
- Servizi:
- Sviluppo: servizi di debugging e di compilazione
- Esecuzione dei programmi
- Accesso dispositivi
- Accesso ai file perché i programmi non accedano ad aree riservate
- Componenti di sistema
- Rilevamento errori e malfunzionamenti
- Accounting: tenere traccia degli avvenimenti del sistema e di chi le ha effettuati
- Movimento, storage e processo dei dati
- Il sistema operativo può evolvere nel tempo per diversi motivi:
- Upgrade dell'hardware
- Nuovi tipi di hardware
- Nuovi servizi da offrire
- Bug fix
- Passi dell'evoluzione:
- SO Overview 1: serial processing - eseguire un programma alla volta in ordine sequenziale (inefficiente)
- Simple batch systems (sistemi a...
duplicazione dei dati
Mutua esclusione fallita: più programmi cercano di utilizzare una stessa risorsa di sistema nello stesso momento
SO Overview 2
Operazioni non determinate: più programmi possono interferire tra di loro scrivendo stesse aree di memoria dando risultati non aspettati o errati
Deadlocks: catene circolari che possono interrompere una serie di processi
Componenti di un processo:
- programma eseguibile
- dati richiesti
- execution context: dati interni che permettono al SO di controllare il processo, inclusi i valori dei registri e informazioni circa la priorità del processo e se ha bisogno di un certo input o output di un dispositivo.
Tutto viene incluso nel registro context
Nuove funzioni del SO possono essere implementate espandendo il registro context con quello che serve
Memory Managment
Responsabilità del SO:
- isolamento del processo dagli altri
- allocazione del processo attraverso le gerarchie di memoria
- definizione di moduli di programma che possono variare
Possono essere sfruttati in ugual modo, essi hanno registri diversi ma possono condividere le risorse. Lo scheduler così non deve più scegliere processori specifici per processi specifici.
Distributed OS: macchine separate con ognuna un proprio sistema operativo che interagisce con gli altri.
OOD: SO organizzato come un sistema a oggetti, con polimorfismo, ereditarietà e tutte le proprietà.
Mikrokernel Architecture:
- Identificare un insieme di funzioni essenziali da inserire nel microkernel. Di solito sono: indirizzamento, comunicazione tra processi, scheduling di base.
Vantaggi:
- Facilità di implementazione
- Flessibilità
- Si adatta bene a sistemi distribuiti, per via della sua maggiore portabilità
Multithreading:
- Minima utilità di lavoro schedulabile all'interno del sistema operativo. Include uno stato del processore e una sua area per i dati.
- La differenza con il processo è che il processo è un insieme di thread che ha una propria area.
di dati autonomi e indipendenti rispetto agli altri processi.
Invece i singoli thread condividono i dati con gli altri thread del processo.
Symmetric multiprocessing
SO Overview 5
Più processi eseguiti su più processori che devono essere sincronizzati dal SO.
Spesso utilizzata insieme al multithreading
Vantaggi:
- performance
- avaibility: se un processo fallisce il sistema non si blocca
- crescita incrementale: posso aggiungere processori per aumentare le performance facilmente
- scalabilità: diverse configurazioni in base al numero di processori
Sistemi operativi distribuiti
Controllo di più sistemi, fornendo l'