Sistemi Operativi. La gestione delle risorse

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

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

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

Scheduling della CPU

Sistemi Operativi. Lezione 3 Processi e Thread

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Università degli Studi di Cassino

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Modi di esecuzione user / kernel

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

I Processi. Il Concetto di Processo

Componenti principali

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

LA GESTIONE DELLA I/O

Sistema operativo: Gestione dei processi

Scheduling della CPU. Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Componenti e connessioni. Capitolo 3

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

I THREAD O PROCESSI LEGGERI

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

Il supporto al sistema operativo

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

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

Il Sistema Operativo

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

Il sistema operativo

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

sono forniti di un sistema operativo più o meno complesso; i programmi d utente (o programmi del sistema, ma lo fanno attraverso il sistema

2.2 Scheduling in Linux

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Architettura hardware

il Nucleo e la gestione dei processi

Modulo 3. Software. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè

Il Concetto di Processo

2. Nucleo del sistema operativo (la gestione dei processi)

Lezione 16. Il Software di base

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Computer e Programmazione

Sistemi Operativi. Scheduling dei processi

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

Corso di Informatica

Lezione XII: La gestione delle eccezioni in MINIX

Sistema operativo (SO)

I Sistemi Operativi. Prof.ssa Antonella Serra

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

Sistemi Operativi. Lez. 0: Introduzione ai sistemi operativi

Parte II. Introduzione ai sistemi operativi e WindowsX. Parte II 1

Il sistema delle interruzioni nel processore MC68000 (cenni)

Sistemi Operativi (modulo di Informatica II) I processi

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Scheduling della CPU. Capitolo 6 - Silberschatz

Informatica Sistemi operativi Sistemi Operativi 1

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Il Sistema Operativo Ing. Agnese Pinto. Fondamenti di Informatica CDL in Ingegneria Meccanica- A.A

Scheduling della CPU

Il Processore. Informatica di Base -- R.Gaeta 27

Sistemi Operativi: Concetti Introduttivi

Il Gestore della Memoria. Tecnica a Partizioni Fisse e a Partizioni Variabili

Cognome e nome: Matricola: Posto:

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

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

Sistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15

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

Struttura dei Sistemi di Calcolo

Capitolo 14: Struttura delle memorie di massa

Sistemi Operativi. Scheduling dei processi

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo

Il modello di Von Neumann

Le risorse. Se il processo può essere forzato a rilasciare una risorsa, la risorsa è chiamata prerilasciabile.

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni

Capitolo 2: Strutture dei sistemi di calcolo

Multiprogrammazione. Sistemi Operativi Giuseppe Prencipe. Scheduling dei processi Scheduling. Sequenza di CPU e I/O burst.

Prof. Rossella Cancelliere

Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi

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

Capitolo 6 Le infrastrutture SoftWare

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche

Introduzione ai sistemi operativi

La memoria principale

Organizzazione di un SO monolitico

Spazio di indirizzamento virtuale

Capitolo 1: Introduzione

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

Sistemi operativi e reti A.A Lezione 2

Il Sistema Operativo. Informatica Sistema Operativo 1

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Sistema Operativo. (hardware e software) della della macchina

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Software di base. Sistema di elaborazione: struttura gerarchica composta da elementi hardware e software.

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)

Transcript:

Sistemi Operativi La gestione delle risorse

Introduzione Il sistema operativo ha il compito di fornire la gestione dell hardware ai programmi dell utente. Utente utilizza i programmi applicativi Programmi applicativi (fogli elettronici, browser, gestione testi, ecc.), che utilizzano le risorse di calcolo per realizzare elaborazioni Sistema operativo fornisce gli strumenti per utilizzare i dispositivi fisici Hardware (CPU, Memoria, organi di Input/Output)

Bootstrap All accensione la CPU esegue la procedura di caricamento in memoria del kernel, la parte del sistema operativo che contiene i moduli per la gestione dei dispositivi fisici: memoria, disco, elementi di I/O, ecc. Quando il sistema operativo è stato caricato in memoria, il programma di boot lo manda in esecuzione A questo punto il sistema operativo ha il controllo della macchina.

Esecuzione di un programma Il sistema operativo che riceve la richiesta di esecuzione di un programma cede temporaneamente il controllo della CPU al programma utente e lo riprende al termine del programma. Il programma utente richiede un servizio al sistema operativo mediante una chiamata di sistema.

Protezione La CPU possiede due modalità di esecuzione: Modalità utente, la CPU esegue le istruzioni del programma Modalità di sistema, la CPU esegue istruzioni privilegiate, ovvero quelle che richiedono modifiche o accesso a informazioni del sistema (tabelle di interruzione, mappa di I/O, ecc.)

Protezione Il programma utente non ha accesso diretto all hardware del computer, ma deve chiedere al sistema operativo di comunicare con il dispositivo hardware. Il sistema operativo riconosce la legittimità della richiesta e, modificando la modalità di funzionamento della CPU, svolge il servizio richiesto.

Programma Un programma esprime l'algoritmo risolutivo di un problema, cioè contiene l elenco dei calcoli da eseguire sui dati iniziali noti per determinare un risultato, stabilisce quindi una relazione tra i dati di ingresso e i dati di uscita. Tra le varie notazioni simboliche usate per rappresentare un programma le più diffuse sono i diagrammi di flusso e lo pseudolinguaggio. Queste servono al programmatore per pervenire alla codifica del programma, non possono rappresentare lo stato del sistema di elaborazione associato al programma in esecuzione.

Processore Il processore, anche se contiene più unità di controllo, esegue sequenzialmente le istruzioni di un programma. Esso cioè, a partire da una certa configurazione delle variabili in memoria e nei suoi registri interni, per ogni istruzione che esegue produce una modifica delle variabili e dei dispositivi coinvolti nell operazione.

Processo Il processo, associato ad un programma, è la descrizione delle operazioni svolte dalla CPU per eseguire le istruzioni del programma. Il processo rappresenta quindi l esecuzione delle istruzioni di un programma da parte della CPU. Un processo è associato ad un programma ed è in esecuzione su una CPU. Un processo è identificato da un PID (Process Identifier) e possiede una priorità.

Risorsa L esecuzione delle istruzioni di un programma comporta l utilizzo di componenti e di bus del calcolatore. Un componente che condiziona l avanzamento di un processo è detto risorsa.

Esecuzione sequenziale Esecuzione sequenziale di un programma: le operazioni vengono elencate una dopo l altra e la CPU, prelevandole dalla memoria, le esegue nell ordine in cui le trova. Un operazione inizia solo quando la precedente è stata completata. In un sistema di elaborazione la CPU è affiancata da alcuni dispositivi progettati per l esecuzione di compiti specifici, dai quali ottiene collaborazione in casi particolari, per esempio: il coprocessore matematico, svolge in hardware gli algoritmi di calcolo delle funzioni matematiche, altrimenti svolti da sottoprogrammi, la controller del disco, provvede a indirizzare un settore e a trasferire i dati in un modo più veloce di quanto possa fare la CPU, il componente DMA, esegue il trasferimento di un elenco di dati, da una sorgente a una destinazione, in forma diretta, laddove la CPU introdurrebbe un trasferimento intermedio in un suo registro interno. La CPU può continuare ad eseguire le istruzioni dei programmi, mentre questi processori specializzati possono eseguono le loro operazioni.

Multitasking Il processore dispone di un timer che inizializza con un numero prestabilito e decrementa con una certa frequenza. Quando il timer raggiunge il valore 0 genera un segnale di interrupt. Il sistema operativo effettua una commutazione di processo e inizializza nuovamente il timer. La durata dell intervallo è detta quanto. Il sistema operativo assegna l uso di un processore ad un processo per un quanto di tempo. Se ci sono M processi ed N processori, con M>N, in un certo istante solo N processi sono in esecuzione, ma in un intervallo di tempo, formato da più quanti di tempo, sono stati eseguiti M processi, dando l impressione che sono stati eseguiti contemporaneamente.

Commutazione di processo Il processo che perde l uso del processore è detto processo uscente. Il processo che ha il turno di usare il processore è detto processo entrante. Quando un processo perde l uso del processore, il sistema operativo salva, in un area di memoria riservata, il contesto del processo uscente, ovvero l immagine dei registri della CPU e, prima di assegnare la CPU al processo entrante, copia nei registri della CPU l immagine dei registri del processo entrante, che erano stati salvati al momento dell uscita.

Stati di un processo. Non iniziato o terminato Esecuzione: il processo è in esecuzione su un processore Pronto: il processo possiede tutte le risorse necessarie, deve avere solo l uso del processore Attesa: il processo non può andare in esecuzione perché ha bisogno di una risorsa che è risultata assegnata ad un altro processo.

Stati di un processo Un processo viene avviato, esegue le sue operazioni e poi termina. Durante l esecuzione il processo potrebbe trovarsi nello stato di attesa e nello stato di pronto. Le transizioni da unmo stato all altro sono determinate dal verificarsi di alcuni eventi Non esistente Terminato Avvio Pronto Risorsa liberata Fine CPU libera Quanto di tempo scaduto Attesa Esecuzione Risorsa occupata

Transizioni di stato Un processo passa dallo stato di esecuzione alla stato pronto quando scade il quanto di tempo assegnato. Un processo passa dallo stato di esecuzione allo stato di attesa quando: Ha bisogno di una risorsa utilizzata da un altro processo, Chiede un operazione di I/O. Il sistema operativo sposta un processo dallo stato di attesa allo stato pronto quando la risorsa che aveva chiesto si è liberata.

Politica di scheduling Il Sistema operativo gestisce due liste di processi: una lista di attesa e una lista dei processi pronti. La politica di scheduling è il criterio secondo cui il sistema operativo seleziona, dalla lista dei processi pronti, un processo da mandare in esecuzione

Context switch Il contesto di un processo è rappresentato dai valori immagazzinati nei registri interni della CPU, e il sistema operativo riserva, ad ogni processo attivo, un segmento privato in cui memorizzare il contesto. Gli indirizzi base di tali segmenti, sparsi per la memoria, sono riepilogati in una tabella. L indice che permette di accedere all indirizzo base di un segmento di stato è usato dal sistema operativo per identificare il processo. Il task register, nella CPU, viene aggiornato dal sistema operativo con l identificatore del processo che passa in esecuzione, e la CPU automaticamente recupera il contesto del processo dal segmento di stato.

Algoritmi di sheduling Lo scheduler è il componente del sistema operativo che ha il compito di prelevare dalla coda dei processi pronti il descrittore del processo da mandare in esecuzione. La coda dei processi viene gestita con il criterio FIFO (First In First Out), ovvero rispettando l ordine di arrivo dei processi ed assegnando a rotazione l uso della CPU

Livelli di scheduling Long term scheduling: determina quali programmi devono essere caricati dalla memoria di massa alla memoria principale. Medium term scheduling: rimuove temporaneamente dalla memoria principale un processo in esecuzione. Short term scheduling: seleziona tra i processi pronti in memoria principale quello a cui assegnare la CPU.

Algoritmi di short term scheduling Round Robin: La coda dei processi è gestita il criterio FIFO, ma ad ogni processo è assegnata la CPU per un quanto di tempo q prefissato. q deve essere sufficientemente grande rispetto al tempo di cambio del contesto. Priorità statica: fissata alla creazione dei processi in base alle loro caratteristiche: processi foreground (sistemi interattivi) ---> alta priorità. processi background (batch) ---> bassa priorità. Priorità dinamica: può essere modificata durante l esecuzione dei processi

Algoritmo Shortest Job First Per alcune operazioni, il sistema operativo è in grado di stabilire il tempo di esecuzione richiesto. L algoritmo SJF preleva i processi dalla coda privilegiando il più breve. occorre conoscere le caratteristiche dei processi. minimizza il tempo medio di permanenza di un processo nel sistema (dall avvio al termine).