Lezione T8 Gli scheduler CPU di Linux

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Lezione T8 Gli scheduler CPU di Linux"

Transcript

1 Lezione T8 Gli scheduler CPU di Linux Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia 1

2 Quote of the day (Meditate, gente, meditate...) The design relies on the fact that interactive tasks, by their nature, sleep often. Con Kolivas (1977-) Anestesista, programmatore Il pioniere del desktop interattivo 2

3 Parametri di progetto di uno scheduler (Repetita juvant) Numero e formato delle code dei processi pronti. Algoritmo di scheduling per ciascuna coda. Criterio usato per spostare un processo in una coda con priorità maggiore. Criterio usato per spostare un processo in una coda con priorità minore. Criterio usato per scegliere la coda in cui inserire inizialmente un processo. 3

4 LINUX v1.2 4

5 Coda dei processi pronti (Ve ne è una sola; semplice semplice) Esiste una unica lista contenente tutti i processi attivati sulla macchina. Il primo elemento della lista è la task_struct di init. init_task... 5

6 Definizione delle priorità (Priorità statica, the UNIX way) Ogni processo ha una priorità statica (nice value o nice) (re)impostabile dall'utente. La priorità varia da -20 (priorità più alta) a +19 (priorità più bassa). Il valore di default è 10. Schema classico delle priorità in UNIX. Non è prevista una modifica dinamica delle priorità da parte del kernel. 6

7 Algoritmo di scheduling (Round Robin; what else?) L'algoritmo di scheduling pesca in modalità round robin pesata uno dei processi in TASK_RUNNING. Un processo in attesa da più tempo viene favorito rispetto ad un processo che attende da meno tempo. A parità di attesa, un processo a priorità più alta viene favorito rispetto ad un processo a priorità più bassa. A tal scopo, ad ogni processo è associato un contatore, inizializzato al valore della priorità statica. 7

8 Aggiornamento del contatore (Round Robin; what else?) Ad ogni invocazione di schedule(), l'intera lista è scandita ed i contatori aggiornati: contatore = (contatore >> 1) + priority Si sceglie il processo per cui contatore è massimo. 8

9 Modifica dinamica della priorità (Non pervenuta) Non esiste alcun meccanismo per la modifica dinamica della priorità in funzione della natura del processo. L'unica priorità esistente è quella statica. La priorità iniziale del processo è: il valore iniziale di default (10). oppure un valore impostato con il comando nice. 9

10 Problemi 1/3 (Tanti, purtroppo) L'algoritmo di scheduling è O(n) rispetto al numero di processi (una invocazione di schedule() una scansione lineare della lista). Che succede se schedule() è invocata migliaia di volte al secondo in un sistema server con migliaia di processi attivi? 10

11 Problemi 2/3 (Tanti, purtroppo) Non vi è alcuna differenziazione in classi; l'unico discriminante è una priorità statica. Che succede se un processo muta spesso la propria natura? Il programmatore deve reimpostare ogni volta la priorità statica a mano? Che succede ad un terminale interattivo che va in competizione con uno script di make? 11

12 Problemi 3/3 (Tanti, purtroppo) Vi è una unica lista globale. L'accesso alla lista va serializzato per impedire le modifiche concorrenti. I processori si accodano per accedere alla lista. Le prestazioni non scalano con il numero di processori. Questo non è un vero problema, dal momento che Linux v1.12 non supporta sistemi SMP. 12

13 LINUX v2.2 13

14 Differenze rispetto allo scheduler v1.2 (Classi di processi, goodness()) Lo scheduler del kernel v2.2 è una estensione di quello presente nella versione v1.2. Differenziazione dei processi in più classi tramite un insieme più ampio di priorità. Introduzione di una funzione (goodness()) per il calcolo della bontà di un processo (ovvero quanto è favorevole schedularlo). 14

15 Il nuovo schema di priorità (Da [-20, 19] a [0, 139]) Si usano 140 livelli di priorità. Livelli [0, 99]: usati da algoritmi di scheduling di tipo soft real time (SCHED_FIFO, SCHED_RR), che hanno sempre la precedenza sull'algoritmo standard. Livelli [100, 139]: corrispondono al vecchio intervallo [-20, 19] e sono utilizzati dall'algoritmo di scheduling di default (round robin pesato). 15

