Sistemi Operativi Kernel



Похожие документы
Sistemi Operativi SCHEDULING DELLA CPU

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

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

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

Lo scheduling. Tipici schedulatori

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

Scheduling della CPU:

La Gestione delle risorse Renato Agati

Scheduling della CPU

SCHEDULATORI DI PROCESSO

Pronto Esecuzione Attesa Terminazione

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

Corso di Informatica

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

Processi e Thread. Scheduling (Schedulazione)

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

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

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

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

La schedulazione. E.Mumolo

Sistemi operativi. Esempi di sistemi operativi

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

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Scheduling. Scheduling 14/12/2003 1/7

Algoritmi di scheduling

Gestione della memoria centrale

Il Sistema Operativo

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

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

Gestione della Memoria

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

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Sistemi Operativi (modulo di Informatica II) I processi

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

Lo scheduler di UNIX (1)

Lo schedulatore del kernel

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

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Il Sistema Operativo (1)

Sistema operativo: Gestione dei processi

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

I processi Unix. Entry della tabella dei processi

Sistemi Operativi. 5 Gestione della memoria

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

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

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

STRUTTURE DEI SISTEMI DI CALCOLO

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

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

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

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

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

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

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Infrastrutture Software

Sistemi Operativi. Scheduling dei processi

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

Scheduling della CPU Simulazione in linguaggio Java

Laboratorio di Informatica

DMA Accesso Diretto alla Memoria

J. Assfalg Appunti di Sistemi Operativi

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Informatica e Bioinformatica: Sistemi Operativi

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Le Infrastrutture Software ed il Sistema Operativo

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

Sistemi Operativi. Schedulazione della CPU

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

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

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

Corso di Sistemi di Elaborazione delle informazioni

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

Esercitazione E1 Scheduling, deadlock, monitor

CPU. Maurizio Palesi

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Gestione del processore e dei processi

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

Il software. la parte contro cui si può solo imprecare. Il software

Sistemi operativi e reti A.A Lezione 2

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

J. Assfalg Appunti di Sistemi Operativi

Memoria Virtuale. Lezione 29 Sistemi Operativi

Funzioni del Sistema Operativo

Processo - generalità

Nozioni di Informatica di base. dott. Andrea Mazzini

Il memory manager. Gestione della memoria centrale

Scheduling della CPU

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Транскрипт:

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 modulo ha una funzione diversa Funzioni più importanti: gestione processore e dei processi gestione memoria (principale e virtuale) 1

Gestore dei processi Componenti Interfaccia utente Gestore dell I/O Gestore del File System Gestore dei Processi Gestore della Memoria Centrale *KERNEL 2

Gestore dei processi Un sistema operativo con supporto per il multitasking (multiprocessualità) permette di eseguire più programmi contemporaneamente Sistema Operativo time sharing Permette la condivisione della CPU tra più processi concorrenti Il tempo di esecuzione del processore è condiviso tra più processi / utenti Ogni processo in esecuzione ha a disposizione dei quanti di tempo della CPU Time sharing Se viene chiesto al sistema di eseguire contemporaneamente due processi A e B, la CPU attuerà un meccanismo di time-sharing eseguirà per qualche istante (quanto di tempo) il processo A, poi per qualche istante il processo B, poi tornerà ad eseguire il processo A e così via Il passaggio dal processo A al processo B e viceversa viene definito cambio di contesto (context switch) 3

Scheduler Le decisioni riguardanti l'esecuzione di un cambio di contesto tra due programmi vengono intraprese da un componente del sistema operativo (software) detto scheduler Scheduler (da schedule = mettere in lista) Programma che, dato un insieme di richieste di accesso ad una risorsa (processi che contemporaneamente richiedono CPU per essere eseguiti), stabilisce un ordinamento temporale per l'esecuzione di tali richieste Scheduling Lo scheduler attua lo scheduling Ripartizione del tempo di CPU tra tutti i processi concorrenti (i processi attivi nello stesso momento sul calcolatore che si contendono l uso della CPU) Lo scheduling è un'operazione molto importante per il corretto ed efficiente funzionamento del calcolatore Consente di migliorare l'utilizzo del processore 4

Algoritmi di scheduling Esistono vari algoritmi di scheduling che tengono conto di varie esigenze e che possono essere più indicati in alcuni contesti piuttosto che in altri CRITERI da ottimizzare: Massimizzare l utilizzo del processore Massimizzare la produttività Minimizzare il tempo di completamento Minimizzare il tempo di attesa Minimizzare il tempo di risposta NOTA: generalmente si tende ad ottimizzare i valori medi Criteri 1. Utilizzo del processore: la CPU deve essere attiva il più possibile (ovvero devono essere ridotti al minimo i possibili tempi morti) 2. Produttività (throughput): il numero di processi completati in una determinata quantità di tempo 3. Tempo di completamento: il tempo che intercorre tra l inizio di un processo ed il completamento della sua esecuzione 4. Tempo d'attesa: il tempo in cui un processo pronto per l'esecuzione rimane in attesa della CPU (waiting time) 5. Tempo di risposta: il tempo che trascorre tra l inizio del processo e l'ottenimento della prima risposta (dato) 5

Round Robin Algoritmo di scheduling Round Robin (RR) Il più diffuso Esegue i processi nell'ordine d'arrivo assegnando a turno un quanto di tempo di CPU ai processi in attesa Qualora il processo in esecuzione duri più del quanto di tempo assegnato, alla fine del quanto lo si pone alla fine della coda dei processi in attesa e si fa proseguire l'esecuzione al successivo processo in attesa Esempio Ipotesi: i seguenti processi siano in coda con relativa durata in millisecondi, e quanto di tempo stabilito di 20 ms (50 quanti in un secondo): p1 (30) p2 (15) p3 (60) p4 (45) p1 (20 ms, ne rimangono 10) p2 (termina la propria esecuzione perché dura meno di 20 ms) p3 (20 ms, ne rimangono 40) p4 (20 ms, ne rimangono 25) p1 (termina perché erano rimasti meno di 20 ms) p3 (20 ms, ne rimangono 20) p4 (20 ms, ne rimangono 5) p3 (termina perché rimanevano 20 ms) p4 (termina) p1 p2 p3 p4 p1 p3 p4 p3 p4 Tempo 0 20 35 55 75 85 105 125 145 150 6

Criterio di ottimizzazione Per valutare l algoritmo di scheduling facciamo riferimento al tempo medio di attesa Tempo di attesa = istante finale di esecuzione istante di arrivo - durata del processo p1 p2 p3 p4 p1 p3 p4 p3 p4 Tempo 0 20 35 55 75 85 105 125 145 150 p1 termina all istante 85, p2 a 35, p3 a 145, p4 a 150 (tutti arrivati all istante 0) Tempo medio di attesa: [(85-30)+(35-15)+(145-60)+(150-45)]/4 = 66,25 ms Shortest Next Process First (SNPF) SNPF prevede che venga eseguito sempre il processo con il tempo di esecuzione più breve tra quelli in attesa Esempio: siano sottomessi contemporaneamente i processi dell esempio precedente, riportati sotto con la rispettiva durata di esecuzione in ms: p1 (30) p2 (15) p3 (60) p4 (45) I processi vengono eseguiti nel seguente ordine: p2 p1 p4 p3 p2 termina all istante 15, p1 a 45, p4 a 90, p3 a 150 [(15-15)+(45-30)+(90-45)+(150-60)]/4 = 37,5 ms 7

SNPF Si può dimostrare che questo algoritmo è ottimale, in quanto consente di ottenere sempre il valore più basso di tempo d'attesa medio Allora perché non è il più usato? Sfortunatamente non è possibile applicarlo, in quanto non è possibile conoscere anticipatamente quanto durerà l'esecuzione del processo Potrebbe essere possibile predirlo, ma solo in determinati contesti Scheduling con priorità Una priorità (numero intero) è assegnata ad ogni processo La CPU è assegnata al processo con più alta priorità es: il più piccolo intero = la più alta priorità Possibile uso di preemption (o pre-rilascio): un processo in esecuzione viene interrotto, con l'intenzione di ripristinarlo in un secondo momento, per dare spazio ad un altro processo a priorità più alta Preemptive Non preemptive 8

Scheduling con priorità Problema: Starvation i processi a più bassa priorità potrebbero non essere mai eseguiti (attesa infinita) Soluzione: Aging al trascorrere del tempo di attesa si incrementa la priorità di un processo che attende Scheduling per multiprocessori Lo scheduling nei sistemi multiprocessore è più complesso Si possono avere processori omogenei (tutti uguali) o disomogenei (processori diversi) Problema del bilanciamento del carico (load balancing) 9

Gestore della memoria centrale Gestione della memoria centrale La gestione concorrente di molti processi comporta la presenza di molti programmi in memoria centrale la memoria centrale diventa una risorsa condivisa da suddividere tra i vari programmi Risorsa in generale scarsa: i programmi e i file possono eccedere la memoria centrale disponibile Il gestore della memoria applica tecniche per gestire il conflitto tra dimensione della memoria centrale disponibile e spazio complessivamente richiesto da programmi e dati che devono essere gestiti in modo concorrente 10

Come gestire la scarsità di memoria Strategia seguita: Mantenere in memoria centrale solo una porzione dei programmi in esecuzione e dei relativi dati (la porzione necessaria in quel momento) Alternare le porzioni dei programmi mantenute in memoria centrale: i programmi (o le loro porzioni) possono essere caricati e scaricati dalla memoria centrale durante l esecuzione a seconda della necessità Si basa sul concetto di località spazio-temporale Non vale la pena di caricare in memoria centrale tutto il codice di un programma perché l esecuzione in un dato istante si limita ad una porzione del codice stesso, che spesso viene rieseguita Principio del 10-90: il 10% del codice spesso copre il 90% dell esecuzione Spazi di indirizzamento Necessità di considerare due spazi di indirizzamento diverso per ogni programma: Logico: intervallo di celle contigue che partono dall indirizzo 0 (iniziale) in cui si immagina siano collocate le istruzioni del programma Fisico: lo spazio di memoria centrale in cui risiede effettivamente il codice di un programma 11

Paginazione Frammentazione della memoria in blocchi di dimensione prefissata detti pagine Lo spazio di indirizzamento logico del programma è suddiviso in sezioni, di dimensioni fisse e uguali tra loro, dette pagine logiche Lo spazio fisico di indirizzamento presente nel calcolatore è anch esso diviso in pagine fisiche, della stessa dimensione delle pagine logiche Vantaggi Grazie alla paginazione è possibile: Tenere in memoria solo la porzione ridotta del programma che è necessaria al momento dell utilizzo Estendere la dimensione di un processo utilizzando spazi di memoria non necessariamente contigui 12

Meccanismo di base Solo alcune pagine logiche del programma in esecuzione vengono caricate in (altrettante stessa dimensione) pagine fisiche della memoria centrale Le pagine logiche necessarie vengono caricate di volta in volta in base all esigenza Quante pagine di un programma caricare e quante/quali pagine sostituire dipende dalla politica adottata Memoria virtuale Nel caso della paginazione, il gestore della memoria offre ai programmi in esecuzione la visione di una memoria virtuale La memoria virtuale V può essere maggiore di quella fisica P, cioè composta da più pagine di quelle che possono stare contemporaneamente in P (quelle non caricate in memoria centrale rimangono disponibili in memoria di massa) 13

Conseguenza I programmi con dimensione S>P (P = spazio fisico di memoria centrale) possono essere eseguiti se S<V (V = spazio di memoria virtuale) E il gestore della memoria che si occupa di mantenere la conversione degli indirizzi da logici a fisici Si usa una tabella di conversione Swapping Un modo tipico di gestire la memoria virtuale consiste nell abilitare il sistema operativo a trasferire il contenuto dalla memoria centrale ad un area della memoria di massa, detta area di swap Lo swapping viene applicato trasferendo su disco le informazioni relative ai processi in stato di attesa Attesa di una periferica di Input/Output Attesa della CPU 14

Processi e memoria La gestione della memoria deve essere coordinata con la gestione dei processi: le pagine di programma che sono attualmente in esecuzione o che contengono dati attualmente utilizzati devono risiedere in memoria centrale se una pagina necessaria ad un processo in esecuzione non si trova in memoria centrale (page fault), il processo viene sospeso e passa in stato di attesa dopo l operazione di input da memoria di massa della pagina necessaria il processo torna ad essere pronto per l esecuzione 15