16 Classi di processi: SCHED_FIFO (Alta priorità) Impostabili staticamente dall'utente all'avvio del processo. SCHED_FIFO: FCFS senza prelazione soft real time. Opera ad una priorità in [0, 99]. Un processo non si ferma se non quando termina o richiede I/O. Occhio: pericolo di stallo della macchina in caso di ciclo infinito! 16

17 Classi di processi: SCHED_RR (Alta priorità) Impostabili staticamente dall'utente all'avvio del processo. SCHED_RR: RR soft real time. Opera ad una priorità in [0, 99]. 17

18 Classi di processi: SCHED_OTHER (Bassa priorità) Impostabili staticamente dall'utente all'avvio del processo. SCHED_OTHER: algoritmo di scheduling RR pesato (derivato da quello presente in v1.2). Opera ad una priorità in [100, 139] ed è pertanto sempre battuto da SCHED_FIFO o SCHED_RR. Occhio: rischio di starvation in caso di esecuzione con un processo CPU-bound soft real time! 18

19 Criterio di scelta del processo (Priorità + algoritmo) Algoritmo multilivello. Passo 1: si individua il processo con priorità più alta nella lista dei processi. Passo 2: si applica l'algoritmo di scheduling associato al processo. 19

20 La funzione goodness() (Stima dell'interattività di un processo) La funzione goodness() ritorna un peso (weight) nell'intervallo [-1000, 1000]. Il peso è usato per scegliere il processo da schedulare : mai selezionare questo processo. 1000: processo soft real time, da selezionare subito. Algoritmo: Classe == SCHED_FIFO SCHED_RR? Sì weight=1000 Processo gira su stesso processore? Sì weight += bonus Processo usa le stesse aree di memoria? Sì weight += bonus weight += priorità processo 20

21 Problemi 1/2 (Un po' meno) L'algoritmo di scheduling è O(n) rispetto al numero di processi (una invocazione di schedule() una scansione lineare della lista). Che succede se schedule() è invocata migliaia di volte al secondo in un sistema server con migliaia di processi attivi? 21

22 Problemi 2/2 (Un po' meno) Vi è una unica lista globale. L'accesso alla lista va serializzato per impedire le modifiche concorrenti. I processori si accodano per accedere alla lista. Le prestazioni non scalano con il numero di processori. Questo comincia ad essere un problema, dal momento che Linux v2.2 supporta architetture SMP. 22

23 LINUX v2.4 23

24 Differenze rispetto allo scheduler v2.2 (Classi di processi, goodness()) Lo scheduler del kernel v2.4 è una estensione di quello presente nella versione v2.2. Uso di una coda contenente solo processi in stato di pronto. Uso di quanti di tempo variabili (time slice). Uso di un sistema di schedulazione a crediti. 24

25 Time slice (Quanto di tempo variabile) Ciascun processo può eseguire al più per un intervallo di tempo calcolato dinamicamente (time slice). Il calcolo avviene mediante un sistema a crediti: un credito 10ms di esecuzione. un processo acquisisce un credito ogni volta che si blocca premio all'interattività. dopo l'esecuzione di una time slice si scala un credito. nessun credito niente processore. 25

26 Recrediting (Quanti crediti sono riassegnati ai processi?) Quando tutti i processi in stato TASK_RUNNING hanno esaurito i crediti, il kernel ricalcola il credito per tutti i processi (recrediting). Algoritmo di aggiornamento: next_credit = prev_credit / 2 + priority Si cerca di ridurre il credito a disposizione dei processi per non farli eseguire troppo a lungo. Se il processo è interattivo il credito aumenta. Se il processo non è interattivo il credito si 26 riduce.

27 Algoritmo di scheduling (Round Robin; what else?) L'algoritmo di scheduling pesca il processo migliore tramite la funzione goodness(), in modo analogo al kernel v2.2. La funzione goodness() tiene ora in conto anche dei seguenti aspetti: affinità al processore. crediti rimanenti. 27

28 Problemi 1/2 (Pochi, ma grossi) L'algoritmo di scheduling è O(n) rispetto al numero di processi. Una invocazione di schedule() una scansione lineare della run queue). Un recrediting una scansione lineare della run queue. 28

29 Problemi 2/2 (Pochi, ma grossi) I processori sono inattivi durante il recrediting. starvation dei processori (tanto più marcata quanti più sono). 29

30 LINUX V V

31 Differenze rispetto allo scheduler v2.4 (Parecchie; è una riscrittura da zero) Obiettivi. Favorire i processi interattivi indipendentemente dal carico di lavoro applicato al processore. Scalare bene le prestazioni dello scheduler con il numero di processi. il numero di processori. 31

32 Coda dei processi pronti (Una per CPU!) La coda contiene due array di priorità di 140 elementi cadauno (una coda per ciascuna priorità possibile). Array dei processi attivi (active): non hanno esaurito il tempo di esecuzione loro assegnato. Array dei processi spirati (expired): hanno esaurito il tempo di esecuzione loro assegnato. alta Priorità [0] [1] Active array Lista di task_struct Priorità [0] [1] Expired array Lista di task_struct bassa [140] [140] 32

33 Il difetto del Weighted Round Robin (L'algoritmo standard in pseudocodice O(n)) for (p = init_task; p!= init_task; p++) { if (p->prio!= MAX) Aging (per evitare la p->prio++; starvation del processo) if (p->prio > current->prio) switch_to(p); Si schedula il primo processo con priorità più alta trovato. } Il ciclo for cicla sull'intera lista dei processi e pesca quello a priorità più alta fra gli eseguibili. Algoritmo O(n) rispetto al numero di processi. Bisogna cercare di evitare il ciclo for sull'intera lista. 33

34 Un algoritmo O(1) rispetto ai processi (Ricorda molto da vicino la tecnica del double buffering per i videogiochi) 1.Trovare in tempo O(1) la coda di priorità più elevata in active contenente la task_struct di un processo eseguibile. 2.Se non esiste una task_struct, tutti i processi sono spirati. Si scambiano gli array active ed expired (operazione fattibile in tempo O(1)) e si ripete 1. 3.Sia next=task_struct in cima alla coda di priorità più elevata (O(1)). 4.Si ricalcola la priorità di next (O(1). 5.Si effettua un cambio di contesto a next (O(1)). 6.Quando next ha usato la sua timeslice, lo si inserisce nella coda di priorità opportuna nell'array expired (O(1)) Si invoca schedule() per schedulare un altro processo (O(1)).

35 Come risolvere il passo 1. (Come trovare la coda con priorità più elevata senza scandirle tutte) Si usa una bitmap di 140 bit (5 interi a 32 bit). Nella coda i è presente la bit i=1 task_struct di un processo eseguibile. bit i=0 Nella coda i non è presente la task_struct di un processo eseguibile. L'istruzione assembly bsfl (Intel) individua in tempo costante (O(1)) il primo bit non nullo in una bitmap. 35

36 Stima dell'interattività (Il kernel riconosce i processi interattivi) Obiettivo della stima: aumentare in maniera dinamica la priorità di un processo interattivo. Criterio di interattività: frequenza di blocco processo. Frequenza elevata: processo I/O-bound Frequenza bassa: processo CPU-bound Implementazione: campo sleep_avg inserito nella task_struct del processo. Run blocked: si sottrae a sleep_avg il tempo di esecuzione dell'ultima timelice. Blocked run: si aggiunge a sleep_avg il tempo di blocco (fino ad un massimo di 10ms). 36

37 Calcolo dinamico della priorità (Il processo esegue tanto spesso quanto richiesto dalla sua natura) La funzione effective_prio(), definita nel file $LINUX/kernel/sched.c, calcola il boost di priorità da assegnare ad un processo in base alla sua interattività. Tale funzione assegna un bonus di priorità nell'intervallo [-5, +5]. Processo fortemente I/O-bound -5. Processo fortemente CPU-bound

38 Calcolo dinamico della timeslice (Il processo esegue tanto tempo quanto richiesto dalla sua natura) La durata della timeslice è: memorizzata nel campo time_slice della task_struct. calcolata dalla funzione task_timeslice() nel file $LINUX/kernel/sched.c. Tale funzione scala la priorità statica (PS) di un processo in un valore nell'intervallo [5ms, 800ms]: PS < 120 time_slice = (140 PS) * 20 PS 120 time_slice = (140 PS) * 5 38

39 Alcuni valori di esempio (Valgono più di 1000 parole) Priorità PS NICE Time_slice Altissima ms Alta ms Normale ms Bassa ms Bassissima ms 39

40 Una riflessione su sleep_avg (STOP! A che serve tutto questo? Qual è l'effetto sui processi?) La metrica sleep_avg è molto accurata! Un processo che si blocca spesso, ma che esaurisce la sua timeslice continuamente, non riceve un bonus grande. Effetto ricompensa per i processi interattivi. Effetto punizione per i processi non interattivi. Un task che riceve un bonus di priorità lo perde se comincia ad abusare del processore. Cambi di contesto non compensati da attese provocano la decrescita di sleep_avg e del bonus. 40

41 Una pecca dell'algoritmo O(1) (Un processo CPU-bound può rallentare un processo I/O-bound) Scenario. Un processo CPU-bound ed un processo I/O-bound sono in competizione per il processore. Il processo I/O-bound termina la sua timeslice per primo. Il processo CPU-bound continua a consumare la sua timeslice per molto più tempo. Il processo CPU-bound blocca il processo I/O-bound almeno fino all'esaurimento della sua timeslice! 41

42 Una euristica risolutiva (La classica pezza ) Se il processo è sufficientemente interattivo, al termine della sua timeslice non viene spostato nell'array expired viene reinserito nell'array active. Rationale: reinserendo il processo interattivo nell'array di priorità active, esso continua ad essere rischedulato immediatamente. 42

43 Aggiornamento delle timeslice (Rimettiamo insieme tutti i pezzi) scheduler_tick() in $LINUX/kernel/sched.c. Si decrementa time_slice nella task_struct del processo in esecuzione. Se time_slice == 0, la timeslice è spirata e bisogna decidere in che array piazzare la task_struct. Si invoca la macro TASK_INTERACTIVE() per capire se il task è sufficientemente interattivo. Si invoca la macro EXPIRED_STARVING() per capire se la runqueue ha processi in starvation. Se la runqueue non ha processi in starvation ed il task è sufficientemente interattivo, viene reinserito in active. 43

44 Problemi 1/2 (I vecchi problemi sono spariti; ne sorgono di nuovi) È complicato stimare l'interattività di un processo. I/O-bound deve essere schedulato più spesso. CPU-bound deve essere schedulato meno spesso e con timeslice più lunghe. È complicato calcolare una giusta durata. Timeslice troppo piccola elevato aggravio legato al cambio di contesto. Timeslice troppo grande scheduler degenera in FIFO (bene per il batch, pessimo per l'interattivo). 44

45 Problemi 2/2 (I vecchi problemi sono spariti; ne sorgono di nuovi) La priorità è relativa mentre la timeslice è assoluta. Due processi con NICE 0 ed 1: le timeslice sono di 100ms e 95ms 5% di differenza. Due processi con NICE 18 e 19: le timeslice sono di 10ms e 5ms 100% di differenza! Sono state progettate diverse euristiche per affrontare questi problemi. Problema: le euristiche possono essere sfruttate per provocare Denial of Service (fatta l'euristica, trovato l'inganno!). 45

46 LINUX V

47 Differenze rispetto allo scheduler v2.5 (Parecchie; è una riscrittura da zero) Obiettivi. Semplificare lo scheduler, togliendo tutte le euristiche viste in precedenza. Rendere lo scheduler equo (fair) verso tutti i processi. Mantenere elevata l'interattività con gli utenti. Completely Fair Scheduler (CFS) 47

48 Fair Scheduling (CFS cerca di emulare il comportamento di uno scheduler ideale) CFS cerca di imitare al meglio il comportamento di uno scheduler multitasking ideale (Generalized Processor Sharing, GPS) con le seguenti caratteristiche: timeslice infinitesima. servizio simultaneo ad n processi con capacità di Un processo elaborazione pari ad 1/n. Servito a capacità massima della CPU. Tre processi Serviti simultaneamente ad un terzo della capacità massima della CPU. 48

49 Perché GPS? (Già, perché proprio GPS?) GPS ha latenza di servizio minima. I processi non possono essere serviti più celermente di quanto non riesca a fare GPS. Perché non implementare direttamente GPS? 49

50 Problema (GPS non è implementabile) GPS non è implementabile perché un processore non può servire simultaneamente più processi. No, usare più processori non vale! GPS è definito solo per un processore. No, non si può ridurre la timeslice ad un valore quasi nullo nell'algoritmo O(1). L'aggravio legato al cambio di contesto ammazzerebbe le prestazioni. Si deve implementare una approssimazione di GPS Ripensamento delle strutture dati. 50

51 Strategia implementativa 1/3 (Cambia parecchio rispetto all'o(1)) Si cambia l'ordinamento della coda di pronto. Non più FIFO con priorità. I processi sono ordinati in base a quanta CPU hanno ricevuto in meno rispetto a GPS. In tal modo si può scegliere in maniera efficiente il processo con il maggior bisogno di CPU. 51

52 Strategia implementativa 2/3 (Cambia parecchio rispetto all'o(1)) Non si usa una timeslice fissa per un processo. Si usa una sola timeslice, condivisa fra tutti i processi. Una volta esaurita la timeslice, tutti i processi devono essere stati schedulati. Ogni processo è schedulato almeno una volta nella timeslice. Approssimazione della schedulazione simultanea effettuata da GPS. 52

53 Strategia implementativa 3/3 (Cambia parecchio rispetto all'o(1)) Non si usa Round Robin per la scelta del processo. Si sceglie il processo che ha ricevuto meno CPU rispetto a GPS. CFS si comporta come GPS a tratti. 53

54 Scheduling latency (La timeslice condivisa da tutti i processi) La scheduling latency è la timeslice unica condivisa fra tutti i processi. Approssimazione di una timeslice infinitesima. Valore di default: 20ms ( applicazioni multimediali). Tunable: /proc/sys/kernel/sched_latency_ns Ciascun processo ottiene una uguale proporzione di timeslice. timeslice(task)=sched_latency_ns/nr_tasks. timeslice(task) non può essere inferiore a 4ms. Tunable per regolare la timeslice minima: /proc/sys/kernel/sched_min_granularity_ns. 54

55 Priorità e pesi (Il peso quantifica la priorità nelle formule dello scheduler) La priorità statica del processo (in [0, 139]) è usata per definire dei valori detti pesi (weight). I pesi servono per scalare le grandezze di un processo (fetta di timeslice associata, tempo di esecuzione effettivo) in funzione della sua priorità. I pesi sono calibrati sperimentalmente e decrescono con la priorità assoluta. Priorità=0: peso massimo Priorità=139: peso minimo 55

56 Calcolo dinamico del quanto di tempo (Il processo esegue quanto gli serve, entro 20 ms.) La timeslice è la scheduling latency media per processo, pesata con la frazione relativa del peso del processo considerato. timeslice(task) = [ sched_latency_ns/nr_tasks ] * [ weight(task) / Σ tasks weight (task) ] Rationale: più è elevata la priorità, più è basso il valore di priorità assoluta, più è alto il peso, più aumenta la frazione di timeslice assegnata. 56

57 Il tempo virtuale (Scorre più o meno rapidamente a seconda della priorità) Ciascun processo ha associato un tempo virtuale di esecuzione (virtual run time). Campo vruntime della task_struct. Durante l'esecuzione di un processo, il tempo virtuale cresce: normalmente alla priorità standard (120). più lentamente a priorità più alte (<120). più velocemente a priorità più basse (>120). 57

58 Aggiornamento del tempo virtuale (Scorre più o meno rapidamente a seconda della priorità) Ad ogni rischedulazione viene ricalcolato il peso del processo uscente. Il valore vruntime è aumentato del tempo di esecuzione delta_exec in maniera proporzionale al rapporto fra la priorità standard e quella attuale. vruntime = [vruntime+delta_exec] * [ weight(prio=120) / weight(prio) ] Rationale: più elevata è la priorità assoluta, più è alto il peso, più lentamente cresce vruntime. 58

59 L'algoritmo di scheduling (Molto semplice) Si sceglie il processo eseguibile il cui vruntime è minimo. Problema: vruntime può andare in overflow. In tal caso, il processo attuale è eseguito per sempre (vruntime è a 64 bit!). Soluzione: si sceglie il processo eseguibile per cui la differenza vruntime min_vruntime è minima. Tale differenza non è soggetta ad overflow. 59

60 La coda di pronto (Non è più una coda!) Come pescare efficientemente (O(1)) il processo con differenza vruntime min_vruntime minima? Si usa un albero rosso-nero (red-black tree) di task_struct ordinate secondo la chiave vruntime min_vruntime. 60

61 L'albero rosso-nero (Ed alcune osservazioni di contorno) Δ = vruntime - min_vruntime Δ = 0 Δ = 100 Δ = 300 Viene sempre selezionato il processo che si trova in fondo a sinistra. Δ = 400 Δ = 150 Δ = 410 Inserimento: O(log n) Cancellazione: O(log n) Aggiornamento: O(log n) Estrazione minimo: O(1) vruntime e min_vruntime sono aggiornati ad ogni cambio di contesto oppure interruzione. I processi tendono a spostarsi da sinistra verso destra man mano che eseguono. I processi a priorità più alta si spostano più lentamente. 61

62 Fairness fra utenti diversi (Finora i processi sono stati considerati tutti appartenenti ad un utente) Si supponga di avere 25 processi, di cui 20 relativi ad un utente A. 5 relativi ad un utente B. CFS cerca di essere fair con tutti l'utente A ottiene una fetta di CPU molto più consistente rispetto all'utente B. Si rende necessario estendere i meccanismi di fairness a gruppi di processi. 62

63 Scheduling gerarchico (Si schedulano processi e gruppi di processi) A partire dal kernel v è stato aggiunto il supporto per la schedulazione gerarchica (hierarchical scheduling). Si introduce una nuova struttura dati: struct sched_entity (definita in $LINUX/include/linux/sched.h) che rappresenta un gruppo di processi. Ogni entity ha un suo vruntime e un suo peso, calcolato in maniera analoga a quanto visto prima. 63

64 L'albero rosso-nero, task e entity (Si schedulano prima le entity e poi i singoli processi) Δ = vruntime - min_vruntime Entity rappresentante il gruppo dei processi dell'utente A. 1 3 Δ = 0 2 Δ = 100 Task_struct dei processi appartenenti al gruppo dell'utente A. Entity rappresentante tutti i processi. Entity rappresentante il gruppo dei processi dell'utente B. Δ = Si parte dalla entity rappresentante tutti i processi. Δ = Si schedula la entity relativa ai processi del gruppo A (ha un vruntime più basso). Δ = 150 Δ = Si schedula il processo con più fame di CPU nel Task_struct dei processi gruppo A (vruntime=0). 4. Si cambia contesto a tale appartenenti al gruppo processo. 64 dell'utente B.

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Lo scheduler di Linux (kernel 2.4) La politica di scheduling di Linux si propone il raggiungimento dei seguenti obiettivi (molti dei quali sono in contrasto): timesharing gestione di priorità dinamiche

Dettagli

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 3 Algoritmi di scheduling Come caso particolare di studio, di seguito è discussa in dettaglio la politica di scheduling del sistema operativo LINUX (kernel precedente alla versione 2.6). Sono

Dettagli

Scheduling della CPU:

Scheduling della CPU: Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Lo scheduler di UNIX (1)

Lo scheduler di UNIX (1) Lo scheduler di UNIX (1) Lo scheduling a basso livello è basato su una coda a più livelli di priorità 1 Lo scheduler di UNIX (2) Si esegue il primo processo della prima coda non vuota per massimo 1 quanto

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Processi e Thread. Scheduling (Schedulazione)

Processi e Thread. Scheduling (Schedulazione) Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi SCHEDULING DELLA CPU Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: attivita` di allocazione della risorsa CPU ai processi. Scheduler

Dettagli

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst Impossibile visualizzare l'immagine. Scheduling della CPU Concetti di base La multiprogrammazione cerca di ottenere la massima utilizzazione della CPU. L esecuzione di un processo consiste in cicli d esecuzione

Dettagli

Lo scheduling. Tipici schedulatori

Lo scheduling. Tipici schedulatori Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

Scheduling. Lo scheduler è la parte del SO che si occupa di

Scheduling. Lo scheduler è la parte del SO che si occupa di Scheduling Lo scheduler è la parte del SO che si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L algoritmo di scheduling (la politica utilizzata dallo scheduler) ha impatto

Dettagli

Lo schedulatore del kernel

Lo schedulatore del kernel Lo schedulatore del kernel Lo schedulatore Lo schedulatore è un programma del kernel che si occupa di scegliere un processo/lavoro che ha richiesto una risorsa. Lo schedulatore a lungo termine LTS è quello

Dettagli

SCHEDULATORI DI PROCESSO

SCHEDULATORI DI PROCESSO Indice 5 SCHEDULATORI DI PROCESSO...1 5.1 Schedulatore Round Robin...1 5.2 Schedulatore a priorità...2 5.2.1 Schedulatore a code multiple...3 5.3 Schedulatore Shortest Job First...3 i 5 SCHEDULATORI DI

Dettagli

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano scheduling Riedizione modifi cata delle slide della Prof. DI Stefano 1 Scheduling Alternanza di CPU burst e periodi di I/O wait a) processo CPU-bound b) processo I/O bound 2 CPU Scheduler Seleziona uno

Dettagli

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi. Concetti fondamentali Scheduling della CU Introduzione allo scheduling Uno degli obbiettivi della multiprogrammazione è quello di massimizzare l utilizzo delle risorse e in particolare della CU er raggiungere

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux 6.1 Sistemi multiprocessori simmetrici Fin qui si sono trattati i problemi di scheduling

Dettagli

Sistemi Operativi. Scheduling dei processi

Sistemi Operativi. Scheduling dei processi Sistemi Operativi Scheduling dei processi Scheduling dei processi Se più processi sono eseguibili in un certo istante il sistema deve decidere quale eseguire per primo La parte del sistema operativo che

Dettagli

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi

Dettagli

La schedulazione. E.Mumolo mumolo@units.it

La schedulazione. E.Mumolo mumolo@units.it La schedulazione E.Mumolo mumolo@units.it Concetti fondamentali Multiprogrammazione: esecuzione simultanea di più sequenze di esecuzione Pseudo-parallelismo su una sola CPU Esecuzione parallela su più

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore 5.2 Silberschatz, Galvin and Gagne 2005 1 Massimizzare lʼutilizzo della

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso

Dettagli

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

Scheduling. Scheduling 14/12/2003 1/7

Scheduling. Scheduling 14/12/2003 1/7 Scheduling In un computer multiprogrammato più processi competono per l'uso della CPU. La parte di sistema operativo che decide quale processo mandare in esecuzione è lo scheduler. Batch OS: scheduling

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

Scheduling. Livelli Algoritmi

Scheduling. Livelli Algoritmi Scheduling Livelli Algoritmi Introduzione Lo scheduling Ha lo scopo di decidere quale processo eseguire in un dato istante Si realizza mediante un componente specifico del sistema operativo Lo scheduler

Dettagli

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di

Dettagli

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU Scheduling della CPU: commuta l uso della CPU tra i vari processi Scheduler della CPU (a

Dettagli

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi Sistemi Operativi Lez. 4 Lo scheduling dei processi 1 Cicli d'elaborazione In ogni processo i burst di CPU si alternano con i tempi di I/O 2 Uso tipico di un calcolatore 3 CPU-bound e I/O-bound Processi

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 6 Sistemi operativi 31 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 6.1 Di cosa parliamo in questa lezione? La schedulazione 1 e caratteristiche

Dettagli

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst!

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst! Capitolo 5: Scheduling della CPU Criteri di Scheduling Algoritmi di Scheduling Cenni Scheduling per sistemi multprocessore Modelli Asimmetrico e Simmetrico Scheduling della CPU 5.2 Concetti di Base Alternanza

Dettagli

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst.

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst. Contenuti delle lezioni del 23 e del 26 Marzo 2009 Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algoritmi di scheduling della CPU Analisi dei criteri di valutazione nella

Dettagli

Lo Scheduling Real Time in Linux. Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola 693512 Relatore: Giorgio Richelli

Lo Scheduling Real Time in Linux. Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola 693512 Relatore: Giorgio Richelli Lo Scheduling Real Time in Linux Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola 693512 Relatore: Giorgio Richelli Scopo Motivazione Obiettivi 1) Lo scopo di questo progetto è presentare

Dettagli

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario Scheduling Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di scheduling Tipi di scheduling Lungo termine Breve termine (scheduling della CPU) Medio termine Scheduling della CPU

Dettagli

Scheduling della CPU Simulazione in linguaggio Java

Scheduling della CPU Simulazione in linguaggio Java Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file. ESERCIZIO 1 Si consideri un hard disk formattato la cui memoria è suddivisa in 16 blocchi (numerati da 0 a 15). Si supponga che sull hard disk sia memorizzato un unico file, contenuto, nell ordine, nei

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher Schedulazione della CPU Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algorimi di scheduling della CPU Analisi dei criteri di valutazione nella scelta di un algoritmo

Dettagli

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT) Scheduling Introduzione Con scheduling si intende un insieme di tecniche e di meccanismi interni del sistema operativo che amministrano l ordine in cui il lavoro viene svolto. Lo Scheduler è il modulo

Dettagli

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) #include void main (int argc, char *argv[]) { pid = fork(); /* genera nuovo processo */ if (pid < 0) { /* errore */ fprintf(stderr,

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job. Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei

Dettagli

Il problema del produttore e del consumatore. Cooperazione tra processi

Il problema del produttore e del consumatore. Cooperazione tra processi Il problema del produttore e del consumatore Cooperazione tra processi Risorsa consumabile I processi disgiunti possono interferire tra loro a causa dell'uso di risorse permanenti, ma ognuno di essi ignora

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base) Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso

Dettagli

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni Sistemi operativi real time basati su Linux: gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Secondo biennio Articolazione Informatica TPSIT Prova Quarta Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione

Dettagli

La memoria - generalità

La memoria - generalità Calcolatori Elettronici La memoria gerarchica Introduzione La memoria - generalità n Funzioni: Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile Archiviazione: deve consentire

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

B+Trees. Introduzione

B+Trees. Introduzione B+Trees Introduzione B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Il Sistema Operativo Gerarchia del software

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Gli stati di un processo

Gli stati di un processo Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere

Dettagli

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Sistema operativo: Gestione dei processi

Sistema operativo: Gestione dei processi Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Sistema operativo: Gestione dei processi La presente dispensa e da utilizzarsi

Dettagli

5. Scheduling della CPU. 5.1 Concetti Fondamentali. 5.1.2. Lo scheduler della CPU

5. Scheduling della CPU. 5.1 Concetti Fondamentali. 5.1.2. Lo scheduler della CPU 5. Scheduling della CPU 1 Il multitasking e il time sharing (quando è usato) cercano di massimizzare l utilizzo della CPU. Per questo, il progettista del SO deve stabilire delle regole per decidere, quando

Dettagli

5. Scheduling della CPU

5. Scheduling della CPU 1 5. Scheduling della CPU Il multitasking e il time sharing (quando è usato) cercano di massimizzare l utilizzo della CPU. Per questo, il progettista del SO deve stabilire delle regole per decidere, quando

Dettagli

Linux I/O Scheduling overview

Linux I/O Scheduling overview Linux I/O Scheduling overview Roberto Vela 09/11/2013 www.nalug.net Roadmap Perché lo scheduling? Perché lo scheduling dell'i/o è importante? Principi dello scheduling I/O Scheduling del disco Disk scheduling

Dettagli

Gestione del processore e dei processi

Gestione del processore e dei processi Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo Il ruolo del processore

Dettagli

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

Sistemi operativi e reti A.A. 2013-14. Lezione 2

Sistemi operativi e reti A.A. 2013-14. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 2 Giovedì 10-10-2013 1 Sistemi a partizione di tempo (time-sharing) I

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli